/* 
 * Config 
 */ 
// Gestion de la langue
if(typeof(langue)=="undefined") var langue="fr";
var path = (langue=="fr") ? "./" : "../";

var SPAM_AT = '$' ;
var SPAM_DOT = '*' ;

var villes_sud = ["saopaulo", "lecap", "melbourne"];
var villes_france = ["agen", "carpentras", "larochelle", "macon", "nancy", "nice", "rennes", "trappes"];
var villes_europe = ["berlin", "bruxelles", "londres", "madrid", "moscou", "rome", "stockholm", "vienne"];

// Mettre en cache les images
var images_a_loader= [
	
	"images/appli/carteEur-berlin.gif", 	/* Europe */
	"images/appli/carteEur-bruxelles.gif",
	"images/appli/carteEur-londres.gif",
	"images/appli/carteEur-madrid.gif",
	"images/appli/carteEur-moscou.gif",
	"images/appli/carteEur-rome.gif",
	"images/appli/carteEur-stockholm.gif",
	"images/appli/carteEur-vienne.gif",
	
	"images/appli/carteFr-agen.gif",			/* France */
	"images/appli/carteFr-carpentras.gif",
	"images/appli/carteFr-larochelle.gif",
	"images/appli/carteFr-macon.gif",
	"images/appli/carteFr-nancy.gif",
	"images/appli/carteFr-nice.gif",
	"images/appli/carteFr-rennes.gif",
	"images/appli/carteFr-trappes.gif",
	
	"images/appli/carteM-delhi.gif",			/* monde */
	"images/appli/carteM-dubai.gif",
	"images/appli/carteM-lecap.gif",
	"images/appli/carteM-melbourne.gif",
	"images/appli/carteM-mexico.gif",
	"images/appli/carteM-new-york.gif",
	"images/appli/carteM-saopaulo.gif",
	"images/appli/carteM-shanghai.gif",
		
	"images/appli/immeuble_all.gif",			/* Orientations */
	"images/appli/immeuble_est.gif",
	"images/appli/immeuble_nord-ouest.gif",
	"images/appli/immeuble_nord.gif",
	"images/appli/immeuble_ouest.gif",
	"images/appli/immeuble_sud-ouest.gif",
	"images/appli/immeuble_sud.gif"];
	
var bol_selection_ville=0;
var bol_selection_orientation=0;
var choix_ville=0;
var choix_face=0;
var slide
var region_ouverte=0;


/* ------------------------------------ */

function nospam(adresse,nom_class,adresse2){
    adresse = adresse.replace(SPAM_AT, '@');
    adresse = adresse.replace(SPAM_DOT, '.');
	  adresse2 = adresse2.replace(SPAM_AT, '@');
    adresse2 = adresse2.replace(SPAM_DOT, '.');
    
    document.open();
    document.write('<a href="mailto:'+adresse+'" class="'+nom_class+'">'+adresse2+'</a>');
    document.close();
}





window.addEvent('domready', function(){

	/*
	 * Initialise le slide des cartes avec un effet de backOut, et un changement de class des onglets dynamique
	 */
  var ongletDepart=0; // Monde
  if (langue=="fr") ongletDepart=2; // France
  
	if ($('box')) {
	
		slide = new noobSlide({
			box: $('box'),
			items: $$('#box div'),
			handles: $$('#onglets li'),
			size:365,
			fxOptions: { 
				duration: 1000,
				transition: Fx.Transitions.Back.easeOut,
				wait: false
			},
			onWalk: function(currentItem,currentHandle){
				this.handles.removeClass('select');
				currentHandle.addClass('select');
				
				// Reset les sélections
				bol_selection_ville=0;
				bol_selection_orientation=0;
				choix_face=0;
				$('schema_facade').setProperty('src','images/appli/immeuble_all.gif');
				
				// On ouvre l'onget europe ou france => ville du nord
				if (currentItem.className!="monde") cache_orientation("madrid");
			},
			startItem: ongletDepart
		});
	}
	
	// langue française => ouvre la langue fr direct
	/*if (langue=="fr" && $('box')) {
    jump(2);
  }*/
			
	

	// Charge les images
	preload_array(images_a_loader);

	
	if($('etape_suivante')){
	
		/*
		 * Click sur le bouton "étape suivante "
		 */
		$('etape_suivante').addEvent('click',function(ev){
			var e = new Event(ev);
			e.stop();
			if(bol_selection_ville==0){
         if (langue=="fr")  alert('Veuillez selectionner une ville');
         else               alert('Please select a town');
			}else if (bol_selection_orientation==0 && orientation_valide(choix_ville, choix_face)){
         if (langue=="fr")  alert('Veuillez selectionner une orientation de façade');
         else               alert('Please select a façade');  
				
			}else{
				window.location='appli.html?page=appli&ville='+choix_ville+'&face='+choix_face ;
			}
		});
		
	
		
		/*
		 * On gère les zones de la carte de france 
		 */
		$$('area.carteFr, area.carteM, area.carteEur').each(function(el){
					
			// Sélection de la carte
			var carte;
			switch(el.className) {
				case "carteFr": 	carte = 'carte_france'; 	break;
				case "carteM":		carte = 'carte_monde';  	break;
				case "carteEur": 	carte = 'carte_europe';  	break;
			}
			
			// Evènement au loading
			$(carte).fade(0.01);
			
			// Sélection
			el.addEvent('mouseenter',function(ev){
				if(bol_selection_ville!=1){
					var nom = el.id.substring(5);
					
					$(carte).setProperty('src','images/appli/'+el.className+'-'+nom+'.gif');
					$(carte).fade("show");
				}
			});
			
			// Désélection
			el.addEvent('mouseleave',function(ev){
				if(bol_selection_ville!=1){
					$(carte).setProperty('src','images/appli/'+el.className+'.gif');
				}
			});
	
			
			// Click
			el.addEvent('click',function(ev){
				
				var nom = el.id.substring(5);
				
				// Premier choix
				if (bol_selection_ville==0) {
					$(carte).setProperty('src','images/appli/'+el.className+'-'+nom+'.gif');
				}
				// Choix suivants
				else
				{
					var fadeOut = new Fx.Morph(carte, {duration: 100, onComplete:function() {
						$(carte).setProperty('src','images/appli/'+el.className+'-'+nom+'.gif');
						var fadeIn = new Fx.Morph(carte, {duration:300});
						fadeIn.start({'opacity':[0,1]});
					
					}});
 
					fadeOut.start({
						'opacity':[1,0]
					});
				}
				
				bol_selection_ville=1;	
				choix_ville=nom;
				cache_orientation(nom);
			});
		});
		
		
		
		
		/*
		 * On gère les zones orientations de l'immeuble
		 */
		$$('area.schema').each(function(el){
		
			// Evènement au loading
			$('schema_facade').fade(0.01);
			
			el.addEvent('mouseenter',function(ev){
				if(bol_selection_orientation!=1){
					$('schema_facade').setProperty('src','images/appli/immeuble_'+el.id+'.gif');
					$('schema_facade').fade("show");
				}
			});
			
			el.addEvent('mouseleave',function(ev){
				if(bol_selection_orientation!=1){
					$('schema_facade').setProperty('src','images/appli/immeuble_all.gif');
				}
			});

			el.addEvent('click',function(ev){
			
				// Premier choix
				if (bol_selection_orientation==0) {
					$('schema_facade').setProperty('src','images/appli/immeuble_'+el.id+'.gif');
				}
				// Choix suivants
				else
				{
					var fadeOut = new Fx.Morph('schema_facade', {duration: 100, onComplete:function() {
						$('schema_facade').setProperty('src','images/appli/immeuble_'+el.id+'.gif');
						var fadeIn = new Fx.Morph('schema_facade', {duration:300});
						fadeIn.start({'opacity':[0,1]});
					
					}});
 
					fadeOut.start({
						'opacity':[1,0]
					});
				}
				
				bol_selection_orientation=1;	
				choix_face=el.id;
			});
		});
	}


//Fonction éxécutées pour la page de selection "APPLI" :
	if(getVar('page') == 'appli'){
		
		var ville = getVar('ville');
		var face = getVar('face');
		
		selected_gras('slct_ville',ville);
		selected_gras('slct_face',face);
		// Affiche la selection de l'image map dans les champs select :
		selected('slct_ville',ville);
		selected('slct_face',face);
		
		//Affichage des selections en fonction des click de l'utilisateur :
		selected2('appli_contenu','slct_surface','input');
		selected2('appli_contenu1','slct_type','input');
		selected2('appli_contenu2','slct_position','input');
		selected2('appli_contenu3','slct_coloris','input');
		
		//Récupération des 6 critères dans les champs de gauche
		selected2('slct_ville','slct_ville','option');
		selected2('slct_face','slct_face','option');
		selected2('slct_surface','slct_surface','option');
		selected2('slct_type','slct_type','option');
		selected2('slct_position','slct_position','option');
		selected2('slct_coloris','slct_coloris','option');
		
		//Désactivation des champs de gauche
		desactivation('slct_surface');
		desactivation('slct_type');
		desactivation('slct_position');
		desactivation('slct_coloris');
		
		//masque les selections 
		affich_no('div_surfaceM');
		affich_no('div_vitrageM');
		affich_no('div_positionnementM');
		affich_no('div_colorisM');
		
		//affiche les sélections
		slide('appli_contenu','appli_contenu1');
		slide('appli_contenu1','appli_contenu2');
		slide('appli_contenu2','appli_contenu3');
		slide('appli_contenu3','btn_valider');
		
		//Bouton de la page appli vers les résultats simplifiés
		$('btn_valider').addEvent('click',function(ev){
			var e = new Event(ev);
			e.stop();
			
			// Récupération des données
			var ville = $("slct_ville").get('value');
			var face = $("slct_face").get('value');
			var surface = $("slct_surface").get('value');
			var type = $("slct_type").get('value');
			var position = $("slct_position").get('value');
			var coloris = $("slct_coloris").get('value');
			
			selected_gras('slct_ville',ville);
			selected_gras('slct_face',face);
			selected_gras('slct_surface',surface);
			selected_gras('slct_type',type);
			selected_gras('slct_position',position);
			selected_gras('slct_coloris',coloris);
			window.location='resultats_simples.html?page=resultat_simplifie&ville='+ville+'&face='+face+'&surface='+surface+'&type='+type+'&position='+position+'&coloris='+coloris;
		});
		
		
//Fonction éxécutées pour la page de selection "RESULTAT_SIMPLIFIE" :
	}else if(getVar('page') == 'resultat_simplifie'){
	
		//Bouton de la page résultats simplifiés vers la page résultats detailles
		$('btn_detaille1').addEvent('click',function(ev){
			var e = new Event(ev);
			e.stop();
			$('btn_detaille1').setProperty('href','javascript:void(0)'); 
			
			// Récupération des données
			var ville = $("slct_ville").get('value');
			var face = $("slct_face").get('value');
			var surface = $("slct_surface").get('value');
			var type = $("slct_type").get('value');
			var position = $("slct_position").get('value');
			var coloris = $("slct_coloris").get('value');
			
			window.location='resultats_detailles.html?page=resultat_detaille&ville='+ville+'&face='+face+'&surface='+surface+'&type='+type+'&position='+position+'&coloris='+coloris;
		});
		
			// Récupération des données

			

			$("slct_ville").set('value', getVar('ville'));
			$("slct_face").set('value', getVar('face'));
			$("slct_surface").set('value', getVar('surface'));
			$("slct_type").set('value', getVar('type'));
			$("slct_position").set('value', getVar('position'));
			$("slct_coloris").set('value', getVar('coloris'));

			var ville = $("slct_ville").get('value');
			var face = $("slct_face").get('value');
			var surface = $("slct_surface").get('value');
			var type = $("slct_type").get('value');
			var position = $("slct_position").get('value');
			var coloris = $("slct_coloris").get('value');
			
			selected_gras('slct_ville',ville);
			selected_gras('slct_face',face);
			selected_gras('slct_surface',surface);
			selected_gras('slct_type',type);
			selected_gras('slct_position',position);
			selected_gras('slct_coloris',coloris);
	
		
		//Bouton "recalculer" de la page "resultat_simplifie"
		$('btn_recalculer_simp1').addEvent('click',function(ev){
			var e = new Event(ev);
			e.stop();
			
			// Récupération des données
			var ville = $("slct_ville").get('value');
			var face = $("slct_face").get('value');
			var surface = $("slct_surface").get('value');
			var type = $("slct_type").get('value');
			var position = $("slct_position").get('value');
			var coloris = $("slct_coloris").get('value');
			
			selected_gras('slct_ville',ville);
			selected_gras('slct_face',face);
			selected_gras('slct_surface',surface);
			selected_gras('slct_type',type);
			selected_gras('slct_position',position);
			selected_gras('slct_coloris',coloris);

			var myRequest = new Request({
				url: path+'/appli_fichiers/resume_'+ville+'_'+face+'_'+surface+'_'+type+'_'+position+'_'+coloris+'.html',
				onSuccess: function(txt, xml){
						var txt_fr_corrige = correction_simple(txt);
						//var txt_en = traduction_resultats_simple(txt_fr_corrige);
						$('tablo_resu_simpl').setProperty('html', txt_fr_corrige);
				}
			}).send();

		});
		
		// Affiche les selections de la page appli dans les champs de la page resultat simplifié :
		selected('slct_ville',ville);
		selected('slct_face',face);
		selected('slct_surface',surface);
		selected('slct_type',type);
		selected('slct_position',position);
		selected('slct_coloris',coloris);
		
		
		
//Fonction éxécutées pour la page de selection "RESULTAT_DETAILLE" :
	}else if(getVar('page') == 'resultat_detaille'){
	
		//Bouton de la page résultats detaillé vers la page résultats simples
		$('btn_retour1').addEvent('click',function(ev){
			var e = new Event(ev);
			e.stop();
			$('btn_retour1').setProperty('href','javascript:void(0)'); 
			
			
			// Récupération des données
			var ville = $("slct_ville").get('value');
			var face = $("slct_face").get('value');
			var surface = $("slct_surface").get('value');
			var type = $("slct_type").get('value');
			var position = $("slct_position").get('value');
			var coloris = $("slct_coloris").get('value');
			
			window.location='resultats_simples.html?page=resultat_simplifie&ville='+ville+'&face='+face+'&surface='+surface+'&type='+type+'&position='+position+'&coloris='+coloris;
		});
		
		var ville = getVar('ville');
		var face = getVar('face');
		var surface = getVar('surface');
		var type = getVar('type');
		var position = getVar('position');
		var coloris = getVar('coloris');
		
		selected_gras('slct_ville',ville);
		selected_gras('slct_face',face);
		selected_gras('slct_surface',surface);
		selected_gras('slct_type',type);
		selected_gras('slct_position',position);
		selected_gras('slct_coloris',coloris);
	
		
		//Bouton "recalculer" de la page "résultats detaillé"
		$('btn_recalculer_det1').addEvent('click',function(ev){
			var e = new Event(ev);
			e.stop();
			
			// Récupération des données
			var ville = $("slct_ville").get('value');
			var face = $("slct_face").get('value');
			var surface = $("slct_surface").get('value');
			var type = $("slct_type").get('value');
			var position = $("slct_position").get('value');
			var coloris = $("slct_coloris").get('value');
			
			selected_gras('slct_ville',ville);
			selected_gras('slct_face',face);
			selected_gras('slct_surface',surface);
			selected_gras('slct_type',type);
			selected_gras('slct_position',position);
			selected_gras('slct_coloris',coloris);
		
				var myRequest = new Request({
					url: path+'/appli_fichiers/detaille_'+ville+'_'+face+'_'+surface+'_'+type+'_'+position+'_'+coloris+'.html',
					onSuccess: function(txt, xml){
							var txt_fr_corrige = correction_detail(txt);
							//var txt_en = traduction_resultats_detail(txt_fr_corrige);
							
							$('tablo_resu_det').set('html', txt_fr_corrige);
					}
				}).send();
		});
		
		// Affiche les selections de la page appli dans les champs de la page resultat simplifié :
		selected('slct_ville',ville);
		selected('slct_face',face);
		selected('slct_surface',surface);
		selected('slct_type',type);
		selected('slct_position',position);
		selected('slct_coloris',coloris);
		
		
	}
	
});
function set_selected(element){
	$(element).getElements('option').each(function(el){
			var tmp_var = el.getParent().id;
			tmp_var = tmp_var.substring(5);
			var tmp = getVar(tmp_var);
			if(el.value==tmp){
				el.selected = 'selected';
			}
			
		});
}

/*function get_selected(element){
	$(element).getElements('option').each(function(el){
		if(el.selected){
			var tmp_var = el.getParent().id;
			tmp_var = tmp_var.substring(5);
			window[tmp_var] = el.value;			
		}
	});
}*/

//Fonction qui récupère les variable passé par URL 
function getVar (nomVariable){
	var infos = location.href.substring(location.href.indexOf("?")+1, location.href.length)+"&"
	if (infos.indexOf("#")!=-1)
	infos = infos.substring(0,infos.indexOf("#"))+"&"
	var variable=0
	{
		nomVariable = nomVariable + "="
		var taille = nomVariable.length
		if (infos.indexOf(nomVariable)!=-1)
		variable = infos.substring(infos.indexOf(nomVariable)+taille,infos.length).substring(0,infos.substring(infos.indexOf(nomVariable)+taille,infos.length).indexOf("&"))
	}
return variable
}

//Récupération des variables de URL
/*var page = getVar('page');
var ville = getVar('ville');
var face = getVar('face');
var surface = getVar('surface');
var type = getVar('type');
var position = getVar('position');
var coloris = getVar('coloris');*/

function selected(id,ma_var){
	$(id).getElements('option').each(function(el){
		if(el.value == ma_var){
			el.selected="selected";
		}
	});
}
//fonctions qui mets en gras les selection de l'utilisateur
function selected_gras(id,ma_var){
	$(id).getElements('option').each(function(el){
		el.removeClass('gras');
	});
	$(id).getElements('option').each(function(el){
		if(el.value == ma_var){
			el.addClass('gras');
		}
	});
}

function selected2(id_gauche,id_droite,balise){
	
	
	$(id_gauche).getElements(balise).each(function(el){
		el.addEvent('click',function(ev){
			selected(id_droite,el.value)
			if((id_gauche == 'slct_ville' && getVar('page') == 'appli') || id_gauche == 'slct_ville'){
				var ville = el.value;
			}else{
				var ville = ville;
			}
			if((id_gauche == 'slct_face' && getVar('page') == 'appli') || id_gauche == 'slct_face'){
				var face = el.value;
			}else{
				var face = face;
			}
			if(id_gauche == 'appli_contenu' || id_gauche == 'slct_surface'){
				var surface = el.value;
				affich_ok('div_surfaceM');
				if(getVar('page') == 'appli'){
					//affich_ok('appli_contenu1');
				}
			}else if(id_gauche == 'appli_contenu1' || id_gauche == 'slct_type'){
				var type = el.value;
				affich_ok('div_vitrageM');
				if(getVar('page') == 'appli'){
				//affich_ok('appli_contenu2');
				}
			}else if(id_gauche == 'appli_contenu2' || id_gauche == 'slct_position'){
				var position = el.value;
				affich_ok('div_positionnementM');
				if(getVar('page') == 'appli'){
				//affich_ok('appli_contenu3');
				}
			}else if(id_gauche == 'appli_contenu3' || id_gauche == 'slct_coloris'){
				var coloris = el.value;
				affich_ok('div_colorisM');
				if(getVar('page') == 'appli'){
				//affich_ok('appli_pied');
				}
			}
		});
	});
}


function desactivation(id){
	$(id).disabled=true;
}
function affich_no(id){
	//$(id).style.display='none';
	$(id).setStyle("display", "none");
}
function affich_ok(id){
	$(id).setStyle("display", "block");
}

function slide(id_event,id_affich){

	var sl = new Fx.Slide(id_affich).hide();
	
	$(id_event).getElements('input').each(function(el){
		
		$(el).addEvent('click', function(e){
			var sl=new Fx.Slide(id_affich).slideIn();
		});	
		
	});

}



/*
 * Ouvre l'onglet numéro 'numOnglet' dans l'appli de la page d'accueil
 */
function jump(numOnglet) {
	slide.walk(numOnglet,false, false);
}

/*
 * Preload d'une liste d'images
 * @param 	Array  liste_img : liste des images
 */
function preload_array ( liste_img ) {

	var taille = liste_img.length;
	var preload = new Array(taille);
	
	for (var i=0; i<taille;i++) {
		preload[i] = new Image();
		preload[i].src = liste_img[i];
	}
}

/*
 * Cache certaines orientations 
 */
function cache_orientation(ville) {
	
	// Si la ville est du sud, cacher N et SO
	if ( villes_sud.contains(ville) ) {
	
	
		$("cache_no").setStyles({
			display:'block',
			top:31,
			left:7
		});
		$("cache_s").setStyles({
			display:'block',
			top:136,
			left:55
		});	
		
		$$("#cache_n, #cache_so").setStyle('display', 'none');
	
		if (bol_selection_orientation==1 && ( choix_face=="sud-ouest" || choix_face=="nord" )) {
			bol_selection_orientation=0; choix_face=0;
		}
	} 
	
	// Si la ville est du nord, cacher NO et S
	else {
	
		$("cache_n").setStyles({
			display:'block',
			top:5,
			left:47
		});
		$("cache_so").setStyles({
			display:'block',
			top:116,
			left:4
		});
		
		$$("#cache_no, #cache_s").setStyle('display', 'none');
		
		if (bol_selection_orientation==1 && ( choix_face=="nord-ouest" || choix_face=="sud" )) {
			bol_selection_orientation=0; choix_face=0;
		}
	}
}

/*
 * Retourne vrai si l'orientation sélectionnée est valide vis à vis de la ville
 */
function orientation_valide(ville, face) {
	if (villes_sud.contains(ville) && (face=="nord-ouest" || face=="sud")) return false;
	if (!villes_sud.contains(ville) && (face=="nord" || face=="sud-ouest")) return false;
	return true;
}

/**
 * Compresse un code jvs : enlève tous les espaces supperflus, tabs, retours à la ligne, etc ... 
 */ 
function clear_white_space(txt) {
	return txt.replace(/\/\/.*?\n/g, '').replace(/\/\*[^]*?\*\//g, '').replace(/[ \f\r\t\v\u00A0\u2028\u2029]+/g, ' ').replace(/\s*\n+/g, '\n').replace(/^\s+/gm, '').replace(/\s*$/gm, '').replace(new RegExp( "\\n", "g" ), ' ');
}


function correction_simple(txt) {
	
	txt = clear_white_space(txt);
	return traduction_simple_international(txt);
}



function correction_detail(txt) {
	txt = clear_white_space(txt); 
	return traduction_detail_international(txt);

}



function remplacement(txt, trad) {
	for (var i=0; i<trad.length; i++) {
		txt=txt.replace(trad[i][0], trad[i][1]);
	}
	return txt;
}


function changement_image(zone) {

	$$(".iconFrance, .iconEurope, .iconMonde").each(function(el) { 
		if (el.id=="icon"+zone) {
			el.setStyle("display", "block");
		}
		else					el.setStyle("display", "none");
	});

}
