(function($){function ImageCube(){this._defaults={direction:'random',randomSelection:['up','down','left','right'],speed:2000,easing:'linear',repeat:true,pause:2000,selection:'forward',shading:false,opacity:0.8,imagePath:'',full3D:true,segments:20,reduction:30,expansion:10,lineHeight:[0.0,1.25],letterSpacing:[-0.4,0.0],beforeRotate:null,afterRotate:null};};var UP=0;var DOWN=1;var LEFT=2;var RIGHT=3;var PROP_NAME='imageCube';$.extend(ImageCube.prototype,{markerClassName:'hasImageCube',setDefaults:function(options){extendRemove(this._defaults,options||{});},_attachImageCube:function(target,options){target=$(target);if(target.hasClass(this.markerClassName)){return;} var allOptions=$.extend({_position:target.css('position')},this._defaults,options||{});$.data(target[0],PROP_NAME,allOptions);target.addClass(this.markerClassName).css({position:'relative'}).children().each(function(){var child=$(this);$.data(this,PROP_NAME,{width:child.css('width'),height:child.css('height'),position:child.css('position'),lineHeight:child.css('lineHeight'),letterSpacing:child.css('letterSpacing')});child.css({width:target.css('width'),height:target.css('height'),position:'absolute',lineHeight:allOptions.lineHeight[1],letterSpacing:allOptions.letterSpacing[1]});}).not(':first').hide();this._prepareRotation(target[0]);},_prepareRotation:function(target){target=$(target);target.children('.imageCubeShading,.imageCubeFrom,.imageCubeTo').remove();var options=$.data(target[0],PROP_NAME);options.current=target.children(':visible')[0];var randomSelection=function(collection){return(!collection.length?collection:collection.filter(':eq('+Math.floor(Math.random()*collection.length)+')'));};options.next=(options.selection=='random'?randomSelection(target.children(':hidden')):(options.selection=='backward'?$(options.current).prev():$(options.current).next()));options.next=(options.next.length?options.next:(options.selection=='random'?options.current:(options.selection=='backward'?target.children(':last'):target.children(':first'))))[0];if(options.repeat&&!options._timer){options._timer=setTimeout(function(){$.imagecube._rotateImageCube(target[0]);},options.pause);} $.data(target[0],PROP_NAME,options);},_rotateImageCube:function(target,next,callback){if(typeof next=='function'){callback=next;next='';} target=$(target);this._stopImageCube(target[0],true);var options=$.data(target[0],PROP_NAME);if(next!=null){next=(typeof next=='number'?target.children(':eq('+next+')'):$(next));if(target.children().filter(function(){return this===next[0];}).length>0){options.next=next;}} var callbackArgs=[options.current,options.next];if(options.beforeRotate){options.beforeRotate.apply(target[0],callbackArgs);} var animTo={};animTo[PROP_NAME]=1.0;target.attr(PROP_NAME,0.0).animate(animTo,options.speed,options.easing,function(){if(options.afterRotate){options.afterRotate.apply(target[0],callbackArgs);} if(callback){callback.apply(target[0]);}});},_currentImageCube:function(target){return($(target).hasClass(this.markerClassName)?$.data(target,PROP_NAME).current:null);},_nextImageCube:function(target){return($(target).hasClass(this.markerClassName)?$.data(target,PROP_NAME).next:null);},_stopImageCube:function(target,timerOnly){var options=$.data(target,PROP_NAME);if(options._timer){clearTimeout(options._timer);options._timer=null;} if(!timerOnly){options.repeat=false;} $.data(target,PROP_NAME,options);},_startImageCube:function(target){this._changeImageCube(target,{repeat:true});},_changeImageCube:function(target,options,value){if(typeof options=='string'){var opts={};opts[options]=value;options=opts;} var curOptions=$.data(target,PROP_NAME);extendRemove(curOptions||{},options||{});$.data(target,PROP_NAME,curOptions);this._prepareRotation(target);},_destroyImageCube:function(target){target=$(target);if(!target.hasClass(this.markerClassName)){return;} this._stopImageCube(target[0]);var options=$.data(target[0],PROP_NAME);target.stop().css({position:options._position}).removeClass(this.markerClassName).children('.imageCubeShading,.imageCubeFrom,.imageCubeTo').remove();target.children().each(function(){$(this).css($.data(this,PROP_NAME)).show();$.removeData(this,PROP_NAME);});$.removeData(target[0],PROP_NAME);},_prepareAnimation:function(target){var options=$.data(target,PROP_NAME);var target=$(target);var offset={left:0,top:0};target.parents().each(function(){var $this=$(this);if($this.css('position')=='fixed'){offset.left-=$this.offset().left;offset.top-=$this.offset().top;return false;}});var dims={width:target.width(),height:target.height()};var direction=(options.direction!='random'?options.direction:options.randomSelection[Math.floor(Math.random()*options.randomSelection.length)]);direction=Math.max(0,$.inArray(direction,['up','down','left','right']));options._curDirection=direction;var upDown=(direction==UP||direction==DOWN);var leftRight=(direction==LEFT||direction==RIGHT);var upLeft=(direction==UP||direction==LEFT);var firstOpacity=(upLeft?0:options.opacity);var pFrom=$(options.current);var pTo=$(options.next);var border=[];var parseBorders=function(p){var b=[0,0,0,0];if(!$.browser.msie||p.css('border')){for(var i=0;i<4;i++){b[i]=p.css('border'+['Left','Right','Top','Bottom'][i]+'Width');var extra=($.browser.msie?1:0);b[i]=parseFloat({thin:1+extra,medium:3+extra,thick:5+extra}[b[i]]||b[i]);}} return b;};border[0]=parseBorders(pFrom);border[1]=parseBorders(pTo);var pad=[];pad[0]=[parseFloat(pFrom.css('padding-left')),parseFloat(pFrom.css('padding-right')),parseFloat(pFrom.css('padding-top')),parseFloat(pFrom.css('padding-bottom'))];pad[1]=[parseFloat(pTo.css('padding-left')),parseFloat(pTo.css('padding-right')),parseFloat(pTo.css('padding-top')),parseFloat(pTo.css('padding-bottom'))];var extras=[];extras[0]=[($.boxModel?border[0][0]+border[0][1]+pad[0][0]+pad[0][1]:0),($.boxModel?border[0][2]+border[0][3]+pad[0][2]+pad[0][3]:0)];extras[1]=[($.boxModel?border[1][0]+border[1][1]+pad[1][0]+pad[1][1]:0),($.boxModel?border[1][2]+border[1][3]+pad[1][2]+pad[1][3]:0)];var stepProps=[];stepProps[0]={elem:pFrom[0],props:{left:{start:offset.left,end:offset.left+(direction==RIGHT?dims.width:0),units:'px'},width:{start:dims.width-extras[0][0],end:(upDown?dims.width-extras[0][0]:0),units:'px'},top:{start:offset.top,end:offset.top+(direction==DOWN?dims.height:0),units:'px'},height:{start:dims.height-extras[0][1],end:(upDown?0:dims.height-extras[0][1]),units:'px'},paddingLeft:{start:pad[0][0],end:(leftRight?0:pad[0][0]),units:'px'},paddingRight:{start:pad[0][1],end:(leftRight?0:pad[0][1]),units:'px'},paddingTop:{start:pad[0][2],end:(upDown?0:pad[0][2]),units:'px'},paddingBottom:{start:pad[0][3],end:(upDown?0:pad[0][3]),units:'px'},borderLeftWidth:{start:border[0][0],end:(leftRight?0:border[0][0]),units:'px'},borderRightWidth:{start:border[0][1],end:(leftRight?0:border[0][1]),units:'px'},borderTopWidth:{start:border[0][2],end:(upDown?0:border[0][2]),units:'px'},borderBottomWidth:{start:border[0][3],end:(upDown?0:border[0][3]),units:'px'},lineHeight:{start:options.lineHeight[1],end:(upDown?options.lineHeight[0]:options.lineHeight[1]),units:'em'},letterSpacing:{start:options.letterSpacing[1],end:(upDown?options.letterSpacing[1]:options.letterSpacing[0]),units:'em'}}};stepProps[1]={elem:pTo[0],props:{left:{start:offset.left+(direction==LEFT?dims.width:0),end:offset.left,units:'px'},width:{start:(upDown?dims.width-extras[1][0]:0),end:dims.width-extras[1][0],units:'px'},top:{start:offset.top+(direction==UP?dims.height:0),end:offset.top,units:'px'},height:{start:(upDown?($.browser.msie?1:0):dims.height-extras[1][1]),end:dims.height-extras[1][1],units:'px'},paddingLeft:{start:(leftRight?0:pad[1][0]),end:pad[1][0],units:'px'},paddingRight:{start:(leftRight?0:pad[1][1]),end:pad[1][1],units:'px'},paddingTop:{start:(upDown?0:pad[1][2]),end:pad[1][2],units:'px'},paddingBottom:{start:(upDown?0:pad[1][3]),end:pad[1][3],units:'px'},borderLeftWidth:{start:(leftRight?0:border[1][0]),end:border[1][0],units:'px'},borderRightWidth:{start:(leftRight?0:border[1][1]),end:border[1][1],units:'px'},borderTopWidth:{start:(upDown?0:border[1][2]),end:border[1][2],units:'px'},borderBottomWidth:{start:(upDown?0:border[1][3]),end:border[1][3],units:'px'},lineHeight:{start:(upDown?options.lineHeight[0]:options.lineHeight[1]),end:options.lineHeight[1],units:'em'},letterSpacing:{start:(upDown?options.letterSpacing[1]:options.letterSpacing[0]),end:options.letterSpacing[1],units:'em'}}};if(options.shading){var setHighShad=function(props,startOpacity,endOpacity){return{left:{start:props.left.start,end:props.left.end,units:'px'},width:{start:props.width.start,end:props.width.end,units:'px'},top:{start:props.top.start,end:props.top.end,units:'px'},height:{start:props.height.start,end:props.height.end,units:'px'},paddingLeft:{start:props.paddingLeft.start+props.borderLeftWidth.start,end:props.paddingLeft.end+props.borderLeftWidth.end,units:'px'},paddingRight:{start:props.paddingRight.start+props.borderRightWidth.start,end:props.paddingRight.end+props.borderRightWidth.end,units:'px'},paddingTop:{start:props.paddingTop.start+props.borderTopWidth.start,end:props.paddingTop.end+props.borderTopWidth.end,units:'px'},paddingBottom:{start:props.paddingBottom.start+props.borderBottomWidth.start,end:props.paddingBottom.end+props.borderBottomWidth.end,units:'px'},opacity:{start:startOpacity,end:endOpacity,units:''}};};stepProps[2]={elem:$(($.browser.msie?'':'>'))[0],props:setHighShad(stepProps[upLeft?0:1].props,firstOpacity,options.opacity-firstOpacity)};stepProps[3]={elem:$(($.browser.msie?'':'>'))[0],props:setHighShad(stepProps[upLeft?1:0].props,options.opacity-firstOpacity,firstOpacity)};} if(options.full3D){for(var i=0;i