function hideDivElement(divEle) {
  try {
    if (divEle) {
      if (divEle.style.visibility != "hidden") {
        divEle.style.visibility = "hidden";
        divEle.style.display = "none";
      }
    }
  }
  catch (err) {
  }
}

function showDivElement(divEle) {
  try {
    if (divEle) {
      if (divEle.style.visibility != "visible") {
        divEle.style.visibility = "visible";
        divEle.style.display = "inline";
      }
    }
  }
  catch (err) {
  }
}

function findDivPosition(obj) {
  var curleft = curtop = 0;
  if (obj.offsetParent) {
    curleft = obj.offsetLeft;
    curtop = obj.offsetTop;
    while (obj = obj.offsetParent) {
      curleft += obj.offsetLeft;
      curtop += obj.offsetTop;
    }
  }
  return [curleft,curtop];
}

function highlightText(divEle){
  try {
    if (divEle) {
      var code = document.body.createTextRange();
      code.moveToElementText(divEle);
      code.execCommand("SelectAll");
      code.execCommand("Copy");
    }
  }
  catch (err) {
  }
}

function hideRowElement(divEle) {
  try {
    if (divEle) {
      divEle.style.display = "none";
    }
  }
  catch (err) {
    alert('h: ' + err);
  }
}

function showRowElement(divEle) {
  try {
    if (divEle) {
      divEle.style.display = "";
    }
  }
  catch (err) {
    alert('s: ' + err);
  }
}

function toggleRowElement(divEle) {
  try {
    if (divEle) {
      if (divEle.style.display == "none") {
        showRowElement(divEle);
      }
      else {
        hideRowElement(divEle);
      }
    }
  }
  catch (err) {
    alert('h: ' + err);
  }
}

//  check for valid numeric strings	
function isNumeric(strString) {
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return true;

   // Ttest strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++){
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1) {
         blnResult = false;
      }
   }
   return blnResult;
}

// check for valid zip code strings	
function isValidZipCode(strString) {
   var strValidChars = "0123456789";
   var strChar;
   var blnResult = true;

   if (strString.length < 5) return false;

   // Ttest strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++){
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1) {
         blnResult = false;
      }
   }
   return blnResult;
}

function getRandom(last) {
  var ranNum = Math.floor(Math.random() * last);
  return ranNum;
}

function newFullWindow(url, name, width, height) {
    window.open(url, 
                name, 
                'width=' + width + ', height=' + height + ', toolbar=yes, \
                location=no, directories=yes, \
                status=yes, menubar=yes, scrollbars=yes, \
                copyhistory=yes, resizable=yes');
}

function newShortWindow(url, name, width, height) {
    window.open(url, 
                name, 
                'width=' + width + ', height=' + height + ', toolbar=no, \
                location=no, directories=no, \
                status=no, menubar=no, scrollbars=yes, \
                copyhistory=no, resizable=yes');
}

function buildFormData(formId) {
  var formData = "";
  var formObj = document.getElementById(formId);
  if (formObj != null) {
    var length = formObj.length;
    var i = 0;
    for (i; i < length; i++) {
      var formField = formObj.elements[i];
      var curValue = '';
      if (formField.type == "button") {
        continue;
      } else if (formField.type == "checkbox") {
        if (formField.checked) {
          curValue = "true";
        } else {
          curValue = "false";
        }
      } else if (formField.type == "radio") {
        if (formField.checked) {
          curValue = formField.value;
        } else {
          continue;
        }
      } else if ((formField.type == "select-one") || (formField.type == "select-multiple")) {
        if (formField.options.length > 0) {
          var op = 0;
          for (op; op < formField.options.length; op++) {
            if (op > 0) {
              curValue += ',';
            }
            curValue += formField.options[op].value;
          }
        }
      } else {
        curValue = formField.value;
      }
      
      if (curValue != '') {
        if (formData != '') {
          formData += '&';
        }
        formData += (formField.name + '=' + escape(curValue));
      }
    }
  }
  return formData;
}

function resetForm(formId) {
  var formObj = document.getElementById(formId);
  if (formObj != null) {
    var length = formObj.length;
    for (var i = 0; i < length; i++) {
      var formField = formObj.elements[i];
      if (formField.type == "button") {
        continue;
      } else if (formField.type == "checkbox") {
        try { formField.checked = false; } catch(errc) {}
      } else if (formField.type == "radio") {
        try { formField.checked = false; } catch(errr) {}
      } else if ((formField.type == "select-one") || (formField.type == "select-multiple")) {
        if (formField.options.length > 0) {
          try { formField.selectedIndex = 0; } catch(errs) {}
        }
      } else if (formField.type == "text") {
        try { formField.value = ""; } catch(err0) {}
      }
    }
  }
}

//
// Check if the value is a valid numeric value.  If not a numeric,
// then display alert.
//
function checkNumerical(obj) {
    if (obj != null) {
        var success = true;
        var value = obj.value;
        var regExp = /.*,/;
        if (regExp.test(value)) {
          success = false;
        } else if (isNaN(convertTextToNum(value))) {
          success = false;
        }
        
        if (success) return true;
        
        alert("Invalid numeric value.");
        obj.focus();
        return false;
    }
    return false;
}

//
// This function returns a text number without commas.
//
function convertTextToNum(textNumIn){
    // Initialipe function vars
    textInMessy = "" + textNumIn;
    textOutNice = "";

    // Remove commas
    for (p = 0; p < textInMessy.length; p++) {
        if (textInMessy.charAt(p) != ",") {
            textOutNice += textInMessy.charAt(p);
        }
    }
    return textOutNice;   // Exit function always with nice TEXT
}
