$(function(){
	initTopNav();
	initThemeswitcher();
	initSidebar();
	initStyleSheetSwitcher();
	initCalendar();
});

function initThemeswitcher() {
	$("#themes").themeswitcher();
}

function initCalendar() {
	$("#ui-datepicker-div table td span").hover(
		function(){$(this).addClass("ui-state-hover")},
		function(){$(this).removeClass("ui-state-hover")}
	);
	$("#lesson-dialog").dialog({autoOpen:false,modal:true,width:500});
	
	$("#ui-datepicker-div table td a").click(function(e) {
		$("#lesson-dialog").html(LOADING_IMG);
		$("#lesson-dialog").dialog('option','title',"Lesson for " + $(this).attr("date"));
		$("#lesson-dialog").dialog('open');
		$("#lesson-dialog").load($(this).attr("href")+"?response=text",function(){
			$("#lesson-dialog").dialog('option','position','center');
		});
		e.preventDefault();
	});
}

function initSidebar() {
	$("#sidebar ul li:not(.selected)").hover(
		function(){$(this).addClass("ui-state-active")},
		function(){$(this).removeClass("ui-state-active")}
	);
	var h = Math.max($("#main").height(),$("#sidebar").height());

	$("#sidebar,#main").height(h + 1);
}

function initTopNav() {
	$("#topnav ul li").hover(
		function(){$(this).addClass("ui-state-hover")},
		function(){$(this).removeClass("ui-state-hover")}
	);
}

function initStyleSheetSwitcher() {
	$('.styleswitch').click(function(){
		switchStylestyle(this.getAttribute("rel"));
		return false;
	});
	var c = readCookie('style');
	if (c)
		switchStylestyle(c);
}

/**
 * Styleswitch stylesheet switcher built on jQuery
 * Under an Attribution, Share Alike License
 * By Kelvin Luck ( http://www.kelvinluck.com/ )
 **/
function switchStylestyle(styleName){
	$('link[@rel*=style][title]').each(function(i){
		this.disabled = true;
		if (this.getAttribute('title') == styleName) 
			this.disabled = false;
	});
	createCookie('style', styleName, 365);
}

// cookie functions http://www.quirksmode.org/js/cookies.html
function createCookie(name, value, days){
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else 
        var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name){
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') 
            c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) 
            return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name){
    createCookie(name, "", -1);
}
