// functions for Numeric value validation & E-mail id.
function isValidDate(dateStr) {

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

// To require a 4 digit year entry, use this line instead:
// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

	var matchArray = dateStr.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;  // date is valid
}


// Removes leading whitespaces
function LTrim(value) {
	
	//alert(value);
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

function checkUrl(frmObject)
{
	frmObject.value = frmObject.value.trim(); 
	newarray = frmObject.value.split("://");
	//alert(newarray[0].trim())
	if(newarray[0].trim() != "http")
	{
		return false; 
	}
	
	var str = frmObject.value;
	var v = new RegExp();
	v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
	if (!v.test(str)) 
	{
		return false; 
	}
	return true; 
}

// Removes ending whitespaces
function RTrim( value ) {
	//alert(value);
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	return LTrim(RTrim(value));
	
}


function validateString( strValue ) {
  var strMatchPattern =  /^[a-zA-Z\'\- ]+$/;

  var objRegExp = new RegExp( strMatchPattern);
	
	//check if string matches pattern
	return objRegExp.test(strValue);
}


function rmspaces(x) 
{
var leftx = 0;
var rightx = x.length -1;
while ( x.charAt(leftx) == ' ') leftx++;
while ( x.charAt(rightx) == ' ') --rightx;
var q = x.substr(leftx,rightx-leftx + 1); 
if ( (leftx == x.length) && (rightx == -1) ) q ='';
return(q)
};
function isnumeric(data)
 {
 var flag = ( (rmspaces(data)).length > 0);
 var isdot = 0;
  if (flag)
  {
       	for (i=0;i<data.length && flag;i++)
 		if ( data.charAt(i) > '9' || data.charAt(i) < '0')
 		   {
 		     if (data.charAt(i) != '.' || isdot > 0)
 		        {
 		          flag = false;
			}
		       else
		        {
			   isdot = 1;
			}
 		   };
  }
 return flag
 }

function checkfield(data)
{
if (rmspaces(data) == "") return false
else return true;
};

function isemail(data)
{
var flag = false;
if (  (data.indexOf('@',0)  == -1) || (data.indexOf('\\',0)  != -1) || (data.indexOf('/',0)  != -1) ||!checkfield(data) || ( data.indexOf('.',0)  == -1 ) || ( data.indexOf('@')  == 0 ) || ( data.lastIndexOf('.') < data.lastIndexOf('@')  ) || ( data.lastIndexOf('.') == (data.length - 1)  ) ||        ( data.lastIndexOf('@')   !=   data.indexOf('@') ) || (data.indexOf(',',0)  != -1) ||  (data.indexOf(':',0)  != -1) || (data.indexOf(';',0)  != -1)  )return flag
else         {
             var temp = rmspaces(data);
             if (temp.indexOf(' ',0) != -1) flag = true;
             var d3 = temp.lastIndexOf('.') + 4;
             var d4 = temp.substring(0,d3);
             var e2 = temp.length  -  temp.lastIndexOf('.')  - 1 ;
             var i1 = temp.indexOf('@') ;
          if (  (temp.charAt(i1+1) == '.') || ( e2 > 3 )  ||  ( e2 < 2 )    ) flag = true;
          return !flag;
                   };
};
function todate(fday,fmon,fyear , tday,tmon,tyear)
{
var fromdt;
var todt;

   fm = parseInt(fmon) - 1;
   tm = parseInt(tmon) - 1;
   var fromdt = new Date(fyear,fm,fday);
   var todt = new Date(tyear,tm,tday);
 
   if (todt < fromdt)
    	    return false;
       else
    	    return true;
};
function req_eMail(e)
{
				eMail = e.value;
				if ((eMail.indexOf("@") != -1) && (eMail.indexOf(".") != -1)) 
				{
					return true;
				}
				else {
				  		return false;
					}
}


function todate(fday,fmon,fyear,tday,tmon,tyear)
{
var fromdt;
var todt;

   fm = parseInt(fmon) - 1;
   tm = parseInt(tmon) - 1;
   var fromdt = new Date(fyear,fm,fday);
   var todt = new Date(tyear,tm,tday);
 
   if (todt < fromdt)
    	    return false;
       else
    	    return true;
};

//----------------- Get a quick quote functions 

	

	

	function isValidEmail(emailStr) 
	{
			emailStr=trim(emailStr);
			//alert(emailStr);
			var checkTLD=1;
			var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
		//	var emailPat=/^(.+)@(.+)$/;
			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("Email address seems incorrect (check @ and .'s)");
				//alert("Please Enter Valid Email Address.");
				return false;
			}
			var user=matchArray[1];
			var domain=matchArray[2];
			// Start by checking that only basic ASCII characters are in the strings (0-127).
			for (i=0; i<user.length; i++) {
				//alert(user.charCodeAt(i))
				if (user.charCodeAt(i)<65) {
					if ((user.charCodeAt(i)<45)|| (user.charCodeAt>57)) {
				//	alert("Ths Email address contains invalid characters.");
					//alert("Please Enter Valid Email Address.");
					return false;
					}
				}
				
			}
			for (i=0; i<domain.length; i++) {
				if (domain.charCodeAt(i)>127) {
				//	alert("Ths Email address contains invalid characters.");
					//alert("Please Enter Valid Email Address.");
					return false;
				}
			}
			if (user.match(userPat)==null) {
			//	alert("The Email address doesn't seem to be valid.");
				//alert("Please Enter Valid Email Address.");
				return false;
			}
			var IPArray=domain.match(ipDomainPat);
			if (IPArray!=null) {
				for (var i=1;i<=4;i++) {
					if (IPArray[i]>255) {
						//alert("Email address is invalid!");
						//alert("Please Enter Valid Email Address.");
						return false;
					}
				}
				return true;
			}
			var atomPat=new RegExp("^" + atom + "$");
			var domArr=domain.split(".");
			var len=domArr.length;
			for (i=0;i<len;i++) {
				if (domArr[i].search(atomPat)==-1) {
					//alert("Email address does not seem to be valid.");
					//alert("Please Enter Valid Email Address.");
					return false;
			   }	
			}
			if (checkTLD && domArr[domArr.length-1].length!=2 && 
				domArr[domArr.length-1].search(knownDomsPat)==-1) {
				//alert("The address must end in a well-known domain or two letter " + "country.");
				//alert("Please Enter Valid Email Address.");
				return false;
			}
		
		// Make sure there's a host name preceding the domain.
		
			if (len<2) {
				//alert("This Email address is missing a hostname!");
				//alert("Please Enter Valid Email Address.");
				return false;
			}	
			return true;
	}



	function isMultiValidEmail(emailStr) 
	{
			emailStr=trim(emailStr);
			//alert(emailStr);
			var checkTLD=1;
			var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
		//	var emailPat=/^(.+)@(.+)$/;
			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("Email address seems incorrect (check @ and .'s)");
				alert('one or more email addresses entered is invalid');
				return false;
			}
			var user=matchArray[1];
			var domain=matchArray[2];
			// Start by checking that only basic ASCII characters are in the strings (0-127).
			for (i=0; i<user.length; i++) {
				//alert(user.charCodeAt(i))
				if (user.charCodeAt(i)<65) {
					if ((user.charCodeAt(i)<45)|| (user.charCodeAt>57)) {
				//	alert("Ths Email address contains invalid characters.");
					alert('one or more email addresses entered is invalid');
					return false;
					}
				}
				
			}
			for (i=0; i<domain.length; i++) {
				if (domain.charCodeAt(i)>127) {
				//	alert("Ths Email address contains invalid characters.");
					alert('one or more email addresses entered is invalid');
					return false;
				}
			}
			if (user.match(userPat)==null) {
			//	alert("The Email address doesn't seem to be valid.");
				alert('one or more email addresses entered is invalid');
				return false;
			}
			var IPArray=domain.match(ipDomainPat);
			if (IPArray!=null) {
				for (var i=1;i<=4;i++) {
					if (IPArray[i]>255) {
						//alert("Email address is invalid!");
						alert('one or more email addresses entered is invalid');
						return false;
					}
				}
				return true;
			}
			var atomPat=new RegExp("^" + atom + "$");
			var domArr=domain.split(".");
			var len=domArr.length;
			for (i=0;i<len;i++) {
				if (domArr[i].search(atomPat)==-1) {
					//alert("Email address does not seem to be valid.");
					alert('one or more email addresses entered is invalid');
					return false;
			   }	
			}
			if (checkTLD && domArr[domArr.length-1].length!=2 && 
				domArr[domArr.length-1].search(knownDomsPat)==-1) {
				//alert("The address must end in a well-known domain or two letter " + "country.");
				alert('one or more email addresses entered is invalid');
				return false;
			}
		
		// Make sure there's a host name preceding the domain.
		
			if (len<2) {
				//alert("This Email address is missing a hostname!");
				alert('one or more email addresses entered is invalid');
				return false;
			}	
			return true;
	}