var aryRequired = new Array();
var intArrayCount = 0;

function defineRequired(strElementName, strDisplayMessage, blnIsEmail, blnIsNumber) {
    var objRequired = new Object();
    objRequired.ElementName = strElementName;
    objRequired.DisplayMessage = strDisplayMessage;
    objRequired.IsEmail = blnIsEmail;
    objRequired.IsNumber = blnIsNumber;
    aryRequired[intArrayCount] = objRequired;
    intArrayCount++;
}

function checkForm(objForm) {

    if (typeof checkForm_Ext == 'function') {
        if (!checkForm_Ext()) return false;
    }

    //web tv bug fix
    if (navigator.userAgent.indexOf("WebTV") == -1) {
      for (var i = 0; i < aryRequired.length; i++) {
        var blnFail = true;
        var objElement = eval("objForm." + aryRequired[i].ElementName);

        if (objElement.length && !objElement.type && document.images) {
          //looping through element array
          for (var x = 0; x < objElement.length; x++) {
            if (objElement[x].checked && objElement[x].value != "") blnFail = false;
          }
        } else {
          if (objElement.value != "") {
            if (aryRequired[i].IsEmail) { if (CheckEmail(objElement.value)) blnFail = false; }
            else if (aryRequired[i].IsNumber) { if (!isNaN(objElement.value)) blnFail = false; }
            else blnFail = false;
          }
        }
        if (blnFail) {
          alert(aryRequired[i].DisplayMessage);
          if (objElement.length && !objElement.type) objElement[0].focus();
          else objElement.focus();
          return false;
        }
      }
    // all elements passed, submit form
    }
    return true;
}

function CheckEmail(strData) {
    var posAt = strData.indexOf("@")
    var strName = strData.substring(0, posAt)
    var strDomain = strData.substring(posAt+1, strData.length)
    var posDot = strDomain.indexOf(".")
    var strSubDomain = strDomain.substring(posDot+1,strDomain.length)

    if ( strName=="" || strDomain=="" || posDot < 1 || strSubDomain =="") return false;
    else return true;
}