function getProfileEvents(_performerID)
{
	var oArgs = {
		app_key: "zw8KjSJtSRHHf6Wh",
		user: "Nextcat",
		user_key: "9lKPRX23rxvrXDww",
		keywords: "spid:" + _performerID + " owner:nextcat",
		date: "future"
	};
	
	EVDB.API.call("/events/search", oArgs, function(oData)
	{
		if(oData.events != null && oData.events.event != null && oData.events.event.length > 0)
		{
			var html = "<table class=\"EventsTable\" cellspacing=\"0\">";
			for(var i = 0; i < oData.events.event.length && i < 5; i++)
			{
				html += "<tr><td class=\"EventsTime\">";
					if(oData.events.event[i].start_time != null)
					{
						var _date = oData.events.event[i].start_time.replace(" ", "-").replace(new RegExp (':', 'gi'), "-").split("-");
						switch(_date[1])
						{
							case "01":
							case "1": html += "Jan " + _date[2] + ", " + _date[0] + "<br/>"; break;
							case "02":
							case "2": html += "Feb " + _date[2] + ", " + _date[0] + "<br/>"; break;
							case "03":
							case "3": html += "Mar " + _date[2] + ", " + _date[0] + "<br/>"; break;
							case "04":
							case "4": html += "Apr " + _date[2] + ", " + _date[0] + "<br/>"; break;
							case "05":
							case "5": html += "May " + _date[2] + ", " + _date[0] + "<br/>"; break;
							case "06":
							case "6": html += "Jun " + _date[2] + ", " + _date[0] + "<br/>"; break;
							case "07":
							case "7": html += "Jul " + _date[2] + ", " + _date[0] + "<br/>"; break;
							case "08":
							case "8": html += "Aug " + _date[2] + ", " + _date[0] + "<br/>"; break;
							case "09":
							case "9": html += "Sep " + _date[2] + ", " + _date[0] + "<br/>"; break;
							case "10": html += "Oct " + _date[2] + ", " + _date[0] + "<br/>"; break;
							case "11": html += "Nov " + _date[2] + ", " + _date[0] + "<br/>"; break;
							default: html += "Dec " + _date[2] + ", " + _date[0] + "<br/>"; break;
						}
						if(_date[3] == 12)
							html += _date[3] + ":" + _date[4] + " PM";
						else if(_date[3] > 12)
							html += _date[3] - 12 + ":" + _date[4] + " PM";
						else
							html += _date[3] + ":" + _date[4] + " AM";
					}
					if(oData.events.event[i].stop_time != null)
					{
						if(oData.events.event[i].stop_time != oData.events.event[i].start_time && oData.events.event[i].stop_time != "")
						{
							var _dateEND = oData.events.event[i].stop_time.replace(" ", "-").replace(new RegExp (':', 'gi'), "-").split("-");
							html += " to<br/>";
							if(_dateEND[2] != _date[2] || _dateEND[0] != _date[0])
							{
								switch(_dateEND[1])
								{
									case "01":
									case "1": html += "Jan " + _dateEND[2] + ", " + _dateEND[0] + "<br/>"; break;
									case "02":
									case "2": html += "Feb " + _dateEND[2] + ", " + _dateEND[0] + "<br/>"; break;
									case "03":
									case "3": html += "Mar " + _dateEND[2] + ", " + _dateEND[0] + "<br/>"; break;
									case "04":
									case "4": html += "Apr " + _dateEND[2] + ", " + _dateEND[0] + "<br/>"; break;
									case "05":
									case "5": html += "May " + _dateEND[2] + ", " + _dateEND[0] + "<br/>"; break;
									case "06":
									case "6": html += "Jun " + _dateEND[2] + ", " + _dateEND[0] + "<br/>"; break;
									case "07":
									case "7": html += "Jul " + _dateEND[2] + ", " + _dateEND[0] + "<br/>"; break;
									case "08":
									case "8": html += "Aug " + _dateEND[2] + ", " + _dateEND[0] + "<br/>"; break;
									case "09":
									case "9": html += "Sep " + _dateEND[2] + ", " + _dateEND[0] + "<br/>"; break;
									case "10": html += "Oct " + _dateEND[2] + ", " + _dateEND[0] + "<br/>"; break;
									case "11": html += "Nov " + _dateEND[2] + ", " + _dateEND[0] + "<br/>"; break;
									default: html += "Dec " + _dateEND[2] + ", " + _dateEND[0] + "<br/>"; break;
								}
							}
							if(_date[3] == 12)
								html += _dateEND[3] + ":" + _dateEND[4] + " PM";
							else if(_dateEND[3] > 12)
								html += _dateEND[3] - 12 + ":" + _dateEND[4] + " PM";
							else
								html += _dateEND[3] + ":" + _dateEND[4] + " AM";
						}
					}
				html += "</td>";
				html += "<td  class=\"EventsTitle\">";
					html += oData.events.event[i].title;
				html += "</td>";
				html += "<td  class=\"EventsLocation\">";
					if(oData.events.event[i].venue_name != null)
						html += oData.events.event[i].venue_name + "<br/>";
					if(oData.events.event[i].venue_address != null)
						html += oData.events.event[i].venue_address + "<br/>";
					if(oData.events.event[i].city_name != null && oData.events.event[i].region_abbr != null)
						html += oData.events.event[i].city_name + ", " + oData.events.event[i].region_abbr + "<br/>";
					if(oData.events.event[i].postal_code != null)
						html += oData.events.event[i].postal_code + "<br/>";
					if(oData.events.event[i].country_name != null && oData.events.event[i].country_name != "United States")
						html += oData.events.event[i].country_name;
				html += "</td></tr>";
				
				if((i + 1) < oData.events.event.length)
					html += "<tr><td colspan='3' class=\"EventsDivider\"></td></tr>";
			}	
			html += "</table>";
			document.getElementById('EventsHtml').innerHTML = html;
		}
		else
		{
			document.getElementById('EventsDiv').style.display = "none";
			document.getElementById('EventsDiv').style.visibility = "hidden";
		}
	});
	/**/	
}

function getAdminPublicEvents(_location)
{	
	var oArgs = {
		app_key: "zw8KjSJtSRHHf6Wh",
		location: _location,
		within: "25",
		page_size: "5",
		page_number: "0",
		date: "future"
	};
	
	EVDB.API.call("/events/search", oArgs, function(oData)
	{
		var html = "";
		
		if(oData.events != null && oData.events.event != null && oData.events.event.length > 0)
		{
			html = "<div class=\"AdminEventsTitle\">Events around " + _location + " (" + oData.total_items + ")</div>"
			html += "<table class=\"AdminEventsTable\" cellspacing=\"0\">";
			for(var i = 0; i < oData.events.event.length && i < 5; i++)
			{
				html += "<tr><td class=\"AdminEventsDate\">";
					var _dateStart;
					if(oData.events.event[i].start_time != null)
					{
						var _date = oData.events.event[i].start_time.split('-');
						_dateStart = _date[1] + "/" + _date[2].split(' ')[0] + "/" + _date[0];
						html += _dateStart;
					}
					if(oData.events.event[i].stop_time != null)
					{
						var _date = oData.events.event[i].stop_time.split('-');
						var _dateEnd = _date[1] + "/" + _date[2].split(' ')[0] + "/" + _date[0];
						if(_dateStart != _dateEnd)
							html += " to<br/>" + _dateEnd;
					}
				html += "</td>";
				html += "<td  class=\"AdminEventsEvent\">";
					html += "<a target=\"_new\" href=\"http://www.eventful.com/events/" + oData.events.event[i].id + "\">" + oData.events.event[i].title;
					if(oData.events.event[i].venue_name != null)
						html += " @ " + oData.events.event[i].venue_name;
					html += "</a>";
				html += "</td></tr>";				
			}	
			html += "<tr><td class=\"AdminEventsLinks\" colspan=\"2\"><span style=\"float: right; position: relative; top: -8px;\"><a target=\"_new\"href=\"http://www.eventful.com/\"><img src=\"/images/mynextcat/small_eventful.gif\" alt=\"Powered by Eventful\" /></a></span><img src=\"/images/arrows/light_blue_on_trans_bold.gif\" alt=\"Arrow\">&nbsp;<a href=\"/browse/EventsAll.aspx\">See all Events in " + _location + "</a></td></tr>";
			html += "<tr><td class=\"EventsDivider\" colspan=\"2\"></td></tr>";
			html += "</table>";
		}
		else
		{
			html += "<div class=\"AdminEventsError\">There are no events posted in " + _location + ".</div>";
		};
		
		$('EventsPublicHtml').innerHTML = html;
	});
}

function getAdminPersonalEvents(_performerID)
{
	oArgs = {
		app_key: "zw8KjSJtSRHHf6Wh",
		user: "Nextcat",
		user_key: "9lKPRX23rxvrXDww",
		keywords: "spid:" + _performerID + " owner:nextcat",
		date: "future"
	};
	
	EVDB.API.call("/events/search", oArgs, function(oData)
	{
		var html = "";
		
		if(oData.events != null && oData.events.event != null && oData.events.event.length > 0)
		{
			html = "<div class=\"AdminEventsTitle\">Events you posted (" + oData.total_items + ")</div>"
			html += "<table class=\"AdminEventsTable\" cellspacing=\"0\">";
			for(var i = 0; i < oData.events.event.length && i < 5; i++)
			{
				html += "<tr><td class=\"AdminEventsDate\">";
					var _dateStart;
					if(oData.events.event[i].start_time != null)
					{
						var _date = oData.events.event[i].start_time.split('-');
						_dateStart = _date[1] + "/" + _date[2].split(' ')[0] + "/" + _date[0];
						html += _dateStart;
					}
					if(oData.events.event[i].stop_time != null)
					{
						var _date = oData.events.event[i].stop_time.split('-');
						var _dateEnd = _date[1] + "/" + _date[2].split(' ')[0] + "/" + _date[0];
						if(_dateStart != _dateEnd)
							html += " to<br/>" + _dateEnd;
					}
				html += "</td>";
				html += "<td  class=\"AdminEventsEvent\">";
					html += "<a target=\"_new\" href=\"http://www.eventful.com/events/" + oData.events.event[i].id + "\">" + oData.events.event[i].title;
					if(oData.events.event[i].venue_name != null)
						html += " @ " + oData.events.event[i].venue_name;
					html += "</a>";
				html += "</td></tr>";				
			}	
			html += "<tr><td class=\"AdminEventsLinks\" colspan=\"2\"><img src=\"/images/arrows/light_blue_on_trans_bold.gif\" alt=\"Arrow\">&nbsp;<a href=\"/profile/events/Events_Edit.aspx\">Post an Event</a></td></tr>";
			html += "</table>";
		}
		else
		{
			html += "<div class=\"AdminEventsError\">You have no posted events. <a href=\"/profile/events/Events_Edit.aspx\">Post an Event now.</a></div>";
		};		
		
		$('EventsPersonalHtml').innerHTML = html;
	});
}

function populateVenueDropDownList(targetDropDownList)
{
	var oArgs = {
		app_key: "zw8KjSJtSRHHf6Wh",
		id: "Nextcat"
	};
	
	var eDDLVenue = targetDropDownList;
	
	EVDB.API.call("/users/venues/list", oArgs, function(oData)
	{
		if(oData.venue != null)
		{
			for(var i = 0; i < oData.venue.length; i++)
			{
				if(eDDLVenue.options[1] != null) //Avoid duplicates preloaded by code behind.
				{
					if(eDDLVenue.options[1].value != oData.venue[i].id)	
						eDDLVenue.options[eDDLVenue.length] = new Option(oData.venue[i].name, oData.venue[i].id);
					else
						eDDLVenue.options[1].selected = true;
				}
				else
					eDDLVenue.options[eDDLVenue.length] = new Option(oData.venue[i].name, oData.venue[i].id);
			}
		}
	});
}

function findAnExistingVenue(keyword)
{
	if(keyword != null && keyword.length > 0)
	{
		var oArgs = {
			app_key: "zw8KjSJtSRHHf6Wh",
			q: keyword,
			page_size: 10
		};
		
		var div = document.getElementById('DIVFindResults');
		div.innerHTML = "Searching...";
				
		EVDB.API.call("/venues/search", oArgs, function(oData)
		{
			if(oData.venues.venue != null)
			{
				div.innerHTML = "";
				for(var i = 0; i < oData.venues.venue.length; i++)
				{
					div.innerHTML += "<input type='radio' name='CBLFindResults' value='" + oData.venues.venue[i].id + "' onclick='javascript: setVenueID(\"" + oData.venues.venue[i].id + "\");'>" + oData.venues.venue[i].venue_name + "<br/><div style=\"font-size: 10px; margin-left: 22px;\">" + oData.venues.venue[i].address + " "  + oData.venues.venue[i].city_name + ", " + oData.venues.venue[i].region_name + " " + oData.venues.venue[i].country_name + "</div>";
				}
			}
			else
				div.innerHTML = "No matches found. Try a different spelling, or add as a new venue.";
		});
	}
}

function setVenueID(venue_id)
{
	document.getElementById('TBVenueID').value = venue_id;
}

function clearVenueID()
{
	document.getElementById('TBVenueID').value = "";
}

function selectVenueTab(ID)
{
	clearVenueID();	//Reset Venue ID
	
	var selectedTab = document.getElementById("VenueTab" + ID);
	var selectedBody = document.getElementById("VenueBody" + ID);
	
	var VenueTab1 = document.getElementById("VenueTab1");
	var VenueTab2 = document.getElementById("VenueTab2");
	var VenueTab3 = document.getElementById("VenueTab3");
	var VenueTab4 = document.getElementById("VenueTab4");
	
	var VenueBody1 = document.getElementById("VenueBody1");
	var VenueBody2 = document.getElementById("VenueBody2");
	var VenueBody3 = document.getElementById("VenueBody3");
	var VenueBody4 = document.getElementById("VenueBody4");
	
	VenueBody1.className = "Hidden";
	VenueBody2.className = "Hidden";
	VenueBody3.className = "Hidden";
	VenueBody4.className = "Hidden";
	
	selectedBody.className = "Visible";
	
	VenueTab1.className = "VenueTab";
	VenueTab2.className = "VenueTab";
	VenueTab3.className = "VenueTab";
	VenueTab4.className = "VenueTab";
	
	selectedTab.className = "VenueTab_Selected";
	
	//When switching tabs, if venue selection was previously made, preload it as the VenueID.
	switch(ID)
	{
		case 1:	//Recent Venue
			var ddl = document.getElementById('DDLVenue');
			if(ddl != null && ddl.value != -1) setVenueID(ddl.value);
			break;
		case 2: //Find Venue
			var cbl = document.getElementsByName('CBLFindResults');
			if(cbl != null)
			{
				for(var i = 0; i < cbl.length; i++)
				{
					if(cbl[i].checked)
						setVenueID(cbl[i].value);
				}
			}
			break;
		case 3: //New Venue
			setVenueID("CREATE_NEW_VENUE");	//Toggle code behind to look for new venue info.
			break;
		case 4: //Other
			var cbl = document.getElementsByName('CBLOther');
			if(cbl != null)
			{
				for(var i = 0; i < cbl.length; i++)
				{
					if(cbl[i].checked)
						setVenueID(cbl[i].value);
				}
			}
			break;		
	}
}

window.onload = function()
{
	if(document.getElementById('DDLVenue'))
		populateVenueDropDownList(document.getElementById('DDLVenue'));
}

function loadNextElements()
{
	countryCode = document.getElementById("DDLCountry").options[document.getElementById("DDLCountry").selectedIndex].value;
	// If US and Canada allow users to enter Zip / Postal Codes.
	if(countryCode == "US")
	{
		// Hide / Show approriate elements.
		document.getElementById("TRCity").style.display = "none";
		document.getElementById("TRCity").style.visibility = "hidden";					
		document.getElementById("TBZip").value = "";
		document.getElementById("TRZip").style.display = "";
		document.getElementById("TRZip").style.visibility = "visible";					
	}
	// Else they are in another country and we should use the City Drop Down List.
	else
	{					
		// Hide / Show approriate elements.
		document.getElementById("TRCity").style.display = "";
		document.getElementById("TRCity").style.visibility = "visible";					
		document.getElementById("TRZip").style.display = "none";
		document.getElementById("TRZip").style.visibility = "hidden";
		document.getElementById("TBZip").value = "";					
		
		// Make a XMLHTTPRequest for the countries cities/provinces.
		var countrySel = document.forms[0].DDLCountry;
		var cc = countrySel.options[countrySel.selectedIndex].value;
		var url = "/data/DataRequest.aspx?op=GetCitiesForCountryCode&CountryCode=" + cc;
		
		var myAjaxRequest = new AjaxRequestObject();
		myAjaxRequest.url = url;
		myAjaxRequest.customHandler = HandlerGetCitiesForCountryCode;
		myAjaxRequest.targetID = "DDLCity";
		myAjaxRequest.startRequest();	
	}
	
	function HandlerGetCitiesForCountryCode(node, myAjaxRequest)
	{
		var ddl = document.getElementById(myAjaxRequest.targetID);
		
		ddl.options.length = 0;
		if(node.childNodes[0].childNodes.length >= 1 && node.childNodes[0].childNodes[0].hasChildNodes())
		{
			for(var i = 0; i < node.childNodes[0].childNodes.length; i++)
			{
				var optNode = node.childNodes[0].childNodes[i].childNodes[0].nodeValue;
				var optNodeAttribute = node.childNodes[0].childNodes[i].getAttribute("value");
				ddl.options[ddl.options.length] = new Option(optNode, optNodeAttribute);
			}
		}
		if(ddl.options.length > 0)
		{
			//document.getElementById("HILocationId").value = ddl.options[ddl.selectedIndex].value;
		}
	}			
}

function autoComplete(searchInput)
{
	if(searchInput.length > 2)
	{
		var url = "/data/DataRequest.aspx?op=ACPZipCodeLookup&search=" + searchInput;
		
		var myAjaxRequest = new AjaxRequestObject();
		myAjaxRequest.url = url;
		myAjaxRequest.customHandler = HandlerAutoCompleteZip;
		myAjaxRequest.targetID = "autoComplete";
		myAjaxRequest.searchInput = searchInput;
		myAjaxRequest.startRequest();
	}
	
	function HandlerAutoCompleteZip(node, myAjaxRequest)
	{
		var matchesString = "";
		var targetDiv = document.getElementById(myAjaxRequest.targetID);
		
		node = node.childNodes[0].childNodes;
		
		if(node.length >= 1 && myAjaxRequest.searchInput.length < 5)
		{
			for(var i = 0; i < node.length; i++)
			{
				var matchValue = node[i].childNodes[0].nodeValue;
				var matchId = node[i].getAttribute("id");
				matchesString += "<a href=\"#\" onclick=\"javascript: selectACPEntry('" + matchValue + "', '" + matchId + "'); return false;\">" + matchValue + "<\/a><br>";
			}
			targetDiv.innerHTML = matchesString;
			var object = document.getElementById("TBZip");
			targetDiv.style.top = (getTotalOffsetTop(object) + 25) + "px";
			targetDiv.style.left = getTotalOffsetLeft(object) + "px";
			targetDiv.style.visibility = "visible";
			targetDiv.style.display = "";
		}
		else
		{
			if(node.length == 1)
			{
				//document.getElementById("HILocationId").value = node[0].getAttribute("id");
			}
			targetDiv.innerHTML = "";
			targetDiv.style.visibility = "hidden";
			targetDiv.style.display = "none";
		}
	}
}			

function selectACPEntry(sourceValue, sourceLocationId)
{
	document.getElementById("TBZip").value = sourceValue.substring(0, 5);
	//document.getElementById("HILocationId").value = sourceLocationId;
	autoComplete(sourceValue.substring(0, 5));
}
