function FormValidator(language){	this.strAlert = "";	this.valid = true;	if(typeof (language)== 'string' && language =='spanish')		this.headAlert = "Los datos no pueden ser ahorrados porque el formulario no fue completada correctamente.\n"	else		this.headAlert = "The form can not be submitted because it is not properly filled out.\n"			this.Check=Check;	this.Set=Set;}function Set(msg){	this.strAlert += "- " + msg+"\n";	this.valid = false;}function Check(val,rule,msg){	var cond = true;	aRule = rule.split(",");	for(var i=0; i<aRule.length; i++) {		switch(aRule[i])		{		    case "IsConCheck"	:	{	cond = IsConCheck(); break;		}		    case "IsConSelect"	:	{	cond = IsConSelect(val); break;		}			case "IsEmail"		:	{	cond = IsEmail(val); break;		}			case "IsNotEmpty"	:	{	cond = IsNotEmpty(val);	break;	}			case "IsNumber"		:	{	cond = IsNumber(val);break;		}			case "IsWeekdayNumber"	:	{	cond = IsWeekdayNumber(val);break;		}			case "IsSSN"		:	{	cond = IsSSN(val); break;		}			case "IsTime"		:	{	cond = IsTime(val); break;		}			case "IsDate"		:	{	cond = IsDate(val); break;		}			case "IsUSPhone"	:	{	cond = IsUSPhone(val); break;	}			case "IsHTTP"		:	{	cond = IsHTTP(val); break;	}			case "IsMoney"		:	{	cond = IsMoney(val); break;	}			case "IsIP"			:	{	cond = IsIP(val); break;	}			case "IsPercent"	:	{	cond = IsPercent(val); break;	}			case "IsSelected"	:	{	cond = IsSelected(val); break;	}			case "IsLen3"		:	{	cond = IsLen3(val); break;	}			case "IsLen4"		:	{	cond = IsLen4(val); break;	}			default				:	{	cond = eval(aRule[i]); break; }		}		if(!cond) break;	}	if(!cond) this.Set(msg);}//Validation Rules Functionsfunction IsConCheck(){		var status = true;	if((document.forms[0].years_registered.value!=0)&&(!document.forms[0].domain_registered.checked)){   	    status = false;	 }	return status;	}function IsConSelect(val){		var status = true;	if((val==0)&&(document.forms[0].domain_registered.checked)){   	    status = false;	 }	return status;	}function IsNotEmpty(val) {	return (trim(val) != "");}function IsSelected(val) { 	return (val != "0");}function IsEmail(val) {	return (!IsNotEmpty(val) || !(val.indexOf('@')<0 || val.indexOf('.')<0))}function IsUSPhone(val) {		var matchArr2 = val.match(/^\d{10}$/);		var matchArr3 = val.match(/^(\d{3})\-\d{3}-\d{4}$/);		var status = true;		if (matchArr2 == null && matchArr3 == null && IsNotEmpty(val)) 		status = false;		return status;	}function IsNumber(val) {	return (!(isNaN(val)));}function IsLen3(val) {	if(val!="")		if(val.length<3)			return false;	return true;	}function IsLen4(val) {	if(val!="")		if(val.length<4)			return false;	return true;	}function IsWeekdayNumber(val){	return (!(isNaN(val)) && (val==1 || val==2 || val==3 || val==4 || val==5 || val==6 || val==7));}function IsHTTP(val){		var status = true;	if(trim(val).length>0)	{		if (val.substr(val.length-1) != "/") val = val + "/";		var matchAddr = val.match(/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\//i)		if (matchAddr == null)			status = false;	}	return status;	}function IsIP(val){		var status = true;	var matchArr = val.match(/[^0-9\.]$/gi); 	if(matchArr != null)		status = false;	return status;	}function IsMoney(val){	valid = true;	if(trim(val).length>0)	{		allowed = "0123456789()-,.$ ";		digits = "0123456789";		numCount=0;		for(i=0;i<val.length;i++)		{			if(allowed.indexOf(val.charAt(i))<0)				valid=false;			if(digits.indexOf(val.charAt(i))>-1)				numCount++;			}		if(valid && numCount==0)			valid=false;	}			return valid;}function IsPercent(val){	valid = true;	if(trim(val).length>0)	{		allowed = "0123456789()-,.% ";		digits = "0123456789";		numCount=0;		for(i=0;i<val.length;i++)		{			if(allowed.indexOf(val.charAt(i))<0)				valid=false;			if(digits.indexOf(val.charAt(i))>-1)				numCount++;			}		if(valid && numCount==0)			valid=false;	}			return valid;}function IsDate(val){	//SMENI za proverka na tochen datum	var status = true;	if(trim(val).length>0)	{	var matchArr = val.match(/^\d{1,2}\s\w{3}\s\d{4}$/); //local settings neutral format (dd Mon yyyy h:m)	if(matchArr == null)		status = false;	}	return status;	}function IsTime(val){	var status = true;	if(val.indexOf(':')<0)		status = false;	else	{		 digits = new Array();		 digits = val.split(":");		 if(!(digits[0]>=0 && digits[0]<=23))		 	status = false;		if(!(digits[1]>=0 && digits[1]<=59))				 	status = false;	}	 	return status;}function IsSSN(val) {			var status = true;	if(trim(val).length>0)	{		var matchArr = val.match(/^(\d{3})-?\d{2}-?\d{4}$/);		var numDashes = val.split('-').length - 1;		if (matchArr == null || numDashes == 1) 		{			status = false;		}		else 			if (parseInt(matchArr[1],10)==0) 			{				status = false;			}	}	return status;}// ******************************************************************// TASK: Validates the Form fields which definitions are entered in the vArray field// PARAMETERS:// frm - form object pointer// vArray (external Validation array) - contains one array element per form field in the following format: fName, vRule, vMsgfunction validate(frm,language){	fv = new FormValidator(language);	for(var i=0;i<vArray.length;i++)	{		strEval = "frm." + vArray[i][0] + ".value";		fv.Check(eval(strEval), vArray[i][1],vArray[i][2]);  	}	if(!fv.valid)		alert(fv.headAlert + fv.strAlert);	return fv.valid;}// ******************************************************************//Formatting input Functionsfunction trim(str){		 return str.replace(/^\s+/g, '').replace(/\s+$/g, '');}// ******************************************************************// TASK: create local settings neutral format (dd Mon yyyy h:m)// PARAMETERS:// strType - create Date only="d"; create Time only="t"; create All=""function setDate(frmElement,strType,m,d,h,n){ 	nameElement = frmElement.name;	dayElement = "d"+nameElement;	monElement = "m"+nameElement;	yrElement = "y"+nameElement;	hrElement = "h"+nameElement;	minElement = "n"+nameElement;	frm = frmElement.form;	frmElement.value = "";	if (strType!="t")	{			dayEval = "strDay=frm."+dayElement+".options[frm."+dayElement+".selectedIndex].value;"		monEval = "strMon=frm."+monElement+".options[frm."+monElement+".selectedIndex].value;"		yrEval = "strYr=frm."+yrElement+".options[frm."+yrElement+".selectedIndex].value;"		eval(dayEval);		eval(monEval);		eval(yrEval);		var monthAbrv = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");		frmElement.value = strDay+" "+monthAbrv[strMon-1]+" "+strYr;			}	if (strType!="d")	{		hrEval = "strHr=frm."+hrElement+".options[frm."+hrElement+".selectedIndex].value;"		minEval = "strMin=frm."+minElement+".options[frm."+minElement+".selectedIndex].value;"		eval(hrEval);		eval(minEval);		frmElement.value = frmElement.value+" "+strHr+":"+strMin;	}	else frmElement.value = frmElement.value+" 0:0";}