//--------------------------------------------------------------------------------
//- Client-Side (JavaScript) -----------------------------------------------------
//--------------------------------------------------------------------------------

function getSelectedButton(buttonGroup) {
   for (var i = 0; i < buttonGroup.length; i++) {
      if (buttonGroup[i].checked) {
         return i;
      }
   }
   return -1;
}

function getSelectedValue(buttonGroup) {
   var i = getSelectedButton(buttonGroup);
   if (i < 0) {
      return "";
   } else {
      return buttonGroup[i].value;
   }
}

function getDefaultButton(buttonGroup) {
   for (var i = 0; i < buttonGroup.length; i++) {
      if (buttonGroup[i].defaultChecked) {
         return i;
      }
   }
   return -1;
}

function clickCheckbox(dbField,cbField) {
   //alert("clickCheckbox authorized()="+authorized(dbField.form)+" dbField.name="+dbField.name+" dbField.value="+dbField.value);
   if (!authorized(dbField.form)) {
      cbField.checked = cbField.defaultChecked;
      alertNotAuthorized();
   } else {
      if (cbField.checked) {
         dbField.value = 1;
      } else {
         dbField.value = 0;
      }
      //alert("You clicked "+cbField.name+".  A value of "+dbField.value+" will be stored into "+dbField.name);
   }
   resetTimeout();
}

function clickRadio(dbField,rbGroup,rbSequence,value) {
   //alert("clickRadio authorized()="+authorized(dbField.form)+" dbField.name="+dbField.name+" dbField.value="+dbField.value);
   if (!authorized(dbField.form)) {
      var defaultIndex = getDefaultButton(rbGroup);
      if (rbSequence-1 != defaultIndex) {
         rbGroup[rbSequence-1].checked = false;
         if (defaultIndex >= 0) {
            rbGroup[defaultIndex].checked = true;
         }
      }
      alertNotAuthorized();
   } else {
      if (dbField.value == value) {
         rbGroup[rbSequence-1].checked = false;
         dbField.value = 0;
      } else {
         dbField.value = value;
      }
   }
   resetTimeout();
}

function clickOption(dbField) {
   //alert("clickOption authorized()="+authorized(dbField.form)+" dbField.name="+dbField.name+" dbField.value="+dbField.value);
   if (!authorized(dbField.form)) {
      var defaultIndex = getDefaultOption(dbField);
      if (dbField.selectedIndex != defaultIndex) {
         dbField.selectedIndex = defaultIndex;
      }
      alertNotAuthorized();
   }
   resetTimeout();
}

function getDefaultOption(dbField) {
   for (var i = 0; i < dbField.length; i++) {
      if (dbField.options[i].defaultSelected) {
         return i;
      }
   }
   return 0;
}

function textOnClick(dbField) {
   resetTimeout();
}

function textOnFocus(dbField) {
   resetTimeout();
}

function textOnKeyDown(dbField) {
   resetTimeout();
}

function textOnChange(dbField) {
   //alert("textOnChange authorized()="+authorized(dbField.form)+" dbField.name="+dbField.name+" dbField.value="+dbField.value);
   if (!authorized(dbField.form)) {
      dbField.value = dbField.defaultValue;
      alertNotAuthorized();
   }
   resetTimeout();
}

function getCookieData(key) {
   key += "=";
   var i = 0;
   while (i < document.cookie.length) {
      var j = i + key.length;
      if (document.cookie.substring(i,j) == key) {
         var cookieEnd = document.cookie.indexOf(";",j);
         if (cookieEnd == -1) {
            cookieEnd = document.cookie.length;
         }
         return unescape(document.cookie.substring(j,cookieEnd));
      }
      i++;
   }
   return "";
}

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

function fixCookieDate (date) {
  var base = new Date(0);
  var skew = base.getTime(); // dawn of (Unix) time - should be 0
  if (skew > 0)  // Except on the Mac - ahead of its time
    date.setTime (date.getTime() - skew);
}

function getCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return null;
}

function setCookie (name,value,expires,path,domain,secure) {
  //alert("setCookie name="+name+" value="+value+" expires="+expires);
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}

function deleteCookie (name,path,domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

function nextYear() {
   var d = new Date();
   fixCookieDate (d);
   d.setTime (d.getTime() + (365 * 24 * 60 * 60 * 1000));
   return d;
}

function cookieRadioChecked(variableName, variableValue) {
   var value = getCookie(variableName);
   if (value == variableValue) {
      return "checked";
   } else {
      return "";
   }
}

function newWindow(URL, windowName, windowFeatures) {
   return window.open(URL, windowName, windowFeatures);
}

function closeWindow(window) {
   window.close();
}

function viewHelp(name) {
   newWindow("help"+name+".asp","help"+name,"scrollbars=yes,status=no,resizable=yes,width=400,height=400,top=100,left=100");
   return false;
}
