// JavaScript Document
form_ok=false;


// new function to remove the field on onclick event

function remove_field(text_field)
{
   
	   text_field.value="";
}




// end javascript function 



function checkFieldWasEntered (field, errorMsg)
{
	
	if (field.type == "text" && field.value.length == 0)
	{
		alert(errorMsg);
		field.focus();
		return false;
	}
	
	if ( (field.value=="First Name") || (field.value=="Surname") || (field.value=="address1") || (field.value=="address2") || (field.value=="address3") || (field.value=="DD") || (field.value=="MM") || (field.value=="YYYY")  )
	{
	field.value="";
	field.focus();
	return false;
	}
	
	
	else if (field.type.indexOf("select") != -1 && field.options[field.selectedIndex].value.length == 0)
	{
		alert(errorMsg);
		field.focus();
		return false;
	}
	return true;
}


function checkEmail (field, errorMsg)
{
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if(reg.test(field.value) == false) {
		alert(errorMsg);
		field.focus();
		return false;
	}
	return true;
}

function isNumeric (field, errorMsg)
{
	var reg = /^[0-9]*$/;
	if(reg.test(field.value) == false) {
		alert(errorMsg);
		return false;
	}
	return true;
}

function checkRadio (radio_a,errorMsg)
{
	for (var i=0;i<radio_a.length;i++)
	{
		if (radio_a[i].checked) return true;
	}

	alert(errorMsg);
	return false;
}

function isOver18 (dayField, monthField, yearField, errorMsg)
{
	/*
	Bdate = new Date();
	Bdate.setFullYear(yearField.value, monthField.value, dayField.value);
	alert(yearField.value + monthField.value + dayField.value);
	BDateArr = (''+Bdate).split(' ');
	Cdate = new Date;
	CDateArr = (''+Cdate).split(" ");
	age = CDateArr[3] - BDateArr[3];
	
	if (age < 18)
	{
		alert(errorMsg);
		return false;
	}
	return true;
	*/
	
	month = parseInt(monthField.value,10);
	
	if(!isNaN(month)){
		if(month > 0){
			month--;
		} else {
			month = 0;
		}
	} else {
		month = 0;
	}
	
	Bdate = new Date();
	Bdate.setFullYear(yearField.value,  month, dayField.value);
	
	var today18 = new Date();
	today18.setFullYear(today18.getFullYear() - 18, today18.getMonth(), today18.getDate());
	if (Bdate > today18){
		alert(errorMsg);
		return false;
	}
	
	return true;
}

function validate (f)
{
	if (f)
	{
		if (!checkFieldWasEntered(f.bar, "Please enter the nominated bar or outlet")) return false;
		
		
		if (!checkFieldWasEntered(f.driver_firstname, "Please enter the nominated designated driver's firstname")) return false;
		if (!checkFieldWasEntered(f.driver_lastname, "Please enter the nominated designated driver's lastname")) return false;

		
		
		if (!checkFieldWasEntered(f.your_firstname, "Please enter your first name")) return false;
		if (!checkFieldWasEntered(f.your_lastname, "Please enter your last name")) return false;
		
		
		if (!checkFieldWasEntered(f.address1, "Please enter your address 1")) return false;
		if (!checkFieldWasEntered(f.address2, "Please enter your address 2")) return false;
		if (!checkFieldWasEntered(f.address3, "Please enter your address 3")) return false;
		
		
		if (!checkFieldWasEntered(f.email, "Please enter your email address")) return false;
		if (!checkEmail(f.email, "The email address doesn't appear to be valid")) return false;
		if (!checkFieldWasEntered(f.day, "Please enter your date of birth")) return false;
		if (!isNumeric(f.day, "Please enter numeric values for your date of birth")) return false;
		if (!checkFieldWasEntered(f.month, "Please enter your date of birth")) return false;
		if (!isNumeric(f.month, "Please enter numeric values for your date of birth")) return false;
		if (!checkFieldWasEntered(f.year, "Please enter your date of birth")) return false;
		if (!isNumeric(f.year, "Please enter numeric values for your date of birth")) return false;
		if (!isOver18(f.day,f.month,f.year,"You must be over 18 to enter this competition")) return false;
		if (!checkFieldWasEntered(f.mobile, "Please enter your mobile number")) return false;
		if (!checkRadio(f.influence, "Please indicate if Designated Driver influences your choice of pub")) return false;
	}
}


function requiredFields () 
{
	
	reqFields = document.competition_form.required_fields.value;
	//alert("hello");
	if (reqFields != "none") 
	{ 
	
	  reqFields = reqFields.split(",");
	  for(i=0;i<reqFields.length;i++) 
	  {
		var radio_choice = false;
	    fieldObj = eval("document.competition_form." + reqFields[i]);
		
		if (fieldObj.type && fieldObj.type=="select-one")
		{
			fieldVal = fieldObj.options[fieldObj.selectedIndex].value;
		}
		else
		{
	 		fieldVal = fieldObj.value;
		}
		
		fieldName = fieldObj.name;
		
		if (fieldVal == "")
		{
		
			if (fieldName == "bar" && fieldVal.length ==0)
					{
						form_ok = false;
						alert("Fill in the nominated bar or outlet");
						fieldObj.focus();
						break;
					}
			else if (fieldName == "driver" && fieldVal.length ==0)
					{
						form_ok = false;
						alert("Fill in the name of the nominated Designated Driver");
						fieldObj.focus();
						break;
					}
			else if (fieldName == "name" && fieldVal.length ==0)
					{
						form_ok = false;
						alert("Fill in your name");
						fieldObj.focus();
						break;
					}
			else if (fieldName == "day" && fieldVal.length ==0)
					{
						form_ok = false;
						alert("Fill in the day that you were born");
						fieldObj.focus();
						break;
					}
			else if (fieldName == "month" && fieldVal.length ==0)
					{
						form_ok = false;
						alert("Fill in the month that you were born");
						fieldObj.focus();
						break;
					}
			else if (fieldName == "year" && fieldVal.length ==0)
					{
						form_ok = false;
						alert("Fill in the year that you were born");
						fieldObj.focus();
						break;
					}
			else if (fieldName == "mobile" && fieldVal.length ==0)
					{
						form_ok = false;
						alert("Fill in your mobile number");
						fieldObj.focus();
						break;
					}
		} // end if fieldVal==""
	  } //end for loop

	  if ( form_ok && !IsEmailValid() ) 
      {
	    form_ok = false;
	  }
	   
	  if (form_ok) document.competition_form.submit();
	  
	}
	
	else document.competition_form.submit();
}
				
function IsEmailValid()
{
	var EmailOk  = true
	var Temp     = document.competition_form.email
	
	if(Temp && Temp.value.length > 0){
	
		var AtSym    = Temp.value.indexOf('@')
		var Period   = Temp.value.lastIndexOf('.')
		var Space    = Temp.value.indexOf(' ')
		var Length   = Temp.value.length - 1   // Array is from 0 to length-1
		
		if ((AtSym < 1) ||                     // '@' cannot be in first position
			(Period <= AtSym+1) ||             // Must be atleast one valid char btwn '@' and '.'
			(Period == Length ) ||             // Must be atleast one valid char after '.'
			(Space  != -1))                    // No empty spaces permitted
		   {  
			  EmailOk = false
			  alert('Please enter a valid e-mail address!')
			  Temp.focus()
		   }
	}
	   
	return EmailOk
}
