/* 
	This file handles the javascript validations for the date fields
*/
var space_comm	=	" \t\n\r"
var alertmes	=	"only numbers"
var datealert = "Please enter a Date in Day/Month/Year format.";
var datecheck = "Please enter a Date in Day/Month/Year format.";
var dateless = "Please enter a Date less than System Date.";
var datemore = "Please enter a Date greater than System Date.";
var datechange = "Could not change the date format!";
var togreat	= "Please enter a To Date greater than or equal to From Date.";

function warninvalid(field, datealert)
{
	alert(datealert) ;
	field.focus() ;
	field.select() ;
}


function checkdate(field)
{
	if(isempty(field.value))
		return true
	if(!isdate(field.value)) 
		return warninvalid(field,datealert)
	if(!isdatevalid(field.value)) 
		return warninvalid(field,datecheck)
	else return true;
}

// Function for validating date field
function checkdate1(field,fname)
{
	alert("test1") ;
	if(isempty(field.value))
		return true
	if(!isdate(field.value)) 
		return warninvalid(field,datealert)
	if(!isdatevalid(field.value)) 
		return warninvalid(field,datecheck)
	if(!changeformat(field.value, fname))
		return warninvalid(field,datechange)		
	else return true;
}

// Function for validating on blur date field
function checkdateblur(field,form)
{
	if(isempty(field.value))
		return true
	if(!isdate(field.value)) 
		return warninvalid(field,datealert)
	if(!isdatevalid(field.value)) 
		return warninvalid(field,datecheck)
	if(!changeformatblur(field.value, form))
		return warninvalid(field,datechange)
	else return true;
}

//function for checking the empty field (old)
function isEmpty(field)		//	old
{
	var i;
	for(i=0;i<field.length;i++)
	{
		var c = field.charAt(i);
		if (space_comm.indexOf(c) == -1) 
		return false;
  }
     	return true;
}

//Checks the validity of the date of format dd/mm/yyyy
function isdate(field)
{
	var i;
	var flen = field.length;
	
	//loop for checking entries more than 10 or 8 digits
	if(!((flen == 10) || (flen >= 8)))
	{
		return false;
	}

	//loop for checking any characters other than 0 to 9 and / in the date field
	for(i=0;i<field.length;i++)
	{	
		var c=field.charAt(i);
		if(!((c >= 0) || (c <= 9) || (c == "/") || (c == ".") || (c == "-") || (c == " "))) 
		{
			return false;
		}
	}
	
	if(field.length == 10)
	{	
		for(i=0;i<2;i++)
		{
			var tdt = field.charAt(i);
			if(!((tdt >= 0) || (tdt <= 9)))	
			{
				return false;
			}
		}
		for(i=3;i<5;i++)
		{
			var tmm = field.charAt(i);
			if(!((tmm >= 0) || (tmm <= 9)))
			{
				return false;
			}
		}	
		for(i=6;i<10;i++)
		{
			var tyr = field.charAt(i);
			if(!((tyr >= 0) || (tyr <= 9)))
			{
				return false;
			}
		}
	
		var sep1 = field.charAt(2);
		var sep2 = field.charAt(5);
	
		if(!(((sep1 == "/") && (sep2 == "/")) || ((sep1 == ".") && (sep2 == ".")) || ((sep1 == "-") && (sep2 == "-")) || ((sep1 == " ") && (sep2 == " "))))
		{
			return false;
		}
		return true
	}
	else
	{
		for(i=0;i<8;i++)
		{
			var tmm = field.charAt(i);
//			if(!((tmm >= 0) || (tmm <= 9)))	
//			{
//				return false;
//			}
            if(!((c >= 0) || (c <= 9) || (c == "/") || (c == ".") || (c == "-") || (c == " "))) 
		    {
			    return false;
		    }
		}
	
		return true
	}
}

// Function for checking the date and month and year of format dd/mm/yyyy
function isdatevalid(date)
{
	//alert(date);
	//alert(date.length);
	//Taking the date,month,year field seperatly
	if(date.length == 10)
	{	
		var yr = date.substring(6,10);
		var mm = date.substring(0,2);
		var dt = date.substring(3,5);
	}
	else
	{
		var yr = date.substring(4,8);
		var mm = date.substring(0,1);
		var dt = date.substring(2,3);
	}
	
	//loop for checking the year 
	if(yr < 1900)
	{
		return false;
	}

	//Integer value of the field
	var intyr = parseInt(yr)	
	
	//loop for checking the month
	if(!((mm >= 1) && (mm <= 12)))
	{
		return false;
	}
	
	//loop for checking the date
	if(!((dt >=1) && (dt <=31)))
	{
		return false;
	}

	//loop for checking months with days 30	
	if((mm == "04") || (mm == "06") || (mm == "09") || (mm == "11"))
	{
		if(!(dt <= 30)) return false;
	}

	//alert(intyr);	

	if(mm == "02")
	{
		//if((intyr % 400) == 0)
		//{
		//	if(!(dt <= 30)) return false;
		//}
		//if(((intyr % 4) == 0) && ((intyr % 100) != 0))
		if( (intyr % 4) == 0 )
		{
			if(!(dt <= 29)) return false;
		}
		if((intyr % 4) != 0)
		{
			if(!(dt <= 28)) return false;
		}
	}
	return true
}

// Function for changing the display into mm/dd/yyyy format
function changeformat(date, fname)
{
	if(date.length == 10)
	{
		var sep1 = date.charAt(2);
		var sep2 = date.charAt(5);
		
		if(!((sep1 == "/") && (sep2 == "/")))
		{
			var getdate = date.value;
			var senddate = date.substring(0,2) + "/" + date.substring(3,5) + "/" + date.substring(6,10);
			fname.value= senddate;
			return true
		}
		else if((sep1 == "/") && (sep2 == "/"))
		{
			return true
		}	
	}
	else if(date.length == 8)
	{
		var getdate = date.value;
		var senddate = date.substring(0,2) + "/" + date.substring(2,4) + "/" + date.substring(4,8);
		fname.value= senddate;
		return true;
	}
}

// Function for changing the display into mm/dd/yyyy format on blur
function changeformatblur(date, form)
{
	
	if(date.length == 10)
	{
		var sep1 = date.charAt(2);
		var sep2 = date.charAt(5);
		
		if(!((sep1 == "/") && (sep2 == "/")))
		{
			var getdate = date.value;
			var senddate = date.substring(0,2) + "/" + date.substring(3,5) + "/" + date.substring(6,10);
			form.elements["datebox"].value= senddate;
			return true
		}
		else if((sep1 == "/") && (sep2 == "/"))
		{
			return true
		}	
	}
	else if(date.length == 8)
	{
		var getdate = date.value;
		var senddate = date.substring(0,2) + "/" + date.substring(2,4) + "/" + date.substring(4,8);
		form.elements["datebox"].value= senddate;
		return true;
	}
}


// Function for changing the display into mm/dd/yyyy format on blur
function addZeroformatblur(date, form)
{
	var arrDate;
	var getDate="";
	arrDate=date.value.split("/");
	//alert(arrDate.length);
	
	if(isEmpty(date.value))
	{
	    form.elements[date.id].value="";
	    return true
	}
	if(date.value.length==0 )
	{
	    form.elements[date.id].value="";
	    return true
	}
	else if(date.value.length<6)
	{
	    form.elements[date.id].value=date.value;
	    return true
	}   
	
	if(arrDate[0].length==1)
	{
	    getDate= getDate + "0" + arrDate[0] +"/";
	}
	else if (arrDate[0].length==2)
	    getDate=  getDate +  arrDate[0] +"/";
	
	if (arrDate.length >1 )    
	{
	    if(arrDate[1].length==1)
	    {
	        getDate= getDate + "0" + arrDate[1] +"/";
	    }
	    else if (arrDate[1].length==2)
	        getDate= getDate +  arrDate[1] +"/";
	 }   
	 if (arrDate.length >2 )    
	 {
	 
	    if(arrDate[2].length==2)
	    {
	        getDate= getDate + "20" + arrDate[2];
	    }
	    else if(arrDate[2].length==4)
	        getDate=getDate + arrDate[2];
	}
	//form.elements["date"].value=getDate;
	form.elements[date.id].value=getDate;
	
////	if(date.length == 10)
////	{, form
////		var sep1 = date.charAt(2);
////		var sep2 = date.charAt(5);
////		
////		if(!((sep1 == "/") && (sep2 == "/")))
////		{
////			var getdate = date.value;
////			var senddate = date.substring(0,2) + "/" + date.substring(3,5) + "/" + date.substring(6,10);
////			form.elements["datebox"].value= senddate;
////			return true
////		}
////		else if((sep1 == "/") && (sep2 == "/"))
////		{
////			return true
////		}	
////	}
////	else if(date.length == 8)
////	{
////		var getdate = date.value;
////		var senddate = date.substring(0,2) + "/" + date.substring(2,4) + "/" + date.substring(4,8);
////		form.elements["datebox"].value= senddate;
////		return true;
////	}
}

// Function for checking From and To date
function comparedate(fromfield,tofield)
{
	var from = fromfield.value
	var to = tofield.value
	
	//Taking the date,month,year field seperatly
	var f_yr = from.substring(6,10)
	var f_dt = from.substring(3,5)
	var f_mm = from.substring(0,2)
	
	//Integer value of the field
	var f_intyr = parseInt(f_yr)
	
	var temp_mm = from.substring(0,1)
	if(temp_mm == 0)
	{
		var f_temp_mm = from.substring(1,2)
		var f_intmm = parseInt(f_temp_mm)
	}
	else
	{
		var f_intmm = parseInt(f_mm)
	}
	
	var temp_dt = from.substring(3,4)
	if(temp_dt == "0")
	{
		var f_temp_dt = from.substring(4,5)
		var f_intdt = parseInt(f_temp_dt)
	}
	else
	{
		var f_intdt = parseInt(f_dt)
	}
	
	//Taking the date,month,year field seperatly
	var t_yr = to.substring(6,10);
	var t_dt = to.substring(3,5);
	var t_mm = to.substring(0,2);
	
	//Integer value of the field
	var t_intyr = parseInt(t_yr)
	
	var temp_dt_t= to.substring(3,4)
	if(temp_dt_t == "0")
	{
		var t_temp_dt = to.substring(4,5)
		var t_intdt = parseInt(t_temp_dt)
	}
	else
	{
		var t_intdt = parseInt(t_dt)
	}
	
	var temp_mm_t = to.substring(0,1)
	if(temp_mm_t == 0)
	{
		var t_temp_mm = to.substring(1,2)
		var t_intmm = parseInt(t_temp_mm)
	}
	else
	{
		var t_intmm = parseInt(t_mm)
	}	
	
	//loop for checking the dates
	if(f_intyr > t_intyr)
	{
		alert("From year greater than To year")
		fromfield.focus()
		fromfield.select()
		return false
	}
	else if(f_intyr == t_intyr)
	{
		if(f_intmm > t_intmm)
		{
			alert("From month greater than To month")
			fromfield.focus()
			fromfield.select()
			return false
		}
		else if(f_intmm == t_intmm)
		{
			if(f_intdt > t_intdt)
			{
				alert("From date greater than To date")
				fromfield.focus()
				fromfield.select()
				return false
			}
		}
	}
	return true
}

// Function for checking systems date greater than entered date
function checksystem(date)
{
	var field = date.value
	var sdate = new Date ;
	
	//Taking the date,month,year field seperatly
	var yr = field.substring(6,10);
	var dt = field.substring(3,5);
	var mm = field.substring(0,2);
	
	//Integer value of the field
	var intyr = parseInt(yr)	
	
	var temp_dt = field.substring(3,4)
	var temp_mm = field.substring(0,1)
	if(temp_dt == 0)
	{
		var temp_dt_int = field.substring(4,5)
		var intdt = parseInt(temp_dt_int)
	}
	else
	{
		var intdt = parseInt(dt)
	}
	
	if(temp_mm == 0)
	{
		var temp_mm_int = field.substring(1,2)
		var intmm = parseInt(temp_mm_int)
	}
	else
	{
		var intmm = parseInt(mm)
	}
	
	var currentdate = (sdate.getMonth() + 1) + "/" + sdate.getDate() + "/" + sdate.getYear();
	
	//Taking the date,month,year field seperatly
	var sysyr = currentdate.substring(6,10);
	var sysdt = currentdate.substring(3,5);
	var sysmm = currentdate.substring(0,2);
	
	//Integer value of the field
	var intsysyr = parseInt(sysyr)	
	
	var temp_sysdt = currentdate.substring(3,4)
	var temp_sysmm = currentdate.substring(0,1)
	if(temp_sysdt == 0)
	{
		var temp_sysdt_int = currentdate.substring(4,5)
		var intsysdt = parseInt(temp_sysdt_int)
	}
	else
	{
		var intsysdt = parseInt(sysdt)
	}
	
	if(temp_sysmm == 0)
	{
		var temp_sysmm_int = currentdate.substring(1,2)
		var intsysmm = parseInt(temp_sysmm_int)
	}
	else
	{
		var intsysmm = parseInt(sysmm)
	}
	
	//loop for checking the greater values
	if (intyr > intsysyr)
	{
		alert(dateless)
		date.focus()
		date.select()
		return false
	} 
	else if(intyr == intsysyr)
	{
		if(intmm > intsysmm)
		{
			alert(dateless)
			date.focus()
			date.select()
			return false
		}
		else if(intmm == intsysmm)
		{
			if(intdt > intsysdt)
			{
				alert(dateless)
				date.focus()
				date.select()
				return false
			}
		}
		return true
	}
	
	return true;
}

// Function for allowing systems date greater than entered date
function checksystemmore(date)
{
	var field = date.value
	var sdate = new Date ;
	
	//Taking the date,month,year field seperatly
	var yr = field.substring(6,10);
	var dt = field.substring(3,5);
	var mm = field.substring(0,2);
	
	//Integer value of the field
	var intyr = parseInt(yr)	
	
	var temp_dt = field.substring(3,4)
	var temp_mm = field.substring(0,1)
	if(temp_dt == 0)
	{
		var temp_dt_int = field.substring(4,5)
		var intdt = parseInt(temp_dt_int)
	}
	else
	{
		var intdt = parseInt(dt)
	}
	
	if(temp_mm == 0)
	{
		var temp_mm_int = field.substring(1,2)
		var intmm = parseInt(temp_mm_int)
	}
	else
	{
		var intmm = parseInt(mm)
	}
	
	var currentdate = (sdate.getMonth() + 1) + "/" + sdate.getDate() + "/" + sdate.getYear();

	alert(currentdate)

	//Taking the date,month,year field seperatly
	var sysyr = currentdate.substring(6,10);
	var sysdt = currentdate.substring(3,5);
	var sysmm = currentdate.substring(0,2);
	
	//Integer value of the field
	var intsysyr = parseInt(sysyr)	
	
	var temp_sysdt = currentdate.substring(3,4)
	var temp_sysmm = currentdate.substring(0,1)
	if(temp_sysdt == 0)
	{
		var temp_sysdt_int = currentdate.substring(4,5)
		var intsysdt = parseInt(temp_sysdt_int)
	}
	else
	{
		var intsysdt = parseInt(sysdt)
	}

	if(temp_sysmm == 0)
	{
		var temp_sysmm_int = currentdate.substring(1,2)
		var intsysmm = parseInt(temp_sysmm_int)
	}
	else
	{
		var intsysmm = parseInt(sysmm)
	}
	
	//loop for checking the greater values
	if (intsysyr > intyr)
	{
		alert(datemore)
		date.focus()
		date.select()
		return false
	} 
	else if(intsysyr == intyr)
	{
		if(intsysmm > intmm)
		{
			alert(datemore)
			date.focus()
			date.select()
			return false
		}
		else if(intsysmm == intmm)
		{
			if(intsysdt > intdt)
			{
				alert(datemore)
				date.focus()
				date.select()
				return false
			}
		}
		return true
	}
	
	return true;
}

// Function for checking date with time 
// if dates equal it will return  0
// if firstdate  is greater it will return 1
// if seconddate  is greater it will return -1
// parameters are two valid datetime values or date values in string format
// Different Formats permissible are
//    01/31/2001 10:30 pm           -- Not supported by Netscape
//    January 31, 2001 10:30 pm     -- Supported by IE and Netscape

function checkdatetime(datefield1,datefield2)
{
	var temp_date1=Date.parse(datefield1);	
	var temp_date2=Date.parse(datefield2);
   	
   if(temp_date1==temp_date2)
	{
		return 0;
	}
	else
	{
		if(temp_date1 > temp_date2)
		{
			return 1;
		}
		else
		{
			return -1;
		}
	}
}

// Function for checking From and To date
function comparesystemdatemore(fromfield, pmsg)
{
	var from = fromfield.value ;
	var sdate = new Date ;
	var to = sdate.getDate() + "/" + (sdate.getMonth() + 1) + "/" + sdate.getYear();
	
	var t_dt = sdate.getDate() ;
	var t_mm = sdate.getMonth() + 1 ;
	var t_yr = sdate.getYear() ;


	//Taking the date,month,year field seperatly
	var f_dt = from.substring(0,2)
	var f_mm = from.substring(3,5)
	var f_yr = from.substring(6,10)

	
	//Integer value of the field
	var f_intyr = parseInt(f_yr)
	
	var temp_dt = from.substring(0,1)
	if(temp_dt == 0)
	{
		var f_temp_dt = from.substring(1,2)
		var f_intdt = parseInt(f_temp_dt)
	}
	else
	{
		var f_intdt = parseInt(f_dt)
	}
	
	var temp_mm = from.substring(3,4)
	if(temp_mm == "0")
	{
		var f_temp_mm = from.substring(4,5)
		var f_intmm = parseInt(f_temp_mm)
	}
	else
	{
		var f_intmm = parseInt(f_mm)
	}
	
	//Taking the date,month,year field seperatly
	
	//Integer value of the field
	var t_intyr = parseInt(t_yr)
	
	var temp_mm_t= to.substring(3,4)
	if(temp_mm_t == "0")
	{
		var t_temp_mm = to.substring(4,5)
		var t_intmm = parseInt(t_temp_mm)
	}
	else
	{
		var t_intmm = parseInt(t_mm)
	}
	
	var temp_dt_t = to.substring(0,1)
	if(temp_dt_t == 0)
	{
		var t_temp_dt = to.substring(1,2)
		var t_intdt = parseInt(t_temp_dt)
	}
	else
	{
		var t_intdt = parseInt(t_dt)
	}
	
	//loop for checking the dates
	if(f_intyr < t_intyr)
	{
		alert(pmsg)
		fromfield.focus()
		fromfield.select()
		return false
	}
	else if(f_intyr == t_intyr)
	{
		if(f_intmm < t_intmm)
		{
			alert(pmsg)
			fromfield.focus()
			fromfield.select()
			return false
		}
		else if(f_intmm == t_intmm)
		{
			if(f_intdt < t_intdt)
			{
				alert(pmsg)
				fromfield.focus()
				fromfield.select()
				return false
			}
		}
	}
	return true
}

function clong(pdate)
{ //Used to convert a date string to long datatype for date comparison
	var mlong = 0 ;
	if (isempty(pdate)) 
	{	alert('clong function')
		return mlong ;}
	var marray=pdate.split("/") ;
	mlong = padzero(marray[2], 4- marray[2].length) + "" + padzero(marray[1], 2- marray[1].length) + "" + padzero(marray[0], 2- marray[0].length) ;
	return mlong ;
}

function checkdateltdate(pdate1, pdate2,mesge)
{  //Used to compare 2 dates - Start & End Date
	var mdate1 ;
	var mdate2 ;
	var mdateval1 ;
	var mdateval2 ;
	if (clong(pdate1) * 1 > clong(pdate2) * 1)
	{
		alert(mesge) ;
		document.dataform.start_month.focus();
		return false ;
	}
	else
		return true ;
}

//Change display/validation dt format
function Dateformatchange_toddmmyyyy(col)
{		 
	var effective_date = col.value ;
	var pos_date = effective_date.indexOf("/",0) ;
	var pos_month = effective_date.indexOf("/",pos_date+1) ;
	var pos_year  = effective_date.substring(pos_month+1) ;
	
	if (!((pos_date == 1) || (pos_date == 2)))
	{	//alert("Please enter the Date in Day/Month/Year format.");
		return false;
	}

	//alert(pos_month);
	if (!((pos_month == 3) || (pos_month == 4) || (pos_month == 5)))
	{	//alert("Please enter the Date in Day/Month/Year format.");
		return false;
	}

	//alert(pos_year);
	if (isempty(pos_year)) 
	{	//alert("Please enter the Date in Day/Month/Year format.");
		return false;
	}
	if (! ((pos_year.length == 2) || (pos_year.length == 4)) )
	{	//alert("Please enter the Date in Day/Month/Year format.");
		return false;
	}
		
	if (pos_year.length == 2) pos_year = "20" + pos_year ; 
	//{	if ((pos_year >= 50) && (pos_year <= 99)) pos_year = "19" + pos_year; 
	//	else if((pos_year >= 0) && (pos_year <= 49)) pos_year = "20" + pos_year ; }

	var eff_date = effective_date.substring(0, pos_date)
	var eff_mon = effective_date.substring(pos_date+1, pos_month)

	if  (!((eff_mon >= 1) && (eff_mon <=12)))
	{	//alert("Please enter the Date in Day/Month/Year format.");
		return false;
	}

	if  (!((eff_date >= 1) && (eff_date <=31)))
	{	//alert("Please enter the Date in Day/Month/Year format.");
		return false;
	}

	if (pos_date == 1) 
	{	eff_date = "0" + eff_date;	
		if (pos_month != 4) eff_mon = "0" + eff_mon;
	}
	if (pos_date == 2) 
	{	if (pos_month == 4) eff_mon = "0" + eff_mon;
	}	

	col.value = eff_date +"/"+ eff_mon +"/"+ pos_year ;
	return true;
}

// Function for checking first date less than or equal to second date
function comparedatewithmsg(fromfield,tofield, pMsg)
{
	var from = fromfield.value
	var to = tofield.value
	
	//Taking the date,month,year field seperatly
	var f_yr = from.substring(6,10)
	var f_mm = from.substring(3,5)
	var f_dt = from.substring(0,2)
	
	//Integer value of the field
	var f_intyr = parseInt(f_yr)
	
	var temp_dt = from.substring(0,1)
	if(temp_dt == 0)
	{
		var f_temp_dt = from.substring(1,2)
		var f_intdt = parseInt(f_temp_dt)
	}
	else
	{
		var f_intdt = parseInt(f_dt)
	}
	
	var temp_mm = from.substring(3,4)
	if(temp_mm == "0")
	{
		var f_temp_mm = from.substring(4,5)
		var f_intmm = parseInt(f_temp_mm)
	}
	else
	{
		var f_intmm = parseInt(f_mm)
	}
	
	//Taking the date,month,year field seperatly
	var t_yr = to.substring(6,10);
	var t_mm = to.substring(3,5);
	var t_dt = to.substring(0,2);
	
	//Integer value of the field
	var t_intyr = parseInt(t_yr)
	
	var temp_mm_t= to.substring(3,4)
	if(temp_mm_t == "0")
	{
		var t_temp_mm = to.substring(4,5)
		var t_intmm = parseInt(t_temp_mm)
	}
	else
	{
		var t_intmm = parseInt(t_mm)
	}
	
	var temp_dt_t = to.substring(0,1)
	if(temp_dt_t == 0)
	{
		var t_temp_dt = to.substring(1,2)
		var t_intdt = parseInt(t_temp_dt)
	}
	else
	{
		var t_intdt = parseInt(t_dt)
	}	
	
	//loop for checking the dates
	if(f_intyr > t_intyr)
	{
		alert( pMsg);
		//fromfield.focus();
		//fromfield.select();
		return false;
	}
	else if(f_intyr == t_intyr)
	{
		if(f_intmm > t_intmm)
		{
			alert( pMsg );
			//fromfield.focus();
			//fromfield.select();
			return false;
		}
		else if(f_intmm == t_intmm)
		{
			if(f_intdt > t_intdt)
			{
				alert( pMsg );
				//fromfield.focus()
				//fromfield.select()
				return false
			}
		}
	}
	return true
}


////    Added by VijayaKumar for Colelists SAN Number checking

function isDateValueGreaterThan(strStartDate,strEndDate)
{
    var strStartDate;
    var strEndDate;
    var buffer;
    var date1IndexMM = strStartDate.indexOf("/");	
    var date1IndexDD = strStartDate.indexOf("/",date1IndexMM+1);
    var date1IndexYY= strStartDate.lastIndexOf("/");

    var date1mm = parseInt(strStartDate.substring(0,date1IndexMM));
    var date1dd = parseInt(strStartDate.substring(date1IndexMM+1,date1IndexDD));
    var date1yy = strStartDate.substring(date1IndexDD+1);

    var date1IndexMM = strEndDate.indexOf("/");	
    var date1IndexDD = strEndDate.indexOf("/",date1IndexMM+1);
    var date1IndexYY= strEndDate.lastIndexOf("/");

    var date2mm = parseInt(strEndDate.substring(0,date1IndexMM));
    var date2dd = parseInt(strEndDate.substring(date1IndexMM+1,date1IndexDD));
    var date2yy = strEndDate.substring(date1IndexDD+1);

    var startdate =date1mm  + '/' + date1dd  + '/' + date1yy;
    var enddate = date2mm  + '/' + date2dd + '/' + date2yy;

    var validstartdate=new Date(startdate);
    var validenddate=new Date(enddate);


    if(validenddate  < validstartdate)
    {
        return false;
    }
    else
    {
        return true;
    }
}		


function dateCheck(theStr)
{ 
	var val;
	var len;
	var dd;
	var mm;
	var yy;
	var yyyy;
	var leap;
	var fSlash;
	var sSlash;
	var lSlash;
	var separator;
	var condate;
	val= theStr;
	len = val.length;
	var tempdate = new Date(theStr);
	var tmpdate = new Date('01/01/1753');

	fSlash = val.indexOf("/");	
	sSlash = val.indexOf("/",fSlash+1);
	lSlash = val.lastIndexOf("/");

	if (tempdate < tmpdate)
	{
		alert("Invalid date format");
		return false;
	}

	if (lSlash != sSlash)
	{
		alert("Invalid date format");
		return false;
	}
	else
	{
		mm = parseInt(val.substring(0,fSlash),10);
		dd = parseInt(val.substring(fSlash+1,sSlash),10);
		yy = val.substring(sSlash+1);
		if (mm==0 || dd==0)
		{
			alert("Not a valid Date");
			return false;
		}
		var ylen;
		ylen =yy.length;
		
		if (len > 10) 
		{
			alert("Invalid date format");
			return false;
		}	// end of checking more than 10 Characters
	
		if (ylen>4)
		{
			alert("Invalid date format");
			return false;
		}
		if (ylen==3 || ylen==2 || ylen==1 || ylen==0)
		{
			alert("Invalid date format");
			return false;
		}
		yyyy=yy.substring(2);
		yy = parseInt(yy,10);
		if (mm <= 12) 
		{
			{
				if (yyyy == '00')
				{
					if ((yy%400) == 0) 
					{
						leap = true;
					}	//end of if condition of leap year 
					else
					{
						leap = false;
					}	// end of if condition of leap year
				} //end of if condition of year having last two digits as zeroes 
				else 
				{
					if ((yy%4) == 0) 
					{
						leap = true;	
					}											
					else
					{
						leap = false;
					}
				} //end of else condition of year having last two digits as zeroes
			}	// leap year check block
			switch(mm)
			{
				case 1 :
				case 3 :
				case 5 :
				case 7 :
				case 8 :
				case 10 :
				case 12 :
				{
					if  (dd>31)
						{
							alert("Invalid date format");
							return false;		
						}	// end of checking of 31 days 
					return true;
				}
				case 2 :
				{
					if ((leap == true) && (dd > 29))
						{
							alert("Invalid date format");
							return false;
						}
					if ((leap == false) && (dd > 28))
						{
							alert("Invalid date format");
							return false;
						}
					return true;
				}
				case 4 :
				case 6 :
				case 9 :
				case 11 :
				{
					if (dd>30)
						{
							alert("Invalid date format");
							return false;		
						}	// end of checking of 30 days 
					return true;
				}
			}	// end of switch
								
		} //end of if condition of month validation 
		else 
		{
			alert("Invalid date format");
			return false;		
		} //end of else condition of month validation
										
	}	// end of if condition checking more slashes
}
