Team:WITS-CSIR SA/Accordion/jquery.zaccordion.min.js

From 2011.igem.org

Revision as of 14:29, 18 September 2011 by Nkruger (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

/* jQuery zAccordion Plugin Copyright 2010 - 2011 - Nate Armagost - http://www.armagost.com/zaccordion Version 1.1.2 Licensed under the MIT and GPL licenses

  • /

(function(a){a.fn.extend({zAccordion:function(c){var d={timeout:6000,width:960,height:340,slideWidth:660,slideHeight:340,tabWidth:100,startingSlide:0,slideClass:"slide",slideOpenClass:"slide-open",slideClosedClass:"slide-closed",slidePreviousClass:"slide-previous",easing:null,speed:1200,open:function(){},close:function(){},auto:true,trigger:"click",pause:true,click:function(){},invert:false,afterBuild:function(){}};if((c.height==undefined)&&(c.slideHeight==undefined)){c.height=d.height;c.slideHeight=d.slideHeight}else{if((c.height!=undefined)&&(c.slideHeight==undefined)){c.slideHeight=c.height}else{if((c.height==undefined)&&(c.slideHeight!=undefined)){c.height=c.slideHeight}}}if((c.width==undefined)&&(c.slideWidth==undefined)&&(c.tabWidth==undefined)){c.width=d.width;c.tabWidth=d.tabWidth;c.slideWidth=d.slideWidth}else{if((c.width!=undefined)&&(c.slideWidth==undefined)&&(c.tabWidth==undefined)){c.tabWidth=100;c.slideWidth=c.width-((this.children().size()-1)*c.tabWidth)}else{if((c.width==undefined)&&(c.slideWidth!=undefined)&&(c.tabWidth==undefined)){c.width=d.width;c.tabWidth=(d.width-c.slideWidth)/(this.children().size()-1)}else{if((c.width==undefined)&&(c.slideWidth==undefined)&&(c.tabWidth!=undefined)){c.width=d.width;c.slideWidth=c.width-((this.children().size()-1)*c.tabWidth)}else{if((c.width!=undefined)&&(c.slideWidth!=undefined)&&(c.tabWidth==undefined)){c.tabWidth=(c.width-c.slideWidth)/(this.children().size()-1)}else{if((c.width!=undefined)&&(c.slideWidth==undefined)&&(c.tabWidth!=undefined)){c.slideWidth=c.width-((this.children().size()-1)*c.tabWidth)}else{if((c.width==undefined)&&(c.slideWidth!=undefined)&&(c.tabWidth!=undefined)){c.width=((this.children().size()-1)*c.tabWidth)+c.slideWidth}}}}}}}d.animate=c.slideWidth-c.tabWidth;var b=null;d.inside=false;d.current=d.startingSlide;var c=a.extend(d,c);this.click=function(e){clearTimeout(b);e++;if((e>a(this).children().size())||(e<1)){e=1}a(this).children(a(this).children().get(0).tagName+":nth-child("+e+")").trigger(d.trigger)};this.stop=function(){clearTimeout(b);d.auto=false};this.start=function(){clearTimeout(b);d.auto=true;var e=a(this).children().get(0).tagName+"."+d.slideOpenClass;this.click(a(this).children(e).index()+1)};return this.each(function(){var j=c;var h=a(this);var f;var g=10000;var e=[];h.children().each(function(i){var k;if(!j.invert){f=i*j.tabWidth}else{f=((h.children().size()-1)*j.tabWidth)-(i*j.tabWidth)}e[i]=f;if(!j.invert){k=i*10}else{k=((h.children().size()-1)-i)*10}a(this).addClass(j.slideClass);a(this).css({top:0,"z-index":k,margin:0,padding:0,"float":"left",display:"block",position:"absolute",overflow:"hidden",width:j.slideWidth+"px",height:j.slideHeight+"px"});if(!j.invert){a(this).css({left:f+"px","float":"left"})}else{a(this).css({right:f+"px","float":"right"})}if(i==(j.startingSlide)){a(this).addClass(j.slideOpenClass).css("cursor","default")}else{a(this).addClass(j.slideClosedClass).css("cursor","pointer");if((i>(j.startingSlide))&&(!j.invert)){var l=i+1;h.children(h.children().get(0).tagName+":nth-child("+l+")").css({left:e[l-1]+j.animate+"px"})}else{if((i<(j.startingSlide))&&(j.invert)){var l=i+1;h.children(h.children().get(0).tagName+":nth-child("+l+")").css({right:e[l-1]+j.animate+"px"})}}}});h.css({display:"block",height:j.height+"px",overflow:"hidden",width:j.width+"px",padding:0,position:"relative",overflow:"hidden"});if((h.get(0).tagName=="UL")||(h.get(0).tagName=="OL")){h.css({"list-style":"none"})}h.hover(function(){j.inside=true;try{clearTimeout(b)}catch(i){}},function(){j.inside=false;try{clearTimeout(b)}catch(i){}if(j.auto){b=setTimeout(function(){j.current=h.children(h.children().get(0).tagName+"."+j.slideOpenClass).index()+1;var k=j.current+1;if(k>e.length){k=1}h.children(h.children().get(0).tagName+":nth-child("+k+")").trigger(j.trigger)},j.timeout)}});h.children(h.children().get(0).tagName+"."+j.slideClass).bind(j.trigger,function(){if(!(a(this).hasClass(j.slideOpenClass))){try{clearTimeout(b)}catch(m){}if(!j.inside&&j.auto){b=setTimeout(function(){j.current=h.children(h.children().get(0).tagName+"."+j.slideOpenClass).index()+1;var i=j.current+1;if(i>e.length){i=1}h.children(h.children().get(0).tagName+":nth-child("+i+")").trigger(j.trigger)},j.timeout)}h.children(h.children().get(0).tagName+"."+j.slidePreviousClass).removeClass(j.slidePreviousClass);h.children(h.children().get(0).tagName+"."+j.slideOpenClass).addClass(j.slidePreviousClass);h.children(h.children().get(0).tagName+"."+j.slideClass).addClass(j.slideClosedClass).removeClass(j.slideOpenClass).css("cursor","pointer");a(this).addClass(j.slideOpenClass).removeClass(j.slideClosedClass).css("cursor","default");var k=a(this).index()+1;if(j.click!=null){j.click()}if(!j.invert){h.children(h.children().get(0).tagName+":nth-child("+k+")").stop().animate({left:e[k-1]+"px"},j.speed,j.easing,j.open)}else{h.children(h.children().get(0).tagName+":nth-child("+k+")").stop().animate({right:e[k-1]+"px"},j.speed,j.easing,j.open)}for(var l=1;l<=e.length;l++){if(l<k){if(!j.invert){h.children(h.children().get(0).tagName+":nth-child("+l+")").stop().animate({left:e[l-1]+"px"},j.speed,j.easing,j.close)}else{h.children(h.children().get(0).tagName+":nth-child("+l+")").stop().animate({right:j.width-(l*j.tabWidth)+"px"},j.speed,j.easing,j.close)}}if(l>k){if(!j.invert){h.children(h.children().get(0).tagName+":nth-child("+l+")").stop().animate({left:e[l-1]+j.animate+"px"},j.speed,j.easing,j.close)}else{h.children(h.children().get(0).tagName+":nth-child("+l+")").stop().animate({right:(e.length-l)*j.tabWidth+"px"},j.speed,j.easing,j.close)}}}return false}});if(j.auto){b=setTimeout(function(){j.current=h.children(h.children().get(0).tagName+"."+j.slideOpenClass).index()+1;var i=j.current+1;if(i>e.length){i=1}h.children(h.children().get(0).tagName+":nth-child("+i+")").trigger(j.trigger)},j.timeout)}j.afterBuild()})}})})(jQuery);