function makeHScroller( node )
{
    if( !node )
        return
    var $boxes = $(".news-hscroller-news", node)
    var $win = $('.news-hscroller-window', node)
    var $content = $( '.news-hscroller-content', node)
    var win_w = $win.width()
    var allwidths = []
    var widths = []
    var nw = 0
    var cw = 0
    $boxes.each( function()
    {
        nw = $(this).outerWidth(true)
        if( nw > 0 )
        {
            allwidths.push( nw )
            cw += nw
            widths.push( $(this).width() )
        }
    } )
    $content.css( { width: cw+'px' } )
    $(".news-hscroller-left a", node).click( function()
    {
        move( -1 )
        return false
    } )
    $(".news-hscroller-right a", node).click( function()
    {
        move( 1 )
        return false
    } )
    var current = 0
    var move = function( xx )
    {
        var xoff = $content.position().left
        var sumx = 0
        var idx = 0
        while( idx<allwidths.length-1 && sumx < -xoff )
        {
            sumx += allwidths[idx]
            idx += 1
        }
        idx += xx
        if( idx < 0 )
            idx = 0
        else if( idx >= allwidths.length )
            idx = allwidths.length - 1
        sumx = 0
        for( i=0; i<idx; i++ )
            sumx += allwidths[i]
        if( sumx > cw - win_w )
            sumx = cw - win_w
        current = idx
        $content.animate( {left: -sumx}, 200, relax )
    }
    var relax = function()
    {
        var sumx = -$content.position().left
        if( sumx == 0 )
            $(".news-hscroller-left a", node).css( {opacity: 0.3} )
        else
            $(".news-hscroller-left a", node).css( {opacity: 1} )
        if( sumx+1 >= cw-win_w )
            $(".news-hscroller-right a", node).css( {opacity: 0.3} )
        else
            $(".news-hscroller-right a", node).css( {opacity: 1} )
    }
    relax()
}

function makeCarousel( node, bullets )
{
    if( !node )
        return
    if( bullets === undefined )
        bullets = false
    var w = $(node).width()
    var h = $(node).height()
    var $boxes = $("> div", node)
    if( $boxes.length < 2 )
        return
    var ndiv = document.createElement( "div" )
    node.appendChild( ndiv )
    $ndiv = $(ndiv)
    var ndiv2 = document.createElement( "div" )
    ndiv.appendChild( ndiv2 )
    $boxes.each( function(idx)
    {
        ndiv2.appendChild( this )
    } )
    var cw = 0
    var maxh = 0
    var allwidths = []
    var widths = []
    var nw = 0
    $boxes.each( function()
    {
        nw = $(this).outerWidth(true)
        if( nw > 0 )
        {
            allwidths.push( nw )
            cw += nw
            maxh = Math.max( maxh, $(this).height() )
            widths.push( $(this).width() )
        }
    } )
    if( cw <= w )
        return
    $(ndiv).css( {width: w+'px', height: maxh+'px', position: 'relative', overflow: 'hidden'} )
    $(ndiv2).css( {position: 'absolute', width: cw+'px', height: maxh+'px' } )
    $boxes.each( function(idx)
    {
        $(this).css({"float": "left", "width": widths[idx]+'px'})
    } )
    var current = 0
    var move = function( xx )
    {
        var xoff = $(ndiv2).position().left
        var sumx = 0
        var idx = 0
        while( idx<allwidths.length-1 && sumx < -xoff )
        {
            sumx += allwidths[idx]
            idx += 1
        }
        idx += xx
        if( idx < 0 )
            idx = 0
        else if( idx >= allwidths.length )
            idx = allwidths.length - 1
        sumx = 0
        for( i=0; i<idx; i++ )
            sumx += allwidths[i]
        if( sumx > cw - w )
            sumx = cw - w
        current = idx
        $(ndiv2).animate( {left: -sumx}, 200, relax )
    }
    $(node).prepend( '<span class="nav"><img src="/img/prev.png" alt="prev" class="prev" /><img src="/img/pipe.png" alt="pipe.png" style="padding: 0 4px;" /><img src="/img/next.png" alt="next" class="next" /></span>' )
    if( bullets )
    {
        var nav = $(".nav", node)[0]
        var span = document.createElement( "span" )
        span.className = "bullets"
        nav.insertBefore( span, nav.firstChild )
        var $span = $(span)
        for( i=0; i<widths.length; i++ )
        {
            $span.append( '<a class="nav-nr" rel="'+i+'">&bull;</a>' )
        }
        $("a.nav-nr", nav).click( function()
        {
            var nr = parseInt( this.rel )
            if( !isNaN(nr) )
            {
                move( nr-current )
            }
            return false
        } )
    }
    $(node).css( { height: 'auto' } )
    $(".nav .prev", node).click( function()
    {
        move( -1 )
    } )
    $(".nav .next", node).click( function()
    {
        move( 1 )
    } )
    var relax = function()
    {
        var sumx = -$(ndiv2).position().left
        if( sumx == 0 )
            $(".nav .prev", node).css( {opacity: 0.3} )
        else
            $(".nav .prev", node).css( {opacity: 1} )
        if( sumx+1 >= cw-w )
            $(".nav .next", node).css( {opacity: 0.3} )
        else
            $(".nav .next", node).css( {opacity: 1} )
        if( bullets )
        {
            $(".nav .nav-nr", node).not('[rel="'+current+'"]').removeClass('active')
            $(".nav .nav-nr", node).filter('[rel="'+current+'"]').addClass('active')
        }
    }
    relax()
}
// call $(window).load( function() { makeCarousel( domNode ) } )

function makeTopNews( node )
{
    if( !node )
        return
    var $items = $(".item", node)
    var w = $(node).width()
    var h = $(node).height()
    $(node).css( {position: "relative"} )
    $items.css( {position: "absolute", top: 0, left: 0, width: w+'px', height: h+'px', display: 'none'} )
    $($items[0]).css( {display: 'block'} )
    var citem = 0
    if( $items.length < 2 )
        return
    var span = document.createElement( "span" )
    var $span = $(span)
    span.className = "topnews-nav"
    node.appendChild( span )
    for( i=0; i<$items.length; i++ )
    {
        $span.append( '<a href="#" class="nav-nr nav-nr'+i+'">'+(i+1)+'</a>' )
    }
    var timer
    var moveTo = function( nr )
    {
        if( nr != citem )
        {
            var titem = citem
            $items.stop( true, true )
            $($items[citem]).fadeOut( 400, function() { $(".nav-nr"+titem).removeClass('nav-active') } )
            $($items[nr]).fadeIn( 400, function() { $(".nav-nr"+nr).addClass('nav-active') } )
            citem = nr
            relax()
            startAnimate()
        }
    }
    $(".nav-nr"+citem).addClass('nav-active')
    $("a.nav-nr", span).click( function()
    {
        moveTo( parseInt( $(this).text() ) - 1 )
        stopAnimate()
        return false
    } )
    var ldiv = document.createElement( "div" )
    ldiv.className = "left"
    node.appendChild( ldiv )
    var rdiv = document.createElement( "div" )
    rdiv.className = "right"
    node.appendChild( rdiv )
    $(ldiv).click( function()
    {
        if( citem > 0 )
            moveTo( citem-1 )
        else
            moveTo( $items.length-1 )
    } )
    $(rdiv).click( function()
    {
        if( citem < $items.length-1 )
            moveTo( citem+1 )
        else
            moveTo( 0 )
    } )
    var over
    $(node).hover( function()
    {
        over = true
        stopAnimate()
        relax()
    }, function()
    {
        over = false
        startAnimate()
        relax()
    } )
    var relax = function()
    {
        if( over )
        {
            $(ldiv).fadeIn( 100 )
            $(rdiv).fadeIn( 100 )
            /*
            if( citem > 0 )
                $(ldiv).fadeIn( 100 )
            else
                $(ldiv).fadeOut( 100 )
            if( citem < $items.length-1 )
                $(rdiv).fadeIn( 100 )
            else
                $(rdiv).fadeOut( 100 ) */
        }
        else
        {
            $(ldiv).fadeOut( 100 )
            $(rdiv).fadeOut( 100 )
        }
    }
    var startAnimate = function()
    {
        if( over )
            return
        timer = setTimeout( function()
        {
            var next = citem+1
            if( next >= $items.length )
                next = 0
            moveTo( next )
        }, 4000 )
    }
    var stopAnimate = function()
    {
        if( timer )
        {
            clearTimeout( timer )
            timer = null
        }
    }
    startAnimate()
    relax()
}
// call $( function() { makeTopNews( domNode ) } )

function imageSlider( node )
{
    if( !node )
        return
    $images = $("> div", node)
    if( $images.length < 2 )
        return
    $(node).css( {position: "relative"} )
    $images.css( {display: "none", position: "relative"} ).first().css( {display: "block"} )
    var ndiv = document.createElement( "div" )
    ndiv.className = "image-slider-nav"
    var $ndiv = $(ndiv)
    var current = 0
    node.appendChild( ndiv )
    for( i=0; i<$images.length; i++ )
    {
        $ndiv.append( '<a class="nav-nr" rel="'+i+'">&bull;</a>' )
    }
    $alla = $("a.nav-nr", $ndiv)
    var timer = null
    var over = null
    var moveTo = function( nr )
    {
        if( current != nr )
        {
            stopAnimate()
            var _curr = current
            current = nr
            $images.slice( _curr, _curr+1 ).fadeOut( 200, function()
                {
                    $alla.slice( _curr, _curr+1 ).removeClass( "active" )
                    $alla.slice( nr, nr+1 ).addClass( "active" )
                    $images.slice( nr, nr+1 ).fadeIn( 200, function()
                        {
                            startAnimate()
                        } )
                } )
        }
    }
    $("a", ndiv).click( function()
    {
        var _this = this
        var nr = parseInt( this.rel )
        if( !isNaN(nr) )
            moveTo( nr )
        return false
    } )
    $(node).hover( function()
    {
        over = true
        stopAnimate()
    }, function()
    {
        over = false
        startAnimate()
    } )
    var startAnimate = function()
    {
        if( !over )
            timer = setTimeout( function()
            {
                var next = current+1
                if( next >= $images.length )
                    next = 0
                moveTo( next )
            }, 4000 )
    }
    var stopAnimate = function()
    {
        if( timer )
        {
            clearTimeout( timer )
            timer = null
        }
    }
    $alla.slice( current, current+1 ).addClass( "active" )
    startAnimate()
}
// call $( function() { imageSlider( domNode ) } )

function makeVSlider( node, height )
{
    if( !node )
        return
    if( $(node).height() <= height )
        return
    var allheights = []
    $boxes = $("> div", node)
    $boxes.each( function()
    {
        allheights.push( $(this).outerHeight(true) )
    } )
    allh = 0
    for( idx in allheights )
        allh += allheights[idx]
    $(node).css( {height: height+'px', position: 'relative', overflow: 'hidden'} )
    var ndiv = document.createElement( "div" )
    var $ndiv = $(ndiv)
    $ndiv.css( {position: 'absolute', top: 0, left: 0, width: $(node).width()+'px', height: allh+'px'} )
    $boxes.each( function()
    {
        ndiv.appendChild( this )
    } )
    node.appendChild( ndiv )
    current = 0
    speed = 50
    var startAnimate = function()
    {
        var ypos = $ndiv.position().top
        var toanim = allheights[current] + ypos
        // alert( ypos+' '+allheights[current]+' '+toanim )
        $ndiv.animate( { top: -allheights[current] }, toanim/speed*1000, 'linear', function()
        {
            ndiv.removeChild( $boxes[current] )
            ndiv.appendChild( $boxes[current] )
            current += 1
            if( current >= allheights.length )
                current = 0
            $ndiv.css( {top: 0} )
            startAnimate()
        } )
    }
    var stopAnimate = function()
    {
        $ndiv.stop( true, false )
    }
    $(ndiv).hover( function()
    {
        stopAnimate()
    }, function()
    {
        startAnimate()
    } )
    startAnimate()
}


// stock swap_chart
function swap_chart(isin, picture_path, box_id)
{
	document.getElementById(box_id + '_chart').src = picture_path;
	$('#'+ box_id + ' a').removeClass('hover');
	$('#' + box_id + '_' + isin).addClass('hover');
	document.getElementById(box_id + '_chart_link').href = document.getElementById(box_id + '_' + isin);
}


function pollvote(p)
{
    f = document.getElementById('pollform' + p);
    f.x.value = p;
    f.y.value = (1000 - p) % 22; 
}

