var aryRequired = new Array();
var intArrayCount = 0;
    
function defineRequired(strElementName, strDisplayMessage, blnIsEmail, blnIsNumber, blnIsCheckbox)
{
  var objRequired = new Object();
  objRequired.ElementName = strElementName;
  objRequired.DisplayMessage = strDisplayMessage;
  objRequired.IsEmail = blnIsEmail;
  objRequired.IsNumber = blnIsNumber;
  objRequired.IsCheckbox = blnIsCheckbox;
  aryRequired[intArrayCount] = objRequired;
  intArrayCount++;
}


function checkForm(objForm)
{
  //web tv bug fix
  if (navigator.userAgent.indexOf("WebTV") == -1) {
    for (var i = 0; i < aryRequired.length; i++) {
      var blnFail = true;
      if(typeof(objForm[aryRequired[i].ElementName]) == 'undefined')
        continue;
//      var objElement = eval("objForm." + aryRequired[i].ElementName);
      var objElement = 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{
		/*			if ( document.getElementById(aryRequired[i].ElementName).type == 'checkbox' )
					{
						if ( document.getElementById(aryRequired[i].ElementName).checked )
						{
							blnFail = false;
						}
						
					}
					else
					{
						blnFail = false;
					}
					*/
			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
        }
//alert(objForm.ttype);
        if(typeof(objForm.ttype) != 'undefined') {
	  if(objForm.ttype.value == '') {
	    alert('Please choose an option for Type');
	    return false;
	  }
	}
        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;
    }

    // Change these to the inputs you want required
defineRequired("firstName", "Please enter a value for First Name");
defineRequired("lastName", "Please enter a value for Last Name");
defineRequired("email", "Please enter a valid Email Address", true);
defineRequired("pAddress1", "Please enter a value for Addresssss");
defineRequired("pSuburb", "Please enter a value for Suburb");
defineRequired("pState", "Please enter a value for State");
defineRequired("pPostcode", "Please enter a value for Postcode");
defineRequired("phoneNumber", "Please enter a value for Phone Number");
defineRequired("package", "Please choose a package option", false, false, true);
// defineRequired("holes", "Please choose number of holes", false, false, false);
defineRequired("ttype", "Please choose an option for Type", false, false, true);
