// Chargement des éléments du carousel d'accueil
function launchCarousel() {
	// Execution de cette fonction lorsque le DOM sera entièrement chargé
	$(document).ready(function() {
		// Calcul préalables :
			// Element de référence pour la zone de visualisation (ici le premier item)
			Reference = $(".carrousel li:first-child");
			// Nombre d'éléments de la liste
			NbElement = $(".carrousel li").length;
		// Ciblage de la bande de diapositives
		$(".carrousel")
			// Englobage de la liste par la zone de visualisation
			.wrap('<div class="carrousel-conteneur"></div>')
			// Application d'une largeur à la bande de diapositive afin de conserver une structrure horizontale
			.css("width", (Reference.width() * NbElement) );
		// Ciblage de la zone de visualisation
		$(".carrousel-conteneur")
			// Application de la largeur d'une seule diapositive
			.width(  Reference.width()  )
			// Application de la hauteur d'une seule diapositive
			.height( Reference.height() )
			// Blocage des débordements
			.css("overflow", "hidden");
	});
}



//fonctions pour le défilement automatique des slides sur la page d'accueil==================
var c=2; //on débute avec le slide n°2
var t;
var timer_is_on=0;
var duree = 4000;
var totalSlides;

// Changement du slide en page d'accueil en fonction du numéro passé
function changeSlide(num) {
	// Mouvement du carrousel en arrière-plan
	$(".carrousel").animate({
	   marginLeft : - (Reference.width() * (num-1))
	});
	//on remet toutes les classes des boutons en normal "btn" et on affecte la classe "selected" au bouton cliqué
	for (var i=1;i<=totalSlides;i++){
		document.getElementById('changeSlide'+i).className = "btn";
	}
	document.getElementById('changeSlide'+num).className = "btnSelected";
}



//------ change les slides avec le timer -------
function compteurDiapo() {
  changeSlide(c);
  if(c==totalSlides) {c=0;}
  c=c+1;
  t=setTimeout("compteurDiapo()",duree);
}
//------ lance le timer -------
function doTimer() { 
  if (!timer_is_on) {
    timer_is_on=1;
    setTimeout("compteurDiapo()",duree);
	totalSlides = document.getElementById('nbSlides').value;
	var largeurItem = 28;
	var paddingLeftValue = 953 - (largeurItem*totalSlides);
	var widthValue = largeurItem*totalSlides;
	document.getElementById('navPanel').style.paddingLeft = paddingLeftValue+"px";
	document.getElementById('navPanel').style.width = widthValue+"px";
  }
}
//------ stoppe le timer -------
function stopCount() {
  clearTimeout(t);
  timer_is_on=0;
}



// Chargement des éléments du carousel sur la page de détail du bien
function createListMedia() {
	// Execution de cette fonction lorsque le DOM sera entièrement chargé
	$(document).ready(function() {
		// Calcul préalables :
			// Element de référence pour la zone de visualisation (ici le premier item)
			Reference = $(".listMedia li:first-child");
			// Nombre d'éléments de la liste
			NbElement = $(".listMedia li").length;
		// Ciblage de la bande de diapositives
		$(".listMedia")
			// Englobage de la liste par la zone de visualisation
			.wrap('<div class="listMedia-conteneur"></div>')
			// Application d'une largeur à la bande de diapositive afin de conserver une structure verticale
			.css("height", (Reference.height() * NbElement) );
		// Ciblage de la zone de visualisation
		$(".listMedia-conteneur")
			// Application de la largeur d'une seule diapositive
			.width(  Reference.width()  )
			// Application de la hauteur d'une seule diapositive
			//.height( Reference.height() )
			// Blocage des débordements
			.css("overflow", "hidden");
	});
}



// Changement d'un élément du slide sur la page détail du bien en fonction du numéro passé (clic sur une diapo spécifique)
function switchMedia(num) {
	// Mouvement du carrousel en arrière-plan
	$(".listMedia").animate({
	   marginTop : - (Reference.height() * (num-1))
	});
}



// Actions de navigation sur le slider des médias
$(document).ready(function() {
	// Initialisation du compteur
	Cpt = 0;
	// Clic sur le bouton "Suivant"
	$("#listMedia-next").click(function() {
		// Si le compteur est inférieur au nombre de diaposives moins 1
		if(Cpt < (NbElement-1) ) {
			// Ajout +1 au compteur (nous allons sur la diapositive suivante)
			Cpt++;
			$(".listMedia").animate({
				marginTop : - (Reference.height() * Cpt)
			});
		}
		return false;
	});
	// Clic sur le bouton "Précédent"
	$("#listMedia-prev").click(function() {
		// Si le compteur est supérieur à zéro
		if(Cpt > 0) {
			// Soustraction -1 au compteur (nous allons sur la diapositive précédente)
			Cpt--;
			$(".listMedia").animate({
				marginTop : - (Reference.height() * Cpt)
			});
		}
		return false;
	});
});



//=============================================== Gestion des cookies ==========================================
function SetCookie(name, value) {
	var argv=SetCookie.arguments;
	var argc=SetCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=name+"="+escape(value)+
		((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
		((path==null) ? "" : ("; path="+path))+
		((domain==null) ? "" : ("; domain="+domain))+
		((secure==true) ? "; secure" : "");				
}

function GetCookie(name) {	
	var arg=name+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen) {
		var j=i+alen;
		if (document.cookie.substring(i, j) == arg)
                        return getCookieVal (j);
                i=document.cookie.indexOf(" ",i)+1;
                        if (i==0) break;
        }
	return "";	
}

function getCookieVal(offset) {	
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1)
      		endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));	
}

function DelCookie(nom) {    
    dte=new Date;
    dte.setFullYear(dte.getFullYear()-1);
    SetCookie(nom,null,dte);    
}
//============================================= Fin Gestion des cookies ========================================



// ######################################### AJAX #######################################
//création de l'objet ajax ==============================================================
function getXhr(){
      var xhr = null; 
   	  if(window.XMLHttpRequest) // Firefox et autres
		  xhr = new XMLHttpRequest(); 
	  else if(window.ActiveXObject){ // Internet Explorer 
		  try {
		        xhr = new ActiveXObject("Msxml2.XMLHTTP");
		  } catch (e) {
		        xhr = new ActiveXObject("Microsoft.XMLHTTP");
		  }
	  }
	  else { // XMLHttpRequest non supporté par le navigateur 
		  alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
		  xhr = false; 
	  } 
      return xhr
}
// ######################################### AJAX #######################################



// Méthode qui permet de changer le type de média
function changeMedia(type,ag,num){
	var xhr = getXhr()
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
				contentBox = xhr.responseText;
				document.getElementById('contenuMedia').innerHTML = contentBox;
			}
	}
	xhr.open("GET","media.php?mediaType="+type+"&ag="+ag+"&num="+num);
	xhr.send(null);
	if(type=="video") {document.getElementById('div4lightbox').style.display = "none";}
	else {document.getElementById('div4lightbox').style.display = "block";}
}



//---- Changer de page dans les listes de biens
function changePage(i){
	document.getElementById('numpage').value = i;
	document.frmPages.submit();
}



//---- Modifie le formulaire caché et le valide
function updateRequete(champ,valeur){
	document.getElementById(champ).value = valeur;
	document.frmPages.submit();
}



//---- Valide le formulaire de recherche rapide par référence
function quickSearch(){
	document.frmQuickSearch.submit();
}



//---- Contacter l'agence pour un bien précis
function ContactBienPrecis(chaine){
	document.getElementById('msg_form').value = 'Merci de me contacter pour le bien référencé '+chaine+' vu sur votre site web.';
	document.getElementById('ref_form').value = chaine;
}



//---- Contacter général. Vide le champ message
function cleanTextArea(){
	document.getElementById('msg_form').value = '';
}



// Google Maps ============================================
var geocoder;
var map;

function initialize(name,zone) {
	geocoder = new google.maps.Geocoder();
	if(zone==1) {var zoomCarte = 13;} else {zoomCarte = 16;}
	var latlng = new google.maps.LatLng(45.899088, 6.131744);
	var myOptions = {
	  zoom: zoomCarte,
	  center: latlng,
	  mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	map = new google.maps.Map(document.getElementById(name), myOptions);
	codeAddress();
}

function codeAddress() {
	var address = document.getElementById("address").value;
	geocoder.geocode( { 'address': address}, function(results, status) {
	  if (status == google.maps.GeocoderStatus.OK) {
		map.setCenter(results[0].geometry.location);
		var marker = new google.maps.Marker({
			map: map, 
			position: results[0].geometry.location
		});
	  } else {
		alert("Geocode was not successful for the following reason: " + status);
	  }
	});
}



// ouverture des fenêtres d'actions
function openW(which) {
	$('#voile').fadeIn(300);
	var position;
	if(which=="P360") {position = "-425px";} else {position = "-350px";}
	document.getElementById('pop'+which).style.marginLeft = position;
}


// fermeture des fenêtres d'actions
function fermeW(which) {
	document.getElementById('pop'+which).style.marginLeft = "-2000px";
	$('#voile').fadeOut(300);
}



// Choix de la calculette
function calculette(choix) {
	if(choix == "A") {
		document.getElementById('calculA').style.display = "block";
		document.getElementById('calculB').style.display = "none";
		document.getElementById('calculC').style.display = "none";
		document.getElementById('choixCalcul1').className = "selected";
		document.getElementById('choixCalcul2').className = "none";
		document.getElementById('choixCalcul3').className = "none";
		document.getElementById('txtA').style.display = "block";
		document.getElementById('txtB').style.display = "none";
		document.getElementById('txtC').style.display = "none";
		return false;
	} 
	else if(choix == "B") {
		document.getElementById('calculA').style.display = "none";
		document.getElementById('calculB').style.display = "block";
		document.getElementById('calculC').style.display = "none";
		document.getElementById('choixCalcul1').className = "none";
		document.getElementById('choixCalcul2').className = "selected";
		document.getElementById('choixCalcul3').className = "none";
		document.getElementById('txtA').style.display = "none";
		document.getElementById('txtB').style.display = "block";
		document.getElementById('txtC').style.display = "none";
		return false;
	}
	else if(choix == "C") {
		document.getElementById('calculA').style.display = "none";
		document.getElementById('calculB').style.display = "none";
		document.getElementById('calculC').style.display = "block";
		document.getElementById('choixCalcul1').className = "none";
		document.getElementById('choixCalcul2').className = "none";
		document.getElementById('choixCalcul3').className = "selected";
		document.getElementById('txtA').style.display = "none";
		document.getElementById('txtB').style.display = "none";
		document.getElementById('txtC').style.display = "block";
		return false;
	}
}



// ============== Calcul des mensualités ==================================
function calculermensualite(action) {
			var action = action;
			var form = document.forms['mensualite'];
			var montant = parseInt(form.mMontant.value);
		var duree = parseInt(form.mDuree.value) * 12;
		var taux = parseFloat(form.mTaux.value) / 100 / 12;
			var mensualite = montant * taux / (1 - Math.pow(1 / (1 + taux), duree));
			var couttotal = mensualite * duree;
			var interets = couttotal - montant;
		if (mensualite > 0) {
			var mensualitesA = (Math.round(mensualite*100))/100;
			var interetsA = (Math.round(interets*100))/100;
			var coutTotalA = (Math.round(couttotal*100))/100;
			document.getElementById("txtA").innerHTML = "Mensualités: <b>" + mensualitesA + " &euro;</b><br/>Intérêts: <b>" + interetsA + " &euro;</b><br/>Coût total du crédit: <b>" + coutTotalA + " &euro;</b>";
		}
		else {
					if (action=="calcul") {
						 document.getElementById("txtA").value = "Donn&eacute;es invalides";
					}
		}
		return false;
}



	
// ============== Calcul de la capacité d'emprunt ==========================
function calculercapacite(action) {
			var action = action;
			var form = document.forms['capacite'];
			var mensualite = parseInt(form.cMensualite.value);
		var duree = parseInt(form.cDuree.value) * 12;
		var taux = parseFloat(form.cTaux.value) / 100 / 12;
			var montant = mensualite * (1 - Math.pow(1 / (1 + taux), duree)) / taux;
			var totalcredit = mensualite * duree;
			var interets = totalcredit - montant;
		if (montant > 0) {
			var capaciteB = (Math.round(montant*100))/100;
			var interetsB = (Math.round(interets*100))/100;
			var coutTotalB = (Math.round(totalcredit*100))/100;
			document.getElementById("txtB").innerHTML = "Montant pouvant être emprunté: <b>" + capaciteB + " &euro;</b><br/>Intérêts: <b>" + interetsB + " &euro;</b><br/>Coût total du crédit: <b>" + coutTotalB + " &euro;</b>";
		}
		else {
					if (action=="calcul") {
						 document.getElementById("txtB").innerHTML = "Donn&eacute;es invalides";
					}
		}
		return false;
}



	
// ============== Calcul l'endettement ======================================
function calculerendettement(action) {
			var action = action;
			var form = document.forms['endettement'];
			var salaires = parseInt(form.eSalaires.value);
			var revenus = parseInt(form.eRevenus.value);
			var charges = parseInt(form.eCharges.value);
			if (isNaN(salaires)) {salaires = 0;}
			if (isNaN(revenus)) {revenus = 0;}
			if (isNaN(charges)) {charges = 0;}
			if ((salaires + revenus) > 0) {
				var taux;
				var msg;
				taux = (Math.abs(charges) / (salaires + revenus)) * 100;
				var endet = (Math.round(taux*100))/100;
					if(endet >= 33) {msg = "Vous avez atteint la limite maximale d'endettement prévue par la loi.";}
					else {msg = "Sur le seul critère du taux d'endettement, votre dossier est acceptable.";}
					document.getElementById("txtC").innerHTML = "Taux d'endettement: <b>" + endet + " %</b><br/><br/>" + msg;
			} else {
					if (action == "calcul") {
						document.getElementById("txtC").innerHTML = "Donn&eacute;es invalides";
					}
			}
			return false;
}



// ################## SELECTION #################################
//---- Ajout à la sélection
function ajoutSelection(bicodag) {
	
	var value = GetCookie("SelecImmoone");
		if(value=="") {
			SetCookie("SelecImmoone",bicodag);
		} else {
			var new_value = value+","+bicodag;
			SetCookie("SelecImmoone",new_value);
		}
	alert('Le bien a été sauvegardé dans votre sélection !');
}

//---- Supprimer de la sélection
function supprimerSelection(cod,agcod) {
		
	var str = GetCookie("SelecImmoone");
	var tableau = str.split(',');
	//récupère la position du code dans le tableau
	var pos = array_search(cod,tableau);
	//méthode qui retire l'élément ayant la position déterminée au dessus
	//alert(pos);
	tableau.splice(pos,1);
	
	var new_value = tableau;
	SetCookie("SelecImmoone",new_value);
	//document.location.href = "selection.php";
	//alert('Le bien a été supprimé de votre sélection !');
	refreshSelection(agcod);
}

//fonction qui permet de rechercher dans le tableau
function array_search(what, where){
var index_du_tableau=-1
 
	for(elt in where){index_du_tableau++;
			 if (where[elt]==what){return index_du_tableau}
						 }
	index_du_tableau=-1;
	return index_du_tableau
}

// Méthode qui permet de rafraîchir la liste des biens sélectionnés
function refreshSelection(agcod){
	var chemin = '../';
	var cookieUser = GetCookie("SelecImmoone");
	var xhr = getXhr()
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
				contentBox = xhr.responseText;
				document.getElementById('listeSelec').innerHTML = contentBox;
			} else {
				document.getElementById('listeSelec').innerHTML = '<div style="text-align:center;width:100%;"><img src="../img/ajax-loader.gif"></div>';
			}
	}
	var file = chemin+"selection.php?ag="+agcod+"&ck="+cookieUser;
	xhr.open("GET",file);
	xhr.send(null);
}
// ################## FIN SELECTION #################################

