var	CurLangEng = true;

function ValidateForm(sFormName) {
	this.curform = document.forms[sFormName];
	if (!this.curform) {
		alert("not a form");
	}
	else {
		switch (curform.name) {
		case "ContactezNous":
			CurLangEng = false;
		case "ContactUs":
			FormContact();
			break;
		case "Formation":
			CurLangEng = false;
		case "Training":
			FormTraining();
			break;
		case "Webinaires":
			CurLangEng = false;
		case "Webinars":
			FormWebinars();
			break;
		default:
			alert("Default form");
		}
	}
/*
Naming convention
mx=mandatory
ox=optional

xt:text
xm:email
xc:checkbox
xs:select
xo:other
xz:excluded
*/
}

//****************************************************************

function FormContact() {
	var	MyEle
	var	strError
	var MyStr = ""
	var GotErr = false
	var CurEleErr
	var EmailBody = ""

	for	(var CurEle	= 0; CurEle	< curform.length; CurEle++)	{
		MyEle =	curform.elements[CurEle]
		CurEleErr = false
		strError = ""
		
		MyEle.value	= TrimStr(MyEle.value);
		if (MyEle.name.substr(0,1) == "m") {
			if (MyEle.value.length < 2) {
				CurEleErr = true;
			}
		}
		
		if (MyEle.name.substr(1,1) == "m") {
			if (!TestEmail(MyEle, strError))
				CurEleErr = true;
		}
		/*
		switch (MyEle.name.substr(1,1)) {
		case "m":
			if (!TestEmail(MyEle, strError))
				CurEleErr = true;
			break;
		case 7:
			if (!TestInputType(MyEle,"[^0-9]", strError, MyEle.name+": Only digits allowed"))
				CurEleErr = true;
			break;
		default:
			if (!TestInputType(MyEle,"[^A-Za-z0-9 \!\?\"\']", strError, MyEle.name+": Only alphabetic characters and	space allowed"))
				CurEleErr = true;
			break;
		}
		*/
		if (CurEleErr) {
			MyEle.style.backgroundColor = "red";
			GotErr = true;
		}
		else {
			MyEle.style.backgroundColor = "";
			
			switch (MyEle.name.substr(1,1)) {
			case "z":
				break;
			case "c":
				EmailBody += MyEle.name.substr(2,50) + ": \t"+MyEle.checked+"\n"
				break;
			case "s":
				EmailBody += MyEle.name.substr(2,50) + ": \t"+MyEle.options[MyEle.selectedIndex].text+"\n"
				break;
			default:
				EmailBody += MyEle.name.substr(2,50) + ": \t"+MyEle.value+"\n"
			}
		}
	}

	if (GotErr || (EmailBody.length < 5)) {
		changeCssClass('formerr',true);
		curform.ozEPSIText.value = "";
	}
	else {
		changeCssClass('formerr',false);
		curform.ozEPSIText.value = EmailBody;
		curform.submit();
	}
}

//****************************************************************

function FormTraining() {
	var	MyEle
	var	strError
	var MyStr = ""
	var GotErr = false
	var CurEleErr
	var EmailBody = ""

	for	(var CurEle	= 0; CurEle	< curform.length; CurEle++)	{
		MyEle =	curform.elements[CurEle]
		CurEleErr = false
		strError = ""
		
		MyEle.value	= TrimStr(MyEle.value);
		if (MyEle.name.substr(0,1) == "m") {
			if (MyEle.value.length < 2) {
				CurEleErr = true;
			}
		}
		
		if (MyEle.name.substr(1,1) == "m") {
			if (!TestEmail(MyEle, strError))
				CurEleErr = true;
		}

		if (CurEleErr) {
			MyEle.style.backgroundColor = "red";
			GotErr = true;
		}
		else {
			MyEle.style.backgroundColor = "";
			
			switch (MyEle.name.substr(1,1)) {
			case "z":
				break;
			case "c":
				EmailBody += MyEle.name.substr(2,50) + ": \t"+MyEle.checked+"\n"
				break;
			case "s":
				EmailBody += MyEle.name.substr(2,50) + ": \t"+MyEle.options[MyEle.selectedIndex].text+"\n"
				break;
			default:
				EmailBody += MyEle.name.substr(2,50) + ": \t"+MyEle.value+"\n"
			}
		}
	}

	if (GotErr || (EmailBody.length < 5)) {
		changeCssClass('formerr',true);
		curform.ozEPSIText.value = "";
	}
	else {
		changeCssClass('formerr',false);
		curform.ozEPSIText.value = EmailBody;
		curform.submit();
	}
}

//****************************************************************

function FormWebinars() {
	var	MyEle
	var	strError
	var MyStr = ""
	var GotErr = false
	var CurEleErr
	var EmailBody = ""

	for	(var CurEle	= 0; CurEle	< curform.length; CurEle++)	{
		MyEle =	curform.elements[CurEle]
		CurEleErr = false
		strError = ""
		
		MyEle.value	= TrimStr(MyEle.value);
		if (MyEle.name.substr(0,1) == "m") {
			if (MyEle.value.length < 2) {
				CurEleErr = true;
			}
		}
		
		if (MyEle.name.substr(1,1) == "m") {
			if (!TestEmail(MyEle, strError))
				CurEleErr = true;
		}

		if (CurEleErr) {
			MyEle.style.backgroundColor = "red";
			GotErr = true;
		}
		else {
			MyEle.style.backgroundColor = "";
			
			switch (MyEle.name.substr(1,1)) {
			case "z":
				break;
			case "c":
				EmailBody += MyEle.name.substr(2,50) + ": \t"+MyEle.checked+"\n"
				break;
			case "s":
				EmailBody += MyEle.name.substr(2,50) + ": \t"+MyEle.options[MyEle.selectedIndex].text+"\n"
				break;
			default:
				EmailBody += MyEle.name.substr(2,50) + ": \t"+MyEle.value+"\n"
			}
		}
	}

	if (GotErr || (EmailBody.length < 5)) {
		changeCssClass('formerr',true);
		curform.ozEPSIText.value = "";
	}
	else {
		changeCssClass('formerr',false);
		curform.ozEPSIText.value = EmailBody;
		curform.submit();
	}
}

//****************************************************************

function TrimStr(MyStr)	{
	return MyStr.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

//****************************************************************

function changeCssClass(objDivID, HasErr)
{
	if (HasErr)
		document.getElementById(objDivID).className = 'red';
	else
		document.getElementById(objDivID).className = 'mandatory';
}

//****************************************************************

function TestInputType(objValue,strRegExp,strError,strDefaultError)	{
	var ret = true;
	var	charpos	= objValue.value.search(strRegExp);	
	if(objValue.value.length > 0 &&	 charpos >=	0) 
	{ 
	 if(!strError || strError.length ==0) 
	  {	
		strError = strDefaultError;
	  }
	  ret =	false; 
	}
	return	ret;
}

//****************************************************************

function TestEmail(objValue,strError) {
	var	ret	= true;
	if(objValue.value.length >	0 && !validateEmail(objValue.value)	 ) 
	{ 
	   if(!strError	|| strError.length ==0)	
	   { 
		  strError = objValue.name+": Enter a valid Email address"; 
	   }
	   ret = false;	
	}
	return ret;
}

//****************************************************************

function validateEmail(email)
{
	var	splitted = email.match("^(.+)@(.+)$");
	if(splitted	== null) return	false;
	if(splitted[1] != null )
	{
	  var regexp_user=/^\"?[\w-_\.]*\"?$/;
	  if(splitted[1].match(regexp_user)	== null) return	false;
	}
	if(splitted[2] != null)
	{
	  var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
	  if(splitted[2].match(regexp_domain) == null) 
	  {
		var	regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
		if(splitted[2].match(regexp_ip)	== null) return	false;
	  }// if
	  return true;
	}
	return false;
}