/* Form Validation Objects: FormValidator and ElementValidator */

/******************************************************/
// ElementValidator
/******************************************************/


function ElementValidator(argFormName, argElementName, argRegExpPattern, argMessage)
{
 this.formName = argFormName;
 this.elementName = argElementName;
 this.regExpPattern = argRegExpPattern;
 this.message = argMessage;
 this.isValid = ElementValidator_isValid;
}

function ElementValidator_isValid()
{


 var text = document.forms[this.formName].elements[this.elementName].value;
 var type = document.forms[this.formName].elements[this.elementName].type;
 var tone = document.forms[this.formName].elements[this.elementName];
if(type == "select-one"){
 var index= document.forms[this.formName].elements[this.elementName].selectedIndex
 if(index == -1)index=0;
  text=tone.options[index].text
}
 var myReg = new RegExp(this.regExpPattern);


 if (!myReg.test(text))
 {

  empty_fields += "\n " + this.message;
  if( numberone == ""){
  numberone += this.elementName;
  nameOfForm += this.formName;
  }

  return false;
 }

 else
 {

  return true;
 }

}

/******************************************************/
// ElementValidator End
/******************************************************/





/******************************************************/
// FormValidator Start
/******************************************************/

function FormValidator()
{
 this.elements = new Array();
 this.add = FormValidator_add;
 this.validate = FormValidator_validate;
}

function FormValidator_add(argElementValidator)
{
 var newIndex = this.elements.length;
 this.elements[newIndex] = argElementValidator;
}

function FormValidator_validate()
{

 var formValid = true;
     numberone="";
     nameOfForm="";
empty_fields=" ";
 for (var i = 0 ; i < this.elements.length ; i++)
 {
     if (!this.elements[i].isValid())
  {

  formValid = false;

  }
 }
 if (!formValid){
 var msg = "The following fields cannot be left blank or are invalid:"+ empty_fields + "\n"
     alert(msg);
   document.forms[nameOfForm].elements[numberone].focus();

 } else{
 var msg = "The Car park Details have been passed to the email server"+
 " you shoud receive your email within a few minutes... ";
  document.getElementById('Stat').innerHTML= msg;
                 }
 return formValid;

}
/******************************************************/
// FormValidator End
/******************************************************/

