var timerId, timerId2, timeout;
var curPage = 1;//variable holding the page number we are currently on
var ticketleapURL = 'http://www.ticketleap.com';
var stagingURL = 'http://64.46.44.45';
//var localURL = 'http://www.ticketleap.com';
var localURL = 'http://localhost';
var pathURL = ticketleapURL;
var first_time = 1;
var searchAcademic = 1;
var searchArts = 2;
var searchBusiness = 3;
var searchMusic = 4;
var searchOther = 5;
var searchSports = 6;

//Featured Events
var _xsajax$transport_status = 200;if (typeof(Ticketleap_FT) == 'undefined') Ticketleap_FT = {}; 
Ticketleap_FT.events = [

{
	"eventid":"8293E353-BEB9-4790-9F0B-8ED9313B00B",
	"eventname":"There Goes The Bride",
	"eventdatetime":"Friday August 29, 2008 at 8:00 PM",
	"eventdescription":"A harassed advertising executive, Timothy Westerby, hits his head on the morning of his daughter's society wedding. He awakes to find himself in the company of Polly Perkins, a 1920's Flapper girl straight out of his current advertising campaign, whom no one else can see or hear. The situation becomes more critical when another bump on the head transports Timothy back to the Savoy Hotel in 1926 and the carefully planned wedding preparations disintegrate into chaos. Will family and friends be able to pull Timothy back to reality before the â€˜in-lawsâ€™ abandon the wedding? Our 7th Annual Cooney farce!",
	"eventimage":"partner/store/phillydotcom/images/feature1.jpg",
	"eventcategory":"Theatre",
	"Venue":{
	"name":"Hedgerow Theatre",
	"address1":"64 Rose Valley Road",
	"address2":"",
	"city":"Media",
	"state":"PA",
	"zipcode":"19063"
}
},
{	
	"eventid":"71E2F6CE-FAA0-4556-9059-6E848CF6738",
	"eventname":"Philadelphia Zoo - One Day Pass Good Until December 30, 2008",
	"eventdatetime":"Any time of the year",
	"eventdescription":"",
	"eventimage":"images/eventimages/DetailImage/f3225e59-8f81-406d-9ae3-577dd65b8a56.jpeg",
	"eventcategory":"Tour",
	"Venue":{
	"name":"Hilton Philadelphia Airport Hotel",
	"address1":"2 East Lancaster Ave",
	"address2":"",
	"city":"Ardmore",
	"state":"PA",
	"zipcode":"19153"
}
},
{	
	"eventid":"DA924CD0-7CD9-4DA7-9968-D55FB354EE7",
	"eventname":"Greg Taylor Presents Walish Gooshe",
	"eventdatetime":"Saturday August 23, 2008 at 7:00 PM",
	"eventdescription":"",
	"eventimage":"images/eventimages/DetailImage/01caa2f0-d3a3-4c34-8b98-1b85a88b65f6.jpeg",
	"eventcategory":"Fashion",
	"Venue":{
	"name":"Plays and Players Theater",
	"address1":"4509 Island Avenue",
	"address2":"",
	"city":"Philadelphia",
	"state":"PA",
	"zipcode":"19103"}
},
{
	"eventid":"AFF0B330-6598-48E4-A905-43B98677FF6",
	"eventname":"Little Red Riding Hood and Other Stories",
	"eventdatetime":"November 02, 2008 at 2:00 PM",
	"eventdescription":"",
	"eventimage":"partner/store/phillydotcom/images/feature4.jpg",
	"eventcategory":"Theatre",
	"Venue":{
	"name":"Emilie K. Asplundh Concert Hall",
	"address1":"700 S. High Street",
	"address2":"",
	"city":" West Chester",
	"state":"PA",
	"zipcode":"19383"}
}
];Ticketleap_FT.totalResult = 30;
//Ticketleap = Ticketleap_FT;

loadcssfile();

function loadcssfile(){
	var fileref=document.createElement("link");
	fileref.setAttribute("rel", "stylesheet");
	fileref.setAttribute("type", "text/css");
	fileref.setAttribute("href", css_file);
	if (typeof fileref!="undefined"){
		document.getElementsByTagName("head")[0].appendChild(fileref);
	}
}

function init () {


	buildSearchMenu();
	document.getElementById('TL_search_form').style.display="none";
	document.getElementById('TL_paginator').style.display="none";

	try {
		loadMyScripts();//loads prototype.js and datepickercontrol.js
		timeout = 60;//10 sec timeout for scripts to load
		timerId = null;//timerId not initialized
		loadWait();//wait for scripts to get loaded, poll for 2 variables they should initialize once loaded

	}
	catch (e) { alert("INIT! Dynamic Javascript load failed. Error name: " + e.name + "\n stack: " + e.stack + "\n line: " + e.lineNumber)};
}	



function loadMyScripts() {
	if ( !(document.createElement) ) {
		//browser does not support dynamic script loading, handle error;
		return;
	}
	//document.getElementById('TL_loading_progress').innerHTML = 'Loading'; //change progress div to loading, handle ini, inform user
	var jsMyNode = document.createElement('script');//new JS node to host prototype.js
	jsMyNode.type = 'text/javascript';
	jsMyNode.src = pathURL+'/Partner/addonScripts/prototype.js';
	jsMyNode.id = 'jsMyScript';//prototype.js id
	var newJsNode = null;//parent of the prototype.js script node
	var jsMyNodeCal = document.createElement('script');//new JS node to host datepickercontrol.js
	jsMyNodeCal.type = 'text/javascript';
	jsMyNodeCal.src = pathURL+'/Partner/addonScripts/datepickercontrol.js';
	jsMyNodeCal.id = 'jsMyScriptCal';//datepickercontrol.js id
	var newJsNodeCal = null;//parent of datepickercontrol.js script
	var headNode = document.getElementsByTagName('head')[0];//get head element
	if ( !!(headNode) )//once the element was acquired append two new nodes with 2 new JS scripts
		newJsNode = headNode.appendChild( jsMyNode );
	newJsNodeCal = headNode.appendChild( jsMyNodeCal );
	if ( !(newJsNode) || !(newJsNodeCal))//if not both scripts were loaded - handle error
		//alert( 'Program load failure' );
		return;
}

function loadTransport() {
	if ( !(document.createElement) ) {
		//browser does not support dynamic script loading, sad...
		return;
	}
	//document.getElementById('TL_loading_progress').innerHTML = 'Loading';
	var jsMyNodeTr = document.createElement('script');//create new node for transport.js script
	jsMyNodeTr.type = 'text/javascript';
	jsMyNodeTr.src = pathURL+'/Partner/addonScripts/transport.js';
	jsMyNodeTr.id = 'jsMyScriptTr';
	var newJsNodeTr = null;//parent node for transport.js
	var headNode = document.getElementsByTagName('head')[0];
	if ( !!(headNode) )
		newJsNodeTr = headNode.appendChild( jsMyNodeTr );//append new script
	if ( !(newJsNodeTr))//handle error
		//alert( 'Program load failure' );
		return;
}

function loadWaitTransport(){
	if ( !!( timerId ) ) {
		if ( timeout == 0 ) {//timeout occured, handle timeout
			//document.getElementById('progress').innerHTML = "Load failed.";
			//alert( "Program load timeout" );
			return;
		}
		if ( !!( this.myObj2 )) {//polling should be done, transport.js defined myObj2 variable
			//transport.js is loaded
			extendPrototype();
			checkAndLaunch(); 
			return;
		}
		timeout -= 1;//decrease timeout, wait and check again
	}
	//document.getElementById('TL_loading_progress').innerHTML += '.';//add dots to Loading..
	timerId2 = setTimeout( "loadWaitTransport()", 1000); //set timeout and invoke loadWaitTransport function after
	return;
}

function loadWait() {
	if ( !!( timerId ) ) {
		if ( timeout == 0 ) {//timeout, handle error
			//document.getElementById('progress').innerHTML = "Load failed.";
			//timeout, handle error
			return;
		}
		if ( !!( this.myObj ) && !!( this.myCal )) {
			//myObj comes from transport.js and myCal cariable comes from datepickercontrol.js
			//prototype and datepicker JS's are loaded, can load transport.js now
			loadTransport();
			loadWaitTransport();
			return;
		}
		timeout -= 1;//decrease timeout, wait and check again
	}
	//document.getElementById('TL_loading_progress').innerHTML += '.';//add dot to Loading...
	timerId = setTimeout( "loadWait()", 1000); //relaunch itself in 1 sec and poll
	return;
}


function buildPaginator(current, total){
	total = total;//change once the backend function is fixed
	curPage = current;
	totalPages = Math.ceil(total/events_per_page);
	$('TL_paginator').innerHTML = '';
	prev = current - 1;
	next = current + 1;
	if(current != 1){
		$('TL_paginator').innerHTML += "<a href=\"#\" onclick=\"curPage="+prev+";searchCall(0);return false;\">prev</a> ";
	}
	if(totalPages < events_per_page){
		for(i=1;i<=totalPages;i++){
			if(i == current){
				pageNum = '<b>'+i+'</b>';
			}
			else{
				pageNum = buildPagLink(i);
			}
			$('TL_paginator').innerHTML += pageNum+' ';
		}
	}
	else{
		if(current <= 3){
			if(current == 3){
				$('TL_paginator').innerHTML +=out = buildPagLink(1) + ' ' + buildPagLink(2) +'  <b>' + 3 + '</b> ' + buildPagLink(4);
			}
			else{
				for(i=1;i<=3;i++){
					if(i == current){
						pageNum = '<b>'+i+'</b>';
					}
					else{
						pageNum = buildPagLink(i);
					}
					$('TL_paginator').innerHTML += pageNum+' ';
				}
			}
			$('TL_paginator').innerHTML += ' ... '+buildPagLink(totalPages);
		}
		else if(current >= 3 && current <= (totalPages-3)){
			$('TL_paginator').innerHTML += buildPagLink(1)+' ... ';
			$('TL_paginator').innerHTML += buildPagLink(prev)+' <b>'+current+'</b> ' + buildPagLink(next);
			$('TL_paginator').innerHTML += ' ... '+buildPagLink(totalPages);
		}
		else{

			if(current == (totalPages-2)){
				$('TL_paginator').innerHTML += buildPagLink(1)+' ... ' + buildPagLink(prev) + ' <b>'+current+'</b> ' + 	PagLink(next) + ' ' + buildPagLink(totalPages);
			}
			else{
				$('TL_paginator').innerHTML += buildPagLink(1)+' ... ';
				for(i=totalPages-2;i<=totalPages;i++){
					if(i == current){
						pageNum = '<b>'+i+'</b>';
					}
					else{
						pageNum = buildPagLink(i);
					}
					$('TL_paginator').innerHTML += pageNum+' ';
				}
			}
		}
	}
	if(current != totalPages){
		$('TL_paginator').innerHTML += " <a href=\"#\" onclick=\"curPage="+next+";searchCall(0);return false;\">next</a>";
	}
	if(totalPages == 1 || totalPages == 0){
		$('TL_paginator').innerHTML = '';
	}
	ru = current*events_per_page;
	//alert(ru);
	if(ru > total){
		ru = total;
		rl = (current-1)*events_per_page+1;
		//rl = 1;
	}
	else{
		rl = (ru - events_per_page) + 1;
	}
	cnt_results = "<table width=\"100%\"><tr><td>";
	if(total == 0){
		cnt_results += "Showing <b>0 - 0</b> of <b>0</b> results";
	}
	else{
		cnt_results += "Showing <b>"+rl+" - "+ru+"</b> of <b>"+total+"</b> results";
	}
	cnt_results += "</td><td class=\"TL_link_home\"><a href=\"#\" onclick=\"$('TL_count_results').hide();quick_launch(Ticketleap_FT.events);$('TL_tmpBtn').value = 'Search';$('TL_tmpBtn').disabled = false;$('TLkey').value='';$('TLcat').selectedIndex=0;$('TLzip').value='';$('TLrange').value=5;return false;\">back to home</a></td></tr></table>";
	$('TL_count_results').innerHTML = cnt_results;
	if($('TL_count_results').style.display == 'none'){
		$('TL_count_results').show();
	}
	//alert($('TL_paginator').innerHTML);
}

function buildPagLink(num){//builds paginators links
	out = "<a href=\"#\" onclick=\"curPage="+num+";searchCall(0);return false;\">"+num+'</a>';
	return out;
}


function searchCall(parm){

	$('TL_placeholder').hide();
	if (curPage==1) {
		stRow=1;
	} else {
		stRow = ((curPage)*events_per_page)- (events_per_page-1);//start row for opensearchjson.aspx
	}

	$('TL_search_form').show();


	kwrds = $('TLkey').value;//acquire parameters
	if(parm != 0){
		//cat = '';
		$('TLcat').selectedIndex = parm;
		if(parm == searchAcademic){
			category = 'Academic';
		}
		else if(parm == searchArts){
			category = 'Arts';
		}
		else if(parm == searchBusiness){
			category = 'Business';
		}
		else if(parm == searchMusic){
			category = 'Music';
		}
		else if(parm == searchOther){
			category = 'Other';
		}
		else if(parm == searchSports){
			category = 'Sports';
		}
		//category = $('TLcat').value;
//		var ajax_call = pathURL+'/api/json_xml/opensearchjson.aspx?StartRow='+stRow+'&Count='+events_per_page+'&Category='+cat+'&Zipcode='+zipcode+'&Miles=50&StartDate='+begTL;
		//var ajax_call = pathURL+'/api/json_xml/opensearchjson.aspx?StartRow='+stRow+'&Count='+events_per_page+'&StartDate='+begTL+'&Category='+cat+'&Zipcode='+zipcode+'&Miles=50';
	}
	else{
		category = $('TLcat').value;
	}
	begTL = $('DPC_date1').value;
	endTL = $('DPC_date2').value;
	zipcode = $('TLzip').value;
	if((kwrds == '' && zipcode == '') || first_time == 1){
		zipcode = center_zipcode;
		milerange = '50';
	}
	else{
		milerange = $('TLrange').value;
	}
	if(zipcode == ''){
		milerange = '';
	}
	if(begTL == ''){
		now = new Date();
		m = now.getMonth() + 1;
		d = now.getDate();
		begTL = (m<10 ? "0"+m.toString() : m.toString())+'/'+(d<10 ? "0"+d.toString() : d.toString())+'/'+now.getFullYear().toString();
		//begTL = s;
	}
	if(first_time == 1){
		var ajax_call = pathURL+'/api/json_xml/top_events_by_zipcode.aspx?zipcode='+zipcode+'&event_number='+events_per_page;
	}
	else{
		var ajax_call = pathURL+'/api/json_xml/opensearchjson.aspx?Keywords='+kwrds+'&StartRow='+stRow+'&Count='+events_per_page+'&StartDate='+begTL+'&EndDate='+endTL+'&Category='+category+'&Zipcode='+zipcode+'&Miles='+milerange;
	}
//	$('TL_result').innerHTML = ajax_call;
//	return 1;
//	alert(0);
	var myAjax = new Ajax.Request(ajax_call,
			{
		method:'get',
		crossSite: true,
		onSuccess: function(transport){

		var response = transport.responseText;
		if (first_time == 0){
			//alert(response);
			if (typeof(Ticketleap) == 'undefined'){
				//Safari hack...polling...
				setTimeout( "searchCall(0)", 100);
			}
			else{
				buildMyEvents(Ticketleap.events);//build events
				buildPaginator(curPage,Ticketleap.totalResult);//for testing purposes here now, will be moved once total number of results acquired
				Ticketleap = undefined;
			}
		}
		else{

			//buildMyEvents_FT(Ticketleap_FT.events);
		}
		$('TL_loading_results').hide();
	},
	onException: function(req,e) {
		//alert(1);
		alert("The request had a fatal exception thrown.\n\n" + e);
		return true;
	},
	onCreate: function(transport){
		//alert(2);
		$('TL_loading_results').innerHTML = 'loading...';
		$('TL_loading_results').show();
	},
	onLoading: function(transport){
		//alert(3);
		$('TL_loading_results').innerHTML = 'loading...';
		$('TL_loading_results').show();
	},
	onFailure: function(transport){
		$('TL_loading_results').innerHTML = '<h2>Error occured.</h2>';
		//alert(transport.responsetext);
		$('TL_loading_results').show();
	}
			}); 
}


function buildMyEvents(arr){
	//build events once Ticketleap variable was formed via cross-domain AJAX call
	var events = "<table class=\"TL_events_table\">";
	i = 0;
	cellType = "even";
	for(i=0;i<arr.length;i++){
		if (i%2 == 1){
			cellType = "even";
		}
		else{
			cellType = "odd";
		}
		if(arr[i].eventimage.length < 1){
			image = 'http://www.ticketleap.com/partner/store/phillydotcom/widget_no_image.gif';
		}
		else{
		    //image = pathURL + "/" + arr[i].eventimage;
		    image = pathURL + "/Assets/" + arr[i].eventimage;
		}
		//if(arr[i].eventcategory.indexOf($('TLcat').value) != -1){
		events += "<tr class=\""+cellType+"\">"
		+		"<td class=\"TL_event_image\">"
		+			"<div style=\"background: #e3e3e3 url('" + image + "') 0px no-repeat\" class=\"TL_img_container\" onclick=\"window.open('"+pathURL+"/Member/event.aspx?event_id="+arr[i].eventid+"&ref_id="+partner_id+"\','_blank');\"></div>"
		+		"</td>";
		events += "<td class=\"TL_event_body\">"
			+			"<div class=\"TL_event_title\">"
			+				"<a href=\""+pathURL+"/Member/event.aspx?event_id="+arr[i].eventid+"&ref_id="+partner_id+"\" target=\"_blank\" class=\"TL_event_title_a\">" + arr[i].eventname + "</a>"
			+			"</div>"
			+				"<div class=\"TL_event_date_details\">" + arr[i].Venue.name + "<br/>"+arr[i].eventcategory+"</div>"
			+			"</td>"
			+			"<td class=\"TL_datetime_td\">"+arr[i].eventdatetime+"</td>";
		events += "<td class=\"TL_event_link\">"
			+			"<a href=\""+pathURL+"/Member/event.aspx?event_id="+arr[i].eventid+"&ref_id="+partner_id+"\" target=\"_blank\" >Buy Tickets</a>"
			+			"</td>"
			+		"</tr>";
		//}
	}
	events += "</table>";
	$('TL_result').innerHTML = events;
	$('TL_result').show();
	$('TL_paginator').show();
}

function buildMyEvents_FT(arr){
	//build events once Ticketleap variable was formed via cross-domain AJAX call
	var events = "";
	i = 0;
	//image = pathURL+"/"+arr[0].eventimage;
	image = pathURL + "/Assets/" + arr[0].eventimage;
	document.getElementById('TL_search_form').style.display="none";
	document.getElementById('TL_paginator').style.display="none";
	//!remove
	//image = 'https://ticketleap.com/images/eventimages/DetailImage/a1d74514-79f6-48b2-ab4b-a05aef5bf3b3.jpeg';
	var event_feature = ""
		+	"<div class=\"TL_result_table_FT\">"	
		+			"<h1 class='TL_spotlight_heading'>In The Spotlight</h1>"
		+	        "<div style=\"background: #320e00 url('" + image + "') no-repeat\" class=\"TL_image_holder\" onclick=\"window.open('"+pathURL+"/Member/event.aspx?event_id="+arr[0].eventid+"&ref_id="+partner_id+"\','_blank');\"></div>"
		+	        "<span class=\"TL_event_title\"><a href=\""+pathURL+"/Member/event.aspx?event_id="+arr[i].eventid+"&ref_id="+partner_id+"\"  class=\"TL_event_title_a\" target=\"_blank\" >" + arr[0].eventname + "</a></span>"
		+	        "<br/><span class=\"TL_event_info\">" + arr[0].eventdatetime + "<br/>" + arr[0].Venue.name
		+			" <br/>" + arr[0].eventcategory + "</span>"
		+	        "<br/><br/><span class=\"TL_event_description\">"+arr[0].eventdescription.substr(0,300)+"...</span>"
		+	        "<br/><br/><a href=\""+pathURL+"/Member/event.aspx?event_id="+arr[0].eventid+"&ref_id="+partner_id+"\" target=\"_blank\"  ><div class=\"TL_buy_tickets_big_link\"></div></a>"
		+	"</div>";
	events += "<table class=\"TL_result_table_FT\" width='100%'>";
	var pr = ""
		for(i=1;i<arr.length;i++){
			var cls1 = "TL_event_image_first";
			if (i!=1) {
				cls1 = "TL_event_image_alt";
			}

			image = pathURL+"/"+arr[i].eventimage;
			pr += 	""
				+			"<div style=\"background: #000 url('" + image + "') -1px no-repeat\" class=\"TL_img_container_alt\" onclick=\"window.open('"+pathURL+"/Member/event.aspx?event_id="+arr[i].eventid+"&ref_id="+partner_id+"\','_blank');\"></div>"
				+			"<br/><a href=\""+pathURL+"/Member/event.aspx?event_id="+arr[i].eventid+"&ref_id="+partner_id+"\"  class=\"TL_event_title_small_a\" target=\"_blank\" >" + arr[i].eventname + "</a>"
				+			"</span><span class=\"TL_event_description\">" + "<br/>" + arr[i].Venue.name +"<br/>"+ arr[i].eventdatetime + "<br/>"
				+			""+arr[i].eventcategory+"</span><br/><br/><a href=\""+pathURL+"/Member/event.aspx?event_id="+arr[i].eventid+"&ref_id="+partner_id+"\" class=\"TL_small_find_tickets_link\" target=\"_blank\">Buy Tickets &#187;</a>"
		}
	pr += ""
		events += pr;
	var left_side = ""
		//+	"<a href=\"http://www.ticketleap.com/vendor/signup.aspx?ref_id="+partner_id+"\" target=\"_blank\">"
		//+	"<div class=\"TL_sell_tickets_callout\" style=\"\">"
		//+	"</div>"
		//+	"</a>"
		+	pr
		+	"<form name=\"small_widget_submit\">"
		+	"<div class=\"TL_small_search_box\">"
		+	"<h2 style=\"font-size:12px;margin:3px 0 5px;\">Find An Event</h2>"
		+	   	"<table><tr><td><input type=\"text\" id=\"TLkey_FT\" value=\"\"></td>"
		+	  	"<td><input type=\"submit\" name=\"small_widget_submit\" value=\"Loading...\" class=\"TL_search_btn\" onclick=\"$('TLkey').value = $('TLkey_FT').value;curPage = 1;first_time = 0;$('TL_result').innerHTML='Loading...';searchCall(0);return false;\" id=\"TL_tmpBtn\" disabled=\"disabled\"></td>"
		+		"</tr></table>"
		+	   	"<a href=\"#\" onclick=\"$('TLkey').value = $('TLkey_FT').value;curPage = 1;searchCall(searchAcademic);first_time=0;return false;\">Academic</a>"
		+	   	" - <a href=\"#\" onclick=\"searchCall(searchArts);first_time=0;return false;\">Arts</a>"
		+	   	" - <a href=\"#\" onclick=\"searchCall(searchBusiness);first_time=0;return false;\">Business</a><br/>"
		+	  	"<a href=\"#\" onclick=\"curPage = 1;first_time = 0;searchCall(searchMusic);return false;\">Music</a>"
		+	   	" - <a href=\"#\" onclick=\"searchCall(searchOther);first_time=0;return false;\">Other</a>"
		+	  	" - <a href=\"#\" onclick=\"searchCall(searchSports);first_time=0;return false;\">Sports</a>"
		+	"</div>"
		+	"</div>"	
		+	"</form>";
	//+	pr;
	/*
	diff = events_per_page - arr.length;
	for(j=0;j<diff;j++){
		events += "<tr><td>&nbsp</td></tr>";
	}*/
	events += "</table>";

	var events_container = ""
		+	"<div class=\"TL_feature_container\">"
		+	"<table width='100%'>"
		+		"<tr>"
		+	        "<td width='50%' style='vertical-align:top;padding-right:35px'>"+ event_feature +"</td>"
		+	        "<td style='vertical-align:top;'>"+left_side+"</td>"
		+		"<tr>"
		//+		"<tr class=\"TL_widget_spacer\"><td colspan='2'>&nbsp;</td></tr>"
		//+		"<tr>"
		//+			"<td colspan='2'>"+events+"</td>"
		//+		"</tr>"
		+	"</table>"
		+	"</div>";
	document.getElementById('TL_result').innerHTML = events_container; //$('TL_result').innerHTML = events;
	document.getElementById('TL_result').style.display = ''; //$('TL_result').show();
}

function clearDateRange(){
	$('DPC_date1').value = '';
	$('DPC_date2').value = '';
}

function quick_launch(arr){
	check = document.getElementById('TL_result');
	if(check){
		//alert('in quick launch');
		$('TL_result').hide();
		$('TL_paginator').hide();
		$('TL_placeholder').show();
		// return 1;
	}

	//build events once Ticketleap variable was formed via cross-domain AJAX call
	var events = "";
	i = 0;
	//image = pathURL+"/"+arr[0].eventimage.replace("FeaturedImage","eventimages/detailimage");
	image = pathURL + "/" + arr[0].eventimage;
	//document.getElementById('TL_search_form').style.display="none";
	//document.getElementById('TL_paginator').style.display="none";
	//!remove
	//image = 'https://ticketleap.com/images/eventimages/DetailImage/a1d74514-79f6-48b2-ab4b-a05aef5bf3b3.jpeg';
	document.getElementById('TL_main_image').innerHTML = ""
		+ "<img style='border:4px solid #320e00;margin:10px 0;'  src='" + image + "' class=\"TL_image_holder\" onclick=\"window.open('"+pathURL+"/Member/event.aspx?event_id="+arr[0].eventid+"&ref_id="+partner_id+"\','_blank');\"/>";	
	//+	        "<div style=\"background: #320e00 url('" + image + "') no-repeat\" class=\"TL_image_holder\" onclick=\"window.open('"+pathURL+"/Member/event.aspx?event_id="+arr[0].eventid+"&ref_id="+partner_id+"\','_blank');\"></div>";
	document.getElementById('TL_main_description').innerHTML = ""
		+	        "<span class=\"TL_event_title\"><a href=\""+pathURL+"/Member/event.aspx?event_id="+arr[i].eventid+"&ref_id="+partner_id+"\"  class=\"TL_event_title_a\" target=\"_blank\" >" + arr[0].eventname + "</a></span>"
		+	        "<br/><span class=\"TL_event_info\">" + arr[0].eventdatetime + "<br/>" + arr[0].Venue.name
		+			" <br/>" + arr[0].eventcategory + "</span>"
		+	        "<br/><br/><span class=\"TL_event_description\">"+arr[0].eventdescription.substr(0,300)+"...</span>"
		+	        "<br/><br/><a href=\""+pathURL+"/Member/event.aspx?event_id="+arr[0].eventid+"&ref_id="+partner_id+"\" target=\"_blank\"  ><div class=\"TL_buy_tickets_big_link\"></div></a>";
	for(i=1;i<4;i++){
		var cls1 = "TL_event_image_first";
		if (i!=1) {
			cls1 = "TL_event_image_alt";
		}
		//BEGIN Trolley Works Section
		if(i==1){
			image = 'https://www.ticketleap.com/partner/76carriage.gif';
			image2 = 'https://www.ticketleap.com/partner/phillytours.gif';
			imagediv = 'TL_evt_'+i+'_image';
			descdiv = 'TL_evt_'+i+'_description';
			document.getElementById(imagediv).innerHTML = 	""
				+			"<div style=\"background: #000 url('" + image2 + "') -1px no-repeat\" class=\"TL_img_container_alt\" onclick=\"window.open('"+pathURL+"/Member/list_events.aspx?event_company_id=D123C7B2-7772-4191-85BA-71BB99FAA3B&ref_id="+partner_id+"\','_blank');\"></div>";
			document.getElementById(descdiv).innerHTML = 	""
				+			"<div style=\"background: #000 url('" + image + "') -1px no-repeat\" class=\"TL_img_container_alt_spot\" onclick=\"window.open('"+pathURL+"/Member/list_events.aspx?event_company_id=D123C7B2-7772-4191-85BA-71BB99FAA3B&ref_id="+partner_id+"\','_blank');\"></div>"
				+			"<a href=\""+pathURL+"/Member/list_events.aspx?event_company_id=D123C7B2-7772-4191-85BA-71BB99FAA3B&ref_id="+partner_id+"\"  class=\"TL_event_title_small_a\" target=\"_blank\" >Philadelphia Trolley Works & Big Bus</a>"
				+			"</span><br/>"
				+			"<a href=\""+pathURL+"/Member/list_events.aspx?event_company_id=D123C7B2-7772-4191-85BA-71BB99FAA3B&ref_id="+partner_id+"\" class=\"TL_small_find_tickets_link\" target=\"_blank\">Buy Tickets &#187;</a>";
		}
		//END Trollet Works section
		else{
		    //image = pathURL + "/" + arr[i].eventimage.replace("FeaturedImage", "eventimages/detailimage");
		    image = pathURL + "/" + arr[i].eventimage;
			imagediv = 'TL_evt_'+i+'_image';
			descdiv = 'TL_evt_'+i+'_description';
			document.getElementById(imagediv).innerHTML = 	""
				+			"<div style=\"background: #000 url('" + image + "') -1px no-repeat\" class=\"TL_img_container_alt\" onclick=\"window.open('"+pathURL+"/Member/event.aspx?event_id="+arr[i].eventid+"&ref_id="+partner_id+"\','_blank');\"></div>";
			document.getElementById(descdiv).innerHTML = 	""
				+			"<a href=\""+pathURL+"/Member/event.aspx?event_id="+arr[i].eventid+"&ref_id="+partner_id+"\"  class=\"TL_event_title_small_a\" target=\"_blank\" >" + arr[i].eventname + "</a>"
				+			"</span><span class=\"TL_event_description\">" + "<br/>" + arr[i].Venue.name +"<br/>"+ arr[i].eventdatetime + "<br/>"
				+			""+arr[i].eventcategory+"</span> - <a href=\""+pathURL+"/Member/event.aspx?event_id="+arr[i].eventid+"&ref_id="+partner_id+"\" class=\"TL_small_find_tickets_link\" target=\"_blank\">Buy Tickets &#187;</a>";
		}
	}



	//document.getElementById('TL_result').innerHTML = events_container; //$('TL_result').innerHTML = events;
	//document.getElementById('TL_result').style.display = ''; //$('TL_result').show();
	return 1;
}

function checkAndLaunch(){

	if ( !( this.myObj ) && !( this.myCal )) {//for some reason functions did not get loaded
		alert ( 'Called too early, there is no this.myObj!' );
		return;
	}
	//$('TL_loading_progress').hide();
	//$('TL_loading_progress').innerHTML = '';
	//buildSearchMenu();
	DatePickerControl.init();

	//UNCOMMENT!
	$('TL_tmpBtn').value = "Search";
	$('TL_tmpBtn').disabled = false;
	document.getElementById('TL_evt_categories').innerHTML = ""
		+	   	"<a href=\"#\" onclick=\"curPage = 1;first_time = 0;searchCall(searchAcademic);return false;\">Academic</a>"
		+	   	" - <a href=\"#\" onclick=\"curPage = 1;first_time = 0;searchCall(searchArts);return false;\">Arts</a>"
		+	   	" - <a href=\"#\" onclick=\"curPage = 1;first_time = 0;searchCall(searchBusiness);return false;\">Business</a><br/>"
		+	  	"<a href=\"#\" onclick=\"curPage = 1;first_time = 0;searchCall(searchMusic);return false;\">Music</a>"
		+	   	" - <a href=\"#\" onclick=\"curPage = 1;first_time = 0;searchCall(searchOther);return false;\">Other</a>"
		+	  	" - <a href=\"#\" onclick=\"curPage = 1;first_time = 0;searchCall(searchSports);return false;\">Sports</a>";
	//$('TLdate_row').hide();
	//$('TLdate_row2').hide();
	try {
		get_and_display_top_events();
	} catch (e) {
		alert(e.name);
	}

	return;
}

function get_and_display_top_events() {

	var ajax_call = pathURL+'/api/json_xml/top_events_by_zipcode.aspx?zipcode='+center_zipcode+'&event_number='+events_per_page+"&Miles=5";
	var myAjax = new Ajax.Request(ajax_call,
			{
		method:'get',
		crossSite: true,
		onSuccess: function(transport){

		var response = transport.responseText;


		if (typeof(Ticketleap) == 'undefined'){
			//Safari hack...polling...	
			setTimeout( "get_and_display_top_events()", 100);
		}
		else {		
			Ticketleap_FT.events = Ticketleap.events;
			quick_launch(Ticketleap.events);		
			Ticketleap = undefined;		
		}

	},
	onException: function(req,e) {
		alert("The request had a fatal exception thrown.\n\n" + e);
		return true;
	},
	onCreate: function(transport){
		$('TL_loading_results').innerHTML = 'loading...';
		$('TL_loading_results').show();
	},
	onLoading: function(transport){
		$('TL_loading_results').innerHTML = 'loading...';
		$('TL_loading_results').show();
	},
	onFailure: function(transport){
		$('TL_loading_results').innerHTML = '<h2>Error occured.</h2>';
		$('TL_loading_results').show();
	}
			}); 
}

//extends Prototype with transport.js already loaded
function extendPrototype(){
	Ajax.Request.prototype = Object.extend(Ajax.Request.prototype, {
		initialize: function(url, options) {
		this.options = {
				method:       'get',
				asynchronous: true,
				contentType:  'text/javascript',
				encoding:     'UTF-8',
				parameters:   '',
				evalJSON:     true,
				evalJS:       true
		};
		Object.extend(this.options, options || { });

		this.options.method = this.options.method.toLowerCase();

		if (Object.isString(this.options.parameters))
			this.options.parameters = this.options.parameters.toQueryParams();
		else if (Object.isHash(this.options.parameters))
			this.options.parameters = this.options.parameters.toObject();

		this.transport = (!this.options.crossSite) ? Ajax.getTransport() : new scriptTransport;
		this.options.asynchronous = (!this.options.crossSite) ? this.options.asynchronous : false;
		//turns off the timed onLoad executer
		this.transport.respondToReadyState = this.respondToReadyState.bind(this);
		this.request(url);
	}
	});
	//searchCall(0);
}

function toggleAdv(){//toggle advanced search row on and off
	$('TLdate_row').toggle();
	$('TLdate_row2').toggle();
}

function buildSearchMenu(){
	//builds search menu
	//var mainDiv = $('TL_main_wrapper');
	var mainDiv = document.getElementById('TL_main_wrapper');
	//mainDiv.innerHTML += "<div id=\"TL_events_header\" class=\"TL_events_header\">"+ search_title +"</div>";
	widget_title = '<img src="http://www.ticketleap.com/partner/store/phillydotcom/arrow_right_title.gif"/><span style="font-family:georgia;font-size:17px;font-style:italic;padding:0 5px;font-weight:bold;">Community Events</span> TICKETS TO LOCAL EVENTS IN PHILADELPHIA';

	mainDiv.innerHTML += "<div id=\"TL_community_events\" class=\"\"></div>";
	mainDiv.innerHTML += "<div id=\"TL_search_form\"  class=\"TL_search_form\">" 
		+ "<form autocomplete=\"off\">"
		+ "<table>"
		+	"<tr>"
		+		"<td class=\"TL_search_category\">Category:</td>"
		+		"<td class=\"TL_search_category\" width=\"80px\">Keyword: </td>"
		+		"<td class=\"TL_search_category\" width=\"80px\">Zipcode:</td>"
		+		"<td class=\"TL_search_category\" width=\"80px\">Miles:</td>"
		+		"<td class=\"TL_search_category\" width=\"80px\"><span id=\"TL_loading_results\"  class=\"TL_loading_results\"></span></td>"
		+	"</tr>"
		+	"<tr>"
		+		"<td class=\"TL_search_control\"><SELECT id =\"TLcat\"><OPTION VALUE=\"\">All<OPTION VALUE=\"Academic\">Academic<OPTION VALUE=\"Arts\">Arts<OPTION VALUE=\"Business\">Business<OPTION VALUE=\"Music\">Music<OPTION VALUE=\"Other\">Other<OPTION VALUE=\"Sports\">Sports</SELECT></td>"
		+		"<td class=\"TL_search_control\"><input type=\"text\" id=\"TLkey\" value=\"\"></td>"
		+		"<td class=\"TL_search_control\"><input type=\"text\" id=\"TLzip\" value=\"\"></td>"
		+		"<td class=\"TL_search_control\"><select id=\"TLrange\"><option value=\"5\">5</option><option value=\"25\">25</option><option value=\"50\">50</option><option value=\"100\">100</option></select></td>"
		+		"<td class=\"TL_search_btn_td\" align=\"left\"><input type=\"submit\" value=\"Search\" class=\"TL_search_btn\" onclick=\"curPage = 1;first_time = 0;searchCall(0);return false;\"></td>"

		+	"</tr>"

		+	"<tr id=\"TLdate_row\" style=\"display:none;\">"
		+		"<td class=\"TL_search_category\" width=\"80px\">Start Date:</td>"
		+		"<td class=\"TL_search_category\" width=\"80px\">End Date:</td>"
		+		"<td colspan=\"2\">&nbsp;</td></tr><tr id=\"TLdate_row2\" style=\"display:none;\">"
		+		"<td class=\"TL_search_control\"><span style=\"position: relative;\"><input type=\"text\" id=\"DPC_date1\" size=\"14\"></span></td>"
		+		"<td class=\"TL_search_control\"><span style=\"position: relative;\"><input type=\"text\" id=\"DPC_date2\" size=\"14\"></span></td>"
		+		"<td><a href=\"#\" onclick=\"clearDateRange();return false;\"><span class=\"TL_search_opt\">clear</span></a></td>"
		+	"</tr>";

	mainDiv.innerHTML += "</table></form></div>";
	mainDiv.innerHTML += "<div id=\"TL_count_results\" style=\"display:none;\"></div>";
	mainDiv.innerHTML += "<div id=\"TL_search_results_main\" class=\"TL_search_results_main\"><div id=\"TL_result\" class=\"TL_result\"></div><div id=\"TL_paginator\" class=\"TL_paginator\"></div>";  
	mainDiv.innerHTML += "<input type=\"hidden\" id=\"DPC_TODAY_TEXT\" value=\"today\"><input type=\"hidden\" id=\"DPC_BUTTON_TITLE\" value=\"Open calendar...\"><input type=\"hidden\" id=\"DPC_AUTO_SHOW\" value=\"true\"></form>";
	//mainDiv.innerHTML += "<div id=\"TL_powered_by\" class=\"TL_powered_by\">Having an Event? <a href=\"https://ticketleap.com/Vendor/Signup.aspx?ref_id="+partner_id+"\">Sell Tickets To Your Event</a> // <a href=\"https://ticketleap.com/Vendor/Signup.aspx?ref_id="+partner_id+"\">Event Registration</a> powered by TicketLeap</div>";

	//extendPrototype();//extends loaded prototype and transport.js
}



function trapError(error, url, line) {
	//traps error if window.onerror gets triggered
	//can try restarting itself or bring up a screen with failure info
	//alert("There was an error from '" + url + "' at line '" + line + "'.\n\n" + error);
	return true;
}

//window.onerror = trapError;
window.onload = init;
