
function applyHandler(o, e, f) 
{ 
  e = (e instanceof Array) ? (arguments.callee(o, e[1], f), e[0]) : e; 
  return (o.attachEvent) ? o.attachEvent(e, f) : 
    (o.addEventListener) ? o.addEventListener(e.substr(2), f, false) : false; 
} 

function initScroller()
{ 
  //alert( "initScroller()" );

  var s = document.getElementById('scroller'), 
      prev = document.getElementById('scrollprev'), 
      next = document.getElementById('scrollnext');

  //alert('s = ' + s);
  if ( prev && next )
  {
    prev.scroll_obj = s; 
    next.scroll_obj = s; 
    s.scroll_position = s.scroll_active = 0; 
    s.scroll_range = s.offsetWidth - s.parentNode.offsetWidth; 

    //alert('s.scroll_range = ' + s.scroll_range);
    
    if ((navigator.appName.indexOf("Opera")!=-1) && (parseInt(navigator.appVersion) >= 3))
      s.scroll_range = s.scroll_range - 4;
    

    //document.getElementById('info').innerHTML = s.scroll_position + ' ' + s.scroll_range;

    if ( s.scroll_range > 0 )
    {
      //alert(1);

      document.getElementById('scrollnext').style.display = 'block';

      applyHandler(prev, ['onmouseover', 'onmouseout'], scrollControlPrev); 
      applyHandler(next, ['onmouseover', 'onmouseout'], scrollControlNext); 

    }
  }
  //alert( "initScroller() end" );
} 


function scrollControlPrev(e) 
{ 
  var el = (e = e || event).target || e.srcElement, 
      t = el.tagName.toLowerCase(), p, b; 
  if(t == 'div') 
  { 
    p = el.scroll_obj; 
    return (p.scroll_active = !p.scroll_active) ? scrollProcess(p, true) : false; 
  } 
  else 
    return false; 
} 

function scrollControlNext(e) 
{ 
  var el = (e = e || event).target || e.srcElement, 
      t = el.tagName.toLowerCase(), p, b; 
  if(t == 'div') 
  { 
    p = el.scroll_obj; 
    return (p.scroll_active = !p.scroll_active) ? scrollProcess(p, false) : false; 
  } 
  else 
    return false; 
} 


function scrollProcess(o, b) 
{ 
  var p = o.scroll_position; 
  o.scroll_position = (!b && p > -o.scroll_range) ? p - 5 : 
   (b && p < 0) ? p + 5 : 
     (o.scroll_active = 0, b) ? 0 : p; 
  o.style.left = o.scroll_position + 'px'; 

  if (o.scroll_position == 0)
    document.getElementById('scrollprev').style.display = 'none';
  else
    document.getElementById('scrollprev').style.display = 'block';

  if (o.scroll_position <= -o.scroll_range + 2)
    document.getElementById('scrollnext').style.display = 'none';
  else
    document.getElementById('scrollnext').style.display = 'block';

  //document.getElementById('info').innerHTML = o.scroll_position + ' ' + o.scroll_range;

  return (o.scroll_active) ? window.setTimeout(function() { return scrollProcess(o, b); }, 20) : false; 
} 

  applyHandler(window, 'onload', initScroller);

