function create_scroller(here,url){
  return {
    here      : here,
    url       : url,
    boxheight : 284,        // BACKGROUND BOX HEIGHT IN PIXELS.
    boxwidth  : 170,         // BACKGROUND BOX WIDTH IN PIXELS.
    boxcolor  : "#fcf5c6",   // BACKGROUND BOX COLOR.
    speed     : 50,             // SPEED OF SCROLL IN MILLISECONDS (1 SECOND=1000 MILLISECONDS).. 50 is normal. 0 stops it
    pixelstep : 1,          // PIXELS "STEPS" PER REPITITION. 1 is normal. 0 stops it.
    godown    : false,         // TOP TO BOTTOM=TRUE , BOTTOM TO TOP=FALSE
    outer     : null,
    inner     : null,
    pause_elements : new Array(),
    scroll_distance : null,
    elementheight : null,
    scrolling_widget_count : 0,
    current_scrolling_widget : 0,
    txt  : null,
    html : null,
    interval_id : null,

  fill : function(){
    var html = this.get_content(this.url);
    this.html = html;
    var txt="";
    var here_id = document.getElementById(this.here); 
    txt+='<div id="outer" style="position:absolute; width:'+this.boxwidth+'px; height:'+this.boxheight+'px; visibility:hidden; overflow:hidden" >';
    txt+='<div id="inner"  style="position:absolute; top:2px;left:2px;visibility:hidden; width:'+(this.boxwidth-4)+'px; overflow:hidden; cursor:default;">'+html+'</div>';
    txt+='</div>';
    txt += '<p id="News_Reel_Open">click to see all</p>';
    here_id.innerHTML = txt;
    document.getElementById("News_Reel_Open").onclick = this.prepare_onclick_popup_function(this);
    this.clean_up_content();
  },
  get_content : function(url){
    var conjoin = new Conjoin();
    var html = conjoin.get(url);
    return html;
    //return "<html><body><p>a</p><p>b</p><p>c</p></body</html>";
  },
  clean_up_content : function(){
    this.set_inner_outer();
    for(var i=0;i<this.inner.childNodes.length;i++){
      if(this.inner.childNodes[i].nodeName != "LINK"){
        if(this.inner.childNodes[i].nodeType == 1){
          this.pause_elements.push(this.inner.childNodes[i]);
        }
      }
    }
  },
  getElHeight: function(el){
    if(is_ie4|| is_ie5)return (el.style.height)? el.style.height : el.clientHeight;
    else return (el.style.height)? parseInt(el.style.height):parseInt(el.offsetHeight);
  },

  getPageLeft: function(el){
    var x;
    if(is_ie4||is_w3c){
      x = 0;
      while(el.offsetParent!=null){
        x+=el.offsetLeft;
        el=el.offsetParent;
      }
      x+=el.offsetLeft;
      return x;
    }
  },

  getPageTop: function (el){
    var y;
    if(is_ie4||is_w3c){
      y=0;
      while(el.offsetParent!=null){
        y+=el.offsetTop;
        el=el.offsetParent;
      }
      y+=el.offsetTop;
      return y;
    }
  },
  create_wakeup_function : function(who){
    var me = who;
    return function(){
      me.inner.onmouseout();
    };
  },
  scrollbox: function (){
    this.scroll_distance += this.pixelstep;
    this.inner.style.top=parseInt(this.inner.style.top)+((this.godown)? this.pixelstep: -this.pixelstep)+'px';
    if(this.current_scrolling_widget < this.scrolling_widget_count && 
       (this.scroll_distance - (this.pixelstep-1) <= this.pause_elements[this.current_scrolling_widget].offsetTop &&
        this.scroll_distance + (this.pixelstep-1) >= this.pause_elements[this.current_scrolling_widget].offsetTop)) {
      this.current_scrolling_widget += 2;        // controls pause during scrolling.
      this.inner.onmouseover();
      window.setTimeout(this.create_wakeup_function(this),2000);
    }
    if(this.godown){
      if(parseInt(this.inner.style.top)>this.boxheight)this.inner.style.top=-this.elementheight+'px';
    }
    else{
      if(parseInt(this.inner.style.top)<2-this.elementheight){
        this.inner.style.top=this.boxheight-240+'px';
        this.scroll_distance = -this.boxheight;
        this.current_scrolling_widget = 0;
      }
    }
  },

  set_inner_outer : function(){
    this.inner=(is_ie4)?document.all['inner']:document.getElementById('inner');
    this.outer=(is_ie4)?document.all['outer']:document.getElementById('outer');
  },
  prepare_onclick_popup_function : function(who){
    var me = who
    return function(evt){
      var sheet;
      var rules;
      var cssText = '';
      for(var i=0;i<document.styleSheets.length;i++){
        sheet = document.styleSheets[i];
        // IE?
        if(sheet.rules && sheet.cssText){
          cssText += sheet.cssText;
        }
        else{
          rules = sheet.cssRules;
          for(var j=0;j<rules.length;j++){
            cssText += rules[j].cssText;
          }
        }
      }
      var win =window.open("","","");
      win.document.open();
      var prefix = '<style type="text/css">'+cssText+'\nbody{background-image:none;background-color:#cbdfb6}\nbody {margin-left:10px;}</style>';
      win.document.write(prefix+me.html);
      win.document.close();
      win.focus();
    };
  },
  create_scroller_function : function(who){
    var me = who;
    return function(){
      me.scrollbox();
    }
  },
  create_stop_scrolling_function : function(who){
    var me = who;
    return function(){
      clearInterval(me.interval_id);
      me.interval_id = -1; 
    };
  },
  create_start_scrolling_function : function(who){
    var me = who;
    return function(){
      if(me.interval_id == -1){
        me.interval_id = setInterval(me.create_scroller_function(me),me.speed);
      }
    };
  },
  onload: function(){
    var me = this;
    
    this.set_inner_outer();
    this.elementheight=this.getElHeight(this.inner);
      
    this.inner.onmouseover = this.create_stop_scrolling_function(this);
    this.inner.onmouseout = this.create_start_scrolling_function(this);
    //this.inner.ondblclick = this.prepare_onclick_popup_function(this);

    //this.scroll_distance = -this.boxheight; 
    this.scroll_distance = this.boxheight;
    //this.scroll_distance = this.inner.childNodes[0].offsetTop-this.pixelstep;
    this.scroll_distance = this.pause_elements[0].offsetTop-this.pixelstep;
    this.scrolling_widget_count = this.pause_elements.length;
    this.current_scrolling_widget = 0;
    // Set to move content start position
    //this.inner.style.top = ((this.dodown)? -this.elementheight:this.boxheight)+'px';
    this.inner.style.top = this.pixelstep+'px';
    this.inner.style.clip='rect(0px, '+(this.boxwidth-4)+'px, '+(this.elementheight)+'px, 0px)';
    this.outer.style.visibility="visible";
    this.inner.style.visibility="visible";
    this.interval_id = setInterval(this.create_scroller_function(this),this.speed);
  }
  }
  };

