    
    var id_list      = new Array();
    var auction_list = new Array();
    var user_info    = {};
    var start_ts_ms  = 0;

    // vyresit, jestli ma uzivatel pristup k prihozum - prihlaseni
    function resolve_auction_access()
    {
        if (user_info.logged == false && $(".bid").data("not_logged") != false )
        {
            $(".bid").data( "not_logged", false );
            
            $(".bid").hover( function () {  
                $(this).addClass("forbidden");  
            }, function () {
                $(this).removeClass("forbidden"); 
            });
            
            $(".bid").unbind("click");
            $(".bid").click( function () {
                location.replace("/login/");
                return false;
            });
        } else if (user_info.logged == true && $(".bid").data("not_logged") != true)
        {
            $(".bid").data("not_logged", true);
            $(".bid").removeClass("forbidden");
             
            $(".bid").unbind("mouseenter");
            $(".bid").unbind("mouseleave");
            
            $(".bid").unbind("click");
            $(".bid").click( make_bid );
        }
    }
    
    
    function resolve_stopped( auction_detail )
    {
        // najit odpovidajici box aukce
        var auction_container = $("#auction_" + auction_detail.id);

        if( auction_detail.stop == 1 )
        {
            auction_container.find(".bid").hide();
            auction_container.find(".stopped").show();
        } else if ( auction_detail.stop == 0 )
        {
            auction_container.find(".bid").show();
            auction_container.find(".stopped").hide();
        }
    }

    // vyplni predane udaje o aukci
    function fill_auction_data( auction_detail )
    {
        var auction = $("#auction_" + auction_detail.id);
		  
        if ( auction_detail.time_remaining <= 0 )
        {
            // pro jistotu vynulovat
            auction_detail.time_remaining = 0;
            
            auction.find(".bid").hide();
            auction.find(".auctionend").show();            
            // a zkontrolovat, zda uzivatel nevyhral aukci
            if ( auction_detail.user == user_info.user)
            {
                auction.find(".auctionend").hide();
                auction.find(".auctionenduwin").show();
            }
            
            auction.find(".user").html(auction_detail.user);   // jméno vítěze
            auction.find(".remaining").html( "00:00:00" );     // čas nahradit textem
            
        } else {
          
          auction.find(".auctionend").hide();            
          auction.find(".auctionenduwin").hide();
        
          if(auction_detail.type == 2  && auction_detail.price <= 0)     // když jde o Holandskou aukci a cena je nula
          {
            auction.find(".bid").hide();
            auction.find(".auctionend").show();            
            if ( auction_detail.user == user_info.user)  // kontrola, zda nejste vítěz
            {
              auction.find(".auctionenduwin").show();
            }
          
            auction.find(".price_amount").html("0");           // ošetřit, aby nebyla záporná cena
            auction.find(".user").html(auction_detail.user);   // jméno vítěze
            auction.find(".remaining").html( "Prodáno" );      // čas nahradit textem
          
          } else {
            var hodin = Math.floor( (auction_detail.time_remaining /60) /60 );
            if(hodin >= 24) 
            {
              var dnu = Math.floor(hodin/24) + " dnů";
            } else { 
              var dnu = ""; 
            }
          
            if(auction_detail.time_remaining > 0 && auction_detail.time_remaining < 20) {
              auction.find(".remaining").css({ color: "red" });
            } else {
              auction.find(".remaining").css({ color: "#000000" });
            }
            
            if(auction_detail.time_remaining > 0 && auction_detail.time_remaining < 29) {
              auction.find(".achtung").show();
            } else {
              auction.find(".achtung").hide();
            }
            
            var currentTime = new Date( auction_detail.time_remaining * 1000 );
            var hour = currentTime.getHours()-1;
            var minutes = currentTime.getMinutes();
            var second = currentTime.getSeconds();
            
            
            if(hour == -1 && dnu == "") hour = 23;
            if(hour < 0) hour = 0;            
            if(hour < 10) hour = "0"+hour;
            if(hour >= 24) hour = "00";
            
            
            if(minutes < 10) minutes = "0"+minutes;
            if(second < 10) second = "0"+second;
            var bidprice = auction_detail.nums*7;
            var free = auction_detail.price_their-auction_detail.price-bidprice;
            
            auction.find(".title").html(auction_detail.title);
            auction.find(".price_amount").html(auction_detail.price);
            auction.find(".price_their").html(auction_detail.price_their);
            auction.find(".usetrite").html(free.toFixed(2) + " Kč");
            auction.find(".user").html(auction_detail.user);
            auction.find(".numberbid").html(auction_detail.nums);
            auction.find(".numberbidprice").html(bidprice.toFixed(2));
            auction.find(".remaining").html( hour + ":" + minutes + ":" +second );
            auction.find(".remainingday").html( dnu );
          }
        }
    }
    
    // ziskava ze serveru a nasledne vyplnuje data o aukcich dle seznamu id
    function fetch_fill_auction_data( auction_list )
    {
        $.getJSON( "/rpc.php?id_list=" + id_list.join(","),
            function (data) {
                if ( data )
                {
                    // ulozit info o uzivateli
                    user_info = data.user_info;
						  $(".credit").html( user_info.credit );
						  
                    resolve_auction_access();

                    // projit vraceny seznam dat o aukcich
                    $.each (
                        data.auction_list,
                        function ( index, auction_detail ) {
                            // vyresit pozastavene
                            resolve_stopped( auction_detail );
                            // a vyplnit jejich udaje
                            fill_auction_data( auction_detail );
                        }
                    );
                }
            }
        );
    }
        
    function show_message( message_object, auction_id )
    {
        auction_object = $("#auction_" + auction_id);
        
        message_object.css("left", (auction_object.offset().left + 5) + "px");
        message_object.css("top" , (auction_object.offset().top  + 5) + "px");
        
        message_object.width(auction_object.width()  - 10);
        message_object.height(auction_object.height() - 40);
        
        message_object.show("slow", function () {
            $(this).fadeOut(4000);
        });
    } 
    
    function bid_error ( auction_data, response_code )
    {
        switch( response_code )
        {
            case 304:
                show_message( $("#auction_end"), auction_data.id );
                fill_auction_data( auction_data );
            break;
            case 402:
                alert("Nemáte dostatečný počet MANů pro příhoz.");
            break;
            case 403:
                show_message( $("#authorization_required"), auction_data.id );
            break;
            case 404:
            case 500:
                show_message( $("#general_error"), auction_data.id );
            break;
        }
    }     
            
    function make_bid()
    {
        // zjistit id aukce
        var auction_id = $(this).parents(".auction").data("id") ;
            
        // oznamit prihozeni
        $.getJSON( 
            "/rpc_bid.php?bid=" + auction_id,
            function ( response ) {
                if ( response.response_code == 200 )
                {
						  // prihozeni probehlo v poradku, aktualizovat dotycnou aukci
                    fill_auction_data( response.auction_data );
                } else
                {
                    if ( response.auction_data == undefined )
                    {
                        response.auction_data = { id : auction_id } ;
                    }
                    bid_error( response.auction_data, response.response_code );
                }
            } ) ;
            
        // prerusit kliknuti
        return false;
    } 
         
    
    $(document).ready(function () {
        auction_list = $(".auction");
        $.each( 
                auction_list, 
                function ( index, auction_container ) {
                    var id = $(auction_container).attr("id").split("_")[1];
                    
                    $(auction_container).data("id", id);
                    id_list.push( id );
                }
        );
        
        // akce po prihozeni
        $(".bid").click( function () {
                location.replace("/login/");
                return false;
        });
        
        $(document).everyTime(
                                1000, 
                                function(auction_list) {                                     
                                    fetch_fill_auction_data( auction_list ); 
                                },
                                0 
        );
        
        resolve_auction_access( { 'logged' : false } );
        
    });
    
    

