/* ============= VARIABLE DECLARATIONS ================ */
var homepage = {};

homepage.overlays = [];

/* ============= SETUP AND EVENT ATTACHMENT ================ */
$(document).ready(function () {
	$("#blurb-close").hover(function(){
		$(this).attr('src', 'images/close_over.gif');
	},
	function(){
		$(this).attr('src', 'images/close.gif');
	});
	
	$("#blurb-close").click(function(){
		$('.blurb').slideUp(200);
	});
	
	$("#grow-bar").hover(function(){
		$(this).css("background-color","#71b52f");
		;
	},
	function(){
		$(this).css("background-color","#ccc");
	});
	
	$("#search-form").submit(function(e){
		
		if ($(".search-terms").val() == 'name or description'){
			$(".search-terms").val('');
		}
		
		if ($(".search-zip").val() == 'zip code'){
			$(".search-zip").val('');
		}
		
		if ($("#date1").val() == 'start date'){
			$("#date1").val('');
		}
		
		if ($("#date2").val() == 'end date'){
			$("#date2").val('');
		}
		
		if ($("#venue").val() == 'venue name'){
			$("#venue").val('');
		}
		
		if ($(".search-terms").val() == '' && $(".search-zip").val() == '' && $("#date1").val() == '' && $("#date2").val() == '' && $("#venue").val() == ''){
			alert("Please provide search criteria.");
			return false;
		}
		
		return true;
	});
	
	$("#grow-bar").click(function(){
		if ($("#more-search").is(":hidden")){
			$("#more-search").slideDown(200, function(){
				$("#search-toggle").attr("src", "images/arrow_up.gif");
			});
		}
		else{
			$("#more-search").slideUp(200, function(){
				$("#search-toggle").attr("src", "images/arrow_down.gif");
			});
		}
	});
	
	$('.original').one("click", function(){
		$(this).val('').removeClass('original');
	});
	
	$('#date1').datepicker();
	$('#date2').datepicker();
	
	$(".category-checkbox").click(function(e){
		if ($(this).attr('checked')){
			if ($(".all-checkbox").attr('checked')){
				map.clearOverlays();
				$("#events-list ul").empty();
				$(".all-checkbox").removeAttr('checked');
			}
			
			//add all events of this category to the map
			for (var ii=0;ii<events.length;ii++){
				if (events[ii][0].topCategoryId == $(this).val()){
			    	point = new GLatLng(events[ii][0].latitude, events[ii][0].longitude);
					
					// Set up our GMarkerOptions object
			    	var markerOptions = { 
			    		title: events[ii][0].name
			    	};
			    	
			    	var eventId = events[ii][0].id;
					var eventName = events[ii][0].name;
					var eventVenue = events[ii][0].venue;
					var eventSchedule = events[ii][0].schedule;
					
					var marker = createMarker(point, markerOptions, eventId, eventName, eventVenue, eventSchedule);
			    	map.addOverlay(marker);
			    	marker.category = events[ii][0].topCategoryId;
			    	marker.eventId = events[ii][0].id;
			    	homepage.overlays.push(marker);
			    	
			    	$("#events-list ul").append("<li class='"+marker.category+"'><span class='hidden eventId'>"+events[ii][0].id+"</span><strong>"+eventName+"</strong> at "+eventVenue+"<br/>" + eventSchedule + "</li>");
				}
			}
		}
		else{
			//remove all events of this category from the map
			for (var x = 0; x < homepage.overlays.length; x++){
				var overlay = homepage.overlays[x];
				if (overlay.category == $(this).val()){
					map.removeOverlay(overlay);
				}
			}

			console.log($("#events-list ul li").remove("."+$(this).val()));
		}
	});
	
	$(".all-checkbox").click(function(e){
		$(".category-checkbox").removeAttr('checked');
		$("#events-list ul").empty();
		for (var ii=0;ii<events.length;ii++){
	    	point = new GLatLng(events[ii][0].latitude, events[ii][0].longitude);
			
			// Set up our GMarkerOptions object
	    	var markerOptions = { 
	    		title: events[ii][0].name
	    	};
	    	
	    	var eventId = events[ii][0].id;
			var eventName = events[ii][0].name;
			var eventVenue = events[ii][0].venue;
			var eventSchedule = events[ii][0].schedule;
			
			var category = events[ii][0].topCategoryId;
			
			var marker = createMarker(point, markerOptions, eventId, eventName, eventVenue, eventSchedule);
			marker.eventId = events[ii][0].id;

	    	map.addOverlay(marker);
	    	$("#events-list ul").append("<li class='"+category+"'><span class='hidden eventId'>"+events[ii][0].id+"</span><strong>"+eventName+"</strong> at "+eventVenue+"<br/>" + eventSchedule + "</li>");
		}
	});
	
	$("#change-location-link").click(function(e){
		$(this).replaceWith("<div class='zip-form small-text left'><form method='GET' action='' name='zip-form'>Enter ZIP: <input type='text' size=6 name='zipcode' class='small-text'/> <input type='submit' value='Change' class='small-text'/></form></div>");
	});
	
	$("#events-list ul li").live('click', function(e){
		for (var x = 0; x < markers.length; x++){
			if (markers[x].eventId == $("span", this).text()){
				GEvent.trigger(markers[x], 'click');
			}
		}
	});
});