/* minified_jsmin */
;(function($){var settings={'animateTabs':false,'showNavWhenNeeded':true,'customNavNext':null,'customNavPrev':null,'customNavFirst':null,'customNavLast':null,'closable':true,'easing':'','easing':'swing','loadLastTab':false,'onTabScroll':function(){},'resizable':false,'resizeHandles':'e,s,se','scrollSpeed':500,'selectTabOnAdd':true,'selectTabAfterScroll':true,'showFirstLastArrows':true,'hideDefaultArrows':false,'nextPrevOutward':false,'wrapperCssClass':''}
$.fn.scrollabletabs=function(options)
{return this.each(function(){var o=$.extend({},settings,typeof options=='object'?options:{}),$tabs=$(this).addClass(o.wrapperCssClass+' stMainWrapper'),$ul=$tabs.find('ul.ui-tabs-nav:first'),$lis=$ul.find('li'),$arrowsNav=$('<ol class="stNavMain" />'),$curSelectedTab=$ul.find('.ui-tabs-selected').addClass('stCurrentTab');if(!o.hideDefaultArrows)
{var $navPrev=$('<li class="stNavPrevArrow ui-state-active" title="Previous"><span class="ui-icon ui-icon-seek-prev">Previous tab</span></li>'),$navNext=$('<li class="stNavNextArrow ui-state-active" title="Next"><span class="ui-icon ui-icon-seek-next">Next tab</span></li>'),$navFirst=o.showFirstLastArrows?$('<li class="stNavFirstArrow ui-state-active" title="First"><span class="ui-icon ui-icon-seek-first">First tab</span></li>'):$(),$navLast=o.showFirstLastArrows?$('<li class="stNavLastArrow ui-state-active" title="Last"><span class="ui-icon ui-icon-seek-end">Last tab</span></li>'):$();$arrowsNav.append($navPrev,$navFirst,$navLast,$navNext);var $navLis=$arrowsNav.find('li').hover(function(){$(this).toggleClass('ui-state-active').toggleClass('ui-state-hover');});}
function _init()
{$ul.height($lis.first().outerHeight())
$ul.after($arrowsNav.css('visibility',o.showNavWhenNeeded?'hidden':'visible'));if($navLis)
{$navLis.css({'top':'-'+$ul.innerHeight()+'px','height':$ul.innerHeight()});if(o.nextPrevOutward)
{$navPrev.addClass('ui-corner-left');$navNext.addClass('ui-corner-right');$navFirst.css('margin-left',$arrowsNav.find('li:first').outerWidth());$navLast.css('margin-right',$arrowsNav.find('li:first').outerWidth());}
else
{$navFirst.addClass('ui-corner-left');$navLast.addClass('ui-corner-right');o.showFirstLastArrows?$navPrev.css('margin-left',$arrowsNav.find('li:first').outerWidth()):$navPrev.addClass('ui-corner-left');o.showFirstLastArrows?$navNext.css('margin-right',$arrowsNav.find('li:first').outerWidth()):$navNext.addClass('ui-corner-right');}}
_addclosebutton();_showNavsIfNeeded();_adjustLeftPosition();_addNavEvents();$tabs.bind("tabsshow",function(event,ui){_updateCurrentTab($(ui.tab).parents('li'));if(_isHiddenOn('n'))
{_animateTabTo('n',null,null,event)}
else if(_isHiddenOn('p'))
{_animateTabTo('p',null,null,event)}}).bind("tabsadd",function(event,ui){var $thisLi=$(ui.tab).parents('li');$lis=$ul.find('li');_addclosebutton($thisLi);_showNavsIfNeeded();_adjustLeftPosition($thisLi);if(o.selectTabOnAdd)
{d($lis.index($thisLi));$(this).tabs('select',$lis.index($thisLi));}}).bind("tabsremove",function(event,ui){$lis=$ul.find('li');if($tabs.tabs('length')==1)
{$ul.find('.ui-icon-circle-close').addClass('stFirstTab').hide();}
else
{$ul.find('.ui-icon-circle-close').show();_updateCurrentTab($lis.first())}
_showNavsIfNeeded();_adjustLeftPosition();});}
function _showNavsIfNeeded()
{if(!o.showNavWhenNeeded)
{return;}
if(_liWidth()>$ul.width())
{$arrowsNav.css('visibility','visible').show();}
else
{$arrowsNav.css('visibility','hidden').hide();_animateTabTo('f',$lis.first(),0);}}
function _callBackFnc(fName,event,arg1)
{if($.isFunction(fName))
{fName(event,arg1);}}
function _isHiddenOn(side,$tab)
{$tab=$tab||$curSelectedTab;if(side=='n')
{var rightPos=$tab[0].offsetLeft+$tab.outerWidth(true)+5;return(rightPos>($ul.outerWidth()-_getNavPairWidth()));}
else
{var leftPos=($tab[0].offsetLeft-_getNavPairWidth());return(leftPos<0)}}
function _pullMargin($tab)
{return'-'+(_liWidth($tab)-$ul.width()+_getNavPairWidth())+'px';}
function _pushMargin($tab)
{var leftPos=($tab[0].offsetLeft-_getNavPairWidth());return(parseFloat($tab.css('margin-left'))-leftPos)+'px';}
function _animateTabTo(side,$tab,tabIndex,e)
{$tab=$tab||$curSelectedTab;var margin=0;if(side=='n')
{margin=_pullMargin($tab);}
else if(side=='p')
{margin=_pushMargin($tab);}
else if(side=='f')
{margin=0;tabIndex=0;}
else if(side=='l')
{margin=_pullMargin($tab);}
$lis.animate({'margin-left':margin},o.scrollSpeed,o.easing);if(o.selectTabAfterScroll&&tabIndex!==null)
{$tabs.tabs('select',tabIndex);}
else
{if(tabIndex>-1)
{_updateCurrentTab($tab);}}
e=(typeof e=='undefined')?null:e;_callBackFnc(o.onTabScroll,e,$tab)
e.preventDefault();}
function _addCustomerSelToCollection(col,nav)
{var sel=o['customNav'+nav]||'';if(typeof sel=='string'&&$.trim(sel)!='')
{col=col.add(sel);}
return col;}
function _addNavEvents()
{$navNext=$navNext?$navNext:$();$navNext=_addCustomerSelToCollection($navNext,'Next');$navNext.click(function(e){var $nxtLi=$();if(!o.selectTabAfterScroll)
{$curSelectedTab.nextAll('li').each(function(){if(_isHiddenOn('n',$(this)))
{$nxtLi=$(this);return false;}});}
else
{$nxtLi=$curSelectedTab.next('li');}
if(!$nxtLi.length)
{d('You are on last tab, no next tab found.');return false;}
var isTabHidden=_isHiddenOn('n',$nxtLi);indexNextTab=$lis.index($nxtLi);if(isTabHidden)
{_animateTabTo('n',$nxtLi,indexNextTab,e);}
else
{$tabs.tabs('select',indexNextTab);}})
$navPrev=$navPrev?$navPrev:$();$navPrev=_addCustomerSelToCollection($navPrev,'Prev');$navPrev.click(function(e){var $prvLi=$();if(!o.selectTabAfterScroll)
{$($lis.get().reverse()).each(function(){if(_isHiddenOn('p',$(this)))
{$prvLi=$(this);return false;}});}
else
{$prvLi=$curSelectedTab.prev('li');}
if(!$prvLi.length)
{d('There is no previous tab. NO PREV TAB');return false;}
var isTabHidden=_isHiddenOn('p',$prvLi);var indexPrevTab=$lis.index($prvLi);if(isTabHidden)
{_animateTabTo('p',$prvLi,indexPrevTab,e);}
else
{$tabs.tabs('select',indexPrevTab);}
return false;});$navFirst=$navFirst?$navFirst:$();$navFirst=_addCustomerSelToCollection($navFirst,'First');$navFirst.click(function(e){if($lis.index($curSelectedTab)==0)
{console.log('You are on first tab already');return false;}
_animateTabTo('f',$lis.first(),0,e);return false;});$navLast=$navLast?$navLast:$();$navLast=_addCustomerSelToCollection($navLast,'Last');$navLast.click(function(e){var $lstLi=$curSelectedTab.next('li');if(!$lstLi.length)
{d('You are already on the last tab. there is no more last tab.');return false;}
var indexLastTab=$tabs.tabs('length')-1;_animateTabTo('l',$lis.last(),indexLastTab,e);return false;});}
function _updateCurrentTab($li)
{$ul.find('.stCurrentTab').removeClass('stCurrentTab');$curSelectedTab=$li.addClass('stCurrentTab');}
function _addclosebutton($li)
{if(!o.closable)return;var lis=$li||$lis;lis.each(function(){var $thisLi=$(this).addClass('stHasCloseBtn');$(this).append($('<span/>').addClass('ui-state-default ui-corner-all stCloseBtn').hover(function(){$(this).toggleClass('ui-state-hover')}).append($('<span/>').addClass('ui-icon ui-icon-circle-close').html('Close').attr('title','Close this tab').click(function(e){$tabs.tabs('remove',$thisLi.prevAll('li').length);}))).width($thisLi.outerWidth())});}
function _getNavPairWidth(single)
{if($arrowsNav.css('visibility')=='hidden')
{return 0;}
var w=o.hideDefaultArrows?0:$navPrev.outerWidth()*(o.showFirstLastArrows?2:1);return single?w/2:w;}
function _adjustLeftPosition($li)
{if($li)
{if($lis.lenght==1)return;var $thisPrev=$li.prev('li')||$lis.first(),newLeft=parseFloat($thisPrev.css('left'));newLeft=isNaN(newLeft)?0:newLeft;newLeft=newLeft+$thisPrev.outerWidth(true)+4;$li.css({'left':newLeft,'margin-left':$thisPrev.css('margin-left')});return;}
var pairWidth=_getNavPairWidth(),leftPush=pairWidth==0?3:pairWidth+2;$lis.first().addClass('stFirstTab').css({'left':leftPush,'margin-left':0});var tw=leftPush;var leftMargin=parseFloat($lis.last().prev('li').css('margin-left'));$ul.find('li:not(:first)').each(function(){$(this).css('margin-left',0)[o.animateTabs?'animate':'css']({'left':tw+=$(this).prev('li').outerWidth(true)})});$lis.css('margin-left',leftMargin);}
function _liWidth($tab)
{var w=0,list=$tab?$tab.prevAll('li').andSelf():$lis;list.each(function(){w+=$(this).outerWidth()+parseInt($(this).css('margin-right'),10);});var navWidth=$arrowsNav.css('visibility')=='visible'?_getNavPairWidth():0;return w+navWidth;}
_init();});}})(jQuery)
