/*
 * jQuery css clip animation support -- Jim Palmer
 * version 0.1.1
 * idea spawned from jquery.color.js by John Resig
 * Released under the MIT license.
 */
(function(jQuery){
    jQuery.fx.step.clip = function(fx){
        if ( fx.state == 0 ) {
            var cRE = /rect\(([0-9]{1,3})(px|em) ([0-9]{1,3})(px|em) ([0-9]{1,3})(px|em) ([0-9]{1,3})(px|em)\)/;
            fx.start = cRE.exec( fx.elem.style.clip.replace(/,/g, '') );
            try {fx.end = cRE.exec( fx.end.replace(/,/g, '') );} catch(e){}
        }
        var sarr = new Array(), earr = new Array(), spos = fx.start.length, epos = fx.end.length,
            emOffset = fx.start[ss+1] == 'em' ? ( parseInt($(fx.elem).css('fontSize')) * 1.333 * parseInt(fx.start[ss]) ) : 1;
        for ( var ss = 1; ss < spos; ss+=2 ) { sarr.push( parseInt( emOffset * fx.start[ss] ) ); }
        for ( var es = 1; es < epos; es+=2 ) { earr.push( parseInt( emOffset * fx.end[es] ) ); }
        fx.elem.style.clip = 'rect(' + 
            parseInt( ( fx.pos * ( earr[0] - sarr[0] ) ) + sarr[0] ) + 'px ' + 
            parseInt( ( fx.pos * ( earr[1] - sarr[1] ) ) + sarr[1] ) + 'px ' +
            parseInt( ( fx.pos * ( earr[2] - sarr[2] ) ) + sarr[2] ) + 'px ' + 
            parseInt( ( fx.pos * ( earr[3] - sarr[3] ) ) + sarr[3] ) + 'px)';
    }
})(jQuery);

var active_div = null;
var prev_in_header = false;

function init_custom_ui()
{
  // init sidebar event handlers
  $('.sidebar-left ul li .slide-box').bind('click', on_sticker_event);

  // init header background event handlers
  $('.header-sub2-bg1').css({clip: 'rect(12px 976px 186px 0px)'});
  $('a.header-open-win').css({opacity: 0});
  $('.header-sub2-bg2').bind('mouseover mouseout', on_header_event);
  $('.header-sub2-bg2 *').bind('mouseover mouseout', function(e){return false;});

  // "add to favourites/bookmarks" action enabling
  $('a.add-to-fav').jFav();

  return;
};

function on_sticker_event(e)
{
  var div = this;

  if (e.type == 'click') {
    var left = parseInt($(div).css('left'));

    if (left < 0) {
      $('.sidebar-left').css({'z-index':10});

      if (active_div) {
        $(active_div).animate({left: '-250px'}, 500, 'swing');
      }
      $(div).animate({left: '0px'}, 500, 'swing');

      active_div = this;
    } else {
      $(div).animate({left: '-250px'}, 500, 'swing', function() {
        $('.sidebar-left').css({'z-index':0});
      });

      active_div = null;
    }
  }

  return;
};

function on_header_event(e)
{
  // block with background
  var div1 = $('.header-sub2-bg1');
  // block with border
  var div2 = $('.header-sub2-bg2');
  // entry link
  var hlink = $('.header-open-win');

  //
  // animation params
  //
  var p1a = {
    clip: 'rect(10px 976px 188px 0px)',
    opacity: 0.6
  };
  var p1b = {
    clip: 'rect(12px 976px 186px 0px)',
    opacity: 1
  };
  var p2a = {
    top: '-4px',
    height: '178px'
  };
  var p2b = {
    top: '-1px',
    height: '172px'
  }

  var p_time = 400;
  var p_easing = 'swing'; //linear,swing

  var dx = e.pageX - div2[0].offsetLeft;
  var dy = e.pageY - div2[0].offsetTop;

  if (e.type == 'mouseover' && e.relatedTarget != hlink[0]) {
    $(div2).animate(p2a, p_time, p_easing);
    $(div1).animate(p1a, p_time, p_easing);
    $(hlink).animate({opacity:1}, p_time, 'linear');
  }
  else
  if (e.type == 'mouseout' && e.relatedTarget != hlink[0]) {
    $(div2).animate(p2b, p_time, p_easing);
    $(div1).animate(p1b, p_time, p_easing);
    $(hlink).animate({opacity:0}, p_time, 'linear');
  }

  return false;
};
