/*
 * Author: Charles Lauzon
 * Name:   Functions_System_Villes.js
 * Date:   9 Septembre, 2008
 */
 
/********************************************************************
 * 																	*
 *		                   SYSTEM VILLES                            *
 *																	*
 ********************************************************************/
//TIMER VARIABLE
var secs;
var timerID = null;
var timerRunning = false;
var delay = 100;
var opt = 0;
var PaysCode, ProvinceCode = "";

var arrPreloadImage_VilleSystem = new Array();
arrPreloadImage_VilleSystem["loading"] = new Image(); arrPreloadImage_VilleSystem["loading"].src = "images/ajaxloader_ville.gif";
arrPreloadImage_VilleSystem["icon_search"] = new Array(2);
arrPreloadImage_VilleSystem["icon_search"][0] = new Image(); arrPreloadImage_VilleSystem["icon_search"][0].src = "images/icon_search.gif";
arrPreloadImage_VilleSystem["icon_search"][1] = new Image(); arrPreloadImage_VilleSystem["icon_search"][1].src = "images/icon_search_blank.gif";

arrPreloadImage_VilleSystem["icon_search2"] = new Array(2);
arrPreloadImage_VilleSystem["icon_search2"][0] = new Image(); arrPreloadImage_VilleSystem["icon_search2"][0].src = "images/icon_search.gif";
arrPreloadImage_VilleSystem["icon_search2"][1] = new Image(); arrPreloadImage_VilleSystem["icon_search2"][1].src = "images/icon_search_blank.gif";

function cboPays_onChange(Code){
	//Assignment
	PaysCode = Code;
	
	//Reset Ville
	document.getElementById("isVilleExist").value = "F";
	document.getElementById("txtVille").value = "- Choisir votre Ville -";
	document.getElementById("txtVille").disabled = true;
	//NEW Ville2
	if(document.getElementById("txtVille2")){ document.getElementById("txtVille2").value = "- Choisir votre Ville -"; document.getElementById("txtVille2").disabled = true; }
	//Reset Loop Image
	document.getElementById("icon_search").src = arrPreloadImage_VilleSystem["icon_search"][1].src;


	//Reset Province ou Etat ou Departement
	document.getElementById("cboProvince").style.display = "none"; document.getElementById("cboEtat").style.display = "none"; document.getElementById("cboDepartement").style.display = "none";
	document.getElementById("cboProvince").selectedIndex = 0; document.getElementById("cboEtat").selectedIndex = 0; document.getElementById("cboDepartement").selectedIndex = 0;
	document.getElementById("cboProvince").disabled = true; document.getElementById("cboEtat").disabled = true; document.getElementById("cboDepartement").disabled = true;
	//NEW Province2
	if(document.getElementById("cboProvince2")){
		document.getElementById("cboProvince2").style.display = "none"; document.getElementById("cboEtat2").style.display = "none"; document.getElementById("cboDepartement2").style.display = "none";
		document.getElementById("cboProvince2").selectedIndex = 0; document.getElementById("cboEtat2").selectedIndex = 0; document.getElementById("cboDepartement2").selectedIndex = 0;
		document.getElementById("cboProvince2").disabled = true; document.getElementById("cboEtat2").disabled = true; document.getElementById("cboDepartement2").disabled = true;	
	}
	
	
	//Select Pays
	for(i = 0; i < document.getElementById("cboPays").length; i++){
		if(document.getElementById("cboPays").options[i].value == PaysCode){ document.getElementById("cboPays").options[i].selected = true; }
	}
	//Select Pays2
	if(document.getElementById("cboPays2")){ 
		for(i = 0; i < document.getElementById("cboPays2").length; i++){
			if(document.getElementById("cboPays2").options[i].value == PaysCode){ document.getElementById("cboPays2").options[i].selected = true; }
		}
	}
	
	
	//Unlock Province ou Etat ou Departement
	if(PaysCode != ""){
		if(PaysCode == "CA"){
			document.getElementById("cboProvince").style.display = "block";
			document.getElementById("cboProvince").disabled = false;
			if(document.getElementById("lblProvince")){ document.getElementById("lblProvince").innerHTML = "* Province"; }
			//NEW Province2
			if(document.getElementById("cboProvince2")){ document.getElementById("cboProvince2").style.display = "block"; document.getElementById("cboProvince2").disabled = false; }
		}else if(PaysCode == "US"){
			document.getElementById("cboEtat").style.display = "block";
			document.getElementById("cboEtat").disabled = false;
			if(document.getElementById("lblProvince")){ document.getElementById("lblProvince").innerHTML = "* État"; }
			//NEW Etat2
			if(document.getElementById("cboEtat2")){ document.getElementById("cboEtat2").style.display = "block"; document.getElementById("cboEtat2").disabled = false; }
		}else if(PaysCode == "FR"){
			document.getElementById("cboDepartement").style.display = "block";
			document.getElementById("cboDepartement").disabled = false;
			if(document.getElementById("lblProvince")){ document.getElementById("lblProvince").innerHTML = "* Département"; }
			//NEW Departement2
			if(document.getElementById("cboDepartement2")){ document.getElementById("cboDepartement2").style.display = "block"; document.getElementById("cboDepartement2").disabled = false; }
		}
	}else{
		document.getElementById("cboProvince").style.display = "block";
		document.getElementById("cboProvince").disabled = true;
		if(document.getElementById("lblProvince")){ document.getElementById("lblProvince").innerHTML = "* Province"; }
		//NEW
		if(document.getElementById("cboProvince2")){ document.getElementById("cboProvince2").style.display = "block"; document.getElementById("cboProvince2").disabled = true; }
	}
	
	//Change Telephone & CodePostal MODE
	selectTel();
	//Reset CodePostal
	//if(document.getElementById("txtCodePostal")){ document.getElementById("txtCodePostal").value = ""; }
	//NEW
	//if(document.getElementById("cboPays2")){ cboPaysRADV(); }
}

function cboProvince_onChange(Code){
	//Assignment
	ProvinceCode = Code;
	
	//Reset Ville
	document.getElementById("isVilleExist").value = "F";
	document.getElementById("txtVille").value = "- Choisir votre Ville -";
	document.getElementById("txtVille").disabled = true;
	//Reset Loop Image
	document.getElementById("icon_search").src = arrPreloadImage_VilleSystem["icon_search"][1].src;
	//NEW Ville2
	if(document.getElementById("txtVille2")){ document.getElementById("txtVille2").value = "- Choisir votre Ville -"; document.getElementById("txtVille2").disabled = true; document.getElementById("icon_search2").src = arrPreloadImage_VilleSystem["icon_search2"][1].src; }
	
	
	//Select Province
	if(PaysCode == "CA"){
		for(i = 0; i < document.getElementById("cboProvince").length; i++){
			if(document.getElementById("cboProvince").options[i].value == ProvinceCode){ document.getElementById("cboProvince").options[i].selected = true; }
		}
		//Select Province2
		if(document.getElementById("cboProvince2")){ 
			for(i = 0; i < document.getElementById("cboProvince2").length; i++){
				if(document.getElementById("cboProvince2").options[i].value == ProvinceCode){ document.getElementById("cboProvince2").options[i].selected = true; }
			}
		}
	}else if(PaysCode == "US"){
		for(i = 0; i < document.getElementById("cboEtat").length; i++){
			if(document.getElementById("cboEtat").options[i].value == ProvinceCode){ document.getElementById("cboEtat").options[i].selected = true; }
		}
		//Select Province2
		if(document.getElementById("cboEtat2")){ 
			for(i = 0; i < document.getElementById("cboEtat2").length; i++){
				if(document.getElementById("cboEtat2").options[i].value == ProvinceCode){ document.getElementById("cboEtat2").options[i].selected = true; }
			}
		}
	}else if(PaysCode == "FR"){
		for(i = 0; i < document.getElementById("cboDepartement").length; i++){
			if(document.getElementById("cboDepartement").options[i].value == ProvinceCode){ document.getElementById("cboDepartement").options[i].selected = true; }
		}
		//Select Province2
		if(document.getElementById("cboDepartement2")){ 
			for(i = 0; i < document.getElementById("cboDepartement2").length; i++){
				if(document.getElementById("cboDepartement2").options[i].value == ProvinceCode){ document.getElementById("cboDepartement2").options[i].selected = true; }
			}
		}
	}
	
	
	//Unlock Ville
	if(ProvinceCode != ""){
		document.getElementById("txtVille").disabled = false;
		document.getElementById("icon_search").src = arrPreloadImage_VilleSystem["icon_search"][0].src;
		//NEW
		if(document.getElementById("txtVille2")){ document.getElementById("txtVille2").disabled = false; document.getElementById("icon_search2").src = arrPreloadImage_VilleSystem["icon_search2"][0].src; }
	}else{
		document.getElementById("isVilleExist").value = "F";
		document.getElementById("txtVille").disabled = true;
		document.getElementById("icon_search").src = arrPreloadImage_VilleSystem["icon_search"][1].src;
		//NEW
		if(document.getElementById("txtVille2")){ document.getElementById("txtVille2").disabled = true; document.getElementById("icon_search2").src = arrPreloadImage_VilleSystem["icon_search2"][1].src; }
	}
}


function txtVille_onChange(Ville){
	if(Ville != ""){
		document.getElementById("txtVille").value = Ville;
		//NEW
		if(document.getElementById("txtVille2")){ 
			document.getElementById("txtVille2").value = Ville;
		}
	}
}

function txtVille_onFocus(Ville){
	if(Ville == "- Choisir votre Ville -"){
		document.getElementById("txtVille").value = "";
	}/*else{
		ShowDiv("ville");	
	}*/
	opt = 0;
}

function txtVille_onBlur(Ville){
	if(Ville == ""){
		document.getElementById("txtVille").value = "- Choisir votre Ville -";
		HideDiv("ville");
	}else{
		InitializeTimer();
	}
}

function txtVille_onKeyUp(e, Key){
	//Declaration pour le AJAX system Villes
	var P = document.getElementById("cboPays").value;					
	var PC = "";
	if(P == "CA"){ PC = document.getElementById("cboProvince").value; }else if(P == "US"){ PC = document.getElementById("cboEtat").value; }else if(P == "FR"){ PC = document.getElementById("cboDepartement").value; }
	
	//Regarder si le cboVilles Existe
	if(document.getElementById("cboVilles") != null){
		//Declaration pour le keyCode
		var ek; 
		//Prendre l'event si pas envoyer
		if(!e){ var e = window.event; }
		//Prendre le keyCode de la key appuyer
		if(e.keyCode){ ek = e.keyCode; }
		else if(e.which){ ek = e.which; }
		
		//Regarder si on a toucher: Enter | Up Arrow | Down Arrow | Left & Right Arrow | Toutes les Autres Touche
		if(ek == 13){ //Enter
			if(opt > -1){
				document.getElementById("txtVille").value = document.getElementById("cboVilles").options[opt].value;
				//NEW
				if(document.getElementById("txtVille2")){ 
					document.getElementById("txtVille2").value = document.getElementById("cboVilles").options[opt].value;
				}
				document.getElementById("isVilleExist").value = "T";
				opt = -1;
			}
			HideDiv("ville");
			return false;
		}
		else if(ek == 38){ //Up Arrow
			if(opt > 0){ opt--; }
			document.getElementById("txtVille").focus();
			document.getElementById("txtVille").value = "";
			document.getElementById("txtVille").value = Key;
		}
		else if(ek == 40){ //Down Arrow
			if(document.getElementById("cboVilles").options[opt + 1] != null){ opt++; }
		}
		else if(ek == 37 || ek == 39){ //Left & Right Arrow
			if(opt >= 0){ if(document.getElementById("cboVilles").options[opt] != null){ document.getElementById("cboVilles").options[opt].selected = true; } }
		}
		else{ //The Rest of ALL Key
			if(document.getElementById("txtVille").value.length >= 1){ //Need 4 lettres before search
				opt = 0; //RESET
				Initialize();
				
				//Start Loading Villes
				document.getElementById("icon_search").src = arrPreloadImage_VilleSystem["loading"].src;
				document.getElementById("icon_search").src = document.getElementById("icon_search").src //Reload AJAX GIF (IE BUG)
				
				var url = "./systems/ajax_villes.php?P="+P+"&PC="+PC+"&V="+Key;
				if(req!=null){
					req.onreadystatechange = Process_Villes;
					req.open("GET", url, true);
					req.send(null);
				}
			}else{
				HideDiv("ville");
			}
		}
		//Selectionner la Ville
		if(opt > -1){
			document.getElementById("cboVilles").options[opt].selected = true;
		}
	}
	else{
		if(document.getElementById("txtVille").value.length >= 1){ //Need 4 lettres before search
			opt = 0; //RESET
			Initialize();
			
			//Start Loading Villes
			document.getElementById("icon_search").src = arrPreloadImage_VilleSystem["loading"].src;
			document.getElementById("icon_search").src = document.getElementById("icon_search").src //Reload AJAX GIF (IE BUG)
					
			var url = "./systems/ajax_villes.php?P="+P+"&PC="+PC+"&V="+Key;
			if(req!=null){
				req.onreadystatechange = Process_Villes;
				req.open("GET", url, true);
				req.send(null);
			}
		}else{
			HideDiv("ville");
		}
	}
}

function Process_Villes(){
    if(req.readyState == 4){
    // only if "OK"
        if(req.status == 200){
            if(req.responseText==""){
                HideDiv("ville");
			}else{
                ShowDiv("ville");
                document.getElementById("ville").innerHTML = req.responseText;
				//Select 1st Option
				document.getElementById("cboVilles").selectedIndex = 0;
            }
			//Stop Loading Villes
			document.getElementById("icon_search").src = arrPreloadImage_VilleSystem["icon_search"][0].src;
        }else{
            document.getElementById("ville").innerHTML = "There was a problem retrieving data:<br>" + req.statusText;
        }
    }
}

function cboVilles_onFocus(){
	clearTimeout(timerID);
	timerRunning = false;
}
function cboVilles_onBlur(){
	StopTheClock();
	HideDiv("ville");
}
function cboVilles_onClick(){
	document.getElementById("txtVille").value = document.getElementById("cboVilles").value;
	//NEW
	if(document.getElementById("txtVille2")){ document.getElementById("txtVille2").value = document.getElementById("cboVilles").value; }
	
	document.getElementById("isVilleExist").value = "T";
	
	HideDiv("ville");
}
function cboVilles_ondblClick(){
	document.getElementById("txtVille").value = document.getElementById("cboVilles").value;
	//NEW
	if(document.getElementById("txtVille2")){ document.getElementById("txtVille2").value = document.getElementById("cboVilles").value; }
	
	document.getElementById("isVilleExist").value = "T";
	
	HideDiv("ville");
}
	//Show or Hide a div tag
function ShowDiv(divid){
	if(document.layers) document.layers[divid].visibility="show";
	else document.getElementById(divid).style.visibility="visible";
}

function HideDiv(divid){
	if(document.layers) document.layers[divid].visibility="hide";
	else document.getElementById(divid).style.visibility="hidden";
}
//Timer for the cboVille
function InitializeTimer(){
    // Set the length of the timer, in seconds
    secs = 1;
    StopTheClock();
    StartTheTimer();
}
function StopTheClock(){
    if(timerRunning){
        clearTimeout(timerID);
		HideDiv("ville");
	}
    timerRunning = false;
}
function StartTheTimer(){
    if(secs==0){
        StopTheClock();
    }else{
        secs = secs - 1;
        timerRunning = true;
        timerID = self.setTimeout("StartTheTimer()", delay);
    }
}

function rdtDistance_onClick(Distance){
	//Distance
	for(var d = 1; d <= 5; d++){
		obj=document.getElementById("rdtDistance"+d);
		if(obj.value == Distance){
			obj.checked = true;
			if(document.getElementById("rdtDistance2"+d)){ obj2=document.getElementById("rdtDistance2"+d); obj2.checked = true; }
		}
	}	
}

function selectTel(){
	//Change Telephone MODE CA US or FR
	if(document.getElementById("divTelCA_US_Jour") && document.getElementById("divTelFR_Jour")){
		if(document.getElementById("cboPays").value == "" || document.getElementById("cboPays").value == "CA" || document.getElementById("cboPays").value == "US"){
			document.getElementById("divTelCA_US_Jour").style.display = "block";
			document.getElementById("divTelCA_US_Soir").style.display = "block";
			document.getElementById("divCodePostalCA_US").style.display = "block";
			document.getElementById("divTelFR_Jour").style.display = "none";
			document.getElementById("divTelFR_Soir").style.display = "none";
			document.getElementById("divCodePostalFR").style.display = "none";
			document.getElementById("txtTelephoneFranceJour").value = ""; document.getElementById("txtTelephoneFranceSoir").value = ""; //Reset Tel FR
			document.getElementById("txtCodePostalFR").value = ""; //Reset Code Postal FR
		}else if(document.getElementById("cboPays").value == "FR"){
			document.getElementById("divTelCA_US_Jour").style.display = "none";
			document.getElementById("divTelCA_US_Soir").style.display = "none";
			document.getElementById("divCodePostalCA_US").style.display = "none";
			document.getElementById("divTelFR_Jour").style.display = "block";
			document.getElementById("divTelFR_Soir").style.display = "block";
			document.getElementById("divCodePostalFR").style.display = "block";
			document.getElementById("txtCodeRegionnalJour").value = ""; document.getElementById("txtTelJour1").value = ""; document.getElementById("txtTelJour2").value = ""; document.getElementById("txtCodeRegionnalSoir").value = ""; document.getElementById("txtTelSoir1").value = ""; document.getElementById("txtTelSoir2").value = ""; //Reset Tel CA ou US
			document.getElementById("txtCodePostalCA_US").value = ""; //Reset Code Postal CA ou US
		}
	}
}
