var message="Function Disabled!";

var tempString;

var phoneNumberDelimiters = "()- ";
			
function clickIE4(){
	if (event.button==2){
		alert(message);
		return false;
	}
}

function clickNS4(e){
	if (document.layers||document.getElementById&&!document.all){
		if (e.which==2||e.which==3){
			alert(message);
			return false;
		}
	}
}

function isEmptyString(s)
{	
	return ((s == null) || (strtrim(s).length == 0))
} 

function isInteger(s)
{
	var i;	
	for (i=0; i<s.length; i++)
		if (!isDigit(s.charAt(i)))
			return false;
	return true;
}	
	
function isDigit(c){
	return ((c >= "0") && (c <= "9"))
}
		
function checkPositiveInteger(objName) {
	var intfield = objName;	
	if(intfield.value.length == 0){
		return true;
	} else if (isNonnegativeInteger(intfield.value) == false) {
		intfield.select();
		alert("The number entered is not a valid positive integer.\n"+		     
		      "                   Please try again.");
		intfield.focus();
		return false;
	}
	else
		return true;
}				
			
function isNonnegativeInteger (s)
{   
	var secondArg = false;
    if (isNonnegativeInteger.arguments.length > 1)
    {
	secondArg = isNonnegativeInteger.arguments[1];
    }
    return (isSignedInteger(s, secondArg)
	 && ( (isEmpty(s) && secondArg)  || (parseInt (s) >= 0) ) );
}
					
function isSignedInteger (s)
{
	if(isEmpty(s))
	{
		if(isSignedInteger.arguments.length == 1)
	   	{
			return false;
	    }
	    else
	    {
			return (isSignedInteger.arguments[1] == true); 
		}
	}
    else
    {
		var startPos = 0;
		var secondArg = false;
		if (isSignedInteger.arguments.length > 1)
	    	secondArg = isSignedInteger.arguments[1];
		if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
	   		startPos = 1;
		return (isInteger(s.substring(startPos, s.length), secondArg))
    }
}
					
function isIntegerInRange(s,a,b)
{
	var num = parseInt(s,10);
    return ((num >= a) && (num <= b));
}

var whitespace = " \t\n\r";
		
		function isWhitespace (s)
		{
			if (isEmpty(s)) return true;
		
			for (i = 0; i < s.length; i++)
			{
			    var c = s.charAt(i);
			    if (whitespace.indexOf(c) != -1) return true;
			}
			return false;
		}
		
		function isEmpty(s)
		{
			return ((s == null) || (strtrim(s).length == 0))
		}

		var tempString;
		function strtrim(tempString)
	    {
	    	return tempString.replace(/^\s+/,'').replace(/\s+$/,'');
	    }
	    
		function isEmail (s)
		{   
			if (isEmpty(s))
	       	if (isEmail.arguments.length == 1) return false;
	       	else return (isEmail.arguments[1] == true);
	    	if (isWhitespace(s)) return false;
		    var i = 0;
		    var j = 0;
		    var k = 0;        
		    var mm=0;
		    var yy=0;
		    var zz=0;
		    var countAt = 0;
		    var countDot= 0;
		    var locationOfAt=0; 
		    var locationOfDots = new Array(); 
		    var sLength = s.length;
		    while ((i < sLength) && (s.charAt(i) != "@"))
		    { i++
		    }
			locationOfAt =i;
		         if(locationOfAt == 0) 
		              { return false; }
			for(yy=0;yy<sLength ;yy++)
			 {
		      	if(s.charAt(yy) == "@") 
		          		{ countAt++; }       
		 	 }
		
		    if ((i >= sLength) || (s.charAt(i) != "@") || countAt !=1)
		       {
		           return false;
		        }
		    else 
		         {
		           i += 2;         
		         }
		    
		    while (j < sLength )
		    { 
		       if(s.charAt(j) == ".")
		       {	locationOfDots[k] = j ;
			    	k++;
		    	}
		    j++
		    }
		   
		    for(mm=0;mm<locationOfDots.length;mm++)
		    {
			             if(locationOfDots[mm] == 0) 
			              { return false; }
			             if(locationOfDots[mm]+1 == locationOfAt) 	              
			              { return false; }
			             if(locationOfDots[mm]-1 == locationOfAt) 	              
			              { return false; }
			             if(locationOfDots[mm] == sLength-1) 
			              { return false; }
			             if(locationOfDots[mm]+1 == locationOfDots[mm+1]) 
			              { return false; }	              
		    }
		
			for(zz=i;zz<sLength ;zz++)
			 {
		      	if(s.charAt(zz) == ".") 
		          		{ countDot++; }       
		 	 }
		
		      if(countDot== 0) 
		         { return false; }  
		
		
		    while ((i < sLength) && (s.charAt(i) != "."))
		    { i++
		    }
		
		    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
		    else
		    {
	       		return true;
    	 	}
		}

// BEGIN functions obtained for email and phone validating ***************************************

	function checkUSPhone (theFieldVal, emptyOK)
	{   if (checkUSPhone.arguments.length == 1) emptyOK = false;
	    if ((emptyOK == true) && (isEmpty(theFieldVal))) return true;
	    else
	    {  var normalizedPhone = stripCharsInBag(theFieldVal, phoneNumberDelimiters)
	       if (!isUSPhoneNumber(normalizedPhone, false)) 
	          return false;
	       else
	          return true;
	    }
	}
	
	function stripCharsInBag (s, bag)
	
	{   var i;
	    var returnString = "";
	
	    for (i = 0; i < s.length; i++)
	    {
	        var c = s.charAt(i);
	        if (bag.indexOf(c) == -1) returnString += c;
	    }
	
	    return returnString;
	}
	
	function stripCharsNotInBag (s, bag)
	{	var i;
		var returnString = "";
	
		for (i = 0; i < s.length; i++)
		{
			var c = s.charAt(i);
			if (bag.indexOf(c) != -1) returnString += c;
		}
		return returnString;
	}
	
	function isUSPhoneNumber (s)
	{   if (isEmpty(s)) 
	       if (isUSPhoneNumber.arguments.length == 1) return false;
	       else return (isUSPhoneNumber.arguments[1] == true);
	    return (isInteger(s) && s.length == 10)
	}
// END functions obtained for email and phone validating ***************************************

function daysInFebruary (year)
{
    return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 );
}

var daysInMonth = new Array(12);
daysInMonth[1] = 31;
daysInMonth[2] = 29;   // must programmatically check this
daysInMonth[3] = 31;
daysInMonth[4] = 30;
daysInMonth[5] = 31;
daysInMonth[6] = 30;
daysInMonth[7] = 31;
daysInMonth[8] = 31;
daysInMonth[9] = 30;
daysInMonth[10] = 31;
daysInMonth[11] = 30;
daysInMonth[12] = 31;
				    			
function isDate (monthField, dayField, yearField, currentYear,yearToReduceOrIncrease,minimumYear,maxYear)
{			
			
	if(!((isMonth(monthField))&&(isDay(dayField)) && (isYear(yearField,currentYear,yearToReduceOrIncrease,minimumYear,maxYear))))
	{			    	 
		return false;
	}
	
	var month = monthField.value;		
	var day = dayField.value;
	var year = yearField.value;
	
    	var intYear = parseInt(year);
    	var intMonth = parseInt(month);
    	var intDay = parseInt(day);

   if (intDay > daysInMonth[intMonth]){
    	dayField.focus();
		dayField.select();
     	return false; 
     }

    if ((intMonth == 2) && (intDay > daysInFebruary(intYear))) {
    	dayField.focus();
		dayField.select();
    	return false;
    }			
    return true;
}

function isYear (yearField,currentYear,yearToReduceOrIncrease,minimumYear,maxYear)
{
	var year = yearField.value;	
	if(isInteger(year))
    {
       if(year.length == 4)
       {
       		var d = new Date();
       			       		
       		currentYear =  new Number(currentYear);  
       			
       		currentYear =currentYear+yearToReduceOrIncrease;		
       		if(year>=currentYear)
       		{
       			yearField.focus();
				yearField.select();
       			return false;
       		}
       		
       		if(minimumYear!=0){
       			if(year<minimumYear)
	       		{		
	       			yearField.focus();
					yearField.select();
					return false;
	       		}
       		}
       		if(maxYear!=0){
	       		if(year>maxYear)
	       		{		
	       			yearField.focus();
					yearField.select();
					return false;
	       		}
       		}
       		       		
			return true;
       }
       else
       {
       		yearField.focus();
			yearField.select();
      		return false;
       }
    }
    if (!isNonnegativeInteger(year))
    {
    	yearField.focus();
		yearField.select();
	   	return false;
    }    
}
		
function isMonth(monthField)
{
	var month = monthField.value;		
		
	if(isIntegerInRange(month,1,12))
	{										
    	 return true;			    	
    }
    else
    {
   		monthField.focus();
		monthField.select();
	    return false;
	}
}
		
function isDay(dayField)
{
	var day = dayField.value;	
    if(isIntegerInRange(day,1,31))
    {
    	return true;
    }
    else
    {
   		dayField.focus();
		dayField.select();
    	return false;
    }
}

function validateField(fieldName,lengthOfTheField,alertString)
{
	if(fieldName.value.length != lengthOfTheField){
  		alert(alertString);
		fieldName.focus();
		return false;
  	}		  		
	return true;
}

function setFocusToNextField(currentField,requestedField,length)
{				
	  if (currentField.value.length >= length)
	  {
	    	requestedField.focus();	    	
	  }
}

function checkSSNCon(password, confirm){
	if(eval(password)&&eval(confirm))
		return(password.value==confirm.value);
}

function checkPassword(password, confirm){
 	if(eval(password)&&eval(confirm))
  		return( strtrim(password.value) == strtrim(confirm.value) );
}

function checkEmail(email, emailconfirm){
 	if(eval(email)&&eval(emailconfirm))
  	return( strtrim(email.value) == strtrim(emailconfirm.value) );
}

function setSpecifiedFieldEnable(field)
{	
	field.disabled = false;	
}

function setSpecifiedFieldDisableAndEmpty(field)
{
	field.disabled = true;
	field.value= "";	
}




function checkdate(objName) {
	var datefield = objName;
	if (chkdate(objName) == false) {
//		datefield.select();
		alert("               The date '" + datefield.value + "' is invalid.\n"+
		      "Please make sure date in the format: 'MM/DD/YYYY'.\n\n"+
		      "                   Please try again.");
		datefield.value='';
		datefield.focus();
		return false;
	}
	else if (datefield.value.length > 0 && !yearGreaterThan(datefield.value, 1899)){
//		datefield.select();
		alert("The year must be greater than 1899");
		datefield.value='';
		datefield.focus();
		return false;
	}
	else
		return true;
}

function chkdate(objName) {
	var strDatestyle = "US"; //United States date style
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;
	var booFound = false;
	var datefield = objName;
	var strSeparatorArray = new Array("-"," ","/",".","\\");
	var intElementNr;
	var err = 0;
	var zeroMonth;
	var zeroDay;
	var strMonthArray = new Array(12);
	strMonthArray[0] = "Jan";
	strMonthArray[1] = "Feb";
	strMonthArray[2] = "Mar";
	strMonthArray[3] = "Apr";
	strMonthArray[4] = "May";
	strMonthArray[5] = "Jun";
	strMonthArray[6] = "Jul";
	strMonthArray[7] = "Aug";
	strMonthArray[8] = "Sep";
	strMonthArray[9] = "Oct";
	strMonthArray[10] = "Nov";
	strMonthArray[11] = "Dec";
	strDate = datefield.value;
	if (strDate.length < 1) {
		return true;
	}

        if (strDate.indexOf("-") == -1&&strDate.indexOf(" ") == -1&&strDate.indexOf("/") == -1&&strDate.indexOf(".")&&strDate.indexOf("\\")){
		return false;
        }

	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
			strDateArray = strDate.split(strSeparatorArray[intElementNr]);
			if (strDateArray.length != 3) {
				err = 1;
				return false;
			}
			else {
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
			}
			booFound = true;
		}
	}
	
//	if (strYear.length != 2 && strYear.length !=4)
	if (strYear.length !=4)
		return false;
		
	if (booFound == false) {
		if (strDate.length>5) {
			strDay = strDate.substr(0, 2);
			strMonth = strDate.substr(2, 2);
			strYear = strDate.substr(4);
		}
	}
/*
	if (strYear.length == 2) {
		strYear = '20' + strYear;
	}
*/	
	// US style
	if (strDatestyle == "US") {
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
	}
	intday = parseInt(strDay, 10);
	if (isNaN(intday)) {
		err = 2;
		return false;
	}
	intMonth = parseInt(strMonth, 10);
	if (isNaN(intMonth)) {
		for (i = 0;i<12;i++) {
			if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
				intMonth = i+1;
				strMonth = strMonthArray[i];
				i = 12;
			}
		}
		if (isNaN(intMonth)) {
			err = 3;
			return false;
		}
	}
	intYear = parseInt(strYear, 10);
	if (isNaN(intYear)) {
		err = 4;
		return false;
	}
	if (intMonth>12 || intMonth<1) {
		err = 5;
		return false;
	}
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
		err = 6;
		return false;
	}
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
		err = 7;
		return false;
	}
	if (intMonth == 2) {
		if (intday < 1) {
			err = 8;
			return false;
		}
		if (LeapYear(intYear) == true) {
			if (intday > 29) {
				err = 9;
				return false;
			}
		}
		else {
			if (intday > 28) {
				err = 10;
				return false;
			}
		}
	}
	zeroMonth="";
	zeroDay="";
	if(intMonth < 10) { zeroMonth="0"; }
	if(intday < 10) { zeroDay="0"; }
	if (strDatestyle == "US") {
		//datefield.value = strMonthArray[intMonth-1] + " " + intday+" " + strYear;
		datefield.value = zeroMonth + intMonth + "/" + zeroDay + intday + "/" + strYear
	}
	else {
		//datefield.value = intday + " " + strMonthArray[intMonth-1] + " " + strYear;
		datefield.value = zeroDay + intday + "/" + zeroMonth + intMonth + "/" + strYear;
	}
	return true;
}

function LeapYear(intYear) {
	if (intYear % 100 == 0) {
		if (intYear % 400 == 0) { return true; }
		}
	else {
		if ((intYear % 4) == 0) { return true; }
		}
	return false;
}
function yearGreaterThan(strDate, yearLimit) {
	var strDateArray = strDate.split("/");
	var year = strDateArray[2];
	return year > yearLimit;
}



var emailString;
function validateEmailAddress(emailString)
{  
    if(!isEmail( strtrim( emailString ) ))
   	{
   		alert("Please enter valid email format, e.g: smith@thecomp.com");    	
    	return false;
   	}
   	else
   	{
   		return true;
   	}
}