
/*var nameOfFormToBeDisplayed = "book";*/


function ShowForm( nameOfFormToBeDisplayed  ){

	hideAll();
	
	var formHolderName;	
	 
	if ( nameOfFormToBeDisplayed == "book" ){	
		formHolderName = 'bookFormHolder'; 	
	}
	else if ( nameOfFormToBeDisplayed == "info" ){	
		formHolderName = 'infoFormHolder'; 	
	}
	else if ( nameOfFormToBeDisplayed == "ebrochure" ){	
		formHolderName = 'ebrochureFormHolder'; 	
	}
	else if ( nameOfFormToBeDisplayed == "brochure" ){	
		formHolderName = 'brochureFormHolder'; 	
	}
	else if ( nameOfFormToBeDisplayed == "newsletter" ){	
		formHolderName = 'newsletterFormHolder'; 	
	}

	if ( formHolderName) {
		document.getElementById(formHolderName).style.display="block";
	}	
	
}




function hideAll( ){

	hide('bookFormHolder');
	hide('infoFormHolder');
	hide('ebrochureFormHolder');
	hide('brochureFormHolder');
	hide('newsletterFormHolder');
}


function hide( formHolderName){
	document.getElementById(formHolderName).style.display="none";
}




function makeBackgroundActive( e )
{


    if (!e) {var e = window.event}

        if (e.target){
            targ = e.target
        }
        else if (e.srcElement){
          targ = e.srcElement
        }

        if (targ.nodeType == 3){ // defeat Safari bug
            targ = targ.parentNode;
        }

        var targ;
        var parentDivName;

        targ = targ.parentNode;
        parentDivName = targ.parentNode.id;  // traverse another parent node for input

        activateBackgroundColour( parentDivName );
}


function activateBackgroundColour( parentDivName ){

	
	 
     var rowLabel =  parentDivName.substring( 0, parentDivName.length -2);
	 	 
	 

     for( var loop=1; loop < 40; loop++ ){
         
		  		  
		  var label = rowLabel; 

		  
		  if ( loop < 10){
			label += "0";		  
		  }
		  
		  label+=loop;
	  
          var ele = document.getElementById(label);

		  //alert( ele + ' element for ' +  label) ;
		  
          if (ele != null){
              if (( label == parentDivName) ){
                  ele.style.backgroundColor= "#efefef" ;
                 
              }
              else{
                  ele.style.backgroundColor= "#ffffff";

              }
          }
      }
}


function validateEmail(fEmail, lEmail ){

    var validateEmail = 0;

    
    var formEmail = fEmail.value;

    var atPos = formEmail.indexOf("@");

    if ( atPos != -1 ){

     var restOfString = formEmail.substring(atPos+1, formEmail.length);

     if ( restOfString.indexOf(".")!= -1){
        validateEmail = 1;
      }  
     }
	


 
	
	if ( fEmail.value.length == 0 ){
     validateEmail = 2;
     
    }

     

     return validateEmail;
}



function validateTelephone( fTel, lTel  ){

    var validateTel = 0;

    

    if ( fTel.value.length > 6 ){
     validateTel = 1;
     
    }
	else if ( fTel.value.length == 0 ){
     validateTel = 2;
     
    }	
    
   return validateTel;


}


function validateFormFieldValues( formFields, formprefix, labelprefix ){

  var validateFields = false;
  var error = true;

  
  for( loop=0; loop< formFields.length; loop++ ) {

      var formField = document.getElementById(formprefix + formFields[loop] );
      var label = document.getElementById(labelprefix + formFields[loop]);

      if (formField.value != ""){
	  
          resetStyleForm( label, formField );
          validateFields = true;
        }
        else{
          errorStyleForm( label, formField );
		  error = false;
      }
  }
  return error;
}


getEBValidatingFields

function getEBValidatingFields(){

  var validatingFields = new Array();

  validatingFields.push("name");
   validatingFields.push("title");

  return validatingFields;
}



function getNewsLetterValidatingFields(){

  var validatingFields = new Array();

  validatingFields.push("name");
   validatingFields.push("title");

  return validatingFields;
}



function getBookingValidatingFields(){

  var validatingFields = new Array();

  validatingFields.push("name");
  validatingFields.push("info");
  validatingFields.push("address");
  validatingFields.push("country");
  validatingFields.push("title");

  return validatingFields;
}

function getInfoValidatingFields(){

  var ivalidatingFields = new Array();

  ivalidatingFields.push("name");
  ivalidatingFields.push("info");  
  ivalidatingFields.push("title");

  return ivalidatingFields;
}

function getBrochureValidatingFields(){

  var validatingFields = new Array();

  validatingFields.push("name");
   validatingFields.push("title");
   validatingFields.push("address");
  validatingFields.push("country");

  return validatingFields;
}


function overrideEmailState(  lEmail, fEmail,  emailValidate,  telValidate ){

	var newEmailValidateState = 1;

	if ( telValidate == 1 ){
		if ( emailValidate == 0){
			errorStyleForm( lEmail, fEmail );
			newEmailValidateState = 0;
		
		}
		else if ( emailValidate == 2 ){
			resetStyleForm( lEmail, fEmail );
			
			// implicit override -- It's ok cos telephone is valid
			// newEmailValidateState = 1; 
		}	
	}
	
	return newEmailValidateState;


}


function overrideTelState(  lTel, fTel,  emailValidate,  telValidate ){

var newTelValidateState = 1;

if ( emailValidate == 1 ){
		if ( telValidate == 0){
			errorStyleForm( lTel, fTel );
			newTelValidateState = 0;
		
		}
		else if ( telValidate == 2 ){
			resetStyleForm( lTel, fTel );
			
			// Implicit override -- It's ok cos email is valid
			//newTelValidateState = 1
		}	
	}
	return newTelValidateState;
}


function styleTelEmail( emailValidate,telValidate, lEmail, fEmail, lTel, fTel ){

	
	
	if ( 	( emailValidate == 0 && telValidate == 2 ) ||
			( emailValidate == 2 && telValidate == 0 ) ||
			( emailValidate == 2 && telValidate == 2 ) ||
			( emailValidate == 0 && telValidate == 0 ) ){
	
	
		errorStyleForm( lEmail, fEmail );
		errorStyleForm( lTel, fTel );
		
	
	}
	else{
	
		resetStyleForm( lEmail, fEmail );
		resetStyleForm( lTel, fTel );
		
	}
	
}



function styleJustEmail( emailValidate, lEmail, fEmail ){	
	
	if ( emailValidate == 0 || emailValidate == 2 ) {	
	
		errorStyleForm( lEmail, fEmail );
		
	}
	else if (emailValidate == 1) {
	
		resetStyleForm( lEmail, fEmail );		
		
	}
	
}


function validateBookForm(){

	var validate;

	var fEmail = document.getElementById('femail');
	var lEmail = document.getElementById('lemail');
	var emailValidate    =   validateEmail( fEmail, lEmail) ;
	
	
	var fTel = document.getElementById('fnumbers');
    var lTel = document.getElementById('lnumbers');
	var telValidate      =   validateTelephone( fTel, lTel);

	var formFields = getBookingValidatingFields( formFields );
	
	var basicFormFields  =   validateFormFieldValues( formFields, 'f', 'l' ); 
	
	
	var howHeardAbout =   ValidateSelectOptions( 'fhearabout', 'lhearaboutus' );
	var enquiryType =   ValidateSelectOptions( 'fenquiryType', 'ltype' );
	
	

	if ( telValidate == 1 && emailValidate != 1 ){
		emailValidate = overrideEmailState(  lEmail, fEmail,  emailValidate,  telValidate );
	}	
		
	
	if ( emailValidate == 1 && telValidate != 1) {
		telValidate = overrideTelState(  lTel, fTel,  emailValidate,  telValidate );	
	}	
	
	styleTelEmail( emailValidate,telValidate, lEmail, fEmail, lTel, fTel )
	
	
	
	
	
		
	if ( howHeardAbout && enquiryType && basicFormFields && emailValidate == 1 && telValidate == 1 ) {
        validate = true;
   }
   
   return validate;
   
   
  
}



function validateInfoForm(){

	var validate;

	var fEmail = document.getElementById('f_iemail');
	var lEmail = document.getElementById('l_iemail');
	var emailValidate    =   validateEmail( fEmail, lEmail) ;
	
	
	var fTel = document.getElementById('f_inumbers');
    var lTel = document.getElementById('l_inumbers');
	var telValidate      =   validateTelephone( fTel, lTel);

	var formFields = getInfoValidatingFields(  );
	
	var basicFormFields  =   validateFormFieldValues( formFields, 'f_i', 'l_i' ); 
	
	
	var howHeardAbout =   ValidateSelectOptions( 'f_ihearabout', 'l_ihearaboutus' );
	var enquiryType =   ValidateSelectOptions( 'f_ienquiryType', 'l_itype' );
	

	if ( telValidate == 1 && emailValidate != 1 ){
		emailValidate = overrideEmailState(  lEmail, fEmail,  emailValidate,  telValidate );
	}	
	
	
	if ( emailValidate == 1 && telValidate != 1) {
		telValidate = overrideTelState(  lTel, fTel,  emailValidate,  telValidate );	
	}	
	
	styleTelEmail( emailValidate,telValidate, lEmail, fEmail, lTel, fTel )
	
	
		
	if ( howHeardAbout && enquiryType && basicFormFields && emailValidate == 1 && telValidate == 1 ) {
        validate = true;
   }
   
   return validate;
   
   
  
}


function validateEBForm(){

	var validate;

	var fEmail = document.getElementById('f_ebemail');
	var lEmail = document.getElementById('l_ebemail');
	
	var emailValidate    =   validateEmail( fEmail, lEmail) ;	
	
	var fTel = document.getElementById('f_ebnumbers');
    var lTel = document.getElementById('l_ebnumbers');		
	var telValidate      =   validateTelephone( fTel, lTel);	
	

	var formFields = getEBValidatingFields(  );
	
	var basicFormFields  =   validateFormFieldValues( formFields, 'f_eb', 'l_eb' ); 
	
	
	var howHeardAbout =   ValidateSelectOptions( 'f_ebhearabout', 'l_ebhearaboutus' );
			
	styleJustEmail( emailValidate, lEmail, fEmail );
	styleJustEmail( telValidate, lTel, fTel );
		
	if ( howHeardAbout && basicFormFields && telValidate == 1 && emailValidate == 1  ) {
        validate = true;
   }
   
   return validate;
   
   
  
}

function validateNewsLetterForm(){

	var validate;

	var fEmail = document.getElementById('f_nemail');
	var lEmail = document.getElementById('l_nemail');
	
	var emailValidate    =   validateEmail( fEmail, lEmail) ;

	var fTel = document.getElementById('f_nnumbers');
    var lTel = document.getElementById('l_nnumbers');		
	var telValidate      =   validateTelephone( fTel, lTel);	
	

	var formFields = getNewsLetterValidatingFields(  );
	
	var basicFormFields  =   validateFormFieldValues( formFields, 'f_n', 'l_n' ); 
	
	
	var howHeardAbout =   ValidateSelectOptions( 'f_nhearabout', 'l_nhearaboutus' );
			
	styleJustEmail( emailValidate, lEmail, fEmail );
	styleJustEmail( telValidate, lTel, fTel );
		
	if ( howHeardAbout && basicFormFields && emailValidate == 1  && telValidate == 1 ) {
        validate = true;
   }
   
   return validate;
   
   
  
}


function validateBrochureForm(){

	var validate = false;

	
	var formFields = getBrochureValidatingFields(  );
	
	var basicFormFields  =   validateFormFieldValues( formFields, 'f_b', 'l_b' ); 
	
	var fTel = document.getElementById('f_bnumbers');
    var lTel = document.getElementById('l_bnumbers');		
	var telValidate      =   validateTelephone( fTel, lTel);
	
	
	var howHeardAbout =   ValidateSelectOptions( 'f_bhearabout', 'l_bhearaboutus' );
			
	styleJustEmail( telValidate, lTel, fTel );
		
	if ( howHeardAbout && basicFormFields && telValidate == 1  ) {
        validate = true;
   }
   
   return validate;
   
   
  
}






function validateForm( formLabel )
{

   var formName;
   var submitForm
   var errorLabel;
	
   var validate = false;
   
   
   
   if (formLabel== 'book' ){
		validate = validateBookForm(); 
		formName = 'bookForm'; 
		errorLabel = 'b_errorTextLabel';
		submitForm = 'bookForm';
		
   }
   else if (formLabel== 'info' ){
   
		validate = validateInfoForm(); 
		formName = 'infoForm'; 
		errorLabel = 'b_i_errorTextLabel';
		submitForm = 'infoForm';
   }
   
   
   else if (formLabel== 'ebrochure' ){
   
		validate = validateEBForm(); 
		formName = 'ebrochureForm'; 
		errorLabel = 'b_eb_errorTextLabel';
		submitForm = 'ebrochureForm';
   }
   
   else if (formLabel== 'brochure' ){
   
		validate = validateBrochureForm(); 
		formName = 'brochureForm'; 
		errorLabel = 'b_b_errorTextLabel';
		submitForm = 'brochureForm';
   }
   
   else if (formLabel== 'newsletter' ){
   
		validate = validateNewsLetterForm(); 
		formName = 'newsletterForm'; 
		errorLabel = 'b_n_errorTextLabel';
		submitForm = 'newsletterForm';
   }
   
   
   
  

   /*displayFormMessage( validate);  */
	

   if(validate){
    
	if (formName){
		document.getElementById(errorLabel).innerHTML="";
		var form  = document.getElementById(submitForm);
		form.action="http://www.headconcierge.com/sendIt.php";

		form.submit();
		
		 
	}
	}
	else{
		document.getElementById(errorLabel).innerHTML="Oops! &nbsp; Message has not been sent. &nbsp; The form has errors, please correct the mandatory fields (*) ";
	
	}
   

	

}


function ValidateSelectOptions( selectControlName, label ){

	var validate = true;

	var selectControl = document.getElementById(selectControlName);
	
	if (selectControl){	
		for (var i = 0; i < selectControl.options.length; i++){
		
		
			
		 if ( selectControl.options[i].selected == true &&  (selectControl.options[i].value == "Please Select" || selectControl.options[i].value == "" ) ){
			
				validate = false;
				
				
				break;
				
				
				
			
		 }
		}
	}
	
	var elabel = document.getElementById(label);
	
	
	
	if (!validate ){		
		if (elabel){
			elabel.style.color = errorColor;
		}	
	}
	else{
		if (elabel){
			elabel.style.color = standardColor;
		}		
	}
	
	return validate;

}



function errorStyleForm( label, input ){
       label.style.color = errorColor;
       input.style.color = errorColor;
}

function resetStyleForm( label, input ){
       label.style.color = standardColor;
       input.style.color = standardColor;
}


var errorColor = "#fc0000";
var standardColor = "#555555";
