// JavaScript Document

// Initialisation de la mise en cache des images css pour IE6
try {
	document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}

// Lancement du traitement vecto de la typo
/*Cufon.replace('#menu .fontified > a:nth-child(1)', {hover: true});
Cufon.replace('#menubis .fontified > a:nth-child(1)', {hover: true});
Cufon.replace('#accessAccount .fontified > a:nth-child(1)', {hover: true});
Cufon.replace('#container .fontified', {hover: true});
Cufon.replace('.formAgenceOrpi .fontified', {hover: true});
*/
function createXHR()
{
var xmlHttp;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  return xmlHttp;
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    return xmlHttp;
    }
  catch (e)
    {
    try
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      return xmlHttp;
      }
    catch (e)
      {
      alert("Your browser does not support AJAX!");
      return false;
      }
    }
  }
}

/* SuckerFich Menu */
sfHover = function() {
	var parEls = document.getElementById("menu");
	var sfEls = document.getElementById("menu").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
sfHoverBis = function() {
	var parEls = document.getElementById("menubis");
	var sfEls = document.getElementById("menubis").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}

/* Function loader (if needed to init and load functions) */
function addEvent(obj, evType, fn){
 if (obj.addEventListener){
   obj.addEventListener(evType, fn, false);
   return true;
 } else if (obj.attachEvent){
   var r = obj.attachEvent("on"+evType, fn);
   return r;
 } else {
   return false;
 }
}

/* Loads (after the Function loader) */
addEvent(window, 'load', sfHover);
addEvent(window, 'load', sfHoverBis);

/* moteur de recherche */
function search_engine_manage_checkbox(checkbox,idLabel){

  var label = document.getElementById(idLabel);

  if(checkbox.checked == true){
    label.className = 'labelCheckbox active';
  }else{
    label.className = 'labelCheckbox';
  }

}

function search_engine_empty_field(field,defaultValue){
  if(field.value == defaultValue){
    field.value = "";
  }
}

function search_engine_fill_field(field,defaultValue){
  if(field.value == ""){
    field.value = defaultValue;
  }
}

function search_engine_valid_form(form,defaultValueMin,defaultValueMax,trigramme){
	//filtre regEx <==> is_numeric
	var filter = /^([0-9])+$/;

  if(document.getElementById(trigramme+'autoCompletion').style.display == "block" && citySelected  != ''){
    return false;
  }

	//budget min is numeric
	if( form.recPrixMin.value != "" && !filter.test(form.recPrixMin.value) && form.recPrixMin.value != defaultValueMin){
		 alert(get_trad_champ("recPrixMin_numeric"));
		 form.recPrixMin.focus();
		 return false;
	}

	//budget max is numeric
	if( form.recPrixMax.value != "" && !filter.test(form.recPrixMax.value) && form.recPrixMax.value != defaultValueMax){
		 alert(get_trad_champ("recPrixMax_numeric"));
		 form.recPrixMax.focus();
		 return false;
	}
	return true;
}

function search_advanced_engine_valid_form(form,defaultValueMin,defaultValueMax,defaultConstructionApres){
	//filtre regEx <==> is_numeric
	var filter = /^([0-9])+$/;

  if(document.getElementById('autoCompletion').style.display == "block" && citySelected  != ''){
    return false;
  }

	//budget min is numeric
	if( form.recPrixMin.value != "" && !filter.test(form.recPrixMin.value) && form.recPrixMin.value != defaultValueMin){
		 alert(get_trad_champ("recPrixMin_numeric"));
		 form.recPrixMin.focus();
		 return false;
	}

	//budget max is numeric
	if( form.recPrixMax.value != "" && !filter.test(form.recPrixMax.value) && form.recPrixMax.value != defaultValueMax){
		 alert(get_trad_champ("recPrixMax_numeric"));
		 form.recPrixMax.focus();
		 return false;
	}

	//surface min is numeric
	if( form.recSurfaceMin.value != "" && !filter.test(form.recSurfaceMin.value) && form.recSurfaceMin.value != defaultValueMin){
		 alert(get_trad_champ("recSurfaceMin_numeric"));
		 form.recSurfaceMin.focus();
		 return false;
	}

	//surface max is numeric
	if( form.recSurfaceMax.value != "" && !filter.test(form.recSurfaceMax.value) && form.recSurfaceMax.value != defaultValueMax){
		 alert(get_trad_champ("recSurfaceMax_numeric"));
		 form.recSurfaceMax.focus();
		 return false;
	}

	return true;
}

//affiche le bon form suivant le radio bouton checked
function display_form_achat(link_advanced){
  document.getElementById("locHomeRechercheRapide").style.display = "none";
  document.getElementById("achHomeRechercheRapide").style.display = "block";
  document.getElementById("achRadioButtonAcheter").checked = "checked";
  document.getElementById('form_displayed').innerHTML = "achHomeRechercheRapide";
  document.getElementById("btSearchAvanceA").href = link_advanced;
  if(document.getElementById('achautoCompletion')){
    document.getElementById('achautoCompletion').style.display = 'none';
  }
  if(document.getElementById('locautoCompletion')){
    document.getElementById('locautoCompletion').style.display = 'none';
  }
}
function display_form_location(link_advanced){
  document.getElementById("locHomeRechercheRapide").style.display = "block";
  document.getElementById("achHomeRechercheRapide").style.display = "none";
  document.getElementById("locRadioButtonLouer").checked = "checked";
  document.getElementById('form_displayed').innerHTML = "locHomeRechercheRapide";
  document.getElementById("btSearchAvanceA").href = link_advanced;
  if(document.getElementById('achautoCompletion')){
    document.getElementById('achautoCompletion').style.display = 'none';
  }
  if(document.getElementById('locautoCompletion')){
    document.getElementById('locautoCompletion').style.display = 'none';
  }
}

/* formulaire contact */
function contact_change_form(value){
  document.getElementById("contactDate").style.display = "none";document.getElementById("contactHeure").style.display = "none";document.getElementById("contactTel").style.display = "none";
  switch(value){
    case '2' :  document.getElementById("contactTel").style.display = "block"; break;
    case '3' :  document.getElementById("contactDate").style.display = "block";document.getElementById("contactHeure").style.display = "block";document.getElementById("contactTel").style.display = "block"; break;
  }
}


//------------------------------- Contact Agence Formulaire
function openContactAgence(){

    var content = document.getElementById('divContactAgence');

    document.getElementsByTagName('html')[0].className = "overflowX";

    var overlay= document.createElement('div');
    overlay.id = 'overlay';
    overlay.style.position = 'absolute';
    overlay.style.width = screen.availWidth+"px";
    overlay.style.height = '2000px';
    overlay.style.top=0;
    overlay.style.left=0;
    overlay.style.zIndex=90;
    document.getElementsByTagName('body')[0].appendChild(overlay);
    overlay.style.display = "block";
    
    content.style.zIndex = 99;
    content.style.position = "relative";
	
	var closeContactAgence= document.getElementById('closeContactAgence');
    closeContactAgence.style.display = 'block';
}

function closeContactAgence(){

	var content = document.getElementById('divContactAgence');
	content.style.zIndex = 1;

	var closeContactAgence= document.getElementById('closeContactAgence');
	closeContactAgence.style.display = 'none';

	var overlay = document.getElementById("overlay");
	document.getElementsByTagName('body')[0].removeChild(overlay);
	delete overlay;

	document.getElementsByTagName('html')[0].className = "";
}
/* /formulaire contact */


/* fiche annonce */
function pageHeight() {
  return window.innerHeight != null? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:document.body != null? document.body.clientHeight:null;
}

function pageWidth() {
  return window.innerWidth != null? window.innerWidth: document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth:document.body != null? document.body.clientWidth:null;
}

function posLeft() {
  return typeof window.pageXOffset != 'undefined' ? window.pageXOffset:document.documentElement && document.documentElement.scrollLeft? document.documentElement.scrollLeft:document.body.scrollLeft? document.body.scrollLeft:0;
}

function posTop() {
  return typeof window.pageYOffset != 'undefined' ? window.pageYOffset:document.documentElement && document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop?document.body.scrollTop:0;
}

function inf(h){
  tag=document.getElementsByTagName('select');
  for(i=tag.length-1;i>=0;i--)
    tag[i].style.visibility=h;tag=document.getElementsByTagName('iframe');
  for(i=tag.length-1;i>=0;i--)
    tag[i].style.visibility=h;tag=document.getElementsByTagName('object');
  for(i=tag.length-1;i>=0;i--)
    tag[i].style.visibility=h;
}

function getScrollPosition()
{
    return Array((document.documentElement && document.documentElement.scrollLeft) || window.pageXOffset || self.pageXOffset || document.body.scrollLeft,(document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop);
}

function addOnclickMap(){
	if(document.getElementById('bt_share'))
	{
  		document.getElementById('bt_share').onclick = function(){ showModal('box_partager',530,600); return false;}
  	}
  	if(document.getElementById('bt_localise'))
  	{
  		document.getElementById('bt_localise').onclick = function(){ showModal('box_localiser',530,600); initMap(); return false;}
  	}
}

function addOnclick(){
  document.getElementById('bt_share').onclick = function(){ showModal('box_partager',530,600); return false;}
}

function showModal(id_box, w, h){

  document.getElementsByTagName('html')[0].style.overflow="hidden";

  var media_path = document.getElementById("media_path").value;

  var posScroll = getScrollPosition();

  var overlay= document.createElement('div');
  overlay.id = 'overlay';
  overlay.style.position = 'absolute';
  overlay.style.width = screen.availWidth+"px";
  overlay.style.height = '2000px';
  overlay.style.top=0;
  overlay.style.left=0;
  overlay.style.zIndex=999;
  document.getElementsByTagName('body')[0].appendChild(overlay);
  overlay.style.display = "block";

  var box= document.createElement('div');
  box.id = "mbd";
  var content = document.getElementById(id_box);
  var subContent = content.getElementsByTagName('div')[0];

  content.removeChild(subContent);

  subContent.style.display = "block";
  box.appendChild(subContent);
  box.style.top= (posScroll[1]+"px");
  box.style.width = w+'px';
  box.style.height = h+'px';
  box.style.left= "50%";
  box.style.marginLeft= ((w/2)*(-1))+'px';
  box.style.zIndex=1000;
  box.style.padding="8px";
  document.getElementsByTagName('body')[0].appendChild(box);
  box.style.display = "block";

  var selects = document.getElementsByTagName('select');

  if(selects.length == 2){
    selects[0].style.visibility = "hidden";
    selects[1].style.visibility = "hidden";
  }

  if(selects.length == 3){
    selects[0].style.visibility = "hidden";
    selects[1].style.visibility = "hidden";
    selects[2].style.visibility = "hidden";
  }
  //Cufon.replace('#mbd h2');

  return false;

}

function hideModal(id_box){
  var overlay = document.getElementById("overlay");
  var mbd = document.getElementById("mbd");
  var subContent = mbd.getElementsByTagName('div')[0];
  mbd.removeChild(subContent);

  document.getElementsByTagName('body')[0].removeChild(mbd);
  document.getElementsByTagName('body')[0].removeChild(overlay);

  var selects = document.getElementsByTagName('select');
  if(selects.length == 2){
    selects[0].style.visibility = "visible";
    selects[1].style.visibility = "visible";
  }
  if(selects.length == 3){
    selects[0].style.visibility = "visible";
    selects[1].style.visibility = "visible";
    selects[2].style.visibility = "visible";
  }

  delete mbd;
  delete overlay;

  var content = document.getElementById(id_box);
  content.appendChild(subContent);

  document.getElementsByTagName('html')[0].style.overflow="auto";

  return false;

}

function thickbox(w,h,content){

      document.getElementsByTagName('html')[0].style.overflow="hidden";

      var posScroll = getScrollPosition();

      var overlay= document.createElement('div');
      overlay.id = 'overlay';
      overlay.style.position = 'absolute';
      overlay.style.width = screen.availWidth+"px";
      overlay.style.height = '2000px';
      overlay.style.top=0;
      overlay.style.left=0;
      overlay.style.zIndex=999;
      document.getElementsByTagName('body')[0].appendChild(overlay);
      overlay.style.display = "block";

      var mbdbox= document.createElement('div');
      mbdbox.id = "mbdthx";

      mbdbox.style.width = w+'px';
      mbdbox.style.height = h+'px';
      mbdbox.style.top= (posScroll[1]+20)+'px';
      mbdbox.style.left= "50%";
      mbdbox.style.marginLeft= ((w/2)*(-1))+'px';
      mbdbox.style.top= "50%";
      mbdbox.style.marginTop= ((h/2)*(-1))+'px';
      mbdbox.style.zIndex=1000;
      mbdbox.style.padding="8px";
      mbdbox.innerHTML = content;
      document.getElementsByTagName('body')[0].appendChild(mbdbox);
      mbdbox.style.display = "block";

      var selects = document.getElementsByTagName('select');
      if(selects.length == 2){
        selects[0].style.visibility = "hidden";
        selects[1].style.visibility = "hidden";
      }

      //Cufon.replace('#mbdthx h2');
}

function close_thickbox(){
  var overlay = document.getElementById("overlay");
  var mbd = document.getElementById("mbdthx");
  var subContent = mbd.getElementsByTagName('div')[0];
  mbd.removeChild(subContent);

  document.getElementsByTagName('body')[0].removeChild(mbd);
  document.getElementsByTagName('body')[0].removeChild(overlay);

  var selects = document.getElementsByTagName('select');
  if(selects.length == 2){
    selects[0].style.visibility = "visible";
    selects[1].style.visibility = "visible";
  }

  delete mbd;
  delete overlay;

  document.getElementsByTagName('html')[0].style.overflow="auto";

  return false;

}

//ajout aux favoris
function addFavorite(id,type){

  var xhr = createXHR();
  xhr.onreadystatechange=function(){
    if(xhr.readyState==4){

      thickbox(300,60,xhr.responseText);

      return false;
    }
  }

  if(document.getElementById('idAge').value != '')
    xhr.open("GET","../ajax/add_favorite.ajax.php?id="+id+"&type="+type,true);
  else
    xhr.open("GET","ajax/add_favorite.ajax.php?id="+id+"&type="+type,true);

  xhr.send(null);

  return false;
}


//sauvegarde de la recherche
function saveSearch(alert){

  var xhr = createXHR();
  xhr.onreadystatechange=function(){
    if(xhr.readyState==4){

      thickbox(300,60,xhr.responseText);

      return false;
    }
  }
  xhr.open("GET","ajax/save_search.ajax.php?alert="+alert,true);
  xhr.send(null);

  return false;
}
/* /fiche annonce */

/* TinyAccordeon */
var TINY={};

function T$(i){return document.getElementById(i)}
function T$$(e,p){return p.getElementsByTagName(e)}

TINY.accordion=function(){
	function slider(n){this.n=n; this.a=[]}
	slider.prototype.init=function(t,e,m,o,k){
		var a=T$(t), i=s=0, n=a.childNodes, l=n.length; this.s=k||0; this.m=m||0;
		for(i;i<l;i++){
			var v=n[i];
			if(v.nodeType!=3){
				this.a[s]={}; this.a[s].h=h=T$$(e,v)[0]; this.a[s].c=c=T$$('div',v)[0]; h.onclick=new Function(this.n+'.pr(0,'+s+')');
				if(o==s){h.className=this.s; c.style.height='auto'; c.d=1}else{c.style.height=0; c.d=-1} s++
			}
		}
		this.l=s
	};
	slider.prototype.pr=function(f,d){
		for(var i=0;i<this.l;i++){
			var h=this.a[i].h, c=this.a[i].c, k=c.style.height; k=k=='auto'?1:parseInt(k); clearInterval(c.t);
			if((k!=1&&c.d==-1)&&(f==1||i==d)){
				c.style.height=''; c.m=c.offsetHeight; c.style.height=k+'px'; c.d=1; h.className=this.s; su(c,1)
			}else if(k>0&&(f==-1||this.m||i==d)){
				c.d=-1; h.className=''; su(c,-1)
			}
		}
	};
	function su(c){c.t=setInterval(function(){sl(c)},20)};
	function sl(c){
		var h=c.offsetHeight, d=c.d==1?c.m-h:h; c.style.height=h+(Math.ceil(d/5)*c.d)+'px';
		c.style.opacity=h/c.m; c.style.filter='alpha(opacity='+h*100/c.m+')';
		if((c.d==1&&h>=c.m)||(c.d!=1&&h==1)){if(c.d==1){c.style.height='auto'} clearInterval(c.t)}
	};
	return{slider:slider}
}();
/* /TinyAccordeon */

/* TinyTooltip */
var tooltip=function(){
	var id = 'tt';
	var top = 3;
	var left = 3;
	var maxw = 300;
	var speed = 100;
	var timer = 100;
	var endalpha = 85;
	var alpha = 0;
	var tt,t,c,b,h;
	var ie = document.all ? true : false;
	return{
		show:function(v,w){
			if(tt == null){
				tt = document.createElement('div');
				tt.setAttribute('id',id);
				t = document.createElement('div');
				t.setAttribute('id',id + 'top');
				c = document.createElement('div');
				c.setAttribute('id',id + 'cont');
				b = document.createElement('div');
				b.setAttribute('id',id + 'bot');
				tt.appendChild(t);
				tt.appendChild(c);
				tt.appendChild(b);
				document.body.appendChild(tt);
				tt.style.opacity = 0;
				tt.style.filter = 'alpha(opacity=0)';
				document.onmousemove = this.pos;
			}
			tt.style.display = 'block';
			c.innerHTML = v;
			tt.style.width = w ? w + 'px' : 'auto';
			if(!w && ie){
				t.style.display = 'none';
				b.style.display = 'none';
				tt.style.width = tt.offsetWidth;
				t.style.display = 'block';
				b.style.display = 'block';
			}
			if(tt.offsetWidth > maxw){tt.style.width = maxw + 'px'}
			h = parseInt(tt.offsetHeight) + top;
			clearInterval(tt.timer);
			tt.timer = setInterval(function(){tooltip.fade(1)},timer);
		},
		pos:function(e){
			var u = ie ? event.clientY + document.documentElement.scrollTop : e.pageY;
			var l = ie ? event.clientX + document.documentElement.scrollLeft : e.pageX;
			tt.style.top = (u - h) + 'px';
			tt.style.left = (l + left) + 'px';
		},
		fade:function(d){
			var a = alpha;
			if((a != endalpha && d == 1) || (a != 0 && d == -1)){
				var i = speed;
				if(endalpha - a < speed && d == 1){
					i = endalpha - a;
				}else if(alpha < speed && d == -1){
					i = a;
				}
				alpha = a + (i * d);
				tt.style.opacity = alpha * .01;
				tt.style.filter = 'alpha(opacity=' + alpha + ')';
			}else{
				clearInterval(tt.timer);
				if(d == -1){tt.style.display = 'none'}
			}
		},
		hide:function(){
			clearInterval(tt.timer);
			tt.timer = setInterval(function(){tooltip.fade(-1)},timer);
		}
	};
}();
/* /TinyTooltip */


/* autocompletion */

var citySelected = '';
var myScrollTop = 0;
function autoCompletion(event,field,id_autocompletion,from){

  var autoCompletion = document.getElementById(id_autocompletion);

  if(event.keyCode == 40){
    if(citySelected == '')
      autoComplectionSelectCity(autoCompletion.firstChild);
    else
      if(citySelected != autoCompletion.lastChild)
        autoComplectionSelectCity(citySelected.nextSibling);
    citySelected.scrollIntoView(false);
  }

  if(event.keyCode == 38){
    if(citySelected != ''){
      if(citySelected != autoCompletion.firstChild){
        autoComplectionSelectCity(citySelected.previousSibling);
        citySelected.scrollIntoView(false);
      }
      else
        autoComplectionSelectCity('');
    }
  }

  if(event.keyCode == 13){
    if(citySelected != ''){
      field.value = citySelected.firstChild.innerHTML;
      autoCompletion.innerHTML = '';
      autoCompletion.style.display = 'none';
      citySelected = '';
      myScrollTop = 0;
      return false;
    }
  }

  if(event.keyCode >= 65 && event.keyCode <= 90 || event.keyCode == 109 || event.keyCode == 32 || event.keyCode == 8 || (event.keyCode == 40 && autoCompletion.style.display == 'none')){

    if(field.value.length > 2 && !is_numeric(field.value)){

      citySelected = '';
      var xhr = createXHR();
      xhr.onreadystatechange=function(){
        if(xhr.readyState==4){

          var villes = eval(xhr.responseText);

          if(villes.length != 0 && villes.length != 1){

            autoCompletion.innerHTML = '';
            autoCompletion.style.display = 'block';

            for(var i =0; i<villes.length; i++){
              var city = document.createElement('li');
              city.onmouseover = function(){ autoComplectionSelectCity(this); return false;}
              if(i%2 == 0)  city.className = 'odd';
              else city.className = 'even';
              var a_city = document.createElement('a');
              a_city.innerHTML = villes[i]['libelle'];
              a_city.onclick = function() {
                field.value = this.innerHTML;
                autoCompletion.innerHTML = '';
                autoCompletion.style.display = 'none';
                citySelected = '';
                myScrollTop = 0;
              }
              city.appendChild(a_city);
              autoCompletion.appendChild(city);
            }

            autoCompletion.style.padding = '3px 2px 3px 2px';
            if(from == 1) { autoCompletion.style.top = '278px'; autoCompletion.style.left = '15px';}
            else if(from == 2)  { autoCompletion.style.top = '278px'; autoCompletion.style.left = '173px';}
            else if(from == 3)  { autoCompletion.style.top = '301px'; autoCompletion.style.left = '15px';}
            else if(from == 4)  { autoCompletion.style.top = '301px'; autoCompletion.style.left = '173px';}
            else if(from == 5) { autoCompletion.style.top = '153px'; autoCompletion.style.left = '160px';}
            else if(from == 6)  { autoCompletion.style.top = '153px'; autoCompletion.style.left = '251px';}
            else if(from == 7)  { autoCompletion.style.top = '176px'; autoCompletion.style.left = '160px';}
            else if(from == 8)  { autoCompletion.style.top = '176px'; autoCompletion.style.left = '251px';}
            //document.getElementById(trigramme+'choiceLocalSearchZone').appendChild(autoCompletion);
          }else{
            autoCompletion.style.display = 'none';
            citySelected = '';
            myScrollTop = 0;
          }
        }
      }

      xhr.open("GET","ajax/autoCompletion.ajax.php?text="+field.value,true);
      xhr.send(null);

    }else{
      autoCompletion.style.display = 'none';
      citySelected = '';
      myScrollTop = 0;
    }
  }
}

function is_numeric(num){
		var exp = new RegExp("^[0-9-.]*$","g");
		return exp.test(num);
}

function autoComplectionSelectCity(city){
  if(citySelected != ''){
    var classname = citySelected.className.split(' ');
    citySelected.className = classname[0];  //odd ou even
  }
  citySelected = city;
  if(city != ''){
    citySelected.className = citySelected.className+' selected';
  }
}

/*  /autocompletion */


