/* Global Variables */
var isValid = false;
var chkAr = new Array();
var frm = null;


/* eSite Sign-up Form */

function fctMinLenOf(evt, len){
	if(isIE){
		elem = window.event.srcElement;
		key = evt.which;
	} else {
		elem = evt.target;
		key = evt.keyCode;
	}

	worth = 0;//(key == 8) ? -1 : 1;

	window.status = elem.value.length+worth;

	if((elem.value == null ? 0 : elem.value).length+worth < len){
		setNotOk(elem);
	} else {
		setOk(elem);
	}

}

function lenMinOf3(evt) {  fctMinLenOf((isIE) ? window.event : evt, 3);  }
function lenMinOf5(evt) {  fctMinLenOf((isIE) ? window.event : evt, 5);  }
function lenMinOf7(evt) {  fctMinLenOf((isIE) ? window.event : evt, 7);  }
function lenMinOf8(evt) {  fctMinLenOf((isIE) ? window.event : evt, 8);  }
function lenMinOf13(evt){  fctMinLenOf((isIE) ? window.event : evt, 13); }

function selNotNull(evt){
	if(isIE){
		evt  = window.event;
		elem = window.event.srcElement;
	} else {
		elem = evt.target;
	}

	if(elem.getAttribute("name") == "pays"){ 
		if(elem.value == "CA"){				// show province
			document.getElementById("provinceCanada").style.display = "";
			document.getElementById("etatsUsa").style.display       = "none";
			document.getElementById("provinceCanada").getElementsByTagName("select")[0].setAttribute("name", "province");
			document.getElementById("etatsUsa").getElementsByTagName("select")[0].setAttribute("name", "");
			document.getElementById("noProvince").getElementsByTagName("select")[0].setAttribute("name", "");
			if(!isIE){
				document.getElementsByName("codePostal")[0].removeEventListener("keyup", lenMinOf5, false);
				document.getElementsByName("codePostal")[0].removeEventListener("blur", lenMinOf5, false);
				document.getElementsByName("codePostal")[0].addEventListener("keyup", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].addEventListener("blur", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].addEventListener("keydown", postalCodeEnforce, false);
			} else {
				document.getElementsByName("codePostal")[0].attachEvent("onkeyup", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].attachEvent("onblur", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].attachEvent("onkeydown", postalCodeEnforce);
				document.getElementsByName("codePostal")[0].detachEvent("onkeyup", lenMinOf5);
				document.getElementsByName("codePostal")[0].detachEvent("onblur", lenMinOf5);

				document.getElementById("etatsUsa").getElementsByTagName("select")[0].detachEvent("onchange", selNotNull);
				document.getElementById("etatsUsa").getElementsByTagName("select")[0].detachEvent("onkeyup", selNotNull);
				document.getElementById("etatsUsa").getElementsByTagName("select")[0].detachEvent("onblur", selNotNull);

				document.getElementById("provinceCanada").getElementsByTagName("select")[0].attachEvent("onchange", selNotNull);
				document.getElementById("provinceCanada").getElementsByTagName("select")[0].attachEvent("onkeyup", selNotNull);
				document.getElementById("provinceCanada").getElementsByTagName("select")[0].attachEvent("onblur", selNotNull);
			}
			document.getElementsByName("codePostal")[0].value = "";
			setNotOk(document.getElementsByName("codePostal")[0]);
		} else if (elem.value == "US"){		// Show states
			document.getElementById("provinceCanada").style.display = "none";
			document.getElementById("etatsUsa").style.display       = "";
			document.getElementById("provinceCanada").getElementsByTagName("select")[0].setAttribute("name", "");
			document.getElementById("etatsUsa").getElementsByTagName("select")[0].setAttribute("name", "province");
			document.getElementById("noProvince").getElementsByTagName("select")[0].setAttribute("name", "");
			if(!isIE){
				document.getElementsByName("codePostal")[0].removeEventListener("keyup", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].removeEventListener("blur", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].removeEventListener("keydown", postalCodeEnforce, false);
				document.getElementsByName("codePostal")[0].addEventListener("keyup", lenMinOf5, false);
				document.getElementsByName("codePostal")[0].addEventListener("blur", lenMinOf5, false);
			} else {
				document.getElementsByName("codePostal")[0].detachEvent("onkeyup", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].detachEvent("onblur", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].detachEvent("onkeydown", postalCodeEnforce);
				document.getElementsByName("codePostal")[0].attachEvent("onkeyup", lenMinOf5);
				document.getElementsByName("codePostal")[0].attachEvent("onblur", lenMinOf5);
				
				document.getElementById("provinceCanada").getElementsByTagName("select")[0].detachEvent("onchange", selNotNull);
				document.getElementById("provinceCanada").getElementsByTagName("select")[0].detachEvent("onkeyup", selNotNull);
				document.getElementById("provinceCanada").getElementsByTagName("select")[0].detachEvent("onblur", selNotNull);

				document.getElementById("etatsUsa").getElementsByTagName("select")[0].attachEvent("onchange", selNotNull);
				document.getElementById("etatsUsa").getElementsByTagName("select")[0].attachEvent("onkeyup", selNotNull);
				document.getElementById("etatsUsa").getElementsByTagName("select")[0].attachEvent("onblur", selNotNull);
			}
			document.getElementsByName("codePostal")[0].value = "";
			setNotOk(document.getElementsByName("codePostal")[0]);
		} else {							// Show nothing
			document.getElementById("provinceCanada").style.display = "none";
			document.getElementById("etatsUsa").style.display       = "none";
			document.getElementById("provinceCanada").getElementsByTagName("select")[0].setAttribute("name", "");
			document.getElementById("etatsUsa").getElementsByTagName("select")[0].setAttribute("name", "");
			document.getElementById("noProvince").getElementsByTagName("select")[0].setAttribute("name", "province");
			if(!isIE){
				document.getElementsByName("codePostal")[0].removeEventListener("keyup", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].removeEventListener("blur", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].removeEventListener("keydown", postalCodeEnforce, false);
				document.getElementsByName("codePostal")[0].removeEventListener("keyup", lenMinOf5, false);
				document.getElementsByName("codePostal")[0].removeEventListener("blur", lenMinOf5, false);
			} else {
				document.getElementsByName("codePostal")[0].detachEvent("onkeyup", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].detachEvent("onblur", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].detachEvent("onkeydown", postalCodeEnforce);
				document.getElementsByName("codePostal")[0].detachEvent("onkeyup", lenMinOf5);
				document.getElementsByName("codePostal")[0].detachEvent("onblur", lenMinOf5);
			}

		}
	}
	if(!isIE){
		if(frm) {
			frm.province.addEventListener("change", selNotNull, false);
			frm.province.addEventListener("keyup", selNotNull, false);
			frm.province.addEventListener("blur", selNotNull, false);
		}
	}

	if(elem.value == ""){
		setNotOk(elem);
		ret = false;
	} else {
		setOk(elem);
		ret = true;
	}

	checkEnableSubmit();

	return ret;
}

function emailValid(evt){
	if(isIE){
		evt  = window.event;
		elem = window.event.srcElement;
	} else {
		elem = evt.target;
	}
	
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if(!filter.test(elem.value)){
		setNotOk(elem);
	} else {
		setOk(elem);
	}
}

var debug = null;

function checkEnableSubmit(){
	isOk = true;
	for(i=0; chkAr[i]; i++){ 
		if(chkAr[i].parentNode.style.display != "none" && !String(chkAr[i].style.backgroundImage).match("Butbutvert.jpg") ){	
			isOk = false;
		} 
	}
	document.getElementById("regSub").disabled = !isOk;
}

function checkPass1(evt){
	if(isIE){
		evt = window.event;
		key = evt.keyCode;
		if(key >= 65 && key <= 90){
			if(!evt.shiftKey){
				key += 32;
			}
		}
		elem = window.event.srcElement;
	} else {
		key = evt.charCode;
		elem = evt.target;
	}
}

function isSamePass(evt){
	if(isIE){
		elem = window.event.srcElement;
	} else {
		elem = evt.target;
	}
	if(elem.value != document.forms['frmPartAdh'].password.value){
		setNotOk(elem);
	} else {
		setOk(elem);
	}
}


/*
These functions are project specific, they are not meant to be portable.
*/

function setNotOk(elem){
	tdAr = elem.parentNode.parentNode.getElementsByTagName("td");
	for(i=0; tdAr[i]; i++){
		if(tdAr[i].getAttribute("class") == "stateTD" || (tdAr[i].className && tdAr[i].className == "stateTD")){
			tdAr[i].style.backgroundImage = "url(images/ButbutOrange.jpg)";
		}
	}
	document.getElementById("regSub").disabled = true;
}

function setOk(elem){
	tdAr = elem.parentNode.parentNode.getElementsByTagName("td");
	for(i=0; tdAr[i]; i++){
		if(tdAr[i].getAttribute("class") == "stateTD" || (tdAr[i].className && tdAr[i].className == "stateTD")){
			tdAr[i].style.backgroundImage = "url(images/Butbutvert.jpg)";
		}
	}
	checkEnableSubmit();
}

function signupFrmAutoValidate(){
	frm = document.forms['frmPartAdh'];
	if(frm){
		if(!isIE){
			frm.nom.addEventListener("keyup", lenMinOf3, false);
			frm.nom.addEventListener("blur", lenMinOf3, false);
			frm.prenom.addEventListener("keyup", lenMinOf3, false);
			frm.prenom.addEventListener("blur", lenMinOf3, false);
			frm.adresse.addEventListener("keyup", lenMinOf7, false);
			frm.adresse.addEventListener("blur", lenMinOf7, false);
			frm.tel.addEventListener("blur", lenMinOf13, false);
			frm.tel.addEventListener("keyup", lenMinOf13, false);
			frm.tel2.addEventListener("blur", lenMinOf13, false);
			frm.tel2.addEventListener("keyup", lenMinOf13, false);
			frm.email.addEventListener("keyup", emailValid, false);
			frm.email.addEventListener("blur", emailValid, false);
			frm.ville.addEventListener("keyup", lenMinOf3, false);
			frm.ville.addEventListener("blur", lenMinOf3, false);
			frm.codePostal.addEventListener("keyup", lenMinOf7, false);
			frm.codePostal.addEventListener("blur", lenMinOf7, false);
			frm.province.addEventListener("change", selNotNull, false);
			frm.province.addEventListener("keyup", selNotNull, false);
			frm.province.addEventListener("blur", selNotNull, false);

			frm.pays.addEventListener("change", selNotNull, false);
			frm.pays.addEventListener("keyup", selNotNull, false);
			frm.pays.addEventListener("blur", selNotNull, false);

			frm.password.addEventListener("keyup", lenMinOf5, false);
			frm.password2.addEventListener("keyup", isSamePass, false);

			chkAr = document.getElementsByName("stateTD");
		} else {	// Need to change
			frm.nom.attachEvent("onkeyup", lenMinOf3);
			frm.nom.attachEvent("onblur", lenMinOf3);
			frm.prenom.attachEvent("onkeyup", lenMinOf3);
			frm.prenom.attachEvent("onblur", lenMinOf3);
			frm.adresse.attachEvent("onkeyup", lenMinOf7);
			frm.adresse.attachEvent("onblur", lenMinOf7);
			frm.tel.attachEvent("onblur", lenMinOf13);
			frm.tel.attachEvent("onkeyup", lenMinOf13);
			frm.tel2.attachEvent("onblur", lenMinOf13);
			frm.tel2.attachEvent("onkeyup", lenMinOf13);
			frm.email.attachEvent("onkeyup", emailValid);
			frm.email.attachEvent("onblur", emailValid);
			frm.ville.attachEvent("onkeyup", lenMinOf3);
			frm.ville.attachEvent("onblur", lenMinOf3);
			frm.codePostal.attachEvent("onkeyup", lenMinOf7);
			frm.codePostal.attachEvent("onblur", lenMinOf7);

			frm.pays.attachEvent("onchange", selNotNull);
			frm.pays.attachEvent("onkeyup", selNotNull);
			frm.pays.attachEvent("onblur", selNotNull);

			frm.province.attachEvent("onchange", selNotNull);
			frm.province.attachEvent("onkeyup", selNotNull);
			frm.province.attachEvent("onblur", selNotNull);

			frm.password.attachEvent("onkeyup", lenMinOf5);
			frm.password2.attachEvent("onkeyup", isSamePass);

			tdAr = document.getElementsByTagName("td");
			
			for(i=0; tdAr[i]; i++){
				if(tdAr[i].name == "stateTD"){
					chkAr.push(tdAr[i]);
				}
			}
		}

		setTimeout("onLoadThisForm();", 20);

		checkEnableSubmit();
	}
}	

function onLoadThisForm(){
	if(!document.forms['frmPartAdh']){
		return;
	}
	if(frm){
		frm.nom.value.length     < 3   ? setNotOk(frm.nom)      : setOk(frm.nom);
		frm.prenom.value.length  < 3   ? setNotOk(frm.prenom)   : setOk(frm.prenom);
		frm.adresse.value.length < 7   ? setNotOk(frm.adresse)  : setOk(frm.adresse);
		frm.tel.value.length     < 13  ? setNotOk(frm.tel)      : setOk(frm.tel);
		frm.tel2.value.length     < 13  ? setNotOk(frm.tel2)      : setOk(frm.tel2);
		frm.ville.value.length   < 3   ? setNotOk(frm.ville)    : setOk(frm.ville);

		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
		if(!filter.test(frm.email.value)){
			setNotOk(frm.email);
		} else {
			setOk(frm.email);
		}

		var filter = /^[A-Z][0-9][A-Z]\ [0-9][A-Z][0-9]$/i;
		if(!filter.test(frm.codePostal.value)){
			setNotOk(frm.codePostal);
		} else {
			setOk(frm.codePostal);
		}

		checkEnableSubmit();

		frm.pays.value           == "" ? setNotOk(frm.pays) : setOk(frm.pays);
		if(frm.pays.value == "CA"){
			document.getElementById("etatsUsa").style.display       = "none";
			document.getElementById("provinceCanada").style.display = "";
			frm.province.value       == "" ? setNotOk(frm.province) : setOk(frm.province);
			frm.codePostal.value.length     < 7   ? setNotOk(frm.codePostal)      : setOk(frm.codePostal);
		} else if(frm.pays.value == "US"){
			document.getElementById("etatsUsa").style.display       = "";
			document.getElementById("provinceCanada").style.display = "none";
			//frm.province.value       == "" ? setNotOk(frm.province) : setOk(frm.province);
			document.getElementById("etatsUsa").getElementsByTagName("select")[0].value == "" ? setNotOk(document.getElementById("etatsUsa").getElementsByTagName("select")[0]) : setOk(document.getElementById("etatsUsa").getElementsByTagName("select")[0]);
			frm.codePostal.value.length     < 5   ? setNotOk(frm.codePostal)      : setOk(frm.codePostal);
			if(!isIE){
				document.getElementsByName("codePostal")[0].removeEventListener("keyup", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].removeEventListener("blur", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].removeEventListener("keydown", postalCodeEnforce, false);
				document.getElementsByName("codePostal")[0].addEventListener("keyup", lenMinOf5, false);
				document.getElementsByName("codePostal")[0].addEventListener("blur", lenMinOf5, false);
			} else {
				document.getElementsByName("codePostal")[0].detachEvent("onkeyup", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].detachEvent("onblur", lenMinOf7, false);
				document.getElementsByName("codePostal")[0].detachEvent("onkeydown", postalCodeEnforce);
				document.getElementsByName("codePostal")[0].attachEvent("onkeyup", lenMinOf5);
				document.getElementsByName("codePostal")[0].attachEvent("onblur", lenMinOf5);
				
				document.getElementById("provinceCanada").getElementsByTagName("select")[0].detachEvent("onchange", selNotNull);
				document.getElementById("provinceCanada").getElementsByTagName("select")[0].detachEvent("onkeyup", selNotNull);
				document.getElementById("provinceCanada").getElementsByTagName("select")[0].detachEvent("onblur", selNotNull);

				document.getElementById("etatsUsa").getElementsByTagName("select")[0].attachEvent("onchange", selNotNull);
				document.getElementById("etatsUsa").getElementsByTagName("select")[0].attachEvent("onkeyup", selNotNull);
				document.getElementById("etatsUsa").getElementsByTagName("select")[0].attachEvent("onblur", selNotNull);
			}
		} else {
			document.getElementById("etatsUsa").style.display       = "none";
			document.getElementById("provinceCanada").style.display = "none";
		}

		
	}
}

function shipFrmAutoValidate(){
	frm = document.forms['frmShip'];
		
	setNotOk(frm.nom);
	setNotOk(frm.adresse);
	setNotOk(frm.ville);
	setNotOk(frm.codePostal);
	setNotOk(frm.tel);
	setNotOk(frm.tel2);
	setNotOk(frm.province);

	if(frm){
		if(!isIE){
			frm.nom.addEventListener("keyup", lenMinOf3, false);
			frm.nom.addEventListener("blur", lenMinOf3, false);
			frm.adresse.addEventListener("keyup", lenMinOf7, false);
			frm.adresse.addEventListener("blur", lenMinOf7, false);
			frm.tel.addEventListener("blur", lenMinOf13, false);
			frm.tel.addEventListener("keyup", lenMinOf13, false);
			frm.tel2.addEventListener("blur", lenMinOf13, false);
			frm.tel2.addEventListener("keyup", lenMinOf13, false);
			frm.ville.addEventListener("keyup", lenMinOf3, false);
			frm.ville.addEventListener("blur", lenMinOf3, false);
			frm.codePostal.addEventListener("keyup", lenMinOf7, false);
			frm.codePostal.addEventListener("blur", lenMinOf7, false);
			frm.province.addEventListener("change", selNotNull, false);
			frm.province.addEventListener("keyup", selNotNull, false);
			frm.province.addEventListener("blur", selNotNull, false);

			chkAr = document.getElementsByName("stateTD");

		} else {	// Need to change
			frm.nom.attachEvent("onkeyup", lenMinOf3);
			frm.nom.attachEvent("onblur", lenMinOf3);
			frm.adresse.attachEvent("onkeyup", lenMinOf7);
			frm.adresse.attachEvent("onblur", lenMinOf7);
			frm.tel.attachEvent("onblur", lenMinOf13);
			frm.tel.attachEvent("onkeyup", lenMinOf13);
			frm.tel2.attachEvent("onblur", lenMinOf13);
			frm.tel2.attachEvent("onkeyup", lenMinOf13);
			frm.ville.attachEvent("onkeyup", lenMinOf3);
			frm.ville.attachEvent("onblur", lenMinOf3);
			frm.codePostal.attachEvent("onkeyup", lenMinOf7);
			frm.codePostal.attachEvent("onblur", lenMinOf7);
			frm.province.attachEvent("onchange", selNotNull);
			frm.province.attachEvent("onkeyup", selNotNull);
			frm.province.attachEvent("onblur", selNotNull);

			tdAr = document.getElementsByTagName("td");
			
			for(i=0; tdAr[i]; i++){
				if(tdAr[i].name == "stateTD"){
					chkAr.push(tdAr[i]);
				}
			}

		}

		setTimeout("onLoadThisForm();", 20);

		checkEnableSubmit();
	}
}

function sameAddr(checked){
	if(checked){
		if(!frm){
			frm = document.forms['frmShip'];
		}
		frm.nom.value        = frm.nom.parentNode.parentNode.getElementsByTagName("td")[1].firstChild.nodeValue;
		frm.adresse.value    = frm.adresse.parentNode.parentNode.getElementsByTagName("td")[1].firstChild.nodeValue;
		frm.ville.value      = frm.ville.parentNode.parentNode.getElementsByTagName("td")[1].firstChild.nodeValue;
		frm.codePostal.value = frm.codePostal.parentNode.parentNode.getElementsByTagName("td")[1].firstChild.nodeValue;
		frm.tel.value        = frm.tel.parentNode.parentNode.getElementsByTagName("td")[1].firstChild.nodeValue;
		frm.tel2.value        = frm.tel2.parentNode.parentNode.getElementsByTagName("td")[1].firstChild.nodeValue;
		frm.province.value   = frm.province.parentNode.parentNode.getElementsByTagName("td")[1].firstChild.nodeValue;
		
		setOk(frm.nom);
		setOk(frm.adresse);
		setOk(frm.ville);
		setOk(frm.codePostal);
		setOk(frm.tel);
		setOk(frm.tel2);
		setOk(frm.province);

	}
}


	function validPan() {
		errMsg = "";

		if(document.getElementsByName("DateForm")[0].value == "") {
			errMsg += "Vous devez entrer une date de livraison.\n";	
		}

		/*if(!document.getElementsByName("livraison")[0].checked && !document.getElementsByName("livraison")[1].checked ) {
			errMsg += "Vous devez choisir un mode de livraison.\n";	
		}*/

		if(document.getElementsByName("livraison")[0].value == "") {
			errMsg += "Vous devez choisie un point de livraison.\n";
		}


		if(!document.getElementsByName("checkAdr")[0].checked) {
			if(document.getElementsByName("pays")[0].value == "") {
				errMsg += "Vous devez choisir un pays.\n";	
			}
			if(document.getElementsByName("province")[0].value == "") {
				errMsg += "Vous devez choisir une province.\n";	
			}
			if(document.getElementsByName("adresse")[0].value == "") {
				errMsg += "Vous devez entrer une adresse.\n";	
			}
			if(document.getElementsByName("codePostal")[0].value == "") {
				errMsg += "Vous devez entrer un code postal.\n";	
			}
		} 

		if(errMsg != "") {
			alert(errMsg);
			return false;
		}
			
		return true;
	}

