

$(document).ready(function(){
    pngfix();
    $('#menu td[class!="selected"]').hover(
        function() { $(this).addClass('hover'); },
        function() { $(this).removeClass('hover'); }
    );

    $('div[behaviour="portfolio_block"]').hover(
        function() { $(this).addClass('hover'); },
        function() { $(this).removeClass('hover'); }
    );

    $(this).keydown(function(e) {
        var link = null;
        if (e.ctrlKey) {
            switch (e.which) {
        		case 0x25:
        			link = $('#prev_link').attr('href');
        			break;
        		case 0x27:
        			link = $('#next_link').attr('href');
        			break;
    			case 0x26:
    				link = $('#up_link').attr('href');
    				break;
    			case 0x28:
    				link = $('#down_link').attr('href');
    				break;

            }
    	if (link) document.location = link;
    	}
    });

    $(window).load(function(){
        fix_layout();
        $('.body:first').each(function(){
            var color = new Color($(this).css('background-color'));
            color.inc(30);
            $(this).find('#menu').css('border-color', color.get());
            $(this).find('#menu .side_l').css('border-color', color.get());
            $(this).find('#menu .side_r').css('border-color', color.get());
        });
    });

    $('#wedo .vt input.submit').click(function(){
      var form = $('#form_ready form').get(0);
      JsHttpRequest.query(
        '', { 'form': form},
        function(responseJS, responseText) {
          $('#form_ready').hide();
          $('#form_sent').show();
        },
        false
      );
    });

    $('#wedo .vt #form_sent span').click(function(){
      $('#form_ready form *:input[type!="button"]').val('');
      $('#form_ready').show();
      $('#form_sent').hide();
    });

    $('img.toggler').click(function(){
      var number = $(this).attr('mode')*1;
      var src = $(this).attr('src');
      var path_part1 = src.substring(0, src.lastIndexOf('.')-1);
      var path_part2 = src.substring(src.lastIndexOf('.'), src.length);
      var current_number = src.charAt(src.lastIndexOf('.')-1)*1;
      var new_number = current_number>=number?'1':current_number+1;
      var new_path = path_part1+new_number+path_part2;
      $(this).attr('src', new_path);
    });

});

window.onresize = function() {
    fix_layout();
};

fix_layout = function () {
    $('ul.navigation_vertical div.under').each(function(){
        $(this).height($(this).parent().find('div.over span').innerHeight()-5);
    });
    $('ul.navigation_vertical li').each(function(){
        $(this).height($(this).find('span').innerHeight()+3);
    });
};


Color = function(color) {
    this.color = getRGB(color);

	function getRGB(color) {
		var result;

		if ( color && color.constructor == Array && color.length == 3 )
			return color;
		if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
			return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];
		if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
			return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
		if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
			return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
		if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
			return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
	};

    this.inc = function(avg) {
        this.color[0] = this.__fc(this.color[0], avg);
        this.color[1] = this.__fc(this.color[1], avg);
        this.color[2] = this.__fc(this.color[2], avg);
        return this.color;
    };

    this.__fc = function (val, avg) {
        return Math.ceil(val+(255-val)*(avg/100));
    };

    this.get = function() {
        return 'rgb('+this.color[0]+','+this.color[1]+','+this.color[2]+')';
    };
};

