
(function($){$.fn.extend({carousel3d:function(options){opt=$.extend({},$.carouselSetup.defaults,options);$this=$(this);opt.speed=parseInt(6-opt.speed);btnSpeed=Math.round(10-opt.speed)*$.browser.msie?0.01:0.2;contSpeed=btnSpeed*$.browser.msie?0.5:0.15;opt.speed=opt.speed*$.browser.msie?2500:1500;$imgs=$('a',$this).show();$texts=$('span',$('#carouselText')).hide();if(opt.textBox&&!$texts.size())alert('<div id="carouselText" /> + <span>\'s. . . do not exist.  either add them or set textBox option to 0');items=$imgs.size();numSlots=items*opt.padding;if(opt.padding==0)opt.padding=1;$imgs.each(function(i){new $.imageSetUp(this,i)});new $.carouselSetup();}});$.imageSetUp=function(im,_index){im.orig_w=$(im).children('img.screen').width(),im.orig_h=$(im).children('img.screen').height();var w_h=resize(im.orig_w,128,im.orig_h,108).split('|');im.h=w_h[1],im.w=w_h[0];im.slot=_index*opt.padding;im.angle=parseInt((_index*opt.padding)*((Math.PI*2)/numSlots)*1000)/1000;im.clicked={top:parseInt(opt.centerY-im.orig_h/3)+'px',left:parseInt(opt.centerX-im.orig_w/3)+'px',width:im.orig_w+'px',height:im.orig_h+'px'};im.animateOn=function(el){$imgs.fadeOut(700);el.animate(im.clicked,500)};new $.TextBoxSetUp(im,_index);$(im).attr('id','pix'+_index).css({position:'absolute'});};$.TextBoxSetUp=function(im,_index){im.textClicked={left:opt.centerX-opt.radiusX-im.w+'px',top:opt.centerY+'px',width:im.w+'px',height:im.h+'px'};im.textBoxCss={top:opt.centerY*0.7+'px',left:opt.centerX-opt.radiusX*0.9+'px'};im.textAnimateOn=function(el){var msg='';if(!$texts.size())msg+='<div id="carouselText" /> + <span>\'s. . . do not exist';else if(!$('#text').size())msg+='<div id="text" /> does not exist';else{$imgs.fadeOut(700);el.animate(im.textClicked,500);$('#text').css(im.textBoxCss).html($texts.eq(_index).html()).fadeIn(700);}
if(msg)alert('Cannot setup text box; '+msg);};};$.carouselSetup=function(){var im,_t,_s;if(opt.control=='buttons')controls();else if(opt.control=='continuous')rate=btnSpeed*.3;else $().mousemove(function(e){rate=(e.pageX-opt.centerX)/opt.speed;});function Delegate(){}
Delegate.create=function(o,f){var a=new Array();var l=arguments.length;for(var i=2;i<l;i++)a[i-2]=arguments[i];return function(){var aP=[].concat(arguments,a);f.apply(o,aP);}}
Tween=function(obj,prop,func,begin,finish,duration,suffixe){this.init(obj,prop,func,begin,finish,duration,suffixe)}
var t=Tween.prototype;t.obj=new Object();t.prop='';t.func=function(t,b,c,d){return c*t/d+b;};t.begin=0;t.change=0;t.prevTime=0;t.prevPos=0;t.looping=false;t._duration=0;t._time=0;t._pos=0;t._position=0;t._startTime=0;t._finish=0;t.name='';t.suffixe='';t._listeners=new Array();t.setTime=function(t){this.prevTime=this._time;if(t>this.getDuration()){if(this.looping){this.rewind(t-this._duration);this.update();this.broadcastMessage('onMotionLooped',{target:this,type:'onMotionLooped'});}else{this._time=this._duration;this.update();this.stop();this.broadcastMessage('onMotionFinished',{target:this,type:'onMotionFinished'});}}else if(t<0){this.rewind();this.update();}else{this._time=t;this.update();}}
t.getTime=function(){return this._time;}
t.setDuration=function(d){this._duration=(d==null||d<=0)?100000:d;}
t.getDuration=function(){return this._duration;}
t.setPosition=function(p){this.prevPos=this._pos;var a=this.suffixe!=''?this.suffixe:'';this.obj[this.prop]=Math.round(p)+a;this._pos=p;this.broadcastMessage('onMotionChanged',{target:this,type:'onMotionChanged'});}
t.getPosition=function(t){if(t==undefined)t=this._time;return this.func(t,this.begin,this.change,this._duration);};t.setFinish=function(f){this.change=f-this.begin;};t.geFinish=function(){return this.begin+this.change;};t.init=function(obj,prop,func,begin,finish,duration,suffixe){if(!arguments.length)return;this._listeners=new Array();this.addListener(this);if(suffixe)this.suffixe=suffixe;this.obj=obj;this.prop=prop;this.begin=begin;this._pos=begin;this.setDuration(duration);if(func!=null&&func!=''){this.func=func;}
this.setFinish(finish);}
t.start=function(){this.rewind();this.startEnterFrame();this.broadcastMessage('onMotionStarted',{target:this,type:'onMotionStarted'});}
t.rewind=function(t){this.stop();this._time=(t==undefined)?0:t;this.fixTime();this.update();}
t.fforward=function(){this._time=this._duration;this.fixTime();this.update();}
t.update=function(){this.setPosition(this.getPosition(this._time));}
t.startEnterFrame=function(){this.stopEnterFrame();this.isPlaying=true;this.onEnterFrame();}
t.onEnterFrame=function(){if(this.isPlaying){this.nextFrame();setTimeout(Delegate.create(this,this.onEnterFrame),0);}}
t.nextFrame=function(){this.setTime((this.getTimer()-this._startTime)/1000);}
t.stop=function(){this.stopEnterFrame();this.broadcastMessage('onMotionStopped',{target:this,type:'onMotionStopped'});}
t.stopEnterFrame=function(){this.isPlaying=false;}
t.continueTo=function(finish,duration){this.begin=this._pos;this.setFinish(finish);if(this._duration!=undefined)
this.setDuration(duration);this.start();}
t.resume=function(){this.fixTime();this.startEnterFrame();this.broadcastMessage('onMotionResumed',{target:this,type:'onMotionResumed'});}
t.yoyo=function(){this.continueTo(this.begin,this._time);}
t.addListener=function(o){this.removeListener(o);return this._listeners.push(o);}
t.removeListener=function(o){var a=this._listeners;var i=a.length;while(i--){if(a[i]==o){a.splice(i,1);return true;}}
return false;}
t.broadcastMessage=function(){var arr=new Array();for(var i=0;i<arguments.length;i++){arr.push(arguments[i])}
var e=arr.shift();var a=this._listeners;var l=a.length;for(var i=0;i<l;i++){if(a[i][e])
a[i][e].apply(a[i],arr);}}
t.fixTime=function(){this._startTime=this.getTimer()-this._time*1000;}
t.getTimer=function(){return new Date().getTime()-this._time;}
Tween.backEaseIn=function(t,b,c,d,a,p){if(s==undefined)var s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b;}
Tween.backEaseOut=function(t,b,c,d,a,p){if(s==undefined)var s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;}
Tween.backEaseInOut=function(t,b,c,d,a,p){if(s==undefined)var s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;}
Tween.elasticEaseIn=function(t,b,c,d,a,p){if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else
var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;}
Tween.elasticEaseOut=function(t,b,c,d,a,p){if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(!a||a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);return(a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b);}
Tween.elasticEaseInOut=function(t,b,c,d,a,p){if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)var p=d*(.3*1.5);if(!a||a<Math.abs(c)){var a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;}
Tween.bounceEaseOut=function(t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;}}
Tween.bounceEaseIn=function(t,b,c,d){return c-Tween.bounceEaseOut(d-t,0,c,d)+b;}
Tween.bounceEaseInOut=function(t,b,c,d){if(t<d/2)return Tween.bounceEaseIn(t*2,0,c,d)*.5+b;else return Tween.bounceEaseOut(t*2-d,0,c,d)*.5+c*.5+b;}
Tween.strongEaseInOut=function(t,b,c,d){return c*(t/=d)*t*t*t*t+b;}
Tween.regularEaseIn=function(t,b,c,d){return c*(t/=d)*t+b;}
Tween.regularEaseOut=function(t,b,c,d){return-c*(t/=d)*(t-2)+b;}
Tween.regularEaseInOut=function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;}
Tween.strongEaseIn=function(t,b,c,d){return c*(t/=d)*t*t*t*t+b;}
Tween.strongEaseOut=function(t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;}
Tween.strongEaseInOut=function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;}
t1=new Tween(new Object(),'xyz',Tween.regularEaseInOut,0,10000,10000);t1.onMotionChanged=function(event){for(var j=0;j<items,im=$('#pix'+j)[0];j++){im.slot=(im.slot==numSlots-1)?0:im.slot++;_t=Math.sin(im.angle)*opt.radiusY+opt.centerY;_s=((_t-opt.perspective)/(opt.centerY+opt.radiusY-opt.perspective));$(im).css({top:_t,left:Math.cos(im.angle)*opt.radiusX+opt.centerX,width:im.w*_s*1.3,height:im.h*_s*1.3,zIndex:Math.round(_t)+100,opacity:(opt.fadeEffect==1)?Math.sin(im.angle):1});if(opt.fadeEffect==1){$(im)[Math.sin(im.angle)<=0?'hide':!$(im).is(':visible')?'show':''];}
im.angle+=opt.control=='continuous'?contSpeed:rate;}};t1.start();$imgs.fadeIn(1500);};var opt,numSlots,items,rate=contSpeed=btnSpeed=0;function controls(){rate=0;left_btn=$('<div id="left" class="pngfix">').mousedown(function(){rate=btnSpeed});right_btn=$('<div id="right" class="pngfix">').mousedown(function(){rate=-btnSpeed});$this.prepend(left_btn,right_btn);$('#left').bind('mouseup',function(){rate=0});$('#right').bind('mouseup',function(){rate=0});};function resize(w,max_w,h,max_h){if(w>max_w||h>max_h){var x_ratio=max_w/w;var y_ratio=max_h/h;if((x_ratio*h)<max_h)return max_w+'|'+Math.ceil(x_ratio*h);else return Math.ceil(y_ratio*w)+'|'+max_h;}
else return w+'|'+h;};$.carouselSetup.defaults={control:'buttons',speed:1,radiusX:280,radiusY:20,centerX:265,centerY:20,perspective:-60,padding:24,fadeEffect:1,textBox:0};})(jQuery);jQuery(function($){$("#carousel").html($("#holder_images").html()).carousel3d();});
