<!-- Hide
	function isValidInteger()
	{
		if (arguments.length != 1)
			return false;
		if (Trim(arguments[0] + '')== "")	
		    	return false;
		return parseInt(Number(arguments[0])) == arguments[0];
	}
	function sValidateInteger()
	{
		var smRegExpr = new RegExp('[^0-9]');

		if (arguments.length != 1)
			return('ValidateInt : Invalid No. of arguments');

		if (smRegExpr.test(arguments[0]))
			return ('Invalid Integer');

		if ((isNaN(arguments[0])) | (isNaN(parseInt(arguments[0],10))))
			return ('Invalid Integer');

		return ("");
	}
	
	function isAllSpaces(textBox)
	{	var matchstr = textBox.value.match(/ /g);
		if ( matchstr == null )
			return false;
		else if ( matchstr.length == textBox.value.length )
			return true;
		else
			return false;
	}
		
	function isValidFloat()
	{
		if (arguments.length != 1)
			return false;
		return parseFloat(arguments[0]) == arguments[0];
	}
	
	function isValidCurrency()
	{
		if (arguments.length != 1)
			return false;
		return isValidFloat(arguments[0]);
	}

	function Trim(str)
	{
		var i;
		var len = str.length;
		for (i=0; i<len; i++)
			if (str.charAt(i) != " ")
				break;
		str = str.substring(i,str.length);

		var len = str.length;
		for (i=str.length-1; i>=0; i--)
			if (str.charAt(i) != " ")
				break;
		str = str.substring(0,i+1);
		return str;
	}
	
	function formatCurrency(number) 
	{
          var number = number.toString().replace(/\$|\,/g,'');
          number = Math.floor(number*100+0.50000000001);
          var cents = number%100;
          number = Math.floor(number/100).toString();
          if(cents<10) 
               cents ="0" + cents;
          return (number + '.' + cents);
     }
     	

	function replace(strString, strFind, strReplace)
	{
		var i, tempString;
		var len = strString.length;
		
		tempString = '';
		for (i=0; i<len; i++)
			if (strString.charAt(i) == strFind)
				tempString = tempString + strReplace;
			else
				tempString = tempString + strString.charAt(i);
		return tempString;
	}

	function sValidateInt()
	{
		var smRegExpr = new RegExp('[^0-9.-]');

		if (arguments.length != 1)
			return('ValidateInt : Invalid No. of arguments');

		if (smRegExpr.test(arguments[0]))
			return ('Invalid Integer');

		if ((isNaN(arguments[0])) | (isNaN(parseInt(arguments[0],10))))
			return ('Invalid Integer');

		return ("");
	}

	function sValidateDate()	//	Using over-loaded isValidDate() function
	{
		if (arguments.length <= 0 || arguments.length > 4)	
			return("");
		
		var blnReturnValue;
		if (arguments.length == 1)
			blnReturnValue = isValidDate(arguments[0]);
		else if (arguments.length == 2)
			blnReturnValue = isValidDate(arguments[0], arguments[1]);
		else if (arguments.length == 3)
			blnReturnValue = isValidDate(arguments[0], arguments[1], arguments[2]);
		else if (arguments.length == 4)
			blnReturnValue = isValidDate(arguments[0], arguments[1], arguments[2], arguments[3]);
			
		if ( blnReturnValue	)
			return("");
		else
			return("Invalid Date ");
	}

/*
	Argument Count
	1)	-->	strDate (Default Format : "mdy", Date Separator : "/"
	2)	-->	strDate, Date Format  ( Default Separator : "/" )	==>> Date Format must be having 3 characters 'd', 'm' 'y' in any sequence.
	3)	-->	strDate, Date Format, Separator		D				==>> Date Format must be having 3 characters 'd', 'm' 'y' in any sequence.
	4)	-->	int[D/M/Y], int[D/M/Y], int[D/M/Y], Date Format		==>> Date Format must be having 3 characters 'd', 'm' 'y' in any sequence.  
*/	

	function isValidDate()
	{
		var strDate, strDateFormat, strSeparator;
		var intDay, intMonth, intYear;
		var intD, intM, intY;
		
		if (arguments.length <= 0)			//	No Argument passed
			return false;

		if (arguments.length == 1)			//	Only one argument comes. Assume that it's in 'dmy' format with separator '/'
		{
			strDate = arguments[0];	
			strDateFormat = 'dmy';
			strSeparator = '/';
		}
		else if (arguments.length == 2)		//	Exact two arguments come.	First --> Date and Second --> Date Format, Default separator --> '/'
		{
			strDate = arguments[0];
			strDateFormat = arguments[1].toLowerCase();	
			strSeparator = '/';
		}
		else if (arguments.length == 3)		// Exact three arguments come. First --> Date, Second --> Date Format And Third --> Separator
		{
			strDate = arguments[0];
			strDateFormat = arguments[1].toLowerCase();
			strSeparator = arguments[2];
		}
		else if (arguments.length == 4)		//	Exact four arguments come. First Three are 'Date', 'Month' and 'Year' and 4th argument is Date Format. Default Separator --> '/'
		{
			strSeparator = "/";
			strDateFormat = arguments[3].toLowerCase();		//	Any combination of 'd', 'm' and 'y' character

			intD = strDateFormat.indexOf('d');		//	Find sequence inside arguments
			intM = strDateFormat.indexOf('m');
			intY = strDateFormat.indexOf('y');

			if ( intD < 0 || intM < 0 || intY < 0 || intD > 2 || intM > 2 || intY > 2 )		// Validation
				return false;
			
			intDay = arguments[intD];
			intMonth = arguments[intM];
			intYear = arguments[intY];
		}
		
		if (arguments.length != 4)
		{
			var aryDate = strDate.split(strSeparator);		// Split Date string
			if ( aryDate.length != 3 )	//	Three part not found.
				return false;
						
			intD = strDateFormat.indexOf('d');	//	Find sequence inside Date String
			intM = strDateFormat.indexOf('m');
			intY = strDateFormat.indexOf('y');
			
			if ( intD < 0 || intM < 0 || intY < 0 || intD > 2 || intM > 2 || intY > 2 )		// Validation
				return false;
			
			intDay = aryDate[intD];
			intMonth = aryDate[intM];
			intYear = aryDate[intY];
		}

		if ( !isValidInteger(intDay) )
			return false;
		if ( !isValidInteger(intMonth) )	//	intMonth may have value like 'Jan' / 'Feb' .... so it fails here this test
		{
			intMonth = getMonth(intMonth)	//	Get Actual month value 1,2,3...
			if ( intMonth <= 0 )			//	intMonth doesn't hold valid string month value
				return false;
		}
		if ( !isValidInteger(intYear) )
			return false;
			
		var strTempDate = new Date(intMonth + '/' + intDay + '/' + intYear);

		//	Strange logic !!?, That is because of flexible behavior of Date class of Java Script.
		if ((strTempDate.getDate() != parseInt(intDay,10)) || ((strTempDate.getMonth()+1) != parseInt(intMonth,10)) || (strTempDate.getFullYear() != (parseInt(intYear,10))))
			return false;	// ('Invalid Date ');
			
		return true;	//	Valid Date
	}
	
	
	function getMonth(strMonth)
	{
		var strMonth = strMonth.toLowerCase();
		if ( strMonth == 'jan')	return 1;
		if ( strMonth == 'feb')	return 2;
		if ( strMonth == 'mar')	return 3;
		if ( strMonth == 'apr')	return 4;
		if ( strMonth == 'may')	return 5;
		if ( strMonth == 'jun')	return 6;
		if ( strMonth == 'jul')	return 7;
		if ( strMonth == 'aug')	return 8;
		if ( strMonth == 'sep')	return 9;
		if ( strMonth == 'oct')	return 10;
		if ( strMonth == 'nov')	return 11;
		if ( strMonth == 'dec')	return 12;
		return 0;
	}

	function sValidateMailAddress(addr)
	{
		/*
		var smRegExp = new RegExp('^[^.@][^@]\*@[^.@][^@]\*.[^.@]\*[^@]\*[^.@]\+$');

		if (arguments.length != 1) 
			return ('ValidateMailAddress : Invalid No. of Arguments ');
		if (smRegExp.test(arguments[0]))
			return ("");
		else
			return ('Invalid email address ');
		*/
		//alert("I am here");	
		if (arguments.length != 1) 
			return ('ValidateMailAddress : Invalid No. of Arguments ');
		else
		{
			//alert("I am here");	
			var addr = new String(arguments[0]);
			//alert("I am here");	
			at = addr.indexOf("@");
			//alert("I am here");	
			dt = addr.lastIndexOf(".");
			//alert("I am here");	
			if ((at != -1) && (dt != -1) && (at != 0) && (dt > at) && (dt-at != 1) && (dt != addr.length-1))
				return "";
			else
				return "Invalid email address";
			alert("I am here");	
		}
	}
	
	function atLeastOneChecked(obj) {
		var flag = false;
		if ( obj.type == "checkbox" ) {
			if ( obj.status )
				flag = true
		} else {
			for( var i = 0 ; i< obj.length ; i++ ) {
				if ( obj[i].status ) {
					flag = true;
					break;
				}
			}
		}
		return flag;
	}	
	
	function sValidateDate_OLD()
	{
		var smDtStr, amRes, nmDD, nmMM, nmYY, dmDate, curDate;
		var smRegExpr = new RegExp('^\\d{1,2}[/-]\\d{1,2}[/-]\\d{4}$');

		if (arguments.length == 2)
		{
			smDtStr = arguments[0];
			if (smRegExpr.test(smDtStr))
			{
				amRes = smDtStr.split(new RegExp('[/-]'));
				if ((amRes == null) || (amRes.length != 3))
					return ('Invalid Date ');
				else
				{
					if (arguments[1] == 'dmy')
					{
						nmDD = amRes[0];
						nmMM = amRes[1];
					}
					else if (arguments[1] == 'mdy')
					{
						nmDD = amRes[1];
						nmMM = amRes[0];
					}
					else
						return ('Invalid Argument : ' + arguments[1]);

					nmYY = amRes[2];
				}
			}
			else
				return ('Invalid Date ');
		}
		else if (arguments.length == 4) 
		{
			if (arguments[3] == 'dmy')
			{
				nmDD = arguments[0];
				nmMM = arguments[1];
			}
			else if (arguments[3] == 'mdy')
			{
				nmDD = arguments[1];
				nmMM = arguments[0];
			}
			else
				return ('Invalid Argument : ' + arguments[3]);
			nmYY = arguments[2];


			if (sValidateInt(nmDD) != "")
				return('Invalid Day ');

			if (sValidateInt(nmMM) != "")
				return('Invalid Month ');
			if ((sValidateInt(nmYY) != "") || (parseInt(nmYY,10) < 1900))
				return('Invalid Year. Enter the year after 1899 ');
		}
		else
			return('ValidateDate : Invalid N0. of Arguments ');

		if ((nmDD > 31) || (nmDD < 1))
			return ('Invalid Day ');
		if ((nmMM > 12) || (nmMM < 1))
			return ('Invalid Month ');
		if (nmYY < 1900)
			return ('Invalid Year. Enter the year after 1899 ');

		dmDate = new Date(nmMM + '/' + nmDD + '/' + nmYY);

		if ((dmDate.getDate() != parseInt(nmDD,10)) || ((dmDate.getMonth()+1) != parseInt(nmMM,10)) || (dmDate.getFullYear() != (parseInt(nmYY,10))))
			return('Invalid Date ');

		return("");
	}

// End Hide -->


