var debug;
var __tools = undefined;


$.timer = function(time, func, callback)
{
	var a = {'timer': setTimeout(func, time), 'callback': null}
	if (typeof(callback) == 'function') a.callback = callback;
	return a;
};
$.t1 = function(func)
{
	return $.timer(1, func);
};
$.clearTimer = function(a)
{
	clearTimeout(a.timer);
	if (typeof(a.callback) == 'function') a.callback();
	return this;
};

/**
 * Why do I need this?
 */
Object.size = function(obj) {
    var size = 0, key;
    for (key in obj) {
        if (obj.hasOwnProperty(key)) size++;
    }
    return size;
};

window.location.beforeHash = window.location.href.substr(0, window.location.href.indexOf('#'));

tabMappings = {
	lessons: '/lessons',
	assignments: '/assignments',
	contact: '/messages',
	donate: '/donate',
	about: '/about'
};

var loadContent = function()
{
	var path = window.location.hash.substr(1);
	if (path == '')
	{
		path = window.location.pathname
	}
	if (path != '/')
	{
		var newContent;
		$('#pageContent').hide();
		$('#pageContentBusy').show();
		$.get(window.location.protocol+'//'+window.location.hostname+path, {}, function(data, textStatus)
		{
			newContent = data;
			for (i in tabMappings)
			{
				if (path.indexOf(tabMappings[i]) != -1)
				{
					lightenTab('#'+i+'Tab');
					break;
				}
			}
			if (data.indexOf('<!--HOMEPAGE-->') != -1)
			{
				lightenTab('#homeTab');
			}
			$('#pageContent').show().html(newContent); 
			$('#pageContentBusy').hide();
			
		});
		$('li.light').removeClass('light').addClass('dark');
		$('div.tabs_cnr_tl_light').removeClass('tabs_cnr_tl_light').addClass('tabs_cnr_tl_dark');
		$('div.tabs_cnr_tr_light').removeClass('tabs_cnr_tr_light').addClass('tabs_cnr_tr_dark');
	}
};

if (!$.browser.msie)
{
	$(function()
	{
		document.body.onhashchange = null;
		//loadContent();
	});
}

var lightenTab = function(liId)
{
	$li = $(liId);
	$div1 = $li.parent();
	$div2 = $div1.parent();
	
	$.t1(function() { 
		$li.removeClass('dark').addClass('light');//.className = 'light';
	});
	$.t1(function() {
		$div1.removeClass('tabs_cnr_tr_dark').addClass('tabs_cnr_tr_light');//.className = 'tabs_cnr_tr_light';
	});
	$.t1(function() {
		$div2.removeClass('tabs_cnr_tl_dark').addClass('tabs_cnr_tl_light');//className = 'tabs_cnr_tl_light';
	});
}

$(function()
{
	$('a[rel="external"]').click( function() { window.open(this.href); return false; });	
	if ($.browser.msie) $('#pageContent').show();
	$('#flash_close').click(function() {$('#flash').slideUp(500);return false; });
});
var removeTabCorners = function()
{
	$("div.tabs_cnr_tl_light").remove(); 
	$("div.tabs_cnr_tl_dark").remove(); return;
	$("div.tab_spacer").remove();
};