var advOuter='advOuter';
var advScroller='advScroller';
var advContainer='advContainer';
var advWidth=238;
var advHeight=330;
var advMenuScope='advMenuScope';
var advMenuQueue = Effect.Queues.get(advMenuScope);
var advSwitchDuration=1.00;
var advBlocked=false;
var advTimer;
var advDuration=10000;
var mCarousel;

function Carousel(){
 this.width=advWidth;
 this.height=advHeight;
 this.offset=0;
 this.count=0;
 this.scrollRight=function(){
  if(advBlocked) return;
  advBlocked=true;
  if(this.offset==this.count){
   this.scroller.style.left='-'+advWidth+'px';
   this.offset=0;
  }
  new Effect.Move(this.scroller, { x: -advWidth, y: 0, duration: advSwitchDuration, queue: {position: 'end', scope: advMenuScope, limit: 1}});
  this.offset++;
  setTimeout(function(){advBlocked=false;}, 1000*advSwitchDuration);
  clearTimeout(advTimer);
  if(advDuration>0) advTimer=setTimeout(function(){mCarousel.scrollRight();}, advDuration);
 }
 this.scrollLeft=function(){
  if(advBlocked) return;
  advBlocked=true;
  if(this.offset==-1){
   this.scroller.style.left=(-this.count*advWidth)+'px';
   this.offset=this.count-1;
  }
  new Effect.Move(this.scroller, { x: advWidth, y: 0, duration: advSwitchDuration, queue: {position: 'end', scope: advMenuScope, limit: 1}});
  this.offset--;
  setTimeout(function(){advBlocked=false;}, 1000*advSwitchDuration);
  clearTimeout(advTimer);
  if(advDuration>0) advTimer=setTimeout(function(){mCarousel.scrollRight();}, advDuration);
 }
}

Carousel.prototype.init=function(){
 this.scroller=$(advScroller);
 var mChilds=this.scroller.childNodes;
 var containers=new Array();
 for(var i=0;i<mChilds.length;i++){
  if(mChilds[i].tagName=='DIV'&&(/^advContainer/.test(mChilds[i].id))){
   containers[this.count]=mChilds[i];
   this.count++;
  }
 }

 var leftProxy=document.createElement('div');
 leftProxy.width=advWidth;
 leftProxy.height=advHeight;
 leftProxy.id='leftProxy';
 leftProxy.className='scroller advContainer';
 leftProxy.innerHTML=containers[this.count-1].innerHTML;

 var rightProxy=document.createElement('div');
 rightProxy.width=advWidth;
 rightProxy.height=advHeight;
 rightProxy.id='rightProxy';
 rightProxy.className='scroller advContainer';
 rightProxy.innerHTML=containers[0].innerHTML;

 this.scroller.style.width=(parseInt(this.scroller.style.width)+2*advWidth)+'px';
 this.scroller.style.left=-advWidth+'px';
 this.scroller.insertBefore(leftProxy, this.scroller.firstChild);
 this.scroller.appendChild(rightProxy);
 if(advDuration>0) advTimer=setTimeout(function(){mCarousel.scrollRight();}, advDuration);
}

mCarousel=new Carousel();

document.observe('dom:loaded', function(){
	if($(advScroller)) mCarousel.init();
});

