// JavaScript Document

function emailValidator(elem){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		//alert(helperMsg);
		elem.focus();
		return false;
	}
}

function validatePhone(fld) 
{
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');    

   if (fld.value == "") {
        error = "Phone number required\n";
        //fld.style.background = 'Red';
    } else if (isNaN(parseInt(stripped))) {
        error = "The phone number should only contain numbers\n";
        //fld.style.background = 'Red';
    //} else if (!(stripped.length == 10)) {
    //    error = "* The phone number is the wrong length. Ensure you included an area code\n";
        //fld.style.background = 'Red';
    }
    return error;
}

function isDate(dy, mn, yr) {

	var error = "";
    // var datePat = /^(\d{2})(\/|-)(\d{2})(\/|-)(\d{2})$/;
    // var matchArray = dateStr.match(dy + '/' + mn + '/' + yr); // is the format ok?

    // if (matchArray == null) {
        // error = "Invalid date - Please use the following format: DD/MM/YY";
        // return error;
    // }
	
	if (!isNumeric(dy) || !isNumeric(mn) || !isNumeric(yr))
	{
		error = "Please use the following format: DD/MM/YY";
        return error;
	}

    day = dy.value;
    month = mn.value; // parse date into variables    
	year = yr.value;

    if (month < 1 || month > 12) { // check month range
        error = "Month must be between 1 and 12";
        return error;
    }

    if (day < 1 || day > 31) {
        error = "Day must be between 1 and 31";
        return error;
    }

    if ((month==4 || month==6 || month==9 || month==11) && day==31) {
        error = "Month doesn't have 31 days"
        return error;
    }

    if (month == 2) { // check for february 29th
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day==29 && !isleap)) {
            error = "February doesn't have " + day + " days";
            return error;
        }
    }
    return error; // date is valid
}

function isEmpty(elem){
	if(elem.value.length == 0){
		elem.focus(); // set the focus to this input
		return true;
	}
	return false;
}

function isNumeric(elem){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		return false;
	}
}

function isAlphabet(elem, helperMsg){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphanumeric(elem, helperMsg){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter between " +min+ " and " +max+ " characters");
		elem.focus();
		return false;
	}
}

function validRadioButton(btn) 
{
    for (var i = 0; i < btn.length; i++) 
	{
        if (btn[i].checked) 
		{
			return true;
		}
    }
    return false;
}
  

function bookingValidator(theForm, courseType)
{
	var valid = true; // form valid indicator
	
	
	if (courseType == 1) // training and assessment
	{
	
	}
	else if(courseType == 2) // training only
	{
		
	}
	else if(courseType == 3) // assessment only
	{
		
	}
	
	
	if (isEmpty(theForm.firstname) == true) // firstname
	{
		document.getElementById('vfirstname').innerHTML = "First name required";
		theForm.firstname.focus();
		valid = false;
	}
	else document.getElementById('vfirstname').innerHTML = "";
	
	
	if (isEmpty(theForm.surname) == true) // surname
	{
		document.getElementById('vsurname').innerHTML = "Surname required";
		theForm.surname.focus();
		valid = false;
	}
	else document.getElementById('vsurname').innerHTML = "";
	
	
	if (isEmpty(theForm.address1) == true) // address1
	{
		document.getElementById('vaddress1').innerHTML = "Address line 1 required";
		theForm.address1.focus();
		valid = false;
	}
	else document.getElementById('vaddress1').innerHTML = "";
	
	
	if (isEmpty(theForm.city) == true) // city
	{
		document.getElementById('vcity').innerHTML = "City required";
		theForm.city.focus();
		valid = false;
	}
	else document.getElementById('vcity').innerHTML = "";
	
	
	if (isEmpty(theForm.postcode) == true) // postcode
	{
		document.getElementById('vpostcode').innerHTML = "Postcode required";
		theForm.postcode.focus();
		valid = false;
	}
	else document.getElementById('vpostcode').innerHTML = "";
	
	
	var reason = validatePhone(theForm.phone); //phone
	if (reason != "")
	{
		document.getElementById('vphone').innerHTML = reason;
		theForm.phone.focus();
		valid = false;
	}
	else document.getElementById('vphone').innerHTML = "";
	
	if (emailValidator(theForm.email) == false) //email
	{
		document.getElementById('vemail').innerHTML = "The email address is invalid";
		//theForm.email.focus();
		valid = false;
	}
	else document.getElementById('vemail').innerHTML = "";
	
	var dobreason = isDate(theForm.dobday, theForm.dobmonth, theForm.dobyear);
	if (dobreason != "") //dob
	{
		document.getElementById('vdob').innerHTML = dobreason;
		//theForm.dobday.focus();
		valid = false;
	}
	else document.getElementById('vdob').innerHTML = "";
	
	// clothing
	if (validRadioButton(theForm.clothing) == false)
	{
		document.getElementById('vclothing').innerHTML = "Required";
		valid = false;
	}
	else document.getElementById('vclothing').innerHTML = "";
		
	// chainsaw
	if (validRadioButton(theForm.chainsaw) == false)
	{
		document.getElementById('vchainsaw').innerHTML = "Required";
		valid = false;
	}
	else document.getElementById('vchainsaw').innerHTML = "";
	
	// po
	if (validRadioButton(theForm.po) == false)
	{
		document.getElementById('vpo').innerHTML = "Required";
		valid = false;
	}
	else document.getElementById('vpo').innerHTML = "";
	
	
	if (validRadioButton(theForm.disclaimer1) == false)
	{
		document.getElementById('vdisc1aimer1').innerHTML = "Required";
		valid = false;
	}
	else document.getElementById('vdisc1aimer1').innerHTML = "";
	
	if (validRadioButton(theForm.disclaimer2) == false)
	{
		document.getElementById('vdisc1aimer2').innerHTML = "Required";
		valid = false;
	}
	else document.getElementById('vdisc1aimer2').innerHTML = "";
	
	if (validRadioButton(theForm.disclaimer3) == false)
	{
		document.getElementById('vdisc1aimer3').innerHTML = "Required";
		valid = false;
	}
	else document.getElementById('vdisc1aimer3').innerHTML = "";
	
	if (validRadioButton(theForm.disclaimer4) == false)
	{
		document.getElementById('vdisc1aimer4').innerHTML = "Required";
		valid = false;
	}
	else document.getElementById('vdisc1aimer4').innerHTML = "";
	
	if (validRadioButton(theForm.disclaimer5) == false)
	{
		document.getElementById('vdisc1aimer5').innerHTML = "Required";
		valid = false;
	}
	else document.getElementById('vdisc1aimer5').innerHTML = "";
	
	if (validRadioButton(theForm.disclaimer6) == false)
	{
		document.getElementById('vdisc1aimer6').innerHTML = "Required";
		valid = false;
	}
	else document.getElementById('vdisc1aimer6').innerHTML = "";
	
	return valid;
}

function showBootsize()
{
	var optionValue = document.getElementById('clothing_1').value;
	
	document.getElementById('bootsizecontainer').innerHTML = '<p style="margin: 3px"><label for="bootsize" style="margin-left: 5px;"> Boot size: </label><select name="bootsize" size="1" id="bootsize"><option value="-1" selected="selected">-[size]-</option><option value="7">UK 7</option><option value="8">UK 8</option><option value="9">UK 9</option><option value="10">UK 10</option><option value="11">UK 11</option><option value="12">UK 12</option></select></p>';
	
	//'<p style="margin: 3px"><label for="bootsize" style="margin-left: 5px;"> Please specify bootsize: </label><input name="bootsize" type="text" class="small" id="bootsize"></p>';
}

function hideBootsize()
{
	var optionValue = document.getElementById('clothing_0').value;
	
	document.getElementById('bootsizecontainer').innerHTML = "";
}

function displayAssessmentDates(date1, date2)
{
	var code = "";
	
	if (date1.length == 0 && date2.length == 0)
	{
		code = "N/A";	
	}
	else if (date2.length == 0)
	{
		code = '<label><input type="radio" name="examdate" value="' + date1 + '" id="examdate1" class="option" checked>' + date1 + '</label>';
	}
	else
	{
		code = '<label><input type="radio" name="examdate" value="' + date1 + '" id="examdate1" class="option" checked>' + date1 + '</label><font style="margin-left: 15px; margin-right: 15px;">- <b>OR</b> -</font><label><input type="radio" name="examdate" value="' + date2 + '" id="examdate2" class="option" selected="selected">' + date2 + '</label>';
	}

	document.getElementById('assessmentcontainer').innerHTML = code;
}