﻿/*----------------------------------------------------------------------------------------------------------------
	Function:	CheckNull(FieldValue,FieldName)
	Purpose:	function to Check Null Value
	Inputs:		FormName 	string 		Parameter containing name of the form
			LabelName	string 		Label of field on which validation is applied
			FieldName 	string 		Name of field on which this validatuon is applied.
	Returns:	true/false	boolean		Parameter returning true or false for output value
 ---------------------------------------------------------------------------------------------------------------*/
function CheckForNull(FormName,LabelName,FieldName){
	var FieldRef=eval("document." + FormName +"." + FieldName);
	var FieldValue=FieldRef.value
	FieldValue=LTrim(RTrim(FieldValue))
	var MsgRef = eval("document." + FormName +".txtMessage");
	var counter=0

	if(parseInt(FieldValue.length) < 1)	{ 
		alert(LabelName + " must be entered.");
		//MsgRef.value = LabelName + " Must Be Entered!"
		eval("document." + FormName +"." + FieldName + ".focus()")
		return false;
	}
	else{
		//Check Spaces in String 
		for (LintCount=0;LintCount<=parseInt(FieldValue.length);LintCount++)
		{
			//If Space Found
			if(FieldValue.charAt(LintCount)==' ')
			{
				counter=counter+1
			}
		}
		//If Total Number of Spaces Equal to Total Length of String Then Return False
		if(parseInt(counter)==parseInt(FieldValue.length))
		{
			alert(LabelName + " must be entered.");
			//MsgRef.value = LabelName + " Must Be Entered!"
			FieldRef.value=''
			eval("document." + FormName +"." + FieldName + ".focus()")
			return false;
		}
		else
		{
			
			FieldRef.value=FieldValue
			return true;
		}
	    }
}



/*----------------------------------------------------------------------------------------------------------------
	Function:	CheckIsNumber(FormName,LabelName,FieldName)
	Purpose:	For Checking Integer........for fields where only numerics are required
	Inputs:		FormName	string 		Parameter containing name of the form
				LabelName	string 		Parameter containing Label name to display in message
				FieldName	string 		Parameter containing Name of field for validatuon
	Returns:	true / false
-----------------------------------------------------------------------------------------------------------------*/
function CheckIsNumber(FormName,LabelName,FieldName) {
	var FieldRef=eval("document." + FormName +"." + FieldName);
	if(isNaN(FieldRef.value) || FieldRef.value < 0) {
		alert (" Numeric values more than 0 are allowed in "+ LabelName +" Field");
		FieldRef.value="";
		FieldRef.focus();
		return false;
	}
	else {
		return true;
	}
}

function CheckIsNumber1(FormName,LabelName,FieldName) {
	var FieldRef=eval("document." + FormName +"." + FieldName);
	if(isNaN(FieldRef.value) || FieldRef.value <= 0) {
		alert (" Numeric values more than 0 are allowed in "+ LabelName +" Field");
		FieldRef.value="";
		FieldRef.focus();
		return false;
	}
	else {
		return true;
	}
}
function CheckIsNumber2(FormName,LabelName,FieldName) {
	var FieldRef=eval("document." + FormName +"." + FieldName);
	if(isNaN(FieldRef.value) || FieldRef.value < 0) {
		alert (" Numeric values more than 0 are allowed in "+ LabelName +" Field");
		FieldRef.value="";
		FieldRef.focus();
		return false;
	}
	else {
		return true;
	}
}


/*----------------------------------------------------------------------------------------------------------------
	Function:	CheckDate(FormName,FieldName)
	Purpose:	Used For Date Validations
	Inputs:		FormName	string		Parameter containing form name
			FieldName	string		Parameter containing field name
	Returns:	true/false	boolean		Parameter returning true or false for output value
 ---------------------------------------------------------------------------------------------------------------*/
function CheckDate(FormName,FieldName)
{	

	var j=0;
	var intCheck=0;
	var intDay=""; intMonth=""; intYear="";
	
	
	var ArrDate=new Array();
	var arrMonthDays = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
	var strDate=eval("document." + FormName +"." + FieldName + ".value");
	
	
	
	
	if(AbortNonRequiredCharacters(FormName,FieldName,'`~^|-#$%&*()_+|;:><?','Invalid Date Format !')==false) 
	{
		//alert("Invalid Date Format");
		eval("document." + FormName +"." + FieldName + ".focus()");
		return false;
	}
	var Arr=new Array();
	Arr=strDate.split("/")
	if(Arr.length==3)
		{
		if(Arr[0].length!=2)
			{
				alert("Invalid Date Format")
				eval("document." + FormName +"." + FieldName + ".focus()");
				return false;
			}
		if(Arr[1].length!=2)
			{
				alert("Invalid Date Format")
				eval("document." + FormName +"." + FieldName + ".focus()");
				return false;
			}
		if(Arr[2].length!=4)
			{
				alert("Invalid Date Format")
				eval("document." + FormName +"." + FieldName + ".focus()");
				return false;
			}
			if(Arr[2]>2078)
			{
				alert("Year can not exceed 2078")
				eval("document." + FormName +"." + FieldName + ".focus()");
				return false;
			}
		if(Arr[2]<2000)
			{
				alert("Year can not be less then 2000")
				eval("document." + FormName +"." + FieldName + ".focus()");
				return false;
			}
		}else
		{
		alert("Invalid Date Format")
		eval("document." + FormName +"." + FieldName + ".focus()");
		return false;
		}
	
	
	
	var strlen=strDate.length;
	var strTempString=""
	var strTempDate=""
	//Concatinating 0 in begning in case value of lenght 1
	if((strlen >= 8) && (strlen <= 9))	{
		strDate=strDate+"/"
		for (var i=0; i<=strlen; i++) {
	      	if(!(strDate.charAt(i) == "/")) {
		  		strTempString=strTempString + strDate.charAt(i)
	     	}
			else {
				if (strTempString.length < 2) {
					strTempString="0" + strTempString
					if (strTempDate.length < 1) {strTempDate=strTempString }
					else {strTempDate=strTempDate + "/" + strTempString	}	
					strTempString=""
				}	
				else {
					if (strTempDate.length < 1) {strTempDate=strTempString}
					else {strTempDate=strTempDate + "/" + strTempString	}	
					strTempString=""
				}	
			}	
		}
		strDate=strTempDate
	}

	
	
	if((strlen >= 8) && (strlen <= 10))	{
		for (var i=0; i<=strlen; i++) {
	      		if(!(strDate.charAt(i) == "/")) {
		  			ArrDate[j]=strDate.charAt(i)
		  			j=j+1
	     		}
				else {
					intCheck=intCheck+1;
				}
	  	}
	  	
	  	//****Check For two '//' in the date enterd
	  	
	 	if(intCheck !=2) {  
	 		alert("Invalid Date Format")
			eval("document." + FormName +"." + FieldName + ".focus()");
			return false;
		}
		intMon=ArrDate[0] + ArrDate[1];
		intDay=ArrDate[2] + ArrDate[3];
		intYear=ArrDate[4] + ArrDate[5] + ArrDate[6] + ArrDate[7];
		
		
		if(isNaN(intDay)==false){
			if(isNaN(intMon)==false){
				if(isNaN(intYear)==false){
					//*****************Check for Zero in Days
					if(intDay=='00'){
						alert("Invalid Number Of Days");
						eval("document." + FormName +"." + FieldName + ".focus()");
						return false;
					}
					//*****************Check for Zero in Month
					if(intMon=='00'){
						alert("Invalid Number Of Months");
						eval("document." + FormName +"." + FieldName + ".focus()");
						return false;
					}
					if(intYear == "0000"){
						alert("Invalid Year");
						eval("document." + FormName +"." + FieldName + ".focus()");
						return false;	
					}
					if(parseInt(intYear.length) != 4){
						alert("Invalid Year");
						eval("document." + FormName +"." + FieldName + ".focus()");
						return false;	
					}
					//*****************Coparing months with days
					if(parseInt(intDay) > arrMonthDays[parseInt(intMon-1)]) {
	    				alert("Invalid Number Of Days");
	    				eval("document." + FormName +"." + FieldName + ".focus()");
						return false;
					}
					else {
	 					if(intMon > 12) {
		  					alert("Invalid Month")
							eval("document." + FormName +"." + FieldName + ".focus()");
							return false;
 						}
						else {
							if(intMon==2) {
								if(intYear%4==0 || intYear%400==0) {
									if(intDay>29) {
				  						alert("Day can't be greater than 29 in February for a leap year");
										eval("document." + FormName +"." + FieldName + ".focus()");
										return false;	
									}	
								}
			 					else{
									if(intDay>28){
				    					alert("Day can't be greater than 28 in February");
	           		   					eval("document." + FormName +"." + FieldName + ".focus()");
				    					return false;
									}
                 				}
							}
						}		
					}
				}
				else {
					alert("Invalid Date Format");
					eval("document." + FormName +"." + FieldName + ".focus()");
					return false;	
				}		
			}
			else {
				alert("Invalid Date Format");
				eval("document." + FormName +"." + FieldName + ".focus()");
				return false;	
			}	
		}
		else {
			alert("Invalid Date Format");
			eval("document." + FormName +"." + FieldName + ".focus()");
			return false;	
		}	
	}
	else {
		alert("Invalid Date Format.");
		eval("document." + FormName +"." + FieldName + ".focus()");
		return false;	
	}
}


/*----------------------------------------------------------------------------------------------------------------
	Function:	AbortNonRequiredCharacters()
	Purpose:	function to check for non-required characters in the text value
	Inputs:		AStrFormName	   string	 	parameter holding the name of the form			
			AStrTextFieldName  string	 	parameter holding the name of the text field			
			AStrInValidString  string  	        parameter holding the non-required string of characters
			AStrMessage 	   string	 	parameter holding message display text
	Returns:	true/false	boolean			parameter returning true or false for output value
 ---------------------------------------------------------------------------------------------------------------*/

	function AbortNonRequiredCharacters(AStrFormName,AStrTextFieldName,AStrInValidString,AStrMessage){
		var LIntCtr
		var LStrTextFieldRef
		var LStrTextFieldValue
		LStrTextFieldRef = eval("document." + AStrFormName + "." + AStrTextFieldName)
		LStrTextFieldValue = LStrTextFieldRef.value
		
		if (LStrTextFieldValue.indexOf("''") != -1 || LStrTextFieldValue.indexOf('"') != -1){
			alert(AStrMessage)
			LStrTextFieldRef.focus()
			return false;
		}
		
		for(LIntCtr=0; LIntCtr < LStrTextFieldValue.length; LIntCtr++){
			LChrTextFieldValue = LStrTextFieldValue.charAt(LIntCtr)
			if (AStrInValidString.indexOf(LChrTextFieldValue) != -1){
				alert(AStrMessage)
				LStrTextFieldRef.focus()
				return false;
			}
		}
		
		return true;
	}


	function CheckEmail(AStrFormName,AStrTextFieldName){
		var LIntCtr
		var LStrTextFieldRef
		var LStrTextFieldValue
		var LStrSubTextFieldValue
		var LIntAtTheRatePosition
		var LIntDotPosition
		var LIntEmailLength
		var LIntSubEmailLength
		var LArrTextFieldValue
		
		LStrTextFieldRef = eval("document." + AStrFormName + "." + AStrTextFieldName)
		LStrTextFieldValue = LTrim(RTrim(LStrTextFieldRef.value));
		LIntEmailLength = LStrTextFieldValue.length;

		if(parseInt(LIntEmailLength) < 1){
			alert('Email must be entered !');
			LStrTextFieldRef.focus();
			return false;
		}
		LIntAtTheRatePosition = LStrTextFieldValue.indexOf("@");
		if(parseInt(LIntAtTheRatePosition) < 1){
			alert('Email must be valid !');
			LStrTextFieldRef.select();
			return false;
		}
		LArrTextFieldValue = LStrTextFieldValue.split("@");
		LStrSubTextFieldValue = LArrTextFieldValue[1];
		LIntSubEmailLength = LStrSubTextFieldValue.length;
		if(parseInt(LIntSubEmailLength) < 4){
			alert('Email must be valid !');
			LStrTextFieldRef.select();
			return false;
		}
		LIntDotPosition = LStrSubTextFieldValue.indexOf(".")
		if(parseInt(LIntDotPosition) < 1){
			alert('Email must be valid !');
			LStrTextFieldRef.select();
			return false;
		}
		LArrTextFieldValue = LStrTextFieldValue.split(".");
		LStrSubTextFieldValue = LArrTextFieldValue[1];
		LIntSubEmailLength = LStrSubTextFieldValue.length;
		if(parseInt(LIntSubEmailLength) < 1){
			alert('Email must me valid !');
			LStrTextFieldRef.select();
			return false;
		}
		return true;
	}	
	
	
	/*----------------------------------------------------------------------------------------------------------------
	Function:	AbortInValidCharacters()
	Purpose:	function to disable the entry of invalid characters through keyboard
	Inputs:		AStrInValidString  string  	        parameter holding the invalid string of characters
	Returns:	true/false	boolean			parameter returning true or false for output value
 ---------------------------------------------------------------------------------------------------------------*/

	function AbortInValidCharacters(AStrInValidString){
		var LIntCtr
		var LIntAsciiCode

		for(LIntCtr=0; LIntCtr < AStrInValidString.length; LIntCtr++){
			LIntAsciiCode = parseInt(AStrInValidString.charCodeAt(LIntCtr))
			if(event.keyCode == LIntAsciiCode) return false;			    
		}
		if(event.keyCode == 34 || event.keyCode == 39 || event.keyCode == 92) return false;
					
		return true;
	}
	
	function AbortInValidCharactersWithoutQuote(AStrInValidString){
		var LIntCtr
		var LIntAsciiCode

		for(LIntCtr=0; LIntCtr < AStrInValidString.length; LIntCtr++){
			LIntAsciiCode = parseInt(AStrInValidString.charCodeAt(LIntCtr))
			if(event.keyCode == LIntAsciiCode) return false;			    
		}
		if(event.keyCode == 39 || event.keyCode == 92) return false;
					
		return true;
	}


