//alert("JavaScript activated")

//Which Web Browser is Being Used?
isNav = (navigator.appName == "Netscape")
isIE = (navigator.appName == "Microsoft Internet Explorer")

var monthList = new Array(" ", "January", "February", "March", "April", "May",
                          "June", "July", "August", "September", "October",
                          "November", "December") 
var daysInMonth = new Array( " ", "31", "28", "31", "30", "31",
                             "30", "31", "31", "30", "31",
                             "30", "31")

//List of Variables for each RFC
var domainList = new Array("Mosaic", "ABRFC", "CBRFC", "CNRFC", "LMRFC", 
                           "MARFC", "MBRFC", "NCRFC", "NERFC", "NWRFC", 
                           "OHRFC", "SERFC", "-Puerto Rico", "WGRFC")

var domainValueList = new Array("mosaic", "abrfc", "cbrfc", "cnrfc", "lmrfc",
                                "marfc", "mbrfc", "ncrfc", "nerfc", "nwrfc",
                                "ohrfc", "serfc", "sju", "wgrfc")

var firstYearList = new Array (2005, 2005, 2005, 2005, 2005,
                               2005, 2005, 2005, 2005, 2005,
                               2005, 2005, 2005, 2005)

var firstMonthList6 = new Array (01, 01, 01, 01, 01,
                                 01, 01, 01, 01, 01,
                                 01, 01, 01, 01)

var firstMonthList24 = new Array (01, 01, 01, 01, 01,
                                  01, 01, 01, 01, 01,
                                  01, 01, 01, 01)

var firstDayList6 = new Array (01, 01, 01, 01, 01,
                               01, 01, 01, 01, 01,
                               01, 01, 01, 01)

var firstDayList24 = new Array (01, 01, 01, 01, 01,
                                01, 01, 01, 01, 01,
                                01, 01, 01, 01)

var currentDomain = "mosaic"
var currentDomainIndex = 0
var currentYear = lastYear
var currentMonth = lastMonth
var currentDay = lastDay
var currentHour = 12
var currentDur = 06

isLeapYear()

function isLeapYear() {
  var diff = 1
  diff = currentYear - (Math.round(currentYear / 4) * 4)
  if ( diff == 0 ) {
    daysInMonth[2] = 29
  } else {
    daysInMonth[2] = 28
  }
}

function setCurrentDomain () {
  var mySelect = document.rfc.domain
  currentDomain = mySelect.options[mySelect.selectedIndex].value
  for (var i=0; i<14; ++i) {
    if (currentDomain == domainValueList[i]) {
      currentDomainIndex = i
      yearOptions()
    }
  }
}

function setCurrentDur () {
  var mySelect = document.rfc.dur
  currentDur = mySelect.options[mySelect.selectedIndex].value
  yearOptions() 
}

function yearOptions() {
  if ( currentDur == "monthly" ) {
    var Year = 2004
  } else {
    var Year = firstYearList[currentDomainIndex] 
  }
  var wantYear = currentYear
  var myIndex = -99
  var mySelect = document.rfc.year
  mySelect.options.length = 0;
  for ( var j=0; j<=(lastYear-Year); ++j) {
    currentYear = Year+j 
    mySelect.options[j] = new Option(currentYear, currentYear, false, false)
    if ( currentYear == wantYear ) { myIndex = j }
  }
  currentYear = wantYear
  if (myIndex == -99) {
    printDomain = currentDomain
    if ( currentDomain == "sju" ) { printDomain = 'Puerto Rico' }
    alert (wantYear+" not available for "+printDomain+" setting Year to "+lastYear)
    currentYear = lastYear
    myIndex = (lastYear-Year)
  }
  mySelect.selectedIndex = myIndex
  monthOptions()
}

function setCurrentYear () {
  var myYSelect = document.rfc.year
  currentYear = myYSelect.options[myYSelect.selectedIndex].value
  monthOptions()
}

function monthOptions () {
  var wantMonth = currentMonth
  var mySindex = -99
  if (currentDur == 06) {
    var firstMonth = firstMonthList6[currentDomainIndex]
    var firstYear = firstYearList[currentDomainIndex]
  } else if (currentDur == 24) {
    var firstMonth = firstMonthList24[currentDomainIndex]
    var firstYear = firstYearList[currentDomainIndex]
  } else {
    var firstMonth = 01
    var firstYear = 2004
  }
  mySelect = document.rfc.month
  mySelect.options.length = 0
  if (currentYear == firstYear) {
    var endMonth = 12
    if ( currentYear == monthlyYear && currentDur == "monthly") { var endMonth = monthlyMonth }
    for (var i=firstMonth; i<=endMonth; ++i) {
      currentMonth = i
      var myIndex = i - firstMonth
      mySelect.options[myIndex] = new Option(monthList[i], i, false, false)
      if (currentMonth == wantMonth) { mySindex = myIndex }
    }
  } else if (currentYear == lastYear) {
    if (mySindex == -99) { mySindex = -98 }
    var myIndex = 0
    var endMonth = lastMonth
    if ( currentYear == monthlyYear && currentDur == "monthly") { var endMonth = monthlyMonth }
    for ( var i=1; i<= endMonth ; ++i) {
      currentMonth = i
      mySelect.options[myIndex] = new Option(monthList[i], i, false, false)
      if ( currentMonth == wantMonth ) { mySindex = myIndex }
      myIndex = myIndex+1;
    }
  } else {
    for (var i=1; i<13; ++i) {
      currentMonth = i
      var myIndex = i-1
      mySelect.options[myIndex] = new Option(monthList[i], i, false, false)
      if ( currentMonth == wantMonth ) { mySindex = myIndex }
    }
  }
  currentMonth = wantMonth
  if ( mySindex == -99 ) {
    if ( currentDur == "monthly" ) {
      alert(monthList[wantMonth]+" not available for "+currentYear+" setting Month to "+monthList[monthlyMonth])
      currentMonth = monthlyMonth
      mySindex = monthlyMonth - 1
    } else {
      alert(monthList[wantMonth]+" not available for "+currentYear+" setting Month to "+monthList[firstMonth])
      currentMonth = firstMonth
      mySindex = 0
    }
  } else if (mySindex == -98 ) {
    if ( currentDur == "monthly") {
      alert(monthList[wantMonth]+" not available for "+currentYear+" setting Month to "+monthList[monthlyMonth])
      currentMonth = monthlyMonth
      mySindex = monthlyMonth - 1
    } else {
      alert(monthList[wantMonth]+" not available for "+currentYear+" setting Month to "+monthList[lastMonth])
      currentMonth = lastMonth
      mySindex = lastMonth - 1
    }
  }
  mySelect.selectedIndex = mySindex
  dayOptions()
}

function setCurrentMonth() {
  var mySelect = document.rfc.month
  currentMonth = mySelect.options[mySelect.selectedIndex].value
  dayOptions()
}

function dayOptions() {
  var wantDay = currentDay
  var mySindex = -99
  var mySelect = document.rfc.day
  mySelect.options.length = 0
  if ( currentDur == "monthly" ) { 
    hourOptions()
    return 
  }
  if ( currentYear == firstYearList[currentDomainIndex] ) {
    if ( currentDur == 06 ) {
      if ( currentMonth == firstMonthList6[currentDomainIndex] ) {
        var firstDay = firstDayList6[currentDomainIndex]
      } else {
        var firstDay = 1
      }
    } else {
      if ( currentMonth == firstMonthList24[currentDomainIndex] ) {
        var firstDay = firstDayList24[currentDomainIndex]
      } else {
        var firstDay = 1
      }
    }    
  } else {
    var firstDay = 1
  } 
  if (currentYear == lastYear && currentMonth == lastMonth ) {
    var endDay = lastDay
  } else {
    var endDay = daysInMonth[currentMonth]
  }
  for ( var i=firstDay; i<=endDay; ++i) {
    currentDay = i
    var myIndex = i - firstDay
    mySelect.options[myIndex] = new Option(i, i, false, false)
    if ( currentDay == wantDay ) { mySindex = myIndex }
  }
  currentDay = wantDay
  if ( mySindex == -99 ) {
    var setDay = firstDay
    mySindex = 0
    if ( endDay != daysInMonth[currentMonth] ) {
      setDay = endDay
      mySindex = endDay-1 }
    alert (wantDay+" is not available for "+monthList[currentMonth]+" "+currentYear+" setting Day to "+setDay)
    currentDay = setDay
  }
  mySelect.selectedIndex = mySindex
  hourOptions()
}

function setCurrentDay() {
  var mySelect = document.rfc.day
  currentDay = mySelect.options[mySelect.selectedIndex].value
  hourOptions()
}

function hourOptions() {
  var wantHour = currentHour
  var mySindex = -99
  var mySelect = document.rfc.hour
  mySelect.options.length = 0
  if ( currentDur == 06 ) {
    if ( currentYear == firstYearList[currentDomainIndex] && currentMonth == firstMonthList6[currentDomainIndex] && currentDay == firstDayList6[currentDomainIndex] ) {
      var firstHour = 18 
      var endHour = 18
    } else if (currentYear == lastYear && currentMonth == lastMonth && currentDay == lastDay) {
      var firstHour = 00
      var endHour = 12
    } else {
      var firstHour = 00
      var endHour = 18
    }
  } else {
    var firstHour = 12
    var endHour = 12
  }
  var myIndex = -1
  for ( var i=firstHour; i<=endHour; i=i+06) {
    ++myIndex
    currentHour = i
    mySelect.options[myIndex] = new Option(i, i, false, false)
    if ( currentHour == wantHour ) { mySindex = myIndex }
  }
  currentHour = wantHour
  if ( mySindex == -99) {
    alert (wantHour+" not available for "+monthList[currentMonth]+" "+currentDay+", "+currentYear+" setting hour to "+endHour)
    currentHour = endHour
    mySindex = myIndex
  }
  mySelect.selectedIndex = mySindex
}

function setCurrentHour() {
  var mySelect = document.rfc.hour
  currentHour = mySelect.options[mySelect.selectedIndex].value
}

function checkSelect() {
//  alert ("currentRFC: "+currentRFC+"\ncurrentYear: "+currentYear+"\ncurrentMonth: "+currentMonth+"\ncurrentIntType: "+currentIntType+"\ncurrentStatType: "+currentStatType+"\ncurrentFor: "+currentFor+"\ncurrentDisp: "+currentDisp)

  myRFC = document.rfc.rfc.options[document.rfc.rfc.selectedIndex].value
  myYEAR = document.rfc.year.options[document.rfc.year.selectedIndex].value
  myMONTH = document.rfc.month.options[document.rfc.month.selectedIndex].value
  myTYPE = document.rfc.type.options[document.rfc.type.selectedIndex].value
  myINTER = document.rfc.inter.options[document.rfc.inter.selectedIndex].value
  mySTAT = document.rfc.stat.options[document.rfc.stat.selectedIndex].value
  myPERIOD = document.rfc.period.options[document.rfc.period.selectedIndex].value
  myOPTION = document.rfc.option.options[document.rfc.option.selectedIndex].value
  myOPTTYPE = document.rfc.opttype.options[document.rfc.opttype.selectedIndex].value
  alert ("myRFC: "+myRFC+"\nmyYEAR: "+myYEAR+"\nmyMONTH: "+myMONTH+"\nmyTYPE: "+myTYPE+"\nmyINTER: "+myINTER+"\nmySTAT: "+mySTAT+"\nmyPERIOD: "+myPERIOD+"\nmyOPTION: "+myOPTION+"\nmyOPTTYPE: "+myOPTTYPE)
}
