<!-- Stealth Mode On
var key_was_pressed = false;
function discard_error(mst,loc,lin)
{return true;}
self.onerror=discard_error;
var clicked = false;
// Capital = required not null       
// lower case = can be null.         
// All Numeric fields are stripped   
//	1. D = date  (MM/DD/YYYY)        
//	2. U = unrequired -NON STRIPPED  
//	3. T = text                      
//	4. N = number                    
//	5. P = phone number              
//	6. E = e-mail                    
//  7. C = course id (7 digit text)  
//  8. F = finance id (12 digit num)
//  9. S = SSN (9 or 4 digit num/letters)
// 10. Z = Zip Code (7 or 11 num)
// 11. O = Offerring /district (3 digit num)
// 12. Y = Year (4 digit num)
// 13. A = Area (1 digit text)
// 14. I = Time (HH:MM)
// 15. R = Real Number (numbers with decimals)
// 16. M = Multiple Course IDs (strips spaces, leaves numbers, letters, and commas)
// 17. V = varchar2(2000) Validates for 2000 characters only! nothing else.
// 18. X = new 9 digit ssn for human resource only.
// 19. K = varcahr2(4000) Validates for 4000 characters only! nothing else.

//
function validateInput(frm, mask){

	//Count the number of form elements
	var FrmLen = frm.elements.length;
 
	//Get the validation mask string
	
	var maskarr = mask;
	var txt = "'_(),.&-+/ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 ";
	var num = "1234567890.-";
	var dat = "1234567890/";
	var phone = "1234567890";	
	var tim = "1234567890:";
	var rel = "1234567890.-";
    var mul = "'-ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,";
    var email="-~'@#*._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
	//Loop through all the form elements
	for (var i = 0; i < FrmLen; i++)
	{
		//obtain the validation mask character
		maskarr = mask.substring(i,i+1)
		if (frm.elements[i].errorcheck) {
		 maskarr = frm.elements[i].errorcheck;
		 }
		//Initialise local variables
	var required = false;
	if (maskarr.toUpperCase() == maskarr)
	{
	required = true;
	}
	maskarr = maskarr.toUpperCase();
	//Test field against validation mask character
	if (maskarr == "D")
	{
          frm.elements[i].value= strip_special(frm.elements[i].value,dat);
	  if (((! validateDate(frm.elements[i].value)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
	   {
		alert("The date you have entered is invalid");
		ownputFocus(frm.elements[i]);
		return false;
	   }
		
	}
	if (maskarr == "T")
	{
	  frm.elements[i].value= strip_special(frm.elements[i].value,txt);
	  if (((! validateText(frm.elements[i].value,0)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
	  {
		alert("The details you have entered are incomplete");
		ownputFocus(frm.elements[i]);
		return false;
	  }
	  if (frm.elements[i].value.length > 2000) {
	    alert('This field may not contain more than 2000 characters');
		putFocus(frm.elements[i]);
		return false;
		}
	}
	if (maskarr == "N")
	{
		  frm.elements[i].value= strip_special(frm.elements[i].value,num);
	  if (((! validateNum(frm.elements[i].value,0)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
	  {
		alert("Please enter a valid number");
		ownputFocus(frm.elements[i]);
		return false;
	  }
	}

if (maskarr == "R")
	{
		  frm.elements[i].value= strip_special(frm.elements[i].value,rel);
	  if (((! validateNum(frm.elements[i].value,0)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
	  {
		alert("Please enter a valid number");
		ownputFocus(frm.elements[i]);
		return false;
	  }
	}

	if (maskarr == "P")
	{
		  frm.elements[i].value= strip_special(frm.elements[i].value,phone);
      if (((! validateNum(frm.elements[i].value,10)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
	  {
		alert("Please enter a valid telephone number");
		ownputFocus(frm.elements[i]);
		return false;
      }
	}
	if (maskarr == "E")
	{
		  frm.elements[i].value= strip_special(frm.elements[i].value,email);
      if (((! validateEmail(frm.elements[i].value,0)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
	  {	  	
		alert("The Email address you have entered is invalid");
		ownputFocus(frm.elements[i]);
		return false;
      }
	}
	if (maskarr == "C")
	{
    frm.elements[i].value= strip_special(frm.elements[i].value,txt).toUpperCase();
    if (((! validateText(frm.elements[i].value,7)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
    {
	alert("The Course ID you have entered is invalid");
	ownputFocus(frm.elements[i]);
	return false;
	}
}

if (maskarr == "M")
	{
    frm.elements[i].value= strip_special(frm.elements[i].value,mul).toUpperCase();
    if ((( (!frm.elements[i].value.length+1)%8==0) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
    {
	alert("The Course ID(s) you have entered is invalid");
	ownputFocus(frm.elements[i]);
	return false;
	}
	
	}
	if (maskarr == "Z")
	{
    frm.elements[i].value= strip_special(frm.elements[i].value,num);
    if (((! validateNum(frm.elements[i].value,5)) && (! validateNum(frm.elements[i].value,9))&& (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
    {
    alert("The Zip Code you have entered is invalid");
	ownputFocus(frm.elements[i]);
	return false;
	}
	}
	if (maskarr == "O")
	{
    frm.elements[i].value= strip_special(frm.elements[i].value,num);
    if (((! validateNum(frm.elements[i].value,0)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
    {
    alert("The Offerring ID you have entered is invalid");
	ownputFocus(frm.elements[i]);
	return false;
	}
	}
	if (maskarr == "S")
	{
		  frm.elements[i].value= strip_special(frm.elements[i].value,txt).toUpperCase();
	if (( (!validateText(frm.elements[i].value,9)) && (!validateText(frm.elements[i].value,4)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
    {
    alert("The SSN you have entered is invalid");
	ownputFocus(frm.elements[i]);
	return false;
	}
	}
	if (maskarr == "X")
	{
		  frm.elements[i].value= strip_special(frm.elements[i].value,txt).toUpperCase();
	if ( (!validateText(frm.elements[i].value,9) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
    {
    alert("The SSN you have entered is invalid");
	ownputFocus(frm.elements[i]);
	return false;
	}
	}
	
	if (maskarr == "F")
	{
		  frm.elements[i].value= strip_special(frm.elements[i].value,num);
    if (((! validateNum(frm.elements[i].value,6)) && (! validateNum(frm.elements[i].value,12)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
    {
    alert("The Finance ID you have entered is invalid");
	ownputFocus(frm.elements[i]);
	return false;
	}
	}
if (maskarr == "Y")
	{
		  frm.elements[i].value= strip_special(frm.elements[i].value,num);
    if (((! validateNum(frm.elements[i].value,4)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
    {
    alert("The Year you have entered is invalid");
	ownputFocus(frm.elements[i]);
	return false;
	}
	}
if (maskarr == "A")
	{
		  frm.elements[i].value= strip_special(frm.elements[i].value,txt).toUpperCase();
    if (((! validateText(frm.elements[i].value,0)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
    {
    alert("The Area you have entered is invalid");
	ownputFocus(frm.elements[i]);
	return false;
	}
	}
	if (maskarr == "V")
	{

	  if (((! validateText(frm.elements[i].value,0)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
	  {
		alert("The details you have entered are incomplete");
		ownputFocus(frm.elements[i]);
		return false;
	  }
	  if (frm.elements[i].value.length > 2000) {
	    alert('This field may not contain more than 2000 characters');
		ownputFocus(frm.elements[i]);
		return false;
		}
	}
	if (maskarr == "K")
	{

	  if (((! validateText(frm.elements[i].value,0)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
	  {
		alert("The details you have entered are incomplete");
		ownputFocus(frm.elements[i]);
		return false;
	  }
	  if (frm.elements[i].value.length > 4000) {
	    alert('This field may not contain more than 4000 characters');
		ownputFocus(frm.elements[i]);
		return false;
		}
	}
	
if (maskarr == "I")
	{
		  frm.elements[i].value= strip_special(frm.elements[i].value,tim).toUpperCase();
if (((! validateTime(frm.elements[i].value)) && (frm.elements[i].value != "")) || ((required==true)&&(frm.elements[i].value=="")))
    {
    alert("The Time you have entered is invalid.");
	ownputFocus(frm.elements[i]);
	return false;
	}
	}

	
	}
	return clicked;
}
//Date validation function
function validateDate(s)
{
	//Test for a string
	if (s.length == 10)
	{
		//Create an array to split the date into (dd/mm/yy)
		strarr = new Array ()

		//Use own split function as JScript does not include JavaScripts split function
		own_split(strarr, s, "/");
		
		//3 array elements means day, month, and year
		if (strarr.length == 3)
		{
			//Test the value of each element falls in an acceptable range
			for (var i = 0; i < strarr.length; i++)
			{
				if ((strarr[0] < 1) || (strarr[0] >12)){
					return false;
				}
				if ((strarr[1] < 1) || (strarr[1] >31))                        {
					return false;
				}
				
				if((strarr[2] % 4) == 0)
				{
				   var date_value = 29;
				}
				else
				{
				   var date_value = 28;
				}
				
				if((strarr[0]==2) && (strarr[1]*1>date_value*1))                        {				      return false;                        }                        if((strarr[0]==4 || strarr[0]==6 || strarr[0]==9 || strarr[0]==11) &&                            (strarr[1]>30))                        { 					return false;				}                        if ((strarr[2] <= 1899) || (strarr[2] > 2099)){
					return false;
				}
				if((strarr[0].length>2)||(strarr[1].length>2)||(strarr[2].length!=4))                        {				      return false;                        }                        if((strarr[0]==4 || strarr[0]==6 || strarr[0]==9 || strarr[0]==11) &&                            (strarr[1]>30))                        { 					return false;				}                        if ((strarr[2] <= 1899) || (strarr[2] > 2099)){
					return false;
				}
				
			}
			return true;
		}
		return false;
	}
	return false;
}

function validateTime(s)
{
	//Test for a string
	if (s.length > 0)
	{
		//Create an array to split the date into (HH:MM)
		strarr = new Array ()

		//Use own split function as JScript does not include JavaScripts split function
		own_split(strarr, s, ":");
		
		//3 array elements means hour and minute
		if (strarr.length == 2)
		{
			//Test the value of each element falls in an acceptable range
			for (var i = 0; i < strarr.length; i++)
			{
				if ((strarr[0] < 1) || (strarr[0] >12)){
					return false;
				}
				if ((strarr[1] < 0) || (strarr[1] >59)){
					return false;
				}
			}
			return true;
		}
		return false;
	}
	return false;
}

//Text validation function
function validateText(s, leng)
{
	//test for a string
	if (s.length > 0 && (s.length== leng || leng == 0))
	{
		return true;
	}
	return false;
}

function validateNum(s, nlen)
{   var x;
	var count_dot;
	var count_dash;
	count_dot=0;
	count_dash=0;
	
	if (! isNaN(s))
	{
		for(x=0;x<s.length;x++)
		{
		  if(s.charAt(x)=='.'){count_dot++;}
		  if(s.charAt(x)=='-'){count_dash++;}
		}
		
		if(count_dot > 1 || count_dash > 1)
		{
		  return false;
		}
		
		if ((s.length == nlen || nlen == 0) && s.length > 0)
		{ 		
			return true;
		}
	}
	return false;
}

//E-Mail address validation function
function validateEmail(s)
{
	//Test for a string
	if (s.length > 0)
	{
		// Return false if e-mail field does not contain a '@' and '.' .
		if (s.indexOf ('@',0) == -1 || s.indexOf ('.',0) == -1)
      			{
			return false;
			}
		return true;
	}
	return false;
}

//In string function to test for valid substring, accomodates JavaScripts lack of VBScripts InStr() function
function strip_special(strng, ckstr)
{
var out = "";

var j = 0;
for (j = 0;  j < strng.length;  j++) 
{
if (own_instring(strng.charAt(j),ckstr))
 { 
 out = out + strng.charAt(j);
  }
 }
return out;
}

function own_instring(c, checkOK)
{
	var ret  = false;
var j = 0;
  		for (j = 0;  j < checkOK.length;  j++)
		{
      			if (c.toUpperCase() != checkOK.charAt(j).toUpperCase())
			{
			
			continue;
			}
			else
			{
			ret = true;
			break;
			}
		}
	return ret;
}

//String split function to accomodate JScripts lack of JavaScripts split function
function own_split(arr, str, delim)
{
	//Initialise local variables
	var pos = 0;
	var num = 0;
	var start = 0;
	
	//Loop while there are characters in the string
	while (pos < str.length)
	{
		//Loop while there are delimiters in the string
		while((str.substring (pos, pos+1) != delim) && (pos < str.length))
		{
		pos++;
		}
		//Add the new characters to the output array
		arr[num] = str.substring(start,pos);
		num++;
		start = pos+1;
		pos++;
	}
}

function putFocus(elementxyz)
   {
failed_focus = "FALSE";
if (key_was_pressed == false) {
if (elementxyz){
if (elementxyz.type && elementxyz.type != "hidden") {
  elementxyz.focus();
} else {failed_focus="TRUE";}
} else {failed_focus="TRUE";}
if (failed_focus=="TRUE")
 {

if (document.forms) {

    theElems = document.forms[0].elements

    // loop over the elements until finding a non-hidden one
    for (i = 0; i < theElems.length; i++) {
      theElem = theElems[i];
      if (theElem.type && theElem.type == "hidden" ) {
        continue;
      }
      // focus on the first non-hidden element
      theElem.focus();
      break;
    }
  }
}}

   }
function ownputFocus(strg)
   {
  
   strg.focus();
   clicked = false;
   }
if (document.layers)
{window.captureEvents(Event.Keypress);
}
function dont_focus(e){
if (document.layers){
key_was_pressed = true;

}
else if (document.all){
key_was_pressed = true;
}
}
document.onkeypress=dont_focus;
//-->



