


var events_xml;
var events_by_id = { };


function getDefaultIconFilename(key) {
	return key + ".gif";
}

function getScotlandIconFilename(key) {

	var map = {};
	map["Baby Changing"] = "babychange";
	map["Access"] = "disabled";
	map["Walks"] = "enjoywalks";
	map["School Visits"] = "schoolgroups";
	map["Dogs"] = "dogfriendly";
	map["Special Information"] = "specialinfo";
	map["Weddings"] = "wedding";

	var name = key.replace(/\s/g, "");
	name = name.toLowerCase();
	if (map.hasOwnProperty(key)) {
		name = map[key];
	}
	return name + ".gif";
}


$(document).ready(function() {

	$('#region-list').hide();
	$('#location-list').hide();

	/**
	 * Load regions
	 */
	$.ajax({
		url: "/Regions.aspx",
		cache: true,
		dataType: "xml",
		success: function(xml){
			setRegions(xml);
		}
	});
	
	$('#region-list').change(function() {
		var val = $("#region-list").val();
		if (val == "") return;
// 		console.log("Region changed to " + val);

		/**
		 * Load Events
		 */
		$.ajax({
			url: "/EventsByRegion.aspx",
			type: "GET",
			cache: true,
			dataType: "xml",
			data: {
				Region: val
			},
			success: function(xml){
// 				console.log(xml);
				setEvents(xml);
			}
		});
	});
	
	$('#location-list').change(function() {
		var val = $("#location-list").val();
		if (val == "") return;
// 		console.log("Location changed to " + val);
		var xml = events_by_id[val];
		$("#event-info-container").empty().html(getEventInfoHtml(xml));
	});
	
});

function getEventValue(key, xml) {
// 	console.log("Getting Event " + key);
	var list = xml.getElementsByTagName(key)[0];
// 	console.debug(list.childNodes.length);
	if (list.childNodes.length == 0) return "";
	return list.firstChild.nodeValue;
}

function getEventInfoHtml(xml) {
	var currentPropertyId = parseInt(getEventValue("PropertyID", xml));
	var isScotland = (currentPropertyId > 1000);
	
// 	var dates = {
// 		Day1: "Monday, April 6th",
// 		Day2: "Tuesday, April 7th",
// 		Day3: "Wednesday, April 8th",
// 		Day4: "Thursday, April 9th",
// 		Day5: "Friday, April 10th",
// 		Day6: "Saturday, April 11th",
// 		Day7: "Sunday, April 12th",
// 		Day8: "Monday, April 13th",
// 		Day9: "Tuesday, April 14th",
// 		Day10: "Wednesday, April 15th",
// 		Day11: "Thursday, April 16th",
// 		Day12: "Friday, April 17th"
// 	};
	var dates = {
		Day1: "Monday 29th March",
		Day2: "Tuesday, 30th March",
		Day3: "Wednesday, 31st March",
		Day4: "Thursday, 1st April",
		Day5: "Friday, 2nd April",
		Day6: "Saturday, 3rd April",
		Day7: "Sunday, 4th April",
		Day8: "Monday, 5th April",
		Day9: "Tuesday, 6th April",
		Day10: "Wednesday, 7th April",
		Day11: "Thursday, 8th April",
		Day12: "Friday, 9th April"
	};
			
	var html = "";
	var tier = getEventValue('Tier', xml);
	var pin_size = 'small';
	if (tier == 2) pin_size = 'medium';
	if (tier == 1) pin_size = 'large';
	html += "<img src=\"../images/pin-" + pin_size + ".png\" alt=\"Pin - Tier " + tier + "\" style=\"float: right;\" />";
	html += "<h1>" + getEventValue('Name', xml) + "</h1>";
	
	if (tier == 3) {
		html += "<p style='font-size: 10px; line-height: 10px; margin: 5px 0;'>Cadbury will be supporting this event with Egghead rewards. Due to the unique nature of the property, the activities will vary - please check with the property prior to visiting for full details of all the activities taking place during the Easter period</p>";
	} else {
		html += "<p style='font-size: 10px; line-height: 10px; margin: 5px 0;'>These details are for Easter Egg Trail dates supported by Cadbury only. Please check with the property for information of additional dates and trails which are running during the Easter period</p>";
	}
	
	html += getEventValue('StreetAddress', xml) ? getEventValue('StreetAddress', xml) + "<br />" : "";
	html += getEventValue('ExtendedAddress', xml) ? getEventValue('ExtendedAddress', xml) + "<br />" : "";
	html += getEventValue('Locality', xml) ? getEventValue('Locality', xml) + "<br />" : "";
	html += getEventValue('Region', xml) ? getEventValue('Region', xml) + "<br />" : "";
	html += getEventValue('PostalCode', xml) ? getEventValue('PostalCode', xml) + "<br />" : "";
	html += "Phone: " + getEventValue('Tel', xml) + "<br />";
	html += "<p>" + getEventValue('Summary', xml) + "</p>";
// 	html += "<p>" + getEventValue('Description', xml) + "</p>";

	// Image
	var imgsrc = getEventValue('ImageUrl', xml);
	if (imgsrc) {
		html += "<p><img class=\"property-image\" src=\"" + imgsrc + "\" /></p>";
	}

	// Active Days
	var days = [1,2,3,4,5,6,7,8,9,10,11,12];
	var dates_active = [];
	for (var d in days) {
		var day = days[d];
		var key = "Day" + day;
		if (getEventValue(key, xml) > 0) {
			dates_active.push(dates[key]);
		}
	}
	if (dates_active.length > 0) {
		html += "<h2>Dates</h2><ul><li>" + dates_active.join("</li><li>") + "</li></ul>";
	} else {
		html += "<p>Please check back later for dates</p>";
	}

	// Trail Open times
	if (dates_active.length > 0 &&  getEventValue("TrailStartTime", xml) && getEventValue("TrailEndTime", xml)) {
		html += "<h2>Times</h2><p>" + getEventValue("TrailStartTime", xml) + " to " + getEventValue("TrailEndTime", xml) + "</p>";
	}

	// Admission and Costs
	html += "<h2>Admission</h2><table class=\"admission\">";
	
	html += "<tr><th>Adult:</th><td>";
	var t = getEventValue('AdultAdmission', xml);
	html += (t > 0) ? "&pound;" + t : "Please check back later";
	html += "</td></tr>";
	
	html += "<tr><th>Child:</th><td>";
	t = getEventValue('ChildAdmission', xml);
	html += (t > 0) ? "&pound;" + t : "Please check back later";
	html += "</td></tr>";
	
	html += "<tr><td colspan=\"2\">";
	html += "(Members go FREE)";
	html += "</td></tr>";
	
	html += "</table>";
	
	// Trail cost
	html += "<h2>Trail Cost</h2><table class=\"admission\">";
	
	html += "<tr><th></th><td>";
	t = getEventValue('TrailCost', xml);
	html += (t > 0) ? "&pound;" + t : "Please check back later";
	html += "</td></tr>";

	html += "</table>";
	
	// Facilities
	html += "<h2>Facilities</h2><div class=\"facilities\">";
	var facilities = getEventValue('Symbols', xml).split('|');
	for (var f in facilities) {
		var facility = facilities[f].split('^');
		var facility_name = facility[0];
		var facility_description = facility_name;
		if (facility[1] != '') {
		 	facility_description += ' - ' + facility[1];
		}

		var symbol_src = "http://www.nationaltrust.org.uk/ntmaps/images/symbols/" + getDefaultIconFilename(facility_name);
		if (isScotland) {
			symbol_src = "http://www.nts.org.uk/site/images/icons/" + getScotlandIconFilename(facility_name);
		}
		var symbol = "<img src=\"" + symbol_src + "\" alt=\"" + facility_name + "\" title=\"" + facility_description + "\" style=\"background: #FFFFFF;\" />";
		html += symbol;
	}
	html += "</div>";
	
	// Link outbound to NT
	var webId = getEventValue("WebId", xml);
	var out_href = "http://www.nationaltrust.org.uk/scripts/nthandbook.dll?ACTION=PROPERTY&propertyid=" + webId;
	var out_text = "For latest property details please see the National Trust Website";
	
	if (isScotland) {
		out_href = "http://www.nts.org.uk/Property/" + (currentPropertyId - 10000);
		out_text = "For latest property details please see the National Trust Scotland Website";
	}

	if (webId) {
		html += "<p><a href=\"" + out_href + "\">" + out_text + "</a></p>";
	}
	
// 	console.log(html);
	return html;
// 	subNodes1 = nts[iNode].getElementsByTagName('START_DATE');
// 	subNodes2 = nts[iNode].getElementsByTagName('END_DATE');
// 	html += "<strong><span style='color: #4A2A66;'>Trail Dates:</span></strong><br />" + subNodes1[0].firstChild.nodeValue + " - " + subNodes2[0].firstChild.nodeValue + "<br />";
// 	subNodes1 = nts[iNode].getElementsByTagName('START_TIME');
// 	subNodes2 = nts[iNode].getElementsByTagName('END_TIME');
// 	html += "<strong><span style='color: #4A2A66;'>Time:</span></strong><br />" + subNodes1[0].firstChild.nodeValue + " - " + subNodes2[0].firstChild.nodeValue + "<br />";
// 	subNodes = nts[iNode].getElementsByTagName('PRICE');
// 	html += "<strong><span style='color: #4A2A66;'>Cost:</span></strong><br />" + subNodes[0].firstChild.nodeValue + "<br />";
// 	subNodes = nts[iNode].getElementsByTagName('ADDITIONAL_DETAILS');
// 	if(subNodes[0].childNodes.length > 0) {
// 	html += "<strong><span style='color: #4A2A66;'>Additional Details:</span></strong><br />" + subNodes[0].firstChild.nodeValue +"<br />";
// 	}
}


function setRegions(xml) {
	var list = xml.getElementsByTagName('Region');

	$('#region-list').empty();
	var k = "";
	var v = "- Select your region -";
	$('#region-list').append("<option value=\"" + k + "\">" + v + "</option>");

	for (var i = 0; i < list.length; i++) {
		k = v = list[i].firstChild.nodeValue;
		$('#region-list').append("<option value=\"" + k + "\">" + v + "</option>");
	}

	$('#region-list').show();
}



function setEvents(xml) {

	events_xml = xml;
	var list = xml.getElementsByTagName('Event');

	var k = "";
	var v = "- Find your local property -";
	$('#location-list').empty();
	$('#location-list').append("<option value=\"" + k + "\">" + v + "</option>");

	for (var i = 0; i < list.length; i++) {
// 		console.debug(list[i]);
		k = getEventValue('PropertyID', list[i]);
		events_by_id[k] = list[i];
		
		v = getEventValue('Name', list[i]);
		$('#location-list').append("<option value=\"" + k + "\">" + v + "</option>");
	}

	$('#location-list').show();
}