/* Menu Rollover Code */
$(function(){
	
	var active = $('#menu LI.over');
	$('#menu LI').hover(function(){
		$(this).addClass('over').siblings().removeClass('over');
	},function(){
		$(this).removeClass('over');
	});
	$('#menu').hover(function(){}, function(){
			active.addClass('over');
	});
	
});


/* fleXcroll plugin */
(function($){
	var instanceCount = 0;
	$.fn.fleXcroll = function(){
		return this.each(function(){
			if (!this.id) {
				this.id = '_flexcroll_'+(instanceCount++);
			}
			CSBfleXcroll(this.id);
		});
	};
})(jQuery);

/**
 * Add default "temporary" text to inputs
 * Courtesy of http://dabrook.org/blog/articles/input-field-hints-plugin-for-jquery/
 */
jQuery.fn.inputFieldText = function(string, hintClass) {
  this.each(function() {
      $(this).addClass(hintClass).filter(function(){
      	return ($(this).val() == '' || $(this).val() == string);
      }).val(string);
      $(this).focus(function(){
        if ($(this).val() == string){
          $(this).removeClass(hintClass).val('');
        }
      });
      $(this).blur(function(){
        if ($(this).val() == ''){
          $(this).addClass(hintClass).val(string);
        }
      });
  });
};


(function($){
	var docTitle = document.title;
	$.fn.swfaddressify = function(options){
		return this.click(function(){
			$.address.value($.adzUrlPath($(this).attr('href')));
			$.address.title(docTitle);
			return false;
		});
	};
	$.adzUrlPath = function(url) {
		if (url.indexOf('http') === 0) {
			return url.substr(url.indexOf('/',7));
		} else {
			return url;
		}
	};
})(jQuery);


$(function(){
	
	$('#tfSiteSearch').inputFieldText('Site Search', 'hint');
	
	$.ajaxSetup({cache:false});
	
	$('.customscroll').fleXcroll();
	$('.event_description P:first').css('font-weight', 'bold'); // the things I do for IE 6 :)
	
	// ajaxify search results
	var selector = '#searchResults .sortHeaders A, #searchResults .pagingcontrol A';
	$(selector).swfaddressify();
	var alreadyLoaded = false;
	$.address.change(function(event){
		var url;
		if (event.value == '/') {
			if (!alreadyLoaded) {
				return;
			}
			url = window.location.pathname;
		} else {
			url = event.value;
		}
		alreadyLoaded = true;
		$('#searchResultsSpinner').show();
		$.scrollTo('#eventlisting');
		$('#searchResults').load(url, null, function(){
			$('#searchResultsSpinner').hide();
			$(selector).swfaddressify();
		});
	});
	
	
	/* ticket packages */
	if ($('#ticketpackages').height() > 100) {
		$('#ticketpackagescontrol').html('<a id="TicketPackagesShow" href="#" class="expandbutton" style="display:block;">+ SHOW</a><a id="TicketPackagesHide" href="#" class="expandbutton" style="display:none;">- HIDE</a>');
		$('#TicketPackagesShow').click(function(){
			$('#ticketpackages').show();
			$(this).hide().next().show();
			return false;
		});
		$('#TicketPackagesHide').click(function(){
			$('#ticketpackages').hide();
			$(this).hide().prev().show();
			return false;
		});
		$('#ticketpackages').hide();
	}
		
});

/* hookup hero images */
$(function(){
	var $current = $('#hero A:first');
	function show($item) {
		if ($item.length == 0) return false;
		if (!$item.find('IMG').length) {
			$item.append($current.find('IMG').clone().attr('src', $item[0].className));
		}
		$current.css('z-index', 1);
		$item.css('z-index', 2);
		$current = $item;
	}
	function updateButtons(){
		$('#hero-control .prev').css('opacity', ($current.prev().length == 0 ? 0.3 : 1));
		$('#hero-control .next').css('opacity', ($current.next().length == 0 ? 0.3 : 1));
	}
	$('#hero-control .next').click(function(){
		show($current.next());
		updateButtons();
		return false;
	});
	$('#hero-control .prev').click(function(){
		show($current.prev());
		updateButtons();
		return false;
	});
	updateButtons();
});




/* open external & pdf links in a new window */
$(function(){
	$('A, AREA').filter(function(){
		return (!this.target && ((this.href.match(/\:\/\//) && this.href.indexOf(window.location.hostname) == -1) || this.href.match(/\.pdf$/i)));
	}).attr('target', '_blank');
});

/* prevent flicker on menu images in IE */
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}