/*
 * .tabSwitch
 * Version: 1.0
 * http://www.hieu.co.uk/blog/index.php/tabswitch/
 *
 * Copyright (c) 2009 Hieu Pham - http://www.hieu.co.uk
 * COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
 * http://www.opensource.org/licenses/cddl1.php
 *
 * Date: 14/04/2009
 */
(function($){$.fn.tabSwitch=function(command,Arguements,EndFunction){var defaults={type:"slide",cols:2,toggle:"fade",ease:40,easeType:"linear",loopback:1,width:400,height:400,index:0,speed:500,interval:5000,step:1,wrapperClass:"",viewportClass:""};var Args=$.extend(defaults,Arguements);var Obj=this;var jFirstObj=Obj.eq(1);var DOMFirstObj=Obj.eq(1).get(0);if(!$.isFunction(EndFunction)){var Callback=function(){$.data(DOMFirstObj,"index",Args.index)}}else{var Callback=function(){$.data(DOMFirstObj,"index",Args.index);EndFunction()}}StoreToCache=function(){$.data(DOMFirstObj,"type",Args.type);$.data(DOMFirstObj,"toggle",Args.toggle);$.data(DOMFirstObj,"cols",Args.cols);$.data(DOMFirstObj,"ease",Args.ease);$.data(DOMFirstObj,"easeType",Args.easeType);$.data(DOMFirstObj,"index",Args.index);$.data(DOMFirstObj,"loopback",Args.loopback);if(jFirstObj.attr("style")){$.data(DOMFirstObj,"orgAttr",jFirstObj.attr("style"))}else{$.data(DOMFirstObj,"orgAttr","")}};backFromCache=function(){Obj.attr("style",$.data(DOMFirstObj,"orgAttr"));var ViewPortObj=$("#ViewPort"+$.data(DOMFirstObj));ViewPortObj.replaceWith(Obj);stopAuto();$.removeData(DOMFirstObj)};var createTab=function(){StoreToCache();if(Args.width){Obj.width(Args.width)}if(Args.height){Obj.height(Args.height)}var WraperSelector="WideDiv"+$.data(DOMFirstObj);Obj.wrapAll("<div id='"+WraperSelector+"'></div>");var WraperObj=$("#"+WraperSelector);WraperObj.addClass(Args.wraperClass);WraperObj.css({position:"relative"});WraperObj.wrap("<div id='"+WraperSelector.replace("WideDiv","ViewPort")+"'></div>");var ViewPortObj=$("#"+WraperSelector.replace("WideDiv","ViewPort"));ViewPortObj.width(Args.width);ViewPortObj.height(Args.height);ViewPortObj.css({display:"block",overflow:"hidden",position:"relative"});ViewPortObj.addClass(Args.viewportClass);switch(Args.type){case"slide":Obj.css({"float":"left"});WraperObj.width((Args.width+2)*Obj.length);break;case"scroll":WraperObj.width(Args.width);WraperObj.height((Args.height+2)*Obj.length);break;case"toggle":WraperObj.width(Args.width);WraperObj.height(Args.height);Obj.css({position:"absolute",left:"-999px"});Obj.eq(Args.index).css({left:"0px",top:"0px"});Obj.eq(Args.index).css("opacity",1);break;case"table":WraperObj.width(Args.width*Args.cols);Obj.css("float","left")}moveTo()};var moveTo=function(){var ease=0;if(!Args.easeType){Args.easeType=(DOMFirstObj,"easeType")}if(Args.index>Obj.length-1){if($.data(DOMFirstObj,"loopback")!=0){Args.index=0;ease=-$.data(DOMFirstObj,"ease")}else{return}}if(Args.index<0){if($.data(DOMFirstObj,"loopback")!=0){Args.index=Obj.length-1;ease=$.data(DOMFirstObj,"ease")}else{return}}var WraperSelector="WideDiv"+$.data(DOMFirstObj);var WraperObj=$("#"+WraperSelector);switch($.data(DOMFirstObj,"type")){case"slide":if(ease!=0){var easeLevel=(parseInt(WraperObj.css("left").replace("px",""))+ease);WraperObj.animate({left:easeLevel+"px"},Args.speed,function(){WraperObj.animate({left:-(Obj.outerWidth(true)*Args.index)+"px"},Args.speed,Args.easeType,Callback())})}else{WraperObj.animate({left:-(Obj.outerWidth(true)*Args.index)+"px"},Args.speed,Args.easeType,Callback())}break;case"scroll":if(ease!=0){var easeLevel=(parseInt(WraperObj.css("top").replace("px",""))+ease);WraperObj.animate({top:easeLevel+"px"},Args.speed,function(){WraperObj.animate({top:-(Obj.outerHeight(true)*Args.index)+"px"},Args.speed,Args.easeType,Callback())})}else{WraperObj.animate({top:-(Obj.outerHeight(true)*Args.index)+"px"},Args.speed,Args.easeType,Callback())}break;case"toggle":Obj.eq(Args.index).css({left:"0px",top:"0px"});switch($.data(DOMFirstObj,"toggle")){case"fade":Obj.eq(Args.index).css({opacity:0});Obj.eq(Args.index).animate({opacity:1},Args.speed);if($.data(DOMFirstObj,"index")!=Args.index){Obj.eq($.data(DOMFirstObj,"index")).animate({opacity:0},Args.speed,function(){$(this).css("left",-999);Callback()})}break;case"toggle":if($.data(DOMFirstObj,"index")!=Args.index){Obj.eq(Args.index).css({display:"none"});Obj.eq($.data(DOMFirstObj,"index")).slideUp(Args.speed,function(){Obj.eq(Args.index).slideDown(Args.speed,function(){Callback()});$(this).css("left",-999)})}break;case"show":if($.data(DOMFirstObj,"index")!=Args.index){Obj.eq(Args.index).css({display:"none"});Obj.eq($.data(DOMFirstObj,"index")).hide(Args.speed,function(){Obj.eq(Args.index).show(Args.speed,function(){Callback()});$(this).css("left",-999)})}break;case"noeffect":if($.data(DOMFirstObj,"index")!=Args.index){Obj.eq($.data(DOMFirstObj,"index")).css("left",-999);Callback()}break}break;case"table":var cols=$.data(DOMFirstObj,"cols");var nextX=-(Args.index%cols)*Obj.width();var nextY=-Math.floor(Args.index/cols)*Obj.height();WraperObj.animate({left:nextX},Args.speed,Args.easeType,function(){WraperObj.animate({top:nextY},Args.speed,Args.easeType,Callback())});break;default:$("html,body").animate({scrollTop:Obj.eq(Args.index).offset().top},Args.speed);break}};moveStep=function(){var currentIdx=$.data(DOMFirstObj,"index");Args.index=parseInt(currentIdx)+parseInt(Args.step);moveTo()};startAuto=function(){$.data(DOMFirstObj,"AutoSwitch",setInterval(moveStep,Args.interval))};stopAuto=function(){clearInterval($.data(DOMFirstObj,"AutoSwitch"));$.removeData(DOMFirstObj,"AutoSwitch")};toggleAuto=function(){if(isAuto()){stopAuto()}else{startAuto()}};isAuto=function(){if($.data(DOMFirstObj,"AutoSwitch")){return true}else{return false}};if(!command){command=""}switch(command.toLowerCase()){case"index":if($.data(DOMFirstObj,"index")){return $.data(DOMFirstObj,"index")}else{return 0}break;case"moveto":moveTo();break;case"movestep":moveStep();break;case"destroy":backFromCache();break;case"create":createTab();break;case"isauto":return isAuto();break;case"toggleauto":toggleAuto();break;case"startauto":startAuto();break;case"stopauto":stopAuto();break}}})(jQuery);
