function showLoading(placeElement) {
	dataDiv = jQuery(placeElement);
	loadingDiv = jQuery('#loading_logo');
	newDiv = jQuery(document.createElement('div'));
	
	dataDiv.css('opacity',0.4);
	var left = (dataDiv.width() / 2) - (loadingDiv.width() / 2);
	loadingDiv.css({zIndex: 1, textAlign: 'center', left: left});
	loadingDiv.show();
}
function hideLoading(placeElement) {
	jQuery('#loading_logo').hide();
	jQuery(placeElement).show();
	jQuery(placeElement).css('opacity',1);
}
function getEvents() {
	var req_data = arguments[0];
	var placeElement = arguments[1];
	showLoading(placeElement);
	jQuery.get('/atbs_ajax/events', req_data, function(data) {
		hideLoading(placeElement);
		placeData(data, placeElement);
		overridePaging(placeElement);
		jQuery('*:internal').click(function() { 
	        window.onbeforeunload = null;
	    });
	});
}
function getTickets(req_data, placeElement) {
	showLoading(placeElement);
	jQuery.get('/atbs_ajax/tix', req_data, function(data) {
		hideLoading(placeElement);
		placeData(data, placeElement);
		setupBuyLinks(placeElement);
		jQuery(placeElement + ' .header').click(function() {
			req_data.sort = gup(this.href, 'sort');
			req_data.dir = gup(this.href, 'dir');
			getTickets(req_data, placeElement);
			return false;
		});
		if (typeof(mapDontFloat) == 'undefined') {
			if (document.getElementById('ticket_list').offsetHeight < 700) document.getElementById('ticket_list').style.height = '700px';
			Float("seatingChart", "ticketsContainer").doFloat();
		}
	});
}
function placeData(data, placeElement) {
	jQuery(placeElement).html(data);
}
function overridePaging(placeElement) {
	jQuery(placeElement+" .paginator a").click(function() {
		getURL(jQuery(this).attr('href'), placeElement);
		return false;
	});
	jQuery(placeElement+" .list_view a").click(function() {
		$('#event_listings').show();
		$('#calendar').hide();
		return false;
	});
	jQuery(placeElement+" .calendar_view a").click(function() {
		$('#event_listings').hide();
		$('#calendar').show();
		getURL(jQuery(this).attr('href'), '#calendar');
		return false;
	});
	jQuery(placeElement+" .cal_link").click(function() {
		getURL(jQuery(this).attr('href'), '#calendar');
		return false;
	});
}
function changeHomeAway(sb) {
	var params = window.location.search.substr(1).split("&");
	var found = false;
	for (var i in params) {
		if (params[i].substr(0,4) == 'show') {
			params[i] = 'show='+sb.value;
			found = true;
			break;
		}
	}
	if (!found) params[params.length] = 'show='+sb.value;
	window.location = window.location.pathname+"?"+params.join('&');
}
function getURL(url, placeElement) {
	showLoading(placeElement);
	jQuery.get(url, function(data) {
		hideLoading(placeElement);
		placeData(data, placeElement);
		overridePaging(placeElement);
	});
}
function calendarChange(url) {
	getURL(url + '&Month='+$('#cal_month').val()+'&Year='+$('#cal_year').val(), '#calendar');
}
function gup(url, name) {
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( url );
  if( results == null )
    return "";
  else
    return results[1];
}
