// JavaScript Document
var weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var formName = "form1";
var dateError = "";
var noEvents = false;
var selectEvent = 0;
var Birmingham = "Birmingham"
var London = "London"
var Glasgow = "Glasgow"
var Manchester = "Manchester"

// Internal
var doReselectDate = false;

function getForm()
{
	eval("var form = document." + formName);
	return form;
}

function venueChanged(reselectDate)
{
	var form = getForm();
	var selObj = form.venue;
	var venueName = selObj.options[selObj.selectedIndex].text;
	
	if (venueName != null)
	{
		var url = "scripts/ajax.php?venue=" + selObj.options[selObj.selectedIndex].value;
		
		document.getElementById("selected_venue").innerHTML = venueName;
		
		if (venueName == Birmingham)
		{
				document.getElementById("map_container_inner").style.margin = "0px 0 0 0";
		}
			if (venueName == London)
		{
				document.getElementById("map_container_inner").style.margin = "-130px 0 0 0";
		}
			if (venueName == Glasgow)
		{
				document.getElementById("map_container_inner").style.margin = "-260px 0 0 0";
		}
			if (venueName == Manchester)
		{
				document.getElementById("map_container_inner").style.margin = "-390px 0 0 0";
		}
		
		if (reselectDate == undefined)
			doReselectDate = false;
		else
			doReselectDate = reselectDate;
		
		// Load course dates for selected venue
		if (selObj.selectedIndex > 0)
		{
			document.getElementById("loader").style.visibility = "visible";
			loadXMLDoc(url, gotCourseDates, true);
		}
	}
}

function gotCourseDates(xmlDoc)
{
	var eventInfo = new Array();
	var html = "";
	
	if (xmlDoc != null)
	{
		// Build up array of event info
		var events = xmlDoc.getElementsByTagName('event');
		
		if (events.length > 0)
		{
			// Loop through each event
			for (var e = 0; e < events.length; e++)
			{
				var info = events[e];
				
				// Loop through event info nodes
				// and build up an array of event details
				var details = new Array();
				
				if (info.childNodes.length > 0)
				{
					for (var n = 0; n < info.childNodes.length; n++)
					{
						// firstChild of the node is simply the text of the element
						var value = info.childNodes[n].firstChild.nodeValue;
						
						// Store in array
						// (e.g. details["id"] = 1)
						details[info.childNodes[n].nodeName] = value;
					}
				}
				
				// Add event details to main array
				eventInfo[eventInfo.length] = details;
			}
		}
		
		// Build HTML
		if (eventInfo.length > 0)
		{
			var lastMonth = "";
			
			for (var e = 0; e < eventInfo.length; e++)
			{
				var details = eventInfo[e];
				var year = details["date"].substring(0, 4);
				var month = details["date"].substring(5, 7);
				var day = details["date"].substring(8, 10);
				var date = new Date();
				var sel = "";
				
				// Set JS date object
				date.setFullYear(year, month - 1, day);
				
				var weekDay = date.getDay();
				weekDay = weekdays[weekDay];
				
				var monthName = date.getMonth();
				monthName = months[monthName];
				
				if (monthName != lastMonth)
				{
					if (lastMonth != "")
						html += "<br />\n";
					
					lastMonth = monthName;
					html += "<h4>" + monthName + " " + year + "</h4>\n";
				}
				
				var courseDate = day + " " + monthName + " " + year.substring(2, 4);
				
				if (selectDate == details["id"])
					sel = "checked='checked'";
				else
					sel = "";
				

				if (details["full"] == 1)
				{				
					html += "<div class='date'>\n";
					html += "<span class='error'>Full&nbsp;</span>";
				}
				else
				{				
					html += "<div class='date'>\n";
					html += "   <input type='radio' name='date' id='date_" + details["id"] + "' " + sel + " value='" + details["id"] + "' class='hand' onclick='dateChanged(" + year + ", " + month + ", " + day + ", \"" + details["from"] + "\", \"" + details["to"] + "\", \"" + details["price"] + "\")' />\n";
					html +=	"   <label for='date_" + details["id"] + "' class='default hand'>" + courseDate + "</label>\n</div>\n";
				}
				
				if (doReselectDate && sel != "")
				{
					dateChanged(year, month, day, details["from"], details["to"], details["price"]);
				}
				
			}
		}
		
		if (html != "")
		{
			var header = "<label>Select training dates available:</label><br />\n";
			
			if (dateError != "")
				header += "<div class='form_error'>" + dateError + "</div>\n";
			
			html = header + "<br />" + html;
			noEvents = false;
		}
		else
		{
			html = "There are currently no event dates for this venue.\n";
			noEvents = true;
		}
		
		document.getElementById("training_dates").innerHTML = html;
		document.getElementById("loader").style.visibility = "hidden";
		
		/*if (doReselectDate)
		{
			for (var e = 0; e < form.elements.length; e++)
			{
				alert(form.elements[e].name);
				
				if (form.elements[e].name == "date")
				{
					if (form.elements[e].checked)
					{
						document.getElementById(form.elements[e].id).click();
					}
				}
			}
		}*/
	}
}

function delegatesChanged()
{
	var form = getForm();
	var selObj = form.delegates;
	var delegates = selObj.options[selObj.selectedIndex].text;
	document.getElementById("selected_delegates").innerHTML = delegates;
	calculatePrice();
}

function convert12h(time)
{
	var parts = time.split(":");
	var am = false;
	var result = "";
	
	if (parts[0] == 0)
	{
		result = 12;
		am = true;
	}
	else if (parts[0] < 12)
	{
		if (parts[0] < 10)
			result = parts[0].substr(1, 1);
		else
			result = parts[0];
		am = true;
	}
	else if (parts[0] == 12)
	{
		result = 12;
		am = false;
	}
	else
	{
		result = (parts[0] - 12);
		am = false;
	}
	
	result += "." + parts[1];
	
	if (am)
		result += " am";
	else
		result += " pm";
	
	return result;
}

function currencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}

function calculatePrice()
{
	var form = getForm();
	var delegates = form.delegates.options[form.delegates.selectedIndex].value;
	var price = delegates * form.priceperdelegate.value;
	
	if (price > 0)
	{
		price = currencyFormatted(price);
		document.getElementById("amount").innerHTML = "&pound;" + price;
		document.getElementById("VAT").innerHTML = "+ VAT";
	}
	else
	{
		document.getElementById("amount").innerHTML = "";
		document.getElementById("VAT").innerHTML = "";
	}
}

function dateChanged(year, month, day, fromTime, toTime, pricePerDelegate)
{
	var form = getForm();
	
	var date = new Date();
	date.setFullYear(year, month - 1, day);
	
	var weekDay = date.getDay();
	weekDay = weekdays[weekDay];
	
	var monthName = date.getMonth();
	monthName = months[monthName];
	
	if (day < 10) day = "0" + day;
	
	var courseDate = weekDay + " " + day + " " + monthName + " " + year;
	document.getElementById("selected_date").innerHTML = courseDate;
	
	fromTime = convert12h(fromTime);
	toTime = convert12h(toTime);
	
	var duration = "The course duration is from " + fromTime + " to " + toTime + ".";
	document.getElementById("course_duration").innerHTML = duration;
	
	form.priceperdelegate.value = pricePerDelegate;
	calculatePrice();
}

function termsClicked()
{
	var form = getForm();
	var html;
	
	if (form.terms.checked)
		html = "<input type='image' src='images/book_place.gif' width='204' height='25' border='0' />";
	else
		html = "<img src='images/book_place_disabled.gif' width='204' height='25' title='Please tick the box below once you have read our terms &amp; booking conditions' />";
	
	document.getElementById("submit").innerHTML = html;
}

function checkSubmit()
{
	if (noEvents)
	{
		alert("Please select an event date from the left hand side.");
		return false;
	}
	return true;
}
