(function(c){var d;var a=function(){};var b=function(e,f){return function(){if(c.isFunction(f)){return f.apply(e,arguments)}else{return e[f].apply(e,arguments)}}};animationqueue={};animationqueue.AnimationQueue=function(){this.sets=[];this.isRunning=false;this.current=0;this.totalTime=0;this.elapsedTime=0;this.startTime=1;this.poll=null};animationqueue.AnimationQueue.prototype={queue:function(e){this.sets.push(e)},start:function(h,i){this.totalTime=h;this.elapsedTime=0;this.isRunning=true;i=c.isFunction(i)?i:a;var f=1;var e=1;if(this.sets.length>0){f=this.sets.length;e=this.sets[0].totalTime>0?Math.max(0,Math.min(1,1-(this.sets[0].elapsedTime/this.sets[0].totalTime))):1}var g=(new Date()).getTime();if(this.sets.length>0){this.sets[0].start(e/f*this.totalTime)}(function(j,l,k){function m(){j.elapsedTime=(new Date()).getTime()-g;if(j.sets.length&&!j.sets[0].isRunning){j.sets.shift();if(j.sets.length){j.sets[0].start(l/k)}}if(j.elapsedTime>=j.totalTime&&j.sets.length==0){i(j.elapsedTime);j.stop()}}j.poll=setInterval(m,16)})(this,this.totalTime,f)},stop:function(){if(this.isRunning){this.isRunning=false;var e=this.sets.length;while(e--){this.sets[e].stop()}clearInterval(this.poll)}},remove:function(g){var f=this.sets.length;while(f--){if(this.sets[f]==g){var e=this.sets.slice(0,f);this.animationSet=e.push(this.sets.slice(f+1))}}},get:function(){return this.sets.slice(0)}};animationqueue.AnimationSet=function(){this.steps=[];this.isStepsSorted=true;this.currentStep=-1;this.animations=[];this.isRunning=false;this.totalTime=0;this.elapsedTime=0;this.poll=null;this.data={}};animationqueue.AnimationSet.prototype={add:function(e){if(e instanceof animationqueue.AnimationStep){this.steps.push(e);this.isStepsSorted=false;++this.currentStep}else{if(e instanceof animationqueue.Animation){this.animations.push(e)}}},start:function(h){this.elapsedTime=this.totalTime==0?0:this.elapsedTime/this.totalTime*h;this.totalTime=h;if(!this.isStepsSorted){this.steps.sort(function(k,i){return i.moment-k.moment});this.isStepsSorted=true}this.isRunning=true;this.startTime=(new Date()).getTime()-this.elapsedTime;var g=this.animations.length;while(g--){this.animations[g].start(this.totalTime)}var f=this;var e=this.animations.length-1;function j(i){f.elapsedTime=(new Date()).getTime()-f.startTime;while(f.currentStep>=0&&f.steps[f.currentStep].getTime(f.totalTime)<=f.elapsedTime){f.steps[f.currentStep].doIt();--f.currentStep}if(f.elapsedTime>=f.totalTime&&f.currentStep<0){while(e>=0&&!f.animations[e].isRunning){--e}if(e<0){f.reset(f.elapsedTime)}}}this.poll=setInterval(j,16)},stop:function(){if(this.isRunning){this.isRunning=false;if(this.poll){clearInterval(this.poll)}var e=this.animations.length;while(e--){this.animations[e].stop()}}},setData:function(e,f){this.data[e]=f},getData:function(e){return this.data[e]},reset:function(){this.stop();this.elapsedTime=0;this.currentStep=this.steps.length-1}};animationqueue.AnimationStep=function(f,e,g){this.$element=f;this.cssParams=e;this.moment=Math.min(1,Math.max(0,g))};animationqueue.AnimationStep.prototype={getTime:function(e){return this.moment*e},doIt:function(){this.$element.css(this.cssParams)}};animationqueue.Animation=function(e,f){this.$element=e;this.animateParams=f;this.isRunning=false};animationqueue.Animation.prototype={start:function(e){this.$element.stop();if(e===0){this.$element.css(this.animateParams);self.isRunning=false}else{this.isRunning=true;this.$element.animate(this.animateParams,e,b(this,function(){this.isRunning=false}))}},stop:function(){this.$element.stop();this.isRunning=false}};c.jcoverflip={animationElement:function(g,f,e){return{element:g,animate:f,steps:e}},getItemFromElement:function(e){e=c(e);var f=e.hasClass("ui-jcoverflip--item")?e:e.parents(".ui-jcoverflip--item");if(f.size()==0){return null}else{return{element:f,index:f.data("jcoverflip__index")}}}};c.widget("ui.jcoverflip",{_init:function(){this.animationQueue=new animationqueue.AnimationQueue();this.isInit=false;this.goToPoll={id:null};this.goToQueue=[];var e=this.items();this.element.addClass("ui-jcoverflip");e.addClass("ui-jcoverflip--item");var f=e.size();while(f--){var g=e.eq(f);g.data("jcoverflip__index",f);var h=this.options.titles.create(g);h.css({display:"none"}).addClass("ui-jcoverflip--title").appendTo(this.element);g.data("jcoverflip__titleElement",h)}this.element.click(b(this,this._clickItem));this._goTo(this.options.current,0,true);this.options.controls.create(this.element,this.length())},_clickItem:function(f){if(this.options.disabled==true){return}var e=c.jcoverflip.getItemFromElement(f.target);if(e!==null&&e.index!=this.current()){this.current(e.index,f);f.preventDefault();return false}return true},_nextAndPrevParameters:function(g,f,h,e){if(typeof g=="object"){e=g}else{if(typeof f=="object"){e=f}else{if(typeof h=="object"){e=h}else{if(typeof e=="object"){e=e}else{e={}}}}}if(c.isFunction(g)){h=g}else{if(c.isFunction(f)){h=f}else{if(c.isFunction(h)){h=h}else{h=a}}}if(typeof(g)=="boolean"){f=g}else{if(typeof(f)=="boolean"){f=f}else{f=true}}g=isNaN(parseInt(g))?1:parseInt(g);return{by:g,wrapAround:f,callback:h,originalEvent:e}},next:function(g,f,i,e){if(this.options.disabled==true){return}var h=this._nextAndPrevParameters(g,f,i,e);return this._nextAux(h.by,h.wrapAround,h.callback,h.originalEvent,"next")},_nextAux:function(k,i,m,f,g){k=k===d&&isNaN(k)?1:parseInt(k);i=i!==false;var j=this.current();var l=j;var h=this.length();if(i){j=(j+k)%h;j=j<0?j+h:j}else{j=Math.min(h-1,Math.max(0,j+k))}if(j!=this.current()){this.current(j,f)}if(g&&l!=j){var e=c.Event(f);e.type=this.widgetEventPrefix+g;m.call(this.element,e,{from:l,to:j});this._trigger(g,f,{from:l,to:j})}return j},previous:function(g,f,i,e){if(this.options.disabled==true){return}var h=this._nextAndPrevParameters(g,f,i,e);return this._nextAux(-1*h.by,h.wrapAround,h.callback,h.originalEvent,"previous")},first:function(i,e){if(this.options.disabled==true){return}if(typeof i=="object"){e=i}else{if(typeof e=="object"){e=e}else{e={}}}i=c.isFunction(i)?i:a;var h=this.current();var g=this.current(0,e);if(h!=g){var f=c.Event(e);f.type=this.widgetEventPrefix+"first";i.call(this.element,f,{from:h,to:g});this._trigger("first",e,{from:h,to:g})}},last:function(i,e){if(this.options.disabled==true){return}if(typeof i=="object"){e=i}else{if(typeof e=="object"){e=e}else{e={}}}i=c.isFunction(i)?i:a;var h=this.current();var g=this.current(this.length()-1,e);if(h!=g){var f=c.Event(e);f.type=this.widgetEventPrefix+"last";i.call(this.element,f,{from:h,to:g});this._trigger("last",e,{from:h,to:g})}},current:function(f,e){if(f!==d&&!isNaN(f)&&!this.options.disabled&&f!=this.options.current){this._goTo(f,d,false,e)}return this.options.current},destroy:function(){if(this.options.disabled==true){return}this._trigger("destroy",{});this.element.removeClass("ui-jcoverflip");var f=this.items();var e;var g=f.length;while(g--){e=f.eq(g).data("jcoverflip__titleElement");this.options.titles.destroy(e)}f.removeClass("ui-jcoverflip--item").find("*").add(f.get()).each(function(){this.removeAttribute("style")});this.options.controls.destroy(this.element);c.widget.prototype.destroy.apply(this,arguments)},enable:function(){c.widget.prototype.enable.apply(this,arguments);this._trigger("enable",{})},disable:function(){c.widget.prototype.disable.apply(this,arguments);this._trigger("disable",{})},option:function(e,f){if(typeof f=="undefined"){return c.widget.prototype.option.apply(this,arguments)}if(e=="current"){return this.current(f)}if(e in {items:"",titles:"",controls:""}){return this.options.items}if(e in {beforeCss:"",afterCss:"",currentCss:""}){this.options[e]=f;this._goTo(this.current(),0,true)}if(e=="time"&&isNaN(parseInt(f))&&parseInt(f)<0){return this.options.time}return c.widget.prototype.option.apply(this,arguments)},_goTo:function(m,n,f,A){if(this.options.disabled==true){return}f=!!f;A=A==d?{}:A;n=n===d?this.options.time:parseInt(n);var q=this.options.current;var u=Math.floor(Math.max(0,Math.min(m,this.length()-1)));this.options.current=u;this.animationQueue.stop();var p=this.animationQueue.get();var y=p.length;while(y--){var g=p[y].getData("to");var r=p[y].getData("goingToTheRight");var w=g>u;if(w!=r){this.animationQueue.remove(p[y])}}p=this.animationQueue.get();var h=p.length>0?p.pop().getData("to"):q;var r=h<u;h+=r?1:-1;if(f){h=u}var t=this.items();while((r&&h<=u)||(!r&&h>=u)||(f&&h==u)){var v=new animationqueue.AnimationSet();this.animationQueue.queue(v);v.setData("goingToTheRight",r);v.setData("to",h);var y=t.length;while(y--){var e=t.eq(y);if(y<h){var o=this.options.beforeCss(e,this.element,h-y-1)}else{if(y>h){var o=this.options.afterCss(e,this.element,y-h-1)}else{var o=this.options.currentCss(e,this.element,y-h-1)}}var x=o.length;while(x--){var z=o[x];v.add(new animationqueue.Animation(z.element,z.animate));for(var l in z.steps){v.add(new animationqueue.AnimationStep(z.element,z.steps[l],parseFloat(l)))}}}h+=r?1:-1}var s=t.eq(u).data("jcoverflip__titleElement");if(s){this.options.titleAnimateIn(s,n,r)}if(u!=q){var s=t.eq(q).data("jcoverflip__titleElement");if(s){this.options.titleAnimateOut(s,n,r)}}if(!f){this._trigger("start",A,{to:u,from:q});this.animationQueue.start(n,b(this,function(i){this._trigger("stop",A,{to:u,from:q,time:i})}));this._trigger("change",A,{to:u,from:q})}else{this.animationQueue.start(n,a)}function k(j,i){return function(){j.css(i)}}},items:function(e){if(this.itemsCache===d||!!e){if(this.options.items){this.itemsCache=this.element.find(this.options.items)}else{this.itemsCache=this.element.children()}}return this.itemsCache},length:function(){var e=this.items();return e.length}});c.ui.jcoverflip.defaults={items:"",beforeCss:function(f,e,g){return[c.jcoverflip.animationElement(f,{left:(e.width()/2-210-110*g)+"px",bottom:"20px"},{}),c.jcoverflip.animationElement(f.find("img"),{opacity:0.5,width:"100px"},{})]},afterCss:function(f,e,g){return[c.jcoverflip.animationElement(f,{left:(e.width()/2+110+110*g)+"px",bottom:"20px"},{}),c.jcoverflip.animationElement(f.find("img"),{opacity:0.5,width:"100px"},{})]},currentCss:function(f,e){return[c.jcoverflip.animationElement(f,{left:(e.width()/2-100)+"px",bottom:0},{}),c.jcoverflip.animationElement(f.find("img"),{opacity:1,width:"200px"},{})]},time:500,titles:{create:function(g){var e="";var h=c([]);var f=g.find(".title:first");if(f.size()==1){h=f.clone(true);f.css("display","none");h.data("jcoverflip__origin","cloned");h.data("jcoverflip__source",f)}else{if(g.attr("title")){e=g.attr("title")}else{if(g.attr("alt")){e=g.attr("alt")}else{f=g.find("[title], [alt]").eq(0);if(f.size()==1){e=f.attr("title")||f.attr("alt")||""}}}}if(h.size()){h.css({opacity:0,display:"block"})}else{h=c('<span class="title">'+e+"</span>");h.data("jcoverflip__origin","attribute")}return h},destroy:function(e){if(e.data("jcoverflip__origin")=="cloned"){e.data("jcoverflip__source").css("display","")}e.remove()}},titleAnimateIn:function(f,e,g){if(f.css("display")=="none"){f.css({opacity:0,display:"block"})}f.stop().animate({opacity:1},e)},titleAnimateOut:function(f,e,g){f.stop().animate({opacity:0},e,function(){c(this).css("display","none")})},controls:{create:a,destroy:a},current:0};c.ui.jcoverflip.getter=["length","current"]})(jQuery);
