/*
*
*  tabSlider 1.2
*  
*  http://wdevblog.net.ru
*
*/

(function($) {

$.fn.tabSlider = function(){

var tabs = this;
var tabsParent = $(this).eq(0).parent();

$(tabsParent).append('<div id="slMeasurer"></div>');
$('#slMeasurer').css('width','100%');
var parentWidth = $('#slMeasurer').width();

function sliderSetup(i,tabWidth,tabHeight,pWidth){
  $(tabs).eq(i).css('width',tabWidth+'px');
  $(tabs).eq(i).wrap('<div class="sl-overflow" id="overflow'+(i+1)+'"><div class="sl-slidebox" id="slidebox'+(i+1)+'"></div></div>');
  $('#overflow'+(i+1)).css({
    width: '100%',
    overflow: 'hidden',
    padding: '5px 0'
  });
  parentWidth = $('#slMeasurer').width();
  $('#overflow'+(i+1)).before('<div class="slider" id="slider'+(i+1)+'t"></div>');
  $('#overflow'+(i+1)).after('<div class="slider" id="slider'+(i+1)+'b"></div>');
    $('#slider'+(i+1)+'t,#slider'+(i+1)+'b').slider();
    sliderOptions(i,tabWidth,pWidth);
	//add break lines
	$('#slider'+(i+1)+'t').append('<div id="sl-break'+(i+1)+'l" class="breakline"></div><div id="sl-break'+(i+1)+'r" class="breakline"></div>');
  $('#sl-break'+(i+1)+'l').css({
    height: tabHeight+'px',
    left: '-35px',
    display: 'none'
  });
  $('#sl-break'+(i+1)+'r').css({
    height: tabHeight+'px',
    right: '-35px'
  });
}

function sliderOptions(i,tWidth,pWidth){
  $('#slider'+(i+1)+'t,#slider'+(i+1)+'b').slider('option',{
    value: 0,
      slide: function(event, ui){
        $('#slidebox'+(i+1)).css({
          'margin-left' : -(tWidth-pWidth)*(ui.value/100)
        });
        var slid = this.id.indexOf('t')>-1 ? 'slider'+(i+1)+'b' : 'slider'+(i+1)+'t';
        $('#'+slid).slider('value', ui.value);
    	},
    	change: function(event, ui) {
		  if(ui.value>0){
        $('#sl-break'+(i+1)+'l').show();
      }else{
        $('#sl-break'+(i+1)+'l').hide();
      }
      if(ui.value!=100){
        $('#sl-break'+(i+1)+'r').show();
      }else{
        $('#sl-break'+(i+1)+'r').hide();
      }
    }
	});
}

$(tabs).each(function(i){
  var tabWidth = $(this).outerWidth();
  var tabHeight = $(this).outerHeight();
  if(tabWidth>parentWidth){
    sliderSetup(i,tabWidth,tabHeight,parentWidth);
	}
});

$(window).resize(function(){
  
  var newParentWidth = $('#slMeasurer').width();
  
  $(tabs).each(function(i){
    var tabWidth = $(this).outerWidth();
    var tabHeight = $(this).outerHeight();
    if(tabWidth>newParentWidth){
      if($('#overflow'+(i+1)).size()>0){
        $('#overflow'+(i+1)).css({
          width: '100%',
          overflow: 'hidden'
        });
        $('#slidebox'+(i+1)).css({
          margin: '0'
        });
        $('#sl-break'+(i+1)+'l').hide();
        $('#sl-break'+(i+1)+'r').show();
        $('#slider'+(i+1)+'t,#slider'+(i+1)+'b').slider();
        sliderOptions(i,tabWidth,newParentWidth);
      }else{
        sliderSetup(i,tabWidth,tabHeight,newParentWidth);
      }
    }else{
      $('#slider'+(i+1)+'t,#slider'+(i+1)+'b').slider('destroy');
      $('#overflow'+(i+1)).css({width: 'auto',overflow: 'visible'});
      $('#slidebox'+(i+1)).css('margin','0');
      $('#sl-break'+(i+1)+'l,#sl-break'+(i+1)+'r').hide();
    }
  });
});


return this;

}


})(jQuery);