	//function to check whether a field is empty or not
	//if empty return true else false
	function isEmptyTextField(Checkfield) {
		if (Checkfield == "") {
			return true;
		}
		else {
			nochar  = 0;
			for(i=0; i < Checkfield.length; i++){
				if(Checkfield.charAt(i) != " ") {
					nochar = 1;
				}
			}
			if (nochar == 0){
				return true;
			}
			else {
				return false;
			}
		}
	}

	function validateString(str ,min , max , mandatory , messages )
		{		
				
				if(mandatory == true)
				{
					if(isEmptyTextField(str))
					{
						str="";

						if(messages[0] != "")
							alert(messages[0]);
						return -1;
					}
				}

				if(min > 0)
				{
					if(str.length < min)
					{	
					
						if(messages[1] != "")
							alert(messages[1]);
						return -1;
					}
				}

				if(max > 0)
				{	
					
					if(str.length>max)
					{	
					
						if(messages[2] != "")
							alert(messages[2]);
						return -1;
					}
				}
				return 1;

		}


	function validateText(control ,min , max , mandatory , messages )
	{
		if(control)
		{
			if(mandatory == true)
			{
				if(isEmptyTextField(control.value))
				{
					control.value="";
					control.focus();

					if(messages[0] != "")
						alert(messages[0]);
					return -1;
				}
			}

			if(min > 0)
			{
				if(control.value.length < min)
				{
					control.focus();
					if(messages[1] != "")
						alert(messages[1]);
					return -1;
				}
			}

			if(max > 0)
			{
				if(control.value.length>max)
				{
					control.focus();
					if(messages[2] != "")
						alert(messages[2]);
					return -1;
				}
			}
			return 1;
		}
	}


	// this function is used for validating length of div tags for hindi users
	function validateText(control ,min , max , mandatory , messages, isHindi)
	    {	
	    	
	        if(control)
	        {
	            if(mandatory == true)
	            {
	                if(isEmptyTextField(control.value))
	                {
	                    control.value="";
	                    if(isHindi == false)
	                    	control.focus();
	
	                    if(messages[0] != "")
	                        alert(messages[0]);
	                    return -1;
	                }
	            }
	
	            if(min > 0)
	            {
	                if(control.value.length < min)
	                {
			    if(isHindi == false)
	                    	control.focus();
	
	                    if(messages[1] != "")
	                        alert(messages[1]);
	                    return -1;
	                }
	            }
	
	            if(max > 0)
	            {
	                if(control.value.length>max)
	                {
	                    if(isHindi == false)
		                    control.focus();
	                    if(messages[2] != "")
	                        alert(messages[2]);
	                    return -1;
	                }
	            }
	            return 1;
	        }
    	}
    	
    	
	function validateSelect(control,message)
	{
		if(control)
		{
			if(control[control.selectedIndex].value == "")
			{
				control.focus();
				if(message != "")
					alert(message);
				return -1;
			}
		}	
	}


	function validateCheckBox(control,message) {

		if(control){

			var anyCheckBoxChecked = 'false';
			if(control.length) {

				for (i=0; i < control.length ; i++)	{

					if(control[i].checked==true) {
						anyCheckBoxChecked = true;
						break;
					}
				}

			} else {
				if(control.checked==true)
					anyCheckBoxChecked = true;
			}

			if(anyCheckBoxChecked == "false") {

				if(message != "")
					alert(message)
				return -1;
			}
		}
	}


	function checkFloat( control , message )
	{
		if (control) {
			var data = control.value;
			var floatValue = new Number(data);
			if(isNaN(floatValue))
			{
				control.focus();
				if(message != "")
					alert(message);
				return -1;
			}
			else
			{
				return 1;
			}
		}

	}
	
	function checkNonNumeric( control , message )
	{
		if (control) {
			var data = control.value;
			var floatValue = new Number(data);
			if(!isNaN(floatValue))
			{
				control.focus();
				if(message != "")
					alert(message);
				return -1;
			}
			else
			{
				return 1;
			}
		}

	}	

	function checkInteger( control , message )
	{
	
		if (control) {
			var data = new String(control.value);

			for(var i = 0 ; i < data.length; i++)
			{
				if(data.charAt(i)<'0' || data.charAt(i) > '9')
				{
					control.focus();
					if(message != "")
						alert(message);
					return -1;
				}
	
			}
	
			return 1;
		}
	}

	function checkAlphaNumeric( control , message)
	{
		if(control) {
			var data = new String(control.value);
			var ch ;
		
			for(var i = 0 ; i < data.length; i++)
			{
				ch = data.charAt(i);
				if(ch >= '0' && ch <= '9')
					continue;
				if(ch >= 'a' && ch <= 'z')
					continue;
				if(ch >= 'A' && ch <= 'Z')
					continue;
				control.focus();
				
				if(message != "")
					alert(message);
			}
		}
	}

	//Use this when Only one text field is required out of three text fields in the page
	//Ex: Use this If you have firstname, middlename, lastname and only one of these is required...
	function validateMultipleTextFields( control1 , control2, control3 , message )
	{
		if (control1.value == "" && control2.value == "" && control3.value == "") {
			control1.focus();

			if(message != "") {
				alert(message);
			}

			return -1;
		} else {
			return 1;
		}

	}


	// 1 - "Email address seems incorrect (check @ and .'s)"
	// 2 - "Email IP address is invalid!"
	// 3 - "The domain name is not valid."
	// 4 - "The email address must end in a three-letter domain, or two letter country."
	// 5 - "This address is missing a hostname!"
	
	function IsEmail(ctrl, messages) 
	{
		var emailStr = ctrl.value;
		var emailPat=/^(.+)@(.+)$/;
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var quotedUser="(\"[^\"]*\")";
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		var atom=validChars + '+';
		var word="(" + atom + "|" + quotedUser + ")";
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
		var matchArray=emailStr.match(emailPat);
		
		if (matchArray==null) {
			alert(messages[0]);
			return false;
		}

		var user=matchArray[1]
		var domain=matchArray[2]
 
		if (user.match(userPat)==null) {
			alert("Invalid  Email username .");
			return false;
		}

		var IPArray=domain.match(ipDomainPat);

		if (IPArray!=null) {
			for (var i=1;i<=4;i++) {
			     if (IPArray[i]>255) {
			         alert(messages[1]);
				 return false;
			     }
			}
		
			return true;
		}
 
		var domainArray=domain.match(domainPat)
		
		if (domainArray==null) {
			alert(messages[2]);
			return false;
		}
 
		var atomPat=new RegExp(atom,"g");
		var domArr=domain.match(atomPat);
		var len=domArr.length;

		if (domArr[domArr.length-1].length<2 || 
			domArr[domArr.length-1].length>3) {
			alert(messages[3]);
			return false;
		}

		if (len<2) {
			alert(messages[4]);
			return false;
		}

		return true;
	}
	
// Check if given date is valid
// @param Array of messages
//	1. Invalid Date Format
//	2. Invalid Date
//	3. Please enter a date > year 1753
function checkDate(date,msgArray){
	var err=-1
	a=date;
	if (a.length != 10 ) {
		if(a.length == 9) {
			a = "0" + a;
		} else {
			err=0
		}
	}
	d = a.substring(0, 2)// day
	c = a.substring(2, 3)// '/'
	b = a.substring(3, 5)// month
	e = a.substring(5, 6)// '/'
	f = a.substring(6, 10)// year

	//basic error checking
	if (c != '/') err = 0
	if (e != '/') err = 0
	if(!checkNumber(b)) err =0;
	if(!checkNumber(d)) err =0;
	if(!checkNumber(f)) err =0;
	
	if(err != -1) {
		alert(msgArray[err]);
		return false;
	}
	
	if (b<1 || b>12) err = 1
	if (d<1 || d>31) err = 1
	if (f<0 || f>9999) err = 1
	
	if(err != -1) {
		alert(msgArray[err]);
		return false;
	}
	
	//advanced error checking
	
	// months with 30 days
	if (b=="04" || b=="06" || b=="09" || b=="11"){
		if (d=="31") err=1
	}

	// february, leap year
	if (b=="02"){
		// feb
		var g=parseInt(f/4)
		if (isNaN(g)) {
			err=1
		}
		
		if (d>29) err=1
		if (d=="29" && (f%4!=0)) err=1
		if (d=="29" && f%100==0 && f%400!=0) err=1
	}

	if (err==1){
		alert(msgArray[1]);
		return false;
		
	} else{
		if(f<1753) {
			alert(msgArray[2]);
			return false;
		}
		return true;
	}

}

// This function is used to compare two dates.'
// Parameters
// 	fromDate - The String representation of the From Date
// 	toDate 	 - The String representation of the To Date
//  separator - The String/ char that is used as a separator
//
// Returns
// a number >0 if To date is Greater than From Date
// a number <0 if From Date is Lesser than From Date
// 0 if both are equal
//
// manomohan_k@mindtree.com


function compareDates(fromDate,toDate,separator)
{
	// the dates are expected in the format "DD/MM/YYYY"
	// or DD-MM-YYYY
	// any separator can be used , please pass the separator as the 3rd param to this function

	var fYear , fMonth , fDate;
	var tYear , tMonth , tDate;

	var dateSplit;

	dateSplit = fromDate.split(separator);
	fDate = dateSplit[0];
	fMonth=dateSplit[1]-1; // this is becos the constr of Date expects the month to base 0
	fYear = dateSplit[2];

    //alert(fYear+" "+fMonth+" "+fDate+" ");


	dateSplit = toDate.split(separator);
	tDate = dateSplit[0];
	tMonth=dateSplit[1]-1;
	tYear = dateSplit[2];
    //alert(tYear+" "+tMonth+" "+tDate+" ");

	var cond = 0;
	var From , To , diff;


		From = new Date(fYear,fMonth,fDate);
		To = new Date(tYear,tMonth,tDate);

	diff = To - From;

	return diff;
	// returns >0 if To date is Greater than From Date
	// returns <0 if To Date is Lesser than From Date
	// returns 0 if both are equal


}

// This function is used to check if the number is valid or not
// Return true  if input is a valid number 
// Return false if input is not a valid number

	function checkNumber( num)
	{
		if (num!="") {
			var data = new String(num);

			for(var i = 0 ; i < data.length; i++)
			{
				if(data.charAt(i)<'0' || data.charAt(i) > '9')
				{
					return false;
				}

			}

			return true;
		}

		return false; // if (num=="")
	}


