(function($){var fixArray=function(args){if(args[0].constructor==Array){return $.makeArray(args[0])}else{return $.makeArray(args)}};var defaults={effect:'animate',params:[],callbackOnce:false};var Q=function(args){var q=fixArray(args);var _this=this;var done=[];var lastSelector;this.running=true;this.add=function(){var arr=fixArray(arguments);for(var i=0;i<arr.length;i++){q.push(arr[i])}};this.next=function(){if(q.length>0&&_this.running){var o=q.shift();lastSelector=o.selector||o.s||defaults.selector||defaults.s||lastSelector;var effect=o.effect||o.e||defaults.effect||defaults.e;var params=(o.params||o.p||defaults.params||defaults.p).slice();var callback=o.callback||o.c||defaults.callback||defaults.c;var callbackOnce=o.callbackOnce||defaults.callbackOnce;if(params.constructor!=Array){params=[params]}var $jq=$(lastSelector);if($jq.size()>0){var idx=done.length;done[idx]=false;params.push(function(){if(!done[idx]){done[idx]=true;if(callback){if(callbackOnce){callback.apply($jq.get(0))}else{$jq.each(function(){callback.apply(this)})}}_this.next()}});eval('$jq.'+effect+'.apply($jq, params)')}else{_this.next()}}else{_this.running=false}};setTimeout(this.next,10)};var queue=[];$.fxQueue={start:function(){if(arguments.length>0){var id=queue.length;queue[id]=new Q(arguments);return id}else{return-1}},stop:function(id){if(queue[id]){queue[id].running=false}},add:function(){if(arguments.length>1){var arr=$.makeArray(arguments);var id=arr.shift();if(queue[id]){queue[id].add(arr)}else{queue[id]=new Q(arr)}}},restart:function(id){if(queue[id]&&!queue[id].running){queue[id].running=true;setTimeout(queue[id].next,10)}},setDefaults:function(o){defaults=$.extend(defaults,o)}}})(jQuery);
