Position.includeScrollOffsets = true;
Position.getPageSize = function() {
  var xScroll, yScroll;

  if (window.scrollMaxX) {  
    xScroll = window.innerWidth  + window.scrollMaxX;
    yScroll = window.innerHeight + window.scrollMaxY;
  } else {
    xScroll = document.body.scrollWidth;
    yScroll = document.body.scrollHeight;
  } 
  
  var windowWidth, windowHeight;
  if (self.innerHeight) { // all except Explorer
    windowWidth = self.innerWidth;
    windowHeight = self.innerHeight;
  } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
  } else if (document.body) { // other Explorers
    windowWidth = document.body.clientWidth;
    windowHeight = document.body.clientHeight;
  }
  // for small pages with total height less then height of the viewport
  pageHeight = Math.max(windowHeight, yScroll);

  // for small pages with total width less then width of the viewport
  pageWidth = Math.max(windowWidth, xScroll);

  return { page: { width: pageWidth, height: pageHeight }, window: { width: windowWidth, height: windowHeight } };
}
Effect.HScroll = Class.create();
 Object.extend(Object.extend(Effect.HScroll.prototype, Effect.Base.prototype), {
   initialize: function(delta) {
     this.scrollStart = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
     
     var w = Position.getPageSize();
     if(this.scrollStart + delta < 0) delta = -this.scrollStart;
     //if(this.scrollStart + delta > (w.page.width-w.window.width)) delta = (w.page.width-w.window.width) - this.scrollStart;
     
     this.delta   = delta;
     
     this.start(arguments[1] || {});
   },
   update: function(position) {
     Position.prepare();
     window.scrollTo(this.scrollStart + (position*this.delta), 0); 
   }
 });
 
Effect.HScrollTo = Class.create();
Object.extend(Object.extend(Effect.HScrollTo.prototype, Effect.Base.prototype), {
  initialize: function(scrollEnd) {
    this.scrollStart = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
    
    var delta = scrollEnd - this.scrollStart;
    var w = Position.getPageSize();
    if(this.scrollStart + delta < 0) delta = -this.scrollStart;
    if(this.scrollStart + delta > (w.page.width-w.window.width)) delta = (w.page.width-w.window.width) - this.scrollStart;
    
    this.delta   = delta;
    
    this.start(arguments[1] || {});
  },
  update: function(position) {
    Position.prepare();
    window.scrollTo(this.scrollStart + (position*this.delta), 0); 
  }
});
Effect.HScrollToElement = function(element, direction) {
  element = $(element);

  var viewportMiddle = Position.getPageSize().window.width/2;
  var scrollStart = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
  var elementMiddle = element.offsetWidth/2 + Position.cumulativeOffset(element).first();
  var offset = scrollStart + viewportMiddle;
  var clickOffset = Prototype.Browser.IE ? 20 : 17; //offset to keep arrows visible at 800x600
  if (direction == 1)
    var delta = elementMiddle - offset + clickOffset; 
  else
    var delta = -(offset - elementMiddle) - clickOffset;
  new Effect.HScroll(delta);
}


function showPhotos(id){
	var help = "help" + id;
	var area = "areaPhotos" + id;
	if($F(help)==0){
		$(area).style.visibility = "hidden";
		$(help).value = 2;
		new Effect.Move("galleryPhotos" + id, {x:110, duration:1});
		setTimeout("changeValu("+id+",1)", 1100); //setTimeout("$("+help+").value=1",1100);
	}
}
function hidePhotos(id){
	var help = "help" + id;
	var area = "areaPhotos" + id;
	if($F(help)==1){
		$(area).style.visibility = "visible";
		$(help).value = 2;
		new Effect.Move("galleryPhotos"+id, {x:-110, duration:1});
		setTimeout("changeValu("+id+",0)", 1100);
	}
}
function changeValu(id, num){
	$('help'+id).value = num;
}
function topPhoto(id){
	var action = 'action' + id;
	if($F(action)==0){
		$(action).value = 1;
		$('top'+id).value = $F('top'+id) - 1;
		$('bottom'+id).value = ($F('bottom'+id)*1.0) + 1.0;
		
		if($F('top'+id) == 0){
			$('topArrow'+id).style.visibility = "hidden";
			$('topLink'+id).onclick = function(){return false;}
		}
		if($F('bottom'+id) > 0){
			$('bottomArrow'+id).style.visibility = "visible";
			$('bottomLink'+id).onclick = function(){bottomPhoto(id); return false;}
		}

		new Effect.Move("gallery" + id, {y:92, duration:1});
		setTimeout("changeValue("+id+")", 1100); //setTimeout("$("+action+").value=0",1100);
	}
}	
function bottomPhoto(id){
	var action = 'action' + id;
	if($F('action'+id)==0){
		$(action).value = 1;
		$('top'+id).value = ($F('top'+id)*1.0) + 1.0;
		$('bottom'+id).value = $F('bottom'+id) - 1;
		
		if($F('top'+id) > 0){
			$('topArrow'+id).style.visibility = "visible";
			$('topLink'+id).onclick = function(){topPhoto(id); return false;}
		}
		if($F('bottom'+id) == 0){
			$('bottomArrow'+id).style.visibility = "hidden";
			$('bottomLink'+id).onclick = function(){return false;}
		}	

		new Effect.Move("gallery" + id, {y:-92, duration:1});
		setTimeout("changeValue("+id+")", 1100);
	}
}
function changeValue(id){
	$('action'+id).value = 0;
}


function showInfos(id){
	stopDiapo();
	$('infosHelp'+id).value = 2;
	hideAll(id, 'infos');
	$("infosButton"+id).style.visibility="hidden";
	new Effect.Move("allInfos"+id, {x:-500, duration:1.2});
	setTimeout("changee("+id+", 1)", 1300);
}	
function hideInfos(id){
	$('infosHelp'+id).value = 2;
	new Effect.Move("allInfos"+id, {x:500, duration:1.2});
	setTimeout("hideInfos2("+id+")", 1300);
}
function hideInfos2(id){
	$('infosButton'+id).style.visibility="visible";
	$('infosHelp'+id).value = 0;
}
function changee(id, num){
	$('infosHelp'+id).value = num;
}


function hScroll(num){
	if(num*1.0<0)
		new Effect.HScrollToElement('contenupage');
	else
		new Effect.HScrollToElement('bien'+num);
}

function showNoPrivilege(id){
	$('noPrivilegeHelp'+id).value = 2;
	hideAll(id, 'noPrivilege');
	new Effect.Grow('noPrivilege'+id, {direction: 'center', duration: 1.2});
	setTimeout(function(){$('noPrivilegeHelp'+id).value = 1;}, 1300);
}
function hideNoPrivilege(id){
	$('noPrivilegeHelp'+id).value = 2;
	new Effect.Shrink('noPrivilege'+id, {direction: 'center', duration: 1.2});
	setTimeout(function(){$('noPrivilegeHelp'+id).value = 0;}, 1300);
}

function showSendFriend(id){
	stopDiapo();
	if(!$F('connected')){
		showNoPrivilege(id);
	}
	else{
		if($F('friendHelp'+id) == 0){
			$('friendHelp'+id).value = 2;
			hideAll(id, 'friend');
			new Effect.Grow('ami'+id, {direction: 'center', duration: 1.2});
			setTimeout("changeVal("+id+", 1)", 1300);
		}
	}
}
function hideSendFriend(id){
	if($F('friendHelp'+id) == 1){
		$('friendHelp'+id).value = 2;
		new Effect.Shrink('ami'+id, {duration:1.2});
		setTimeout("changeVal("+id+", 0)", 1300);
	}
}
function changeVal(id, num){
	$('friendHelp'+id).value = num;
}
function sendMailFriend(id){
	var reg= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
	if(reg.test($F('monEmail'+id))){
		if(reg.test($F('amiEmail'+id))){
			if($F('message'+id) != "Votre message"){
				new Ajax.Request(
					'php/mail_friend.php',
						{
						method: 'get',
						parameters: {email:$F('monEmail'+id), ami:$F('amiEmail'+id), message:$F('message'+id), ref:$F('ref'+id)},
						onSuccess: function(originalRequest) {
							if(originalRequest.responseText==1){
								alert('Votre email a bien ete envoye');
								hideSendFriend(id);
							}
							else
								alert("Une erreur est survenue. Votre email n'a pu etre envoye.\n Veuillez réessayer.");
						},
						onFailure: function() {alert("Erreur lors d'un appel AJAX")}
						}	
					);
			}
			else
				alert("Veuillez taper un message");
		}
		else
			alert("L'email de votre ami n'est pas valide");
	}
	else
		alert("Votre email n'est pas valide");
}

function diapo(id){
	if(!$F('connected')){showNoPrivilege(id);}
	else{$('stopDiapo').style.display = 'block';$('diapo').value=1; moveNext(id);}
}
function moveNext(id){
	if($F('diapo') == 1){
		if(id < $F('nbBiens')){hScroll(id);setTimeout(function(){moveNext(id*1.0+1.0)}, 5000);	}
		else {window.location.replace($F('urlNextPage'));}
	}
}
function stopDiapo(){
	if(!$('bienIndividuel')){
		$('stopDiapo').style.display = 'none';
		$('startDiapo').style.display = 'block';
		$('diapo').value = 0;
	}
}
function startDiapo(){
	var p = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
	var w = Position.getPageSize().window.width;
	var visibles = [];
	$R(1,CHAIX_SHOW_URL.length).each(function(i){
		var x = 1000 + 25 + ((i-1)*(750+160));
		if(p<=x && (p+w)>x) visibles.push(i-1);
		else if(p<=(x+725+125) && (p+w)>(x+800+50)) visibles.push(i-1);
  	});
	if(visibles.length==0){var id=0;}
	else{var id=visibles[parseInt(visibles.length/2)];}
	if(!$F('connected')){hScroll(id);showNoPrivilege(id);}
	else{$('startDiapo').style.display = 'none';$('stopDiapo').style.display = 'block';$('diapo').value = 1;moveNext(id);}
}

function popupWindow(url, type) {
	var width=100;var height=100;
	if(type=='plaquette'){width=800;height=600;}
	else if(type=='panoramique'){width=300;height=200;}
	else if(type=='plan'){width=800;height=600;}
  	window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width='+width+',height='+height+',screenX=150,screenY=150,top=150,left=150')
}

String.prototype.trim = function(){
	return this.replace(/^\s+/, "").replace(/\s+$/, "");
}

function showAddCart(id){
	stopDiapo();
	if(!$F('connected')){
		showNoPrivilege(id);
	}
	else{
		if($F('cartHelp'+id) == 0){
			new Ajax.Request('./php/cart.php',{method: 'get', parameters: {ref:$F('ref'+id)},
				onSuccess: function(originalRequest) {
					$F('cartHelp'+id).value = 2;
					hideAll(id, 'cart');
					var html = '<font style="font-size: 10px;">';
					html += '  <font style="color: rgb(204, 102, 0); font-size: 8px;">&gt;</font>';
					html += '<a href="' + $F('urlBien'+id) + '">';
					html += $F('cartInfos'+id);
					html += '  </a></font><br />';
					if(originalRequest.responseText == 0){
						if(!$('emptyCart')){$('nbEltCart').innerHTML=($('nbEltCart').innerHTML.trim())*1.0+1.0;html += $('cart_container').innerHTML;if($('nbEltCart').innerHTML.trim()==2){$('textEltCart').innerHTML="&eacute;l&eacute;ments";}}
						else{$('nbEltCart').innerHTML=1;$('textEltCart').innerHTML="&eacute;l&eacute;ment";$('seeCart').innerHTML="Voir tous";}
					} else{$('alreadyAddCart'+id).innerHTML = "Le bien se trouve d&eacute;j&agrave; dans le panier.";}
					new Effect.Grow('cart'+id, {direction: 'center', duration: 1.2});
					setTimeout("changeV("+id+", 1)", 1300);
					if(originalRequest.responseText == 0){$('cart_container').update(html);}
				},
				onFailure: function() {alert("Erreur lors d'un appel AJAX")}
				}	
			);	
		}
	}
}
function hideAddCart(id){
	if($F('cartHelp'+id) == 1){
		$('cartHelp'+id).value = 2;
		new Effect.Shrink('cart'+id, {duration:1.2});
		setTimeout("changeV("+id+", 0)", 1300);
	}
}
function changeV(id, num){
	$('cartHelp'+id).value = num;
}

function showContact(id){
	stopDiapo();
	if($F('contactHelp'+id) == 0){
		$('contactHelp'+id).value = 2;
		hideAll(id, 'contact');
		new Effect.Grow('contact'+id, {direction: 'center', duration: 1.2});
		setTimeout("changeVa("+id+", 1)", 1300);
	}
}
function hideContact(id){
	if($F('contactHelp'+id) == 1){
		$('contactHelp'+id).value = 2;
		new Effect.Shrink('contact'+id, {duration:1.2});//new Effect.Fade('contact'+id,  {duration:1, transition: Effect.Transitions.wobble });
		setTimeout("changeVa("+id+", 0)", 1300);
	}
}
function changeVa(id, num){
	$('contactHelp'+id).value = num;
}

function hideAll(id, src){
	if(src != 'cart'){
		if($F('cartHelp'+id) == 1)
			hideAddCart(id);
		else if($F('cartHelp'+id) == 2)
			setTimeout(function(){hideAddCart(id);}, 1300);
	}
	if(src != 'friend'){
		if($F('friendHelp'+id) == 1)
			hideSendFriend(id);
		else if($F('friendHelp'+id) == 2)
			setTimeout(function(){hideSendFriend(id);}, 1300);
	}
	if(src != 'contact'){
		if($F('contactHelp'+id) == 1)
			hideContact(id);
		else if($F('contactHelp'+id) == 2)
			setTimeout(function(){hideContact(id);}, 1300);
	}
	if(src != 'infos'){
		if($F('infosHelp'+id) == 1)
			hideInfos(id);
		else if($F('infosHelp'+id) == 2)
			setTimeout(function(){hideInfos(id);}, 1300);	
	}
	if(src != 'noPrivilege'){
		if($F('noPrivilegeHelp'+id) == 1)
			hideNoPrivilege(id);
		else if($F('noPrivilegeHelp'+id) == 2)
			setTimeout(function(){hideNoPrivilege(id);}, 1300);	
	}
}

function connect(id){
	new Ajax.Request(
		'php/connexion.php',
			{
			method: 'get',
			parameters: {email:$F('logEmail'+id), mdp:$F('logMdp'+id)},
			onSuccess: function(originalRequest) {if(originalRequest.responseText==1){$('goodConnexion'+id).innerHTML="CONNEXION  REUSSIE";$('buttonConnexion'+id).style.display="none";$('badConnexion'+id).innerHTML="";setTimeout(function(){window.location.reload();},500);}else {$('badConnexion'+id).innerHTML = "Informations incorrectes.";}},
			onFailure: function() {alert("Erreur lors d'un appel AJAX")}
			}	
		);
}

function sendMailContact(id){
	var reg= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
	if(reg.test($F('monEmail-'+id))){
		if($F('titreEmail-'+id) != ''){
			if($F('message-'+id) != "Votre message"){
				new Ajax.Request(
					'php/mail_contact.php',
						{
						method: 'get',
						parameters: {email:$F('monEmail-'+id), titre:$F('titreEmail-'+id), message:$F('message-'+id), ref:$F('ref'+id), tel:$F('monTel-'+id)},
						onSuccess: function(originalRequest) {
							if(originalRequest.responseText==1){
								alert('Merci pour votre confiance');
								hideContact(id);
							}
							else
								alert("Une erreur est survenue.\n Veuillez recommencer.");
						},
						onFailure: function() {alert("Erreur lors d'un appel AJAX")}
						}	
					);
			}
			else
				alert("Veuillez taper un message");
		}
		else
			alert("Veuillez taper un titre");
	}
	else
		alert("Votre email n'est pas valide");
}

function sendMailContactLoc(id){
	var reg= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
	if(reg.test($F('monEmail-'+id))){
		if($F('titreEmail-'+id) != ''){
			if($F('message-'+id) != "Votre message"){
				new Ajax.Request(
					'php/mail_contact_loc.php',
						{
						method: 'get',
						parameters: {email:$F('monEmail-'+id), titre:$F('titreEmail-'+id), message:$F('message-'+id), ref:$F('ref'+id), tel:$F('monTel-'+id)},
						onSuccess: function(originalRequest) {
							if(originalRequest.responseText==1){
								alert('Merci pour votre confiance');
								hideContact(id);
							}
							else
								alert("Une erreur est survenue.\n Veuillez recommencer.");
						},
						onFailure: function() {alert("Erreur lors d'un appel AJAX")}
						}	
					);
			}
			else
				alert("Veuillez taper un message");
		}
		else
			alert("Veuillez taper un titre");
	}
	else
		alert("Votre email n'est pas valide");
}


function displayPrice(val) { 
  var resultat = "";
  var tmp = "";
  for (var i=0; i<=val.length; i++) { 
  	tmp = val.charAt(i) + tmp; 
  } 
  for (var i=0; i<=val.length; i++) { 
  	if(i==0 || i==3 || i==6 || i==9)
	  	resultat += val.charAt(i) + " " ; 
	else
		resultat += val.charAt(i) ; 
  }
  return resultat;
} 

function updateRangePrice(val){
	val += "";
	var token = val.split(",");
	var prix1 = token[0] * 1.0;
	var prix2 = token[1] * 1.0;

	if(prix1>=1000000)	var prix1b = displayPrice(token[0]);
	else if(prix1>=1000){
		var tmp = token[0] - (parseInt(token[0]/1000)*1000);
		var prix1b = parseInt(token[0]/1000) + " " + (tmp==0?"000":tmp);
	}
	else var prix1b = token[0];
	if(prix2>=1000000)	var prix2b = displayPrice(token[1]);
	else if(prix2>=1000){
		var tmp = token[1] - (parseInt(token[1]/1000)*1000);
		var prix2b = parseInt(token[1]/1000) +  " " + (tmp==0?"000":tmp);
	}
	else var prix2b = token[1];

	//alert(prix1b+"-"+prix2b);
	if(prix1 > prix2){
		$('prixMin').update(prix2b+"&euro;");
		$('prixMax').update(prix1b+"&euro;");
		var prixMin = prix2;
		var prixMax = prix1;
	}
	else{
		$('prixMin').update(prix1b+"&euro;");
		$('prixMax').update(prix2b+"&euro;");
		var prixMin = prix1;
		var prixMax = prix2;
	}

	$('sliderMin').value = prixMin;
	$('sliderMax').value = prixMax;
	
	var prices = $F('priceRange').split(",");
	var towns = $F('townRange').split(",");
	var townss = $F('townUrl').split(",");
	var notFinished = true;
	for(var i=0; notFinished && i<prices.length;i++){
		if(prixMin <= prices[i])
			notFinished=false;
	}
	i = i-1;
	var notFinished = true;
	for(var j=(prices.length - 1); notFinished && j>=0;j--){
		if(prixMax >= prices[j])
			notFinished=false;
	}
	j = (j*1.0) + (1.0);
	
	var townsUrl = new Array(); var townsSelected = new Array(); var index; var k;
	for(index=0,k=i;k<=j;k++){
		townsUrl[index] = townss[k];
		townsSelected[index] = towns[k];
		index++;
	}
	townsUrl.sort().join(",");
	townsSelected.sort().join(",");
	
	if(i==j && (prices[i]<prixMin || prices[i]>prixMax))
		var resultat = 0;
	else
		var resultat = j - i + 1.0;
	
	if(resultat == 0)
		var html = "";
	else{
		if($F('ville')=="")
			var html = "<a style='font-size:13px;' href='" + $F('urlResults') + "min=" + prixMin + "&max=" + prixMax + "'>Voir r&eacute;sultats</a>";
		else
			var html = "<a style='font-size:13px;'  href='" + $F('urlResults') + "min=" + prixMin + "&max=" + prixMax + "&ville=" + $F('ville') + "'>Voir r&eacute;sultats</a>";
	}
	$('linkSlider').update(html);
			
	resultat += (resultat > 1)?" annonces":" annonce";	
	$('nbResultatsRecherche').update(resultat);
	
	if($('ville')){
		var html = "";var tmp="";var counter=0;
		html += "<option value='' >Toutes les villes ("+townsSelected.length+")</option>";
		var firstP = true;
		for(i=0;i<townsSelected.length;i++){
			
			if(tmp!=townsUrl[i]){
				if(firstP){firstP=false;}
				else{html+=" ("+counter+")</option>";}
				tmp = townsUrl[i];
				html += "<option value="+ townsUrl[i];
				if($F('villeSelected')==townsUrl[i]){html += " selected='selected' "}
				html += ">"+townsSelected[i];
				counter = 1;
			}
			else {
				counter++;
			}
		}
		html += " ("+counter+")</option>";
		$('ville').update(html);
	}
	
}
function loadPhotos() {
	if(_loaded) return;
	if(_loaderTimeout) clearTimeout(_loaderTimeout);
	_loaderTimeout = setTimeout(function(){
		var p = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
		var w = Position.getPageSize().window.width;
		var visibles = [];
		$R(1,CHAIX_SHOW_URL.length).each(function(i){
			var x = 1000 + 25 + ((i-1)*(750+160));
			if(p<=x && (p+w)>x) visibles.push(i);
			else if(p<=(x+725+125) && (p+w)>(x+800+50)) visibles.push(i);
	  	});
		var alphabet = new Array('a', 'b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
	  	visibles.each(function(i){
			var index = i-1;
			if($('photo'+index).src == "http://www.chaiximmobilier.com/images/loading.gif"){
		  		$('photo'+index).setOpacity(0);
				$('divPhoto'+index).style.top = "0px";
				$('photo'+index).src = CHAIX_SHOW_URL[index];
				new Effect.Opacity('photo'+index,{from:0, to:1, duration:4.0});
				for(var j=0; j<$F('tinyNb'+index);j++){
					$('tinyPhoto'+index+"-"+j).src = $F('tinyBegin'+index) + alphabet[j] + ".jpg";
				}
			}
		});
	}, 250);
}
function changePhoto(id, letter){
	stopDiapo();
	if($F('seephoto')){
		new Effect.Opacity('photo'+id,{from:1, to:0, duration:0.5});
		setTimeout(function(){
			$('photo'+id).src = "";
			//$('photo'+id).src = 'images/loading.gif';
			$('photo'+id).src = $F('tinyPath'+id) +  'thumbs.php?img=' + $F('tinyBase'+id) + letter + '.jpg&h=479&w=650';
			$('photo'+id).onload=function(){new Effect.Opacity('photo'+id,{from:0, to:1, duration:2.0})};
			//setTimeout(function(){
			//	new Effect.Opacity('photo'+id,{from:0.1, to:1, duration:2.0});
		//	}, 1100);
		}, 600);
	}
	else{
		showNoPrivilege(id);
	}
}

function town(){
	//location.replace("http://www.labib-web.com");
	location.replace($F('urlResults') + "min="+ $F('sliderMin') + "&max=" + $F('sliderMax') + "&ville=" + $F('ville'));
}

function montre(id) {
	for (var i = 1; i<=10; i++) {if ($('smenu'+i)) {$('smenu'+i).style.display='none';}}
	if ($(id)) {$(id).style.display='block';}
}


