var mustExist =             new Array("name", "co_name",      "cl_address",      "cl_zip",                 "email",  "phone",        "job_date", "venue", "job_address", "job_hours",  "job_desc",          "talent_desc",           "talent_duty",      "budget");
var mustExistDescriptions = new Array("name", "company name", "company address", "company city/state/zip", "e-mail", "phone number", "job date", "venue", "job address", "schedule",   "event description", "description of talent", "duties of talent", "budget");
var noFirst = new Array("e-mail");

function required(str)
{
var y;
  for (y in mustExist)
  {
    if (mustExist[y]==str)
      return y;
  }
  return -1;
}

/*  Main Validation Form (Booking)
 * ------------------------------------------------- */
function validateBooking(frm)
{
var k;
  /* assert required fields */
  for (var i=0;i<frm.elements.length;i++)
  {
    k = required(frm.elements[i].name);
    //alert("k = "+ k+", i = "+ i);
    if (   k != -1
        && frm.elements[i].value=="")
    {
      genericAlert(mustExistDescriptions[k]);
      frm.elements[i].focus();
      return false;
    }
    //alert(frm.elements[i].name+" = "+frm.elements[i].value);
  }

  /* check raw numbers */
  if (   frm.nr_female.value == 0
      && frm.nr_male.value == 0)
  {
     alert("You have requested no models, actors, or talent or either gender.");
     return false;
  }
  
  if (   frm.budget.value == " "
      || frm.budget.value == "0"
      || frm.budget.value == "$0")
  {
     alert("You have not provided a budget.");
     frm.budget.focus();
     return false;
  }
  
  /* check selectors */
  if (frm.Request.value == "0")
  {
    noFirstAlert("Request (Model/Talent Information)");
    frm.Request.focus();
    return false;
  }  

  /* check e-mail */
  if (emailtest(frm.email.value))
  {
    alert("It will take a minute to send your request.");
    return true;
  }
  else
  {
    alert("Please enter a VALID e-mail adress");
	  frm.email.focus();
		return false;
  }  
}

/* Some form data
name
  name
company name
  co_name
street address
  cl_address
city, state, zip 
  cl_zip
e_mail
  email
phone number
  phone
fax number
  fax
job date  
  job_date
  venue
job address
  job_address
hours and schedule
  job_hours
event description
  job_desc
type of talent
  (Request)
talent_desc
talent_duty
budget
*/
