function ajaxCalendar() {
	var target = $(this).attr('href');
	target = target.replace('calendar','ajax_calendar/'+$('body').attr('class'));
	$('#calendar').load(target,'',calendarLinks);
	return false;
}

function calendarLinks() {
	if($('a.calNav').size() > 0) {
		$('a.calNav').click(ajaxCalendar);
	}
	toolTips();
}

function toolTips() {
	if($('td.events a').size() > 0) {
		$('td.events a').tooltip({
			track: true, 
			delay: 0,
			showBody: ' | ',
			showURL: false,
			opacity: 0.5
		});		
	}
	if($('td.today a').size() > 0) {
		$('td.today a').tooltip({
			track: true, 
			delay: 0,
			showBody: ' | ',
			showURL: false,
			opacity: 0.5
		});		
	}}

function toggleEventsBlocks(){
	$('.eventsBlockNav li a').removeClass('active');
	$(this).attr('class','active');
	var target = $(this).attr('href');
	$('.eventsBlock:visible').slideUp('normal',function(){
		$(target).slideDown();
	});
	$(this).blur();
	return false;	
}

function multiEvents() {
	if($('.eventsBlock').size() > 1) {
		var locations = new Array();
		$('.eventsBlock h3.locationName').each(function(){
			locations.push($(this).text());
			$(this).hide();
		});

		var eventsBlockNav = '<ul class="eventsBlockNav">';

		$.each(locations,function(){
			eventsBlockNav+='<li><a href="#events_'+this.toLowerCase().replace(/ /g,'')+'">'+this+'</a></li>';
		});
		eventsBlockNav+='</ul>';
		
		$('.eventsBlock:first').before(eventsBlockNav);

		$('.eventsBlockNav li a').live('click',toggleEventsBlocks);

		$('p#eventsBlockIntro').show();

		$('.eventsBlock').hide();
		if($('.eventsBlock.default').size() > 0) {
			$('.eventsBlock.default').show();
		} else {
			$('.eventsBlock:first').show();
		}
		
		var activeBlock = $('.eventsBlock:visible').attr('id')
		$('.eventsBlockNav li a[href=#'+activeBlock+']').addClass('active');
	}	
}

function openNewWindow(){
  var links = $('.new-window');
  if(links.length > 0){
    links.bind('click', function(){
      window.open(this.href);
      return false;
    });
  }
}

function galleryInit(){
    if($('#gallery').size() > 0){
	// gallery_data is a global JS object, inlined in the HTML
	// gallery_data : { 
	//   folder : String, 
	//   target_id : String, 
	//   source_id : String, 
	//   class_caption : String,
	//   class_selected : String, 
	//   class_zoomable : String 
  // }
	var gd = gallery_data;

	var images = $('#' + gd.source_id + ' img.' + gd.class_zoomable);
	// when clicked on, an image calls zoomImage to:
	// - displays a big version of itself (found in gallery_data.folder) in container with id: gallery_data.target_id
	// - has its css class set to gallery_data.selected
	function zoomImage(i,elt){
	    // var img_name =  elt.src.match(/[^\/]*$/)[0]
	    //console.log(elt);
	    $(elt).bind('click',function(e){
		// display big image
		var big_src = elt.src.replace(/\d+x\d+/, 'source');
		$('#' + gd.target_id).hide().html('<img src="' + big_src  + '" alt="' + elt.alt + '" />').fadeIn();
		// display caption (caption is a sibling of target_id)
		var cap = $('#' + gd.target_id).siblings('.' + gd.class_caption);
		cap.html(elt.alt);
		//console.log(cap, elt.alt);
		// sets CSS classes		
		updateEltsClass(elt);
		// prevent following the link clicked
		return false;
	    });

	    function updateEltsClass(selected_elt){
		images.filter(function(){ return this !== selected_elt; }).removeClass(gd.class_selected);
		$(selected_elt).addClass(gd.class_selected);
	    }
	}

	// Loop through the images in container with id: gallery_data.source_id and attach onclick handlers
	images.each(zoomImage);
	// "click" on the first image
	images.eq(0).trigger('click');

    }
}

function advancedSearch() {
	$('form#advancedSearch input:checkbox[name="types[]"]').bind('click',function(){
		if($(this).val() != 'all' && $(this).attr('checked') == true){
			if (
				$('form#advancedSearch input:checkbox#types_pages').attr('checked') == true  &&
				$('form#advancedSearch input:checkbox#types_events').attr('checked') == true  &&
				$('form#advancedSearch input:checkbox#types_releases').attr('checked') == true
			){
				$('form#advancedSearch input:checkbox#types_all').attr('checked',true);
			} else {
			$('form#advancedSearch input:checkbox#types_all').attr('checked',false);
			}
		} else if($(this).val() == 'all' && $(this).attr('checked') == true) {
			$('form#advancedSearch input:checkbox#types_all').attr('checked',true);
		}
	});
}


// Run after the DOM has loaded
$(function() {
	calendarLinks();

	$('.hitArea').hover(function(){
		$(this).css('cursor','pointer');
	},function(){});
	$('.hitArea').click(function(){
		var hitlink = '';
		if(hitlink = $(this).find('a.hitLink:first').attr('href')){
			window.location = hitlink;
		}
		else{
			window.location = $(this).find('a:first').attr('href')
		}
	});

    //Image gallery Initialization
    galleryInit();
    
    //new window links
    openNewWindow();

	multiEvents();
	
	//advancedSearch();
});