// *************
// Clear Fields Function
// *************

function clearFields(form) {

  var formNum = form.elements.length // Number of form elements  
  
  for (i = 0; i < formNum; i++) {
    var shortForm = form.elements[i] // Shortcut Reference for Form Elements
    if (shortForm.type == "text"){
      shortForm.value = "";
    } else if (shortForm.name == "county"){
    } else if (shortForm.type == "checkbox"){
      shortForm.checked = false;
    } else if (shortForm.type == "radio"){
      shortForm.checked = false;
    } else if (shortForm.type == "textarea"){ // Only Clears Textareas in MSIE
      shortForm.value = "";
    } else if (shortForm.type == "hidden"){
    } else if (shortForm.type == "password"){
    } else if (shortForm.type == "image"){
    } else if (shortForm.type == "button"){
    } else if (shortForm.type == "reset"){
    } else if (shortForm.type == "submit"){
    } else{
      shortForm.selectedIndex = false;
      shortForm.options[0].selected = true;
    }
  }
}

// *************
// PopUP Window Function
// *************

function newwin(url,w,h) {
  if((w==0) && (h==0)) {
    window.open(url,"_blank","height=" + self.outerHeight ,"width=" + self.outerWidth + ",resizable,scrollbars");
    window.alert("No Height and Width Received")
  } else {
    window.open(url,"_blank","height=" + h + ",width=" + w + ",resizable,scrollbars");
  }
}


// *************
// Change All Function
// *************
function changeAll(form, masterField) {
  var masterFieldValue = masterField.options[masterField.selectedIndex].value;
  var size = form.elements.length;
  for (var i = 0; i < size; i++) {  
    if (form.elements[i].type == "select-one") {
      var selectBox = form.elements[i];
      var num = selectBox.options.length;
      for(var j = 0; j < num; j++) {
        if(selectBox.options[j].value == masterFieldValue) {
          selectBox.selectedIndex = j;
        }
      }
    }
  }
}

// *************
// AP Date Checker Functions
// *************

function checkDates(formvar) {
  var size = formvar.elements.length;
  for(var i = 0; i < size; i++) {
    if(formvar.elements[i].name.indexOf("Date") > -1 || formvar.elements[i].name.indexOf("date") > -1) {
      if(checkDate(formvar.elements[i].value) == -1) {
        alert("All dates must be in MM/DD/YY format");
        return(false);
      } else {
        formvar.submit();
      }
    }
  }
}
  
function checkDate(date) {
  var dateRegEx = /^\d{2}\/\d{2}\/\d{2}$/;
  if(date == "") {
    return(1);
  } else {
    return(date.search(dateRegEx));
  }
}


// *************
// Submit Only Once Function
// *************

function submitOnce(formvar) {
  var size = formvar.elements.length;
  for(var i = 0; i < size; i++) {
    if(formvar.elements[i].type = "reset" || formvar.elements[i].type == "submit") {
       formvar.elements[i].disabled = true;
    }
  }
}


// *************
// Return true if user presses enter key
// *************
function enterCatcher(e) {
  if (e.keyCode == 13) {
    return true;
  } else {
    return false;
  }
}

// *************
// XWindowBox functions
// ************

function getObject(id) {
 if (ie4) {
  return document.all[id];
 } else {
  return document.getElementById(id);
 }
}

function grow(link, divId) {
 var d = getObject(divId);
 d.style.display = 'block';
}

function shrink(link, divId) {
 var d = getObject(divId);
 d.style.display = 'none';
}

// *************
// Calendar Date functions
// ************

function buildDays(form) {
  buildDays(form,form.month,form.day,form.year);
}

function buildDays(form, month, day, year) {
  var selectedMonth = form.month.options[form.month.selectedIndex].value;
  var selectedDay = form.day.selectedIndex + 1;
  var selectedYear = form.year.options[form.year.selectedIndex].value;

  var days = 31;

  if (selectedMonth == 2) {
    if (selectedYear % 4 == 0) {
      days = 29;
    } else {
      days = 28;
    }
  } else if (isThirtyDayMonth(selectedMonth)) {
    days = 30;
  } else {
    days = 31;
  }

  setDays(form,days,selectedDay);
}

function setDays(form, days, selectedDay) {
  form.day.length = 0;

  if (selectedDay > days) {
    selectedDay = days;
  }

  for (var i = 0;i < days;i++) {
    form.day.options[i] = new Option(i + 1);

    if (i == selectedDay) {
      form.day.options[i - 1].selected = true;
    } else if (i == (selectedDay - 1)) {
      form.day.options[i].selected = true;
    }
  }
}
function isThirtyDayMonth(selectedMonth) {
  var thirtydayMonths = new Array(4);
  thirtydayMonths[0] = 4;
  thirtydayMonths[1] = 6;
  thirtydayMonths[2] = 9;
  thirtydayMonths[3] = 11;

  for (var i = 0;i < 4;i++) {
    if (thirtydayMonths[i] == selectedMonth) {
      return true;
    }
  }
  return false;
}
