// CREATION OBJET HTTP REQUEST
function getXhr(){
	if (window.XMLHttpRequest) xhr=new XMLHttpRequest(); // Firefox et autres
	else if (window.ActiveXObject) try { // Internet Explorer
		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;
	}
}//getXhr

// Inscription à la newsletter
function inscriptionNewsletter( lang ){
	
	// email newsletter input
	var email = document.getElementById( 'email_n' );
	
	// Vérification si email a été saisi
	var value = ''
	if ( email.value != initEmailNewsletter ) value = email.value;
	
	// Appel de la fonction créant l'objet Xhr
	getXhr();

	// Traitement
	xhr.onreadystatechange=function(){

		// On a une réponse
		if (xhr.readyState==4 && xhr.status==200){
			
			// Initialisation
			window.status='';
			
			// On recup la réponse
			var rep=xhr.responseText;
			
			// Réinitialise input
			email.value = initEmailNewsletter;
			
			// Message box
			alert( rep );
			
		}
		
	}
	
	// Initialisation des paramètres AJAX
	xhr.open('POST','/'+lang+'/layout/set/ajax/carre/newsletter',true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	window.status='Chargement en cours ...';
	xhr.send("email=" + value);
	
}

// Demande renseignements
function demandeRenseignements( lang ){
	
	// Variables
	var valueName = '';
	var valueEmail = '';
	var valuePhone = '';
	
	var inputName = document.getElementById( 'name_r' );
	var inputEmail = document.getElementById( 'email_r' );
	var inputPhone = document.getElementById( 'phone_r' );
	var inputInfo = document.getElementById( 'info_select' );
	
	// Vérification si champs ont été saisis
	if ( inputName.value != initNameRenseignements ) valueName = inputName.value;
	if ( inputEmail.value != initEmailRenseignements ) valueEmail = inputEmail.value;
	if ( inputPhone.value != initPhoneRenseignements ) valuePhone = inputPhone.value;
	
	// Appel de la fonction créant l'objet Xhr
	getXhr();

	// Traitement
	xhr.onreadystatechange=function(){

		// On a une réponse
		if (xhr.readyState==4 && xhr.status==200){
			
			// Initialisation
			window.status='';
			
			// On recup la réponse
			var rep=xhr.responseText;
			
			// Réinitialise input
			inputName.value = initNameRenseignements;
			inputEmail.value = initEmailRenseignements;
			inputPhone.value = initPhoneRenseignements;
			
			// Message box
			alert( rep );
			
		}
		
	}
	
	// Initialisation des paramètres AJAX
	xhr.open('POST','/'+lang+'/layout/set/ajax/carre/renseignements',true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	window.status='Chargement en cours ...';
	xhr.send("name=" + valueName + "&email=" + valueEmail + "&phone=" + valuePhone + "&info=" + inputInfo.value);
	
}

// Alertes
function addAlerte( userID, estateID, lang ){
	
	// TD contenant IMG
	var td = document.getElementById( 'img_alerte' );
	
	// Appel de la fonction créant l'objet Xhr
	getXhr();

	// Traitement
	xhr.onreadystatechange=function(){

		// On a une réponse
		if (xhr.readyState==4 && xhr.status==200){
			
			// Initialisation
			window.status='';
			
			// On recup la réponse
			var rep=xhr.responseText.split(';;');
			
			/**
				rep[0] = indique si c bon
				rep[1] = message
			**/
			
			// Réinitialise input
			if ( rep[0] ) td.innerHTML = "<img src='" + imgPath + "alert.gif' />";
			
			// Message box
			alert( rep[1] );
			
		}
		
	}
	
	// Initialisation des paramètres AJAX
	xhr.open('POST','/'+lang+'/layout/set/ajax/carre/addInteraction/alert',true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	window.status='Chargement en cours ...';
	xhr.send("userID=" + userID + "&estateID=" + estateID);
	
}

// Coups coeur
function addCoupCoeur( userID, estateID, lang ){
	
	// TD contenant IMG
	var td = document.getElementById( 'img_coeur' );
	
	// Appel de la fonction créant l'objet Xhr
	getXhr();

	// Traitement
	xhr.onreadystatechange=function(){

		// On a une réponse
		if (xhr.readyState==4 && xhr.status==200){
			
			// Initialisation
			window.status='';
			
			// On recup la réponse
			var rep=xhr.responseText.split(';;');
			
			/**
				rep[0] = indique si c bon
				rep[1] = message
			**/
			
			// Réinitialise input
			if ( rep[0] ) td.innerHTML = "<img src='" + imgPath + "coeur.gif' />";
			
			// Message box
			alert( rep[1] );
			
		}
		
	}
	
	// Initialisation des paramètres AJAX
	xhr.open('POST','/'+lang+'/layout/set/ajax/carre/addInteraction/heart',true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	window.status='Chargement en cours ...';
	xhr.send("userID=" + userID + "&estateID=" + estateID);
	
}

// Notes
function addNote( userID, estateID, note, lang ){
	
	// UL contenant les différentes notes
	var ul = document.getElementById( 'notes' );
	
	// Nombre total de notes
	if ( note != '' ) var count = countNotes + 1;
	else var count = countNotes;
	
	// Appel de la fonction créant l'objet Xhr
	getXhr();

	// Traitement
	xhr.onreadystatechange=function(){

		// On a une réponse
		if (xhr.readyState==4 && xhr.status==200){
			
			// Initialisation
			window.status='';
			
			// On recup la réponse
			var rep=xhr.responseText.split(';;');
			
			/**
				rep[0] = indique si c bon
				rep[1] = message
				rep[2] = noteID
				rep[3] = nouvelle note
			**/
			
			// Message box
			alert( rep[1] );
			
			// Réinitialise input
			if ( rep[0] ){
				// Nombre total de notes
				countNotes++;
				
				displayFormNotes();
				
				// Ajout note
				changeClassName( 'notes_title', '' );
				ul.innerHTML += '<li id="note_' + rep[2] + '" class="oh midDetail">' + rep[3] + '</li>';
				
			}
			
		}
		
	}
	
	// Initialisation des paramètres AJAX
	xhr.open('POST','/'+lang+'/layout/set/ajax/carre/addInteraction/note',true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	window.status='Chargement en cours ...';
	xhr.send("userID=" + userID + "&estateID=" + estateID + "&note=" + note + "&count=" + count + "&lang=" + lang);
	
}

function deleteNote( noteID, lang ){
	
	// LI contenant la note
	var li = $( '#note_' + noteID );
	
	// Appel de la fonction créant l'objet Xhr
	getXhr();

	// Traitement
	xhr.onreadystatechange=function(){

		// On a une réponse
		if (xhr.readyState==4 && xhr.status==200){
			
			// Initialisation
			window.status='';
			
			// On recup la réponse
			var rep=xhr.responseText.split(';;');
			
			/**
				rep[0] = indique si c bon
				rep[1] = message
			**/
			
			// Message box
			alert( rep[1] );
			
			// Réinitialise input
			if ( rep[0] ){
				// Nombre total de notes
				countNotes--
				
				li.slideUp( 'slow' );
				if ( countNotes == 0 ) setTimeout( "changeClassName( 'notes_title', 'none' );", 1000 );
			}
			
		}
		
	}
	
	// Initialisation des paramètres AJAX
	xhr.open('POST','/'+lang+'/layout/set/ajax/carre/deleteInteraction/note',true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	window.status='Chargement en cours ...';
	xhr.send("noteID=" + noteID);
	
}

// Interactions
function getInteraction( userID, interaction, lang ){
	
	// Elements d'affichage
	var tbody = document.getElementById( interaction );
	var $table = $( "#resultat_" + interaction );
	
	var $old_table = $( "#resultat_" + initDivResults );
	
	if ( interaction != 'resultats' ){
		
		// Paramètre pour function definition
		switch ( interaction ){
			case 'alertes' :
				var inter = 'alert';
				estatesAlertVisible = new Array();
			break;
			case 'coups_coeur' :
				var inter = 'heart';
				estatesHeartVisible = new Array();
			break;
		}
		
		// Init
		if ( interaction != initDivResults ) tbody.innerHTML = '';
		else{
			$old_table.slideToggle('slow');
		}
		
		// Appel de la fonction créant l'objet Xhr
		getXhr();
	
		// Traitement
		xhr.onreadystatechange=function(){
	
			// On a une réponse
			if (xhr.readyState==4 && xhr.status==200){
				
				// Initialisation
				window.status='';
				
				// On recup la réponse
				var rep=xhr.responseText;
				
				// Contenu
				tbody.innerHTML = rep;
				
				// Init JQuery
				//$('.hidedarea_ajax').hide();
				
				// Cache ancien éléments
				if ( interaction != initDivResults ){
					changeClassName( 'li_resultat_' + initDivResults, '' );
					changeClassName( 'link_resultat_' + initDivResults, '' );
					$old_table.slideToggle('slow');
				}
				
				// Affiche new
				if ( interaction != initDivResults ){
					changeClassName( 'li_resultat_' + interaction, 'selected' );
					changeClassName( 'link_resultat_' + interaction, 'selected' );
				}
				
				$table.slideToggle('slow');
				
				initDivResults = interaction;
				$( "#resultat_" + interaction ).trigger("update");
				initSortTable ( interaction );
				
				
			}
		}
		
		
		
		// Initialisation des paramètres AJAX
		xhr.open('POST','/'+lang+'/layout/set/ajax/carre/getInteraction/' + inter,true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		window.status='Chargement en cours ...';
		xhr.send("userID=" + userID);
		
	}
	else{
		
		if ( interaction != initDivResults ){
			
			// Cache ancien éléments
			changeClassName( 'li_resultat_' + initDivResults, '' );
			changeClassName( 'link_resultat_' + initDivResults, '' );
			$old_table.slideToggle('slow');
			
			// Affiche new
			changeClassName( 'li_resultat_' + interaction, 'selected' );
			changeClassName( 'link_resultat_' + interaction, 'selected' );
			$table.slideToggle('slow');
			
			initDivResults = interaction;
			$( "#resultat_" + interaction ).trigger("update");
			initSortTable ( interaction );
			
		}
	}
	
}

function initSortTable ( interaction )
{
	var sort = false;
	
	switch( interaction )
	{
		case 'alertes':
			if( initSortTableAlert )
			{
				sort = true;
				initSortTableAlert = false;
			}
		break;
		case 'coups_coeur':
			if( initSortTableHeart )
			{
				sort = true;
				initSortTableHeart = false;
			}
		break;
	}

	if( sort )
	{
		$( "#resultat_" + interaction ).collapsible("td.collapsible", {
			collapse: true,
			classChildRow: "hiddencell"
		}).tablesorter({ sortlist: [[1,0]] });
	}			
}

function addSearchParams( userID, lang ){
	
	// Appel de la fonction créant l'objet Xhr
	getXhr();

	// Traitement
	xhr.onreadystatechange=function(){

		// On a une réponse
		if (xhr.readyState==4 && xhr.status==200){
			
			// Initialisation
			window.status='';
			
			// On recup la réponse
			var rep=xhr.responseText.split(';;');
			
			/**
				rep[0] = indique si c bon
				rep[1] = message
			**/
			
			// Message box
			alert( rep[1] );
			
		}
		
	}
	
	// Initialisation des paramètres AJAX
	xhr.open('POST','/'+lang+'/layout/set/ajax/carre/addInteraction/searchParams',true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	window.status='Chargement en cours ...';
	xhr.send("userID=" + userID);
	
}

function deleteSearchParams( searchParamsID, lang ){
	
	// LI contenant le critère
	var li = $( '#param_' + searchParamsID );
	
	// Appel de la fonction créant l'objet Xhr
	getXhr();

	// Traitement
	xhr.onreadystatechange=function(){

		// On a une réponse
		if (xhr.readyState==4 && xhr.status==200){
			
			// Initialisation
			window.status='';
			
			// On recup la réponse
			var rep=xhr.responseText.split(';;');
			
			/**
				rep[0] = indique si c bon
				rep[1] = message
			**/
			
			// Message box
			alert( rep[1] );
			
			// Réinitialise input
			if ( rep[0] ){
				// Nombre total de critères
				countSearchParams--
				
				li.slideUp( 'slow' );
				if ( countSearchParams == 0 ) document.location.href = "/" + lang + "/carre/searchEngine";
			}
			
		}
		
	}
	
	// Initialisation des paramètres AJAX
	xhr.open('POST','/'+lang+'/layout/set/ajax/carre/deleteInteraction/searchParams',true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	window.status='Chargement en cours ...';
	xhr.send("searchParamsID=" + searchParamsID);
	
}

// Notes
function addItineraire( userID, libelle, address, lang ){
	
	// UL contenant les différents itinéraires
	var ul = document.getElementById( 'allDescription' );
	
	// Nombre total d'itinéraires
	if ( libelle != '' && address != '' ) var count = countItineraires + 1;
	else var count = countItineraires;
	
	// Appel de la fonction créant l'objet Xhr
	getXhr();

	// Traitement
	xhr.onreadystatechange=function(){

		// On a une réponse
		if (xhr.readyState==4 && xhr.status==200){
			
			// Initialisation
			window.status='';
			
			// On recup la réponse
			var rep=xhr.responseText.split(';;');
			
			/**
				rep[0] = indique si c bon
				rep[1] = message
				rep[2] = itineraireID
				rep[3] = nouvel itinéraire
			**/
			
			// Message box
			alert( rep[1] );
			
			// Réinitialise input
			if ( rep[0] ){
				// Nombre total d'itinéraires
				countItineraires++;
				
				// Ajout itinéraire
				changeClassName( 'itineraires_title', '' );
				ul.innerHTML += '<li id="itineraire_' + rep[2] + '" class="oh midDetail">' + rep[3] + '</li>';
				
				initItineraire();
				
			}
			
		}
		
	}
	
	// Initialisation des paramètres AJAX
	xhr.open('POST','/'+lang+'/layout/set/ajax/carre/addInteraction/itineraire',true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	window.status='Chargement en cours ...';
	xhr.send("userID=" + userID + "&libelle=" + libelle + "&address=" + address + "&count=" + count + "&lang=" + lang);
	
}

function deleteItineraire( itineraireID, lang ){
	
	// LI contenant la note
	var li = $( '#itineraire_' + itineraireID );
	
	// Appel de la fonction créant l'objet Xhr
	getXhr();

	// Traitement
	xhr.onreadystatechange=function(){

		// On a une réponse
		if (xhr.readyState==4 && xhr.status==200){
			
			// Initialisation
			window.status='';
			
			// On recup la réponse
			var rep=xhr.responseText.split(';;');
			
			/**
				rep[0] = indique si c bon
				rep[1] = message
			**/
			
			// Message box
			alert( rep[1] );
			
			// Réinitialise input
			if ( rep[0] ){
				// Nombre total d'itinéraires
				countItineraires--
				
				li.slideUp( 'slow' );
				if ( countItineraires == 0 ) setTimeout( "changeClassName( 'itineraires_title', 'none' );", 1000 );
			}
			
		}
		
	}
	
	// Initialisation des paramètres AJAX
	xhr.open('POST','/'+lang+'/layout/set/ajax/carre/deleteInteraction/itineraire',true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	window.status='Chargement en cours ...';
	xhr.send("itineraireID=" + itineraireID);
	
}

// Logement ideal
function addLogementIdeal( lang ){
	
	// Values of input
	var userID = document.forms["logement_ideal"].elements['userID'].value;
	
	var nbPersonnes = '';
	for ( var i = 0; i < document.forms["logement_ideal"].elements['nbPersonnes'].length; i++) if( document.forms["logement_ideal"].elements['nbPersonnes'][i].checked ){
		nbPersonnes = document.forms["logement_ideal"].elements['nbPersonnes'][i].value;
		break;
	}
	
	var typeBien = '';
	for ( var i = 0; i < document.forms["logement_ideal"].elements['typeBien'].length; i++) if( document.forms["logement_ideal"].elements['typeBien'][i].checked ){
		typeBien = document.forms["logement_ideal"].elements['typeBien'][i].value;
		break;
	}
	
	
	var stationnement = '';
	for ( var i = 0; i < document.forms["logement_ideal"].elements['stationnement[]'].length; i++) if( document.forms["logement_ideal"].elements['stationnement[]'][i].checked ) stationnement += ',' + document.forms["logement_ideal"].elements['stationnement[]'][i].value;
	if( stationnement != '' ) stationnement = stationnement.substring( 1 );
	
	var nature = '';
	for ( var i = 0; i < document.forms["logement_ideal"].elements['nature[]'].length; i++) if( document.forms["logement_ideal"].elements['nature[]'][i].checked ) nature += ',' + document.forms["logement_ideal"].elements['nature[]'][i].value;
	if( nature != '' ) nature = nature.substring( 1 );
	
	// Appel de la fonction créant l'objet Xhr
	getXhr();

	// Traitement
	xhr.onreadystatechange=function(){

		// On a une réponse
		if (xhr.readyState==4 && xhr.status==200){
			
			// Initialisation
			window.status='';
			
			// On recup la réponse
			var rep=xhr.responseText.split(';;');
			
			/**
				rep[0] = indique si c bon
				rep[1] = message
			**/
			
			// Message box
			alert( rep[1] );
			
		}
		
	}
	
	// Initialisation des paramètres AJAX
	xhr.open('POST','/'+lang+'/layout/set/ajax/carre/addInteraction/logement',true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	window.status='Chargement en cours ...';
	xhr.send("userID=" + userID + "&nbPersonnes=" + nbPersonnes + "&typeBien=" + typeBien + "&stationnement=" + stationnement + "&nature=" + nature);
	
}

// Search
function addSearchResults( divID, lang, ajax, type ){
	
	// Check if allready display
	var trouve = false;
	if ( !ajax ){
		for ( var i = 0; i < estatesVisible.length; i++ ) if( estatesVisible[i] == divID ){
			trouve = true;
			break;
		}
	}
	else{
		if ( type == 'alert' ){
			for ( var i = 0; i < estatesAlertVisible.length; i++ ) if( estatesAlertVisible[i] == divID ){
				trouve = true;
				break;
			}
		}
		else if ( type == 'heart' ){
			for ( var i = 0; i < estatesHeartVisible.length; i++ ) if( estatesHeartVisible[i] == divID ){
				trouve = true;
				break;
			}
		}
		
	}
	if ( !trouve ){
		if ( !ajax ) estatesVisible.push( divID );
		else{
			if ( type == 'alert' ) estatesAlertVisible.push( divID );
			else if ( type == 'heart' ) estatesHeartVisible.push( divID );
		}
		
		// Récupère tous les ids de biens
		var estatesID = '';
		if ( !ajax ){
			for ( var i = 0; i < document.forms["ajaxData_" + divID].elements[divID + '_estateID[]'].length; i++) estatesID += ',' + document.forms["ajaxData_" + divID].elements[divID + '_estateID[]'][i].value;
		}
		else{
			for ( var i = 0; i < document.forms["ajaxData_" + divID + "_ajax"].elements["ajax_" + divID + '_estateID[]'].length; i++) estatesID += ',' + document.forms["ajaxData_" + divID + "_ajax"].elements["ajax_" + divID + '_estateID[]'][i].value;
		}
		if( estatesID != '' ) estatesID = estatesID.substring( 1 );
		
		// Appel de la fonction créant l'objet Xhr
		getXhr();
	
		// Traitement
		xhr.onreadystatechange=function(){
	
			// On a une réponse
			if (xhr.readyState==4 && xhr.status==200){
				
				// Initialisation
				window.status='';
				
				// On recup la réponse
				var rep=xhr.responseText;
				
				if ( !ajax ){
					// Insert données
					document.getElementById( "results_" + divID ).innerHTML = rep;
					
					// Affichage
					displayResults( divID );
				}
				else{
					// Insert données
					document.getElementById( "results_ajax_" + divID ).innerHTML = rep;
					
					// Affichage
					displayResultsAjax( divID );
				}
				
				/*$.tablesorter.addParser({
					id: "integer",
					is: function(s) {
						return s.match(new RegExp(/^\d+$/));
					},
					format: function(s) {
						return $.tablesorter.formatInt(s);
					},
					type: "numeric"
				});
				
				$.tablesorter.addParser({
					id: "floating",
					is: function(s) {
						return s.match(new RegExp(/^(\+|-)?[0-9]+\.[0-9]+((E|e)(\+|-)?[0-9]+)?$/));
					},
					format: function(s) {
						return $.tablesorter.formatFloat(s.replace(new RegExp(/,/),""));
					},
					type: "numeric"
				});*/
				
				$( "#" + divID ).tablesorter();
			}
			
		}
		
		// Initialisation des paramètres AJAX
		xhr.open('POST','/'+lang+'/layout/set/ajax/carre/addSearchResults',true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		window.status='Chargement en cours ...';
		xhr.send("estatesID=" + estatesID + "&lang=" + lang);
		
	}
	else{
		if ( !ajax ) displayResults( divID );
		else displayResultsAjax( divID );
	}
	
}