// JavaScript Document

/*---------------------------------------------------*/
/*	Supporting functions for the Events Calendar
/*---------------------------------------------------*/
	var current_group = "";
	var current_month = 1;
	var current_year = 2008;
	var current_calendar = "event_calendar1";
	var initial_month = 1;
	var initial_year = 2008;
	
	var calendar_loader;

	/* reload calendar for current month/year and selected group  
	---------------------------------------------------------------------*/
	function dogroupsort(){
		ajaxloader(calendar_loader, true);
		var group = $("#category_select").val();
		$('#ajax_calendar').fadeOut();
		$('#ajax_events').fadeOut();
		$('#ajax_calendar').load('/eventlist_query.php', {'display':'calendar','group':group}, 
			function(){
				$(this).fadeIn();
				$('#ajax_events').load('/eventlist_query.php', {'display':'list','group':group}, 
					function(){
						$(this).fadeIn();
						ajaxloader(calendar_loader, false);
					});
				rewriteHREFs();
			});
		current_group = group;
		current_month = initial_month;
		current_year = initial_year;
		current_calendar = "event_calendar1";
	}
	
	
	/* show/hide the details of the specified event  
	---------------------------------------------------------------------*/
	function toggleDetails(id, url){
		var obj = document.getElementById(id);
		if(obj.toggle != "undefined" && obj.toggle == "down"){
			$('#'+id+' .event_details').slideUp("medium");
			obj.toggle = "up";
		}else{
			var divs = obj.getElementsByTagName("div");
			var detailsDiv = divs[1];
			$('#'+id+' .event_details').slideDown();
			if(detailsDiv.innerHTML == ""){
				ajaxloader(detailsDiv, true);
				var tmp = url.split("/");
				var slug = tmp[tmp.length - 1];
				$('#'+id+' .event_details').load("/eventlist_query.php", {'display':'detail','slug':slug}, 
					function(){
						ajaxloader(detailsDiv, false);
						TB_init();
					});
			}
			obj.toggle = "down";
		}
	}
	
	/* show/hide the AJAX loader graphic  
	---------------------------------------------------------------------*/
	function ajaxloader(container, show){
		var loader = document.getElementById("ajax-loader");
		try{
			container.removeChild(loader);
		}catch(e){}
		if(show){
			loader = document.createElement("div");
			loader.setAttribute("id", "ajax-loader");
			loader.innerHTML = '<img src="/images/ajax-loader.gif" alt="Loading..." />';
			container.appendChild(loader);
		}
	}
	
	/* overwrite calendar navigation and linked-day hrefs  
	---------------------------------------------------------------------*/
	function rewriteHREFs(){
		var ajaxcal = document.getElementById("ajax_calendar");
		var months = ajaxcal.getElementsByTagName("div");
		for(var i=0; i<months.length; i++){
			var month = months[i];
			var spans = month.getElementsByTagName("span");
			for(var s=0; s<spans.length; s++){
				var span = spans[s];
				if(span.className == "calendar-prev"){
					span.id = ""+(i+1);
					span.onclick = function(){ 
						var s = this.id;
						viewcalendar("event_calendar"+(parseInt(s)-1), 'prev');
					};
				}
				else if(span.className == "calendar-next"){
					span.id = ""+(i+1);
					span.onclick = function(){ 
						var s = this.id;
						viewcalendar("event_calendar"+(parseInt(s)+1), 'next');
					};
				}
			}
			
			var links = month.getElementsByTagName("a");
			for(var l=0; l<links.length; l++){
				var a = links[l];
				var href = a.href;
				var tmp = href.split("/");
				var y = tmp[tmp.length - 4];
				var m = tmp[tmp.length - 3];
				var d = tmp[tmp.length - 2];
				a.href = "javascript:viewevents("+y+","+m+","+d+");";
			}
		}
	}
	
	/* view specified calendar  
	---------------------------------------------------------------------*/
	function viewcalendar(id, direction){
		var cal = document.getElementById(current_calendar);
		cal.style.display = "none";
		$('#'+id).fadeIn();
		if(direction == 'prev'){
			if(current_month == 1){
				current_month = 12;
				current_year--;
			}else{
				current_month--;
			}
			
		}else{
			if(current_month == 12){
				current_month = 1;
				current_year++;
			}else{
				current_month++;	
			}
		}
		current_calendar = id;
		$('#ajax_events').fadeOut();
		ajaxloader(calendar_loader, true);
		$('#ajax_events').load('/eventlist_query.php', {'display':'list','group':current_group,'y':current_year,'m':current_month}, 
			function(){
				$(this).fadeIn();
				ajaxloader(calendar_loader, false);
			});
	}
	
	/* view all events for the specified day  
	---------------------------------------------------------------------*/
	function viewevents(y,m,d){
		ajaxloader(calendar_loader, true);
		$('#ajax_events').fadeOut();
		$('#ajax_events').load('/eventlist_query.php', {'display':'list','group':current_group,'y':y,'m':m,'d':d}, 
			function(){
				$(this).fadeIn();
				ajaxloader(calendar_loader, false);
				$.scrollTo('#ajax_events', 1000);
			});
	}
	
	/* fix for 'protected' Email javascript response text  
	---------------------------------------------------------------------*/
	function insertEmail(id, alink){
		var elem = document.getElementById(id);
		elem.innerHTML = alink;
	}

