<!-- Activate Claoking Device
// Scripts for days between dates
// The Javascript Date object is buggy, so a custom date object is included.

var df = 1; //date format mm/dd/yyyy
    
//<<**Custom Date object
//Thanks to Claus Tondering for the Julian day algorithm
//http://www.tondering.dk/claus/calendar.html
var GREGORIAN = 0;
var JULIAN = 1;
var year = 0;
var month = 0;
var day = 0;
var julianday = 0.0;
var modifiedjulianday = 0.0;


function ipart(r){ return Math.round(r - 0.5) }
function getJulianDay(){ return this.julianday } 
function getModifiedJulianDay(){ return this.modifiedjulianday }

function CustomDate(yr, mo, da, type){
  year = yr * 1.0;  //convert string to float
  if (year < -4713 || year > 3268){
    alert("Year out of range");
//	document.datainput.dateerr.value="??"
    return;
  }
  month = mo * 1.0;
  day = da * 1.0;
  if (year == 1582 && month == 10 && day > 4 && day < 15){
    alert("Invalid date: 15 Oct immediately followed 4 Oct in the year 1582")
//	document.datainput.dateerr.value="??"
    return;
  }
  if (year < 0) year = year + 1; //B.C. date correction
  var a = ipart((14 - month) / 12);
  var y = year + 4800 -a;
  var m = month + 12 * a - 3;
  if (type == GREGORIAN){
    julianday = day + ipart((153*m + 2)/5) + y*365 + ipart(y/4) - ipart(y/100) + ipart(y/400) - 32045;
 }
  if (type == JULIAN){
    julianday = day + ipart((153*m + 2)/5) + y*365 + ipart(y/4) - 32083;
  }
  modifiedjulianday = julianday - 2400000.5; //Zero at 17 Nov 1858 00:00:00 UTC
  this.getJulianDay = getJulianDay();
  this.getModifiedJulianDay = getModifiedJulianDay();
}
//CustomDate**>>

function fix2DigitDate(dateval){
  var date = dateval + "" //dateval must be a string
  if (date.length < 3){ 
    date = 1900 + date * 1.0
	date = date + ""  //to string
  }
  return date
}

function parseDate(dateval,eraval){
	//split is a Javascript 1.2 function
	var dary=dateval.split("/")
    var era;
	eraval > 0 ? era = -1: era = 1
	var y = fix2DigitDate(dary[2]) * era
	switch (df){
	  case 1: { m = dary[0]; d = dary[1] } // mm/dd/yyyy
	  break;
	  case 2: { m = dary[1]; d = dary[0] } // dd/mm/yyyy
	  break;
	  default: { m = dary[0]; d = dary[1] }
	}
	var calendar
	if (y > 1582) calendar = GREGORIAN
	  else if (y < 1582) calendar = JULIAN
	     else if (m < 10 | (m == 10 && d < 15)) calendar = JULIAN
	        else calendar = GREGORIAN 
	i=new CustomDate(y,m,d,calendar)
	return i
	}//dateval


//Date format is either mm/dd/yyyy or dd/mm/yyyy
function dateFormat(f){
   df = f;
   }//dateFormat
	
//Validate the dates
//Heavily modified from a script by Mattias Sjsberg 11-28-96
function checkdate(date,era) {
        var err = 0
	var valid = "0123456789/"
	//var ok = "yes"
	var temp;
        var msg;
	if (date == null || date.length < 1) {
            err = 1 //is there a date?
            msg = 'field is blank' 
        }
	//check for invalid characters
	for (var i=0; i< date.length; i++) {
	  temp = "" + date.substring(i, i+1)
	  if (valid.indexOf(temp) == "-1") {
              err = 1
              msg = 'Invalid Character (' + temp + ')'
           }
	  }
	//split is Javascript 1.2
	dary=date.split("/")
	if (df == 1){
	  b=dary[0] //month
	  d=dary[1] //day
    }
	if (df == 2){
	  b=dary[1] //month
	  d=dary[0] //day
	}
	f=dary[2] //year
    if (err != 1 && f.length < 3) { //one or two digit date
	  f = fix2DigitDate(f) //20th century
	  if (era != null && era == 1) { 
	    err = 1;  //BC years must be 4 digits
		date = date + " B.C." }
	  }
	if (b<1 || b>12) err = 1
	if (d<1 || d>31) err = 1
	if (f<0 || f>9999) err = 1
	if (b==4 || b==6 || b==9 || b==11){
	  if (d==31) err=1
	  }
        if (msg==null && err==1) msg = "One of the dates is out of range (" + date + ")  Check for proper date format"
         

	if (b==2){  //leap year checking
	  var g=parseInt(f/4)
	  if (isNaN(g)) err=1
	  if (d>29) err=1
	  if (d==29){
	    //leap years are always divisible by 4
	    if ( (f/4)!= parseInt(f/4)) err = 1 
		//in the Gregorian calendar century years are not leap years unless divisible by 400
        if (f > 1582) {
		  if (((f/100) == parseInt(f/100)) && (f/400 != parseInt(f/400))) err = 1 
		  }
	    }
	  }
	if (err==1) {
          if (msg==null) msg = "Invalid date format (" + date + ")"
	  alert('Error: ' + msg);
	//  document.datainput.dateerr.value="??"
	  }
	else {
	  //alert('Valid date!');
	//  document.datainput.dateerr.value=""
  	  }
	return err
	}//checkdate

//Get today's date. Date object works ok here.
function enterToday() {
	var today=""
	var time=new Date()
	var month=time.getMonth() + 1
	var date=time.getDate()
	var year=time.getYear()
	// Y2K Fix by Isaac Powell
	// http://onyx.idbsu.edu/~ipowell
	if ((navigator.appName == "Microsoft Internet Explorer") && (year < 2000))		
	  year="19" + year
	if (navigator.appName == "Netscape")
	  year=1900 + year
	if (date<10) {date="0"+date}
	if (month<10) {month="0"+month}
	//select American or European date format
	df == 1 ? today=month+"/"+date+"/"+year : today=date+"/"+month+"/"+year 
	document.datainput.seconddate.value=today
//	document.datainput.era2.selectedIndex=0;
    }


// Deactivate Cloaking -->

