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;
}

function EmailConstruct(form) {
	var browserid=navigator.userAgent.toLowerCase();
	var browsermac=(browserid.indexOf("mac")!=-1);
	var browsermsie=(browserid.indexOf("msie")!=-1);
	var EmailConstructpass=false;
	var delimiter=";";
	var i,j,count1,count2;
	var count2,tempString2;
	var champs_obligatoire_value,champs_obligatoire_array,champs_obligatoire_current;
	var Email_replyto_from_form_value,Email_replyto_from_form_array,Email_replyto_from_form_current;
	var Email_replyto_override_value;
	var langue_value;
	var message_error,message_final,message_partiel;
	message_final="";
	if (!(browsermac)) {
		champs_obligatoire_value=form.champs_obligatoire.value;
		if (!((champs_obligatoire_value.substring((champs_obligatoire_value.length-1),champs_obligatoire_value.length))==";")) {champs_obligatoire_value+=";"}
		langue_value=form.langue.value;
		if (!(langue_value=="En")) {langue_value="Fr";}
		Email_replyto_from_form_value=form.Email_replyto_from_form.value;
		if (!((Email_replyto_from_form_value.substring((Email_replyto_from_form_value.length-1),Email_replyto_from_form_value.length))==";")) {Email_replyto_from_form_value+=";"}
		Email_replyto_override_value=form.Email_replyto_override.value;
		message_error="";
		message_partiel="";
		message_final="";
		count1=0;
		champs_obligatoire_array=new Array();
		while (champs_obligatoire_value.indexOf(delimiter)>0) {
			champs_obligatoire_array[count1]=champs_obligatoire_value.substring(0,champs_obligatoire_value.indexOf(delimiter));
			champs_obligatoire_value=champs_obligatoire_value.substring(champs_obligatoire_value.indexOf(delimiter)+1,champs_obligatoire_value.length);
			count1=count1+1;
		}
		champs_obligatoire_array[count1]=champs_obligatoire_value;

		if (browsermsie) {
			for (i=0;i<count1;i++){
				champs_obligatoire_current="";
				if ((form.item(champs_obligatoire_array[i]).type=="text")||(form.item(champs_obligatoire_array[i]).type=="textarea")){champs_obligatoire_current=form.item(champs_obligatoire_array[i]).value;}
				if (form.item(champs_obligatoire_array[i]).type=="select-one"){
					if (form.item(champs_obligatoire_array[i]).options[form.item(champs_obligatoire_array[i]).selectedIndex].value!=""){champs_obligatoire_current=form.item(champs_obligatoire_array[i]).name + " = " + form.item(champs_obligatoire_array[i]).options[form.item(champs_obligatoire_array[i]).selectedIndex].value;}
				}
				if ((form.item(champs_obligatoire_array[i]).type=="checkbox")&&(form.item(champs_obligatoire_array[i]).checked==true)) {champs_obligatoire_current=form.item(champs_obligatoire_array[i]).name + " = " + form.item(champs_obligatoire_array[i]).value;}
				if (champs_obligatoire_current=='') {
					message_error="Le champs " + champs_obligatoire_array[i] + " semble invalide.";
					if (langue_value=="En") {message_error=champs_obligatoire_array[i] + " field seems to be not compatible.";}
					i=count1+1;
				}
			}
			if (message_error.length>0) {
				alert(message_error);
				return false;
			}
			for (i=0;i<form.length;i++) {
				message_partiel="";
				if (!((form.item(i).name=="champs_obligatoire")||(form.item(i).name=="champs_transmis")||(form.item(i).name=="langue")||(form.item(i).name=="url_complet_de_retour")||(form.item(i).name=="Email_Body")||(form.item(i).name=="Email_to")||(form.item(i).name=="Email_cc")||(form.item(i).name=="Email_bcc")||(form.item(i).name=="Email_replyto_from_form")||(form.item(i).name=="Email_replyto_override")||(form.item(i).name=="Email_Subject")||(form.item(i).name=="Email_Receipt_ReplyTo")||(form.item(i).name=="Email_Receipt_Subject")||(form.item(i).name=="Email_Receipt_Body"))) {
					message_partiel="";
					if ((form.item(i).type=="text")||(form.item(i).type=="textarea")) {message_partiel=form.item(i).name + " : " + form.item(i).value;}
					if (form.item(i).type=="select-one") {message_partiel=form.item(i).name + " : " + form.item(i).options[form.item(i).selectedIndex].value;}
					if ((form.item(i).type=="checkbox")&&(form.item(i).checked==true)) {message_partiel=form.item(i).name + " : " + form.item(i).value;}
					if ((form.item(i).type=="radio")&&(form.item(i).checked==true)){message_partiel=form.item(i).name + " : " + form.item(i).value;}
					if (message_partiel.length>0) {message_final+=message_partiel + "\r\n";}
				}
			}
		} else {
			champs_obligatoire_array[count1]=champs_obligatoire_value;
			for (i=0;i<form.length;i++){
				for (j=0;j<count1;j++){
					if (form.elements[i].name==champs_obligatoire_array[j]) {
						if ((form.elements[i].type=="text")||(form.elements[i].type=="textarea")){
							if (form.elements[i].value=="") {
								message_error="Le champs " + champs_obligatoire_array[j] + " semble invalide.";
								if (langue_value=="En") {message_error=champs_obligatoire_array[j] + " field seems to be not compatible.";}
							}
						}
						if (form.elements[i].type=="select-one"){
							if (form.elements[i].options[form.elements[i].selectedIndex].value=="") {
								message_error="Le champs " + champs_obligatoire_array[j] + " semble invalide.";
								if (langue_value=="En") {message_error=champs_obligatoire_array[j] + " field seems to be not compatible.";}
							}
						}
						if ((form.elements[i].type=="checkbox")&&(form.elements[i].type=="checkbox")){

						}
						if (message_error.length>0) {
							j=count1+1;
							i=form.length+1;
						}
					}
				}
			}
			if (message_error.length>0) {
				alert(message_error);
				return false;
			}
			for (i=0;i<form.length;i++) {
				message_partiel="";
				if (!((form.elements[i].name=="champs_obligatoire")||(form.elements[i].name=="champs_transmis")||(form.elements[i].name=="langue")||(form.elements[i].name=="url_complet_de_retour")||(form.elements[i].name=="Email_Body")||(form.elements[i].name=="Email_to")||(form.elements[i].name=="Email_cc")||(form.elements[i].name=="Email_bcc")||(form.elements[i].name=="Email_replyto_from_form")||(form.elements[i].name=="Email_replyto_override")||(form.elements[i].name=="Email_Subject")||(form.elements[i].name=="Email_Receipt_ReplyTo")||(form.elements[i].name=="Email_Receipt_Subject")||(form.elements[i].name=="Email_Receipt_Body"))) {
					message_partiel="";
					if ((form.elements[i].type=="text")||(form.elements[i].type=="textarea")) {message_partiel=form.elements[i].name + " : " + form.elements[i].value;}
					if (form.elements[i].type=="select-one") {message_partiel=form.elements[i].name + " = " + form.elements[i].options[form.elements[i].selectedIndex].value;}
					if ((form.elements[i].type=="checkbox")&&(form.elements[i].checked==true)) {message_partiel=form.elements[i].name + " = " + form.elements[i].value;}
					if ((form.elements[i].type=="radio")&&(form.elements[i].checked==true)){message_partiel=form.elements[i].name + " : " + form.elements[i].value;}
					if (message_partiel.length>0) {message_final+=message_partiel + "\r\n";}
				}
			}
		}
		message_partiel="[" + top.location + "]\r\n";
		message_final=message_partiel + message_final;
		form.Email_Body.value=message_final;

		if ((!(Email_replyto_from_form_value==''))&&(Email_replyto_override_value=='')) {
			Email_replyto_from_form_current="";
			count1=0;
			Email_replyto_from_form_array=new Array();
			while (Email_replyto_from_form_value.indexOf(delimiter)>0) {
				Email_replyto_from_form_array[count1]=Email_replyto_from_form_value.substring(0,Email_replyto_from_form_value.indexOf(delimiter));
				Email_replyto_from_form_value=Email_replyto_from_form_value.substring(Email_replyto_from_form_value.indexOf(delimiter)+1,Email_replyto_from_form_value.length);
				count1=count1+1;
			}
			Email_replyto_from_form_array[count1]=Email_replyto_from_form_value;
			if (browsermsie) {
				for (i=0;i<count1;i++){
					Email_replyto_from_form_current="";
					if (form.item(Email_replyto_from_form_array[i]).type=="text"){
						Email_replyto_from_form_current=form.item(Email_replyto_from_form_array[i]).value;
						//i=count1;
						if (!(ValidEmail(Email_replyto_from_form_current))) {
							message_error="Le champs " + Email_replyto_from_form_array[i] + " semble invalide.";
							if (langue_value=="En") {message_error=Email_replyto_from_form_array[i] + " field seems to be not compatible.";}
							alert(message_error);
							return false;
						}
					}
				}
			} else {
				for (i=0;i<form.length;i++) {
					for (j=0;j<count1;j++){
						Email_replyto_from_form_current="";
						if ((form.elements[i].name==Email_replyto_from_form_array[j])&&(form.elements[i].type=="text")) {
							Email_replyto_from_form_current=form.elements[i].value;
							//i=form.length;
							//j=count1;
							if (!(ValidEmail(Email_replyto_from_form_current))) {
								message_error="Le champs " + Email_replyto_from_form_array[j] + " semble invalide.";
								if (langue_value=="En") {message_error=Email_replyto_from_form_array[j] + " field seems to be not compatible.";}
								alert(message_error);
								return false;
							}
						}
					}
				}
			}
			form.Email_replyto_override.value=Email_replyto_from_form_current;
		}
	}
	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;
	}
}
