var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
var i;
for (i = 0; i < s.length; i++){   
// Check that current character is number.
var c = s.charAt(i);
if (((c < "0") || (c > "9"))) return false;
}
// All characters are numbers.
return true;
}

function stripCharsInBag(s, bag){
var i;
var returnString = "";
// Search through string's characters one by one.
// If character is not in bag, append to returnString.
for (i = 0; i < s.length; i++){   
var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}

function daysInFebruary (year){
// February has 29 days in any year evenly divisible by four,
// EXCEPT for centurial years which are not also divisible by 400.
return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
for (var i = 1; i <= n; i++) {
	this[i] = 31;
	if (i==4 || i==6 || i==9 || i==11) {
	this[i] = 30;
	}
	if (i==2) {
	this[i] = 29;
	}
} 
return this;
}

function isDate(dtStr){
var daysInMonth = DaysArray(12);
var pos1=dtStr.indexOf(dtCh);
var pos2=dtStr.indexOf(dtCh,pos1+1);
var strMonth=dtStr.substring(0,pos1);
var strDay=dtStr.substring(pos1+1,pos2);
var strYear=dtStr.substring(pos2+1);
strYr=strYear;
if (strDay.charAt(0)=="0" && strDay.length>1) 
	strDay=strDay.substring(1);
if (strMonth.charAt(0)=="0" && strMonth.length>1) 
	strMonth=strMonth.substring(1);
for (var i = 1; i <= 3; i++) {
	if (strYr.charAt(0)=="0" && strYr.length>1) 
		strYr=strYr.substring(1);
}
month=parseInt(strMonth);
day=parseInt(strDay);
year=parseInt(strYr);
if (pos1==-1 || pos2==-1){
	alert("The date format should be : mm/dd/yyyy");
	return false;
}
if (strMonth.length < 1 || month < 1 || month > 12){
	alert("Please enter a valid month");
	return false;
}
if (strDay.length < 1 || day < 1 || day > 31 || (month==2 && day > daysInFebruary(year)) || day > daysInMonth[month]){
	alert("Please enter a valid day");
	return false;
}
if (strYear.length != 4 || year==0 || year < minYear || year > maxYear){
	alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
	return false;
}
if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
	alert("Please enter a valid date");
	return false;
}
return true;
}

function areDatesValid(){
var fdt=document.all.frmQuerySearch.fromdate;
var tdt=document.all.frmQuerySearch.todate;
if (isDate(fdt.value)==false || isDate(tdt.value) == false)
{
	return false;
}
return true;
}

function dateCompare() 
{ 
var sdate = new Date(document.all.frmQuerySearch.fromdate.value); 
var edate = new Date(document.all.frmQuerySearch.todate.value); 

if (edate < sdate) 
{ 
	alert("'From' date cannot be greater than 'To' date."); 
	return false;
} 
return true;
} 


function downloadtime(bytes) {
	var Sec = Math.round(bytes / (56600 / 8));
	//document.write("&nbsp;&nbsp;&nbsp;Estimated download time @ 56k : ");

	if (Sec < 1) {
		document.write("less than one second.");
		return;
	}			

	if (Sec > 86400) {
		document.write("more than a day.");
		return;
	}

	var TotalHours = Math.floor(Sec / 3600);
	var TotalMin = Math.floor((Sec - (TotalHours * 3600)) / 60);
	var TotalSec = Math.floor(Sec - ((TotalHours * 3600) + (TotalMin * 60)))
	if (TotalHours > 0) {	
		document.write(TotalHours + " Hour(s), " + TotalMin + " Minute(s), and " + TotalSec + " Seconds");
	} else if (TotalMin > 0 && TotalHours == 0) {
		document.write(TotalMin + " Minute(s), and " + TotalSec + " Seconds");
	} else if (TotalMin == 0 && TotalHours == 0) {
		document.write(TotalSec + " Seconds");
	}						

	return;
}

function onNextorPrevious(pageClick,pageString,actionstring) {
	document.all.frmQuerySearch.hdnPageValue.value=pageClick;
	document.all.frmQuerySearch.action = actionstring;
	document.all.frmQuerySearch.submit();
}

function onPageNumber(pageClick,actionstring) {
	document.all.frmQuerySearch.hdnPageValue.value=pageClick;
	document.all.frmQuerySearch.action = actionstring;	
	document.all.frmQuerySearch.submit();
}

function validate1(actionstr)
{
	var index = document.all.frmQuerySearch.fpTimeFence.selectedIndex;
	var tf = document.all.frmQuerySearch.fpTimeFence[index].value;
	var fd = document.all.frmQuerySearch.fromdate.value;
	var td = document.all.frmQuerySearch.todate.value;

	if((tf == "-1") && (fd == "") && (td == "")) 
	{
		alert("Please enter EITHER number of weeks OR enter both 'From' and 'To' dates in 'MM/DD/YYYY' format.");
		return false;
	}

	if((tf == "-1") && (fd != "") && (td == "")) 
	{
		alert("Please enter EITHER number of weeks OR enter both 'From' and 'To' dates in 'MM/DD/YYYY' format.");
		return false;
	}

	if((tf == "-1") && (fd == "") && (td != "")) 
	{
		alert("Please enter EITHER number of weeks OR enter both 'From' and 'To' dates in 'MM/DD/YYYY' format.");
		return false;
	}

	if((tf != "-1") && (fd != "") && (td != "")) 
	{
		alert("Please enter EITHER number of weeks OR enter both 'From' and 'To' dates in 'MM/DD/YYYY' format.");
		return false;
	}


	if((tf != "-1") && (fd != "")) 
	{
		alert("Please enter EITHER number of weeks OR enter both 'From' and 'To' dates in 'MM/DD/YYYY' format.");
		return false;
	}

	if((tf != "-1") && (td != "")) 
	{
		alert("Please enter EITHER number of weeks OR enter both 'From' and 'To' dates in 'MM/DD/YYYY' format.");
		return false;
	}


	if(tf == "-1" && ((fd != "") && (td != "")))
	{
		if(areDatesValid() && dateCompare())
		{
			document.all.frmQuerySearch.hdnPageValue.value = ""
			document.all.frmQuerySearch.hdnDisplayClicked.value = "Y"
			document.all.frmQuerySearch.action=actionstr;
			document.all.frmQuerySearch.submit();
			return true;
		}
		else
			return false;
	}

	if(tf != "-1" && ((fd == "") && (td == "")))
	{							
		document.all.frmQuerySearch.hdnPageValue.value = ""
		document.all.frmQuerySearch.hdnDisplayClicked.value = "Y"
		document.all.frmQuerySearch.action=actionstr;
		document.all.frmQuerySearch.submit();
		return true;
	}		
	else 
		return false;

	return false;	
}

function viewprintable(actionstr) {
	document.all.frmQuerySearch.action=actionstr;
	document.all.frmQuerySearch.submit();
	return true;
}