/* -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

	Function 	: ctuk-validate.js
	Version 	: 1.00
	Last Update	: 09-05-2011    
	Latest CCNo	:
	----------------------------

	Copyright (c) Y2Pods Solutions. All rights reserved.

 -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

//	CALENDAR EVENT MANAGEMENT
//----------------------------

// Disable chosen day on contract form
function DisableDay(inarg,row)
{
	axnfld = document.getElementById(inarg);

	if ( axnfld.checked )
	{
		// disable fields
		for ( i=1;i < 8; i++)
		{
			tt = document.getElementById('day'+row+'_'+i);
			tt.disabled = true;
			tt.checked = 0;
		}
	}
	else
	{
		// enable fields
		for ( i=1;i < 8; i++)
		{
			tt = document.getElementById('day'+row+'_'+i);
			tt.disabled = false;
		}
	}
}

function addevent(frm,child,item)
{
	var pa = opener.document;
	var chfld = document.getElementsByName(child);

	// Validate dates
	start_time = frm.start_time_hh.value + ':' + frm.start_time_mi.value;
	end_time = frm.end_time_hh.value + ':' + frm.end_time_mi.value;

	if ( ( frm.start_time_hh.value.length > 0 &&  frm.start_time_mi.value.length == 0)
		|| ( frm.start_time_hh.value.length == 0 && frm.start_time_mi.value.length > 0))
	{
		alert("Please enter a valid Start Time");
		return false;
	}

	if ( start_time > end_time )
	{
		alert("The Start Time MUST be earlier than the End Time");
		return false;
	}

	// Update opening field
	pafld = pa.getElementById(item);
	for ( y=0; y < chfld.length; y++ )
	{
		for ( z=0; z < chfld[y].length; z++ )
		{
			if ( chfld[y][z].selected )
				outxt = "<span class='highlight'>" + chfld[y][z].text + "</span>";
		}
	}
	pafld.innerHTML = outxt;
}

function delete_event(item)
{
	var pa = opener.document;

	// Update opening field
	pafld = pa.getElementById(item);
	pafld.innerHTML = '';	
}


//	----------------------------------
// Scripts to validate various forms
//	----------------------------------


function ctuk_validateform(type,frm)
{
	var result = false;

	// Specific Validation
	switch (type)
	{
		case 'requestlesson' :
			result = clean_requestlesson(frm);
			break;

		case 'itoprereg' :
			result = clean_ito_pre_reg(frm);
			break;
	}
	if ( !result )
		return false;

	// Common to all validation
	switch (type)
	{
		case 'requestlesson' :
		  	$begin ="Request a Lesson\n  ---> ";
			break;

		case 'itoprereg' :
  			$begin ="Preliminary Registration\n  ---> ";
			break;
	}
	frm.email.focus();
	frm.email.select();
	if ( !isvalid_infield(frm.email.value,'email',255) )
	{
		alert($begin + " Please enter a valid email address.");
		return false;
	}
	frm.email.blur();

	if ( result )
	{
		msg = "ATTENTION!\n\nIf you are sure that you typed the security code at the end of the " +
				"page correctly, then click OK to continue." +
				"\n\nYou can refresh the code by clicking the circular arrows or " +
				"listen to the code, if you are having problems reading it.";
		if ( confirm(msg) )
			return true;
		else
			return false;
	}
	return false;
}


//	-------------------
//	--	CLEAN REQUEST A LESSON
//	------------------

function clean_requestlesson(frm)
{
  $begin ="Request a Lesson\n  ---> ";

	frm.fullname.focus();
	frm.fullname.select();
	if ( not_input(frm.fullname.value) )
	{
		alert($begin + "Please enter your name");
		return false;
	}
	if ( !isvalid_infield(frm.fullname.value,'text',255) )
	{
		alert($begin + frm.fullname.value + " cannot be accepted as a name");
		return false;
	}
	frm.fullname.blur();

	frm.postcode.focus();
	frm.postcode.select();
	if ( !isvalid_infield(frm.postcode.value,'pstcd',10) )
	{
		alert($begin + "Please enter a valid postcode");
		return false;
	}
	frm.postcode.blur();

	frm.email.focus();
	frm.email.select();
	if ( frm.telephone_h.value.length == 0 && frm.telephone_w.value.length == 0 &&
        frm.telephone_m.value.length == 0 && frm.email.value.length == 0 )
	{
		txt = "Please enter at least one valid telephone number or your email address." +
            "  Otherwise, we will not be able to contact you!";
		alert($begin + txt);
		return false;
	}
	frm.email.blur();

	frm.live_in.focus();
	if ( frm.live_in.value == 0 && frm.work_in.value == 0 )
	{
		txt =	"In Lesson Details, please tell us where you live and/or work";
		alert($begin + txt);
		return false;
	}
	frm.live_in.blur();

	frm.trainee_height.focus();
	if ( frm.hire_bike[1].checked && frm.trainee_height.value == 0 )
	{
		txt =	"If you would like to hire a bike, you MUST give us an accurate height";
		alert($begin + txt);
		return false;
	}
	frm.trainee_height.blur();

	return true;
}

//	-------------------
//	--	PRELIMINARY ITO REGISTRATION
//	------------------

function clean_ito_pre_reg(frm)
{
  $begin ="Preliminary Registration\n  ---> ";

	frm.firstname.focus();
	frm.firstname.select();
	if ( not_input(frm.firstname.value) )
	{
		alert($begin + "Please enter your firstname");
		return false;
	}
	if ( !isvalid_infield(frm.firstname.value,'text',255) )
	{
		alert($begin + frm.firstname.value + " cannot be accepted.");
		return false;
	}
	frm.firstname.blur();

	frm.surname.focus();
	frm.surname.select();
	if ( not_input(frm.surname.value) )
	{
		alert($begin + "Please enter your surname");
		return false;
	}
	if ( !isvalid_infield(frm.surname.value,'text',255) )
	{
		alert($begin + frm.surname.value + " cannot be accepted.");
		return false;
	}
	frm.surname.blur();

	frm.address_1.focus();
	frm.address_1.select();
	if ( not_input(frm.address_1.value) )
	{
		alert($begin + "Please enter address 1");
		return false;
	}
	if ( !isvalid_infield(frm.address_1.value,'text',255) )
	{
		alert($begin + frm.address_1.value + " cannot be accepted.");
		return false;
	}
	frm.address_1.blur();

	frm.city.focus();
	frm.city.select();

	if ( not_input(frm.city.value) )
	{
		alert($begin + "Please enter your city/county");
		return false;
	}
	if ( !isvalid_infield(frm.city.value,'text',255) )
	{
		alert($begin + frm.city.value + " cannot be accepted.");
		return false;
	}
	frm.city.blur();

	frm.postcode.focus();
	frm.postcode.select();

	if ( !isvalid_infield(frm.postcode.value,'pstcd',10) )
	{
		alert($begin + "Please enter your valid postcode");
		return false;
	}
	frm.postcode.blur();

	frm.telephone_1.focus();
	frm.telephone_1.select();
	if ( not_input(frm.telephone_1.value) )
	{
		alert($begin + "Please enter your main telephone no.");
		return false;
	}
	if ( !isvalid_infield(frm.telephone_1.value,'text',255) )
	{
		alert($begin + frm.telephone_1.value + " cannot be accepted.");
		return false;
	}
	frm.telephone_1.blur();

	frm.nsi_no.focus();
	frm.nsi_no.select();
	// nsi no format
	pattern = /^[a-z]{4}[0-9]{6}[a-z]$/i;
	if ( !pattern.test(frm.nsi_no.value) )
	{
		alert($begin + " Invalid NSI No.\nThe format MUST be " + 
				"AAAA123456A where A is a letter.");
		return false;
	}
	frm.nsi_no.blur();

	frm.training_provider.focus();
	frm.training_provider.select();
	if ( not_input(frm.training_provider.value) )
	{
		alert($begin + "Please tell us where you completed your Instructor Training.");
		return false;
	}
	if ( !isvalid_infield(frm.training_provider.value,'text',255) )
	{
		alert($begin + frm.training_provider.value + " cannot be accepted.");
		return false;
	}
	frm.training_provider.blur();

	if ( frm.work_4[1].checked )
	{
		frm.work_4_name.focus();
		frm.work_4_name.select();
		if ( not_input(frm.work_4_name.value) )
		{
			alert($begin + "Please tell us where you work");
			return false;
		}
		if ( !isvalid_infield(frm.work_4_name.value,'text',255) )
		{
			alert($begin + frm.work_4_name.value + " cannot be accepted.");
			return false;
		}
		frm.work_4_name.blur();
	}

	frm.crb.focus();
	frm.crb.select();
	if ( not_input(frm.crb.value) )
	{
		alert($begin + "Please enter your valid CRB no. or None/Expired.");
		return false;
	}
	if ( !isvalid_infield(frm.crb.value,'text',255) )
	{
		alert($begin + frm.crb.value + " cannot be accepted.");
		return false;
	}
	frm.crb.blur();

	return true;
}



