var ivScroller = function() {
  var __toh;
  var __speed = 30;
  var __slowMode = false;
  var __scrollDiv;
  var __cntr;
  var __closeDiv;

  var __DrawItem = function(item) {
    var result = '';

    var isUrl = item.link ? 'url' : '';
    result += '<span class="a '+isUrl+'" onclick="location.href=\''+unescape(item.link)+'\'">'+unescape(item.title)+'<'+'/span>';
    result += '<span class="bull">&#149;<'+'/span>';
    return result;
  }
  
   var __Create = function(parent, items) {
    
    
    
    __cntr = document.createElement('DIV');
    parent.appendChild(__cntr);

    __cntr.style.visibility = 'hidden';
    __cntr.id = 'iv_scroller';
    __cntr.onmouseover = function() {__MouseOver()};
    __cntr.onmouseout  = function() {__MouseOut()};
    __cntr.style.cssText = 'overflow:hidden';

    __scrollDiv = document.createElement('DIV');
    __cntr.appendChild(__scrollDiv);
    __scrollDiv.style.cssText = 'position:relative; width:29999px';
    
    __closeDiv = document.createElement('div');
    __cntr.appendChild(__closeDiv);
    __closeDiv.className = 'close';
    __closeDiv.style.cssText = 'z-index:120; cursor:pointer; visibility:hidden;';
    __closeDiv.style.position = __SupportFixed() ? 'fixed' : 'absolute';
    __closeDiv.innerHTML = 'zamknij [x]';
    __closeDiv.onclick = function() {__Close()};
   
    
    // block
    var block = document.createElement('div');
    __scrollDiv.appendChild(block);
    block.style.cssText = 'float:left';

    var html = '';
    for (var i=0; i<items.length; i++) {
      html += __DrawItem(items[i]);
    }
    block.innerHTML = html;

    __scrollDiv._left = __cntr.offsetWidth;
    __scrollDiv.style.left = __scrollDiv._left+'px';

    var count = Math.ceil( screen.availWidth / block.offsetWidth );
    while (count--) {
      block.parentNode.appendChild( block.cloneNode(true) );
    }
    __cntr.style.visibility = '';
  }

  var __MouseOver = function() {
    __closeDiv.style.visibility = '';
    __slowMode = true;
  }
  var __MouseOut = function() {
    __closeDiv.style.visibility = 'hidden';
    __slowMode = false;
  }
  
  var __SupportFixed = function() {
    // ie le 6 doesnt
    var div = document.createElement('DIV');
    document.body.appendChild(div);
    div.style.cssText = 'position:fixed; top:0px;';
    var result = div.offsetTop==0;
    div.parentNode.removeChild(div);
    return result;
  }
  
  var __Close = function() {
    //__cntr.style.display = 'none';
    var div = __cntr;
    div.parentNode.removeChild(div);
    Cookie.write('iv_scroller_disabled', 1);
  }
  
  var __Scroll = function() {
    var scroll = __scrollDiv;
    var block = scroll.firstChild;
    scroll._left -= __slowMode ? 1 : 2;
    if (block.offsetWidth < -scroll._left) {
      var parent = block.parentNode;
      parent.removeChild(block);
      parent.appendChild(block);
      scroll._left += block.offsetWidth;
    }
    scroll.style.left = scroll._left+'px';
    if (__toh) clearTimeout(__toh);
    __toh = setTimeout( function(){__Scroll()}, __speed );
  }

  var __Exec = function(parent, items, speed) {
    if (typeof(speed)!='undefined') __speed = speed;
    __Create(parent, items);
    __Scroll();
  }

  return {
    Exec: __Exec
  };
};

