﻿
var at1pmi=new Array("MIN","00000","50,000","50000","75,000","75000","100,000","100000","125,000","125000","150,000","150000","175,000","175000","200,000","200000","225,000","225000","250,000","250000","275,000","275000","300,000","300000","350,000","350000","400,000","400000");
var at1pma=new Array("MAX","2100000000","400,000","400000","350,000","350000","300,000","300000","275,000","275000","250,000","250000","225,000","225000","200,000","200000","175,000","175000","150,000","150000","125,000","125000","100,000","100000","75,000","75000","50,000","50000");
var at2pmi=new Array("MIN","00000","200","200","400","400","600","600","800","800","1,000","1000","1,200","1200","1,500","1500","1,750","1750","2,000","2000","2,500","2500","3,000","3000","3,500","3500","4,000","4000");
var at2pma=new Array("MAX","2100000000","4,000","4000","3,500","3500","3,000","3000","2,500","2500","2,000","2000","1,750","1750","1,500","1500","1,200","1200","1,000","1000","800","800","600","600","$400","400","200","200");
var nbrmi=new Array("---","0","1+","1","2+","2","3+","3","4+","4","5+","5","6+","6","7+","7","8+","8","9+","9","10+","10");
var hsa=new Array("---","0",">50 m²","50",">75 m²","75",">100 m²","100",">125 m²","125",">150 m²","150",">175 m²","175",">200 m²","200",">225 m²","225",">250 m²","250",">300 m²","300");
var lsa=new Array("---","0",">500 m²","500",">600 m²","600",">700 m²","700",">800 m²","800",">900 m²","900",">1.000 m²","1000",">1.500 m²","1500",">2.000 m²","2000",">3.000 m²","3000",">4.000 m²","4000",">5.000 m²","5000");
var psa=new Array("---","0",">10 m²","10",">15 m²","15",">20 m²","20",">25 m²","25",">50 m²","50",">100 m²","100");

function ddfill(dd,ar){
    dd.options.length=0;
    for(i=0;i<ar.length;i+=2)
        {dd.options[i/2] = new Option(ar[i],ar[i+1]);}
    }
function ddsetdef(dd,def){
    for(i=0;i<dd.length;i++)
        {if(dd.options[i].value ==def){dd.options[i].selected = true;return;}}
    }

function trim(str){return str.replace(/^\s*|\s*$/g,"");}

function getRadioSelectedValue(radioList){
   for(i=0;i<radioList.length;i++){if(radioList[i].checked){return radioList[i].value;}}
   }
       

function $get(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return null;
  else
    return results[1];
};

var Obj = new Class({

    Implements: [Options, Events],

    options: {
        lang: null,
        pagenbr: 1,
        RecByPage: 9,
        typeAff: 1,
        typeNav: 1,
        ObjData: {},
        ObjSearch: {},
        ObjNav: {},
        ObjOtherInfo: { linkTo: 'propertyview.aspx', linktype: 'unique' },
        elSave: null
    },

    initialize: function(elDiv_Nav, elDiv_Aff) {

        this.elDiv_Aff = $(elDiv_Aff);
        this.elDiv_Nav = $(elDiv_Nav);
        if (this.options.lang == null) this.options.lang = Cookie.read('lang');
        if (this.options.elSave != null) {
            this.options.elSave = $(this.options.elSave);
            if (this.options.elSave.value.length > 0) {
                var LastRequest = JSON.decode(this.options.elSave.value);
                this.options.ObjSearch = LastRequest.ObjSearch;
                this.options.ObjData = LastRequest.ObjData;
                this.options.pagenbr = this.options.ObjData.NavInfo.pagenbr;
                this.buildResult(this.options.ObjData);
                this.options.elSave.value = '';
            }
            else {
                if (this.options.ObjSearch.search_id != null) { this.query(); }
            }
        }
        else { this.query(); }
    },
    updateQuery1: function(s) {
        this.options.ObjSearch = null;
        this.setOptions(s);
        this.query();
    },
    updateQuery2: function(s) {
        this.options.pagenbr = 1;
        this.query();
    },
    updateQuery: function(s) {
        this.options.ObjSearch = null;
        this.setOptions(s);
        this.options.pagenbr = 1;
        this.query();
    },

    buildResult: function(tokens) {

        this.elDiv_Aff.empty();
        switch (this.options.typeAff) {
            case 1: 
            
                if (tokens.Data.length == 0)
                { 
                this.elDiv_Aff.empty();
                this.elDiv_Aff.set('html', '<div style="height:50px; clear:both;"></div><iframe src ="adsense_af1.html" width="350px" height="300px" frameborder="0" scrolling="no" style="background-color: #ffffff;">');
                }
                else 
                { 
                tokens.Data.each(function(d, idx) {
                        this.affObj_01(d, tokens.DataText, idx).inject(this.elDiv_Aff);
                        }, this);
                } 
                break;              
            
                //tokens.Data.each(function(d, idx) { this.elDiv_Aff.empty(); this.affObj_01(d, tokens.DataText, idx).inject(this.elDiv_Aff); }, this);
                //if (tokens.Data.length == 0) { this.display_adsense('pub-0076713849522207', '2282076219', 336, 280, this.elDiv_Aff); }
            case 2:
                tokens.Data.each(function(d, idx) {
                   this.affObj_02(d, tokens.DataText, idx).inject(this.elDiv_Aff);
                }, this);
                break;
            
            case 3:
                
                if (tokens.Data.length == 0)
                { 
                this.elDiv_Aff.set('html', '<iframe src="adsense_af3.html" width="350px" height="300px" frameborder="0" scrolling="no" style="background-color: #ffffff;">');
                
                }
                else 
                { 
                tokens.Data.each(function(d, idx) {
                            this.affObj_03(d, tokens.DataText, idx).inject(this.elDiv_Aff);
                            }, this);
                } 
                break;


            case 4: tokens.Data.each(function(d, idx) { this.affObj_04(d, tokens.DataText, idx).inject(this.elDiv_Aff); }, this); break;
            case 5: tokens.Data.each(function(d, idx) { this.affObj_05(d, tokens.DataText, idx).inject(this.elDiv_Aff); }, this); break;
        }


        if (this.elDiv_Nav != null) {
            this.elDiv_Nav.empty();
            switch (this.options.typeNav) {
                case 1: affNav = this.affNav_01(tokens.NavInfo); break;
                case 2: affNav = this.affNav_02(tokens.NavInfo); break;
                case 3: affNav = this.affNav_03(tokens.NavInfo); break;
                case 4: affNav = this.affNav_04(tokens.NavInfo); break;
                case 5: affNav = this.affNav_05(tokens.NavInfo); break;
            }
        }
    },

    gotoPage: function(i) {
        var curPage = this.options.pagenbr.toInt();
        this.options.pagenbr = curPage + i;
        //if (this.elPageNbr != null) {this.elPageNbr.value=this.options.pagenbr;}
        this.query();

    },
    gotoProperty: function() {
        if (this.options.elSave != null) {
            var ObjSave = { ObjData: {}, ObjSearch: {} };
            ObjSave.ObjData = this.options.ObjData;
            ObjSave.ObjSearch = this.options.ObjSearch;
            this.options.elSave.value = JSON.encode(ObjSave);
        }
    },
    //rounded
    divrounded01: function(o, h) {
        var t = document.createElement("b"); t.className = 'rt'; o.appendChild(t);
        var t1 = document.createElement("b"); t1.className = 'r1'; t.appendChild(t1);
        var t2 = document.createElement("b"); t2.className = 'r2t'; t.appendChild(t2);
        var c = document.createElement("div"); c.className = 'rc';
        c.style.height = h;
        o.appendChild(c);
        var b = document.createElement("b"); b.className = 'rb'; o.appendChild(b);
        var b1 = document.createElement("b"); b1.className = 'r2b'; b.appendChild(b1);
        var b2 = document.createElement("b"); b2.className = 'r1'; b.appendChild(b2);
        return c;
    },

    //LoadImage
    //************************
    LoadImage: function(imgscr, divTo, maxW, maxH, cssclass) {
    var Iw = new Image(); Iw.src = 'http://www.mapimmo.fr/js/Obj/img/wait.gif'; divTo.appendChild(Iw); //? case!!
        var I = new Image();
        I.onerror = function() {
            var IEr = new Image(maxW, maxH);
            IEr.onload = function() {
                if (divTo.hasChildNodes() == true) divTo.replaceChild(IEr, Iw);
            } .bind(this);
            IEr.src = 'http://www.mapimmo.fr/js/Obj/img/nophoto.jpg'; //? case!!
        } .bind(this);
        I.onload = function() {
            var r; var h = I.height; var w = I.width;
            if ((h >= maxH) || (w >= maxW)) {
                if (h > maxH) { r = h / maxH; h = h / r; w = w / r; }
                if (w > maxW) { r = w / maxW; h = h / r; w = w / r; }
                I.width = w; I.height = h;
            }
            if (cssclass) { I.className = cssclass };
            if (divTo.hasChildNodes() == true) divTo.replaceChild(I, Iw);
        } .bind(this);
        I.src = imgscr;
        return I;
    },
    imRprop: function(oImg, maxW, maxH) {
        var h; var w; var r;
        h = oImg.height; w = oImg.width;
        if (h == 0) { h = oImg.getStyle('height').toInt(); w = oImg.getStyle('width').toInt(); }
        if ((h >= maxH) || (w >= maxW)) {
            if (h > maxH) { r = h / maxH; h = h / r; w = w / r; }
            if (w > maxW) { r = w / maxW; h = h / r; w = w / r; }
            oImg.width = w; oImg.height = h;
            oImg.style.width = w; oImg.style.height = h;
            oImg.setStyle('width', w);
            oImg.setStyle('height', h);
        }
    }



});
//Obj.Request
Obj.Request = new Class({

	Extends: Obj,

	options: {
		postData:{},
		ajaxOptions:{url: 'getdata.ashx',output:0, method:'get',link:'cancel',noCache:true}
	},

	query: function(){

	    var data = $unlink(this.options.postData || {});
        data['action'] = this.options.ObjSearch.searchType
        data['output'] = this.options.ajaxOptions.output;
        data['lang'] = this.options.lang;
        data['pagenbr'] = this.options.pagenbr;
        data['RecByPage'] = this.options.RecByPage;
        data['objsearch'] = JSON.encode(this.options.ObjSearch);
        this.request.send({'data': data});
	},
	
    queryResponse: function(response) {
		if (this.options.elSave!=null) {this.options.ObjData=response;}
	}
});

//Obj.Request.JSON
Obj.Request.JSON = new Class({

	Extends: Obj.Request,
	
	initialize: function(Div_Nav,Div_Aff, options) {
	    this.setOptions(options);
		this.request = new Request.JSON(this.options.ajaxOptions).addEvent('onComplete', this.queryResponse.bind(this));
		this.parent(Div_Nav,Div_Aff);
	},
	
    queryResponse: function(response) {
                this.parent(response);
                this.buildResult(response);
                }
                
});
//Obj.Request.JSONP
Obj.Request.JSONP = new Class({

    Extends: Obj.Request,
    
    initialize: function(Div_Nav, Div_Aff,  options) {
        this.setOptions(options);
		this.request = new Request.JSONP(this.options.ajaxOptions).addEvent('onComplete', this.queryResponse.bind(this));
        this.parent(Div_Nav,Div_Aff);
    },
    
    queryResponse: function(response) {
                this.parent(response);
                this.buildResult(response);
                }
                
});
//Obj.Local
Obj.Local = new Class({

	Extends: Obj,
	
    initialize: function(Div_Nav, Div_Aff, tokens, options) {
        this.setOptions(options);
        this.tokens = tokens;
		this.parent(Div_Nav,Div_Aff);
	},
	
	query: function() {this.buildResult(this.tokens);}
	
});

//************************
//affObj_03
//HomePage
//************************
Obj.implement({
    //************************
    affObj_03: function(obj, objT) {
        var linkto = this.options.ObjOtherInfo.linkTo;
        linkto += (this.options.ObjOtherInfo.linktype != 'page') ? '?property_id=' + obj[0] : '?pagenbr=' + obj[13];

        var mdiv0 = new Element('div', { 'class': 'obj_bg', 'styles': { 'width': '195px'} });
        var rounddiv = this.divrounded01(mdiv0, '160px');

        //Information    
        var infdiv0 = new Element('div').inject(rounddiv);
        var mdiv1 = new Element('div', { 'class': 'obj_03t1' }).inject(infdiv0);
        var a01 = new Element('a', { 'href': linkto }).set('html', '<b>' + obj[1] + ' ' + obj[3] + "</b>, " + obj[5]).inject(mdiv1);
        a01.addEvents({ 'click': function(e) { this.gotoProperty(); } .bind(this) }); //savepage
        var price = '<b>' + obj[6] + '</b> ';
        if (obj[12] != '') { price += '<span style="color: #ffffff; background-color: #00cc00;"><b>&nbsp;&nbsp;' + obj[12] + '&nbsp;&nbsp;</b></span>&nbsp;'; }
        if (obj[11] != '') { price += '<span style="color: #ffffff; background-color: #00cc00;"><b>&nbsp;&nbsp;' + obj[11] + '&nbsp;&nbsp;</b></span>'; }
        var mdiv2 = new Element('div', { 'class': 'obj_03t2' }).set('html', price).inject(infdiv0);

        //image
        var imgdiv0 = new Element('div', { 'class': 'obj_03t3' }).inject(rounddiv);
        var a02 = new Element('a', { 'href': linkto }).inject(imgdiv0);
        a02.addEvents({ 'click': function(e) { this.gotoProperty(); } .bind(this) }); //savepage

        var I = this.LoadImage('http://www.mapimmo.be/imgp/' + obj[0] + '_1s.jpg', a02, 160, 110);
        
        return mdiv0;
    }



    //************************   
});

