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)
{
  var blnFail = false;

  //web tv bug fix
  if (navigator.userAgent.indexOf("WebTV") == -1) {
    for (var i = 0; i < aryRequired.length; i++) {
      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();
        break;
      } 
    }
    // all elements passed, submit form
  }
  if (!blnFail) { 
    objForm.submit();
  }
}

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;
}
