/*
	Kwicks for jQuery Minified
	Copyright (c) 2008 Jeremy Martin
	http://www.jeremymartin.name/projects.php?project=kwicks
	
	Licensed under the MIT license:
		http://www.opensource.org/licenses/mit-license.php

	Any and all use of this script must be accompanied by this copyright/license notice in its present form.

	11/8/2010: version 2.0 - Rob Garrison - Changed plugin format, updated & added a github repository.
*/

(function(h){h.kwicks=function(j,n){var a=this;a.$el=h(j).addClass("kwicks");a.el=j;a.$el.data("kwicks",a);a.init=function(){a.options=h.extend({},h.kwicks.defaultOptions,n);a.$kwicks=a.$el.children("li");a.$el.addClass(a.options.isVertical?"vertical":"horizontal");a.size=a.$kwicks.size();a.lastActive=a.options.defaultKwick;a.active=a.options.defaultKwick;a.$active=a.$kwicks.eq(a.active);a.WoH=a.options.isVertical?"height":"width";a.LoT=a.options.isVertical?"top":"left";a.normWoH=parseInt(a.$kwicks.eq(0).css(a.WoH), 10);a.preCalcLoTs=[];a.aniObj={};if(a.options.max)a.options.min=(a.normWoH*a.size-a.options.max)/(a.size-1);else a.options.max=a.normWoH*a.size-a.options.min*(a.size-1);a.options.isVertical?a.$el.css({width:a.$kwicks.eq(0).css("width"),height:a.normWoH*a.size+a.options.spacing*(a.size-1)}):a.$el.css({width:a.normWoH*a.size+a.options.spacing*(a.size-1),height:a.$kwicks.eq(0).css("height")});for(var b=0;b<a.size;b++){a.preCalcLoTs[b]=[];for(var f=1;f<a.size-1;f++)a.preCalcLoTs[b][f]=b==f?a.options.isVertical? f*a.options.min+f*a.options.spacing:f*a.options.min+f*a.options.spacing:(f<=b?f*a.options.min:(f-1)*a.options.min+a.options.max)+f*a.options.spacing}a.$kwicks.each(function(c){var d=h(this);d.addClass("kwick-panel kwick"+(c+1));if(c===0)d.css(a.LoT,0);else if(c==a.size-1)d.css(a.options.isVertical?"bottom":"right",0);else a.options.sticky?d.css(a.LoT,Math.ceil(a.preCalcLoTs[a.options.defaultKwick][c])):d.css(a.LoT,Math.ceil(c*a.normWoH+c*a.options.spacing));if(a.options.sticky)if(a.options.defaultKwick== c){d.css(a.WoH,a.options.max);d.addClass(a.options.activeClass)}else d.css(a.WoH,a.options.min);d.css({margin:0,position:"absolute"});d.bind(a.options.event,function(g){if(!d.is("."+a.options.activeClass)){a.$kwicks.stop().removeClass(a.options.activeClass);a.lastActive=a.active;a.$active=d;a.active=a.$kwicks.index(d);d.addClass(a.options.activeClass);a.triggerEvent("init");a.lastEvent=g.timeStamp;var e=[],k=[];for(g=0;g<a.size;g++){e[g]=parseInt(a.$kwicks.eq(g).css(a.WoH),10);k[g]=parseInt(a.$kwicks.eq(g).css(a.LoT), 10)}a.aniObj[a.WoH]=a.options.max;var l=a.options.max-e[c],o=e[c]/l;a.triggerEvent("expanding");d.animate(a.aniObj,{step:function(p){var m=l!==0?p/l-o:1;a.$kwicks.each(function(i){i!=c&&a.$kwicks.eq(i).css(a.WoH,Math.ceil(e[i]-(e[i]-a.options.min)*m));i>0&&i<a.size-1&&a.$kwicks.eq(i).css(a.LoT,Math.ceil(k[i]-(k[i]-a.preCalcLoTs[c][i])*m))})},duration:a.options.duration,easing:a.options.easing,complete:function(){a.triggerEvent("completed")}})}})});a.options.sticky||a.$el.bind(a.options.eventClose, function(c){if(!(c.timeStamp-a.lastEvent<200)){a.lastEvent=c.timeStamp;a.triggerEvent("init");a.closeKwick()}})};a.openKwick=function(b){if(/\d/.test(b)&&!isNaN(b)){b=parseInt(h.trim(b),10);b<0||b>a.size-1||a.$kwicks.eq(b).trigger(a.options.event)}};a.closeKwick=function(){if(!a.options.sticky){for(var b=[],f=[],c=0;c<a.size;c++){b[c]=parseInt(a.$kwicks.eq(c).css(a.WoH),10);f[c]=parseInt(a.$kwicks.eq(c).css(a.LoT),10)}a.aniObj[a.WoH]=a.normWoH;var d=a.normWoH-b[0];a.triggerEvent("collapsing");a.$kwicks.stop().removeClass(a.options.activeClass).eq(0).animate(a.aniObj, {step:function(g){g=d!==0?(g-b[0])/d:1;for(var e=1;e<a.size;e++){a.$kwicks.eq(e).css(a.WoH,Math.ceil(b[e]-(b[e]-a.normWoH)*g));e<a.size-1&&a.$kwicks.eq(e).css(a.LoT,Math.ceil(f[e]-(f[e]-(e*a.normWoH+e*a.options.spacing))*g))}},duration:a.options.duration,easing:a.options.easing,complete:function(){a.triggerEvent("completed")}})}};a.triggerEvent=function(b){a.$el.trigger("kwicks-"+b,a);h.isFunction(a.options[b])&&a.options[b](a)};a.isActive=function(){return a.$kwicks.is(".active")};a.getActive=function(){return a.isActive()? a.active:-1};a.init()};h.kwicks.defaultOptions={isVertical:false,sticky:false,defaultKwick:0,activeClass:"active",event:"mouseenter",eventClose:"mouseleave",spacing:0,duration:500,easing:"swing",max:null,min:null,init:null,expanding:null,collapsing:null,completed:null};h.fn.kwicks=function(j){return this.each(function(){h(this).data("kwicks")||new h.kwicks(this,j)})};h.fn.getkwicks=function(){this.data("kwicks")}})(jQuery);

