var interval = 2000;
var timeout = null;


$(document).ready(function(){


var bbrotator = {
  interval:  8000,
  timeout:  null,
  is_animating: 0,
  speed: 300,
  banners: $('.banners_layout .banner'),
  current: null,
  thumbs: null,

  init: function(){
      //alert(this.banners.length);
            this.banners.each( function(i, val){
               thumb_src = $(val).attr('thumb_src');
                var thumb =  jQuery('<div class="thumb"><img src="'+thumb_src+'" /></div>');
                thumb.attr('bid', i);
               $('.banner_thumbs').append(thumb);
               //bbrotator.thumbs.add(thumb);

               thumb.hover(function(){
                   if($(this).hasClass('hover')) 
                       $(this).removeClass('hover')
                   else
                      if(!$(this).hasClass('selected'))
                          $(this).addClass('hover')
               });

               thumb.click(function(){                   
                   bid = $(this).attr('bid');
                   if(!$(this).hasClass('selected')) {
                       clearTimeout(bbrotator.timeout);
                        $('.banner_thumbs .thumb').removeClass('selected');
                        $(this).addClass('selected');
                        bbrotator.show_banner(bbrotator.banners.eq(bid));
                   }
               });
            });
        this.current = bbrotator.banners.first();
        $('.banner_thumbs .thumb:first').addClass('selected');
        bbrotator.banners_auto_switching(bbrotator.interval);
  },

  show_banner: function(b){
      if (bbrotator.is_animating)    return false;
      bbrotator.is_animating = true;
      
      bbrotator.current.css('z-index','5').show();
      b.css('z-index','4').show();
      bbrotator.current.fadeOut('slow');
      bbrotator.current = b;
      bbrotator.set_menu_borders_color (b.css('background-color') );
      bbrotator.is_animating = false;

      bbrotator.banners_auto_switching(bbrotator.interval);
  },

  set_menu_borders_color: function (col) {
      var color = new Color(col);
      color.inc(32);
      $('#menu').css('border-color', color.get());
      $('#menu .side_l').css('border-color', color.get());
      $('#menu .side_r').css('border-color', color.get());
},

  show_next_banner: function(){

    var next_thumb = $('.banner_thumbs .selected').next();
    if(!next_thumb.length)
        next_thumb = $('.banner_thumbs .thumb:first');
    next_thumb.click();

},


banners_auto_switching: function(delay){
  bbrotator.timeout = setTimeout(bbrotator.show_next_banner, delay);
}


 


}

    // start banner rotation
    bbrotator.init();

    pngfix();

    //banners_auto_switching(interval);

    $('#menu td[class!="selected"]').hover(
        function() {$(this).addClass('hover');},
        function() {$(this).removeClass('hover');}
    );

    $('div[behaviour="portfolio_block"]').hover(
        function() {if (!$(this).parents('.as_list').get(0))$(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();
    });



    $('#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();
    });


    // portfolio switch buttons
    var tileButton = $('.switch .tile');
    var listButton = $('.switch .list');

    tileButton.hover(
      function(){
        $(this).find('i').addClass('hover');
      },
      function(){
        $(this).find('i').removeClass('hover');
      }
    );
    listButton.hover(
      function(){
        $(this).find('i').addClass('hover');
      },
      function(){
        $(this).find('i').removeClass('hover');
      }
    );

    tileButton.click(function(){
      $(this).find('i').addClass('selected');
      $(this).find('span').removeClass('js_link');
      $('.list').find('span').addClass('js_link');
      $('.list').find('i').removeClass('selected');
//      $('.portfolio_blocks').removeClass('as_list');
//      $('.portfolio_blocks').show();
//      $('.portfolio_list').hide();
      $('.body').removeClass('white');
      $('#layout .body').addClass('black');
      $('#layout').removeClass('as_list');
      $.cookie('portswitcher', 'tile',{path: '/'});
      update_menu_borders();      
    });

    listButton.click(function(){
      $(this).find('i').addClass('selected');
      $(this).find('span').removeClass('js_link');
      $('.tile').find('span').addClass('js_link');
      $('.tile').find('i').removeClass('selected');
//      $('.portfolio_blocks').addClass('as_list');
//      $('.portfolio_list').show();
//      $('.portfolio_blocks').hide();
      $('#layout .body').removeClass('black');
      $('#layout .body').addClass('white');
      $('#layout').addClass('as_list');
      $.cookie('portswitcher', 'list',{path: '/'});
      update_menu_borders();
    });

    if($.cookie('portswitcher')=='list')
      listButton.click();

  update_menu_borders();
});

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);
    });
};


update_menu_borders = function () {
  $('#layout .body:first').each(function(){
      var color = new Color($(this).css('background-color'));
      color.inc(32);
      $(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());
  });
}

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]+')';
    };
};




