var dbShow = new Array();
var dbs = new Array();
    dbs[0] = "RawTotalVectors";
    dbShow[0] = "Codar Hourly Data";
    dbs[1] = "24hrAvgs";
    dbShow[1] = "Codar Daily Averages";
    dbs[2] = "OCM";
    dbShow[2] = "OCM";
    dbs[3] = "HTB_archives";
    dbShow[3] = "Water Quality";

var DELTA_DAYS = 7;

var EarliestYear = 1999;
var EarliestMonth = 1;
var EarliestDay = 1;

var daysInMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var monNames = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

var today = new Date();
var NewestYear = today.getUTCFullYear();
var NewestMonth = today.getUTCMonth() + 1;
var NewestDay = today.getUTCDate();
var NewestTime = today.getTime();

var difference = 1000*60*60*24*DELTA_DAYS;
var dftDate = new Date(NewestTime-difference);

var dftStartDay = dftDate.getUTCDate();
var dftStartMonth = dftDate.getUTCMonth() + 1;
var dftStartYear = dftDate.getUTCFullYear();

var mapWin = "";

function showMap(sdate,edate){
	
	var config = "width=440,height=510,menus=no,scrollbars=no,links=no,directories=no,location=no,status=no";
  	var loc = "srb_map.php?s="+sdate+"&e="+edate;
  	
  	mapWin = window.open(encodeURI(loc),"mapWin",config);
  	mapWin.focus();
}

/* Makes sure end is after start
 * If it's not, returns an error message.
 */
function verify(sy,sm,sd,ey,em,ed)
{
  sy = Number(sy); sm = Number(sm); sd = Number(sd);
  ey = Number(ey); em = Number(em); ed = Number(ed);
  var EarlyString = EarliestMonth + "/" + EarliestDay + "/" + EarliestYear;
  var LateString = NewestMonth + "/" + NewestDay + "/" + NewestYear;

  if(sy < EarliestYear) {return "Starting Year is before Earliest Data (" +EarlyString+ ").";}
  else if(sy == EarliestYear && sm < EarliestMonth) {return "Starting Month is before Earliest Data ("+ EarlyString +").";}
  else if(sy == EarliestYear && sm == EarliestMonth && sd < EarliestDay) {return "Starting Date is before Earliest Data ("+EarlyString+").";}

  else if(ey > NewestYear) {return "Ending Year is after Latest Data ("+LateString+").";}
  else if(ey == NewestYear && em > NewestMonth) {return "Ending Month is after Latest Data ("+LateString+").";}
  else if(ey == NewestYear && em == NewestMonth && ed > NewestDay)  {return "Ending Date is after Latest Data ("+LateString+").";}

  else if(sy > ey) {return "Starting Year is after Ending Year.";}
  else if(sy == ey && sm > em) {return "Starting Month is after Ending Month.";}
  else if(sy == ey && sm == em && sd > ed) {return "Starting Date is after Ending Date.";}
  else return "";
}



function doForm(){
	
	/*
	 * Get the selected starting and ending year month and date
	 */
	var syr = document.forms.dataselect.syear.options[document.forms.dataselect.syear.selectedIndex].value;
  	var smo = document.forms.dataselect.smonth.options[document.forms.dataselect.smonth.selectedIndex].value;
  	var sdt = document.forms.dataselect.sday.options[document.forms.dataselect.sday.selectedIndex].value;

  	var eyr = document.forms.dataselect.eyear.options[document.forms.dataselect.eyear.selectedIndex].value;
  	var emo = document.forms.dataselect.emonth.options[document.forms.dataselect.emonth.selectedIndex].value;
  	var edt = document.forms.dataselect.eday.options[document.forms.dataselect.eday.selectedIndex].value;

	/*
	 * Get the selected database
	 */
  	var mdb = document.forms.dataselect.db.options[document.forms.dataselect.db.selectedIndex].value;

	/*
	 * Make sure the starting and ending dates jive
	 */
	var isBad = verify(syr,smo,sdt,eyr,emo,edt);
	
 	if(isBad.length > 0) {
 		alert(isBad); 
 		return; 
 	}
 	
    if(smo.length == 1) {smo = "0" + smo;}
    if(sdt.length == 1) {sdt = "0" + sdt;}

    if(emo.length == 1) {emo = "0" + emo;}
    if(edt.length == 1) {edt = "0" + edt;}

    document.forms.dataselect.sdate.value = syr + "-" + smo + "-" + sdt;
    document.forms.dataselect.edate.value = eyr + "-" + emo + "-" + edt;
    document.forms.dataselect.mdb.value = mdb;

    if(mdb == "HTB_archives"){
        showMap(document.forms.dataselect.sdate.value, document.forms.dataselect.edate.value);
    }
    else{
        if(mapWin) { 
        	mapWin.close(); 
        	mapWin=""; 
        }

      	document.forms.dataselect.action = "srb_post.php";
      	document.forms.dataselect.submit();
    }

}

function buildSelects()
{
  var cYear = NewestYear;
  var ey = document.getElementById("eyear");
  var sy = document.getElementById("syear");

  var ed = document.getElementById("eday");
  var sd = document.getElementById("sday");

  var em = document.getElementById("emonth");
  var sm = document.getElementById("smonth");

  var ctr = 0;
  var el;

  var dbq = document.getElementById("db");

  while(ctr < dbs.length){
    dbq.options[ctr] = new Option(dbShow[ctr],dbs[ctr]);
    ctr++;
  }

  ctr = 0;
  while(cYear >= EarliestYear)
  {
    ey.options[ctr] = new Option(cYear,cYear);
    sy.options[ctr] = new Option(cYear,cYear);
    cYear--;
    ctr++;
  }

  for(var i=1;i<=31;i++)
  {
    ed.options[i-1] = new Option(i,i);
    sd.options[i-1] = new Option(i,i);
  }


  sy[0].selected = true;
  ey[0].selected = true;
  em[NewestMonth-1].selected = true;
  ed[NewestDay-1].selected = true;

  if(NewestMonth == 1 && NewestDay < dftStartDay)
  { sy[1].selected = true; }
  sm[dftStartMonth-1].selected = true;
  sd[dftStartDay-1].selected = true;

}


function doReset()
{
  if(mapWin) { mapWin.close(); mapWin=""; }
  location.reload();
}

onload = buildSelects;