var carousel=new Class({containerEl:null,carouselJSON:null,panelCount:3,promoPosIdx:0,activeElement:null,Implements:Options,options:{duration:1000},initialize:function(containerEl,carouselJSONURL,options){this.setOptions(options);this.containerEl=$(containerEl);this.result=new Request.JSON({url:carouselJSONURL,method:'get',onSuccess:function(jsonObj){this.carouselJSON=jsonObj;this.containerEl.empty();for(i=0;i<this.carouselJSON.promoList.length&&i<3;i++){this.makePanel(i).setStyle('left',(286*i)+77).inject(this.containerEl);}
$('leftarrow').addEvent('click',(function(obj){return function(){obj.scrollRight();return false;}})(this));$('rightarrow').addEvent('click',(function(obj){return function(){obj.scrollLeft();return false;}})(this));this.setVisibilityOfControls();}.bind(this),onFailure:function(xhr){alert("There was difficulty in retrieving the promo image data.\n"+"transport.readyState = "+xhr.readyState+" / transport.status "+xhr.status);}.bind(this)});this.result.headers.extend({'Accept':'*/*'});this.result.send("json=true");},makePanel:function(idx){var promo=this.carouselJSON.promoList[idx];div=new Element('div',{'id':'promo'+idx,'class':'promo','styles':{'top':11}}).set('morph',{duration:this.options.duration});switch(this.carouselJSON.promoList[idx].type){case'blank':hrefLink="javascript:var newwin = window.open('"+promo.destination+"', '_blank'); newwin.focus();";break;case'link':hrefLink=promo.destination;break;case'javascript':hrefLink="javascript:"+promo.destination;break;}
a=new Element('a',{'href':hrefLink}).injectTop(div);img=new Element('img',{'src':promo.image,'width':250,'height':107}).injectTop(a);return div;},scrollLeft:function(){if(this.activeElement==null){this.activeElement=$('promo'+(this.promoPosIdx+0));this.makePanel(this.promoPosIdx+3).setStyle('left',(3*286)+125).injectBottom(this.containerEl);$('promo'+(this.promoPosIdx+0)).set('morph',{onComplete:function(){this.activeElement.dispose();this.activeElement=null;}.bind(this)});$('promo'+(this.promoPosIdx+0)).morph({'left':[(0*286)+77,(-1*286)-77],'opacity':[1,0]});$('promo'+(this.promoPosIdx+1)).morph({'left':[(1*286)+77,(0*286)+77]});$('promo'+(this.promoPosIdx+2)).morph({'left':[(2*286)+77,(1*286)+77]});$('promo'+(this.promoPosIdx+3)).morph({'left':[(3*286)+125,(2*286)+77],'opacity':[0,1]});this.promoPosIdx++;this.setVisibilityOfControls();}},scrollRight:function(){if(this.activeElement==null){this.activeElement=$('promo'+(this.promoPosIdx+2));this.makePanel(this.promoPosIdx-1).setStyle('left',(-1*286)-77).injectTop(this.containerEl);$('promo'+(this.promoPosIdx-1)).morph({'left':[(-1*286)-77,(0*286)+77],'opacity':[0,1]});$('promo'+(this.promoPosIdx+0)).morph({'left':[(0*286)+77,(1*286)+77]});$('promo'+(this.promoPosIdx+1)).morph({'left':[(1*286)+77,(2*286)+77]});$('promo'+(this.promoPosIdx+2)).set('morph',{onComplete:function(){this.activeElement.dispose();this.activeElement=null;}.bind(this)});$('promo'+(this.promoPosIdx+2)).morph({'left':[(2*286)+77,(3*286)+100],'opacity':[1,0]});this.promoPosIdx--;this.setVisibilityOfControls();}},setVisibilityOfControls:function(){$('leftarrow').setStyle('visibility',((this.promoPosIdx!=0)&&(this.panelCount<this.carouselJSON.promoList.length))?'visible':'hidden');$('rightarrow').setStyle('visibility',((this.promoPosIdx<(this.carouselJSON.promoList.length-this.panelCount)))?'visible':'hidden');}});