var emailexp = /^[a-z][a-z_0-9\-\.]+@[a-z_0-9\.\-]+\.[a-z]{2,3}$/i਀瘀愀爀 瀀栀漀渀攀攀砀瀀 㴀  ⼀帀尀搀笀㄀　紀␀⼀ 
਀昀甀渀挀琀椀漀渀 䌀刀䰀䘀 ⠀⤀ 笀 
	return String.fromCharCode(10) + String.fromCharCode(13);਀紀 
਀昀甀渀挀琀椀漀渀 吀䄀䈀⠀栀漀眀䴀愀渀礀⤀ 笀 
	var tempStr਀ऀ昀漀爀 ⠀挀漀甀渀琀 㴀 　㬀 挀漀甀渀琀 㰀 栀漀眀䴀愀渀礀㬀 挀漀甀渀琀⬀⬀⤀ 笀 
		tempStr = tempStr & String.fromCharCode(9);਀ऀ紀 
}਀ 
function validateEmail(str) {	਀ऀ爀攀琀甀爀渀 攀洀愀椀氀攀砀瀀⸀琀攀猀琀⠀猀琀爀⤀ 
}਀ 
function validatePhone(str) {਀ऀ爀攀琀甀爀渀 瀀栀漀渀攀攀砀瀀⸀琀攀猀琀⠀猀琀爀⤀ 
}਀ 
function StripChars(ItemsToStrip, str) {਀ऀ爀攀琀甀爀渀匀琀爀椀渀最 㴀 ∀∀㬀 
	for (i = 0; i < str.length; i++) {  ਀ऀऀ瘀愀爀 挀 㴀 猀琀爀⸀挀栀愀爀䄀琀⠀椀⤀㬀 
        	if (ItemsToStrip.indexOf(c) == -1) returnString += c;       	 	 ਀ऀ紀 
	return returnString;਀紀 
਀昀甀渀挀琀椀漀渀 䄀氀氀匀瀀愀挀攀⠀猀琀爀⤀ 笀   ⼀⼀䴀愀欀攀猀 匀琀爀椀渀最 䈀氀愀渀欀 椀昀 渀漀琀椀渀最 戀甀琀 猀瀀愀挀攀猀 
	for (i=0; i < str.length; i++) {਀ऀऀ椀昀 ⠀猀琀爀⸀挀栀愀爀䄀琀⠀椀⤀ ℀㴀 ∀ ∀⤀ 笀 
			return str;਀ऀऀ紀 
	}਀ऀ爀攀琀甀爀渀 ∀∀㬀 
}਀ 
function SetDec(str, places) { //chops decimal places to max number of places	਀ऀ椀昀 ⠀椀猀一愀一⠀猀琀爀⤀⤀ 笀 
		return str;਀ऀ紀 
	if (str.indexOf(".") != -1) {਀ऀ    椀昀 ⠀瀀氀愀挀攀猀 㸀 　⤀ 笀 
		str = str.substring(0, eval(str.indexOf(".")) + eval(places) + eval(1));਀ऀ    紀 攀氀猀攀 笀 
		str = str.substring(0, str.indexOf("."));਀ऀ    紀 
	}਀ऀ爀攀琀甀爀渀 猀琀爀㬀 
}਀ 
function DateFormat(dateVal) {	਀ऀ䐀愀礀嘀愀氀 㴀 搀愀琀攀嘀愀氀⸀最攀琀䐀愀琀攀⠀⤀㬀 
	MonthVal = dateVal.getMonth();਀ऀ夀攀愀爀嘀愀氀 㴀 搀愀琀攀嘀愀氀⸀最攀琀夀攀愀爀⠀⤀㬀ऀ 
	if (YearVal.length <= 2) {਀ऀऀ夀攀愀爀嘀愀氀 㴀 攀瘀愀氀⠀夀攀愀爀嘀愀氀⤀ ⬀ ㄀㤀　　㬀ऀऀऀऀ 
	}਀ऀ琀攀洀瀀匀琀爀 㴀 攀瘀愀氀⠀䴀漀渀琀栀嘀愀氀 ⬀ ㄀⤀ ⬀ ∀⼀∀ ⬀ 䐀愀礀嘀愀氀 ⬀ ∀⼀∀ ⬀ 夀攀愀爀嘀愀氀㬀ऀ 
	return tempStr;਀紀 
਀昀甀渀挀琀椀漀渀 猀琀爀椀瀀一漀渀䐀椀最椀琀猀⠀猀琀爀⤀ 笀 
	return str.replace(/[^0-9]/g,"")਀紀 
਀昀甀渀挀琀椀漀渀 挀栀攀挀欀昀漀爀洀⠀昀漀爀洀Ⰰ 攀爀爀䌀漀氀漀爀Ⰰ 猀琀愀爀琀䌀漀氀漀爀Ⰰ 猀栀漀眀䄀氀攀爀琀Ⰰ 猀栀漀眀䔀爀爀漀爀猀Ⰰ 昀漀渀琀匀琀礀氀攀⤀ 笀 
    Error = false;	਀    愀氀攀爀琀匀琀爀 㴀 ∀∀㬀 
    for (x=0; x < form.elements.length; x++ ) {	਀ऀ昀椀攀氀搀䔀爀爀漀爀 㴀 昀愀氀猀攀㬀    
	if (form.elements(x).type == "text" || form.elements(x).type == "select-one" || form.elements(x).type == "password"  || form.elements(x).type == "textarea") {਀ऀ    椀昀 ⠀猀栀漀眀䔀爀爀漀爀猀 㴀㴀 琀爀甀攀⤀ 笀 
		document.all[form.elements(x).name + 'Error'].innerHTML = "";਀ऀ    紀ऀऀ 
	    form.elements(x).value = AllSpace(form.elements(x).value);਀ऀ    椀昀 ⠀砀⬀㄀ 㰀 昀漀爀洀⸀氀攀渀最琀栀 ☀☀ 昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⬀㄀⤀⸀渀愀洀攀⸀挀栀愀爀䄀琀⠀　⤀ 㴀㴀 ∀䀀∀⤀ 笀 
		paramStr = form.elements(x+1).name.substring(1, form.elements(x+1).name.length);਀ऀऀ瀀愀爀愀洀猀 㴀 渀甀氀氀㬀 
		params = paramStr.split("_");਀ऀऀऀ 
		if (params[7] != null) {਀ऀऀऀ戀愀挀欀䌀漀氀漀爀 㴀 瀀愀爀愀洀猀嬀㜀崀㬀 
		} else {਀ऀऀऀ戀愀挀欀䌀漀氀漀爀 㴀 猀琀愀爀琀䌀漀氀漀爀㬀 
		} ਀ऀऀ 
		if (params[6] != null && AllSpace(params[6]) != "" ) {਀ऀऀऀ搀攀昀愀甀氀琀嘀愀氀甀攀 㴀 瀀愀爀愀洀猀嬀㘀崀㬀 
		} else {਀ऀऀऀ搀攀昀愀甀氀琀嘀愀氀甀攀 㴀 ∀∀㬀 
		}਀ऀऀ椀昀 ⠀瀀愀爀愀洀猀嬀㄀崀 㴀㴀 ∀一漀䈀氀愀渀欀∀ ☀☀ 昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀 㴀㴀 ∀∀ ☀☀ 搀攀昀愀甀氀琀嘀愀氀甀攀 㴀㴀 ∀∀⤀ 笀 
			alertStr = alertStr + "لطفا " + params[2] + "را وارد نمایید " + CRLF();਀ऀऀऀ椀昀 ⠀猀栀漀眀䔀爀爀漀爀猀 㴀㴀 琀爀甀攀⤀ 笀 
				document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>The " + params[2] + " field must not be blank.</font>";਀ऀऀऀ紀 
			Error = true;਀ऀऀऀ昀椀攀氀搀䔀爀爀漀爀 㴀 琀爀甀攀㬀ऀ 
		਀ऀऀ紀 攀氀猀攀 椀昀 ⠀瀀愀爀愀洀猀嬀㄀崀 㴀㴀 ∀一漀䈀氀愀渀欀∀ ☀☀ 昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀 㴀㴀 ∀∀ ☀☀ 搀攀昀愀甀氀琀嘀愀氀甀攀 ℀㴀 ∀∀⤀ 笀 
			form.elements(x).value = defaultValue;਀ 
		} else if (params[0] == "email") {਀ऀऀऀ椀昀 ⠀℀瘀愀氀椀搀愀琀攀䔀洀愀椀氀⠀昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀⤀ ☀☀ 昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀 ℀㴀 ∀∀⤀ 笀ऀऀऀऀ 
				alertStr = alertStr + "The " + params[2] + " field does not contain a valid email address." + CRLF();਀ऀऀऀऀ椀昀 ⠀猀栀漀眀䔀爀爀漀爀猀 㴀㴀 琀爀甀攀⤀ 笀 
					document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>The " + params[2] + " field does not contain a valid email address.</font>";਀ऀऀऀऀ紀 
				Error = true;਀ऀऀऀऀ昀椀攀氀搀䔀爀爀漀爀 㴀 琀爀甀攀㬀 
			} ਀ऀऀ紀 攀氀猀攀 椀昀 ⠀瀀愀爀愀洀猀嬀　崀 㴀㴀 ∀渀甀洀戀攀爀∀ ☀☀ 昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀 ℀㴀 ∀∀⤀ 笀 
			form.elements(x).value =  StripChars("$,%", form.elements(x).value);			਀ऀऀऀ椀昀 ⠀瀀愀爀愀洀猀嬀㌀崀 ℀㴀 渀甀氀氀⤀ 笀 
				form.elements(x).value = SetDec(form.elements(x).value, params[3]);	਀ऀऀऀ紀 
			if (isNaN(form.elements(x).value)) {਀ऀऀऀ ऀ愀氀攀爀琀匀琀爀 㴀 愀氀攀爀琀匀琀爀 ⬀ ∀吀栀攀渀 ∀ ⬀ 瀀愀爀愀洀猀嬀㈀崀 ⬀ ∀ 昀椀攀氀搀 搀漀攀猀 渀漀琀 挀漀渀琀愀椀渀 愀 瘀愀氀椀搀 渀甀洀攀爀椀挀 瘀愀氀甀攀⸀∀ ⬀ 䌀刀䰀䘀⠀⤀㬀 
				if (showErrors == true) {਀ऀऀऀऀऀ搀漀挀甀洀攀渀琀⸀愀氀氀嬀昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀渀愀洀攀 ⬀ ✀䔀爀爀漀爀✀崀⸀椀渀渀攀爀䠀吀䴀䰀 㴀 ∀㰀昀漀渀琀  猀琀礀氀攀㴀✀∀ ⬀ 昀漀渀琀匀琀礀氀攀 ⬀ ∀✀㸀吀栀攀渀 ∀ ⬀ 瀀愀爀愀洀猀嬀㈀崀 ⬀ ∀ 昀椀攀氀搀 搀漀攀猀 渀漀琀 挀漀渀琀愀椀渀 愀 瘀愀氀椀搀 渀甀洀攀爀椀挀 瘀愀氀甀攀⸀㰀⼀昀漀渀琀㸀∀㬀 
				}਀ऀऀऀऀ䔀爀爀漀爀 㴀 琀爀甀攀㬀 
				fieldError = true;਀ऀऀऀ紀 攀氀猀攀 笀 
				if (params[4] != null) {਀ऀऀऀऀऀ椀昀 ⠀攀瘀愀氀⠀昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀⤀ 㰀 攀瘀愀氀⠀瀀愀爀愀洀猀嬀㐀崀⤀⤀ 笀 
						alertStr = alertStr + "Then " + params[2] + " field must be greater than " + params[4] + CRLF();਀ऀऀऀऀऀऀ椀昀 ⠀猀栀漀眀䔀爀爀漀爀猀 㴀㴀 琀爀甀攀⤀ 笀 
							document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>Then " + params[2] + " field must be greater than " + params[4] + "</font>";਀ऀऀऀऀऀऀ紀 
						Error = true;਀ऀऀऀऀऀऀ昀椀攀氀搀䔀爀爀漀爀 㴀 琀爀甀攀㬀 
					}਀ऀऀऀऀ紀 
				if (params[5] != null) {਀ऀऀऀऀऀ椀昀 ⠀攀瘀愀氀⠀昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀⤀ 㸀 攀瘀愀氀⠀瀀愀爀愀洀猀嬀㔀崀⤀⤀ 笀 
						alertStr = alertStr + "Then " + params[2] + " field must be less than " + params[5] + CRLF();਀ऀऀऀऀऀऀ椀昀 ⠀猀栀漀眀䔀爀爀漀爀猀 㴀㴀 琀爀甀攀⤀ 笀 
							document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>Then " + params[2] + " field must be less than " + params[5] + "</font>";਀ऀऀऀऀऀऀ紀 
						Error = true;਀ऀऀऀऀऀऀ昀椀攀氀搀䔀爀爀漀爀 㴀 琀爀甀攀㬀 
					}਀ऀऀऀऀ紀 
			}਀ऀऀऀ 
		} else if (params[0] == "age" && form.elements(x).value != "") {਀ऀऀऀ 
			form.elements(x).value = SetDec(form.elements(x).value,0);਀ऀऀऀ椀昀 ⠀攀瘀愀氀⠀昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀⤀ 㰀 　 簀簀 攀瘀愀氀⠀昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀⤀ 㸀 ㄀㈀　⤀ 笀 
				alertStr = alertStr + "The " + params[2] + " field doesn't appear to be a valid age." + CRLF();਀ऀऀऀऀ椀昀 ⠀猀栀漀眀䔀爀爀漀爀猀 㴀㴀 琀爀甀攀⤀ 笀 
					document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>The " + params[2] + " field doesn't appear to be a valid age.</font>";਀ऀऀऀऀ紀 
				Error = true;਀ऀऀऀऀ昀椀攀氀搀䔀爀爀漀爀 㴀 琀爀甀攀㬀 
			}			਀ऀऀ紀 攀氀猀攀 椀昀 ⠀瀀愀爀愀洀猀嬀　崀 㴀㴀 ∀搀愀琀攀∀ ☀☀ 昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀 ℀㴀 ∀∀⤀ 笀 
			dateYear = new String();਀ऀऀऀ挀甀爀䐀愀琀攀 㴀 渀攀眀 䐀愀琀攀⠀⤀㬀 
			tempDate = new Date(form.elements(x).value);਀ऀऀऀ搀愀琀攀夀攀愀爀 㴀 搀愀琀攀夀攀愀爀 ⬀ 琀攀洀瀀䐀愀琀攀⸀最攀琀夀攀愀爀⠀⤀㬀ऀऀऀ 
			if (dateYear.length <= 2) {਀ऀऀऀऀ搀愀琀攀夀攀愀爀 㴀 攀瘀愀氀⠀搀愀琀攀夀攀愀爀⤀ ⬀ 攀瘀愀氀⠀㄀㤀　　⤀㬀ऀऀऀऀ 
			}			਀ऀऀऀ椀昀 ⠀昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀 ℀㴀 ∀∀⤀ 笀 
			    if (tempDate == "NaN") {਀ऀऀऀऀ愀氀攀爀琀匀琀爀 㴀 愀氀攀爀琀匀琀爀 ⬀ ∀吀栀攀 ∀ ⬀ 瀀愀爀愀洀猀嬀㈀崀 ⬀ ∀ 昀椀攀氀搀 椀猀 渀漀琀 愀 瘀愀氀椀搀 搀愀琀攀⸀∀ ⬀ 䌀刀䰀䘀⠀⤀㬀 
				if (showErrors == true) {਀ऀऀऀऀऀ搀漀挀甀洀攀渀琀⸀愀氀氀嬀昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀渀愀洀攀 ⬀ ✀䔀爀爀漀爀✀崀⸀椀渀渀攀爀䠀吀䴀䰀 㴀 ∀㰀昀漀渀琀  猀琀礀氀攀㴀✀∀ ⬀ 昀漀渀琀匀琀礀氀攀 ⬀ ∀✀㸀吀栀攀渀 ∀ ⬀ 瀀愀爀愀洀猀嬀㈀崀 ⬀ ∀ 昀椀攀氀搀 椀猀 渀漀琀 愀 瘀愀氀椀搀 搀愀琀攀⸀㰀⼀昀漀渀琀㸀∀㬀 
				}਀ऀऀऀऀ䔀爀爀漀爀 㴀 琀爀甀攀㬀 
				fieldError = true;			਀ऀऀऀ    紀 攀氀猀攀 椀昀 ⠀瀀愀爀愀洀猀嬀㐀崀 ℀㴀 渀甀氀氀 ☀☀ 搀愀琀攀夀攀愀爀 㰀 攀瘀愀氀⠀挀甀爀䐀愀琀攀⸀最攀琀夀攀愀爀⠀⤀⤀ ⴀ 攀瘀愀氀⠀瀀愀爀愀洀猀嬀㐀崀⤀⤀ 笀 
				alertStr = alertStr + "The " + params[2] + " field is too low." + CRLF();਀ऀऀऀऀ椀昀 ⠀猀栀漀眀䔀爀爀漀爀猀 㴀㴀 琀爀甀攀⤀ 笀 
					document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>Then " + params[2] + " field is too low.</font>";਀ऀऀऀऀ紀 
				Error = true;਀ऀऀऀऀ昀椀攀氀搀䔀爀爀漀爀 㴀 琀爀甀攀㬀ऀऀऀ 
	਀ऀऀऀ    紀 攀氀猀攀 椀昀 ⠀瀀愀爀愀洀猀嬀㔀崀 ℀㴀 渀甀氀氀 ☀☀ 搀愀琀攀夀攀愀爀 㸀 攀瘀愀氀⠀挀甀爀䐀愀琀攀⸀最攀琀夀攀愀爀⠀⤀⤀ ⬀ 攀瘀愀氀⠀瀀愀爀愀洀猀嬀㔀崀⤀⤀ 笀 
				alertStr = alertStr + "The " + params[2] + " field is too high." + CRLF();਀ऀऀऀऀ椀昀 ⠀猀栀漀眀䔀爀爀漀爀猀 㴀㴀 琀爀甀攀⤀ 笀 
					document.all[form.elements(x).name + 'Error'].innerHTML = "<font  style='" + fontStyle + "'>Then " + params[2] + " field is too high.</font>";਀ऀऀऀऀ紀 
				Error = true;਀ऀऀऀऀ昀椀攀氀搀䔀爀爀漀爀 㴀 琀爀甀攀㬀ऀऀऀ 
	਀ऀऀऀ    紀 攀氀猀攀 笀 
				form.elements(x).value = DateFormat(tempDate);਀ऀऀऀ    紀 
			}਀ऀऀ紀 攀氀猀攀 椀昀 ⠀瀀愀爀愀洀猀嬀　崀 㴀㴀 ∀瀀栀漀渀攀∀ ☀☀ 昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀 ℀㴀 ∀∀⤀ 笀 
			form.elements(x).value = stripNonDigits(form.elements(x).value)਀ऀऀऀ椀昀 ⠀瘀愀氀椀搀愀琀攀倀栀漀渀攀⠀昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀⤀⤀ 笀 
			    	tempP = form.elements(x).value	਀ऀऀऀ    ऀ昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀瘀愀氀甀攀 㴀 ∀⠀∀ ⬀ 琀攀洀瀀倀⸀猀甀戀猀琀爀椀渀最⠀　Ⰰ ㌀⤀ ⬀ ∀⤀ ∀ ⬀ 琀攀洀瀀倀⸀猀甀戀猀琀爀椀渀最⠀㌀Ⰰ㘀⤀ ⬀ ∀ⴀ∀ ⬀ 琀攀洀瀀倀⸀猀甀戀猀琀爀椀渀最⠀㘀Ⰰ ㄀　⤀ 
			} else {਀ऀऀऀ    ऀ愀氀攀爀琀匀琀爀 㴀 愀氀攀爀琀匀琀爀 ⬀ ∀吀栀攀 ∀ ⬀ 瀀愀爀愀洀猀嬀㈀崀 ⬀ ∀ 昀椀攀氀搀 椀猀 椀渀瘀愀氀椀搀⸀  倀氀攀愀猀攀 椀渀挀氀甀搀攀 琀栀攀 昀甀氀氀 瀀栀漀渀攀 渀甀洀戀攀爀 椀渀挀氀甀搀椀渀最 愀爀攀愀 挀漀搀攀⸀∀ ⬀ 䌀刀䰀䘀⠀⤀㬀 
				if (showErrors == true) {਀ऀऀऀऀऀ搀漀挀甀洀攀渀琀⸀愀氀氀嬀昀漀爀洀⸀攀氀攀洀攀渀琀猀⠀砀⤀⸀渀愀洀攀 ⬀ ✀䔀爀爀漀爀✀崀⸀椀渀渀攀爀䠀吀䴀䰀 㴀 ∀㰀昀漀渀琀  猀琀礀氀攀㴀✀∀ ⬀ 昀漀渀琀匀琀礀氀攀 ⬀ ∀✀㸀吀栀攀渀 ∀ ⬀ 瀀愀爀愀洀猀嬀㈀崀 ⬀ ∀ 昀椀攀氀搀 椀猀 椀渀瘀愀氀椀搀⸀  倀氀攀愀猀攀 椀渀挀氀甀搀攀 琀栀攀 昀甀氀氀 瀀栀漀渀攀 渀甀洀戀攀爀 椀渀挀氀甀搀椀渀最 愀爀攀愀 挀漀搀攀⸀㰀⼀昀漀渀琀㸀∀㬀 
				}਀ऀऀऀऀ䔀爀爀漀爀 㴀 琀爀甀攀㬀 
				fieldError = true;	਀ऀऀऀ紀 
		}਀ऀऀ椀昀 ⠀昀椀攀氀搀䔀爀爀漀爀 㴀㴀 琀爀甀攀⤀ 笀 
			form.elements(x).style.background = errColor;਀ऀ    ऀ紀 攀氀猀攀 笀 
			form.elements(x).style.background = backColor;਀ऀ   ऀ紀ऀऀऀ 
	    } ਀ऀ紀ऀऀऀऀ 
    }਀     
    if (Error == true) {਀ऀ椀昀 ⠀猀栀漀眀䄀氀攀爀琀 㴀㴀 琀爀甀攀⤀ 笀 
		alert (alertStr);਀ऀ紀 
	return false;਀    紀 
    ਀紀㸀