(function($){$.extend({tabs:{remoteCount:0}});
$.fn.tabs=function(initial,settings){if(typeof initial=="object"){settings=initial
}settings=$.extend({initial:(initial&&typeof initial=="number"&&initial>0)?--initial:0,disabled:null,bookmarkable:$.ajaxHistory?true:false,remote:false,spinner:"Loading&#8230;",hashPrefix:"remote-tab-",fxFade:null,fxSlide:null,fxShow:null,fxHide:null,fxSpeed:"normal",fxShowSpeed:null,fxHideSpeed:null,fxAutoHeight:false,onClick:null,onHide:null,onShow:null,navClass:"tabs-nav",selectedClass:"tabs-selected",disabledClass:"tabs-disabled",containerClass:"tabs-container",hideClass:"tabs-hide",loadingClass:"tabs-loading",tabStruct:"div"},settings||{});
$.browser.msie6=$.browser.msie&&($.browser.version&&$.browser.version<7||/MSIE 6.0/.test(navigator.userAgent));
function unFocus(){scrollTo(0,0)
}return this.each(function(){var container=this;
var nav=$("ul."+settings.navClass,container);
nav=nav.size()&&nav||$(">ul:eq(0)",container);
var tabs=$("a",nav);
if(settings.remote){tabs.each(function(){var id=settings.hashPrefix+(++$.tabs.remoteCount),hash="#"+id,url=this.href;
this.href=hash;
$('<div id="'+id+'" class="'+settings.containerClass+'"></div>').appendTo(container);
$(this).bind("loadRemoteTab",function(e,callback){var $$=$(this).addClass(settings.loadingClass),span=$("span",this)[0],tabTitle=span.innerHTML;
if(settings.spinner){span.innerHTML="<em>"+settings.spinner+"</em>"
}setTimeout(function(){$(hash).load(url,function(){if(settings.spinner){span.innerHTML=tabTitle
}$$.removeClass(settings.loadingClass);
callback&&callback()
})
},0)
})
})
}var containers=$("div."+settings.containerClass,container);
containers=containers.size()&&containers||$(">"+settings.tabStruct,container);
nav.is("."+settings.navClass)||nav.addClass(settings.navClass);
containers.each(function(){var $$=$(this);
$$.is("."+settings.containerClass)||$$.addClass(settings.containerClass)
});
var hasSelectedClass=$("li",nav).index($("li."+settings.selectedClass,nav)[0]);
if(hasSelectedClass>=0){settings.initial=hasSelectedClass
}if(location.hash){tabs.each(function(i){if(this.hash==location.hash){settings.initial=i;
if(($.browser.msie||$.browser.opera)&&!settings.remote){var toShow=$(location.hash);
var toShowId=toShow.attr("id");
toShow.attr("id","");
setTimeout(function(){toShow.attr("id",toShowId)
},500)
}unFocus();
return false
}})
}if($.browser.msie){unFocus()
}containers.filter(":eq("+settings.initial+")").show().end().not(":eq("+settings.initial+")").addClass(settings.hideClass);
$("li",nav).removeClass(settings.selectedClass).eq(settings.initial).addClass(settings.selectedClass);
tabs.eq(settings.initial).trigger("loadRemoteTab").end();
if(settings.fxAutoHeight){var _setAutoHeight=function(reset){var heights=$.map(containers.get(),function(el){var h,jq=$(el);
if(reset){if($.browser.msie6){el.style.removeExpression("behaviour");
el.style.height="";
el.minHeight=null
}h=jq.css({"min-height":""}).height()
}else{h=jq.height()
}return h
}).sort(function(a,b){return b-a
});
if($.browser.msie6){containers.each(function(){this.minHeight=heights[0]+"px";
this.style.setExpression("behaviour",'this.style.height = this.minHeight ? this.minHeight : "1px"')
})
}else{containers.css({"min-height":heights[0]+"px"})
}};
_setAutoHeight();
var cachedWidth=container.offsetWidth;
var cachedHeight=container.offsetHeight;
var watchFontSize=$("#tabs-watch-font-size").get(0)||$('<span id="tabs-watch-font-size">M</span>').css({display:"block",position:"absolute",visibility:"hidden"}).appendTo(document.body).get(0);
var cachedFontSize=watchFontSize.offsetHeight;
setInterval(function(){var currentWidth=container.offsetWidth;
var currentHeight=container.offsetHeight;
var currentFontSize=watchFontSize.offsetHeight;
if(currentHeight>cachedHeight||currentWidth!=cachedWidth||currentFontSize!=cachedFontSize){_setAutoHeight((currentWidth>cachedWidth||currentFontSize<cachedFontSize));
cachedWidth=currentWidth;
cachedHeight=currentHeight;
cachedFontSize=currentFontSize
}},50)
}var showAnim={},hideAnim={},showSpeed=settings.fxShowSpeed||settings.fxSpeed,hideSpeed=settings.fxHideSpeed||settings.fxSpeed;
if(settings.fxSlide||settings.fxFade){if(settings.fxSlide){showAnim.height="show";
hideAnim.height="hide"
}if(settings.fxFade){showAnim.opacity="show";
hideAnim.opacity="hide"
}}else{if(settings.fxShow){showAnim=settings.fxShow
}else{showAnim["min-width"]=0;
showSpeed=1
}if(settings.fxHide){hideAnim=settings.fxHide
}else{hideAnim["min-width"]=0;
hideSpeed=1
}}var onClick=settings.onClick,onHide=settings.onHide,onShow=settings.onShow;
tabs.bind("triggerTab",function(){var li=$(this).parents("li:eq(0)");
if(container.locked||li.is("."+settings.selectedClass)||li.is("."+settings.disabledClass)){return false
}var hash=this.hash;
if($.browser.msie){$(this).trigger("click");
if(settings.bookmarkable){$.ajaxHistory.update(hash);
location.hash=hash.replace("#","")
}}else{if($.browser.safari){var tempForm=$('<form action="'+hash+'"><div><input type="submit" value="h" /></div></form>').get(0);
tempForm.submit();
$(this).trigger("click");
if(settings.bookmarkable){$.ajaxHistory.update(hash)
}}else{if(settings.bookmarkable){location.hash=hash.replace("#","")
}else{$(this).trigger("click")
}}}});
tabs.bind("disableTab",function(){var li=$(this).parents("li:eq(0)");
if($.browser.safari){li.animate({opacity:0},1,function(){li.css({opacity:""})
})
}li.addClass(settings.disabledClass)
});
if(settings.disabled&&settings.disabled.length){for(var i=0,k=settings.disabled.length;
i<k;
i++){tabs.eq(--settings.disabled[i]).trigger("disableTab").end()
}}tabs.bind("enableTab",function(){var li=$(this).parents("li:eq(0)");
li.removeClass(settings.disabledClass);
if($.browser.safari){li.animate({opacity:1},1,function(){li.css({opacity:""})
})
}});
tabs.bind("click",function(e){var trueClick=e.clientX;
var clicked=this,li=$(this).parents("li:eq(0)"),toShow=$(this.hash),toHide=containers.filter(":visible");
if(container.locked||li.is("."+settings.selectedClass)||li.is("."+settings.disabledClass)||typeof onClick=="function"&&onClick(this,toShow[0],toHide[0])===false){this.blur();
return false
}container.locked=true;
if(toShow.size()){if($.browser.msie&&settings.bookmarkable){var toShowId=this.hash.replace("#","");
toShow.attr("id","");
setTimeout(function(){toShow.attr("id",toShowId)
},0)
}var resetCSS={display:"",overflow:"",height:""};
if(!$.browser.msie){resetCSS.opacity=""
}function switchTab(){if(settings.bookmarkable&&trueClick){$.ajaxHistory.update(clicked.hash)
}toHide.animate(hideAnim,hideSpeed,function(){$(clicked).parents("li:eq(0)").addClass(settings.selectedClass).siblings().removeClass(settings.selectedClass);
toHide.addClass(settings.hideClass).css(resetCSS);
if(typeof onHide=="function"){onHide(clicked,toShow[0],toHide[0])
}if(!(settings.fxSlide||settings.fxFade||settings.fxShow)){toShow.css("display","block")
}toShow.animate(showAnim,showSpeed,function(){toShow.removeClass(settings.hideClass).css(resetCSS);
if($.browser.msie){toHide[0].style.filter="";
toShow[0].style.filter=""
}if(typeof onShow=="function"){onShow(clicked,toShow[0],toHide[0])
}container.locked=null
})
})
}if(!settings.remote){switchTab()
}else{$(clicked).trigger("loadRemoteTab",[switchTab])
}}else{alert("There is no such container.")
}var scrollX=window.pageXOffset||document.documentElement&&document.documentElement.scrollLeft||document.body.scrollLeft||0;
var scrollY=window.pageYOffset||document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop||0;
setTimeout(function(){window.scrollTo(scrollX,scrollY)
},0);
this.blur();
return settings.bookmarkable&&!!trueClick
});
if(settings.bookmarkable){$.ajaxHistory.initialize(function(){tabs.eq(settings.initial).trigger("click").end()
})
}})
};
var tabEvents=["triggerTab","disableTab","enableTab"];
for(var i=0;
i<tabEvents.length;
i++){$.fn[tabEvents[i]]=(function(tabEvent){return function(tab){return this.each(function(){var nav=$("ul.tabs-nav",this);
nav=nav.size()&&nav||$(">ul:eq(0)",this);
var a;
if(!tab||typeof tab=="number"){a=$("li a",nav).eq((tab&&tab>0&&tab-1||0))
}else{if(typeof tab=="string"){a=$('li a[@href$="#'+tab+'"]',nav)
}}a.trigger(tabEvent)
})
}
})(tabEvents[i])
}$.fn.activeTab=function(){var selectedTabs=[];
this.each(function(){var nav=$("ul.tabs-nav",this);
nav=nav.size()&&nav||$(">ul:eq(0)",this);
var lis=$("li",nav);
selectedTabs.push(lis.index(lis.filter(".tabs-selected")[0])+1)
});
return selectedTabs[0]
}
})(jQuery);
