/* idTabs v3.0 ~ Sean Catchpole - Copyright 2010 MIT/GPL */
(function($){var idTabs,undefined,href=function(e){return $(e).attr("href");},type=function(o){return o===null&&"Null"||o===undefined&&"Undefined"||({}).toString.call(o).slice(8,-1);};$.fn.idTabs=function(){var s=idTabs.args.apply(this,arguments),action=s.update&&"update"||s.remove&&"remove"||"bind";s.area=this;idTabs[action](s);return this;};idTabs=$.idTabs=function(tabarea,options,data){var e,tabs,items,test=$(),meta=$.metadata?$(tabarea).metadata():{},s={tab:idTabs.tab,item:idTabs.item};s=$.extend(s,idTabs.settings,meta,options||{});s.tabarea=$(tabarea);s.data=data||"idTabs"+ +new Date;$.each({selected:".",event:"!",start:"#"},function(n,c){if(type(s[n])=="String"&&s[n].indexOf(c)==0){s[n]=s[n].substr(1);}});if(s.start===null){s.start=-1;}items=[];s.tabs=tabs=$("a[href^=#]",tabarea);tabs.each(function(){test=s.item(href(this));if(test.length){items=items.concat(test.get());}});s.items=$(items).hide();e="idTabs."+s.event;data=s.tabarea.data("idTabs")||{};data[e]=s;s.tabarea.data("idTabs",data);tabs.trigger(e).data(s.data,s).bind(e,{s:s},function(){return idTabs.unbind.apply(this,arguments);}).bind(s.event,{s:s},idTabs.find);type(s.start)=="Number"&&(s.start<0||(test=tabs.eq(s.start)).length)||type(s.start)=="String"&&(test=tabs.filter("a[href=#"+s.start+"]")).length||(test=tabs.filter("."+s.selected).removeClass(s.selected)).length||(s.start===undefined&&(test=tabs.eq(0)).length);if(test.length){test.trigger(s.event);}return s;};idTabs.args=function(){var a,i=0,s={},args=arguments,str=function(_,a){if(a.indexOf(".")==0){s.selected=a;}else{if(a.indexOf("!")==0){if(/^!(true|false)$/i.test(a)){s.toggle=/^!true$/i.test(a);}else{s.event=a;}}else{if(a.indexOf(":")==0){a=a.substr(1).toLowerCase();if(a.indexOf("!")==0){s[a.substr(1)]=false;}else{s[a]=true;}}else{if(a){s.start=a;}}}}};while(i<args.length){a=args[i++];switch(type(a)){case"Object":$.extend(s,a);break;case"Boolean":s.change=a;break;case"Number":s.start=a;break;case"Function":s.click=a;break;case"Null":s.start=a;break;case"String":$.each(a.split(/\s+/g),str);default:break;}}return s;};idTabs.bind=function(s){if(!s){return;}var data="idTabs"+ +new Date;if(s.grouped){$.idTabs(s.area,s,data);}else{s.area.each(function(){$.idTabs(this,s,data);});}};idTabs.update=function(s){if(!s){return;}s.update=false;var self,data,n,e=s.event;e=(e+"").indexOf("!")==0&&e.substr(1)||e;e=e?"idTabs."+e:"";return s.area.each(function(){self=$(this);data=self.data("idTabs");if(!data){return;}if(e){n=$.extend({},data[e],s);idTabs.remove(data[e]);idTabs(n.tabarea,n,n.data);}else{for(e in data){if(!Object.hasOwnProperty.call(data,e)){continue;}n=$.extend({},data[e],s);idTabs.remove(data[e]);idTabs(n.tabarea,n,n.data);}}});};idTabs.remove=function(s){if(!s){return;}var data,tabs,e=s.event;e=(e+"").indexOf("!")==0&&e.substr(1)||e;e="idTabs"+(e?"."+e:"");return s.area.each(function(){data=$(this).data("idTabs");delete data["idTabs."+s.event];$(this).data("idTabs",data);tabs=s.tabs||$("a[href^=#]",this);if(!tabs.length&&$(this).is("a[href^=#]")){tabs=$(this);}tabs.trigger(e);});};idTabs.find=function(e){var self=this,ret=false,s=e.data.s;$("a[href="+href(this)+"]:first",s.area).each(function(){var t=$(this).data(s.data);if(t){ret=idTabs.showtab.call(t.tabarea==s.tabarea?self:this,t,e)||ret;}});return ret;};idTabs.showtab=function(s,e){if(!s||!s.toggle&&$(this).is("."+s.selected)){return s&&s.change;}var id=href(this);if(s.click&&s.click.call(this,id,s,e)==false){return s.change;}if(s.toggle&&$(this).is("."+s.selected)){id=null;}return idTabs.show.call(this,id,s,e);};idTabs.show=function(id,s){s.tabs.removeClass(s.selected);s.tab(id).addClass(s.selected);s.items.hide();s.item(id).show();return s.change;};idTabs.unbind=function(e){var s=e.data.s;$(this).removeData(s.data).unbind("idTabs."+s.event);return false;};idTabs.extend=function(){var args=arguments;return function(){[].push.apply(args,arguments);this.idTabs.apply(this,args);};};idTabs.tab=function(id){if(!id){return $([]);}return $("a[href="+id+"]",this.tabarea);};idTabs.item=function(id){if(!id){return $([]);}var item=$(id);return item.length?item:$("."+id.substr(1));};idTabs.settings={start:undefined,change:false,click:null,selected:".selected",event:"!click",toggle:false,grouped:false};idTabs.version="3.0";$(function(){$(".idTabs").idTabs();});})(jQuery);