var NumberMsg = "צריך להכיל מספרים בלבד";
var PositiveNumberMsg = "בשדה זה יש להזין מספרים חיוביים בלבד";
var IntegerNumMsg = "בשדה זה יש להזין מספרים שלמים בלבד";
var PositiveIntegerNumMsg = "בשדה זה יש להזין מספרים שלמים וחיוביים בלבד";
var ObligationFieldMsg = "הינו שדה חובה";
var TimeMsg = "הערך עד שעה צריך להיות גדול מהערך משעה";
var DateMsg = "תאריך התחלה גדול מתאריך סיום";
var DateErrorMsg = "שגוי, יש להקיש תאריך כדלקמן:01/01/2001";
var HourErrorMsg = "שעה שגויה";
var IntegerNumberMsg = "בשדה זה יש להזין מספרים שלמים בלבד";
var EmailErrorMsg = "כתובת דואר אלקטרוני לא תקינה";
var IsraelIDErrorMsg = "תעודת זהות אינה חוקית.תעודת זהות מורכבת מ-9 ספרות לרבות ספרת ביקורת";
var YearErrorMsg = "שנה שהזנת שגויה - יש להזין שנה גדולה מ 1900";
var PercentMsg = "האחוז שהוזן אינו תקין";
var PhoneErrMsg = "מספר הטלפון שהוזן אינו תקין. יש להזין מספר בן 7 ספרות";
var PhoneAreaErrMsg = "קידומת טלפון שהוזנה אינה תקינה. יש להזין מספר בן 2 עד 3 ספרות";
var CellAreaErrMsg = "קידומת נייד שהוזנה אינה תקינה. יש להזין מספר בן 3 ספרות";
var PhoneOrCellAreaErrMsg = "קידומת שהוזנה אינה תקינה. יש להזמין מספר בן 2 או 3 ספרות";
var Field = "שדה";
var Success = "נתונים נשמרו בהצלחה";

// declare the validation type parameters
var REQUIRED_STR = 1;
var REQUIRED_SELECT_OPT = 2;
var IS_NUMBER = 3;
var IS_DATE = 4;
var REQUIRED_STR_NUMBER = 5;
var REQUIRED_DATE = 6;
var REQUIRED_HOUR = 7;
var REQUIRED_STR_INTEGER_NUMBER = 8;
var IS_HOUR = 9;
var IS_EMAIL = 10;
var REQUIRED_EMAIL = 11;
var IS_INTEGER_NUMBER = 12;
var IS_PERCENT = 13;
var REQUIRED_STR_PERCENT = 14;
var REQUIRED_STR_POSITIVE_NUMBER = 15;
var IS_POSITIVE_NUMBER = 16;
var IS_POSITIVE_INTEGER_NUMBER = 17;
var REQUIRED_STR_POSITIVE_INTEGER_NUMBER =  18;
var IS_PHONE = 19;
var REQUIRED_PHONE = 20;
var IS_PERCENT_POSITIVE_OR_NEGATIVE = 21;
var REQUIRED_PERCENT_POSITIVE_OR_NEGATIVE = 22;
var IS_ISREALID = 23;
var IS_NUMBER_WITHOUT_FORMATTING = 24;
var REQUIRED_STR_NUMBER_WITHOUT_FORMATTING = 25;
var REQUIRED_TEXT_AREA_MAX_LENGTH = 26;
var TEXT_AREA_MAX_LENGTH = 27;
var IS_CELL_PHONE = 28;
var IS_AREA_PHONE = 29;
var IS_AREA_CELL_PHONE = 30;
var IS_PHONE_OR_CELL_AREA = 31;
	
var VALIDATION_TYPE_ATTR = "ValidType";

function IsValidPhone(Val)
{
	if(Val != "")
	{		
		var sPattern = /^((\d{7}))$/
			  
		var s  = new String;                            
		var arrFields =Val.match(sPattern);

		if (arrFields == null) 
		{	
			return false;    
		}
		return true;
	}
	return true;
}

function IsValidPhoneCellArea(Val)
{
	if(Val != "")
	{		
		var sPattern = /^((0\d{1}))|((0\d{2}))$/
			  
		var s  = new String;                            
		var arrFields =Val.match(sPattern);

		if (arrFields == null) 
		{	
			return false;    
		}
		return true;
	}
	return true;
}

function IsAreaPhone(Val)
{
	if(Val != "")
	{		
		var sPattern = /^((0\d{1}))| ((0\d{2}))$/
			  
		var s  = new String;                            
		var arrFields =Val.match(sPattern);

		if (arrFields == null) 
		{	
			return false;    
		}
		return true;
	}
	return true;
}

function IsAreaCellPhone(Val)
{
	if(Val != "")
	{		
		var sPattern = /^((0\d{2}))$/
			  
		var s  = new String;                            
		var arrFields =Val.match(sPattern);

		if (arrFields == null) 
		{	
			return false;    
		}
		return true;
	}
	return true;
}

function IsValidNumber(Val)
{
	var regEx = new RegExp("^[0-9]{0,}$");
	var isValid = regEx.test(Val);
	
	if (isValid)
		return true ;
	else
		return false ; 
}

function IsValidPassword(Val) 
{
	var regEx = new RegExp("^[0-9a-zA-Z]{6,10}$");
	var isValid = regEx.test(Val);
	
	if (isValid)
		return true ;
	else
		return false ; 
}

function IsValidUserName(Val) 
{

	var regEx = new RegExp("^[0-9a-zA-Z_]{6,16}$");
	var isValid = regEx.test(Val);
	
	if (isValid)
			return true ;
	else
			return false ; 
	
	
}

function IsValidSiteUserName(Val)
{
	var subStr = Val.substring(0,2);
	if (subStr.toLowerCase() ==  "da")
		return false;
	else
		return true;	
}

function IsValidIsraelyID(idnum)
{
	var str = new String();
	str = idnum;
	
	if (str.length != 9 || isNaN(idnum)) 
	{
		return false;
	}
	
	if ((idnum / 1) == 0)
	{
		return false;
	}
	
    
    idnum1=idnum.substr(0,1)*1;
    idnum2=idnum.substr(1,1)*2;
    idnum3=idnum.substr(2,1)*1;
    idnum4=idnum.substr(3,1)*2;
    idnum5=idnum.substr(4,1)*1;
    idnum6=idnum.substr(5,1)*2;
    idnum7=idnum.substr(6,1)*1;
    idnum8=idnum.substr(7,1)*2;
    idnum9=idnum.substr(8,1)*1;

    if (idnum1>9) idnum1=(idnum1%10)+1;
    if (idnum2>9) idnum2=(idnum2%10)+1;
    if (idnum3>9) idnum3=(idnum3%10)+1;
    if (idnum4>9) idnum4=(idnum4%10)+1;
    if (idnum5>9) idnum5=(idnum5%10)+1;
    if (idnum6>9) idnum6=(idnum6%10)+1;
    if (idnum7>9) idnum7=(idnum7%10)+1;
    if (idnum8>9) idnum8=(idnum8%10)+1;
    if (idnum9>9) idnum9=(idnum9%10)+1;
    
    var sumval=idnum1+idnum2+idnum3+idnum4+idnum5+idnum6+idnum7+idnum8+idnum9;
    sumval=sumval%10;
    if (sumval>0)
    {
       isValid = false;
    }
    else
    {    
       isValid = true;
    }
    
    return isValid;
} 
   
function ProfessionPrefixValid(Val)
{
	var regEx = new RegExp("^[^~!@#$%^&*?<>]{1,45}$");
	var isValid = regEx.test(Val);
	
	if (isValid)
		return true ;
	else
		return false ; 
}

//Validate all form
function IsValidForm()
{
	
	if (IsValidData(document.all))
	{
		return true;
	}
	else
	{
		return false;
	}	
	
}

//Display Required highlight for control that is not valid,
//that option required that appropriate class will be referenced
function ShowControlAsRequired(oControl)
{
	if (oControl.tagName.toLowerCase() == "select")
		oControl.className = "clsInputComboRequired"; 
	else
		oControl.className = "clsInputTextRequired"; 
}


//Display Not required highlight for control that is not valid,
//that option required that appropriate class will be referenced
function ShowControlAsNotRequired(oControl)
{
	if (oControl.tagName.toLowerCase() == "select")
		oControl.className = "clsSelect"; 
	else
		oControl.className = "clsInputText"; 
}

//Remove validation to given control in client
function RemoveValidationFromControl(oControl , bRemoveHilightRequiredControl)
{	
	oControl.removeAttribute(VALIDATION_TYPE_ATTR);

	if (bRemoveHilightRequiredControl)
	{
		ShowControlAsNotRequired(oControl)
	}
}

//Set Validation Type in client - same as server method
function SetValidationType(oControl , iValidationType , bHilightRequiredControl)
{	
	switch (iValidationType)
	{
		case IS_NUMBER:
		case IS_POSITIVE_NUMBER:
		case REQUIRED_STR_NUMBER:
		case REQUIRED_STR_POSITIVE_NUMBER:
		case IS_PERCENT:
		case REQUIRED_STR_PERCENT:
		case IS_PERCENT_POSITIVE_OR_NEGATIVE:
		case REQUIRED_PERCENT_POSITIVE_OR_NEGATIVE:
			oControl.setAttribute("onblur","return SetFormat(this,2);");
			break;
	}

	if (bHilightRequiredControl)
	{
		switch (iValidationType)
		{
			case REQUIRED_DATE:
			case REQUIRED_EMAIL:
			case REQUIRED_HOUR:
			case REQUIRED_SELECT_OPT:
			case REQUIRED_STR:
			case REQUIRED_STR_INTEGER_NUMBER:
			case REQUIRED_STR_NUMBER:
			case REQUIRED_STR_PERCENT:
			case REQUIRED_PERCENT_POSITIVE_OR_NEGATIVE:
			case REQUIRED_STR_POSITIVE_INTEGER_NUMBER:
			case REQUIRED_STR_POSITIVE_NUMBER:
			case IS_ISREALID:
			case REQUIRED_TEXT_AREA_MAX_LENGTH:
				ShowControlAsRequired(oControl);
				break;
		}
	}
	
	oControl.setAttribute(VALIDATION_TYPE_ATTR, iValidationType);
}

/*The function validate each control in objDocument control collection
Each invalid control inserted to array that return from the function*/
function ValidateData(arrValidtion)
{ 
	var coll;
	var bRes = true;

	//check for element of "input" type	
	//coll = objDocument.all.tags("input");
	coll = document.getElementsByTagName("input");
	for(ItemIndex = 0; ItemIndex < coll.length; ItemIndex++)
	{	
		if (coll[ItemIndex].getAttribute("ValidType") > 0)
		{
			if (!CheckData(coll[ItemIndex].id,coll[ItemIndex].getAttribute("ValidType"),arrValidtion))
			{
				bRes = false;
			}
		}
	}

	//check for element of "select" type
	//coll = objDocument.all.tags("select");
	coll = document.getElementsByTagName("select");
	for(ItemIndex = 0; ItemIndex < coll.length; ItemIndex++)
	{							
		if (coll[ItemIndex].getAttribute("ValidType") > 0)
		{
			if (!CheckData(coll[ItemIndex].id,coll[ItemIndex].getAttribute("ValidType"),arrValidtion))
			{
				bRes = false;
			}
		}
	}

	//check for element of "textarea" type
	//coll = objDocument.all.tags("textarea");
	coll = document.getElementsByTagName("textarea");
	for(ItemIndex = 0; ItemIndex < coll.length; ItemIndex++)
	{							
		if (coll[ItemIndex].getAttribute("ValidType") > 0)
		{
			if (!CheckData(coll[ItemIndex].id,coll[ItemIndex].getAttribute("ValidType"),arrValidtion))
			{
				bRes = false;
			}
		}
	}

	//check for element of "file" type
	//coll = objDocument.all.tags("file");
	coll = document.getElementsByTagName("file");
	for(ItemIndex = 0; ItemIndex < coll.length; ItemIndex++)
	{							
		if (coll[ItemIndex].getAttribute("ValidType") > 0)
		{
			if (!CheckData(coll[ItemIndex].id, coll[ItemIndex].ValidType,arrValidtion))
			{
				bRes = false;
			}
		}
	}	

	return bRes;
}

function RemoveCommas(sNumber)
{	
	var num;
	while(sNumber.search(",") != -1) 
		sNumber = sNumber.replace(",","") 
	num = parseFloat(sNumber);
   // num = Math.abs(num) ;
    return num;
}


function CheckData(ItemName,ValidType,arrValidtion)
{
	var ItemVal = document.getElementById(ItemName).value
	
	switch (ValidType)
	{
		case "1": //REQUIRED_STR
			if (IsNull(ItemVal))
			{
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + ObligationFieldMsg);
				return false;
			}
			break;
		case "2": //REQUIRED_SELECT_OPT
			 if (document.getElementById(ItemName).selectedIndex == -1 ||
					IsNotSelected(ItemVal))
			 {
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + ObligationFieldMsg);
				return false;
			}
			break;	
		case "3": //IS_NUMBER
		case "24": //IS_NUMBER_WITHOUT_FORMATTING
			 if (!IsNumber(ItemVal))
			 {
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + NumberMsg);
				return false;
			}	
			break;	
		case "16": //IS_POSITIVE_NUMBER
			 if (!IsNumber(ItemVal) || RemoveCommas(ItemVal) < 0)
			 {
				arrValidtion.push(PositiveNumberMsg);
				return false;
			}	
			break;	
		case "13": //IS_PERCENT
			 if (!IsNumber(ItemVal) || !isPercent(ItemVal)){
				arrValidtion.push(PercentMsg);
				return false;
			}	
			break;		
		case "21": //IS_PERCENT_POSITIVE_OR_NEGATIVE
			 if (!IsNumber(ItemVal) || !isPercentPositiveOrNegative(ItemVal))
			 {
				arrValidtion.push(PercentMsg);
				return false;
			}	
			break;		

		case "5":  //REQUIRED_STR_NUMBER
		case "25": //REQUIRED_STR_NUMBER_WITHOUT_FORMATTING
			 if (IsNull(ItemVal))
			 {
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + ObligationFieldMsg);
				return false;
			}
			else if (!IsNumber(ItemVal))
			{
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + NumberMsg);
				return false;
			}
			break;	
		case "15": //REQUIRED_STR_POSITIVE_NUMBER
			 if (IsNull(ItemVal))
			 {
				arrValidtion.push(ObligationFieldMsg);
				return false;
			}
			else if (!IsNumber(ItemVal) || RemoveCommas(ItemVal) < 0)
			{
				arrValidtion.push(PositiveNumberMsg);
				return false;
			}
			break;	
		case "14": //REQUIRED_STR_PERCENT
			 if (IsNull(ItemVal) )
			 {
				arrValidtion.push(ObligationFieldMsg);
				return false;
			}
			else if (!IsNumber(ItemVal) || !isPercent(ItemVal))
			{
				arrValidtion.push(PercentMsg);
				return false;
			}	
						
			break;	
		case "22": //REQUIRED_PERCENT_POSITIVE_OR_NEGATIVE
			 if (IsNull(ItemVal) )
			 {
				arrValidtion.push(ObligationFieldMsg);
				return false;
			}
			else if (!IsNumber(ItemVal) || !isPercentPositiveOrNegative(ItemVal))
			{
				arrValidtion.push(PercentMsg);
				return false;
			}			
			break;		
		case "4": //IS_DATE
			 if (!isDate(ItemVal))
			 {
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + DateErrorMsg);
				return false;
			}
			else if (!IsValidYear(ItemVal))
			{
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + YearErrorMsg);
				return false;
			}
			break;		
		case "6": //REQUIRED_DATE
			 if (IsNull(ItemVal))
			 {
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + ObligationFieldMsg);
				return false;
			}
			else if (!isDate(ItemVal))
			{
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + DateErrorMsg);
				return false;
			}
			else if (!IsValidYear(ItemVal))
			{
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + YearErrorMsg);
				return false;
			}
			break;	
		case "7": //REQUIRED_HOUR
			 if (IsNull(ItemVal))
			 {
				arrValidtion.push(ObligationFieldMsg);
				return false;
			}
			else  if (!Date_validateTIME(ItemVal))
			{
				arrValidtion.push(HourErrorMsg);
				return false;
			}	
			break;	
		case "12": //IS_INTEGER_NUMBER
			if (!IsNumber(ItemVal))
			{
				arrValidtion.push(IntegerNumberMsg);
				return false;		
			}
			else  if (!IsIntegerNum(ItemVal))
			{
				arrValidtion.push(IntegerNumberMsg);
				return false;
			}	
			break;
		case "17": //IS_POSITIVE_INTEGER_NUMBER
			if (!IsNumber(ItemVal))
			{
				arrValidtion.push(IntegerNumberMsg);
				return false;		
			}
			else  if (!IsIntegerNum(ItemVal) || RemoveCommas(ItemVal) < 0)
			{
				arrValidtion.push(PositiveIntegerNumMsg);
				return false;
			}	
			break;
		case "8": //REQUIRED_STR_INTEGER_NUMBER
			 if (IsNull(ItemVal))
			 {
				arrValidtion.push(ObligationFieldMsg);
				return false;
			}
			else  if (!IsNumber(ItemVal))
			{
				arrValidtion.push(IntegerNumberMsg);
				return false;		
			}
			else  if (!IsIntegerNum(ItemVal))
			{
				arrValidtion.push(IntegerNumberMsg);
				return false;
			}	
			break;
		case "18": //REQUIRED_STR_POSITIVE_INTEGER_NUMBER
			 if (IsNull(ItemVal))
			 {
				arrValidtion.push(ObligationFieldMsg);
				return false;
			}
			else  if (!IsNumber(ItemVal))
			{
				arrValidtion.push(IntegerNumberMsg);
				return false;		
			}
			else  if (!IsIntegerNum(ItemVal) || RemoveCommas(ItemVal) < 0)
			{
				arrValidtion.push(PositiveIntegerNumMsg);
				return false;
			}	
			break;
		case "9": //IS_HOUR
			if (!IsNull(ItemVal))
			{
				if (!Date_validateTIME(ItemVal))
				{
					arrValidtion.push(HourErrorMsg);
					return false;
				}	
			}	
			break;	
					
		case "10": //IS_EMAIL
			if (!IsValidEmail(ItemVal))
			{
				arrValidtion.push(EmailErrorMsg);
				return false;
			}	
			break;
		case "11": //REQUIRED_EMAIL
			if (IsNull(ItemVal))
			{
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + ObligationFieldMsg);
				return false
			}
			else if (!IsValidEmail(ItemVal))
			{
				arrValidtion.push(EmailErrorMsg);
				return false;
			}	
			break;
		case "19": //IS_PHONE
		case "28": //IS_CELL_PHONE
			if (!IsValidPhone(ItemVal))
			{
				arrValidtion.push(PhoneErrMsg);
				return false;
			}	
			break;
		case "29": //IS_AREA_PHONE
			if (!IsAreaPhone(ItemVal))
			{
				arrValidtion.push(PhoneAreaErrMsg);
				return false;
			}	
			break;
		case "30": //IS_AREA_CELL_PHONE
			if (!IsAreaCellPhone(ItemVal))
			{
				arrValidtion.push(CellAreaErrMsg);
				return false;
			}	
			break;
		case "31": //IS_PHONE_OR_CELL_AREA
			if (!IsValidPhoneCellArea(ItemVal))
			{
				arrValidtion.push(PhoneOrCellAreaErrMsg);
				return false;
			}
			break;
		case "20": //REQUIRED_PHONE
			if (IsNull(ItemVal))
			{
				arrValidtion.push(ObligationFieldMsg);
				return false;
			}
			else if (!IsValidPhone(ItemVal))
			{
					arrValidtion.push(PhoneErrMsg);
					return false;
			}	
			break; 
		case "23": //IS_ISREALID
			if (IsNull(ItemVal))
			{
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + ObligationFieldMsg);
				return false
			}
			else
			{
				if(!IsValidIsraelyID(ItemVal))
				{
					arrValidtion.push(IsraelIDErrorMsg);
					return false
				}
			}
			break;
		case "26": //required text area
			if (IsNull(ItemVal))
			{
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> " + ObligationFieldMsg);
				return false
			}
			
			var iMaxLenth = document.getElementById(ItemName).getAttribute("maxlength");
			if(ItemVal.length > iMaxLenth)
			{
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> מוגבל ל-" + iMaxLenth + " תווים בלבד");
				return;
			}
			break;
		case "27":
			var iMaxLenth = document.getElementById(ItemName).getAttribute("maxlength");
			if(ItemVal.length > iMaxLenth)
			{
				arrValidtion.push(Field + " <b>" + document.getElementById(ItemName).getAttribute("LABEL") + "</b> מוגבל ל-" + iMaxLenth + " תווים בלבד");
				return;
			}
			break;
	}	
	
	return true;
}

function IsNotSelected(val)
{	
	// return true if not selected else return false
	
	if ((val == "") || (val == "0"))  
	{
		return true;
	}
	return false;
}

function isPercentPositiveOrNegative(iVal)
{
	if (iVal == "")
		return true;
	else if (iVal > 100 || iVal < -100 || isNaN(iVal))
		return false;
	else
		return true;
}

function isPercent(iVal)
{
	if (iVal == "")
		return true;
	else if (iVal > 100 || iVal < 0 || isNaN(iVal))
		return false;
	else
		return true;
}

function IsNull(txt)
{
	// return true if null else return false
	if ((txt=="") || (txt==null)) 
	{
		return true;
	}
	return false;
}

function IsNumber(num)
{
	var val = new String(num);
	var NewNum = new String();
	var i = 0;
	while (i < val.length)
	{
		if (val.charAt(i) == ".")
		{
			return false;	
		}
		else if (val.charAt(i) != ",")
		{
			NewNum = NewNum + val.charAt(i);	
		}	
		i = i + 1;
	}
	
	
	// return true if is number else return false
	val = new String(NewNum)
	
	if ((isNaN(val)) || (val.substr(0,1)== " "))  
	{
		return false;
	}	
	return true;
}

function IsValidEmail(Val) 
{
	var regEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/ ;
	
	var isValid = regEx.test(Val);
	
	if (isValid)
		return true ;
	else
		return false ; 		
}

function IsValidYear(theDate)
{
	if (theDate != "")
	{
		var pos = theDate.search(".")
		
		if  (pos > 0)
		{
			return false;
		}
		
		var dtval = theDate.split("/")
		if (dtval.length != 3) 
		{
			return false;
		}
		else 
		{ 
			var yr = dtval[2]-1+1;
			
			if (!IsNumber(yr))
			{
				return false;
			}
			
			yr = (yr < 100) ? yr + 2000 : yr;
		
			if (Number(yr) < 1900)
				return false;
			else
				return true;
		 }
	}
	else
	{
		return true;	 
    }	 
}

function isDate(theDate)
{	
	if (theDate != "")
	{
		var pos = theDate.indexOf(".")
		
		if  (pos > 0) 
		{
			return false;
		}
		var dtval = theDate.split("/")
		if (dtval.length != 3) 
		{
			return false;
		}
		else 
		{ 
			if (Trim(dtval[0]) == "" || Trim(dtval[1]) == "" || Trim(dtval[2]) == "")
			{
				return false;
			}
			var day = dtval[0]-1+1;
			var mo = dtval[1]-1+1;
			var yr = dtval[2]-1+1;
				
			if((!IsNumber(day)) || (!IsNumber(mo)) || (!IsNumber(yr)) ||
				(!IsIntegerNum(String(day))) || (!IsIntegerNum(String(mo))) || (!IsIntegerNum(String(yr))))
			{
				return false;
			}
			
			//Year format is "yyyy"
			if (yr < 1000)
			{
				return false ; 
			}
			
			if (dtval[0].length == 1)
			{
				return false;
			}
			
			if (dtval[1].length == 1)
			{
				return false;
			}
				
			if (yr > 9999 )
			{
				//var retConfirm = window.showModalDialog("../confirmWin.asp?str="+DateErrorMsg+"&blnOkCancel=0",null,"dialogWidth:325px;dialogHeight:120px;center=yes;status=0;help=0");
				return false;
			}
			var days = 0
			if ((mo >= 13) || (mo <= 0) || (day <= 0))
			{ 
				//var retConfirm = window.showModalDialog("../confirmWin.asp?str="+DateErrorMsg+"&blnOkCancel=0",null,"dialogWidth:325px;dialogHeight:120px;center=yes;status=0;help=0");
				return false;
			}
			else 
			{
				switch (mo)
				{
					case 2:
						// For February (implements 400 year cycle calculation)
						days = (((yr%4 == 0 && yr%100 != 0) || yr%400 ==0) ? 29 : 28 );
						break;
					default:
						// For January thru December except February
						days = 30 + ((mo < 8) ? mo%2 : (mo%7)%2);	    						
				}
				if (days < day)
				{
					//var retConfirm = window.showModalDialog("../confirmWin.asp?str="+DateErrorMsg+"&blnOkCancel=0",null,"dialogWidth:325px;dialogHeight:120px;center=yes;status=0;help=0");
					return false;
				}
				else 
				{
					return true ; 
			    }
			 }	
		 }
	}
	else
	{
		return true;	 
    }	 
}



/*******************************************************
 porpuse: check if the number is integer
 inputs : 
 return:  
 comments:
*******************************************************/
function IsIntegerNum(num)
{
	// get the number of the integer digits 
	var index = num.lastIndexOf('.');
	
	if (index != -1)
	{
		// get the full num length
		var fulllength = num.length;

		if (fulllength - index > 1)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	return true;	

	
}

function Date_validateTIME(fieldVal)
{	
	//var timePat = /^(\d{1,2})(:)(\d{2})(\2(\d{1,2}))?$/;
	var timePat = /^(\d{1,2})(:)(\d{2})?$/;
	var matchArray = fieldVal.match(timePat);
	
	if (matchArray == null)
		return false;
	hour = matchArray[1];
	minute = matchArray[3];
	
	
	if (hour < 0  || hour > 23)
	    return false;
	if (minute<0 || minute > 59) 
	  return false;
	

	return true;
}

// return the datee diff
function Date_Diff(Interval,sDate1,sDate2)
{
	var value = Date_ToDate(sDate1)-Date_ToDate(sDate2)
	
	if (Interval=="d") // days
		value=value/86400000
	else if (Interval=="m") // months
		value=value/86400000/30
	else if (Interval=="y") // year
		value=value/86400000/365
	else if (Interval=="s") // seconds
		value=value/1000
	else if (Interval=="n") // minutes
		value=value/60000
	else if (Interval=="h") // hours
		value=value/3600000
	else 
		value=0				
		
	value=Math.round(value-0.5) 
	return value
}

/***********************************************
 porpuse: Checks whether the kilometers range specified is valid
 inputs :
 1.the checked "from km" that supposed to be inside the range
 2.the checked "to km" that supposed to be inside the range
 3.the "from km" that defines the range
 4.the "to km" that defines the range
 return: Bool
 comments: the function performs checks for both cases :
			1.if the iFromKm>iToKm
			2.if the iToKm>iFromKm
			
			and for the case when they are equal
***********************************************/
function IsKilometeresRangeValid(sCheckedFromKm, sCheckedToKm, sFromKm , sToKm)
{	
	
	var iCheckedFromKm = Number(sCheckedFromKm);
	var iCheckedToKm = Number(sCheckedToKm);
	var iFromKm = Number (sFromKm);
	var iToKm = Number(sToKm);
	
	if (iFromKm > iToKm)
	{
		if (((iCheckedFromKm  <= iFromKm  ) && (iCheckedToKm >= iToKm ) && ( iCheckedFromKm >= iCheckedToKm  ))||
			((iCheckedToKm  <= iFromKm  ) && (iCheckedFromKm >= iToKm ) && ( iCheckedFromKm <= iCheckedToKm  )))
			return true;
		else
			return false;
	}
	else if (iFromKm < iToKm)
	{

		if (((iCheckedFromKm >= iFromKm) && (iCheckedToKm <= iToKm) && ( iCheckedFromKm <= iCheckedToKm  )) ||
			((iCheckedFromKm <= iToKm) && (iCheckedToKm >= iFromKm) && ( iCheckedFromKm >= iCheckedToKm  )))
			return true;		
		else
			return false;
	}
	else
	{
		if ((iCheckedFromKm == iCheckedToKm) && (iCheckedFromKm == iFromKm))
			return true;
		else
			return false;
	}	
}

function BuildValidationSummary(oTableElement,arrParams)
{
	var oNewRow;
	var oNewCell;
	var newText;
	
	for(i=0;i<arrParams.length;i++)
	{
		oNewRow = oTableElement.insertRow(i);
		oNewCell = oNewRow.insertCell(0);
		oNewCell.align = "right";
		oNewCell.className = "ValidationMessage";
		oNewCell.valign = "top";
		
		newText  = document.createTextNode('*')
		oNewCell.appendChild(newText);
		
		oNewCell = oNewRow.insertCell(-1);
		oNewCell.align = "right";
		oNewCell.className = "ValidationMessage";
		oNewCell.valign = "top";
		
		oNewCell.innerHTML = arrParams[i];
	}
}

function ClearValidationSummary(oTableElement)
{
	var iLength = oTableElement.rows.length;
	for (i=iLength -1;i>=0;i--)
		oTableElement.deleteRow(i);
}

