

function ValMask(event, control, sMask) 
{	
    // If the keyCode is Enter, no need to worry about it:
    if ( event.keyCode == 10 || event.keyCode == 13 )
	return true;
	
	//determine browser
	sBrowser = ""
	if (navigator.appName == "Microsoft Internet Explorer")
	{
		sBrowser = "IE"
	}
	else
	{
		sBrowser = "NETSCAPE"
		return(true)
	}	
	
	if(sBrowser == "IE")
	{
		iKc = event.keyCode
	}

 

	sSuspectkey = String.fromCharCode(iKc)
	sContents = control.value
	iMasklen = sMask.length
	iConlength = sContents.length
	
	if (sMask.substring(0,2) == "!#")
	{
		// this format: !#5 .. means a number 5 digits long
		sMaskkey = "#"
		sNextmaskkey = "#"
		iMasklen = 15 //sMask.substring(2,3)	
	}//100
	else
		// otherwise go with the literal mask
	{
		sMaskkey = sMask.substring(iConlength,iConlength+1)
		sNextmaskkey = sMask.substring(iConlength+1,iConlength+2)
	}
	
	//compare the mask key to the key coming in	
	sCompare = 	Maskcomparison(sSuspectkey,sMaskkey)
	if(sCompare == false || iMasklen < (iConlength))
	{
			    // stop the keystroke from coming in
				if(sBrowser == "IE")
				{
					event.keyCode = 0
				}
				else
				{
					control.value = sContents.substring(0,sContents.length-1)
				}
	}
	else
	{
		if(sCompare == "literalmiss")
		{
			event.keyCode = 0
			sCompare = 	Maskcomparison(sSuspectkey,sNextmaskkey)
			if (sCompare == true)
			{
				control.value = sContents + sMaskkey + sSuspectkey
			}
		}
	}
	event.returnValue = true;
	return(true)
}


function Maskcomparison(sSuspect,sMask)
{
	if (sMask == "#")
	{
		if (isNaN(parseInt(sSuspect)))
		{
			return (false)
		}
		else
		{
			return(true)
		}
	}
	if (sMask == "A")
	{
		if (isNaN(parseInt(sSuspect)))  //141
		{
			return(true)
		}
		else
		{
			return(false)
		}
	}
	if (sSuspect == sMask)
	{
		return(true)
	}
	else
	{
		return("literalmiss")
	}
}



function ValNum(strIn,control, iLen, iMin, iMax, bRequired)
{
	//validates length & range of a number in a control, and that
	// it is a number.
	// pass in 0 for the last 3 args to bypass those requirements
	sMsg=""
	bNotnumeric = false
	sControl = control.value
	
	if (gbVal == false)
	{
			if (IsEmpty(control))			
			{
				if(bRequired)
				{
					sMsg = "Please make an entry for the " + strIn + " field."
				}
			}				
			else if (isNaN(parseInt(control.value)))
				{	
					sMsg = "Please enter a number in the " + strIn + " field."
				}
			else
			{
				if (iMin != 0 && sControl < iMin) sMsg = "The " + strIn  + " field must not be less than " + iMin
				if (iMax != 0 && sControl > iMax) sMsg = "The " + strIn  + " field must not be greater than " + iMax			
				if (iLen !=0 && iLen != sControl.length) sMsg = "The " + strIn + " field must contain " + iLen + " digits."
			}		
	}

	if (sMsg != "")
	{
		gbVal = true
		alert(sMsg)
		control.focus()
		control.select()
	}
}



function IsEmpty(control)
{
	//see if string is full of spaces
	sCon = control.value
	iConlen = sCon.length
	sTemp = ""
	for(i=1;i<=iConlen;i++)
		{sTemp = sTemp + " "}	
	if (control.value == "" || control.value == sTemp)
		{return(true)}
	else
		{return(false)}
}


function IsBlank(strIn,control)
{
	if (IsEmpty(control) == true && gbVal == false)
	{	
		gbVal = true
		alert("Please make an entry for the " + strIn + " field.")
		control.focus()
	}
}


function ValDate(strIn, control)
{   
 // used to validate 12/12/1998 formats
 
 if(strIn == "")
 {
	return
 } 
 if(gbVal == false)
 {
     bd = control	
     strDate = bd.value
     if (!isDate(strDate))
     {
	gbVal = true;
	alert(strIn + ' does not have a valid date.');
        bd.focus();
	bd.select();
        return false;
     }
     return true;
 }
}


function DateDif(sDateFrom,sDateTo)
{
	var1 = new Date(sDateFrom)
	var2 = new Date(sDateTo)	
	dif = var2.getTime() - var1.getTime()
	dif = Math.floor(dif/(1000 * 60 *60 * 24))
	return dif
}



function isDate(myDate) 
{
dateParts = myDate.split('/')
if (dateParts[0].length > 2)
	{
	dateParts = myDate.split('-')
	if (dateParts[0].length > 2)
		{	
		return false;
		}	
	}

if (isNaN(dateParts[0]) || isNaN(dateParts[1]) || isNaN(dateParts[2]))
	{
	return false;
	}

myMonth = parseInt(dateParts[0])
myDay = parseInt(dateParts[1])
myYear = parseInt(dateParts[2])	

if (myMonth > 12)
	{
	return false;
	}

if ((myMonth == 1) || (myMonth == 3) || (myMonth == 5) || (myMonth == 7) || (myMonth == 8) || (myMonth == 10) || (myMonth == 12)) 
	{
		if (myDay > 31)
		{
		return false;
		}
	}
if ((myMonth == 4) || (myMonth == 6) || (myMonth == 9) || (myMonth == 11))
	{
		if (myDay > 30)
		{
		return false;
		}	
	}
if (myMonth == 2)
	{
		if (((myYear % 4 == 0) && (myYear % 100 != 0)) || (myYear % 400 == 0))
		{
			if (myDay > 29)
			{
			return false;
			}			
		}	
		else
		{
			if (myDay > 28)
			{
			return false;
			}				
		}
	}
return true;
}



function isEmailValid(sTest)
{
var bEmailOk  = true
var AtSym    = sTest.indexOf('@')
var Period   = sTest.lastIndexOf('.')
var Space    = sTest.indexOf(' ')
var Length   = sTest.length - 1			// Array is from 0 to length-1

if ((AtSym < 1) ||						// '@' cannot be in first position
    (Period <= AtSym+1) ||				// Must be atleast one valid char between '@' and '.'
    (Period == Length ) ||				// Must be atleast one valid char after '.'
    (Space  != -1))						// No empty spaces permitted
   {  
      bEmailOk = false;
   }
	return bEmailOk;
}


//<!--ONKEYPRESS = "Valmask(event,this.form.txtApptakendate, '##/##/####')" -->







