/*
 * jQuery Timetabs v1
 * http://www.tn34.de
 *
 * Copyright 2010, TN34.DE
 * Released under the GPL license.
 * http://www.gnu.org/licenses/gpl-2.0.html
 *
 * Date: Tue Aug 17 12:19:511 2010
 */

(function(jQuery){jQuery.fn.timetabs=function(options){var opt=jQuery.extend({},jQuery.timetabs.defaults,options);return this.each(function(){var gDLIndex=jQuery.timetabs.gDLI.length++;var delayedStartInterval=null;var continueFlag=false;jQuery.timetabs.gDLI[gDLIndex]={selfObj:jQuery(this),self:this,t:'',c:'',cIndex:0,stTime:0,timeOut:0,timeLeft:0};jQuery.timetabs.gDLI[gDLIndex].t=gDLI().selfObj.children('dt');jQuery.timetabs.gDLI[gDLIndex].c=gDLI().selfObj.children('dd');if(gDLI().t.length!==gDLI().c.length)return;jQuery.timetabs.gDLI[gDLIndex].cIndex=((opt.defaultIndex+1)>gDLI().t.length||opt.defaultIndex<0)?0:opt.defaultIndex;switch(opt.animated){case'slide':case'curtain':case'fade':break;default:case false:opt.animated=false;break}if(opt.animated!==false){gDLI().selfObj.find('dd:gt('+gDLI().cIndex+')').hide()}_3(gDLI().cIndex);jQuery(gDLI().t).click(function(e){_3(this,e);e.stopPropagation()});if((isNaN(opt.interval))!==true||parseInt(opt.interval)>0){jQuery(gDLI().t).mouseover(_0).mouseenter(_0).mouseleave(_2);jQuery(gDLI().c).mouseover(_0).mouseenter(_0).mouseleave(_2)}function _4(){clearTimeout(jQuery.timetabs.gDLI[gDLIndex].timeOut);if(delayedStartInterval)clearTimeout(delayedStartInterval);jQuery.timetabs.gDLI[gDLIndex].stTime=new Date().valueOf();jQuery.timetabs.gDLI[gDLIndex].timeOut=setTimeout(function(){_3()},opt.interval);jQuery.timetabs.gDLI[gDLIndex].timeLeft=opt.interval}function _0(){clearTimeout(jQuery.timetabs.gDLI[gDLIndex].timeOut);if(delayedStartInterval)clearTimeout(delayedStartInterval);continueFlag=true;var timeRan=new Date().valueOf()-gDLI().stTime;jQuery.timetabs.gDLI[gDLIndex].timeLeft-=timeRan}function _2(){if(opt.continueOnMouseLeave===true){delayedStartInterval=setTimeout(function(){jQuery.timetabs.gDLI[gDLIndex].timeout=setTimeout(function(){_3()},gDLI().timeLeft)},350)}else{jQuery(gDLI().t).unbind('mouseover',_0).unbind('mouseenter',_0).unbind('mouseleave',_2);jQuery(gDLI().c).unbind('mouseover',_0).unbind('mouseenter',_0).unbind('mouseleave',_2)}}function _3(el,e){clearTimeout(jQuery.timetabs.gDLI[gDLIndex].timeOut);if(delayedStartInterval)clearTimeout(delayedStartInterval);if(typeof el=='number'){var index=el}else if(typeof el=='undefined'){var index=gDLI().cIndex+1}else if(typeof el=='object'){var index=gDLI().selfObj.children('dt').index(el)}else{var index=0}if(index==gDLI().t.length){index=0}if(typeof e!=='undefined'&&jQuery.timetabs.gDLI[gDLIndex].cIndex==index){_1(e);return}opt.beforeChange(gDLI());function tabAnimation(i){switch(opt.animated){case'slide':case'curtain':case'fade':gDLI().selfObj.children('dt.active').removeClass('active');jQuery(gDLI().t.get(i)).addClass('active');break}}switch(opt.animated){case false:tabAnimation(index);gDLI().selfObj.children('.active').removeClass('active');jQuery(gDLI().t.get(index)).addClass('active').next('dd').addClass('active');_1(e);break;case'slide':if(gDLI().selfObj.children('dd.active').length==0){tabAnimation(index);jQuery(gDLI().c.get(index)).addClass('active');_1(e)}else{gDLI().selfObj.children('dd.active').slideUp(opt.animationSpeed,function(){tabAnimation(index);jQuery(gDLI().c.get(index)).slideDown(opt.animationSpeed,function(){_1(e);jQuery(this).addClass('active')});jQuery(this).removeClass('active').hide()})}break;case'curtain':tabAnimation(index);jQuery(gDLI().c.get(index)).css('z-index','10000').slideDown(opt.animationSpeed,function(){gDLI().selfObj.children('dd.active').removeClass('active').hide();_1(e);jQuery(this).css('z-index','1').addClass('active')});break;default:case'fade':tabAnimation(index);jQuery(gDLI().c.get(index)).css('z-index','10000').fadeIn(opt.animationSpeed,function(){gDLI().selfObj.children('dd.active').removeClass('active').hide();_1(e);jQuery(this).css('z-index','1').addClass('active')});break}jQuery.timetabs.gDLI[gDLIndex].cIndex=index;opt.afterChange(gDLI())}function _1(e){if(opt.continueOnMouseLeave===false&&continueFlag===true){return}if(typeof e!=='undefined'&&((isNaN(opt.interval))!==true||parseInt(opt.interval)>0)){gDLI().selfObj.one('mouseleave',function(){_4()})}else _4()}function gDLI(){return jQuery.timetabs.gDLI[gDLIndex]}})};jQuery.timetabs={defaults:{defaultIndex:0,interval:2500,continueOnMouseLeave:true,animated:false,animationSpeed:500,beforeChange:function(){},afterChange:function(){}},gDLI:[]}})(jQuery);
