$(document).ready(prepExternalLinks);
$(document).ready(initHomeRotator);
$(document).ready(initMainSubNavigation);
$(document).ready(initUpcomingRotator);
$(document).ready(initTicker);
$(document).ready(initCalendar);
$(document).ready(initSponsorOverlays);
$(document).ready(initDonationForm);

function initDonationForm() {
	if($("#frmDonation").length > 0) {
		$("#frmDonation").submit(function(event) {
			$("#donationFormSubmit").attr('disabled', 'disabled');
		});
	}
}

function initSponsorOverlays() {
	if($("#allSponsors").length) {
		$("#allSponsors a.more").click(function(evt) {
			var div = $(this).parent().find("div.more")[0];
			$("div.more").css("display", "none");
			$(div).css("display", "block");
						
			return false;
		});
		
		$("#allSponsors div.more").click(function() {
			return false;
		});
		
		$('body').click(function() {
			$("div.more").css("display", "none");
		});
	}
}

var gmap;
var geocoder;
   
// Call this function when the page has been loaded
function gmapCallback() {
	gmap = new google.maps.Map2(document.getElementById("map"));
	geocoder = new google.maps.ClientGeocoder();
	showAddress("300-350 S. Grand Avenue, Los Angeles, CA 90071");
}

function showAddress(address) {
  geocoder.getLatLng(
	address,
	function(point) {
	  if (!point) {
		//alert(address + " not found");
	  } else {
		gmap.setCenter(point, 17);
		
		// Create our "cafe" marker icon
		var musicIcon = new GIcon();
		musicIcon.image = "http://chart.apis.google.com/chart?chst=d_map_pin_icon&chld=music|bb5d16";
		musicIcon.shadow = "http://chart.apis.google.com/chart?chst=d_map_pin_shadow";
		musicIcon.iconSize = new GSize(24, 40);
		musicIcon.shadowSize = new GSize(44, 40);
		musicIcon.iconAnchor = new GPoint(24, 40);
		musicIcon.infoWindowAnchor = new GPoint(20, 2);
		// Set up our GMarkerOptions object literal
		markerOptions = { icon:musicIcon };

		
		var marker = new GMarker(point, markerOptions);
		
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml("Grand Performances<br>" + address);
		});
		
		gmap.addOverlay(marker);
		gmap.addControl(new GLargeMapControl());
		marker.openInfoWindowHtml("Grand Performances<br>" + address);
	  }
	}
  );
}

function initCalendar() {
	if($("#home-calendar").length) {
		$("#home-calendar-previous").click(onCalendarNavMonth);
		$("#home-calendar-next").click(onCalendarNavMonth);		
		$("#home-calendar-table a").click(onCalendarNavDay);
	}
}

function onCalendarNavDay(event) {
	event.preventDefault();	
	$('#home-calendar-table td').removeClass('today');
	$(this).parent().addClass('today');

	calendarLoadDay(getQueryString($(this).attr('href')));
}

function onCalendarNavMonth(event) {
	event.preventDefault();	
	$(this).unbind('click');
	$('#home-calendar-day').html('');
	calendarLoadMonth(getQueryString($(this).attr('href')));
}

function getQueryString(url) {
	var urlParts = url.split('?');
	return urlParts[1];
}

function getParam(name, loc) {
  name = name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");
  var regexS = "[\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( loc );
  if( results == null )
    return "";
  else
    return results[1];
}

var calendarDayLoad;

function calendarLoadDay(qs) {
	if(calendarDayLoad) calendarDayLoad.abort();
	calendarDayLoad = $.ajax({
		url: '/includes/home-calendar-day?' + qs,
			success: function(data) {				
				$('#home-calendar-day').html(data);
			}
	});
}

function calendarLoadMonth(qs) {
	$.ajax({
		url: '/includes/home-calendar?' + qs,
			success: function(data) {				
				$('#home-calendar-top').html(data);				
				
				initCalendar();
				if(replaceHeader) {
					replaceHeader($('#home-calendar h5')[0]);
				}
				$('#home-calendar-table td.today a').click();
			}
	});
	calendarLoadDay(qs);
}

function initHomeRotator() {
	$("div#home-rotator img").hide().last().show();

	setInterval("rotateHomeImage(1000)", 5000);
}

function rotateHomeImage(fadeDuration) {
	$("div#home-rotator img:visible").fadeOut(fadeDuration);
	
	if($("div#home-rotator img:visible").next().fadeIn(fadeDuration).length == 0) {
		$("div#home-rotator img:first").fadeIn(fadeDuration);
	}
}

function initMainSubNavigation() {
	$("#main-navigation > li").mouseenter(function() {
		if($(this).find("ul.subnav").animate({height: "toggle"}, 100).length) {
			$(this).find("> a").addClass("open");		
		}
	});
	$("#main-navigation > li").mouseleave(function() {
		$(this).find("> a").removeClass("open");
		$(this).find("ul.subnav").animate({height: "toggle"}, 100);
	});
}

function initUpcomingRotator() {
	$("#home-upcoming div.rollovers a.rollover").mouseenter(function() {		
		//$("#home-upcoming div.preview img").attr("src", $(this).attr("rel"));
		
		if(!$(this).hasClass("active")) {
			$("#home-upcoming div.rollovers a.rollover").removeClass("active");
			$(this).addClass("active");
			$("#home-upcoming div.preview img:visible").fadeOut(250);
			$("#home-upcoming div.preview img[src*=" + $(this).attr("rel") + "]").fadeIn(250);		
		}
	});
	
	$("#home-upcoming div.preview img").hide().first().show();
}

function initTicker() {
	$("#news-ticker ul").liScroll();
}

function prepExternalLinks() {
	$("a[rel='external']").each(function() {
		$(this).attr("target", "_blank");
	});
}