 var YU = YAHOO.util, YD = YU.Dom, YE = YU.Event;

  YAHOO.namespace("Scroller");
  YAHOO.Scroller = function (el, userConfig) {
	    //{type:"vertical", content:""},
      if (el) {
          this.render(el, userConfig);
      } else {
          YAHOO.log("No element or element ID specified" + 
              " for Scroller instantiation", "error");
      }
  };
	YAHOO.Scroller.prototype={
	  render:function(el, userConfig){
      var me=this,anim_running = false, anim = null,tar = null;
      var type = (userConfig.type=="horizontal") ? 1 : 0;
      var cnt = YD.get(userConfig.content);
      anim = new YU.Scroll(cnt, {}, .25);
      anim.onComplete.subscribe(function() {
          if (anim_running) {
              anim.attributes = getAttrs(anim.getEl().id);
              anim.animate();
          }
					if(cnt.scrollTop ==0){
						YD.get('upArrow').style.visibility ='hidden';
					}else{
						YD.get('upArrow').style.visibility ='visible';
					}
										
      });
			if(cnt.scrollTop ==0){
				YD.get('upArrow').style.visibility ='hidden';
			}
      var elems = YD.getElementsByClassName("scrollarrows","div",el);
      YE.addListener(elems, 'mouseover', over, anim, true);
      YE.addListener(elems, 'mouseout', out);
      function out(ev) {
            anim_running = false;
      }
      function over(ev) {
			
        tar = YE.getTarget(ev);
        anim.attributes = getAttrs();
        anim_running = true;
        anim.animate();
      }
      function getAttrs(){
        var arrTo,
				rt=(YD.hasClass(tar,'down')||YD.hasClass(tar,'right')) ? 30 : -30;
		
        var toVal = ((type) ? parseInt(cnt.scrollLeft) : parseInt(cnt.scrollTop))+rt;    
        return {scroll: {to: ((type) ? [toVal,0] : [0,toVal])}};
      }
    }
  };
  var vScroller = new YAHOO.Scroller("rightContent",{type:"vertical",content:"scroller-content"});