    function NewsScroller ( id, H, v, titles, bodies ) {
        this.id     = id;
        this.H      = H;
        this.v      = v;
        this.titles = titles;
        this.bodies = bodies;
        this.total  = titles.length;
        
        this.scroller1;
        this.scroller2;
        this.offset;
        this.curr = 0;
        
        var me = this;
        
        this.change_me = function ( delay ) {
            setTimeout( function () { me.change() }, delay );
        }
        
        this.scroll_me = function ( delay ) {
            setTimeout( function () { me.scroll() }, delay );
        }
    }
    
    NewsScroller.prototype.start = function NewsScroller_start() {
        var h = ' style="height: ' + this.H + 'px;"';
        
        document.write( '<div id="' + this.id + '-news-frame" class="news-frame">' );
        document.write( '<div id="' + this.id + '-news-box" class="news-box"' + h +'>' );
        document.write( '    <div class="news-scroller" id="' + this.id + '-news-scroller1""' + h +'>' );
        document.write( '        <div class="title"></div>' );
        document.write( '        <div class="body" ></div>' );
        document.write( '    </div>' );
        document.write( '    <div class="news-scroller" id="' + this.id + '-news-scroller2""' + h +'>' );
        document.write( '        <div class="title"></div>' );
        document.write( '        <div class="body" ></div>' );
        document.write( '    </div>' );
        document.write( '</div>' );
        document.write( '</div>' );
        
        this.change_me( 0 );
    }
    
    NewsScroller.prototype.change = function NewsScroller_change() {
        var divs;
        
        with ( this ) {
            curr++;
            s1 = curr % 2 ? 1 : 2;
            s2 = curr % 2 ? 2 : 1;
            
            scroller1 = document.getElementById( id + '-news-scroller' + s1 );
            scroller2 = document.getElementById( id + '-news-scroller' + s2 );
            
            divs = scroller2.getElementsByTagName('div');
            
            divs[0].innerHTML = titles[curr % total];
            divs[1].innerHTML = bodies[curr % total];
            
            offset = 0;
            
            scroll_me( 100 );
        }
        
    }
    
    NewsScroller.prototype.scroll = function NewsScroller_scroll () {
        var d;
        
        with ( this ) {
            if ( offset <= H ) {
            
                if ( s1 == 1 ) {
                    scroller1.style.top = (0 - offset) + 'px';
                    scroller2.style.top = (0 - offset) + 'px';
                } else {
                    scroller1.style.top = '-' + (H + offset) + 'px';
                    scroller2.style.top =       (H - offset) + 'px';
                }
                
                d = H - offset < 20 ?
                    v + 200*1/(1+H-offset) :
                    v;
                
                scroll_me( d );
                offset++;
            } else {
                change_me( 3000 );
            }
        }
    }

    
