var formName = "monform";

var IB=new Object;
var posX=0;posY=0;
var xOffset=200;yOffset=10;
function AffBulle(texte) {
  contenu="<TABLE border=0 cellspacing=0 cellpadding="+IB.NbPixel+"><TR bgcolor='"+IB.ColContour+"'><TD><TABLE border=0 cellpadding=2 cellspacing=0 bgcolor='"+IB.ColFond+"'><TR><TD><FONT size='-1' face='arial' color='"+IB.ColTexte+"'>"+texte+"</FONT></TD></TR></TABLE></TD></TR></TABLE>&nbsp;";
  var finalPosX=posX-xOffset;
  if (finalPosX<0) finalPosX=0;
  if (document.layers) {
    document.layers["bulle"].document.write(contenu);
    document.layers["bulle"].document.close();
    document.layers["bulle"].top=posY+yOffset;
    document.layers["bulle"].left=finalPosX;
    document.layers["bulle"].visibility="show";}
  if (document.all) {
    //var f=window.event;
    //doc=document.body.scrollTop;
    bulle.innerHTML=contenu;
    document.all["bulle"].style.top=posY+yOffset;
    document.all["bulle"].style.left=finalPosX;//f.x-xOffset;
    document.all["bulle"].style.visibility="visible";
  }
  //modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
  else if (document.getElementById) {
    document.getElementById("bulle").innerHTML=contenu;
    document.getElementById("bulle").style.top=posY+yOffset;
    document.getElementById("bulle").style.left=finalPosX;
    document.getElementById("bulle").style.visibility="visible";
  }
}
function getMousePos(e) {
  if (document.all) {
  posX=event.x+document.body.scrollLeft; //modifs CL 09/2001 - IE : regrouper l'évènement
  posY=event.y+document.body.scrollTop;
  }
  else {
  posX=e.pageX; //modifs CL 09/2001 - NS6 : celui-ci ne supporte pas e.x et e.y
  posY=e.pageY; 
  }
}
function HideBulle() {
	if (document.layers) {document.layers["bulle"].visibility="hide";}
	if (document.all) {document.all["bulle"].style.visibility="hidden";}
	else if (document.getElementById){document.getElementById("bulle").style.visibility="hidden";}
}

function InitBulle(ColTexte,ColFond,ColContour,NbPixel) {
	IB.ColTexte=ColTexte;IB.ColFond=ColFond;IB.ColContour=ColContour;IB.NbPixel=NbPixel;
	if (document.layers) {
		window.captureEvents(Event.MOUSEMOVE);window.onMouseMove=getMousePos;
		document.write("<LAYER name='bulle' top=0 left=0 visibility='hide'></LAYER>");
	}
	if (document.all) {
		document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>");
		document.onmousemove=getMousePos;
	}
	//modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
	else if (document.getElementById) {
	        document.onmousemove=getMousePos;
	        document.write("<DIV id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>");
	}
}

var popwin;

function popUp(URL) {
	day = new Date();
	id = day.getTime();
	// eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbar=0,location=0,statusbar=0,menubar=0,resizable=0,width=1024,height=768');");
	// popwin = window.open(URL, '', 'toolbar=0,scrollbar=0,location=0,statusbar=0,menubar=0,resizable=0,width=1024,height=768');
	popwin = window.open(URL);
	// popwin.document.body.onload = function anonymous() {
	//	popwin.print();
	// }
}

function printPopUp() {
	popwin.print();
}
	
function closePopUp(secs) {
	if (popwin.document) {
		setTimeout("closePopUp2()", secs*1000);
	}
}

function closePopUp2() {
	if (popwin.document) {
		// popwin.print();
		popwin.close();
		setTimeout("closePopUp2()", 5001);
	}
}

var checkflag = "true";
function check(field) {
	if (checkflag == "false") {
  	for (i = 0; i < field.length; i++) {
  		field[i].checked = true;
  	}
  	checkflag = "true";
  	return "Tout décocher";
  } else {
  	for (i = 0; i < field.length; i++) {
  		field[i].checked = false;
  	}
  	checkflag = "false";
  	return "Tout cocher";
  }
}

function jsrs_call_server(scriptname,params,callback) {
	var head = document.getElementsByTagName('head').item(0);
	var oldhead = document.getElementById('lastloaded');
	if (oldhead) head.removeChild(oldhead);
	script = document.createElement('script');
	script.src = "http://www.12track.net/"+scriptname+"?callback="+callback+"&"+params;
	script.type = 'text/javascript';
	script.defer = true;
	script.id = 'lastloaded';
	void(head.appendChild(script));
}

function inputenable(id,state) {
 var divObj = null;
  if (document.getElementById) {
  divObj = document.getElementById(id);
 } else if(document.all) {
  divObj = document.all(id);
 } else if (document.layers) {
  divObj = document.layers[id];
 }
 if(state && divObj) {
  divObj.removeAttribute("readonly");
 	divObj.readOnly = false;
 } else if(divObj) {
  divObj.setAttribute("readonly","readonly");
 	divObj.readOnly = true;
 }
}

function searchable(s) {
	var origin = s;
	s = s.replace(/[éèêë]/gi,"e");
	s = s.replace(/[àâä]/gi,"a");
	s = s.replace(/[ùûü]/gi,"u");
	s = s.replace(/[ôö]/gi,"o");
	s = s.replace(/[îï]/gi,"a");
	s = s.replace(/[ç]/gi,"c");
	s = s.replace(/[^a-zA-Z0-9]/g,"");
	// s = s.replace(/[^a-zA-Z0-9 ]/g,"");
	// s = s.replace(/\s{2,}/g," ");
	s = s.toUpperCase();
	return s;
}

function Adresse(id, name, phone, address1, address2, zip, locality, country, first_name, last_name) {
	this.id = id;
	this.name = name;
	this.phone = phone;
	this.address1 = address1;
	this.address2 = address2;
	this.zip = zip;
	this.locality = locality;
	this.country = country;
	this.first_name = first_name;
	this.last_name = last_name;
	this.searchstring = searchable(name+" "+phone+" "+address1+" "+address2+" "+zip+" "+locality+" "+country+" "+first_name+" "+last_name);
}

function AjouterAdresse(id, name, phone, address1, address2, zip, locality, country, first_name, last_name) {
	var item = new Adresse(id, name, phone, address1, address2, zip, locality, country, first_name, last_name);
	this[this.nb]=item
	this.nb++;
}

function Adresses() {
	this.nb=0;
	this.Add=AjouterAdresse;
}

function Localite(id, zip, name) {
	this.id = id;
	this.zip = zip;
	this.name = name;
}

function AjouterLocalite(id, zip, name) {
	var item = new Localite(id, zip, name);
	this[this.nb]=item
	this.nb++;
}

function Localites() {
	this.nb=0;
	this.Add=AjouterLocalite;
}

var Adresses = new Adresses();
var Localites = new Localites();

var Enlevement = new CreerListe("Enlevement", 5, 200, 40);
var Livraison = new CreerListe("Livraison", 5, 200, 60);
var Enlevement_locality = new CreerListeLocalites("Enlevement_locality", 1, 200);
var Livraison_locality = new CreerListeLocalites("Livraison_locality", 1, 200);

function CreerListe(nom, hauteur, largeur, tabindex) {
	this.nom=nom;
	this.hauteur=hauteur;
	this.largeur=largeur;
	this.tabindex=tabindex;
	this.search="";
	this.MAJ=MAJListe;
	this.Afficher=AfficherListe;
}

function AfficherListe() {
	if (document.layers) {
		var Z="<SELECT tabindex="+this.tabindex+" name="+this.nom+" size="+this.hauteur+" onChange='UpdateFields(\""+this.nom+"\")'>";
	} else {
		var Z="<SELECT tabindex="+this.tabindex+" name="+this.nom+" size="+this.hauteur+" style='width:"+this.largeur+"' onChange='UpdateFields(\""+this.nom+"\")'>";
	}
	for (var i=0; i<Adresses.nb; i++) {
		Z+="<OPTION value=\""+i+"\">"+Adresses[i].name+"</OPTION>"		
	}
	Z+="</SELECT>"
	document.write(Z);
}

function MAJListe(txt) {
	var f=document.forms["monform"];
	if (txt!=this.search) {
		this.search=txt
		f.elements[this.nom].options.length=0; 
		for (var i=0; i<Adresses.nb; i++) {
			var exp=new RegExp(searchable(txt),"g");
			if ( exp.test(Adresses[i].searchstring) ) {
				var o=new Option(Adresses[i].name, i);
				f.elements[this.nom].options[f.elements[this.nom].options.length]=o;
			}
		}
		if (f.elements[this.nom].options.length==1) {
			f.elements[this.nom].selectedIndex=0;
		}
		UpdateFields(this.nom);
	}
}

function CreerListeLocalites(nom, hauteur, largeur) {
	this.nom=nom;
	this.hauteur=hauteur;
	this.largeur=largeur;
	this.search="";
	this.Afficher=AfficherListeLocalites;
	this.MAJ=MAJListeLocalites;
}

function AfficherListeLocalites() {
	if (document.layers) {
		var Z="<SELECT tabindex="+this.tabindex+" name="+this.nom+" id="+this.nom+" size="+this.hauteur+" disabled onBlur='MAJCP(\""+this.nom.substring(0,this.nom.indexOf("_"))+"\")'>";
	} else {
		var Z="<SELECT tabindex="+this.tabindex+" name="+this.nom+" id="+this.nom+" size="+this.hauteur+" style='width:"+this.largeur+"' disabled onBlur='MAJCP(\""+this.nom.substring(0,this.nom.indexOf("_"))+"\")'>";
	}
	for (var i=0; i<Localites.nb; i++) {
		Z+="<OPTION value=\""+Localites[i].id+"\">"+Localites[i].name+"</OPTION>"		
	}
	Z+="</SELECT>"
	document.write(Z);
}

function MAJListeLocalites(country,searchstring) {
	var f=document.forms["monform"];
	var txt = country+"-"+searchstring;
	if (txt!=this.search) {
		this.search=txt;
		f.elements[this.nom].options.length=0; 
		for (var i=0; i<Localites.nb; i++) {
			if (Localites[i].zip.substring(0,txt.length) == txt) {
				var o=new Option(Localites[i].name, Localites[i].id);
				f.elements[this.nom].options[f.elements[this.nom].options.length]=o;
			}
		}
		if (f.elements[this.nom].options.length==1) {
			f.elements[this.nom].selectedIndex=0;
		}
	}
}

function MAJCP(e) {
	strScriptName="getcp.php";
	strParams="id="+document.forms["monform"].elements[e+"_locality"].value+"&side="+e;
	strCallBack="fillCP";
	jsrs_call_server(strScriptName,strParams,strCallBack);
}

function fillCP(arrValues) {
	if (arrValues[0][1]=="Enlevement") {
		Enlevement_locality.search=arrValues[0][1];
	} else if (arrValues[0][1]=="Livraison") {
		Livraison_locality.search=arrValues[0][1];
	}
	document.forms["monform"].elements[arrValues[0][0]+"_country"].value = arrValues[0][1];
	document.forms["monform"].elements[arrValues[0][0]+"_zip"].value = arrValues[0][2];
}

function getMissingCP(e) {
	strScriptName="getmissingcp.php";
	strParams="country="+document.forms["monform"].elements[e+"_country"].value+"&searchstring="+document.forms["monform"].elements[e+"_zip"].value+"&side="+e;
	strCallBack="populateCP";
	jsrs_call_server(strScriptName,strParams,strCallBack);
}

function populateCP(arrValues) {
	objSelect=document.forms["monform"].elements[arrValues[0][0]+"_locality"];
	objSelect.options.length = 0;
	for(n=0;n<arrValues.length;n++) {
		objSelect.options[n] = new Option(arrValues[n][2],arrValues[n][1]);
	}
	document.forms["monform"].elements[arrValues[0][0]+"_locality"].selectedIndex=0;
	document.forms["monform"].elements[arrValues[0][0]+"_locality"].focus();
}

function UpdateFields(e) {
	var f=document.forms["monform"];
	if (f.elements[e].selectedIndex > -1) {
		f.elements[e+"_name"].value=Adresses[f.elements[e].options[f.elements[e].selectedIndex].value].name;
		f.elements[e+"_phone"].value=Adresses[f.elements[e].options[f.elements[e].selectedIndex].value].phone;
		f.elements[e+"_address1"].value=Adresses[f.elements[e].options[f.elements[e].selectedIndex].value].address1;
		f.elements[e+"_address2"].value=Adresses[f.elements[e].options[f.elements[e].selectedIndex].value].address2;
		f.elements[e+"_zip"].value=Adresses[f.elements[e].options[f.elements[e].selectedIndex].value].zip;
		f.elements[e+"_country"].value=Adresses[f.elements[e].options[f.elements[e].selectedIndex].value].country;
		if (e=="Enlevement") {
			Enlevement_locality.MAJ(f.elements[e+"_country"].value,f.elements[e+"_zip"].value);
		} else if (e=="Livraison") {
			Livraison_locality.MAJ(f.elements[e+"_country"].value,f.elements[e+"_zip"].value);
		}
		f.elements[e+"_locality"].value=Adresses[f.elements[e].options[f.elements[e].selectedIndex].value].locality;
		f.elements[e+"_country"].value=Adresses[f.elements[e].options[f.elements[e].selectedIndex].value].country;
		f.elements[e+"_first_name"].value=Adresses[f.elements[e].options[f.elements[e].selectedIndex].value].first_name;
		f.elements[e+"_last_name"].value=Adresses[f.elements[e].options[f.elements[e].selectedIndex].value].last_name;
		if (f.elements[e+"_id"].value != Adresses[f.elements[e].options[f.elements[e].selectedIndex].value].id) {
			f.elements[e+"_id"].value=Adresses[f.elements[e].options[f.elements[e].selectedIndex].value].id;
			DisableModif(e);
		}
	} else {
		f.elements[e+"_name"].value="";
		f.elements[e+"_phone"].value="";
		f.elements[e+"_address1"].value="";
		f.elements[e+"_address2"].value="";
		f.elements[e+"_zip"].value="";
		if (e=="Enlevement") {
			Enlevement_locality.MAJ(f.elements[e+"_country"].value,"");
		} else if (e=="Livraison") {
			Livraison_locality.MAJ(f.elements[e+"_country"].value,"");
		}
		f.elements[e+"_locality"].value="0";
		f.elements[e+"_country"].value="";
		f.elements[e+"_first_name"].value="";
		f.elements[e+"_last_name"].value="";
		f.elements[e+"_id"].value=0;
	}
}

function EnableModif(e) {
	var f=document.forms["monform"];
	inputenable(e+"_name",true);
	inputenable(e+"_phone",true);
	inputenable(e+"_address1",true);
	inputenable(e+"_address2",true);
	inputenable(e+"_zip",true);
	f.elements[e+"_locality"].disabled=false;
	f.elements[e+"_country"].disabled=false;
	inputenable(e+"_first_name",true);
	inputenable(e+"_last_name",true);
	f.elements[e+"_modif"].checked=true;
	f.elements[e+"_modif"].disabled=false;
	f.elements[e+"_address1"].focus();
}

function DisableModif(e) {
	var f=document.forms["monform"];
	inputenable(e+"_name",false);
	inputenable(e+"_phone",false);
	inputenable(e+"_address1",false);
	inputenable(e+"_address2",false);
	inputenable(e+"_zip",false);
	f.elements[e+"_locality"].disabled=true;
	f.elements[e+"_country"].disabled=true;
	inputenable(e+"_first_name",false);
	inputenable(e+"_last_name",false);
	f.elements[e+"_modif"].checked=false;
	f.elements[e+"_modif"].disabled=true;
	f.elements[e+"_change"].disabled=false;
}

function CreateAddress(e) {
	var f=document.forms["monform"];
	f.elements[e].selectedIndex=-1;
	UpdateFields(e);
	EnableModif(e);
	document.forms["monform"].elements[e+"_modif"].disabled=true;
	document.forms["monform"].elements[e+"_change"].disabled=true;
	document.forms["monform"].elements[e+"_country"].value="BE";
	f.elements[e+"_name"].focus();
}

function ListeCheck() {
	Enlevement.MAJ(document.forms["monform"].searchenlevement.value)
	Livraison.MAJ(document.forms["monform"].searchlivraison.value)
	if (document.layers) {
		setTimeout("ListeCheck()", 1001)
	} else {
		setTimeout("ListeCheck()", 100)
	}
}

function SearchCheck() {
	Enlevement.MAJ(document.forms["monform"].searchenlevement.value)
	if (document.layers) {
		setTimeout("SearchCheck()", 1001)
	} else {
		setTimeout("SearchCheck()", 100)
	}
}

function FillIt() {
	var f=document.forms["monform"];
	if (InitValue["shipment_id"]) {
		for(var i=0; i < f.elements.length; i++) {
			if (InitValue[f.elements[i].name]) {
				f.elements[i].value = InitValue[f.elements[i].name];
			}
		}
		document.forms["monform"].elements["Enlevement_change"].disabled=false;
		document.forms["monform"].elements["Livraison_change"].disabled=false;
	}
}

function CheckShipment(arg) {
	// mettre les tests ici ...
	var f=document.forms["monform"];
	if (searchable(f.elements["Enlevement_name"].value) == '') {
		alert("Enlevement : Il faut un nom !");
	} else if (searchable(f.elements["Enlevement_address1"].value) == '') {
		alert("Enlevement : Il faut une ligne d'adresse !");
	} else if (searchable(f.elements["Enlevement_country"].value) == '') {
		alert("Enlevement : Il faut un pays !");
	} else if (searchable(f.elements["Enlevement_zip"].value) == '') {
		alert("Enlevement : Il faut un code postal !");
//	} else if (searchable(f.elements["Enlevement_locality"].value) == '') {
		// alert("Enlevement : Il faut une localité !");
	} else if (searchable(f.elements["Livraison_name"].value) == '') {
		alert("Livraison : Il faut un nom !");
	} else if (searchable(f.elements["Livraison_address1"].value) == '') {
		alert("Livraison : Il faut une ligne d'adresse !");
	} else if (searchable(f.elements["Livraison_country"].value) == '') {
		alert("Livraison : Il faut un pays !");
	} else if (searchable(f.elements["Livraison_zip"].value) == '') {
		alert("Livraison : Il faut un code postal !");
//	} else if (searchable(f.elements["Livraison_locality"].value) == '') {
		// alert("Livraison : Il faut une localité !");
		// return false;
	} else {
		// alert(arg.name);
		if (arg.name == 'submit_cancel') {
			input_box=confirm("Are you sure you want to continue ?");
		} else {
			input_box=true;
		}
		if (input_box == true) {
			f.elements["Enlevement_locality"].disabled=false;
			f.elements["Enlevement_country"].disabled=false;
			f.elements["Enlevement_modif"].disabled=false;
			f.elements["Livraison_locality"].disabled=false;
			f.elements["Livraison_country"].disabled=false;
			f.elements["Livraison_modif"].disabled=false;
			f.elements["action_value"].value=arg.name;
			f.submit();
		}
	}
}

function CheckLocation(arg) {
	// mettre les tests ici ...
	var f=document.forms["monform"];
	if (arg.name == 'submit_delete') {
		input_box=confirm("Are you sure you want to continue ?");
	} else {
		if (searchable(f.elements["Enlevement_name"].value) == '') {
			alert("Il faut un nom !");
		} else if (searchable(f.elements["Enlevement_address1"].value) == '') {
			alert("Il faut une ligne d'adresse !");
		} else if (searchable(f.elements["Enlevement_country"].value) == '') {
			alert("Il faut un pays !");
		} else if (searchable(f.elements["Enlevement_zip"].value) == '') {
			alert("Il faut un code postal !");
		} else if (searchable(f.elements["Enlevement_locality"].value) == '') {
			alert("Il faut une localité !");
		} else {
			input_box=true;
		}
	}
	if (input_box == true) {
		f.elements["Enlevement_locality"].disabled=false;
		f.elements["Enlevement_country"].disabled=false;
		f.elements["Enlevement_modif"].disabled=false;
		f.elements["action_value"].value=arg.name;
		f.submit();
	}
}
	
