
var monthName1 = Array;
monthName1['01'] = "january";
monthName1['02'] = "february";
monthName1['03'] = "march";
monthName1['04'] = "april";
monthName1['05'] = "may";
monthName1['06'] = "june";
monthName1['07'] = "july";
monthName1['08'] = "august";
monthName1['09'] = "september";
monthName1['10'] = "october";
monthName1['11'] = "november";
monthName1['12'] = "december";

var lastGetMatchingEventsRequest = 0;

function delayedRequest(term, attempt)
{
	//check if it's either a new request or the last request made.
	//if a new request has been made, disregard it
	if(attempt == 0 || attempt == lastGetMatchingEventsRequest)
	{
		//update last request time
		//var d = new Date();
		//lastGetMatchingEventsRequest = d.getTime();

		//update previousTerm
		previousTerm = term;

		if ( http.readyState == 0 || http.readyState == 4 ){
			http.open("GET", "/additional_files/search_query.php?query=" + term + "&attempt=" + attempt, true);
			http.onreadystatechange = handleResponseAjaxGetMatchingEvents;
			http.send(null);
		} else {
			setTimeout('delayedRequest("' + term + '", "' + attempt + '");', 500);
		}
	}
}

function ajaxGetMatchingEvents(term, attempt)
{
	if(term.length > 0)
	{
		//update last request time
		var d = new Date();
		lastGetMatchingEventsRequest = d.getTime();
		setTimeout('delayedRequest("' + term + '", "' + lastGetMatchingEventsRequest + '");', 500);
	}
	else
	{
		document.getElementById('search_results_box').innerHTML = "Search by event, artist, or venue";
	}
}

function handleResponseAjaxGetMatchingEvents()
{
	if (http.readyState == 4)
	{
		var response = http.responseXML;
		if(!response || !response.documentElement)
		{
			//alert ('ERROR!');
		}
		xmlRoot =  response.documentElement;
		var eventIdNodes = response.getElementsByTagName("event_id");
		var eventNameNodes = response.getElementsByTagName("event_name");
		var venueNameNodes = response.getElementsByTagName("venue_name");
		var startDateNodes = response.getElementsByTagName("start_date");

		sEventIds = new Array(eventIdNodes.length);

		//result will be the HTML returned
		var result = "";

		if(eventIdNodes.length == 0)
		{
			result = "No matching events!";
		}
		else
		{
			for(var i=0; i < eventIdNodes.length; i++)
			{
				var eventName = eventNameNodes.item(i).firstChild.nodeValue;
				eventName = eventName.replace(/andquot;/g, "'");
				var venueName = venueNameNodes.item(i).firstChild.nodeValue;
				var eventId = eventIdNodes.item(i).firstChild.nodeValue;
				var eventDate = startDateNodes.item(i).firstChild.nodeValue;

				sEventIds[i] = eventId;

				result += "<div><p id='search_item_" + eventId + "' onmousedown=\"location.href='/buy_tickets/events/?id=" + eventId + "';\" onmouseout=\"unsetSearchSelected();\" onmouseover=\"unsetSearchSelected(); setSearchSelected(" + i + ");\" href='#' class='menu_item_1'><strong>" + eventName + " (" + eventDate +")</strong> at " + venueName + "</p></div>";
			}
		}

		document.getElementById('search_results_box').innerHTML = result;
	}
}

function newKeyHasBeenPressed(e)
{
	var keynum;
	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}
	if(keynum == '13' && searchSelected != null) //enter
	{
		location.href = "/buy_tickets/events/?id=" + sEventIds[searchSelected];
		return false;
	}
	if(keynum == '40' || keynum == '38') //down //up
	{
		var i = 0;
		if(searchSelected != null)
		{
			i = searchSelected + 1;
		}
		if(keynum == '38')
		{
			i--;
			i--;
		}
		while(sEventIds[i])
		{
			unsetSearchSelected();
			setSearchSelected(i);
			break;
		}
		return false;
	}
	else
	{
		return true;
	}
}


//for buy tickets page
function ajaxGetMatchingEventsAdvanced(term, venue_id, genre_id, date, festival, attempt)
{
	//check if it's either a new request or the last request made.
	//if a new request has been made, disregard it
	if(attempt == 0 || attempt == lastGetMatchingEventsRequest)
	{
		document.getElementById('event_table').innerHTML = "<img src='/site_images/loadingAnimation.gif'><BR><BR><BR><BR>";

		//update last request time
		var d = new Date();
		lastGetMatchingEventsRequest = d.getTime();

		//update previousTerm
		previousTerm = term;

		if ( http.readyState == 0 || http.readyState == 4 ){

			var search_query_url = "/additional_files/search_query2.php?query=% " + term + "&venue_id=" + venue_id + "&genre_id=" + genre_id + "&date=" + date + "&festival=" + festival + "&attempt=" + attempt;

			group_id = null;

			if(arguments.length > 6)
			{
				group_id = arguments[6];
				search_query_url = search_query_url + "&group_id=" + group_id;
			}

			http.open("GET", search_query_url, true);
			http.onreadystatechange = handleResponseAjaxGetMatchingEventsAdvanced;
			http.send(null);
		} else {
			setTimeout('ajaxGetMatchingEventsAdvanced("' + term + '", "' + venue_id + '", "' + genre_id + '", "' + date + '", "' + festival + '", "' + lastGetMatchingEventsRequest  + '", "' + group_id + '");', 500);
		}
	}
}

function handleResponseAjaxGetMatchingEventsAdvanced()
{
	if (http.readyState == 4)
	{
		var event_count = 0;
		var result = "<div>";

		var response = http.responseXML;
		if(!response || !response.documentElement)
		{
			//alert ('ERROR!');
		}
		xmlRoot =  response.documentElement;
		var dayNodes = response.getElementsByTagName("day");


		if(dayNodes.length == 0)
		{
			result = result + "<p><div class='form_errors'><div><h5>No tickets found!</h5><p>There are currently no tickets available that meet your query!</p>";
			result = result + "</div></div><div class='form_errors_bottom'></div>";
		}
		else
		{
			//loop through days
			for(var i=0; i < dayNodes.length; i++)
			{
				//first node is date
				var date = dayNodes.item(i).childNodes[0].firstChild.nodeValue;

				var date_array = date.split("/");

				var day_of_week = dayNodes.item(i).childNodes[1].firstChild.nodeValue;
				var day_of_month = dayNodes.item(i).childNodes[2].firstChild.nodeValue;
				var month = dayNodes.item(i).childNodes[3].firstChild.nodeValue;

				//html stuff
				result = result + "<div class='event_day_top'></div><div class='event_day_middle' style='padding: 2px 0;'>";
				result = result + "<div class='calendar_block'><div class='month' style='background-position: 0 -" + (month-1)*18 + "px;'> </div><div class='dom' style='background-position: 0 -" + ((day_of_month-1) * 26) + "px;'> </div></div>";
				result = result + "<div style='margin-left: 56px;'><div class='dow_top'></div><div class='dow_middle'><P style='font-weight: bold;'>" + day_of_week + "</P></div><div class='dow_bottom'></div>";

				//the rest of the nodes are events
				for(var j=4; dayNodes.item(i).childNodes[j]; j=j+1)
				{
					event_count++;

					//should be event name
					var event_id = dayNodes.item(i).childNodes[j].childNodes[0].firstChild.nodeValue;
					var event_name = dayNodes.item(i).childNodes[j].childNodes[1].firstChild.nodeValue;
					event_name = event_name.replace(/andquot;/g, "'");
					var venue_id = dayNodes.item(i).childNodes[j].childNodes[2].firstChild.nodeValue;
					var venue_name = dayNodes.item(i).childNodes[j].childNodes[3].firstChild.nodeValue;
					var event_status = dayNodes.item(i).childNodes[j].childNodes[4].firstChild.nodeValue;

					//html stuff
					result = result + "<div class='dow_top' style='height: 1px; padding: 0;'></div><div class='dow_middle'>";
					result = result + "<div style='float: right; width: 140px; text-align: right;'><a class='no_style'  href='/buy_tickets/events/?id=" + event_id + "'><img src='/site_images/button_more_info.gif' style='border: 0px;'  alt='More Info'></a><BR />";
					if(event_status == 'Buy tickets')
					{
						result = result + "<a class='no_style' href='/buy_tickets/events/?id=" + event_id + "'><img src='/site_images/button_buy_tickets.gif' style='border: 0px;' alt='Buy Tickets'></a>";
					}
					else
					{
						result = result + event_status + " ";
					}
					result = result + "</div><strong><a href='/buy_tickets/events/?id=" + event_id + "'>" + event_name + "</a></strong>";

					result = result + "<BR /><small>" + venue_name + "</small>";
					result = result + "</div><div class='dow_bottom'> </div>";
				}
				result = result + "</div></div><div class='event_day_bottom'> </div> ";
			}
		}

		document.getElementById('event_table').innerHTML = result;
		if(document.getElementById('event_count'))
		{
			document.getElementById('event_count').innerHTML = event_count;
		}
	}
}