
function Facteuriel_Construct(form) {
	var jsbrowserid=navigator.userAgent.toLowerCase();
	var jsbrowsermac=(browserid.indexOf("mac")!=-1);
	var jsbrowsermsie=(browserid.indexOf("msie")!=-1);	
	var jsdelimiter=";";
	var jsErrormsg="";
	var jsform_i=0;
	var jsinput_localchampsobligatoire="";
	var jsinput_localchampscourrielvalide="";
	var jsinput_locallangue="";
	var jsinput_localchampsobligatoireArray,jsinput_localchampsobligatoire_i,jsinput_localchampsobligatoire_j,jsinput_localchampscourrielvalideArray,jsinput_localchampscourrielvalide_i,jsinput_localchampscourrielvalide_j;
	var jsinput_i=0;
	var jsinput_tmp="";
	var jsinput_pass=false;
	
	if (!(jsbrowsermac)) {
		jsinput_localchampsobligatoire=form.local_champs_obligatoire.value;
		jsinput_localchampscourrielvalide=form.local_champs_courriel_valide.value;
		jsinput_locallangue=form.local_langue.value;
		//adj fields
		if (!((jsinput_localchampsobligatoire.substring((jsinput_localchampsobligatoire.length-1),jsinput_localchampsobligatoire.length))==";")) {jsinput_localchampsobligatoire+=";"}
		if (!((jsinput_localchampscourrielvalide.substring((jsinput_localchampscourrielvalide.length-1),jsinput_localchampscourrielvalide.length))==";")) {jsinput_localchampscourrielvalide+=";"}
		if (!(jsinput_locallangue=="En")) {jsinput_locallangue="Fr";}
		
		jsinput_localchampsobligatoire_i=0
		jsinput_localchampsobligatoireArray=new Array();
		while (jsinput_localchampsobligatoire.indexOf(jsdelimiter)>0){
			jsinput_localchampsobligatoireArray[jsinput_localchampsobligatoire_i]=jsinput_localchampsobligatoire.substring(0,jsinput_localchampsobligatoire.indexOf(jsdelimiter));
			jsinput_localchampsobligatoire=jsinput_localchampsobligatoire.substring(jsinput_localchampsobligatoire.indexOf(jsdelimiter)+1,jsinput_localchampsobligatoire.length);
			jsinput_localchampsobligatoire_i=jsinput_localchampsobligatoire_i+1;	
		}
		jsinput_localchampscourrielvalide_i=0
		jsinput_localchampscourrielvalideArray=new Array();	
		while (jsinput_localchampscourrielvalide.indexOf(jsdelimiter)>0){
			jsinput_localchampscourrielvalideArray[jsinput_localchampscourrielvalide_i]=jsinput_localchampscourrielvalide.substring(0,jsinput_localchampscourrielvalide.indexOf(jsdelimiter));
			jsinput_localchampscourrielvalide=jsinput_localchampscourrielvalide.substring(jsinput_localchampscourrielvalide.indexOf(jsdelimiter)+1,jsinput_localchampscourrielvalide.length);
			jsinput_localchampscourrielvalide_i=jsinput_localchampscourrielvalide_i+1;	
		}

		jsinput_localchampsobligatoire_j=0;
		jsinput_localchampscourrielvalide_j=0;
		for (jsform_i=0;jsform_i<form.length;jsform_i++){
			if (jsErrormsg.length==0){
				for (jsinput_i=0;jsinput_i<jsinput_localchampsobligatoire_i;jsinput_i++){
					if (form.elements[jsform_i].name==jsinput_localchampsobligatoireArray[jsinput_i]) {
						jsinput_tmp="";
						if ((form.elements[jsform_i].type=="text")||(form.elements[jsform_i].type=="textarea")){jsinput_tmp=form.elements[jsform_i].value;}
						if (form.elements[jsform_i].type=="select-one"){
							if (form.elements[jsform_i].options[form.elements[jsform_i].selectedIndex].value!=""){jsinput_tmp=form.elements[jsform_i].options[form.elements[jsform_i].selectedIndex].value;}
						}
						if ((form.elements[jsform_i].type=="checkbox")&&(form.elements[jsform_i].checked==true)) {jsinput_tmp=form.elements[jsform_i].value;}
						if (jsinput_tmp=="") {
							jsErrormsg="Le champs " + jsinput_localchampsobligatoireArray[jsinput_i] + " semble invalide.";
							if (jsinput_locallangue=="En") {jsErrormsg=jsinput_localchampsobligatoireArray[jsinput_i] + " field seem to be not compatible.";} 
							jsinput_i=jsinput_localchampsobligatoire_i+1;
							jsform_i=form.length+1;
						}
						jsinput_localchampsobligatoire_j++;
					}
				}
			}
			if (jsErrormsg.length==0){
				for (jsinput_i=0;jsinput_i<jsinput_localchampscourrielvalide_i;jsinput_i++){
					if (form.elements[jsform_i].name==jsinput_localchampscourrielvalideArray[jsinput_i]) {
						jsinput_tmp="";
						if (form.elements[jsform_i].type=="text") {jsinput_tmp=form.elements[jsform_i].value;}
						if (!(ValidEmail(jsinput_tmp))){
							jsErrormsg="Le champs " + jsinput_localchampsobligatoireArray[jsinput_i] + " semble invalide.";
							if (jsinput_locallangue=="En") {jsErrormsg=jsinput_localchampsobligatoireArray[jsinput_i] + " field seem to be not compatible.";} 
							jsinput_i=jsinput_localchampsobligatoire_i+1;
							jsform_i=form.length+1;
						}
						jsinput_localchampscourrielvalide_j++;
					}
				}
			}
		}
		if (jsErrormsg.length==0){
			if (jsinput_localchampsobligatoire_i!=jsinput_localchampsobligatoire_j){
				jsErrormsg="Le formulaire semble invalide.";
				if (jsinput_locallangue=="En") {jsErrormsg="the form seem to be not compatible.";} 
		
			}
		}
	}
	if (jsErrormsg.length>0){
		alert(jsErrormsg);
		return false;
	}
	return true;
}	

// verification courriel (v1.4)...rs
function ValidEmail (emailStr) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {return false;}
	var user=matchArray[1];
	var domain=matchArray[2];
	if (user.match(userPat)==null) {return false;}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {return false;}
	    }
	    return true;
	}
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {return false;}
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {return false;}
	if (len<2) {return false;}
	return true;
}



//***************************************************************************************
// BLOCK SRC AND HOTKEY
//***************************************************************************************
var ctrlpressed=false;
var keymsg="";
function PQMKeyDownIE() {
	var wkeydown=event.keyCode;
	if (wkeydown==17) {ctrlpressed=true;}
	if (((wkeydown==69)||(wkeydown==101))&&(ctrlpressed)) {return false;}//E||e
	if (((wkeydown==82)||(wkeydown==114))&&(ctrlpressed)) {return false;}//R||r
	if (((wkeydown==76)||(wkeydown==108))&&(ctrlpressed)) {return false;}//L||l
	if (((wkeydown==73)||(wkeydown==105))&&(ctrlpressed)) {return false;}//I||i
	if (((wkeydown==79)||(wkeydown==111))&&(ctrlpressed)) {return false;}//O||o
	if (((wkeydown==65)||(wkeydown==97))&&(ctrlpressed)) {return false;}//A||a
	if (((wkeydown==68)||(wkeydown==110))&&(ctrlpressed)) {return false;}//D||d
	if (((wkeydown==72)||(wkeydown==104))&&(ctrlpressed)) {return false;}//H||h
	if (((wkeydown==66)||(wkeydown==98))&&(ctrlpressed)) {return false;}//B||b
	if (((wkeydown==78)||(wkeydown==110))&&(ctrlpressed)) {return false;}//N||n
	//?
	if (((wkeydown==70)||(wkeydown==102))&&(ctrlpressed)) {alert(keymsg);return false;}//F||f
	if (((wkeydown==80)||(wkeydown==112))&&(ctrlpressed)) {alert(keymsg);return false;}//P||p
}
function PQMKeyUpIE() {
	var wkeyup=event.keyCode;
	if (wkeyup==17) {ctrlpressed=false;}
}
function PQMKeyDownN6(e) {
	var wkeydown=e.keyCode;
	if (wkeydown==17) {ctrlpressed=true;}
	if (((wkeydown==69)||(wkeydown==101))&&(ctrlpressed)) {alert(keymsg);return false;}//E||e
	if (((wkeydown==82)||(wkeydown==114))&&(ctrlpressed)) {alert(keymsg);return false;}//R||r
	if (((wkeydown==76)||(wkeydown==108))&&(ctrlpressed)) {alert(keymsg);return false;}//L||l
	if (((wkeydown==73)||(wkeydown==105))&&(ctrlpressed)) {alert(keymsg);return false;}//I||i
	if (((wkeydown==79)||(wkeydown==111))&&(ctrlpressed)) {alert(keymsg);return false;}//O||o
	if (((wkeydown==65)||(wkeydown==97))&&(ctrlpressed)) {alert(keymsg);return false;}//A||a
	if (((wkeydown==68)||(wkeydown==110))&&(ctrlpressed)) {alert(keymsg);return false;}//D||d
	if (((wkeydown==72)||(wkeydown==104))&&(ctrlpressed)) {alert(keymsg);return false;}//H||h
	if (((wkeydown==66)||(wkeydown==98))&&(ctrlpressed)) {alert(keymsg);return false;}//B||b
	if (((wkeydown==78)||(wkeydown==110))&&(ctrlpressed)) {alert(keymsg);return false;}//N||n
	if (((wkeydown==70)||(wkeydown==102))&&(ctrlpressed)) {alert(keymsg);return false;}//F||f
	if (((wkeydown==80)||(wkeydown==112))&&(ctrlpressed)) {alert(keymsg);return false;}//P||p
}
function PQMKeyUpN6(e) {
	var wkeyup=e.keyCode;
	if (wkeyup==17) {ctrlpressed=false;}
}

var browserid=navigator.userAgent.toLowerCase();
var browsermac=(browserid.indexOf("mac")!=-1);
if (!(browsermac)) {
	if (navigator.appName=="Netscape"){
		browserver=navigator.appVersion.charAt(0);
		window.captureEvents(Event.KEYDOWN);
		window.releaseEvents(Event.KEYDOWN);
		window.captureEvents(Event.KEYUP);
		window.releaseEvents(Event.KEYUP);
		document.oncontextmenu = function(){return false;}
		document.onmousedown = function(e){
			if(e.target==document) {
				return false;
			} else {
				if ((e.which==2)||(e.which==3)) {return false;}
			}
		}
		if (browserver=="5") {
			window.onkeydown=PQMKeyDownN6;
			window.onkeyup=PQMKeyUpN6;
		} else {
			window.onkeydown=function(e){return false;}
			window.onkeyup=function(e){return false;}
		}
	} else {
		document.oncontextmenu = function(){return false;}
		document.onmousedown = function(){return false;}
		document.onkeydown=PQMKeyDownIE;
		document.onkeyup=PQMKeyUpIE;
	}
}
