// JavaScript Document

<!--
/*
  Date/Epoch Functions
  Author: Thomas Ballard (http://thomas.ballard.ws)
  Copr. 2002-2008, E.S.Q. Software

  Note: slightly polluted to attempt to support a GMT/non-GMT (local) timezone offset feature. 
  Hack and slash resulted in a form input having a toggle state... but these functions need 
  to know that form and input to access the property for evaluation. Need to come back 
  and make these methods more agnostic.
*/


var curryear="";
var yeardiff=0;
var moreyrs=0;

var currentTime = new Date();
var myYear = currentTime.getFullYear();
if (myYear>2009) {
	yeardiff=parseInt(myYear)-2009;
	for (yrd = yeardiff; yrd>0; yrd--)
	{
		moreyrs=2009+yrd;
	curryear=curryear+"<option value='"+moreyrs+"'>"+moreyrs+"</option>";	
	}
}

function checkDate(wf) {
	var howmany=document.forms.length;
for (wf=0; wf<howmany; wf++) {
	if (currurl.indexOf("form=extended") != -1 && document.forms[wf].dt) {
		//alert(howmany);
	var searchrange=document.forms[wf].daterange;
	var searchdt=document.forms[wf].dt;
	var searchdb=document.forms[wf].db;
	var searchde=document.forms[wf].de;
	var stdate=document.forms[wf].startdate;
	var stmonth=document.forms[wf].startmonth;
	var styear=document.forms[wf].startyear;
	var edate=document.forms[wf].enddate;
	var emonth=document.forms[wf].endmonth;
	var eyear=document.forms[wf].endyear;
	var sDate=new Date();
var eDate=new Date();
sDate.setDate(stdate.value);
sDate.setMonth(stmonth.value);
sDate.setYear(styear.value);
eDate.setDate(edate.value);
eDate.setMonth(emonth.value);
eDate.setYear(eyear.value);
	
if (searchrange.checked == 1) {searchdt.value="range"; searchdb.value=stdate.value+"/"+(parseInt(stmonth.value)+1)+"/"+styear.value; searchde.value=edate.value+"/"+(parseInt(emonth.value)+1)+"/"+eyear.value;} else {searchdt.value=""; searchdb.value=""; searchde.value="";}	

						if ((searchdt.value == "range") && (eDate<sDate)) {
						alert ("End date choice may not occur before start date choice."); return false;	
						}
}
}
}

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}


function setFirstDate(whichForm,mObj,dObj,yObj,mObj2,dObj2,yObj2) {
	var howmany=document.forms.length;
	if (currurl.indexOf("dt=") != -1 && gup("dt") == "range") {
		var searchrange=document.forms[whichForm].daterange;
			searchrange.checked = 1; document.forms[whichForm].dt.value="range"}
		
if (currurl.indexOf("startdate=") != -1) {
		var loadsmonth=gup("startmonth");
		var loadsdate=gup("startdate");
		var loadsyear=gup("startyear");
		var loademonth=gup("endmonth");
		var loadedate=gup("enddate");
		var loadeyear=gup("endyear");	
	//	alert(loadsmonth+ " "+loadsdate+", "+loadsyear);
		
	
for (var i = 0; i < mObj.length; i++) {

if(mObj.options[i].value == loadsmonth) {
mObj.selectedIndex = i;
}
}

for (var i = 0; i < yObj.length; i++) {

if(yObj.options[i].value == loadsyear) {
yObj.selectedIndex = i;
}
}

getDays(mObj,dObj,yObj);

for (var i = 0; i < dObj.length; i++) {

if(dObj.options[i].value == loadsdate) {
dObj.selectedIndex = i;
}
}

for (var i = 0; i < mObj2.length; i++) {

if(mObj2.options[i].value == loademonth) {
mObj2.selectedIndex = i;
}
}

for (var i = 0; i < yObj2.length; i++) {

if(yObj2.options[i].value == loadeyear) {
yObj2.selectedIndex = i;
}
}

getDays(mObj2,dObj2,yObj2);

for (var i = 0; i < dObj2.length; i++) {

if(dObj2.options[i].value == loadedate) {
dObj2.selectedIndex = i;
}
}

}

else {
	getDays(mObj,dObj,yObj);
	getDays(mObj2,dObj2,yObj2);
}
}

window.getDays = function(mObj,dObj,yObj){
	
	
  // build array of days in a select container based on selected month and year
 
 iMonth=parseInt(mObj.options[mObj.selectedIndex].value)+1
  iYear=(yObj.value?yObj.value:1900);

  var iDays=31;
  switch(iMonth){ /* determine the number of days this month including leap years */
    case 4: case 6: case 9: case 11:  --iDays; break;
    case 2: iDays=29; if (((iYear%4)!=0) || ((iYear%100)==0)) --iDays;
  }

  dObj.options.length = 0;
  for(var i=0; i<iDays; i++){
    dObj.options[i] = new Option(i+1,i+1)
  }
}



function toEpoch(mObj,dObj,yObj,mObj2,dObj2,yObj2){
	
	//first let's get a human readable date into the right fields
	var whatsmonth=parseInt(mObj.options[mObj.selectedIndex].value) + 1;
	var whatemonth=parseInt(mObj2.options[mObj2.selectedIndex].value) + 1;

if (whatsmonth<10) {whatsmonth="0"+whatsmonth;}
if (whatemonth<10) {whatemonth="0"+whatemonth;}

var whatsdate=parseInt(dObj.options[dObj.selectedIndex].value);
var whatedate=parseInt(dObj2.options[dObj2.selectedIndex].value);
	
if (whatsdate<10) {whatsdate="0"+whatsdate;}
if (whatedate<10) {whatedate="0"+whatedate;}
	
	//document.getElementById("db").value=whatsmonth + "/" + whatsdate + "/" + yObj.options[yObj.selectedIndex].value;
	//document.getElementById("de").value=whatemonth + "/" + whatedate + "/" + yObj2.options[yObj2.selectedIndex].value;
	//alert(document.getElementById("db").value)
	
	var dDate = new Date();
	var eDate = new Date();
  var month = mObj.options[mObj.selectedIndex].value;
  var day = dObj.options[dObj.selectedIndex].value;
  var year = yObj.options[yObj.selectedIndex].value;
  var hour = 23;
  var minute = 59;
  var second = 59;

  //alert(month+']+day+['+year)
  dDate.setMonth(month,day);
  dDate.setFullYear(year);
  dDate.setHours(hour,minute,second);
  var sde=(dDate.getTime()-dDate.getMilliseconds())/1000;
  //alert(dDate)
  
  var month2 = mObj2.options[mObj2.selectedIndex].value;
  var day2 = dObj2.options[dObj2.selectedIndex].value;
  var year2 = yObj2.options[yObj2.selectedIndex].value;

  //alert(month+']+day+['+year)
  eDate.setMonth(month2,day2);
  eDate.setFullYear(year2);
  eDate.setHours(hour,minute,second);
  var ede=(eDate.getTime()-eDate.getMilliseconds())/1000;
  
  //alert (sde);
document.forms.ivnForm.startepoch.value=parseInt(sde);
document.forms.ivnForm.endepoch.value=parseInt(ede);
	}


