// Global variables
var first_event = true;
var useSifr = true; // turn sifr on/off globally
var gotham_book = { src: www_root + 'swf/gotham-book.swf'};
var mackan = { src: www_root + 'swf/mackan.swf'};
var tiza = { src: www_root + 'swf/tiza.swf'};
var mr_bubble_font = { src: www_root + 'swf/mr-bubble-font.swf'};

var addthis_config = {ui_click: true};

if (useSifr)
{
	sIFR.activate(gotham_book);
	sIFR.activate(mackan);
	sIFR.activate(tiza);
	sIFR.activate(mr_bubble_font);
}

// Prevent errors if Firebug is not installed
if (window.console === undefined)
{
	window.console = { log: function(){} };
}

// Bind events when DOM is loaded
$(document).ready(function()
{
	// IE6 support for dropdown
	$('#nav li').hover(function(){
		$(this).addClass('hover');
	}, function(){
		$(this).removeClass('hover');
	});
	
	if (useSifr)
	{
		sifrReplace();
	}
	
	$('#feature_left ul.tabs a').click(function(ev){
		var tab = $(this).attr('href');
		$('.tab:visible').hide();
		$(tab).show();
		$('ul.tabs a.selected').removeClass('selected');
		$(this).addClass('selected');
	
		return false;
	});
	
	// Setup dropdown
	$('.dropdown').dropdown();
	
	// Setup star ratings
	$('.rating').rating();
	
	// Setup carousels
	$('.carousel').carousel({padding: 5});
	$('#other_books').carousel({horizontal: false});
	
	// Setup calendars
	if ($('#event_calendar').length > 0)
	{
		current_date = current_date.split('-');
		date = new Date(current_date[0], current_date[1] - 1, current_date[2]);
		$('#event_calendar').datepicker({onSelect: didChooseDate, defaultDate: date, onChangeMonthYear: didChangeMonth, changeFirstDay: false, prevText: '&lsaquo;', nextText: '&rsaquo;', dayNamesMin: ['Sun', 'Mon', 'Tues', 'Wed', 'Thu', 'Fri', 'Sat']});
	}
	
	$('#calendar').datepicker({onSelect: didChooseDateMini, changeFirstDay: false, prevText: '&lsaquo;', nextText: '&rsaquo;', dayNamesMin: ['S', 'M', 'T', 'W', 'T', 'F', 'S']});
	
	$('#featured_events_tabs a').click(switchFeaturedEvents);
	
	$('#search_option').click(function()
	{
		$('#search_option').toggleClass('website');
		if($('#search_option').hasClass('website'))
		{
			$('#search_form').attr('action', 'http://www.cecil.ebranch.info/website/search/');
			$('#q').attr('name', 'query');
			$('#search_form').removeAttr('target');
		}
		else
		{
			$('#search_form').attr('action', 'http://ceco.sirsi.net/uhtbin/cgisirsi/0/ELKTON/0/5?searchdata1=');
			$('#q').attr('name', 'searchdata1');
			$('#search_form').attr('target', '_blank');
		}
		
		return false;
	});
	
	$('#event_months a').click(function()
	{
		var current = $('#event_months a.selected').removeClass('selected').attr('rel');
		var changed = $(this).addClass('selected').attr('rel');
		var diff = changed - current;

		if (diff > 4)
		{
			diff = diff - 12;
		}
		else if (diff < -4)
		{
			diff = 12 + diff;
		}
		
		$.datepicker._adjustDate('#event_calendar', diff, 'M');

		return false;
	});
	
	// Slide toggle For Magazines and Newspapers
	$('.magazines_and_newspapers').find('dd').hide().end().find('dt a').click(function() {
	  $(this).parent().next().slideToggle();
		
		return false;
	});
	
	// Setup calendar home page
	$("#feature #events a").click(function(ev) {
		ev.preventDefault();
		var date = $(this).attr("name");
		$("#feature #events a").removeClass("selected");
		$(this).addClass("selected");
		$("#featured_event").load("http://www.cecil.ebranch.info/modules/events/get-homepage-date.php?date=" + date);
		
		return false;
	});
	
	$("#feature_right .next").click(function(ev) {
		ev.preventDefault();
		var date = $(this).attr("name");
		$("#events").load("http://www.cecil.ebranch.info/modules/events/load-date-set.php?date=" + date);
		$("#feature_right .previous").attr("name",parseInt(date) - (7*24*60*60));
		$(this).attr("name",parseInt(date) + (7*24*60*60));
		
		return false;
	});
	
	$("#feature_right .previous").click(function(ev) {
		ev.preventDefault();
		var date = $(this).attr("name");
		$("#events").load("http://www.cecil.ebranch.info/modules/events/load-date-set.php?date=" + date);
		$("#feature_right .next").attr("name",parseInt(date) + (7*24*60*60));
		$(this).attr("name", parseInt(date) - (7*24*60*60));
		
		return false;
	});
	
	// Homepage Books Scroller
	$("#feature_carousel .tabs a").click(function(ev) {
		ev.preventDefault();
		var tab = $(this).attr('href');
		$("#feature_carousel .tabs a.selected").removeClass("selected");
		$(this).addClass("selected");
		$("#feature_carousel .carousel:visible").hide();
		$(tab).show();
		
		return false;
	});
	
	// Featured Recommendations
	$("#featured_recs .tabs a").click(function(ev) {
		ev.preventDefault();
		var tab = $(this).attr('href');
		$("#featured_recs .tabs a.selected").removeClass("selected");
		$(this).addClass("selected");
		$("#featured_recs .rec:visible").hide();
		$(tab).show();
		
		return false;
	});
	
	// Featured Lists
	$("#featured_lists .tabs a").click(function(ev) {
		ev.preventDefault();
		var tab = $(this).attr('href');
		$("#featured_lists .tabs a.selected").removeClass("selected");
		$(this).addClass("selected");
		$("#featured_lists .list:visible").hide();
		$(tab).show();
		
		return false;
	});
	
	// View All and Comments
	$(".view_all").click(function(e) {
	  e.preventDefault();
   	$(this).siblings("div").show();
   	$(this).hide();

		return false;
	});
	
	$(".add_comment.reveal").click(function(e) {
		e.preventDefault();
   	$("#comment_form").slideToggle('fast');

		return false;
	});
	
	// Share This
	$(".share_this").each(function(i) {
		addthis.button(this, {}, {url: $(this).attr('href'), title: $(this).attr('title') });
		//$(this).addClass('addthis_button').attr('addthis:title', $(this).attr('title')).attr('addthis:url', $(this).attr('href'));
	});
});

// function called to do sIFR text replacement
function sifrReplace()
{
	if(document.getElementById("teens"))
	{
		$("#whats_happening").html("What's Up?");
		
		$('.sifr').each(function() {
			var color = RGB2Hex($(this).css('color'));
			if(color == '#FFF') { color = '#FFFFFF'; }
			var selector = $(this).get(0).tagName.toLowerCase() + '.sifr';
			var styles = ['.sIFR-root { color: ' + color + '; }', 'a { color: ' + color + '; text-decoration: none; }', 'a:hover { color: ' + color + '; text-decoration: none; }'];
			
			if($(this).is('dt'))
			{
				sIFR.replace(tiza, {selector: selector, css: styles, offsetTop: 5, wmode: 'transparent'});
			}
			else
			{
				sIFR.replace(tiza, {selector: selector, css: styles, wmode: 'transparent'});
			}
		});
	} 
	else if (document.getElementById("kids"))
	{
		// Kids specific junk here.
		sIFR.replace(mackan, {selector: '.links li', wmode: 'transparent', css: ['.sIFR-root {color: #DA3A00; cursor: pointer; text-decoration: none;}', 'a { color: #DA3A00; text-decoration: none; }', 'a:hover { color: #DA3A00; text-decoration: underline; }' ]});
		sIFR.replace(mackan, {selector: '#featured_joke', wmode: 'transparent', css: ['.sIFR-root {color: #FFFFFF; font-size: 12px; width: 200px;}']});
		sIFR.replace(mackan, {selector: '.joke', wmode: 'transparent', css: ['.sIFR-root {color: #FFFFFF; font-size: 12px; width: 200px;}']});
		sIFR.replace(mr_bubble_font, {selector: 'h2', wmode: 'transparent', css: ['.sIFR-root {color: #FFFFFF;}']});
		sIFR.replace(mr_bubble_font, {selector: '#sidebar dt', wmode: 'transparent', css: ['.sIFR-root {color: #3636A3;}']});
		sIFR.replace(mr_bubble_font, {selector: '#back_to_home a', wmode: 'transparent', css: ['.sIFR-root {color: #FFFFFF;}']});
		sIFR.replace(mr_bubble_font, {selector: '.more_jokes', wmode: 'transparent', css: ['.sIFR-root {color: #F9B706;}']});
		sIFR.replace(mr_bubble_font, {selector: '.month',  wmode: 'transparent', css: ['.sIFR-root {color: #FFFFFF; text-align: center; text-transform: capitalize;}']});
		sIFR.replace(mr_bubble_font, {selector: '.day',  wmode: 'transparent', css: ['.sIFR-root {color: #5554FF; text-align: center; }']});
		sIFR.replace(mr_bubble_font, {selector: '.date',  wmode: 'transparent', css: ['.sIFR-root {color: #5EB9C8; text-align: center;}']});
		sIFR.replace(mr_bubble_font, {selector: '#kids_sub h2',  wmode: 'transparent', css: ['.sIFR-root {color: #FFFFFF; font-size: 4em; padding: 0 0 20px 0;}']});
		sIFR.replace(mr_bubble_font, {selector: '#kids_sub h3',  wmode: 'transparent', css: ['.sIFR-root {color: #FFFFFF; font-size: 2.8em; padding: 0 0 20px 0;}']});
		sIFR.replace(mr_bubble_font, {selector: '.tabs li span.sifr', wmode: 'transparent', css: ['.sIFR-root {color: #FFFFFF; font-size: 24px; }']});
	}
	else
	{	
		$('.sifr').each(function()
		{
			var color = RGB2Hex($(this).css('color'));			
			if(color == '#FFF') { color = '#FFFFFF'; }
			var selector = $(this).get(0).tagName.toLowerCase() + '.sifr';
			var styles = ['.sIFR-root { color: ' + color + '; }', 'a { color: ' + color + '; text-decoration: none; }', 'a:hover { color: ' + color + '; text-decoration: none; }'];
			
			if($(this).is('dt'))
			{
				sIFR.replace(gotham_book, {selector: selector, css: styles, offsetTop: 5, wmode: 'transparent'});
			}
			else
			{
				sIFR.replace(gotham_book, {selector: selector, css: styles, wmode: 'transparent'});
			}
		});
	}
}

// 
function switchFeaturedEvents(event)
{
	var index = $('#featured_events_tabs a').index($(this));
	
	// show event
	$('#featured_events .event:visible').hide();
	$('#featured_events .event').slice(index, index + 1).show();
	
	// change tabs to reflect selected event
	$('#featured_events_tabs a.selected').removeClass('selected');
	$(this).addClass('selected');
	
	return false;
}

// Callback for event calendar - date is selected
function didChooseDate(date)
{
	date = date.split('/');
	$('#event_date .month').html($('#event_months a.selected').html());
	$('#event_date .day').html(date[1]);
	$('#event_date .year').html(', ' + date[2]);
	
	// load events for date
	//$("#event_results").load(www_root + "modules/events/events-by-date.php?date=" + date);
	$.get(www_root + "modules/events/events-by-date.php?date=" + date, function(html)
	{
		$('#event_results').html(html);
		$('#event_results .share_this').each(function(){
			addthis.button(this, {}, {url: $(this).attr('href'), title: $(this).attr('title') });
		});
	});
}

function didChooseDateMini(date)
{
	date = date.split('/');
	date = date[2] + '-' + date[0] + '-' + date[1];
	window.location = www_root + 'events-and-classes/calendar/' + date;
}

// Callback for event calendar - when month is changed
function didChangeMonth(year, month)
{	
	// Need to ignore first event
	if (!first_event)
	{
		$('#event_months a.selected').removeClass('selected');
		$('#event_months a[rel=' + month + ']').addClass('selected');
	}
	else
	{
		first_event = false;
	}
}

// converts a rgb(0, 0, 0) value to #000000
function RGB2Hex(rgb)
{
	// If already in hex, just return value uppercased
	if (rgb.substring(0, 1) == '#')
	{
		return rgb.toUpperCase();
	}
	
	rgb = rgb.substr(4, rgb.length - 5).split(', ');
	var red = byte2Hex(rgb[0]);
	var green = byte2Hex(rgb[1]);
	var blue = byte2Hex(rgb[2]);
	
	return String('#' + red + green + blue); 
}

// converts an individual byte to a hex format
function byte2Hex(n)
{
	var nybHexString = "0123456789ABCDEF";
	return String(nybHexString.substr((n >> 4) & 0x0F,1)) + nybHexString.substr(n & 0x0F,1);
}
