var bnIsLoad = false;       // is load in process
var bnTimout = 0;
var bnTimoutBeforeFirstShow = 500;
var bnTimoutAfterFirstShow = 5000;
var bnList = new Array();
var bnNextShowIndex = 0;

function bnItem( name, source, link, target )
{
    var item = new Array();
    var index = bnList.length;

    item[ 'index' ] = index;
    item[ 'name' ] = name;
    item[ 'source' ] = source;
    item[ 'link' ] = link;
    item[ 'target' ] = target;
    item[ 'is_loaded' ] = false;

    bnList[ index ] = item;

    $("#bnData #bnStorage").append( "<div id='bnStoreItem" + index + "'></div>" );

    return true;
}

function bnLoadImage()
{
	var htmlData = '';
	
	htmlData += '<a href="' + bnList[ bnNextShowIndex ][ 'link' ] + '"';
		if( bnList[ bnNextShowIndex ][ 'target' ] )
		{
			htmlData += ' target="' + bnList[ bnNextShowIndex ][ 'target' ] + '"';
		}
		htmlData += '>';
	htmlData += '<img src="' + bnList[ bnNextShowIndex ][ 'source' ] + '" width="211" height="60" border="0" alt="' + bnList[ bnNextShowIndex ][ 'name' ] + '" />';
	htmlData += '</a>';

    $("#bnData #bnStorage #bnStoreItem" + bnNextShowIndex ).html( htmlData );
    $("#bnData #bnStorage #bnStoreItem" + bnNextShowIndex + " img").load( 
        function()
        {
            bnList[ bnNextShowIndex ][ 'is_loaded' ] = true;
            bnIsLoad = false;
        } );
}

function bnTimeout()
{
    // show current block

    if( bnList[ bnNextShowIndex ][ 'is_loaded' ] == true )
    {
        $("#bnData #bnShower").hide();
        $("#bnData #bnShower").html( $("#bnData #bnStorage #bnStoreItem" + bnNextShowIndex ).html() );
        $("#bnData #bnShower").fadeIn( 1000 );

        bnNextShowIndex++;

        if( bnNextShowIndex == bnList.length )
        {
            bnNextShowIndex = 0;
        }

		bnTimout = bnTimoutAfterFirstShow;
    }

    // try to load next block

    if( bnList[ bnNextShowIndex ][ 'is_loaded' ] == false )
    {
        if( bnIsLoad == false )
        {
            bnIsLoad = true;
            bnLoadImage();
        }
    }

    setTimeout( "bnTimeout()", bnTimout );
}

function bnProcess()
{
	bnTimout = bnTimoutBeforeFirstShow;

    setTimeout( "bnTimeout()", bnTimout );
}
