function setAllCheckboxes() {
  var f = document.forms[0];
  for (var i = 0; i < f.elements.length; i++) {
    if ( f.elements[i].type == "checkbox" )
      f.elements[i].checked = true;
  }
}

function resetAllCheckboxes() {
  var f = document.forms[0];
  for (var i = 0; i < f.elements.length; i++) {
    if ( f.elements[i].type == "checkbox" )
      f.elements[i].checked = false;
  }
}

function getComboValue(combo) {
  for (var i=0;i<combo.options.length;i++) {
    if (combo.options[i].selected)
    {
      return combo.options[i].value;
    }
  }
}

function getRadioValue(radio) {
  var radioLength = radio.length;
  if (radioLength == undefined) {
   if (radio.checked) {
     return radio.value;
   } else {
     return "";
   }
  }
  for (var i=0;i<radio.length;i++) {
    if (radio[i].checked) {
      return radio[i].value;
    }
  }
}

function getComboValueByValueList(combo) {
  var result = "";
  for (var i=0;i<combo.options.length;i++) {
    if(combo.options[i].selected) {
      result += combo.options[i].value + ",";
    }
  }
  return result;
}

function getComboValueByIndexList(combo) {
  var result = "";
  for (var i=0;i<combo.options.length;i++) {
    if(combo.options[i].selected) {
      result += i + ",";
    }
  }
  return result;
}

function getFormObjectValue(formObject) {
    if ( formObject.type == "select-one" ) 
      return getComboValue(formObject);
    else if ( formObject.type == "radio" ) 
      return getRadioValue(formObject);
    else if ( formObject.type == "text" || formObject.type == "hidden") 
      return formObject.value;
    return "";
}

function getComboIndex(combo, s) {
  for (var i=0;i<combo.options.length;i++) {
    if (combo.options[i].value==s) {
      return i;
    }
  }
  return 0;
}

function setCombo(sel, defValue) {
  for (var i = 0; i < sel.options.length; i++) {
    if ( sel.options[i].value == defValue ) {
      sel.selectedIndex = i;
      break;
    }
  }
}

function setRadio(rad, defValue) {
  for (var i = 0; i < rad.length; i++) {
    if ( rad[i].value == defValue ) {
      rad[i].checked = true;
      break;
    }
  }
}

function setComboByIndexList(combo, indexList) {
  var arrayOfComboIndex = indexList.split(",")
  for (var j=0; j<arrayOfComboIndex.length; j++){
      if(arrayOfComboIndex[j] != null &&  arrayOfComboIndex[j]!=""){
        combo.options[arrayOfComboIndex[j]].selected=true;
      }
   }
}

function setComboByValueList(combo, valueList) {
  var arrayOfComboValue = valueList.split(",")
  for (var j=0; j<arrayOfComboValue.length; j++){
      if(arrayOfComboValue[j] != null && arrayOfComboValue[j]!=""){
        combo.options[getComboIndex(combo,arrayOfComboValue[j])].selected=true;
      }
   }
}

function setText(text, s) {
  if ( s == "null" ) s = "";
  text.value=s;
}

function verifyComboSize(combo,size) {
  var count = 0;
  for (var i=0;i<combo.options.length;i++) {
    if (combo.options[i].selected == true) {
      count += 1;
    }
  }
  if (count > size) return false;
  return true;
}

function DateCompare(d1, m1, y1, d2, m2, y2){
  if(y1<y2) return -1;    
  if(y1==y2 && m1<m2) return -1;
  if(y1==y2 && m1==m2 && d1<d2) return -1;
  if(y1==y2 && m1==m2 && d1==d2) return 0;
  return 1;
}

function getDay(dateFormat, separator, inDate){
  var inDay = 0;
  if(inDate.indexOf(separator) != -1){
    if(dateFormat == "mm" + separator + "dd" + separator + "yyyy"){
      inDay   = inDate.substring(inDate.indexOf(separator) + 1, inDate.lastIndexOf(separator));
      if (inDay.substring(0,1) == "0" && inDay.length > 1)
        inDay = inDay.substring(1,inDay.length);
      inDay = parseInt(inDay);
    }
    else if (dateFormat == "dd" + separator + "mm" + separator + "yyyy"){
      inDay = inDate.substring(0,inDate.indexOf(separator));
      if (inDay.substring(0,1) == "0" && inDay.length > 1)
        inDay = inDay.substring(1,inDay.length);
      inDay = parseInt(inDay);
    }
    else if (dateFormat == "yyyy" + separator + "mm" + separator + "dd"){
      inDay  = inDate.substring(inDate.lastIndexOf(separator) + 1, inDate.length);
      if (inDay.substring(0,1) == "0" && inDay.length > 1)
        inDay = inDay.substring(1,inDay.length);
      inDay = parseInt(inDay);
    }
  }
  if(isNaN(inDay) ) inDay = 0;
  return inDay;
}

function getMonth(dateFormat, separator, inDate){
  var inMonth = 0;
  if (inDate.indexOf(separator) != -1){
    if(dateFormat == "mm" + separator + "dd" + separator + "yyyy"){
      inMonth = inDate.substring(0,inDate.indexOf(separator));
      if (inMonth.substring(0,1) == "0" && inMonth.length > 1)
        inMonth = inMonth.substring(1,inMonth.length);
      inMonth = parseInt(inMonth);
    }
    else if(dateFormat == "dd" + separator + "mm" + separator + "yyyy"){
      inMonth   = inDate.substring(inDate.indexOf(separator) + 1, inDate.lastIndexOf(separator));
      if (inMonth.substring(0,1) == "0" && inMonth.length > 1)
        inMonth = inMonth.substring(1,inMonth.length);
      inMonth = parseInt(inMonth);
    }
    else if(dateFormat == "yyyy" + separator + "mm" + separator + "dd"){
      inMonth   = inDate.substring(inDate.indexOf(separator) + 1, inDate.lastIndexOf(separator));
      if (inMonth.substring(0,1) == "0" && inMonth.length > 1)
        inMonth = inMonth.substring(1,inMonth.length);
      inMonth = parseInt(inMonth);
    }
  }
  if(isNaN(inMonth)) inMonth = 0;
  return inMonth;
}

function getYear(dateFormat, separator, inDate){
  var inYear = 0;
  if (inDate.indexOf(separator) != -1){
    if( (dateFormat == "dd" + separator + "mm" + separator + "yyyy") || (dateFormat == "mm" + separator + "dd" + separator + "yyyy") ){
      inYear  = inDate.substring(inDate.lastIndexOf(separator) + 1, inDate.length);
      if (inYear.substring(0,1) == "0" && inYear.length > 1)
        inYear = inYear.substring(1,inYear.length);
      inYear = parseInt(inYear);
    }
    else if(dateFormat == "yyyy" + separator + "mm" + separator + "dd"){
      inYear = inDate.substring(0,inDate.indexOf(separator));
      inYear = parseInt(inYear);
    }
  }
  if(isNaN(inYear)) inYear = 0;
  return inYear;
}

// GET NUMBER OF DAYS IN MONTH
function getDaysInMonth(month,year)  {
  var days;
  if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)  days=31;
  else if (month==4 || month==6 || month==9 || month==11) days=30;
  else if (month==2){
    if (isLeapYear(year))
      days=29;
    else
      days=28;
  }
  return (days);
}

// CHECK TO SEE IF YEAR IS A LEAP YEAR
function isLeapYear (Year) {
  if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) return (true);
  else return (false);
}

// VERIFY STARTING AND EXPIRY DATE
function verifyDate(formatDate, checkDate, startingDate, expiryDate){
  var now   = new Date();
  var day   = now.getDate();
  var month = now.getMonth();
  var year  = now.getYear();
  if (year < 100) year += 1900;
  var day1 = getDay(formatDate, "/",startingDate);
  var month1 = getMonth(formatDate, "/",startingDate) - 1;
  var year1 = getYear(formatDate, "/",startingDate);
  if ( year1 < 1 || month1 < 0 || month1 > 11 || day1 < 1 || day1 > getDaysInMonth(month1+1, year1) ) {
    return -1;
  }
  if (checkDate && (DateCompare(day, month, year, day1, month1, year1) > 0)) {
 	return -2;
  }

  var day2 = getDay(formatDate, "/",expiryDate);
  var month2 = getMonth(formatDate, "/",expiryDate) - 1;
  var year2 = getYear(formatDate, "/",expiryDate);
  if ( year2 < 1 || month2 < 0 || month2 > 11 || day2 < 1 || day2 > getDaysInMonth(month2+1, year2) ) {
    return -3;
  }
  if (DateCompare(day, month, year, day2, month2, year2) > 0) {
    return -4;
  }
  if (DateCompare(day1, month1, year1, day2, month2, year2) > 0) {
    return -5;
  }

  return 1;
}
