
if(typeof(AC)=="undefined"){AC={};}









AC.ProductBrowser1={
  productSlider:null,
  sliderVal:0,
  animationId:false,
  viewportWidth:946,
  contentWidth:946,
  categories:[
    {id:'pb1-cat1',offset:0},
    {id:'pb1-cat2',offset:0.32}
  ],
  isIPhone:AC.Detector.isiPhone(),
  iPhoneCategories:[
    {id:'pb1-cat1',offset:0},
    {id:'pb1-cat2',offset:0.32}
  ],
  arrowScrollAmount:0.24,
  iPhoneScrollAmount:0.22,
  iPhoneContainerWidth:834,
  isSliding:false,
  lastX:0.32,
  isMouseDown:false,
  dif:0,
  overlap:0,
  offsetImageWidth:127,
  sliderOffset:291,
  offsetContentWidth:-946,
  clicked:false,
  startIndex:0,
  
  isIpScroll:false,
  hasIpDragged:false,
  init:function(setupArgs){
  if(typeof(setupArgs.categories)!='undefined')this.categories=setupArgs.categories;
  if(typeof(setupArgs.imageOverlap)!='undefined')this.overlap=setupArgs.imageOverlap;
  if(typeof(setupArgs.sliderCentering)!='undefined')this.sliderOffset=setupArgs.sliderCentering;
  if(typeof(setupArgs.initialCategory)!='undefined')this.startIndex=setupArgs.initialCategory;
  if(typeof(setupArgs.arrowScrollAmount)!='undefined')this.arrowScrollAmount=setupArgs.arrowScrollAmount;
  if(typeof(setupArgs.iPhoneCategories)!='undefined'){this.iPhoneCategories=setupArgs.iPhoneCategories;}
  if(typeof(setupArgs.iPhoneScrollAmount)!='undefined')this.iPhoneScrollAmount=setupArgs.iPhoneScrollAmount;
  if(typeof(setupArgs.iPhoneContainerWidth)!='undefined')this.iPhoneContainerWidth=setupArgs.iPhoneContainerWidth;
  
  $('pb1-productslidertrack').style.visibility="visible";
  $('pb1-productbrowsercontainer').style.overflow="hidden";
  
  this.viewportWidth=$('pb1-productbrowsercontainer').getWidth();
  this.offsetImageWidth=$$('#pb1-productslider .pb1-productimage')[0].getWidth()-this.overlap;
  this.contentWidth=this.offsetImageWidth*$$('#pb1-productslider .pb1-productimage').length;
  this.offsetContentWidth=-1*(this.contentWidth-this.viewportWidth);
  
  this.productSlider=new Control.Slider('pb1-productsliderhandle','pb1-productslidertrack',{
  axis:'horizontal'
  });
  
  if(AC.ProductBrowser1.isIPhone){
  this.categories=this.iPhoneCategories;
  this.arrowScrollAmount=this.iPhoneScrollAmount;
  $('pb1-productslidertrack').style.visibility="none";
  $('pb1-leftarrow').style.visibility="none";
  $('pb1-rightarrow').style.visibility="none";
  $('pb1-productbrowsercontainer').style.width=this.iPhoneContainerWidth+"px";
  
  var leftArrow=document.createElement('div');
  leftArrow.id="pb1-iphone-leftarrow";
  
  var rightArrow=document.createElement('div');
  rightArrow.id="pb1-iphone-rightarrow";
  
  $('productbrowser').appendChild(leftArrow);
  $('productbrowser').appendChild(rightArrow);
  
  Event.observe($(leftArrow),'click',function(){
  AC.ProductBrowser1.left();
  });
  
  Event.observe($(rightArrow),'click',function(){
  AC.ProductBrowser1.right();
  });
  }
  
  AC.ProductBrowser1.animateSlide(this.categories[this.startIndex].offset);
  
  
  this.productSlider.options.onChange=function(value){
  $('pb1-productsliderhandleimage').style.left=$('pb1-productsliderhandle').style.left;
  
  if(AC.ProductBrowser1.isThrow&&!AC.ProductBrowser1.isSliding){
  AC.ProductBrowser1.isSliding=true;
  AC.ProductBrowser1.isThrow=false;
  
  var mod=value+AC.ProductBrowser1.throwMod;
  if(mod<0)mod=0;
  if(mod>1)mod=1;
  AC.ProductBrowser1.animateSlide(mod);
  }
  else if(!AC.ProductBrowser1.isSliding&&value){
  AC.ProductBrowser1.isSliding=true;
  AC.ProductBrowser1.animateSlide(value);
  }
  };
  
  this.productSlider.options.onSlide=function(value){
  $('pb1-productsliderhandleimage').style.left=$('pb1-productsliderhandle').style.left;
  if(value&&!AC.ProductBrowser1.isSliding){
  AC.ProductBrowser1.isSliding=true;
  AC.ProductBrowser1.isThrow=false;
  if(AC.ProductBrowser1.isMouseDown){
  AC.ProductBrowser1.dif=value-AC.ProductBrowser1.lastX;
  AC.ProductBrowser1.lastX=value;
  
  
  if(AC.ProductBrowser1.dif>0.05){
  AC.ProductBrowser1.isThrow=true;
  AC.ProductBrowser1.throwMod=0.2;
  }
  else if(AC.ProductBrowser1.dif<-0.04){
  AC.ProductBrowser1.isThrow=true;
  AC.ProductBrowser1.throwMod=-0.2;
  }
  }
  
  var w=AC.ProductBrowser1.offsetContentWidth;
  $('pb1-productslider').style.left=w*value+"px";
  
  this.sliderVal=value;
  AC.ProductBrowser1.lastX=value;
  AC.ProductBrowser1.colorCats();
  AC.ProductBrowser1.isSliding=false;
  }
  
  Element.setStyle($('pb1-productbrowsercontainer'),{overflow:"hidden"});
  };
  
  Event.observe('pb1-productslidertrack','mousedown',function(e){
  var o=e.offsetX||e.layerX;
  if(Event.element(e).id=='pb1-productslidertrack'&&o<100)AC.ProductBrowser1.animateSlide(0);
  });
  Event.observe('pb1-leftarrow','mousedown',function(){
  AC.ProductBrowser1.left();
  });
  Event.observe('pb1-rightarrow','mousedown',function(){
  AC.ProductBrowser1.right();
  });
  
  Event.observe('pb1-productsliderhandle','mousedown',function(){
  AC.ProductBrowser1.isMouseDown=true;
  $('pb1-productsliderhandle').style.zIndex="5";
  });
  
  Event.observe('pb1-productsliderhandle','mouseup',function(){
  AC.ProductBrowser1.isMouseDown=false;
  });
  
  AC.ProductBrowser1.categories.each(function(c){
  Event.observe($(c.id),'mouseup',function(e){
  AC.ProductBrowser1.animateSlide(c.offset);
  });
  });
  },
  
  animateSlide:function(toX){
  
  if(toX>1)toX=1;
  if(toX<0)toX=0;
  AC.ProductBrowser1.sliderVal=toX;
  window.clearInterval(AC.ProductBrowser1.animationId);
  var w=AC.ProductBrowser1.offsetContentWidth;
  var stopPoint=w*toX;
  
  var sliderStopPoint=(Math.round(AC.ProductBrowser1.viewportWidth-AC.ProductBrowser1.sliderOffset)*toX);
  
  AC.ProductBrowser1.isSliding=true;
  AC.ProductBrowser1.animationId=window.setInterval(function(){
  var sliderPos=parseInt($('pb1-productslider').getStyle('left'))||0;
  var handlePos=parseInt($('pb1-productsliderhandle').getStyle('left'))||0;
  var x=AC.ProductBrowser1.calculateDecel(sliderPos,stopPoint);
  var sx=AC.ProductBrowser1.calculateDecel(handlePos,sliderStopPoint);
  $('pb1-productslider').style.left=x+"px";
  $('pb1-productsliderhandle').style.left=sx+"px";
  $('pb1-productsliderhandleimage').style.left=sx+"px";
  AC.ProductBrowser1.colorCats();
  
  if(x==stopPoint){
  window.clearInterval(AC.ProductBrowser1.animationId);
  AC.ProductBrowser1.isSliding=false;
  }
  },30);
  
  },
  
  colorCats:function(){
  var sliderX=parseInt($('pb1-productsliderhandle').getStyle('left'))+(($('pb1-productsliderhandle').getWidth()-20)/2);
  AC.ProductBrowser1.categories.each(function(c){
  var left=parseInt($(c.id).getStyle('left'))
  var clr=Math.ceil((Math.min(sliderX,left)/Math.max(sliderX,left))*10);
  $(c.id).className='pb1-catclass'+clr;
  });
  },
  
  left:function(){
  AC.ProductBrowser1.animateSlide(AC.ProductBrowser1.sliderVal-AC.ProductBrowser1.arrowScrollAmount);
  },
  
  right:function(){
  AC.ProductBrowser1.animateSlide(AC.ProductBrowser1.sliderVal+AC.ProductBrowser1.arrowScrollAmount);
  },
  
  calculateDecel:function(from,to){
  var n=from-Math.floor((from-to)*.4);
  if(Math.abs(from-to)<4)return to;
  else return n;
  }
};

