// JavaScript Document

var selectedCourses = [];
var z = 1;
//<% 
//Dim z
//z = 1
//%>
var idc = 1;

function select_course (elName,courseName,courseDate,courseLocation,places)
{
	// Set default value for the number of places
	// Only set this if displaying the row again if the form was submitted
	// with an error
	if(places == null){ places = ""; }
	
	var el = document.getElementById(elName);
	courseNameNoSpace = removeSpaces(courseName);
	courseDateNoSpace = removeSpaces(courseDate);
	courseLocationNoSpace = removeSpaces(courseLocation);
	fieldNamePrefix = courseNameNoSpace + courseDateNoSpace + courseLocationNoSpace;

	if(el.className == "table_notick_bkd")
	{
		el.className = "table_tick_bkd";
			
		// Add a row to the table with the selected course info
		objTable = document.getElementById("courses_added");
		objTableRow = document.createElement("tr");
		objTableRow.setAttribute('id',fieldNamePrefix);
		
		objTableCell1 = document.createElement("td");
		objTableCell1.setAttribute('class','courses_added');
		objTextNode1 = document.createTextNode(courseName);
		objTableCell1.appendChild(objTextNode1);
		
		// All the "extra hidden fields such as the fieldNamePrefix
		// elname and
		objfieldNamePrefixField = document.createElement("input");
		objfieldNamePrefixField.setAttribute('id',z);	
		objfieldNamePrefixField.setAttribute('name',z);
		objfieldNamePrefixField.setAttribute('type','hidden');
		objfieldNamePrefixField.setAttribute('value',fieldNamePrefix);
		objTableCell1.appendChild(objfieldNamePrefixField);
		objElNameField = document.createElement("input");
		objElNameField.setAttribute('id',z);	
		objElNameField.setAttribute('name',z);
		objElNameField.setAttribute('type','hidden');
		objElNameField.setAttribute('value',elName);
		objTableCell1.appendChild(objElNameField);
		objCourseNameField = document.createElement("input");
		objCourseNameField.setAttribute('id',z);
		objCourseNameField.setAttribute('name',z);	
		objCourseNameField.setAttribute('type','hidden');
		objCourseNameField.setAttribute('value',courseName);
		objTableCell1.appendChild(objCourseNameField);
		
		objTableCell2 = document.createElement("td");
		objTableCell2.setAttribute('class','courses_added');
		objTextNode2 = document.createTextNode(courseDate);
		objTableCell2.appendChild(objTextNode2);
		selectedCourses[fieldNamePrefix + "_b_date"] = courseDate;
		objCourseDateField = document.createElement("input");
		objCourseDateField.setAttribute('id',z);	
		objCourseDateField.setAttribute('name',z);
		objCourseDateField.setAttribute('type','hidden');
		objCourseDateField.setAttribute('value',courseDate);
		objTableCell2.appendChild(objCourseDateField);
		
		objTableCell3 = document.createElement("td");
		objTableCell3.setAttribute('class','courses_added');
		objTextNode3 = document.createTextNode(courseLocation);
		objTableCell3.appendChild(objTextNode3);
		selectedCourses[fieldNamePrefix + "_c_location"] = courseLocation;
		objCourseLocationField = document.createElement("input");
		objCourseLocationField.setAttribute('id',z);	
		objCourseLocationField.setAttribute('name',z);
		objCourseLocationField.setAttribute('type','hidden');
		objCourseLocationField.setAttribute('value',courseLocation);
		objTableCell3.appendChild(objCourseLocationField);
		
		objTableCell4 = document.createElement("td");
		objTableCell4.setAttribute('class','courses_added');
		objPlaces = document.createElement("input");
		objPlaces.setAttribute('id',z);	
		objPlaces.setAttribute('name',z);
		objPlaces.setAttribute('type','text');
		objPlaces.setAttribute('size','4');
		objPlaces.setAttribute('value',places)
		objTableCell4.appendChild(objPlaces);

		objTableRow.appendChild(objTableCell1);
		objTableRow.appendChild(objTableCell2);
		objTableRow.appendChild(objTableCell3);
		objTableRow.appendChild(objTableCell4);
		objTable.appendChild(objTableRow);	
		
		z = z + 1;
		// <% z = z + 1 %>
	}
	else
	{
		el.className = "table_notick_bkd";
		
		// Delete Row from table
		objTable = document.getElementById("courses_added");
		objRowToRemove = document.getElementById(fieldNamePrefix);
		objTable.removeChild(objRowToRemove);
		//selectedCourses[fieldNamePrefix + "_a_name"] = null;
		//selectedCourses[fieldNamePrefix + "_b_date"] = null;
		//selectedCourses[fieldNamePrefix + "_c_location"] = null;		
	}
}

	function removeSpaces(string) 
	{
		var tstring = "";
		string = '' + string;
		splitstring = string.split(" ");
		for(i = 0; i < splitstring.length; i++)
		tstring += splitstring[i];
		return tstring;
	}

	
	function InvalidMail(strAddress) 
	{
		var objRegExp  = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
				         
		if (objRegExp.test(strAddress)) 
		{
			return false;
		}
		else 
		{
			return true;
		}
	}
	
	// Returns true if string is OK
	// Returns false if invalid chars found
	function InvalidChars(str)
	{
		var regex = /^[a-zA-Z0-9_ ]+$/;
		var result = regex.test(str)
		return result;
	}
	
	
	// Returns true if string is OK
	// Returns false if invalid chars found
	function InvalidChars2(str)
	{
		var regex = /^[a-zA-Z -]+$/;
		var result = regex.test(str)
		return result;
	}
	
	// Returns true if string is OK
	// Returns false if invalid chars found
	function InvalidPhone(str)
	{
		var regex = /^[0-9\(\) -]+$/;
		var result = regex.test(str)
		return result;
	}

	
	
	// Allows you to write into an element such as a div or span
	// create a variable to hold the element by using getElementById then provide
	// this variable into the "el" of this function
	function write_to_element(el,value)
	{
		if(document.all){ el.innerText = value;} else { el.textContent = value; }	
		return true;
	}

	
	function errorcheck_name(formField,errorElementId,partOfName)
	{
		if(partOfName == "undefined"){ partOfName = "<## Missed partOfName from function ##>"; }
		var blnCheckpass = true;
		
		// Error Check name field
		var formerror_name = document.getElementById(errorElementId);
		write_to_element(formerror_name,'');
		
		if (formField.value == "") 
		{
			write_to_element(formerror_name,'Please Include Your ' + partOfName);
			blnCheckpass = false;	
		}
		else if (!InvalidChars2(formField.value))
		{
			write_to_element(formerror_name,'Can only use letters, numbers and the dash "-" symbol');
			blnCheckpass = false;
		}
		
		return blnCheckpass;
	}
	
	
	function errorcheck_email(formField,errorElementId)
	{
		var blnCheckpass = true;
		
		var formerror_mail = document.getElementById(errorElementId);
		write_to_element(formerror_mail,'');
		
		if ( formField.value == "" ) 
		{
			write_to_element(formerror_mail,'Please Include Your Email Address');
			blnCheckpass = false;	
		}
		else if (InvalidMail(formField.value))
		{
			write_to_element(formerror_mail,'Not a Valid Email Address');
			blnCheckpass = false;
		}
		
		return blnCheckpass;
	}
	
	function errorcheck_phone(formField,errorElementId)
	{
		var blnCheckpass = true;
		
		var formerror_phone = document.getElementById(errorElementId);
		write_to_element(formerror_phone,'');
		
		if ( formField.value == "" ) 
		{
			write_to_element(formerror_phone,'Please Include Your Phone Number');
			blnCheckpass = false;	
		}
		else if (!InvalidPhone(formField.value))
		{
			write_to_element(formerror_phone,'Not a Valid Phone Number');
			blnCheckpass = false;
		}
		
		return blnCheckpass;
	}



function checkBookingForm(form)
{
	var Check = new Array();
	// Check[0] = true;
	Check[0] = errorcheck_name(form.train_name,'train_name_error','Name');
	
	Check[1] = errorcheck_name(form.train_org,'train_org_error','Organisation Name');

	Check[2] = errorcheck_email(form.train_email,'train_email_error');
	
	Check[3] = errorcheck_phone(form.train_phone,'train_phone_error')
	
	for(var a = 0; a < Check.length; a++)
	{
		if(Check[a] == false)
		{
			alert("JS Found Error");
			write_to_element(document.getElementById("courses_error"),'');
			write_to_element(document.getElementById("places_error"),'');
			write_to_element(document.getElementById("train_error"),'JS: There are errors in the form. Please look for the red error messages below and correct the errors made.');
			return false;	
		}
	}
	
	return true;
}
