
//Create an http object
var http = getHTTPObject();

function getHTTPObject() {
	var xmlhttp;

	//if running internet explorer
	if(window.ActiveXObject) {
		try
		{
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e)
		{
			xmlhttp = false;
		}
	}
	else
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {

		}
	}
	return xmlhttp;
}



function getHotelsAdaptor(value) {
	var longLatArray = value.split(':');
	getHotels(longLatArray[0], longLatArray[1], longLatArray[2]);
}

function getHotels(longitude, latitude, date) {
	if ( http.readyState == 0 || http.readyState == 4 ){
		http.open("GET", "javascript/hotel_xml.php?geolat=" + latitude + "&geolon=" + longitude + "&sdate=" + date, true);
		http.onreadystatechange = handleHttpResponseHotels;
		http.send(null);
	} else {
		setTimeout('getHotels(' + longitude + ', ' + latitude + ', ' + date + ')', 500);
	}
}


function handleHttpResponseHotels() {
	if (http.readyState == 4) {

		var response = http.responseXML;

		if(!response || !response.documentElement){
		}

		xmlRoot =  response.documentElement;

		var returnText = "";

		var nameNodes = response.getElementsByTagName("hotel_name");
		var starNodes = response.getElementsByTagName("hotel_star");
		var distanceNodes = response.getElementsByTagName("hotel_distance");
		var priceNodes = response.getElementsByTagName("price");
		var linkNodes = response.getElementsByTagName("hotel_link");

		var hotelCount = 0;

		for(var i=0; i<nameNodes.length; i++)
		{
			if(distanceNodes.item(i).firstChild.nodeValue < 1.1)
			{
				hotelCount++;
				returnText += "<P><a href='" + linkNodes.item(i).firstChild.nodeValue + "'>" + nameNodes.item(i).firstChild.nodeValue + "</a> ";
				var stars = Math.abs(starNodes.item(i).firstChild.nodeValue);
				while(stars > 0)
				{
					returnText += "*";
					stars = stars - 1;
				}
				returnText += " <BR />£" + priceNodes.item(i).firstChild.nodeValue + "/night - " + distanceNodes.item(i).firstChild.nodeValue + " miles from the venue.</P>";
			}
		}

		if(hotelCount < 6)
		{
			for(var i=0; i<nameNodes.length; i++)
			{
				if(distanceNodes.item(i).firstChild.nodeValue >= 1.1 && distanceNodes.item(i).firstChild.nodeValue < 3)
				{
					hotelCount++;
					returnText += "<P><a href='" + linkNodes.item(i).firstChild.nodeValue + "'>" + nameNodes.item(i).firstChild.nodeValue + "</a> ";
					var stars = Math.abs(starNodes.item(i).firstChild.nodeValue);
					while(stars > 0)
					{
						returnText += "*";
						stars = stars - 1;
					}
					returnText += " <BR />£" + priceNodes.item(i).firstChild.nodeValue + "/night - " + distanceNodes.item(i).firstChild.nodeValue + " miles from the venue.</P>";
				}
			}
		}

		document.getElementById('hotel_box').innerHTML = returnText;
	}
}

var monthName = new Array(13);
monthName[0] = "Jan";
monthName[1] = "Feb";
monthName[2] = "Mar";
monthName[3] = "Apr";
monthName[4] = "May";
monthName[5] = "Jun";
monthName[6] = "Jul";
monthName[7] = "Aug";
monthName[8] = "Sep";
monthName[9] = "Oct";
monthName[10] = "Nov";
monthName[11] = "Dec";

function makeCalendarMillisecAdaptor(calDateMillisec, textBoxId)
{
	var d = new Date();
	d.setTime(calDateMillisec);
	makeCalendar(d, textBoxId);
}

function makeCalendarMillisecAdaptor2(calDateMillisec, textBoxId)
{
	var d = new Date();
	d.setTime(calDateMillisec);
	makeCalendar2(d, textBoxId);
}

function makeCalendar(calDate)
{
	var textBoxId = "";

	calDate.setFullYear(calDate.getFullYear(),calDate.getMonth(),1);

	var thisMonth = calDate.getMonth();

	var nextMonth = calDate.getMonth()+1;

	var nextMonthDate = new Date();

	var todayDate = new Date();

	if(nextMonth == 12)
	{
		nextMonth = 0;
		nextMonthDate.setFullYear(calDate.getFullYear()+1,nextMonth,1);
	}
	else
	{
		nextMonthDate.setFullYear(calDate.getFullYear(),nextMonth,1);
	}

	var lastMonth = calDate.getMonth()-1;

	var lastMonthDate = new Date();

	if(lastMonth == -1)
	{
		lastMonth = 11;
		lastMonthDate.setFullYear(calDate.getFullYear()-1,lastMonth,1);
	}
	else
	{
		lastMonthDate.setFullYear(calDate.getFullYear(),lastMonth,1);
	}

	var returnText = "<div class='calendar_box'><table class='calendar' cellpadding=0 cellspacing=0>";
	returnText += "<tr class='top'>";
	returnText += "<th><a class='menu_item_1' href='#' onMouseDown=\"makeCalendarMillisecAdaptor(" + lastMonthDate.getTime() + ", '" + textBoxId + "');\"><<</a></th>";
	returnText += "<th colspan=5>" + monthName[thisMonth] + " " + calDate.getFullYear() + "</th>";
	returnText += "<th><a class='menu_item_1' href='#' onMouseDown=\"makeCalendarMillisecAdaptor(" + nextMonthDate.getTime() + ", '" + textBoxId + "');\">>></a></th>";
	returnText += "</tr>";
	returnText += "<tr><td>SU</td><td>MO</td><td>TU</td><td>WE</td><td>TH</td><td>FR</td><td>SA</td></tr>";
	//start the first line of the calendar
	var weekDayStart = calDate.getDay();

	returnText += "<tr>";
	for (var i = 0; i < weekDayStart; i++){
		returnText += "<td>-</td>";
	}

	//alert(calDate.getTime());
	while(calDate.getMonth() == thisMonth)
	{
		returnText += "<td><a class='menu_item_1' href='day.php?" + calDate.getDate() + "g" + (calDate.getMonth()+1) + "g" + calDate.getFullYear() + "'";
		if (calDate.getTime() < todayDate.getTime())
		{
			returnText += " style='text-decoration: line-through;'";
		}
		if (calDate.getTime() == todayDate.getTime())
		{
			returnText += " style='background-image: url(images/green_circle.gif);'";
		}
		returnText += ">" + calDate.getDate() + "</a></td>";
		if(calDate.getDay() == 6)
		{
			//start a new line
			returnText += "</tr><tr>";
		}
		calDate.setDate(calDate.getDate()+1)
	}

	for (var i = calDate.getDay(); i < 7; i++){
		returnText += "<td>-</td>";
	}

	returnText += "</tr></table>";
	returnText += "</div><div class='calendar_box_bottom'> </div>";
	document.getElementById('calendar').innerHTML = returnText;

}

function makeCalendar2(calDate, textBoxId)
{

	//make sure there is a calendar box
	if(!document.getElementById('calendar_' + textBoxId))
	{
		//add it
		document.getElementById(textBoxId).parentNode.innerHTML = "<div class='wrapper' style='width: 0px; overflow: visible;'><div class='calendar_container' id='calendar_" + textBoxId + "'></div></div>" + document.getElementById(textBoxId).parentNode.innerHTML;
	}

	calDate.setFullYear(calDate.getFullYear(),calDate.getMonth(),1);

	var thisMonth = calDate.getMonth();

	var nextMonth = calDate.getMonth()+1;

	var nextMonthDate = new Date();

	if(nextMonth == 12)
	{
		nextMonth = 0;
		nextMonthDate.setFullYear(calDate.getFullYear()+1,nextMonth,1);
	}
	else
	{
		nextMonthDate.setFullYear(calDate.getFullYear(),nextMonth,1);
	}

	var lastMonth = calDate.getMonth()-1;

	var lastMonthDate = new Date();

	if(lastMonth == -1)
	{
		lastMonth = 11;
		lastMonthDate.setFullYear(calDate.getFullYear()-1,lastMonth,1);
	}
	else
	{
		lastMonthDate.setFullYear(calDate.getFullYear(),lastMonth,1);
	}

	var returnText = "<div class='calendar_box'><table class='calendar' cellpadding=0 cellspacing=0>";
	returnText += "<tr class='top'>";
	returnText += "<th><a class='menu_item_1' href='#' onMouseDown=\"makeCalendarMillisecAdaptor2(" + lastMonthDate.getTime() + ", '" + textBoxId + "');\"><<</a></th>";
	returnText += "<th colspan=5>" + monthName[thisMonth] + " " + calDate.getFullYear() + "</th>";
	returnText += "<th><a class='menu_item_1' href='#' onMouseDown=\"makeCalendarMillisecAdaptor2(" + nextMonthDate.getTime() + ", '" + textBoxId + "');\">>></a></th>";
	returnText += "</tr>";
	returnText += "<tr><td>SU</td><td>MO</td><td>TU</td><td>WE</td><td>TH</td><td>FR</td><td>SA</td></tr>";
	//start the first line of the calendar
	var weekDayStart = calDate.getDay();

	returnText += "<tr>";
	for (var i = 0; i < weekDayStart; i++){
		returnText += "<td>-</td>";
	}

	while(calDate.getMonth() == thisMonth)
	{
		var calDateDom = calDate.getDate();
		if(calDateDom < 10)
		{
			calDateDom  = "0" + calDateDom;
		}
		returnText += "<td><a class='menu_item_1' href='#' onmousedown='document.getElementById(\"" + textBoxId + "\").value=\"" + calDateDom + "/" + (calDate.getMonth()+1) + "/" + calDate.getFullYear() + "\"; document.getElementById(\"calendar_" + textBoxId + "\").style.visibility=\"hidden\"; updateBuyTickets();'>" + calDate.getDate() + "</a></td>";
		if(calDate.getDay() == 6)
		{
			//start a new line
			returnText += "</tr><tr>";
		}
		calDate.setDate(calDate.getDate()+1)
	}

	for (var i = calDate.getDay(); i < 7; i++){
		returnText += "<td>-</td>";
	}

	returnText += "</tr><tr><td colspan=7 style='text-align: center;'><a href='JavaScript: //' onclick='document.getElementById(\"calendar_" + textBoxId + "\").style.visibility=\"hidden\"; document.getElementById(\"" + textBoxId + "\").value=\"Any\"; updateBuyTickets();' class='menu_item_1'>ANY</a><input style='width: 43px; float: right; font-size: 65%;' type=submit onclick='document.getElementById(\"calendar_" + textBoxId + "\").style.visibility=\"hidden\";' value='CLOSE'></td></tr></table>";
	returnText += "</div><div class='calendar_box_bottom'> </div>";
	document.getElementById('calendar_' + textBoxId).innerHTML = returnText;
	document.getElementById('calendar_' + textBoxId).style.visibility = 'visible';
}

function showFlyer(flyerId) {
	document.getElementById('flyer_' + flyerId).style.display = 'block';
}

/**
 *
 * @access public
 * @return void
 **/
function hideFlyer(flyerId) {
	document.getElementById('flyer_' + flyerId).style.display = 'none';
}
