//Modified By Amir
//Modified Date 08-apr-2005

// JavaScript Document

/* Function list 
1
Function Name 	: Email Validation		
Argument 		: Email field,[1/0]		
return type 	: boolean.
*/

function chk_Email()
{
	a=chk_Email.arguments;
	for(i=0; i<(a.length-1); i=i+2)
	{
		var emailid=a[i].value;
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Email Id Must Be Filled");
			return false;
		}
		else if (emailid.length>0 ) 
		{
			var at = emailid.indexOf ('@', 0);
			var dot = emailid.indexOf ('.', 0);
			if ((at == -1) ||(dot == -1) || (dot < at)||(emailid.indexOf ('@', at+1) != -1)|| (emailid.charAt(dot+1)=='.') || (emailid.indexOf (' ', 0) != -1) || (emailid.match("^(.+)@(.+)$")==null) || (emailid.match("^(.+)@(.+)$")[1].match(/^\"?[\w-_\.]*\"?$/)==null)  || (emailid.match("^(.+)@(.+)$")[2].match(/^[\w-\.]*\.[A-Za-z]{2,4}$/)==null))
			{
				alert("Please enter valid Email Address");
				return false;
			}
			else if ((emailid.substring(0,at).length== 0 ) || (emailid.substring(at+1,dot).length == 0)|| (emailid.substring(dot+1,dot+4).length==0))
			{
				alert("Enter Valid Email Id");
				return false;
			}
			else
			{
				return true;
			}
		}
	}
	return true;	
}


/*
2
Function Name 	: Currency		
Argument 		: Currency field,[1/0]		
return type 	: boolean.
*/


function chk_Currency()
{
	a=chk_Currency.arguments;
	for(i=0; i<(a.length-1); i=i+2)
	{
		//return (a[i].match(/^\+?[0-9]*\.\d{2}$/)!=null) || (a[i].match(/^\-?[0-9]*\.\d{2}$/)!=null);
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the Amount");			
			return false;
		}
		else if (a[i].value.match(/^[0-9]*\.?\d{2}$/)==null)
		{
			alert("Enter the Valid Amount format");
			return false;
		}
	}
	return true;
}

/*
3
Function Name 	: Number		
Argument 		: Number field,[1/0]		
return type 	: boolean.
*/
function chk_Number()
{
	a=chk_Number.arguments;
	for(i=0; i<(a.length-1); i=i+2)
	{
		//return (a[i].match(/^\+?[0-9]*\.\d{2}$/)!=null) || (a[i].match(/^\-?[0-9]*\.\d{2}$/)!=null);
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the Number");
			return false;
		}
		else if (a[i].value.match(/^[0-9]*$/)==null)
		{
			alert("Enter the Valid Number");
			return false;
		}
	}
	return true;	
}

/*
4
Function Name 	: Positive Number		
Argument 		: Positive Number field,[1/0]		
return type 	: boolean.
*/
function chk_PNumber()
{
	a=chk_PNumber.arguments;
	for(i=0; i<(a.length-1); i=i+2)
	{
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the Positive Number");			
			return false;
		}
		else if (a[i].value.match(/^\+?[0-9]*$/)==null)
		{
			alert("Enter the Valid Positive  Number");
			return false;
		}
	}
	return true;
}

/*
5
Function Name 	: Visa Card		
Argument 		: Positive Number field,[1/0]		
return type 	: boolean.
*/
function chk_visa()
{
	var a=chk_visa.arguments;
	var i;
	for(i=0; i<(a.length-1); i+=2)
	{
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the Visa card Number");
			return false;
		}
		if (a[i].value.match(/^[0-9]{16}$/)==null)
		{
			alert("Enter the Valid Visa card  Number");
			return false;
		}
	}
	return true;
}

/*
6
Function Name 	: Master Card		
Argument 		: Positive Number field,[1/0]		
return type 	: boolean.
*/

function chk_Master()
{
	var a=chk_Master.arguments;
	var i;
	for(i=0; i<(a.length-1); i+=2)
	{
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the Master card Number");
			return false;
		}
		if (a[i].value.match(/^[0-9]{16}$/)==null)
		{
			alert("Enter the Valid Master card  Number");
			return false;
		}
	}
	return true;
}

/*
7
Function Name 	: American Express Card		
Argument 		: Positive Number field,[1/0]		
return type 	: boolean.
*/
function chk_A_Ex()
{
	var a=chk_A_Ex.arguments;
	var i;
	for(i=0; i<(a.length-1); i+=2)
	{
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the  American Express card Number");
			return false;
		}
		if (a[i].value.match(/^[0-9]{16}$/)==null)
		{
			alert("Enter the Valid American Express card  Number");
			return false;
		}
	}
	return true;	
}

/*
8
Function Name 	: Discover Card		
Argument 		: Positive Number field,[1/0]		
return type 	: boolean.
*/

function chk_Discover()
{
	var a=chk_Discover.arguments;
	var i;
	for(i=0; i<(a.length-1); i+=2)
	{
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the Discover card Number");			
			return false;
		}
		if (a[i].value.match(/^[0-9]{15}$/)==null)
		{
			alert("Enter the Valid Discover card  Number");
			return false;
		}
	}
	return true;
}

/*
9
Function Name 	: Zip Code		
Argument 		: Zip Code field,[1/0]		
return type 	: boolean.
*/

function chk_zip(){

	var a=chk_zip.arguments;
	var i;
	for(i=0; i<(a.length-1); i+=2)
	{
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the Zip Code");
			
			return false;
		}
		if ((a[i].value.match(/^\w{5,6}$/)==null) || (a[i].value.match(/^\w{5,6}$/)==null))
		{
			alert("Enter the Valid Zip Code");
			return false;
		}
	}
	return true;
}


/*
10
Function Name 	: Phone Number		
Argument 		: Phone Number field,[1/0]		
return type 	: boolean.
*/

function chk_phone()
{
	var a=chk_phone.arguments;
	var i;
	for(i=0; i<(a.length-1); i+=2)
	{
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the Phone Number");
			return false;
		}
		if ((a[i].value.match(/^[0-9]{3}\-[0-9]{3}\-[0-9]{4}$/)==null) && (a[i].value.match(/^[0-9]{3}\x[0-9]{3}\x[0-9]{4}$/)==null) && (a[i].value.match(/^[0-9]{10}$/)==null) )
		{
			alert("Enter the Valid Phone Number");
			return false;
		}
	}
	return true;
}
/*
as Same as Phone validation
*/

function chk_fax()
{
	var a=chk_fax.arguments;
	var i;
	for(i=0; i<(a.length-1); i+=2)
	{
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the Fax Number");
			return false;
		}
		if ((a[i].value.match(/^[0-9]{3}\-[0-9]{3}\-[0-9]{4}$/)==null) && (a[i].value.match(/^[0-9]{3}\x[0-9]{3}\x[0-9]{4}$/)==null) && (a[i].value.match(/^[0-9]{10}$/)==null) )
		{
			alert("Enter the Valid Fax Number");
			return false;
		}
	}
	return true;
}

/*
11
Function Name 	: SSN		
Argument 		: SSN field,[1/0]		
return type 	: boolean.
*/

function chk_ssn(){

	var a=chk_ssn.arguments;
	var i;
	for(i=0; i<(a.length-1); i+=2)
	{
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the SSN Number");
			return false;
		}
		if (a[i].value.match(/^[0-9]{10}$/)==null)
		{
			alert("Enter the Valid SSN Number");		
			return false;
		}
	}
	return true;
}

/*
12
Function Name 	: Age		
Argument 		: Age field,[1/0]		
return type 	: boolean.
*/

function chk_age()
{
	var a=chk_age.arguments;
	var i;
	for(i=0; i<(a.length-1); i+=2)
	{
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the Age");
			return false;
		}
		if (a[i].value.match(/^[0-9]{3}$/)==null)
		{
			alert("Enter the Valid Age");
			return false;
		}
	}
	return true;
}

/*
13
Function Name 	: Date Validate		
Argument 		: Date field,[1/0]		
return type 	: boolean.
*/

function chk_date()
{
	
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year
	var a=chk_date.arguments;
	var i;
	for(i=0; i<(a.length-1); i+=2)
	{
		if ((a[i+1]==1) && (a[i].value.length==0))
		{
			alert("Enter the Date");
			return false;
		}
		var matchArray = a[i].value.match(datePat); // is the format ok?
		if (matchArray == null)
		{
			alert("Date is not in a valid format.")
			return false;
		}
		month = matchArray[1]; // parse date into variables
		day = matchArray[3];
		year = matchArray[4];
		if (month < 1 || month > 12) 
		{ // check month range
			alert("Month must be between 1 and 12.");
			return false;
		}
		if (day < 1 || day > 31) 
		{
			alert("Day must be between 1 and 31.");
			return false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) 
		{
			alert("Month "+month+" doesn't have 31 days!")
			return false;
		}
		if (month == 2)
		{ // check for february 29th
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day>29 || (day==29 && !isleap))
			{
				alert("February " + year + " doesn't have " + day + " days!");
				return false;
			}
		}
	}
	return true;
}

/*
14
Function Name 	: Date Compare		
Argument 		: Start Date field,End Date field		
return type 	: boolean.
*/

function date_comp()
{
	var a=date_comp.arguments;
	if( chk_date(a[0].value) && chk_date(a[1].value))
	{
		date1 = new Date();
		date2 = new Date();
		date1temp = new Date(a[0].value);
		date2temp = new Date(a[1].value);
		date1.setTime(date1temp.getTime());
		date2.setTime(date2temp.getTime());
		if( (date2.getTime() - date1.getTime()) < 0)
		{
			alert(" 'End' date cannot be Lessthan 'Start' date");		
			return false;
		}
		else
		   	return true;
	}
}

/*
	15
	Function Name 	: Trim The space character for to side of the give object
*/

function trim()
{
	var a=trim.arguments;
	a[0].value=a[0].value.replace(/(\s*)$/,"");
	a[0].value=a[0].value.replace(/^(\s*)/,"");
}


function chk_name()
{
	var a=chk_name.arguments;
	if(a[0].value.match(/^([a-z]|[A-Z])+$/)==null)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function chk_char()
{
	var a=chk_char.arguments;
	if(a[0].value.match(/^([a-z]|[A-Z])+|(\s|\.|\,|\')*$/)==null)
	{
		return false;
	}
	else
	{
		return true;
	}
}

/*
Function Name 	: Integer Validation		
Argument 		: Text field,[1/0]		
return type 	: boolean.
*/

function chk_int()
{
	var a=chk_int.arguments;
	var i;
	for(i=0; i<(a.length-1); i+=2){
		
		if ((a[i+1]==1) && (a[i].value.length==0))
			{
			  alert("Please Enter the Value");
			   a[i].focus();
			  return false;
			}
		else
		{		
			a[0].value=a[0].value.toString().replace(/(^\s*)/,"");   
			a[0].value=a[0].value.toString().replace(/(\s*$)/,""); 
		}
			if ((a[i].value.match(/(^[0-9]{1,2}$)/)==null) && (a[i].value.length!=0))
			{
				alert("Enter Numbers only and should be less than 99");
			  	 a[i].focus();	
			  	return false;
			}
	}
	return true;
}


function chk_dateValid()
{
	var a=chk_dateValid.arguments;
	if( chk_date(a[0].value) && chk_date(a[1].value))
	{
		date1 = new Date();
		date2 = new Date();
		date1temp = new Date(a[0].value);
		date2temp = new Date(a[1].value);
		date1.setTime(date1temp.getTime());
		date2.setTime(date2temp.getTime());
		if( (date2.getTime() - date1.getTime()) < 0)
		{
			alert(" Drop-off Date cannot be Lessthan Pick-Up Date");		
			return false;
		}
		else
		   	return true;
	}
	
}

