function formCheck(type,require_special_user_key,require_program_user_key,formobj)
{
    switch(type)
    {
      case "booking" :

        var fieldRequired = Array("firstname","surname","address","suburb","state","postcode","phone","email","indemnity");
        var fieldDescription = Array("First Name(s)","Surname","Address","Suburb","State","Postcode","Phone","E-Mail","Indemnity must be checked");

        if (require_special_user_key == 1)
        {
          fieldRequired[fieldRequired.length] = "special_user_key";
          fieldDescription[fieldDescription.length] = "Special Key";
        }

        if (require_program_user_key == 1)
        {
          fieldRequired[fieldRequired.length] = "program_user_key";
          fieldDescription[fieldDescription.length] = "Program Key";
        }

        break;
    }
  
    var alertMsg = "Please complete the following fields:\n";
	
    var l_Msg = alertMsg.length;
	
    for (var i = 0; i < fieldRequired.length; i++)
    {
      var obj = formobj.elements[fieldRequired[i]];
      if (obj)
      {
        switch(obj.type)
        {
          case "select-one":
            if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "")
            {
              alertMsg += " - " + fieldDescription[i] + "\n";
            }
            break;
          case "select-multiple":
            if (obj.selectedIndex == -1)
            {
              alertMsg += " - " + fieldDescription[i] + "\n";
            }
            break;
		  case "checkbox":
            if (!obj.checked )
            {
              alertMsg += " - " + fieldDescription[i] + "\n";
            }
            break;
          case "text":
          case "textarea":
            if (obj.value == "" || obj.value == null)
            {
              alertMsg += " - " + fieldDescription[i] + "\n";
            }
            break;
          default:
            if (obj.value == "" || obj.value == null)
            {
              alertMsg += " - " + fieldDescription[i] + "\n";
            }
        }
      }
    }
	
    if (alertMsg.length == l_Msg)
    {
      return true;
    }
    else
    {
      alert(alertMsg);
      return false;
    }
}
