/*
1 for IsAlphaString
2 for IsNumeric
3 for IsValidEmail
4 for isValidZipCode
5 for IsValidLength
6 for IsDecimalNumber
7 for IsValidDate
8 for IsEmpty
9 for IsMatchPassword
10 for CheckingCheckBox are filled
11 for Checking TextBox decimal values
12 for Check ComboBox selected
13 for checking allComboBox selected 
14 for checking duplication on whole form on TextBoxes
15 for checking duplication in Combobox value 
16 for Comparing two Date 
17 for Just Checking empty text box don't produces error
18 for Just Checking Text Area is not empty. return true and false 
19 for Atleast one combo box is selected 
20 for checking duplication in Combobox value with combobox staring name
21 IsValidMaxLength
22 IsValidMinLength
*/


function CheckForm(CheckCode,ControlName,Caption,MinValue,MaxValue,ControlName2)
{

if (CheckCode==1) 
	return IsAplhaString(ControlName,Caption );

else if (CheckCode==2) 
	return IsNumeric(ControlName,Caption );

else if (CheckCode==3) 
	return IsValidEmail(ControlName,Caption );

else if (CheckCode==4) 
	return IsValidZipCode(ControlName,Caption );

else if (CheckCode==5) 
	return IsValidLength(ControlName,Caption,MinValue,MaxValue);

else if (CheckCode==6) 
	return IsDecimalNumber(ControlName,Caption );

else if (CheckCode==7) 
	return IsValidDate(ControlName,Caption, MinValue );

else if (CheckCode==8) 
	return IsEmpty(ControlName,Caption );

else if (CheckCode==9)
	return IsMatchPassword(ControlName,ControlName2);

else if (CheckCode == 10)
	return IsCheckBoxChecked(ControlName, Caption, MinValue, MaxValue);

else if (CheckCode == 11)
	return IsTextBoxDecimal(ControlName, Caption);	

else if (CheckCode == 12)
	return IsComboBoxSelected(ControlName, Caption);	

else if (CheckCode == 13)
	return IsAllComboBoxSelected(ControlName, Caption, MinValue, MaxValue);	

// for checking that the text box is not duplicated  
else if (CheckCode == 14)
	return IsDuplicateTextBox(ControlName,MinValue,MaxValue,Caption,ControlName2);	

// for checking that the combo box is not duplicated  
else if (CheckCode == 15)
	return IsDuplicateComboBox(ControlName,Caption);	
	// for checking that the combo box is not duplicated	  
else if (CheckCode == 16)
	return IsCompareDate(ControlName,ControlName2);	

// for checking that field is not empty. No alert is generated
else if (CheckCode==17) 
	return IsEmptyTrue(ControlName);

// for checking that field is not empty. No alert is generated
else if (CheckCode==18) 
	return IsTextAreaEmptyTrue(ControlName);

// for checking at least one combo box is selected 
else if (CheckCode==19) 
	return IsOneComboBoxSelected(ControlName, Caption, MinValue, MaxValue, ControlName2);
	// for checking that the combo box is not duplicated  
else if (CheckCode == 20)
	return IsDuplicateComboBoxWithName(ControlName,Caption,MinValue);	

else if (CheckCode==21) 
	return IsValidMaxLength(ControlName,Caption,MinValue,MaxValue);

else if (CheckCode==22) 
	return IsValidMinLength(ControlName,Caption,MinValue,MaxValue);

else if (CheckCode==23)
    return CheckComboBoxSelected(ControlName,Caption,MinValue);

else if (CheckCode==24)
	return CheckValidDate(ControlName, Caption, MinValue);
}

// Function USe For Checking atleast one Check Box is selected;
function IsCheckBoxChecked(FormName, Caption, MinValue, MaxValue)
{
	if (MinValue == '' || MinValue == 0 || MinValue == null)
		MinValue = 0;
	
	if (MaxValue == '' || MaxValue == 0 || MaxValue == null)
		MaxValue = FormName.elements.length; 	
	for (i=MinValue; i<MaxValue; i++) 
	{
		if ((FormName.elements[i].type) == ("checkbox"))
			if (FormName.elements[i].checked == 1)
				return true;
	}
					
	if (Caption == "")
		alert ("Please check at least one check box");
	else
		alert ("Please check at least one " + Caption);
	return false;
}



// Function Use For Checking all TextBox should have integer value;
function IsTextBoxDecimal(FormName, Caption)
{
	for (i=0; i < FormName.elements.length ; i++) 
	{
		if ((FormName.elements[i].type) == ("text"))
			if(!(IsDecimalNumber(FormName.elements[i], "")))
			//if(isNaN(FormName.elements[i]))
			     return false;				
	}
	return true;
}




// IsAllComboBoxSelected , Check for all Combobox in the forms are selected 
// Caption would be multiple so for three combos e.g Caption = 'test1~test2~test3'

function IsAllComboBoxSelected (FormName , Caption, MinValue, MaxValue)
{
	var NameArray ;
	NameArray = Caption.split("~"); 
	
	
	if (MinValue == '' || MinValue == 0 || MinValue == null)
		MinValue = 0;
	
	if (MaxValue == '' || MaxValue == 0 || MaxValue == null)
		MaxValue = FormName.elements.length; 
	
	
	count = 0;
	for (i=MinValue; i< MaxValue; i++) 
	{
		if ((FormName.elements[i].type) == ("select-one"))
		{
			if (FormName.elements[i][FormName.elements[i].selectedIndex].text.length == 0 )
			{
				alert("Please select " + NameArray[count] + "");				
				FormName.elements[i].focus();				
				return false;
			}
			count++;
		}	
	}
	return true;
}


// IsAtLeastOneComboBoxSelected , Check for all Combobox in the forms are selected 
// Caption would be multiple so for three combos e.g Caption = 'test1~test2~test3'

function IsOneComboBoxSelected (FormName , Caption, MinValue, MaxValue, ControlName)
{
	//var NameArray ;
	//NameArray = Caption.split("~"); 
	
	
	if (MinValue == '' || MinValue == 0 || MinValue == null)
		MinValue = 0;
	
	if (MaxValue == '' || MaxValue == 0 || MaxValue == null)
		MaxValue = FormName.elements.length; 

	FirstComboIndex = 0;	
	for (i=MinValue; i< MaxValue; i++) 
	{
		if ((FormName.elements[i].type == "select-one") && (FormName.elements[i].name.substring(0,17) == "tblSaleForCastddl" ))
		{
			if (FirstComboIndex == 0)
				FirstComboIndex = i;
			if (trim(FormName.elements[i][FormName.elements[i].selectedIndex].text).length != 0 )
			{
				return true;		
			}
		}	
	}
	alert("Please select one of the " + Caption+ "");				
	FormName.elements[FirstComboIndex].focus();				
	return false;
}


// IsComboBoxSelected , Check for Combobox is selected 
function IsComboBoxSelected (Control , Caption)
{		
	if (Control.selectedIndex > -1)
	    if(trim(Control[Control.selectedIndex].text).length == 0 ) 
	    {
		    alert("Please select " + Caption + "");
		    Control.focus();		
		    return false;    	
	    }
	    else
	    {
	        return true;
	    }
	else
	{
	    alert("Please select " + Caption + "");
		Control.focus();		
	    return false;
	}
}



// isEmpty , Check for Empty
function IsEmpty (Control , Caption)
{
	if(trim(Control.value).length == 0 ) 
	{
		alert( Caption + " field cannot be empty");
		Control.focus();
		Control.select();		
		return false;
	}
	return true;
}

function IsRequired (ControlName)
{
	if(trim(ControlName.value).length == 0 ) 
	{
		return false;
	}
	return true;
}

// isEmpty , Check for Empty
function IsEmptyTrue (ControlName)
{
	if(trim(ControlName.value).length == 0 ) 
		return false;
	else
		return true;
}

// isEmpty , Check for Empty
function IsTextAreaEmptyTrue (ControlName)
{
//	if(trim(ControlName.text) == "" ) 
//		return false;
//	else
//		return true;
}


//Length Check Function 
function IsValidDays(Control, Caption, MaxValue) {
	if (trim(Control.value) > MaxValue)
	{
	    alert (Caption); 
		Control.focus();
		Control.select();
		return false ;
	}
	return true;
}



//Length Check Function 
function IsValidLength(ControlName, Caption, MinValue, MaxValue) {
	if ((trim(ControlName.value).length >= MinValue) && (trim(ControlName.value).length <= MaxValue))
		return true ;
	else
	{
		//alert ("The " + Caption + " is must be greater or equals to " + MinValue + " characters and less than or equals to "+MaxValue + " characters"); 
		alert ("The " + Caption + " is must be less than or equals to "+ MaxValue + " characters"); 
		ControlName.focus();
		ControlName.select();
		return false ;
	}
	return true;
}

function IsValidMaxLength(ControlName, Caption, MinValue, MaxValue) {
	if ((trim(ControlName.value).length <= MaxValue))
		return true ;
	else
	{
		alert ("The " + Caption + " must be less than " + MaxValue + " characters."); 
		ControlName.focus();
		ControlName.select();
		return false ;
	}
	return true;
}

function IsValidMinLength(ControlName, Caption, MinValue, MaxValue) {
	if ((trim(ControlName.value).length >= MinValue))
		return true ;
	else
	{
		alert ("The " + Caption + " must be greater than or equals to " + MinValue + " characters."); 
		ControlName.focus();
		ControlName.select();
		return false ;
	}
	return true;
}

// Decimal Check Function
function IsDecimalNumber(ControlName, Caption)
{
	
	if (isNaN(ControlName.value))
	{
		alert("Please enter only digits in the " + Caption + " field.");
		ControlName.focus();
		ControlName.select();
		return false;
	}
  return true ;
}


// IsNumeric Function to Validate Numeric Values
function IsNumeric(ControlName, Caption)
{
	if (trim(ControlName.value).length == 0 )
		return true;

	checkOK = "-0123456789";
	checkStr = ControlName.value ;
	allValid = true;
	decPoints = 0;
	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;
			}
			if (ch == ".")
			{
				allNum += ".";
				decPoints++;
			}
			else
			allNum += ch;
	}
	if (!allValid)
	{
		alert("Please enter only digits in the " + Caption + " field.");
		ControlName.focus();
		ControlName.select();
		return (false);
	}
  
	if (decPoints > 0)
	{
		alert("Please enter a valid number in the " + Caption + " field.");
		ControlName.focus();
		ControlName.select();
		return (false);
	}
	return true ;
}


// Check Date for Validaty 
function IsValidDate(ControlName, Caption, CheckYear)
{
	if (trim(ControlName.value).length == 0 )
		return true;
	
	var varMonth="";
	var varDay="";	
	var varYear="";
	
	str=ControlName.value.split("/");
	
	if ((str[0] == null) ||  (str[1] == null) ||  (str[2] == null))
	{
		alert ("Invalid " + Caption + ". \n Please enter the Date Again") ; 
		ControlName.focus();
		ControlName.select();
		return false ; 
	}
	
	varMonth=str[0];
	varDay=str[1];	
	varYear= str[2]; //parseInt(str[2], 10);	

		/// Checking that year should be less then the current year
	
	//RightNow=new Date();
	//alert(RightNow.getFullYear());
  
	if (CheckYear == 1)
	{
		today = new Date();
		if ( parseInt(varYear,10) >= 1753 )
		{
			if (varYear > today.getFullYear())
				{ alert("The year is greater then the current year!"); 
					ControlName.focus();
					ControlName.select();
					return false ; }
		}
	}
			
	if (varDay.length == 0 )
	{
		alert ("Invalid " + Caption + " day.\n Please enter the Date Again") ; 
		ControlName.focus();
		ControlName.select();
		return false ; 
	}
	else if (varMonth.length == 0 )
	{
		alert ("Invalid " + Caption + " month.\n Please enter the Date Again") ; 
		ControlName.focus();
		ControlName.select();		
		return false ; 
	}
	else if (!(varYear>= 1753 && varYear<= 9999))
	//else if (varYear.length != 4 )
	{
		alert ("Invalid " + Caption + " year.\n Please enter the Date Again") ; 
		ControlName.focus();
		ControlName.select();
		return false ; 
	}

	else if (parseInt(varDay,10) < 1 || parseInt(varDay,10) > 31)
	{
		alert ("Invalid " + Caption + " day.\n Please enter the Date Again");		
		ControlName.focus();
		ControlName.select();
		return false;
	}
	else if (parseInt(varMonth,10) < 1 || parseInt(varMonth,10) > 12)
	{
		
		alert ("Invalid " + Caption + " month.\n Please enter the Date Again");
		ControlName.focus();
		ControlName.select();		
		return false ;
	}
	else if (varMonth == 2 )
	{
		if (varDay.value > 29)
		{
			alert ("Invalid " + Caption + " day with respect to month");
			ControlName.focus();
			ControlName.select();			
			return false ;
		}
	}
	else if (varMonth == 4 || varMonth == 6 || varMonth == 9 || varMonth == 11 )
	{
		if (varDay > 30 )
		{
			alert ("Invalid " + Caption + " day with respect to month");
			ControlName.focus();
			ControlName.select();
			return false ;
		}		
	}

	return true ; 
}


// Check for String 
function IsAplhaString(ControlName, Caption)
{
	checkOK = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
	checkStr = ControlName.value ;
	allValid = true;
	decPoints = 0;
	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;
			}
			if (ch == ".")
			{
				allNum += ".";
				decPoints++;
			}
			else
			allNum += ch;
	}
	if (!allValid)
	{
		alert("Please enter only Alpha String in the " + Caption + " field.");
		ControlName.focus();
		ControlName.select();
		return (false);
	}
  
	if (decPoints > 0)
	{
		alert("Please enter a valid Alpha String in the " + Caption + " field.");
		ControlName.focus();
		ControlName.select();
		return (false);
	}
	return true ;
}


// Validate for Email , isValidEmail
function IsValidEmail(ControlName, Caption)
{
	if (trim(ControlName.value).length == 0 )
		return true;
	
	str=ControlName.value;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	
	if (filter.test(str))	
		return true;
	else 
	{
		alert("Please enter a valid Email Address  in the " + Caption + " field.");
		ControlName.focus();
		ControlName.select();	
		return false;
	} 
}



// Validate for ZipCode , isValidZipCode
function IsValidZipCode(ControlName, Caption)
{
	if (trim(ControlName.value).length == 0 )
		return true;
	
	str=ControlName.value;
	var filter  = /\d{5}(-\d{4})?/ ;
	if (filter.test(str))	
		return true;
	else 
		{
			alert("Please enter a valid ZipCode in the " + Caption + " field.");
			ControlName.focus();
			ControlName.select();
			return false;
		}
}

/// This function is used to triming the data as there are now function 
// available in javascript 
function ltrim(str)
{
	while(""+str.charAt(0)==" ")
		str=str.substring(1,str.length);
	return str;
}

/// This function is used to triming the data as there are now function 
// available in javascript. This is called with the trim 

function reverse(str)
{
	var reversedstr = "";
	var strArray;
	strArray = str.split("");
	for(var i = str.length -1 ;i>= 0 ; i--)
	{
		reversedstr += strArray[i];
	}
	return reversedstr;
}

/// This function is used to triming the data as there are now function 
// available in javascript. It will first call the lrtim and then reverse and again call the ltrim

function trim(str)
{
	str = ltrim(str);
	str = reverse(str);
	str = ltrim(str);
	str = reverse(str);
	return str;
}

function IsMatchPassword(ControlName1,ControlName2)

{
	if (trim(ControlName1.value) == trim(ControlName2.value))
		return true;
	else 
	{
		alert ("The passwords do not match. Please re-enter the password");
		ControlName1.focus();
		ControlName1.select();
		return false ;
	}
}


function IsDuplicateTextBox(FormName, MinValue, MaxValue, Caption, HTMLControlName)
{
	for (i=0; i<FormName.elements.length; i++) 
		if ( (FormName.elements[i].type == "text") && (FormName.elements[i].name.substring(MinValue,MaxValue) == HTMLControlName))
			for (j=i+1; j<FormName.elements.length; j++) 
				if ( (FormName.elements[j].type == "text") && (FormName.elements[j].name.substring(MinValue,MaxValue) == HTMLControlName)) 
					if  (FormName.elements[i].value == FormName.elements[j].value) 
					{							
						alert(Caption + " cannot be duplicated");
						FormName.elements[j].focus();
						FormName.elements[j].select();																					
						return false;
					}
					
	return true;			
}
			
// for checking the duplicate values in the combo box 			
function IsDuplicateComboBox(FormName, Caption)
{
	for (i=0; i<FormName.elements.length; i++) 
		if (FormName.elements[i].type == "select-one") 
		{

			for (j=i+1; j<FormName.elements.length; j++) 
				if (FormName.elements[j].type == "select-one") 
					if  (( FormName.elements[i][FormName.elements[i].selectedIndex].text == FormName.elements[j][FormName.elements[j].selectedIndex].text) 
						&& (( FormName.elements[i][FormName.elements[i].selectedIndex].text != "") )) //||(FormName.elements[i][FormName.elements[i].selectedIndex].text != null)))
					{							
						alert(Caption + " cannot be duplicated");
						FormName.elements[j].focus();						
						return false;
					}
		}			
	return true;			
}


function IsCompareDate(Control1, Control2, msg)
{

    var dateVar1 = Control1.value.split('/');
    var dateVar2 = Control2.value.split('/');
    
    var f = new Date(dateVar1[1] + '/' +  dateVar1[0] + '/' + dateVar1[2]);
    var n = new Date(dateVar2[1] + '/' +  dateVar2[0] + '/' + dateVar2[2]);     
    
    
  if (f.getTime() > n.getTime())
    {
        alert(msg);
		Control1.focus();
		Control1.select();
        return false;
    }
    else
        return true;
}

function IsValidDateRange(From, To, Val, Caption)
{

    var dateVar1 = From.value.split('/');
    var dateVar2 = To.value.split('/');
    var dateVar3 = Val.value.split('/');

    var f = new Date(dateVar1[1] + '/' +  dateVar1[0] + '/' + dateVar1[2]);
    var t = new Date(dateVar2[1] + '/' +  dateVar2[0] + '/' + dateVar2[2]); 
    var v = new Date(dateVar3[1] + '/' +  dateVar3[0] + '/' + dateVar3[2]);    
    
   
    
    
  if (    (v.getTime() < f.getTime())  || (v.getTime() > t.getTime())   )
    {
        alert(Caption);
		Val.focus();
		Val.select();
        return false;
    }
    else
        return true;
	
}



//for checking duplicate value in combo box with combo box starting name
			
function IsDuplicateComboBoxWithName(FormName, Caption, MinValue)
{
	for (i=0; i<FormName.elements.length; i++) 		
		if ((FormName.elements[i].type == "select-one")  && (FormName.elements[i].name.substring(0,MinValue.length) == MinValue))
		{
			for (j=i+1; j<FormName.elements.length; j++) 
				if ((FormName.elements[j].type == "select-one") && (FormName.elements[j].name.substring(0,MinValue.length) == MinValue)) 
						if  (( FormName.elements[i][FormName.elements[i].selectedIndex].text == FormName.elements[j][FormName.elements[j].selectedIndex].text) 
							&& (( FormName.elements[i][FormName.elements[i].selectedIndex].text != "") )) 
						{	
							alert(Caption + " cannot be duplicated");
							FormName.elements[j].focus();						
							return false;
						}						
		}
	return true;			
}			

function ValidatorTrim(s){
	var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
	return (m == null) ? "" : m[1];
}		
			
function Replace(string,text,by) {
// Replaces text with by in string
alert(string);
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

function CheckCkbyesOld(){
var retVal = false;
for (var c = 0; c < document.Form1.elements.length; c++)
if (document.Form1.elements[c].type == 'checkbox')
	if (Left(document.Form1.elements[c].id,6)=='ckbyes' ) {
try{
	var ck1 = document.getElementById(document.Form1.elements[c].id);
	if (ck1.checked == true){
	retVal = true;
	break;
	} 
	}catch(e){}		
	}
return  retVal;   
}


function CheckComboBoxSelected (ControlName, Caption, DefaultVal)
{	
	if(trim(ControlName[ControlName.selectedIndex].text) == DefaultVal ) 
	{
		alert("Please select " + Caption + "");
		ControlName.focus();
		return false;
	}
	return true;
}

function CheckValidDate(ControlName, Caption, Format)
{	
    //alert(Format);
	if(!isDate(ControlName.value,Format)) 
	{
		alert ("Invalid " + Caption + ". \n Please enter the date again") ; 
		ControlName.focus();
		return false;
	}
	return true;
}

/*Date functions*/
var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');

function LZ(x){return(x<0||x>9?"":"0")+x}
function isDate(val,format){
//alert(getDateFromFormat(val,format));
var date=getDateFromFormat(val,format);
if(date==0){return false;
}return true;

}
function compareDates(date1,dateformat1,date2,dateformat2){
var d1=getDateFromFormat(date1,dateformat1);
var d2=getDateFromFormat(date2,dateformat2);
//alert(date1+","+d1+","+date2+","+d2);
//alert(date1+","+d1+","+date2+","+d2+", "+dateformat2 );
if(d1==0 || d2==0){return -1;
}else if(d1 > d2){return 1;
}return 0;
}
function formatDate(date,format)
{format=format+"";
var result="";
var i_format=0;
var c="";
var token="";
var y=date.getYear()+"";
var M=date.getMonth()+1;
var d=date.getDate();
var E=date.getDay();
var H=date.getHours();
var m=date.getMinutes();
var s=date.getSeconds();
var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,KK,K,kk,k;
var value=new Object();
if(y.length < 4){y=""+(y-0+1900);
}value["y"]=""+y;
value["yyyy"]=y;
value["yy"]=y.substring(2,4);
value["M"]=M;
value["MM"]=LZ(M);
value["MMM"]=MONTH_NAMES[M-1];
value["NNN"]=MONTH_NAMES[M+11];
value["d"]=d;
value["dd"]=LZ(d);
value["E"]=DAY_NAMES[E+7];
value["EE"]=DAY_NAMES[E];
value["H"]=H;
value["HH"]=LZ(H);
if(H==0){value["h"]=12;
}else if(H>12){value["h"]=H-12;
}else{value["h"]=H;
}value["hh"]=LZ(value["h"]);
if(H>11){value["K"]=H-12;
}else{value["K"]=H;
}value["k"]=H+1;
value["KK"]=LZ(value["K"]);
value["kk"]=LZ(value["k"]);
if(H > 11){value["a"]="PM";
}else{value["a"]="AM";
}value["m"]=m;
value["mm"]=LZ(m);
value["s"]=s;
value["ss"]=LZ(s);
while(i_format < format.length){c=format.charAt(i_format);
token="";
while((format.charAt(i_format)==c) &&(i_format < format.length)){token += format.charAt(i_format++);
}if(value[token] != null){result=result + value[token];
}else{result=result + token;
}}return result;
}

function _isInteger(val){var digits="1234567890";
for(var i=0;
i < val.length;
i++){if(digits.indexOf(val.charAt(i))==-1){return false;
}}return true;
}
function _getInt(str,i,minlength,maxlength){for(var x=maxlength;
x>=minlength;
x--){var token=str.substring(i,i+x);
if(token.length < minlength){return null;
}if(_isInteger(token)){return token;
}}return null;
}
function getDateFromFormat(val,format){
val=val+"";
format=format+"";
var i_val=0;
var i_format=0;
var c="";
var token="";
var token2="";
var x,y;
var now=new Date();
var year=now.getYear();
var month=now.getMonth()+1;
var date=1;
var hh=now.getHours();
var mm=now.getMinutes();
var ss=now.getSeconds();
var ampm="";
while(i_format < format.length){c=format.charAt(i_format);
token="";
while((format.charAt(i_format)==c) &&(i_format < format.length)){token += format.charAt(i_format++);
}if(token=="yyyy" || token=="yy" || token=="y"){if(token=="yyyy"){x=4;
y=4;
}if(token=="yy"){x=2;
y=2;
}if(token=="y"){x=2;
y=4;
}year=_getInt(val,i_val,x,y);
if(year==null){return 0;
}i_val += year.length;
if(year.length==2){if(year > 70){year=1900+(year-0);
}else{year=2000+(year-0);
}}}else if(token=="MMM"||token=="NNN"){month=0;
for(var i=0;
i<MONTH_NAMES.length;
i++){var month_name=MONTH_NAMES[i];
if(val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()){if(token=="MMM"||(token=="NNN"&&i>11)){month=i+1;
if(month>12){month -= 12;
}i_val += month_name.length;
break;
}}}if((month < 1)||(month>12)){return 0;
}}else if(token=="EE"||token=="E"){for(i=0;
i<DAY_NAMES.length;
i++){var day_name=DAY_NAMES[i];
if(val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()){i_val += day_name.length;
break;
}}}else if(token=="MM"||token=="M"){month=_getInt(val,i_val,token.length,2);
if(month==null||(month<1)||(month>12)){return 0;
}i_val+=month.length;
}else if(token=="dd"||token=="d"){date=_getInt(val,i_val,token.length,2);
if(date==null||(date<1)||(date>31)){return 0;
}i_val+=date.length;
}else if(token=="hh"||token=="h"){hh=_getInt(val,i_val,token.length,2);
if(hh==null||(hh<1)||(hh>12)){return 0;
}i_val+=hh.length;
}else if(token=="HH"||token=="H"){hh=_getInt(val,i_val,token.length,2);
if(hh==null||(hh<0)||(hh>23)){return 0;
}i_val+=hh.length;
}else if(token=="KK"||token=="K"){hh=_getInt(val,i_val,token.length,2);
if(hh==null||(hh<0)||(hh>11)){return 0;
}i_val+=hh.length;
}else if(token=="kk"||token=="k"){hh=_getInt(val,i_val,token.length,2);
if(hh==null||(hh<1)||(hh>24)){return 0;
}i_val+=hh.length;
hh--;
}else if(token=="mm"||token=="m"){mm=_getInt(val,i_val,token.length,2);
if(mm==null||(mm<0)||(mm>59)){return 0;
}i_val+=mm.length;
}else if(token=="ss"||token=="s"){ss=_getInt(val,i_val,token.length,2);
if(ss==null||(ss<0)||(ss>59)){return 0;
}i_val+=ss.length;
}else if(token=="a"){if(val.substring(i_val,i_val+2).toLowerCase()=="am"){ampm="AM";
}else if(val.substring(i_val,i_val+2).toLowerCase()=="pm"){ampm="PM";
}else{return 0;
}i_val+=2;
}else{if(val.substring(i_val,i_val+token.length)!=token){return 0;
}else{i_val+=token.length;
}}}if(i_val != val.length){return 0;
}if(month==2){if( ((year%4==0)&&(year%100 != 0) ) ||(year%400==0) ){if(date > 29){return 0;
}}else{if(date > 28){return 0;
}}}if((month==4)||(month==6)||(month==9)||(month==11)){if(date > 30){return 0;
}}if(hh<12 && ampm=="PM"){hh=hh-0+12;
}else if(hh>11 && ampm=="AM"){hh-=12;
}var newdate=new Date(year,month-1,date,hh,mm,ss);
return newdate.getTime();

}
function parseDate(val){var preferEuro=(arguments.length==2)?arguments[1]:false;
generalFormats=new Array('y-M-d','MMM d, y','MMM d,y','y-MMM-d','d-MMM-y','MMM d');
monthFirst=new Array('M/d/y','M-d-y','M.d.y','MMM-d','M/d','M-d');
dateFirst =new Array('d/M/y','d-M-y','d.M.y','d-MMM','d/M','d-M');
var checkList=new Array('generalFormats',preferEuro?'dateFirst':'monthFirst',preferEuro?'monthFirst':'dateFirst');
var d=null;
for(var i=0;
i<checkList.length;
i++){var l=window[checkList[i]];
for(var j=0;
j<l.length;
j++){d=getDateFromFormat(val,l[j]);
if(d!=0){return new Date(d);
}}}return null;
}


function addCommas( sValue ) 
{ 
    var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})'); 
    while(sRegExp.test(sValue)) 
    { 
        sValue = sValue.replace(sRegExp, '$1,$2'); 
    } 
    return sValue; 
} 


function LeapYear(intYear) 
{
    if (intYear % 100 == 0) 
    {
        if (intYear % 400 == 0) 
        { 
            return true; 
        }
     }            
     else 
     {
        if ((intYear % 4) == 0) 
        { 
            return true; 
        }
    }
    return false;
}	



function SelectCheckBox(FormName)
{
	
	for (i=0; i< FormName.elements.length; i++) 
	{
		if ((FormName.elements[i].type) == ("checkbox"))
		{	
			FormName.elements[i].checked = true;							
		}	
	}
	return false;
}

function UnSelectCheckBox(FormName)
{
	
	for (i=0; i< FormName.elements.length; i++) 
	{
		if ((FormName.elements[i].type) == ("checkbox"))
		{	
			FormName.elements[i].checked = false;							
		}	
	}
	return false;
}
