var _todayDate = null ;

function validateSearchCommon(objSel,objtxt)
{	
	if(!isNull(objSel.value))
		{
			if(isNull(objtxt.value))
			{
				alert("Please enter Search Criteria.");
				objtxt.focus();
				return false;
			}
		}
	if(!isNull(objtxt.value))
		{			
			if(isNull(objSel.value))
			{
				alert("Please select Search field.");
				objSel.focus();
				return false;
			}
		}
	return true;
}

function FilterSearchCriteria(obj)
{	
	//alert('aa');
	obj.value = lTrim(rTrim(obj.value));
	var len = obj.value.length;
	for(var i=0;i<len;i++)
	{		
		var c = obj.value.charAt(i);
		if (!(((c >= '0') && (c <= '9')) || ((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z')) || (c == ' ') || (c == '-')))
		{
			obj.value = obj.value.replace(c,"");
			obj.value = FilterSearchCriteria(obj);
			//alert("Please select valid values.");
			//obj.focus();
			//obj.select();
			//return "";
		}		
	}	
	return obj.value;
}

function clearFields() 
{
    document.forms[0].reset();
}

function confirmBefore(action)
{
	if (action == 'A') {
		if (!confirm('Do you really want to Add this record?'))
			return false;
	}	
	else if (action == 'U') {
		if (!confirm('Do you really want to UPDATE this record?'))
			return false;
	}
	else if (action == 'D') {
		if (!confirm('Do you really want to DELETE this record?'))
			return false;
	}
	return true;
}

//%% Returns a copy of a string without leading spaces %%//
function lTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   
   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;

      s = s.substring(j, i);
   }
   return s;
}

//%% Returns a copy of a string without trailing spaces %%//
function rTrim(str)
{
   var whitespace = new String(" \t\n\r");
   var s = new String(str);

   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;

      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;

      s = s.substring(0, i+1);
   }

   return s;
}

function isAscii(inputValue)
{
	var check=0;
	for(var i=0;i<inputValue.length;i++)
	{
		var oneChar = inputValue.charAt(i);

		if((oneChar >=" " && oneChar <="~" ) || oneChar=="")
		{
		}
		else
		{
			if((oneChar.charCodeAt(0) != 13) && (oneChar.charCodeAt(0) != 10))
			{
				check = check +1;
			}
		}
	}
	if(check>0)
		return true;
	else
		return false;
}

function isNull(strchecknull)
{
    if(rTrim(lTrim(strchecknull)) == '')
	{
		return true;
	}
	else 
	{	
		return false;
	}
}

function trim(text)				// trim leading and trailing spaces
{ 
    while (text.substring(0,1) == ' ')
	{
        text = text.substring(1, text.length);
	}
    while (text.substring(text.length-1,text.length) == ' ') 
	{
        text = text.substring(0, text.length-1);
	}	return text;
} 

function isNumeric(theInput)
{
	var orgnlvalue = "";
	for (var i = 0; i <= (theInput.length-1); i++)
	{
		var theChar = theInput.substring(i,i+1);
		if((theChar < "0" || theChar > "9") && (theChar != ".") && (theChar != "-"))
		{
			return(false);
		}
	}
	
	return isNegativeSignOnly(theInput) ; 		
}

function isEmail(str)
{
	var valid = (str.length > 4) && (str.indexOf(".") > 0) && 
				(str.indexOf("@") > 0) && 
				(str.lastIndexOf(".") < str.length - 2) && 
				(str.lastIndexOf(".") > str.indexOf("@")) && 
				(str.indexOf("@") == str.lastIndexOf("@")) && 
				(str.indexOf("..") == -1) && 
				(str.indexOf(".@") == -1) && 
				(str.indexOf("@.") == -1);
    if (valid)
    {
    	var validChars = "0123456789_-.@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        for (index = 0; index < str.length; index++)
        {
        	if (validChars.indexOf(str.charAt(index)) == -1)
            {
            	valid = false;
              	break;
            }
		}
	}
    return valid;
}

function isUrl(str)
{
    if(str=="")
     {
        alert("Web URL can not be blank");
        return false;
     }
        var Url="^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$"
        var tempURL=str;
        var matchURL=tempURL.match(Url);
        if(matchURL==null)
        {
           alert("Web URL does not look valid");
           return false;
     }        
}

function isNumberOnly(theInput)
{
	var orgnlvalue = "";
	for (var i = 0; i <= (theInput.length-1); i++)
	{
		var theChar = theInput.substring(i,i+1);
		if((theChar < "0" || theChar > "9"))
		{
			return(false);
		}
		else
		{
			return(true);
		}
	}
	
	return isNegativeSignOnly(theInput) ; 		
}
//function isNumberOnly(inputValue)
//{   
//	var check=0;
//	for (var i=0;i<inputValue.length;i++)
//	{
//		var oneChar = inputValue.charAt(i);
//		if (!(oneChar >="0" && oneChar <="9" ))
//		{
//		}
//		else
//		{
//			check = check +1;
//		}
//	}
//	if (check>0)
//	{
//		return false;
//	}
//	else
//	{
//		return true;
//	}
//}


function isIntegerOnly(inputValue)
{   
	var check=0;
	for (var i=0;i<inputValue.length;i++)
	{
		var oneChar = inputValue.charAt(i);
		if ((oneChar >="0" && oneChar <="9" ) )//|| oneChar=="-")
		{
		    
		}
		//Begin :Added for only positive integer
		else if(oneChar=="-")
		{
		    check = check +1;
		}
		//end
		else
		{
			check = check +1;
		}
	}
	if (check>0)
	{
		return false;
	}
	else
	{
		return true;
		//return isNegativeSignOnly(inputValue);  // Commented For Positive Integer Only
	}		
}

function isNegativeSignOnly(inputValue)
{   
	var check=0;
	
	var pos = inputValue.indexOf("-") ;
	
	if(pos != -1)
	{
		if(pos != 0) 
		{
			return false;
		}
		else if (inputValue.length == 1)
		{
			return false;
		}
	}
	
	return true;
}

function isDecimal(theInput)
{
	var totalDecimal = 0;
	var orgnlvalue = "";
	for (var i = 0; i <= (theInput.length-1); i++)
	{
		var theChar = theInput.substring(i,i+1);
		if (theChar == ".")
		{
			totalDecimal++;
		}
	}
	if (totalDecimal > 1) {
		return false;
	}

	for (var i = 0; i <= (theInput.length-1); i++)
	{
		var theChar = theInput.substring(i,i+1);
		if((theChar < "0" || theChar > "9") && (theChar != "."))
		{
			return(false);
		}
	}
	return true;
}

//%% Function to check for alphabets and numbers %%//
function isAlphaNumeric(inputValue)
{
	for (i=0; i<inputValue.length; i++)
	{
		var c = inputValue.charAt(i);
	    if (!(((c >= "0") && (c <= "9")) || ((c >= "A") && (c <= "Z")) || ((c >= "a") && (c <= "z"))))
		{
			return false;
		}
	}
	return true;
}

//%% Function to check for alphabets, numbers, underscore and dash %%//
function isValidForKey(inputValue)
{
	for (i=0; i<inputValue.length; i++)
	{
		var c = inputValue.charAt(i);
	    if (!(((c >= "0") && (c <= "9")) || ((c >= "A") && (c <= "Z")) || ((c >= "a") && (c <= "z")) || (c == "_") || (c == "-")))
		{
			return false;
		}
	}
	return true;
}

//%% Function to check for alphabets %%//
function isAlphabetOnly(inputValue)
{
	if (inputValue != "") 
	{
		var chr = inputValue.charAt(0);
		if (!(((chr >= "A") && (chr <= "Z")) || ((chr >= "a") && (chr <= "z"))))
			return false;
	}
	for (i=0; i<inputValue.length; i++)
	{
		var c = inputValue.charAt(i);
		if (!(((c >= "A") && (c <= "Z")) || ((c >= "a") && (c <= "z"))))
		{
			return false;
		}
	}
	return true;
}


function isAlphaSpace(inputValue)
{
	if (inputValue != "") {
		var chr = inputValue.charAt(0);
		if (!(((chr >= "A") && (chr <= "Z")) || ((chr >= "a") && (chr <= "z"))))
			return false;
	}
	for (i=0; i<inputValue.length; i++)
	{
		var c = inputValue.charAt(i);
		if (!(((c >= "A") && (c <= "Z")) || ((c >= "a") && (c <= "z")) || (c == " ")))
		{
			return false;
		}
	}
	return true;
}

function isNumberANDColon(inputValue)
{   
	var check=0;
	for (var i=0;i<inputValue.length;i++)
	{
		var oneChar = inputValue.charAt(i);
		if ((oneChar >="0") && (oneChar <="9"))
		{
		}
		else
		{
			if(oneChar != ":")
			{
				check = check +1;
			}
		}
	}
	if (check>0)
	{
		return false;
	}
	else
	{
		return true;
	}
}
//%% Check time in hh:mm %%//
function isTime(inputValue)
{
	if(!isNumberANDColon(inputValue))
	{
		return false
	}
	else
	{
		str = inputValue;
		if (str.length != 5)
		{
			return false;
		}
		strTime = str.split(":");
		len = strTime.length;
		if(len == 1)
		{
			return false;
		}
		strHH = strTime[0];
		strMM = strTime[1];
		if (parseInt(strHH) > 23 )
		{
			return false;
		}
		if (parseInt(strMM) > 59 )
		{
			return false;
		}
	}
	return true;
}

//%% Function to check for alphabets, numbers, underscore, dash and space %%//
function isExtendedValidForKey(inputValue)
{
	for (i=0; i<inputValue.length; i++)
	{
		var c = inputValue.charAt(i);
	    if (!(((c >= "0") && (c <= "9")) || ((c >= "A") && (c <= "Z")) || ((c >= "a") && (c <= "z")) || (c == "_") || (c == "-") || (c == " ")))
		{
			return false;
		}
	}
	return true;
}

//%% Function to check for valid phone no. (digits and space) %%//
function isPhone(inputValue)
{
	for (i=0; i<inputValue.length; i++)
	{
		var c = inputValue.charAt(i);
	    if (!(((c >= "0") && (c <= "9")) || (c == " ")))
		{
			return false;
		}
	}
	return true;
}

function selectUnselect(checkBoxName,checkAllBox)
	{	
		arrCheck = document.getElementsByName(checkBoxName);
		
		if(arrCheck.length>0)
		{
			for(i=0;i<arrCheck.length;i++)
			{
					arrCheck[i].checked =document.forms[0].checkAllBox.checked;
			}		
		}
			
}
	
function populateCombo(ParentKeyObj,CmbToPopObj,ArrayType,makeDropDwnEmpty)
{
	var len = 0;
	var arrToUse = new Array();
	arrToUse = eval(ArrayType);
	if (makeDropDwnEmpty!="")
	{
		var dpdowns = makeDropDwnEmpty.split(',');
		for (var dpdownsCnt=0;dpdownsCnt<dpdowns.length;dpdownsCnt++)
		{
			var dpDownObj = eval("document.forms[0]." + dpdowns[dpdownsCnt]);
			dpDownObj.length=0;
			dpDownObj.options[0] = new Option(0);
			dpDownObj.options[0].value = "";
			dpDownObj.options[0].text  = "- Select -";
		}
	}
	CmbToPopObj.length=0;

	CmbToPopObj.options[len] = new Option(0);
	CmbToPopObj.options[len].value = "";
	CmbToPopObj.options[len].text  = "- Select -";
	len++;

	for(var i = 0; i < arrToUse.length; i++)
	{
		if (arrToUse[i].ParentKey==ParentKeyObj.options[ParentKeyObj.selectedIndex].value)
		{
			CmbToPopObj.options[len] = new Option(len);
			CmbToPopObj.options[len].value = arrToUse[i].Id;
			CmbToPopObj.options[len].text  = arrToUse[i].Desc;
			len++;
		}
	}
}
	
 
function callValidateSearch()
{
	if(document.forms[0].selSearchCountry)
	{
		if(isNull(document.forms[0].selSearchCountry.value))
		{
			alert('Please choose a Search Field to perform search.');
			return false;
		}
		else
		{
			if(document.forms[0].pageNo)
				document.forms[0].pageNo.value = "1";
			
			document.forms[0].hidProcessFlag.value = 'V';
			document.forms[0].submit();
			return true;
		}
	}
	else
	{
		if(isNull(document.forms[0].selSearchCode.value))
		{
			alert('Please choose a Search Field to perform search.');
			return false;
		}
		else
		{
			if(document.forms[0].pageNo)
				document.forms[0].pageNo.value = "1";
			
			document.forms[0].hidProcessFlag.value = 'V';
			document.forms[0].submit();
			return true;
		}
	}
}

function goToFirst()
{
    document.forms[0].pageNo.value = 1;
    document.forms[0].hidProcessFlag.value="V";
    document.forms[0].submit();
}

function goToPrevious()
{
    var previousPage = --document.forms[0].pageNo.value;
    document.forms[0].hidProcessFlag.value="V";
    document.forms[0].submit();
}

function goToNext()
{
   
    var nextPage = parseInt(document.forms[0].pageNo.value);
    var lastPage = parseInt(document.forms[0].lastPageNo.value);
    if(nextPage == lastPage)
    {
    	nextPage == lastPage;
    }
    else
    {
    	document.forms[0].pageNo.value = ++nextPage;
    }
    document.forms[0].hidProcessFlag.value="V";
    document.forms[0].submit();
}

function goToLast()
{
    document.forms[0].pageNo.value = parseInt(document.forms[0].lastPageNo.value);
    document.forms[0].hidProcessFlag.value="V";
    document.forms[0].submit();    
}

function submitPage()
{    
    document.forms[0].hidProcessFlag.value="V";
	document.forms[0].txtSearchDesc.value="";
    document.forms[0].submit();
}



//Begin : For Checking mm/yyyy
function isDatemmyyyy(SuppliedDate)
{	
	DateFormat = "mm/yyyy"
	
	/* Getting Month Part*/
	if (SuppliedDate.charAt(2) == '/')
	{
        position  = 3;
	    monthpart = SuppliedDate.substring(0,2);
	}	
    else
    {	
	    return(false);
    }
    
	/* Getting Year Part*/
	yearpart=SuppliedDate.substring(position,SuppliedDate.length);
    
	
	/* Checking For Length Of YearPart*/
	if((yearpart.length != 2) && (DateFormat=="mm/yy"))
	{	
		return(false);
	}
	else
	{
		if ((yearpart.length != 4) && (DateFormat=="mm/yyyy"))
		{	
			return(false);
		}
	}
	
	/* Checking for Characters in month part*/
	for(i=0;i< monthpart.length;i++)
	{
		if((monthpart.charAt(i) < '0') || (monthpart.charAt(i) > '9'))
		{			
			return(false);
		}
	}
	
	/* To check if month is 0*/
	if (monthpart.length == 2)
	{
		if ((monthpart.charAt(0) == '0') && (monthpart.charAt(1) == '0'))
		{	
			return(false);	
		}
	}
	else
	{
		if(monthpart.charAt(0) == '0')
		{	
			return(false);
		}
	}
    

	/* Checking for Characters in year part*/
	for(i=0;i< yearpart.length;i++)
	{
		if ((yearpart.charAt(i) < '0') || (yearpart.charAt(i) > '9'))
		{
			return(false);
		}
	}
	
	if (yearpart.length == 4)
	{
		if ((yearpart.charAt(0) == '0') && (yearpart.charAt(1) == '0')&&(yearpart.charAt(2) == '0') && (yearpart.charAt(3) == '0'))
		{	
			return(false);	
		}
	}
	

	/*Checking For validity of month*/
	if(parseInt(monthpart)>12)
	{	
		return(false);
	}
	return(true);		
}

//End : For Checking mm/yyyy 

//Begin : For Checking mm/dd/yyyy
function isDatemmddyyyy(SuppliedDate)
{	
	DateFormat = "mm/dd/yyyy"
	
	/* Getting Day Part*/
	
	if (SuppliedDate.charAt(2) == '/')
	{
		//daypart = SuppliedDate.substring(0,2);
		daypart = SuppliedDate.substring(3,5);
	}
	else
	{	
		return(false);
	}
	
	/* Getting Month Part*/
	if (daypart.length==2)
	{	
		if (SuppliedDate.charAt(5) == '/') 
		{	position=6;
			//monthpart = SuppliedDate.substring(3,5);
			monthpart = SuppliedDate.substring(0,2);
		}
		else
		{	
			return(false);
		}
		
	}	
	else
	{	
		return(false);
	}
	
	/* Getting Year Part*/
	yearpart=SuppliedDate.substring(position,SuppliedDate.length);
    
	/* Checking For Length Of YearPart*/
	if((yearpart.length != 2) && (DateFormat=="mm/dd/yy"))
	{	
		return(false);
	}
	else
	{
		if ((yearpart.length != 4) && (DateFormat=="mm/dd/yyyy"))
		{	
			return(false);
		}
	}
	
	/* Checking for Characters in day part*/
	for(i=0;i< daypart.length;i++)
	{
		if((daypart.charAt(i) < '0') || (daypart.charAt(i) > '9'))
		{
			return(false);
		}
	}
	
	/* To check if day is 0*/
	if (daypart.length == 2)
	{
		if ((daypart.charAt(0)=='0') && (daypart.charAt(1)=='0'))
		{	
			return(false);	
		}
	}
	else
	{
		if(daypart.charAt(0)=='0')
		{	
			return(false);
		}
	}
	
	/* Checking for Characters in month part*/
	for(i=0;i< monthpart.length;i++)
	{
		if((monthpart.charAt(i) < '0') || (monthpart.charAt(i) > '9'))
		{			
			return(false);
		}
	}
	
	/* To check if month is 0*/
	if (monthpart.length == 2)
	{
		if ((monthpart.charAt(0) == '0') && (monthpart.charAt(1) == '0'))
		{	
			return(false);	
		}
	}
	else
	{
		if(monthpart.charAt(0) == '0')
		{	
			return(false);
		}
	}

	/* Checking for Characters in year part*/
	for(i=0;i< yearpart.length;i++)
	{
		if ((yearpart.charAt(i) < '0') || (yearpart.charAt(i) > '9'))
		{
			return(false);
		}
	}
	if (yearpart.length == 4)
	{
		if ((yearpart.charAt(0) == '0') && (yearpart.charAt(1) == '0')&&(yearpart.charAt(2) == '0') && (yearpart.charAt(3) == '0'))
		{	
			return(false);	
		}
	}

	/*Checking For validity of month*/
	if(parseInt(monthpart)>12)
	{	
		return(false);
	}
	
	/*Checking For validity of day*/
	if(parseInt(daypart)>31)
	{	
		return(false);
	}
	
	if(parseInt(monthpart)==2)
	{	
		if ((parseInt(yearpart) % 4) == 0) 
		{	
			if (parseInt(daypart) > 29) 
			{	
				return(false);
			}
		}
		else
		{
			if (parseInt(daypart)>28)
			{	
				return(false);
			}
		}
	}
	else
	{	
		suppliedmonth=parseInt(monthpart,10);
		if ((suppliedmonth==1) || (suppliedmonth==3) || (suppliedmonth==5) || (suppliedmonth==7) || (suppliedmonth==8) || (suppliedmonth==10) || (suppliedmonth==12))
		{	
			if(parseInt(daypart)>31)
			{	
				return(false);
			}
		}
		else
		{
			if (parseInt(daypart)>30)
			{	
				return(false);
			}
		}
	}
	return(true);		
}
//End : For Checking mm/dd/yyyy 

//Begin : For Checking dd/mm/yyyy 
function isDate(SuppliedDate)
{	
	DateFormat = "dd/mm/yyyy"
	
	/* Getting Day Part*/
	
	if (SuppliedDate.charAt(2) == '/')
	{
		daypart = SuppliedDate.substring(0,2);
	}
	else
	{	
		return(false);
	}
	
	
	/* Getting Month Part*/
	if (daypart.length==2)
	{	
		if (SuppliedDate.charAt(5) == '/') 
		{	position=6;
			monthpart = SuppliedDate.substring(3,5);
		}
		else
		{	
			return(false);
		}
		
	}	
	else
	{	
		return(false);
	}
	
	
	/* Getting Year Part*/
	yearpart=SuppliedDate.substring(position,SuppliedDate.length);

	
	/* Checking For Length Of YearPart*/
	if((yearpart.length != 2) && (DateFormat=="dd/mm/yy"))
	{	
		return(false);
	}
	else
	{
		if ((yearpart.length != 4) && (DateFormat=="dd/mm/yyyy"))
		{	
			return(false);
		}
	}
	

	/* Checking for Characters in day part*/
	for(i=0;i< daypart.length;i++)
	{
		if((daypart.charAt(i) < '0') || (daypart.charAt(i) > '9'))
		{
			return(false);
		}
	}
	
	/* To check if day is 0*/
	if (daypart.length == 2)
	{
		if ((daypart.charAt(0)=='0') && (daypart.charAt(1)=='0'))
		{	
			return(false);	
		}
	}
	else
	{
		if(daypart.charAt(0)=='0')
		{	
			return(false);
		}
	}
	
	/* Checking for Characters in month part*/
	for(i=0;i< monthpart.length;i++)
	{
		if((monthpart.charAt(i) < '0') || (monthpart.charAt(i) > '9'))
		{			
			return(false);
		}
	}
	
	/* To check if month is 0*/
	if (monthpart.length == 2)
	{
		if ((monthpart.charAt(0) == '0') && (monthpart.charAt(1) == '0'))
		{	
			return(false);	
		}
	}
	else
	{
		if(monthpart.charAt(0) == '0')
		{	
			return(false);
		}
	}


	/* Checking for Characters in year part*/
	for(i=0;i< yearpart.length;i++)
	{
		if ((yearpart.charAt(i) < '0') || (yearpart.charAt(i) > '9'))
		{
			return(false);
		}
	}
	if (yearpart.length == 4)
	{
		if ((yearpart.charAt(0) == '0') && (yearpart.charAt(1) == '0')&&(yearpart.charAt(2) == '0') && (yearpart.charAt(3) == '0'))
		{	
			return(false);	
		}
	}

	/*Checking For validity of month*/
	if(parseInt(monthpart)>12)
	{	
		return(false);
	}
	
	
	/*Checking For validity of day*/
	if(parseInt(daypart)>31)
	{	
		return(false);
	}
	
	if(parseInt(monthpart)==2)
	{	
		if ((parseInt(yearpart) % 4) == 0) 
		{	
			if (parseInt(daypart) > 29) 
			{	
				return(false);
			}
		}
		else
		{
			if (parseInt(daypart)>28)
			{	
				return(false);
			}
		}
	}
	else
	{	
		suppliedmonth=parseInt(monthpart,10);
		if ((suppliedmonth==1) || (suppliedmonth==3) || (suppliedmonth==5) || (suppliedmonth==7) || (suppliedmonth==8) || (suppliedmonth==10) || (suppliedmonth==12))
		{	
			if(parseInt(daypart)>31)
			{	
				return(false);
			}
		}
		else
		{
			if (parseInt(daypart)>30)
			{	
				return(false);
			}
		}
	}
	return(true);		
}
//End : For Checking dd/mm/yyyy 

//**** mm/dd/yyyy ****//
function isDateMMDDYYYY(strDate)
{
	if(strDate.length>0)
	{
		var dateregex=/^[ ]*[0]?(\d{1,2})\/(\d{1,2})\/(\d{4,})[ ]*$/;
		var match=strDate.match(dateregex);
		 	
		if (match)
		{
				var tmpdate=new Date(match[3],parseInt(match[1],10)-1,match[2]);
				if (tmpdate.getDate()==parseInt(match[2],10) && tmpdate.getFullYear()==parseInt(match[3],10) && (tmpdate.getMonth()+1)==parseInt(match[1],10))
				{
					return true;
				}
		}
		return false;
	}
	else
	{
		return true;
	}
}

function isGreaterThan(theInput,compareWith)
{
	if(!isNull(theInput))
	{
		if(theInput > compareWith)
		{
			return true
		}
		else
		{
			return false
		}
	}
	else
	{
		return true
	}
}

function isGreaterThanLength(theInput,compareWith)
{
	if(theInput > compareWith)
	{
		return true
	}
	else
	{
		return false
	}
}

function isGreaterThanPrecision(theInput,compareWith)
{
	if(!isNull(theInput))
	{
		if(theInput.indexOf(".") < 1) // No Decimal In theInput 
		{
			if(theInput.length > compareWith)
			{
				return false
			}
			else
			{
				return true
			}
		}
		else	// Decimal is There In theInput
		{
			precisionValue = theInput.substring(0,theInput.indexOf("."))
			if(precisionValue.length > compareWith)
			{
				return false
			}
			else
			{
				return true
			}				 	
		}
	}
	else
	{
		return true
	}
}

function isGreaterThanScale(theInput,compareWith)
{
	if(!isNull(theInput))
	{
		if(theInput.indexOf(".") < 1) // No Decimal In theInput 
		{
			return true
		}
		else						  // Decimal is There In theInput
		{
			scaleValue = theInput.substring(theInput.indexOf(".")+1,theInput.length)
			if(scaleValue.length > compareWith)
			{
				return false
			}
			else
			{
				return true
			}				 	
		}
	}
	else
	{
		return true
	}
}

//%% Function to get javascript Date (Supplied date must be in dd/mm/yyyy format) %%//
function createDate(suppliedDate)
{
	var dateToCheck = new Date();

	if(suppliedDate != "")
	{
		var day   = suppliedDate.substring(0, suppliedDate.indexOf("/"));
		var month = suppliedDate.substring(suppliedDate.indexOf("/")+1, suppliedDate.lastIndexOf("/"));
		var year  = suppliedDate.substring(suppliedDate.lastIndexOf("/")+1, suppliedDate.length);

		dateToCheck.setYear(year);
		dateToCheck.setMonth(month-1);
		dateToCheck.setDate(day);	
	}		
	
	return dateToCheck ;	
}

//%% Function to check if a date lies in future (Supplied date must be in dd/mm/yyyy format) %%//
function isFutureDate(suppliedDate) {
		var day = suppliedDate.substring(0, suppliedDate.indexOf("/"));
		var month = suppliedDate.substring(suppliedDate.indexOf("/")+1, suppliedDate.lastIndexOf("/"));
		var year = suppliedDate.substring(suppliedDate.lastIndexOf("/")+1, suppliedDate.length);

		var dateToCheck = new Date();
		dateToCheck.setYear(year);
		dateToCheck.setMonth(month-1);
		dateToCheck.setDate(day);
		var checkDate = dateToCheck.getTime();

		var now = createDate(_todayDate).getTime();

		return (now < checkDate);
}

//%% Function to check if a date lies in future (Supplied date must be in mm/dd/yyyy format) %%//
function isFutureDateMMDDYYYY(suppliedDate) {
		var month = suppliedDate.substring(0, suppliedDate.indexOf("/"));
		var day = suppliedDate.substring(suppliedDate.indexOf("/")+1, suppliedDate.lastIndexOf("/"));
		var year = suppliedDate.substring(suppliedDate.lastIndexOf("/")+1, suppliedDate.length);

		var dateToCheck = new Date();
		dateToCheck.setYear(year);
		dateToCheck.setMonth(month-1);
		dateToCheck.setDate(day);
		var checkDate = dateToCheck.getTime();
        
		var now = createDate(_todayDate).getTime();

		return (now < checkDate);
}

//%% Function to check if a date lies in future or todays date (Supplied date must be in dd/mm/yyyy format) %%//
function isFutureOrPresentDate(suppliedDate) 
{		
		
		var now = createDate(_todayDate).getTime();
		var day = suppliedDate.substring(0, suppliedDate.indexOf("/"));
		var month = suppliedDate.substring(suppliedDate.indexOf("/")+1, suppliedDate.lastIndexOf("/"));
		var year = suppliedDate.substring(suppliedDate.lastIndexOf("/")+1, suppliedDate.length);
		
		var dateToCheck = new Date();
		dateToCheck.setYear(year);
		dateToCheck.setMonth(month-1);
		dateToCheck.setDate(day);
		var checkDate = dateToCheck.getTime();
		
		return (now <= checkDate);
}

//%% Function to check if a date lies in future (Supplied date must be in dd/mm/yyyy format) %%//
function isFutureOrPresentDate1(suppliedDate) 
{
		var now = createDate(_todayDate);
		now.setDate(now.getDate() + 1); 
		now = now.getTime();

		var day = suppliedDate.substring(0, suppliedDate.indexOf("/"));
		var month = suppliedDate.substring(suppliedDate.indexOf("/")+1, suppliedDate.lastIndexOf("/"));
		var year = suppliedDate.substring(suppliedDate.lastIndexOf("/")+1, suppliedDate.length);

		var dateToCheck = new Date();
		dateToCheck.setYear(year);
		dateToCheck.setMonth(month-1);
		dateToCheck.setDate(day);
		var checkDate = dateToCheck.getTime();

		return (now <= checkDate);
}

//%% Function to check if a date is prior to year 1900 (Supplied date must be in dd/mm/yyyy format) %%//
function checkCentury(suppliedDate) {
		var year = parseInt(suppliedDate.substring(suppliedDate.lastIndexOf("/")+1, suppliedDate.length));
		if (year < 1900)
			return true;
		else
			return false;	
}

function IsLessThanCurrentDate(suppliedDate)
{
	var Today = new Date().valueOf();
	var tempdate;
	var str_arr = suppliedDate.split("/")

	tempdate	=	new Date( str_arr[2] , str_arr[1] - 1 , str_arr[0] , "23" , "59" , 0 , 0 ) ;
	in_date		=	new Date(tempdate).valueOf();
	alert(in_date);
	if(in_date < Today)
	{						
		return true;
	}
	return false;	
}

//Begin : For IsLessThanCurrentDate for mm/dd/yyyy 
function IsLessThanCurrentDateMMDDYYYY(suppliedDate)
{
	var Today = new Date().valueOf();
	var tempdate;
	var str_arr = suppliedDate.split("/")
    //alert(str_arr[1] - 1);
    //alert(str_arr[2]);
    //alert(str_arr[0]);
	//tempdate	=	new Date( str_arr[2] , str_arr[1] - 1 , str_arr[0] , "23" , "59" , 0 , 0 ) ;
	tempdate	=	new Date( str_arr[2] , str_arr[0] , str_arr[1] - 1, "23" , "59" , 0 , 0 ) ;
	in_date		=	new Date(tempdate).valueOf();
	//alert(in_date);
	//alert(Today);
	if(in_date < Today)
	{						
		return true;
	}
	return false;	
}
//End : For IsLessThanCurrentDate for mm/dd/yyy

function pastOrPresentDate(suppliedDate,validatingDate) {
		var day = suppliedDate.substring(0, suppliedDate.indexOf("/"));
		var month = suppliedDate.substring(suppliedDate.indexOf("/")+1, suppliedDate.lastIndexOf("/"));
		var year = suppliedDate.substring(suppliedDate.lastIndexOf("/")+1, suppliedDate.length);
		

		var dayVal = validatingDate.substring(0, validatingDate.indexOf("/"));
		var monthVal = validatingDate.substring(validatingDate.indexOf("/")+1, validatingDate.lastIndexOf("/"));
		var yearVal = validatingDate.substring(validatingDate.lastIndexOf("/")+1, validatingDate.length);

		var dateToCheck = new Date();
		dateToCheck.setYear(year);
		dateToCheck.setMonth(month-1);
		dateToCheck.setDate(day);
		var checkDate = dateToCheck.getTime();

		var valDate = new Date();
		valDate.setYear(yearVal);
		valDate.setMonth(monthVal-1);
		valDate.setDate(dayVal);
		var now = valDate.getTime();
		
		return (now >= checkDate);
}

function futureDate(suppliedDate,validatingDate) {
		var day = suppliedDate.substring(0, suppliedDate.indexOf("/"));
		var month = suppliedDate.substring(suppliedDate.indexOf("/")+1, suppliedDate.lastIndexOf("/"));
		var year = suppliedDate.substring(suppliedDate.lastIndexOf("/")+1, suppliedDate.length);
		

		var dayVal = validatingDate.substring(0, validatingDate.indexOf("/"));
		var monthVal = validatingDate.substring(validatingDate.indexOf("/")+1, validatingDate.lastIndexOf("/"));
		var yearVal = validatingDate.substring(validatingDate.lastIndexOf("/")+1, validatingDate.length);

		var dateToCheck = new Date();
		dateToCheck.setYear(year);
		dateToCheck.setMonth(month-1);
		dateToCheck.setDate(day);
		var checkDate = dateToCheck.getTime();

		var valDate = new Date();
		valDate.setYear(yearVal);
		valDate.setMonth(monthVal-1);
		valDate.setDate(dayVal);
		var now = valDate.getTime();
		return (now < checkDate);
}

function isAgencyCode(inputValue)
{
	var objPattern = /^[a-zA-Z0-9-&(). ]+$/gi;
	if (!objPattern.test(inputValue))
		return false;
	else
		return true;
}

function isValidId(inputValue)
{
	var objPattern = /^[a-zA-Z0-9_.-]+$/gi;
	if (!objPattern.test(inputValue))
		return false;
	else
		return true;
}

function isCommonValidate(inputValue, validationKey)
{
	var patternStr;
	
	if (inputValue != '')
	{		
		switch (validationKey)
		{
			case 1:
				patternStr = /^[a-zA-Z0-9_-]+$/gi; // alphabets, digits, underscore and dash only. for primary keys.
				break;
			case 2:
				patternStr = /^[a-zA-Z ]+$/gi; // alphabets and space only. for name, state, country, city.
				break;
			case 3:
				patternStr = /^[0-9.]+$/gi; // digits and decimals only.
				break;
			case 4:
				patternStr = /^[a-zA-Z]+$/gi; // alphabets only
				break;
			case 5:
				patternStr = /^[0-9 ]+$/gi; // digits and space only. for phone no.
				break;
			case 6:
				patternStr = /^[a-zA-Z0-9]+$/gi; // alphabets and digits only. for zip code
				break;
			case 7:
				patternStr = /^[0-9]+$/gi; // digits only.
				break;
			case 8:
				patternStr = /^[^'\"]+$/gi; // apostrophes (') and double quotes (\") are not allowed.
				break;
			case 9:
				patternStr = /^[a-zA-Z0-9()]+$/gi; // alphabets, digits and parentheses only.
				break;
			case 10:
				patternStr = /^[a-zA-Z0-9(). ]+$/gi; // alphabets, digits, parentheses, dots and spaces only.
				break;
			case 11:
				patternStr = /^[a-zA-Z0-9()-.,/ #: ]+$/gi; // alphabets, digits, parentheses, comma, hyphens, dots, dash and spaces only.   (For Address)
				break;
			case 12:
				patternStr = /^[A-Za-z]\w*([.|-]\w*){0,4}[@]\w+([.]\w{2,4}){1,4}$/gi; // email id
				break;
			case 13: // login id
				if ((str.charAt(0) == '_')||((str.charAt(0) >= 0)&&(str.charAt(0) <= 9)))
				{
					// first character can not be a number or underscore.
					return false;
				}
				if (str.charAt(str.length-1) == '_')
				{
					// last character can not be underscore.
					return false;
				}
				// only alphabets, digits, dot and underscores are allowed.
				patternStr = /^\w+[.]*\w*$/gi; // login id
				break;
			case 14:
				patternStr = /^#[A-Fa-f0-9]{6}$/gi; // hexadecimal code
				break;
			case 15:
				patternStr = /^[^'\"<>]+$/gi; // apostrophes ('), double quotes (\"), less then (<) and greater then (>) signs are not allowed. for address or comments.
				break;
			case 16:
				patternStr = /^[a-zA-Z0-9-&(). ]+$/gi; // alphabets, digits, hyphen, space, parenthese, dot and ampersand(&) are allowed. for Agency Name.
				break;
			case 17:
				patternStr = /^[0-9-, ]+$/gi; // digits, hyphen, space and comma(,) are allowed only. for Agency Phone.
				break;
			case 18:	// specially for E-Ticket Message description
				patternStr = /^[^&\"]+$/gi; // double quotes (\") and & are not allowed.
				break;
			case 19:	
				patternStr = /^[a-zA-Z0-9 ]+$/gi; // only alphabets, digits and spaces are allowed
				break;
		}

		if (!(patternStr.test(inputValue)))
		{
			return false;
		}
		patternStr.test(inputValue); // for netscape error handling
	}
	return true;
}
/**************************************/
function isCommonValidateField(ObjField, BlankMessage, Condition, MandatoryFlag, Minlen, MinMessage, Maxlen, MaxMessage)
{
	var ObjPattern, Message
	//ObjField.value=lTrim(rTrim(ObjField.value));
	var str=ObjField.value;
	if (MandatoryFlag*1==1 && lTrim(rTrim(str))=='')
		return returnfalse(BlankMessage,ObjField);

	if (str != '')
	{
		if(arguments.length > 4)
		{
			if (str.length < Minlen*1)
			{	return returnfalse(MinMessage,ObjField); }
		
			if(arguments.length > 6 && str.length > Maxlen*1)
			{	return returnfalse(MaxMessage,ObjField); }
		}
		switch(Condition*1)
		{ 
			case 1:
					ObjPattern= /^[0-9]+$/gi; //for credit card
					Message="Invalid entry, only digits are allowed.\nPlease re-enter";
					break;
			case 2:
					ObjPattern= /^[0-9 ]+$/gi; //for phone no.
					Message="Invalid entry, only digits and spaces are allowed.\nPlease re-enter";
					break;
			case 3:
					ObjPattern= /^[0-9.]+$/gi; //for rate
					Message="Invalid entry, only digits and decimal are allowed.\nPlease re-enter";
					break;
			case 4:
					ObjPattern= /^[a-zA-Z ]+$/gi;//
					Message="Invalid entry, only alphabets and spaces are allowed.\nPlease re-enter";
					break;
			case 5:
					ObjPattern= /^[a-zA-Z0-9._]+$/gi;//for name, state
					Message="Invalid entry, only alphabets,digits,dots,underscore are allowed.\nPlease re-enter";
					break;
			case 6:
					ObjPattern= /^[a-zA-Z0-9]+$/gi;//programme no, zip code
					Message="Invalid entry, only alphabets and digits are allowed.\nPlease re-enter";
					break;
			case 7:
					ObjPattern= /^[a-zA-Z0-9 ]+$/gi;//for city
					Message="Invalid entry, only alphabets, digits and spaces are allowed.\nPlease re-enter";
					break;
			case 8:
					ObjPattern= /^[^'\"]+$/gi;
					Message="Invalid entry,  apostrophes (') and double quotes (\") are not allowed.\nPlease re-enter";
					break;
			case 9:
					ObjPattern= /^[a-zA-Z0-9()]+$/gi;//
					Message="Invalid entry, only alphabets, digits and Parentheses are allowed.\nPlease re-enter";
					break;
			case 10:
					ObjPattern= /^[a-zA-Z0-9(). ]+$/gi;//
					Message="Invalid entry, only alphabets, digits, Parentheses, dots and spaces are allowed.\nPlease re-enter";
					break;
			case 11:
					ObjPattern= /^[a-zA-Z0-9()-.,\/ #: ]+$/gi;//
					Message="Invalid entry, only alphabets, digits, Parentheses, comma, hyphens, dots, dash and spaces are allowed.\nPlease re-enter";
					break;
			case 12:
					ObjPattern= /^[A-Za-z]\w*([.|-]\w*){0,4}[@]\w+[A-Za-z-]*([.]\w{2,10}){1,4}$/gi; //email id
					Message="Invalid entry, Please enter correct email address.";
					break;
			case 13: ///login id
					if ((str.charAt(0) == '_')||((str.charAt(0) >= 0)&&(str.charAt(0) <= 9)))
					{
						Message="Invalid entry, first character can not be a number or underscore.\nPlease re-enter";
						return returnfalse(Message,ObjField);
					}
					if (str.charAt(str.length-1) == '_')
					{
						Message="Invalid entry, last character can not be underscore.\nPlease re-enter";
						return returnfalse(Message,ObjField);
					}
					ObjPattern= /^\w+[.]*\w*$/gi; //login id
					Message="Invalid entry, only alphabets, digits, dot and underscores are allowed.\nPlease re-enter";
					break;
			case 14://hexadecimal code
					ObjPattern= /^#[A-Fa-f0-9]{6}$/gi; 
					Message="Invalid entry, Please enter correct Hexadecimal code.";
					break;
			case 15://for address or comments (not to go on host)
					ObjPattern= /^[^'\"<>]+$/gi;
					Message="Invalid entry,  apostrophes ('), double quotes (\"), less then (<) and greater then (>) signs are not allowed.\nPlease re-enter";
					break;
			case 16:
					ObjPattern= /^[0-9]+$/gi; //for queue no.
					Message="Invalid entry, only digits are allowed.\nPlease re-enter";
					break;
			case 17:
					ObjPattern= /^[a-zA-Z0-9-&(). ]+$/gi; //for Agency Name
					Message="Invalid entry, only alphabets, digits, hyphen, space, parenthese, dot and amprasand(&) are allowed.\nPlease re-enter";
					break;
			case 18:
					ObjPattern= /^[0-9-, ]+$/gi; //for Agency Phone
					Message="Invalid entry, only digits, hyphen, space and quoma(,) are allowed.\nPlease re-enter";
					break;
		}
		if (!(ObjPattern.test(str)))
		{	return returnfalse(Message,ObjField); }
		ObjPattern.test(str) ///for netscape error handling
	}
	return true;
}

function returnfalse(Message,ObjField)
{
	alert(Message);
	ObjField.focus();
	ObjField.select();
	return false;
}

/** Function to compare two time values in hh:mm format
1  -> tmA < tmB
-1 -> tmA > tmB
0  -> tmA = tmB **/
function compareTime(tmA, tmB)
{
	var strA = tmA.split(":");
	var strB = tmB.split(":");
	var dt = new Date()
    var dtA = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), strA[0], strA[1], "00");
    var dtB = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), strB[0], strB[1], "00");

    if (dtA < dtB) {
    	return(1);
    }
    else {
         if (dtA > dtB)
         	return(-1);	
         else
         	return(0);
    }
}

//-- this function checks all the check box with the status of the main check box
function callGeneralCheckAll(thisElObj,checkBoxName, mainCounter, tempCounter)
{
	if(document.forms[0].elements[checkBoxName])
	{
		var obj = document.forms[0].elements[checkBoxName];
		
		if(isNaN(obj.length))
		{	
			if(obj.disabled == false)
			{
				obj.checked = thisElObj.checked ;
			}					
		}
		else
		{
			for(var i=0; i < obj.length ; i++)
			{
				if(obj[i].disabled == false)
				{
					obj[i].checked = thisElObj.checked ;
				}
			}
		}
	}	

	if(thisElObj.checked == false)
	{
		tempCounter = 0 ;
	}
	else
	{
		tempCounter = mainCounter ; 
	}	
	
	return tempCounter ;
}

//-- this function checks the main check box with the status of the check box currently checked
function callGeneralCheckMain(obj,checkBoxName, mainCounter, tempCounter)
{

	if(obj.checked == true)
	{
		tempCounter++ ;
		if(mainCounter == tempCounter)
		{
			document.forms[0].elements[checkBoxName].checked = true ;
		}
	}
	else
	{
		tempCounter-- ;
		document.forms[0].elements[checkBoxName].checked = false ;
	}

	return tempCounter ;
}

