/* This function gives an alert message when a value is entered without a numeric as its first value */

function startsWithNumeric(formname, controlname){f=0;if(document.forms[formname].elements[controlname].value.length > 1 ){var digit='0123456789';myChar=document.forms[formname].elements[controlname].value.charAt(0);if(digit.indexOf(myChar)!=-1){f = 1;}else{f=0;}}if(f==1){return true ;}else{return false;}}

//-----------------------------------------------------------------------------------------
/* This function gives an alert message when the a space is entered in the text box  */

function isSpace(formname, controlname){for(i=0;i<document.forms[formname].elements[controlname].value.length;i++){ c=document.forms[formname].elements[controlname].value.charAt(i);if(c==' '){return false;}}return true;}

//-----------------------------------------------------------------------------------------
/* Left trim function */

function ltrim(formname, controlname){ var len = document.forms[formname].elements[controlname].value.length; var temp = '';var i;for (i=0;i<len && (c=document.forms[formname].elements[controlname].value.charAt(i)) == ' '; i++);for (p=i;p<len;p++) { temp = temp + document.forms[formname].elements[controlname].value.charAt(p); }document.forms[formname].elements[controlname].value=temp;  return true;}

//-----------------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------
/* Trim function which trims leading zeros*/
function lzerotrim(str) 
{
	str = str + '';
	var i=0;
	var j=0;
	j=str.length-1;
	for (i=0;i < str.length;i++) 
		{
			if (str.charAt(i) != '0')  break;   
		}   
	if (j < i) j = i-1;	
	str = str.substring(i, j+1);  

	return str; 
}
//-----------------------------------------------------------------------------------------
/* Right trim function */

function rtrim(formname, controlname){    var len = document.forms[formname].elements[controlname].value.length;var temp = '';  var i; for (i=(len-1);i>=0 && (c=document.forms[formname].elements[controlname].value.charAt(i)) == ' '; i--);for (p=i;p>=0;p--) {temp = temp + document.forms[formname].elements[controlname].value.charAt(p);}var fin = ''; for (j=(temp.length-1);j>=0;j--){ fin = fin + temp.charAt(j);}document.forms[formname].elements[controlname].value=fin;return true;}

//-----------------------------------------------------------------------------------------
/* Trim function which accepts the formname and controlname and returns the string back to the control after triming the string*/

		function trim(formname, controlname)
		{
			var val = '' + document.forms[formname].elements[controlname].value.toString();
			var words = val.split(' ');
			var text = '';
			for (var i=0; i < words.length; i++)
				if (words[i] != '') 
					text += ' ' + words[i];
				text = text.substring(1); 
				document.forms[formname].elements[controlname].value=text; 
			return true;
		}

//-----------------------------------------------------------------------------------------
/* Trim function which accepts a string as input and returns a trimmed string*/
function TrimString(str) 
{
	str = str + '';
	var i=0;
	var j=0;

	for (i=0;i < str.length;i++) 
		{
			if (str.charAt(i) != ' ')  break;   
		}   
	for (j=str.length - 1;j >= 0; j--) 
		{ 
			if (str.charAt(j) != ' ') break; 
		}
				
	if (j < i) j = i-1;	
	str = str.substring(i, j+1);  
	return str; 
}


//----------------------------------------------------------------------------------------------
/* This function accepts only alphabets,spaces and a dot(generally a name has alphabets,spaces and a dot in it) into the text box */

function isName(formname, controlname){f = 1;  for(i=0;i<document.forms[formname].elements[controlname].value.length;i++) {c=document.forms[formname].elements[controlname].value.charAt(i);if( (c>='a' && c<='z' ) || (c>='A' && c<='Z' ) || c==' ' || c=='.'){f = 1;} else {f = 0; break;} }if(f==0){return false; }else{return true;}}

//-----------------------------------------------------------------------------------------
/* This function accepts only alphabets and spaces in the text box */

function isAlpha(formname, controlname){f = 1; for(i=0;i<document.forms[formname].elements[controlname].value.length;i++) {c=document.forms[formname].elements[controlname].value.charAt(i);if( (c>='a' && c<='z' ) || (c>='A' && c<='Z' ) || c==' '){f = 1;}else{f = 0; break;}}if(f==0){return false;}else{return true;}}

//-----------------------------------------------------------------------------------------
/* This function validates a date in these formats(dd/mmm/yyyy,dd/mmm/yyyy,dd-mmm-yyyy,dd-mmm-yyyy) , it returns in dd-mmm-yyyy format*/

function dateValidate(formName,controlName) {if(document.forms[formName].elements[controlName].value.length<11){    return false;}var datefield = document.forms[formName].elements[controlName].value;if (chkdate(formName,controlName) == false) {return false;}else {return true;   }}function chkdate(formName,controlName) {/*var strDatestyle = 'US'; United States date style*/var strDatestyle = 'EU';  /*European date style*/var strDate;var strDateArray;var strDay;var strMonth;var strYear;var intday;var intMonth;var intYear;var booFound = false;var datefield = document.forms[formName].elements[controlName].value;var strSeparatorArray = new Array('-',' ','/','.');var intElementNr;var err = 0;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; var strDayArray=new Array(31);strDayArray[0] = '01';strDayArray[1] = '02';strDayArray[2] = '03';strDayArray[3] = '04';strDayArray[4] = '05';strDayArray[5] = '06';strDayArray[6] = '07';strDayArray[7] = '08';strDayArray[8] = '09';strDayArray[9] = '10';strDayArray[10] = '11';strDayArray[11] = '12';strDayArray[12] = '13';strDayArray[13] = '14';strDayArray[14] = '15';strDayArray[15] = '16';strDayArray[16] = '17';strDayArray[17] = '18';strDayArray[18] = '19';strDayArray[19] = '20';strDayArray[20] = '21';strDayArray[21] = '22';strDayArray[22] = '23';strDayArray[23] = '24';strDayArray[24] = '25';strDayArray[25] = '26';strDayArray[26] = '27';strDayArray[27] = '28';strDayArray[28] = '29';strDayArray[29] = '30';strDayArray[30] = '31';if (strDate.length < 1) {return true;}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 (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)) {for (i = 0;i<31;i++) {if (strDay.toUpperCase() == strDayArray[i].toUpperCase()) {intday = i+1;strDay = strDayArray[i];i = 31;   }}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;}}}if (strDatestyle == 'US') {document.forms[formName].elements[controlName].value = strDayArray[intday-1] + '/' + strMonthArray[intMonth-1] + '/' + strYear;}else {document.forms[formName].elements[controlName].value = strDayArray[intday-1] + '/' + strMonthArray[intMonth-1] + '/' + 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;}


//Added by Karthi for ASP.NET - Master PAge complience
//-----------------------------------------------------------------------------------------
/* This function validates a date in these formats(dd/mmm/yyyy,dd/mmm/yyyy,dd-mmm-yyyy,dd-mmm-yyyy) , it returns in dd-mmm-yyyy format*/

function dateValidateNew(controlName)
 {if(document.getElementById(controlName).value.length<11){    return false;}var datefield = document.getElementById(controlName).value;if (chkdateNew(controlName) == false) {return false;}else {return true;   }}function chkdateNew(controlName) {/*var strDatestyle = 'US'; United States date style*/var strDatestyle = 'EU';  /*European date style*/var strDate;var strDateArray;var strDay;var strMonth;var strYear;var intday;var intMonth;var intYear;var booFound = false;var datefield = document.getElementById(controlName).value;var strSeparatorArray = new Array('-',' ','/','.');var intElementNr;var err = 0;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; var strDayArray=new Array(31);strDayArray[0] = '01';strDayArray[1] = '02';strDayArray[2] = '03';strDayArray[3] = '04';strDayArray[4] = '05';strDayArray[5] = '06';strDayArray[6] = '07';strDayArray[7] = '08';strDayArray[8] = '09';strDayArray[9] = '10';strDayArray[10] = '11';strDayArray[11] = '12';strDayArray[12] = '13';strDayArray[13] = '14';strDayArray[14] = '15';strDayArray[15] = '16';strDayArray[16] = '17';strDayArray[17] = '18';strDayArray[18] = '19';strDayArray[19] = '20';strDayArray[20] = '21';strDayArray[21] = '22';strDayArray[22] = '23';strDayArray[23] = '24';strDayArray[24] = '25';strDayArray[25] = '26';strDayArray[26] = '27';strDayArray[27] = '28';strDayArray[28] = '29';strDayArray[29] = '30';strDayArray[30] = '31';if (strDate.length < 1) {return true;}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 (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)) {for (i = 0;i<31;i++) {if (strDay.toUpperCase() == strDayArray[i].toUpperCase()) {intday = i+1;strDay = strDayArray[i];i = 31;   }}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;}}}if (strDatestyle == 'US') {document.getElementById(controlName).value = strDayArray[intday-1] + '/' + strMonthArray[intMonth-1] + '/' + strYear;}else {document.getElementById(controlName).value = strDayArray[intday-1] + '/' + strMonthArray[intMonth-1] + '/' + 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;}



//-----------------------------------------------------------------------------------------
/* This function validates for email values */

function emailValidate(emailval) 
{
var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
var check=/@[\w\-]+\./;
var checkend=/\.[a-zA-Z]{2,4}$/;
emailad=emailval;    
if(((emailad.search(exclude) != -1)||    (emailad.search(check)) == -1)||    
(emailad.search(checkend) == -1))
{
return false; }
else 
{ 
return true;
}
}

function emailValidate(formName,controlName) 
{
var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
var check=/@[\w\-]+\./;
var checkend=/\.[a-zA-Z]{2,4}$/;
emailad=document.forms[formName].elements[controlName].value;    
if(((emailad.search(exclude) != -1)||    (emailad.search(check)) == -1)||    
(emailad.search(checkend) == -1))
{
return false; }
else 
{ 
return true;
}
}

//-----------------------------------------------------------------------------------------
/* This function gives an error message if the first letter is not capital */

function initCaps(formName, controlName){ var index;var tmpStr;var tmpChar;var preString;var pstString;var strlen; tmpStr = document.forms[formName].elements[controlName].value.toLowerCase(); strLen = tmpStr.length;if (strLen > 0)  {for (index = 0; index < strLen; index++) {   if (index == 0)     {   tmpChar = tmpStr.substring(0,1).toUpperCase();    pstString = tmpStr.substring(1,strLen); tmpStr = tmpChar + pstString;   } else    {   tmpChar = tmpStr.substring(index, index+1); if (tmpChar == ' ' && index < (strLen-1)) {   tmpChar = tmpStr.substring(index+1, index+2).toUpperCase(); preString = tmpStr.substring(0, index+1); pstString = tmpStr.substring(index+2,strLen); tmpStr = preString + tmpChar + pstString; }        }}}    document.forms[formName].elements[controlName].value=tmpStr; }

//-----------------------------------------------------------------------------------------
/* This function converts the text to lower case */

function lower(formName,controlName) {tmpStr = document.forms[formName].elements[controlName].value.toLowerCase();document.forms[formName].elements[controlName].value=tmpStr; }

//-----------------------------------------------------------------------------------------
/* This function accepts three parameters(form name, control name and maximum value to be checked for).It gives an error message if the value entered in the text box is greater than the max value. */

function maxValue(formName,controlName,max){x=document.forms[formName].elements[controlName].value;if(x>max){return false;}}

//-----------------------------------------------------------------------------------------
/* This function accepts three parameters(form name, control name and max length of the text entered to be checked for).It gives an error message if the length of the text entered in the text box is greater than the length value. */

function  minLength(formName,controlName,length){x=document.forms[formName].elements[controlName].value.length;if(x<length){return false;}  }

//-----------------------------------------------------------------------------------------
/* This function accepts three parameters(form name, control name and minimum value to be checked for).It gives an error message if the value entered in the text box is less than the min value. */

function minValue(formName,controlName,min){x=document.forms[formName].elements[controlName].value;if(x<min){return false;}}

//-----------------------------------------------------------------------------------------
/* This function gives an alert message if the text box is left blank */

function  notBlank(formName,controlName){x=document.forms[formName].elements[controlName].value.length;if(x==0){ return false;}flag=0;y=document.forms[formName].elements[controlName].value;for( i=0;i<x;i++){       if(y.charAt(i)!=' '){      flag=1;      break;    }   }if(flag==0){ return false;} }

//******************************************
/* This function accepts numeric and decimal point for validation..It does not check for the 
   zeros after decimal points.	
*/
function onlyFloat(formname, controlname)
{
	x=document.forms[formname].elements[controlname].value;
	if((x.indexOf(".",x.indexOf(".")+1))>-1)
		return false;
	flag=0;
	y=document.forms[formname].elements[controlname].value;
	x=document.forms[formname].elements[controlname].value.length;
	for( i=0;i<x;i++)
	{
		if ((y.charAt(i)>='0' && y.charAt(i) <='9') || y.charAt(i)=='.')
		{}
		else
		{
			flag=1;
			break;
		}
	}
	if(flag==1)
	{
		return false;
	}
	return true;
}

//******************************************
/* This function accepts numeric and decimal point for validation..It does not check for the 
   zeros after decimal points.It allows Negative Values	
*/
function onlyFloatAllowNegative(formname, controlname)
{
	x=document.forms[formname].elements[controlname].value;
	if((x.indexOf(".",x.indexOf(".")+1))>-1)
		return false;
	flag=0;
	y=document.forms[formname].elements[controlname].value;
	x=document.forms[formname].elements[controlname].value.length;
	for( i=0;i<x;i++)
	{
		if ((y.charAt(i)>='0' && y.charAt(i) <='9') || y.charAt(i)=='.')
		{}
		else
		{
			flag=1;
			break;
		}
	}
	if(flag==1 & y.charAt(0)!='-')
	{
		return false;
	}
	return true;
}



//******************************************

//-----------------------------------------------------------------------------------------
/* This function gives an error message if the value entered in the text box is other than numbers 
	It will not accept decimals but accept negative numbers. It will round the number and return.
*/

function onlyNum(formName,controlName)
{
	x=document.forms[formName].elements[controlName].value;
	flag=0;
	y=document.forms[formName].elements[controlName].value;
	x=document.forms[formName].elements[controlName].value.length;
	for( i=0;i<x;i++)
	{
		if(y.charAt(i)>='0' && y.charAt(i) <='9' )
		{}
		else
		{
			flag=1;
			break;
		}
	}
	if(y.charAt(0)=='-')
	if(y.charAt(1)>='0' && y.charAt(1) <='9' )
	{
		flag=0;
	}
	if(flag==1)
	{
		return false;
	}
	document.forms[formName].elements[controlName].value=Math.round(document.forms[formName].elements[controlName].value);
}

//-----------------------------------------------------------------------------------------
/* This function gives an error message if the value entered in the text box is other than numbers. 
	It will not accept negative and decimal numbers.	
*/

function onlyNumNoRound(formName,controlName)
{
	x=document.forms[formName].elements[controlName].value;
	flag=0;
	y=document.forms[formName].elements[controlName].value;
	x=document.forms[formName].elements[controlName].value.length;
	for( i=0;i<x;i++)
	{
		if(y.charAt(i)>='0' && y.charAt(i) <='9' )
		{}
		else
		{
			flag=1;
			break;
		}
	}
	//if(y.charAt(0)=='-')
	//if(y.charAt(1)>='0' && y.charAt(1) <='9' )
	//{
	//	flag=0;
	//}
	if(flag==1)
	{
		return false;
	}
	document.forms[formName].elements[controlName].value=document.forms[formName].elements[controlName].value;
	return true;
}
//-----------------------------------------------------------------------------------------
/* This function gives an error message if the value entered in the text box is anything other than positive numbers */

function onlyPositive(formName, controlName)
{

	x=document.forms[formName].elements[controlName].value;
	flag=0;
	y=document.forms[formName].elements[controlName].value;
	x=document.forms[formName].elements[controlName].value.length;
	for( i=0;i<x;i++)
	{
		if(y.charAt(i)>='0' && y.charAt(i) <='9' )
		{}
		else
		{
			flag=1;
			break;
		}
	}
	if(y.charAt(0)=='-')
	{
		flag=2;
	}
	if(flag==1)
	{
		return false;
	}
	if(flag==2)
	{
		return false;
	}
	document.forms[formName].elements[controlName].value=Math.round(document.forms[formName].elements[controlName].value);
}

//-----------------------------------------------------------------------------------------
/* This function converts the text to upper case */

function upper(formName,controlName) { tmpStr = document.forms[formName].elements[controlName].value.toUpperCase(); document.forms[formName].elements[controlName].value=tmpStr; }

//-----------------------------------------------------------------------------------------
/* This function gives an alert message when the value entered in the text box is other than alphabets and numbers. */

function alphaNum(formname,controlname,specialcharacter) {var valid = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' + specialcharacter;var ok = 'yes';var temp;for (var i=0; i<document.forms[formname].elements[controlname].value.length; i++) {temp = '' + document.forms[formname].elements[controlname].value.substring(i, i+1);if (valid.indexOf(temp) == '-1') ok = 'no';}if (ok == 'no') {return false;   }return true;}

function NumWithSplChars(formname,controlname,specialcharacter) {var valid = '0123456789' + specialcharacter;var ok = 'yes';var temp;for (var i=0; i<document.forms[formname].elements[controlname].value.length; i++) {temp = '' + document.forms[formname].elements[controlname].value.substring(i, i+1);if (valid.indexOf(temp) == '-1') ok = 'no';}if (ok == 'no') {return false;   }return true;}
//------------------------------------------------------------------------------------------
/* This function compares two dates..
	if first date (controlname1) > second date (controlname2) it returns 1
	if first date (controlname1) = second date (controlname2) it returns 0
	if first date (controlname1) < second date (controlname2) it returns -1	
	else if the date is invalid it returns false

	It also validates the date using dateValidate() function. 	
*/

function DateCompare(formname,controlname1,controlname2)
{
	if ((dateValidate(formname,controlname1)==true) && (dateValidate(formname,controlname2)==true))
	{
		var fd=document.forms[formname].elements[controlname1].value;
		var sd=document.forms[formname].elements[controlname2].value;
		fdd=fd.substring(0,2);
		fmon=GetMonth(fd.substring(3,6));
		fyyyy=fd.substring(7,11);

		sdd=sd.substring(0,2);
		smon=GetMonth(sd.substring(3,6));
		syyyy=sd.substring(7,11);
		
		if(fyyyy>syyyy)
			return 1;
		else if(syyyy>fyyyy)
			return -1;
		if(fmon>smon)
			return 1;
		else if(smon>fmon)
			return -1;
		if(fdd>sdd)
			return 1;
		else if(sdd>fdd)
			return -1;
			
		return 0;
	}
	return 2;
}
function GetMonth(monthName)
{
	var mth=new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");
	for(var i=0; i<12;i++)
	{
		if(mth[i]==monthName.toUpperCase())
			return i;
	}
}
function GetMonthName(month)
{
	var mth=new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");
	return mth[month-1].toUpperCase();
}


//----------------------------------------------------------------------------------------

// Auth: Gopal 09/Aug/2001
function isDateValid(formName,controlName)
{
	if (dateValidate(formName,controlName)==true)
		return true;
	else
		return false;
	
}

// Auth: Gopal 09/Aug/2001
function isNotBlank(formName,controlName)
{
	if (isBlank(formName,controlName))
		return false;
	else
		return true;
}

// Auth: Gopal 09/Aug/2001
function isBlank(formName,controlName)
{
	var txt1;
	trim(formName,controlName);
	txt1=document.forms[formName].elements[controlName].value;
	if (txt1=="")
		return true;
	else
 		return false;

}

// Auth: Gopal 09/Aug/2001
// obsolete . NOT TO use   this
// USE Datecompare instead.
function isDate1GTDate2(formName,controlName1,controlName2) {
	date1 = new Date();
	date2 = new Date();
	diff  = new Date();
	formName=formName;
	controlName1=controlName1;
	controlName2=controlName2;
	
	str=document.forms[formName].elements[controlName1].value; 
	if (dateValidate(formName,controlName1)) 
	{ 

		if (str.length>10) 
		{
			    strMonth = str.substr(0, 3);
				strDay = str.substr(4, 2);
				strYear = str.substr(7,4);
			
				
				if(strMonth.toUpperCase()=="JAN")	strMonth="01";
				if(strMonth.toUpperCase()=="FEB")	strMonth="02";
				if(strMonth.toUpperCase()=="MAR")	strMonth="03";
				if(strMonth.toUpperCase()=="APR")	strMonth="04";
				if(strMonth.toUpperCase()=="MAY")	strMonth="05";
				if(strMonth.toUpperCase()=="JUN")	strMonth="06";
				if(strMonth.toUpperCase()=="JUL")	strMonth="07";
				if(strMonth.toUpperCase()=="AUG")	strMonth="08";
				if(strMonth.toUpperCase()=="SEP")	strMonth="09";
				if(strMonth.toUpperCase()=="OCT")	strMonth="10";
				if(strMonth.toUpperCase()=="NOV")	strMonth="11";
				if(strMonth.toUpperCase()=="DEC")	strMonth="12";
				
				strf=strMonth+'/'+strDay+'/'+strYear				
				date1temp = new Date(strf);
				date1.setTime(date1temp.getTime());
		}
		
		else
		{
		date1temp = new Date(str);
		date1.setTime(date1temp.getTime());
		}
	}
	else 
	{
		return false;
	}
	str1=document.forms[formName].elements[controlName2].value;
	if (dateValidate(formName,controlName2)) 
	{ 
	if (str1.length>10) 
		{
			strMonth = str1.substr(0, 3);
			strDay = str1.substr(4, 2);
			strYear = str1.substr(7,4);   
		
				if(strMonth.toUpperCase()=="JAN")	strMonth="01";
				if(strMonth.toUpperCase()=="FEB")	strMonth="02";
				if(strMonth.toUpperCase()=="MAR")	strMonth="03";
				if(strMonth.toUpperCase()=="APR")	strMonth="04";
				if(strMonth.toUpperCase()=="MAY")	strMonth="05";
				if(strMonth.toUpperCase()=="JUN")	strMonth="06";
				if(strMonth.toUpperCase()=="JUL")	strMonth="07";
				if(strMonth.toUpperCase()=="AUG")	strMonth="08";
				if(strMonth.toUpperCase()=="SEP")	strMonth="09";
				if(strMonth.toUpperCase()=="OCT")	strMonth="10";
				if(strMonth.toUpperCase()=="NOV")	strMonth="11";
				if(strMonth.toUpperCase()=="DEC")	strMonth="12";
				
			str1f=strMonth+'/'+strDay+'/'+strYear
			date2temp = new Date(str1f);
			date2.setTime(date2temp.getTime());
		}
		else
		{	
			date2temp = new Date(str1);
			date2.setTime(date2temp.getTime());
		}
	}
	else
	{
		return false;
	}
	x=Math.abs(date1.getTime());
	y=Math.abs(date2.getTime());
		

	if(x>y){return true;}

	//if(x>y){alert(msg1);return true;}
	////{alert("start date > actual start date");return true; }
	
	//else if(y>x){alert(msg2);return false;}
	////{alert("start date should be greater than actual start date");return false; }
	
	////else if(x=y)
	////{alert("start date = actual start date");return true; }
	
}


function isValidKey(formname,cntlname)
{
	// enter the allowable characters in the given list between ' ~`!@#$%^&*()_-+=|\}]{[;:?//>.<,' 
	trim(formname,cntlname);
	//if (alphaNum(formname,cntlname,'`!@#$%&*()_-+=|\}]{[;?//.')==false)
	if (alphaNum(formname,cntlname,'')==false)
		{
		return false;
		}else
			return true;
}

//*** This function returns true if length of the TextArea is greater than the given MaxLength value ***
function ValidateTextArea(formname,controlname,maxlength)
{
	var TextValue;
	var TextLen;
	TextValue = document.forms[formname].elements[controlname].value;
	TextLen = TextValue.length;
	if (TextLen > maxlength)			
		{
			return true;
		}
	else
		{
			return false;
		}
}

//*** This Function Fill a Combo takes a array as parameter

function FillCombo(ArrayList,formName,listName,IdValue,DefaultValue)
{
 var RowValue=new Array()
 var IdList=new Array()
 var ValueList=new Array()
 var i;
 document.forms[formName].elements[listName].length=0
 for(i=0;i<ArrayList.length;i++)
  {
	RowValue=ArrayList[i].split('^^')
	
	if (RowValue[0]==IdValue)
	{
		IdList=RowValue[1].split('~~')
		ValueList=RowValue[2].split('~~')
	}
  }
	    
		document.forms[formName].elements[listName].length=document.forms[formName].elements[listName].length+1
		document.forms[formName].elements[listName][0].text=DefaultValue
		document.forms[formName].elements[listName][0].value='0'
	
	for(i=0;i<IdList.length;i++)
		{
		document.forms[formName].elements[listName].length=document.forms[formName].elements[listName].length+1;
		document.forms[formName].elements[listName][i+1].text=ValueList[i];
		document.forms[formName].elements[listName][i+1].value=IdList[i];
		}
		if (listName=='cmb_BillTo')
		{
			if(document.forms[formName].elements[listName].length > 1)
				document.forms[formName].elements[listName][1].selected = true;
			else
				document.forms[formName].elements[listName][0].selected = true;
		}
    
}

//Return a position of objectArray if value exists. Compares 2 Attributes in the Object
//Returns -1 if not found.
function findInObjAry2(objFindAry,FindCol1,FindCol2, FindVal1,FindVal2)
{
	var i;
	var retPosi;
	retPosi = -1;
	for (i=0;i<objFindAry.length;i++)
	{
		if (objFindAry[i][FindCol1] == FindVal1 && objFindAry[i][FindCol2] == FindVal2)
			{ 
				retPosi = i;
				break;
			}
	}
	return retPosi;
}


function dispError(formname,fieldname,errno)
{
	if( isNaN(errno))
	{
		alert(errno);
	}
	else
		alert(geterrormessage(errno));
	if (document.forms[formname].elements[fieldname].type == 'text' | document.forms[formname].elements[fieldname].type == 'textarea')
	{
		document.forms[formname].elements[fieldname].select();	
	}
	document.forms[formname].elements[fieldname].focus();
	return;
}
//
function chkFromToDates(formname,dateFrom,dateTo)
{
	if(isNotBlank(formname,dateFrom) && isDateValid(formname,dateFrom)==false)
	{
		dispError(formname,dateFrom,2117);
		return false;
	}
	if(isNotBlank(formname,dateTo) && isDateValid(formname,dateTo)==false)
	{
		dispError(formname,dateTo,2119);
		return false;
	}
	if(DateCompare(formname,dateTo,dateFrom)==-1)
	{
		dispError(formname,dateFrom,7029);
		return false;
	}
	return true;
}

//Author - Yogesh
//Dates passed should be valid dates.
//DateDiff is calculated as date2 - date1.
function DateDiff(date1, date2)
{
	var objDate1, objDate2, date1Arr, date2Arr, diff;
	var date1Day, date1Month, date1Year, date2Day, date2Month, date2Year;

	//Get the day, month & year of the passed dates.
	date1Arr	=	date1.split('/');
	date1Day	=	Math.round(date1Arr[0]);
	date1Month	=	Math.round(GetMonth(date1Arr[1]));
	date1Year	=	Math.round(date1Arr[2]);

	date2Arr	=	date2.split('/');
	date2Day	=	Math.round(date2Arr[0]);
	date2Month	=	Math.round(GetMonth(date2Arr[1]));
	date2Year	=	Math.round(date2Arr[2]);

	//Create the Date objects.
	objDate1 = new Date(parseInt(date1Year), parseInt(date1Month), parseInt(date1Day));
	objDate2 = new Date(parseInt(date2Year), parseInt(date2Month), parseInt(date2Day));

	//Subtract the dates and divide it by 86400000 (24*60*60*1000).
	diff = Math.round(((objDate2 - objDate1)/86400000)) //difference in days

	return diff;
}

function WindowNavigate(hrefString)
{
	window.navigate(hrefString);
	return;
}
/*************************************************************************************************/
//Author - Karthik
//Date	 - 14-05-2003

//Definition for Class CDate

function CDate( intDay,intMonth,intYear ) {
	this.Day=intDay;
	this.Month=intMonth;
	this.Year=intYear
}

function CreateCDate ( ) {
	var intDay,intMonth,intYear,arrValue,arrDays,arrFormat,arrPoint;
	var strValue,strName;
	var Num,i,j,k;
	
	strValue = new String (arguments[0]);
	Num=parseInt ( arguments[1] );
	if ( strValue.length < 8 || strValue.length > 10 )
		return null;
	arrFormat= new Array ( '0:1:2','1:0:2','2:1:0','1:2:0' );
	arrDays = new Array ( 31,29,31,30,31,30,31,31,30,31,30,31 );
	arrValue = strValue.split ( "/" );
	if ( arrValue.length != 3 ) {
		arrValue = strValue.split ( "." );
		if ( arrValue.length != 3 ) {
			arrValue = strValue.split ( "-" );
			if ( arrValue.length !=3 )
				return null;
		}
	}	
	arrPoint = new String ( arrFormat[Num] ).split ( ':' );	
	if ( ( isNaN ( parseInt ( arrValue [0] ) ) ) || ( isNaN ( parseInt ( arrValue [1] ) ) ) || ( isNaN ( parseInt ( arrValue [2] ) ) ) )
		return null;
	else {
		intDay =   parseFloat ( new String ( arrValue [arrPoint[0]] ) );
		intMonth =  parseFloat (  new String ( arrValue [arrPoint[1]] ) ) ;
		intYear =  parseFloat ( new String ( arrValue [arrPoint[2]] )  );
	}
	if ( ( intDay <= 0 ) || ( intDay > 31 ) || ( intMonth <= 0 ) || ( intMonth > 12 ) || ( intYear < 1900 ) || ( intYear > 3000 ) ) 
		return null;
	if ( ( intDay > parseFloat ( new String ( arrDays [ intMonth - 1 ] ) ) ) || ( ( intMonth == 2 )  &&  ( ( intYear % 4 )!= 0 )  && ( intDay > 28 ) ) ) 
		return null;
	CDate.prototype.GetFormat = GetFormat;
	return new CDate ( intDay,intMonth,intYear );	
}				

function GetFormat( lngMode,lngSep ) {

	var arrDate,arrMonth,arrPoint,arrFormat,arrPoint,arrSep;
	arrSep=new Array ( '/','.','-' );
	arrMonth=new Array ( 'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec' );
	arrDate=new Array();
	arrDate[0]=this.Day;
	arrDate[1]=this.Month;
	arrDate[2]=this.Year;
	arrDate[3]=arrMonth[this.Month - 1];
	arrDate[4]=new String ( this.Year ).substr( 2,2 );
	arrFormat=new Array ( '0:1:2','1:0:2','2:1:0','2:0:1');
	arrPoint=new String ( arrFormat [lngMode] ).split ( ':' );
	return arrDate[arrPoint[0]]+ arrSep[lngSep] +arrDate[arrPoint[1]]+arrSep[lngSep]+arrDate[arrPoint[2]]
}	

// this function checks given Date is valid or not

function isDate ( value,mode ) {
	var objDate;
	objDate = CreateCDate ( value,mode );
	
	if ( objDate == null )
		return false;	
	else
		return true;	
}

// this function validate according to the class property you specify
// Set the Class Property As FormatValue_SeparatorValue
// FormatValue = 0-->DD MM YYYY
//				 1-->MM DD YYYY
//				 2-->YYYY MM DD
//				 3-->YYYY DD MM
//TO BE INCORPORATED IN FUTURE
// SeparatorValue = 0--> /
//					1--> .
//					2--> -
// Example
// In Date Texbox Element, Assign class = "0_2"				 
function frmDateValidation ( ) {
	var strValue,strName;
	var Num,i,j,k,l;
	for ( i=0; i < document.forms.length ; i++ ) {
		for ( j=0; j < document.forms[i].length; j++ ) {
			for ( l=0;l<new String ( document.forms[i].elements[j].value ).length;l++ )
				document.forms[i].elements[j].value = new String ( document.forms[i].elements[j].value ).replace ( "'","`" );
			strName = new String ( document.forms[i].elements[j].className);
			if ( strName.indexOf ( "_" ) > 0 ) {
			    src  = 	strName.split("_");
			    strValue = new String (document.forms[i].elements[j].value);
				if ( strValue.length > 0 ) {
					if ( ! ( isDate ( strValue, src[0] ) ) ) {
						return false;
					}										
				}						
			}
		}
		return 1;
	}
}	

