if (!log) log = function() { function notice() {}; function debug() {}; function error() {};}
__callbacks = [];
__callbacks_click = [];
__callbacks_hover = [];

var calendars = [];

$(document).ready(function(){
	for (var i=0; i<__callbacks.length; i++) __callbacks[i]();

	$('.menu li:not([class~="selected"])').hover(
		function(){$(this).addClass("over")},
		function(){$(this).removeClass("over")}
	);


	$('.month_navigation li:not([class~="selected"])').hover(
		function(){$(this).addClass("over")},
		function(){$(this).removeClass("over")}
	);

	$('.navigator_arrows li').hover(
		function(){if (!$(this).hasClass("disabled")) $(this).addClass("over")},
		function(){$(this).removeClass("over")}
	);


    bind_clicks();
    bind_thumb_clicks();

	$('.navigator_arrows #right_arrow').click(function() {
        if ($(this).hasClass("disabled")) return;
        $(this).siblings().removeClass('disabled');
        var frames = $('#frames');
        var left = frames.position().left;
        var width = $('#frames .frame').outerWidth();
        var limit = -frames.width()+width;
        var obj = $(this);
		if ($('#frames').position().left>limit) frames.animate({left: left-width}, 300, 'swing', function(){
            if (frames.position().left<limit) frames.css('left', limit+'px');
            if (frames.position().left==limit) obj.addClass('disabled');
        });
    });

	$('.navigator_arrows #left_arrow').click(function() {
        if ($(this).hasClass("disabled")) return;
        $(this).siblings().removeClass('disabled');
        var frames = $('#frames');
        var left = frames.position().left;
        var width = $('#frames .frame').outerWidth();
        var limit = 0;
        var obj = $(this);
		if ($('#frames').position().left<0) frames.animate({left: left+width}, 300, 'swing', function(){
            if (frames.position().left>0) frames.css('left', limit+'px');
            if (frames.position().left==0) obj.addClass('disabled');
        });
	});

    $('#thumbs_container #frames').each(function(){
        var c = $(this).find('.frame');
        $(this).width(c.outerWidth()*c.length);
        if (c.length>1) $('.navigator_arrows').show();
    });

    $('#thumbs_container .thumb:first').each(function(){
        open_thumb($(this));
    });

    $('ul.navigation li.selected .substrate').each(function(){
        $(this).height($(this).parent().outerHeight());
//alert($(this).parent().outerHeight());
    });

    $('#index .titles_container').each(function(){
        while ($(this).height()<250) $(this).find('div').each(function(){
            var fsize = $(this).css('font-size').replace('px', '')*1+1;
            $(this).css('font-size', fsize+'px');
//            $(this).height(fsize);
        });
        while ($(this).height()>300) $(this).find('div').each(function(){
            var fsize = $(this).css('font-size').replace('px', '')*1-1;
            $(this).css('font-size', fsize+'px');
//            $(this).height(fsize);
        });
    });

    $('#projects #projects_container .scroll-pane').jScrollPane();
});


__callbacks_click.push(function(){

    $('#thumbs_container .thumb').click(function(){
        open_thumb($(this));

    });

});

bind_clicks = function() {
    for (var i=0; i<__callbacks_click.length; i++) __callbacks_click[i]();
}


__callbacks_hover.push(function(){

    $('#thumbs_container div.thumb').hover(
        function(){$(this).addClass('hover')},
        function(){$(this).removeClass('hover')}
    );
});

bind_hovers = function() {
    for (var i=0; i<__callbacks_hover.length; i++) __callbacks_hover[i]();
}

open_thumb = function (obj) {
    var id = obj.attr('id').replace('image', '');
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.responseText.length>0) log.debug(req.responseText);
            $('#image_container').html(req.responseJS.html);
            $('#structure_id').attr('value', id);
            $('#thumbs_container div.selected').removeClass('selected');
            $(obj).addClass('selected');
            bind_thumb_clicks();
        }
    }
    req.open("GET", '', false);
    req.send( { 'id': id } );
}

bind_thumb_clicks = function(){
    $('#image_container .image img').click(function(){
        $('#image_container .fullsize').fadeIn(300);
    });
    $('#image_container .fullsize .over').click(function(){
        $('#image_container .fullsize').fadeOut(300);
    });

}

