var timeout = 10;
var speed = 10;
var sliderQueue = [];
var idSlider = 'hdsliderDynamic';
var idSliderItems = 'hdsliderItems';
var idSliderRight = 'hdsliderRight';
var idSliderLeft = 'hdsliderLeft';
var idSliderUp   = 'hdsliderUp';
var idSliderDown = 'hdsliderDown';

function slider(id,idin){
  this.sliderObj=document.getElementById(id);
  this.sliderObj.array=[];
  this.sliderObj.array[0]=document.getElementById(idin);
  this.sliderObj.appendChild(this.sliderObj.array[0]);

  sliderQueue.push(this.sliderObj);
}
function slideStart() {
  new slider(idSlider,idSliderItems);
}
function slideStop(sliderQueue) {
  clearTimeout(sliderQueue[0].TO);
}
function slideLeft(sliderQueue) {
  if (!sliderQueue) return;
  var stop;
  var sliderWidth =document.getElementById(idSlider).offsetWidth;
  var y = sliderQueue[0].array[0];
  if (parseInt(y.offsetLeft,10)+parseInt(y.offsetWidth,10) > sliderWidth) {
    var x = sliderQueue[0].array[0].style;
    x.left=(parseInt(y.offsetLeft,10)-speed)+'px';
    if (!stop) {
      sliderQueue[0].TO=setTimeout('slideLeft(sliderQueue)',timeout);
    }
  }
}
function slideRight(sliderQueue){
  if (!sliderQueue) return;
  var stop;
  var left = sliderQueue[0].array[0].offsetLeft;
  if (parseInt(left,10) <= 0) {
    var x = sliderQueue[0].array[0].style;
    x.left=(parseInt(left,10)+speed)+'px';
    if (!stop) {
      sliderQueue[0].TO=setTimeout('slideRight(sliderQueue)',timeout);
    }
  }
}
function slideUp(sliderQueue) {
  if (!sliderQueue) return;
  var stop;
  var sliderHeight =document.getElementById(idSlider).offsetHeight;
  var y = sliderQueue[0].array[0];
  if (parseInt(y.offsetTop,10)+parseInt(y.offsetHeight,10) > sliderHeight) {
    var x = sliderQueue[0].array[0].style;
    x.top=(parseInt(y.offsetTop,10)-speed)+'px';
    if (!stop) {
      sliderQueue[0].TO=setTimeout('slideUp(sliderQueue)',timeout);
    }
  }
}
function slideDown(sliderQueue){
  if (!sliderQueue) return;
  var stop;
  var top = sliderQueue[0].array[0].offsetTop;
  if (parseInt(top,10) <= 0) {
    var x = sliderQueue[0].array[0].style;
    x.top=(parseInt(top,10)+speed)+'px';
    if (!stop) {
      sliderQueue[0].TO=setTimeout('slideDown(sliderQueue)',timeout);
    }
  }
}


var sliderLeftHandler = {
  handle_mouseover : function (e) {slideLeft(sliderQueue); return false;},
  handle_mouseout : function (e) {slideStop(sliderQueue); return false;},
  load : function () {
    var that = this;
    document.getElementById(idSliderRight).onmouseover = function(e) {
      that.handle_mouseover(e);
    };
    document.getElementById(idSliderRight).onmouseout = function(e) {
      that.handle_mouseout(e);
    };
  }
};

var sliderRightHandler = {
  handle_mouseover : function (e) {slideRight(sliderQueue); return false;},
  handle_mouseout : function (e) {slideStop(sliderQueue); return false;},
  load : function () {
    var that = this;
    document.getElementById(idSliderLeft).onmouseover = function(e) {
      that.handle_mouseover(e);
    };
    document.getElementById(idSliderLeft).onmouseout = function(e) {
      that.handle_mouseout(e);
    };
  }
};

var sliderUpHandler = {
  handle_mouseover : function (e) {slideUp(sliderQueue); return false;},
  handle_mouseout : function (e) {slideStop(sliderQueue); return false;},
  load : function () {
    var that = this;
    document.getElementById(idSliderUp).onmouseover = function(e) {
      that.handle_mouseover(e);
    };
    document.getElementById(idSliderUp).onmouseout = function(e) {
      that.handle_mouseout(e);
    };
  }
};

var sliderDownHandler = {
  handle_mouseover : function (e) {slideDown(sliderQueue); return false;},
  handle_mouseout : function (e) {slideStop(sliderQueue); return false;},
  load : function () {
    var that = this;
    document.getElementById(idSliderDown).onmouseover = function(e) {
      that.handle_mouseover(e);
    };
    document.getElementById(idSliderDown).onmouseout = function(e) {
      that.handle_mouseout(e);
    };
  }
};

if(document.getElementById(idSliderLeft)) {sliderLeftHandler.load();}
if(document.getElementById(idSliderRight)) {sliderRightHandler.load();}
if(document.getElementById(idSliderUp)) {sliderUpHandler.load();}
if(document.getElementById(idSliderDown)) {sliderDownHandler.load();}
slideStart();
