function isNotNULL(pvStrFormName, pvStrFieldName, pvStrErrMsg)
{
	var lLogRetVal = false;
	var pvStrData = document.forms[pvStrFormName].elements[pvStrFieldName].value;
	if(Trim(pvStrData).length >= 1)
	{
		return '';
	}
	else
	{
		return pvStrErrMsg;
	}
}
function Trim(s) 
{
	while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
	{
		s = s.substring(1,s.length);
	}
	while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
	{
		s = s.substring(0,s.length-1);
	}
	return s;
}
function isValidNumber(pvStrFormName, pvStrFieldName, pvStrErrMsg, bAlsoCheckNULL,snumType)
{
	if (bAlsoCheckNULL == 'yes')
	{
		var err_chknull =  isNotNULL(pvStrFormName, pvStrFieldName, pvStrErrMsg)
		if (err_chknull.length > 0)
			return pvStrErrMsg
	}	
	if ( snumType == 'int' )
	{
		checkOK = "0123456789-";
	}
	else if (snumType == 'pint')
	{
		checkOK = "0123456789";
	}
	else if (snumType == 'dec')
	{
		checkOK = "0123456789-.";
	}	
	else if (snumType == 'pdec')
	{
		checkOK = "0123456789.";
	}	
	else
	{
		checkOK = "0123456789.";
	}
  	var checkStr = document.forms[pvStrFormName].elements[pvStrFieldName].value;
  	var allValid = true;
  	var decPoints = 0;
  	var allNum = "";
  	for (i = 0;  i < checkStr.length;  i++)
  	{
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
	  		if (ch == checkOK.charAt(j))
			break;	
		if (j == checkOK.length)
		{
	  		allValid = false;
	 	 	break;
		}
		allNum += ch;
  	}
  	if (allValid){
		if (isNaN(Number(checkStr))){
			allValid = false;
		}
	}	
  	if (allValid){
		if ((snumType == 'pdec') || (snumType == 'pint')){
			if (Number(checkStr) < 0){
				allValid = false;
			}
		}
	}
  	if (allValid){
		var min_number='-2147483648';
		var max_number='+2147483647';
		if ( (Number(checkStr) < parseInt(min_number)) || (Number(checkStr) > parseInt(max_number)) ){
			return pvStrErrMsg;
		}
	}
	else{
		return pvStrErrMsg;
	}
	return '';
}
function LeapYear(intYear)
{
	if (intYear % 100 == 0)
	{
		if (intYear % 400 == 0) { return true; }
	}
	else
	{
		if ((intYear % 4) == 0) { return true; }
	}
	return false;
}
function isValidDate(pvStrFormName, pvStrFieldName, pvStrErrMsg, bAlsoCheckNULL, bForce1900Year)
{
	var strDatestyle = "US";
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;
	var booFound = false;
	var datefield = document.forms[pvStrFormName].elements[pvStrFieldName];
	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 = document.forms[pvStrFormName].elements[pvStrFieldName].value;
	if (bAlsoCheckNULL == 'yes')
	{
		var err_chknull =  isNotNULL(pvStrFormName, pvStrFieldName, pvStrErrMsg)
		if (err_chknull.length > 0)
		{
			return pvStrErrMsg;
		}			
	}
	else
	{
		var err_chknull =  isNotNULL(pvStrFormName, pvStrFieldName, pvStrErrMsg)
		if (err_chknull.length !=  0)
		{
			return '';
		}		
	}
	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 pvStrErrMsg;
			}
			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);
		}
		else
		{
			err = 11;
			return pvStrErrMsg;
		}	
	}
	if (strYear.length == 2)
	{
		if(strYear < 50){
			strYear = '20' + strYear;
		} else {
			strYear = '19' + strYear;
		}
	}
	if (strDatestyle == "US")
	{
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
	}	
	intday = parseInt(strDay, 10);
	if (isNaN(intday))
	{
		err = 2;
		return pvStrErrMsg;
	}	
	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 pvStrErrMsg;
		}
	}
	intYear = parseInt(strYear, 10);
	if (isNaN(intYear))
	{
		err = 4;
		return pvStrErrMsg;
	}	
	if (intMonth>12 || intMonth<1)
	{
		err = 5;
		return pvStrErrMsg;
	}	
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1))
	{
		err = 6;
		return pvStrErrMsg;
	}	
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1))
	{
		err = 7;
		return pvStrErrMsg;
	}	
	if (intMonth == 2)
	{
		if (intday < 1)
		{
			err = 8;
			return pvStrErrMsg;
		}
		if (LeapYear(intYear) == true)
		{
			if (intday > 29)
			{
				err = 9;
				return pvStrErrMsg;
			}
		}
		else
		{
			if (intday > 28)
			{
				err = 10;
				return pvStrErrMsg;
			}
		}
	}	
	if (strDatestyle == "US")
	{
		datefield.value = intMonth + "/" + intday+"/" + strYear;
	}
	else
	{
		datefield.value = intday + "/" + strMonthArray[intMonth-1] + "/" + strYear;
	}	
	var min_date="01/01/1900";
	var max_date="01/01/2100";
	if ( (Date.parse(datefield.value) < Date.parse(min_date)) || (Date.parse(datefield.value) > Date.parse(max_date)) ){
		err = 11;
		return pvStrErrMsg;
	}
	return '';
}
function doComparePassword(pvStrFormName,pvStrPassword1, pvStrPassword2, pvStrErrMsg)
{
	var from = document.forms[pvStrFormName].elements[pvStrPassword1];
	var to = document.forms[pvStrFormName].elements[pvStrPassword2];
	if (from.value == to.value)
	{
		return '';
	}
	else
	{
		return pvStrErrMsg
	}
}
function doCompareStrings(pvStrFormName,pvStrLessFieldName1,pvStrLessFieldName2,pvStrErrMsg)
{
	var less_one = document.forms[pvStrFormName].elements[pvStrLessFieldName1];
	var greater_one = document.forms[pvStrFormName].elements[pvStrLessFieldName2];	
	if (less_one.value == greater_one.value)
	{
		return '';
	}
	else
	{
		return pvStrErrMsg;
	}
}
function isDropDownSelected(pvStrFormName,pvStrFieldName, pvStrErrMsg, bIsFirstValid)
{
	var objField = 	document.forms[pvStrFormName].elements[pvStrFieldName];
	var i_comparewith = 0;
	
	if (String(bIsFirstValid) == 'yes' ) {
		i_comparewith = 0;
	} else {
		i_comparewith = 1;
	}	
	if (objField.selectedIndex >= i_comparewith){
		return '';
	} else {
		return pvStrErrMsg;
	}
}
function dropDownAdvanceSearch(pvStrFormName,pvStrFieldName){
	var objField = 	document.forms[pvStrFormName].elements[pvStrFieldName];
	if (!(objField.selectedIndex >= 0))
		objField.selectedIndex = 0;
}
function isRadioSelected(pvStrFormName,pvStrFieldName,pvStrErrMsg)
{
	var objField = document.forms[pvStrFormName].elements[pvStrFieldName];
	var lflag = false;	
	if(objField.length)
	{
		for(var i = 1; i <= objField.length ; i++)
			if(objField[i - 1].checked == "1")
			{
				lflag = true;
			}
	} else {
		if(objField.checked == "1") {
			lflag = true;
		}
	}
	if(lflag == true)
		return ''
	else
		return pvStrErrMsg;
}
function isCheckBoxSelected(pvStrFormName,pvStrFieldName,pvStrErrMsg,iMin,iMax)
{
	var objField = document.forms[pvStrFormName].elements[pvStrFieldName];
	var chkcount = 0;
	if (objField){
		if (objField.length) {
			for(i=0;i<objField.length;i++)
			{
				if (objField[i].checked == true)
					chkcount++;
			}
		}
		else{
			if (objField.checked == true)
				chkcount++;
		}
		if(chkcount >= parseInt(iMin))
		{
			if(parseInt(iMax) >= 0 && chkcount > parseInt(iMax))
			{
				return pvStrErrMsg;
			}
			else
			{
				return '';
			}
		}
		else
		{
			return pvStrErrMsg;
		}
	} else {
		return 'No items exist to peform the requested action.';
	}
}
function textCounter(field, countfield, maxlimit) {
	if (field.value.length > maxlimit)
	field.value = field.value.substring(0, maxlimit);
	else
	countfield.value = maxlimit - field.value.length;
}
function isValidEmail(pvStrFormName, pvStrEmail, pvStrErrMsg, bAlsoCheckNULL)
{
	var objEmail = document.forms[pvStrFormName].elements[pvStrEmail];
	var Reg1 = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9])+(\.[a-zA-Z0-9_-]+)+$/;
	if(!Reg1.test(objEmail.value))
	{
		return pvStrErrMsg;
	}
	return '';
}
