$(document).ready(function(){

    if($.browser.msie){

        //Configuring ajax

        $.ajaxSetup({

            cache: false

        });

    }



    fetchTimestamp = function(){

        return parseInt($('#timestamp').text());

    };



    // Default frequency for auction updating and time sync

    var auctionUpdateTime = 10;



    if($('#auctionupdatefrequency')){

        auctionUpdateTime = parseInt($('#auctionupdatefrequency').text());

    }



    // Convert it to milisecond

    auctionUpdateTime = auctionUpdateTime * 1000;



    // Variable to hold auction data

    var auctions = '';



    // Collecting auction data, the layer id and auction id

    $('.auction-item').each(function(){

        var auctionId    = $(this).attr('id');

        var auctionTitle = $(this).attr('title');

        var counter      = $('#' + auctionId + ' .countdown');



        if(counter){

            if(counter.attr('title') > fetchTimestamp()){

                auctions = auctions + auctionId + '=' + auctionTitle + '&';

            }

        }

    });



    // Main countdown for updating auction and flashing
	setInterval(function(){

		if(auctions){

			var	id = '';
			if ((pos=auctions.lastIndexOf('&')) > 0) {
				id	= auctions.substring(auctions.lastIndexOf('=')+1, pos);
			} else {
				id	= auctions.substring(auctions.lastIndexOf('=')+1);
			}

			var nocacheTimestamp = new Date();

			getStatusUrl	= '/getstatus.php?'
							+ ($('#bidHistoryTable'+id).length ? 'histories=yes&' : '')
							+ 'time='+nocacheTimestamp.getTime();

            $.ajax({

                url: getStatusUrl,

                dataType: 'json',

                type: 'POST',

                timeout: 2999,

                global: false,

                data: auctions,

                success: function(data){


                    $.each(data, function(i, item){

                        var auctionBlock        = $('#' + item.Auction.element);

                        var auctionEndTime      = $('#' + item.Auction.element + ' .countdown').attr('title');

                        var auctionLatestBidder = $('#' + item.Auction.element + ' .bid-bidder').text();

                        var auctionCountdown    = $('#' + item.Auction.element + ' .countdown');

                        var auctionClosesOn     = $('#' + item.Auction.element + ' .closes-on');



                        if(auctionLatestBidder != item.LastBid.username){

                            $('#' + item.Auction.element + ' .bid-bidder').html(item.LastBid.username);

                        }



                        if(auctionEndTime != item.Auction.end_time){

                            auctionCountdown.attr('title', item.Auction.end_time);



                            $('#' + item.Auction.element + ' .bid-price').html(item.Auction.start_price);



                            if(document.getElementById('bidHistoryTable' + item.Auction.id)){

                                if($('#bidHistoryTable' + item.Auction.id + ' p').text()){

                                    $('#bidHistoryTable' + item.Auction.id + ' p').remove();

                                }



                                $('#bidHistoryTable' + item.Auction.id + ' tbody tr').remove();


                                $.each(item.Histories, function(n, tRow){

                                    var row = '<tr><td>' + tRow.Bid.created + '</td><td>' + tRow.User.username + '</td><td>' + tRow.Bid.description + '</td></tr>';



                                    $('#bidHistoryTable' + item.Auction.id + ' tbody').append(row);

                                });



                                auctionClosesOn.text(item.Auction.closes_on);

                                $('#' + item.Auction.element + ' .bid-savings-percentage').html(item.Auction.savings.percentage);

                                $('#' + item.Auction.element + ' .bid-savings-price').html(item.Auction.savings.price);

                            }



                            $('#' + item.Auction.element + ' .countdown, #' + item.Auction.element + ' .bid-price, #' + item.Auction.element + ' .bid-bidder, #' + item.Auction.element + ' .bid-savings-percentage, #' + item.Auction.element + ' .closes-on').animate( { backgroundColor: 'yellow' }, 500).animate( { backgroundColor: 'white' }, 1000);

                        }



                        if(item.Auction.peak_only == 1 && item.Auction.isPeakNow == 0){

                            auctionCountdown.text('Paused');



                            $('#' + item.Auction.element + ' .bid-button a').hide();

                            if($('#' + item.Auction.element + ' .bid-button p').text() == ''){

                                $('#' + item.Auction.element + ' .bid-button').append('<p>Peak Only Auction</p>');

                            }

                        }else{

                            if(item.Auction.end_time - item.Auction.serverTimestamp > 0){

                                auctionCountdown.text(item.Auction.end_time_string);



                                if(item.Auction.time_left <= 10){

                                    auctionCountdown.css('color', '#ff0000');

                                }else{

                                    auctionCountdown.removeAttr('style');

                                }

                            }



                            if($('#' + item.Auction.element + ' .bid-button p').text()){

                                $('#' + item.Auction.element + ' .bid-button a').show();

                                $('#' + item.Auction.element + ' .bid-button p').remove();

                            }

                        }



                        if(item.Auction.time_left < 1 && item.Auction.closed == 1){

                            auctionCountdown.text('Ended');

                            $('#' + item.Auction.element + ' .bid-button').hide();

                            $('#' + item.Auction.element + ' .bid-bookbidbutler').hide();



                        }else if(item.Auction.time_left == 1 && item.Auction.closed == 0){

                            auctionCountdown.text('Paused');

                        }

                    });

                },



                error: function(XMLHttpRequest, textStatus, errorThrown){

                    //$('.countdown').text(textStatus);

                }

            });

        }

    }, auctionUpdateTime);



    // Function for bidding

    $('.bid-button-link').click(function(){

        var auctionElement = 'auction_' + $(this).attr('title');

        var bidButton      = $('#' + auctionElement + ' .bid-button');

        var bidLoading     = $('#' + auctionElement + ' .bid-loading');

        var bidMessage     = $('#' + auctionElement + ' .bid-message');



        bidButton.hide(1);

        bidLoading.show(1);



        $.ajax({

            url: $(this).attr('href'),

            dataType: 'json',

            success: function(data){

                bidMessage.html(data.Auction.message).show(1).animate({opacity: 1.0}, 2000).hide(1);

                bidButton.show(1);

                bidLoading.hide(1);

            }

        });



        return false;

    });



    if($('.productImageThumb').length){

        $('.productImageThumb').click(function(){

            $('.productImageMax').fadeOut('fast').attr('src', $(this).attr('href')).fadeIn('fast');

            return false;

        });

    }



    if($('#CategoryId').length){

        $('#CategoryId').change(function(){

            document.location = '/categories/view/' + $('#CategoryId option:selected').attr('value');

        });

    }



    if($('#myselectbox').length){

        $('#myselectbox').change(function(){

            document.location = '/categories/view/' + $('#myselectbox option:selected').attr('value');

        });

    }



});


