$(document).ready(function(){
	//close bid that might be left opened because browser close
	 var closeQueryAuction = '/closebids.php'
         $.ajax({
             url: closeQueryAuction,
             dataType: 'json',
             type: 'POST',
             cache: false,
             success: function(data){
                     }
            });
    // Variable to hold auction data
    var auctions = '';
    var auctionObjects = new Array();

    // Collecting auction data, the layer id and auction id
    $('.auction-item').each(function(){
        var auctionId    = $(this).attr('id');
        var auctionTitle = $(this).attr('title');

        if($('#' + auctionId + ' .countdown').length){
            // collect the id for post data
            auctions = auctions + auctionId + '=' + auctionTitle + '&';

            // collect the object
            auctionObjects[auctionId]                           = $('#' + auctionId);
            auctionObjects[auctionId]['flash-elements']         = $('#' + auctionId + ' .countdown, #' + auctionId + ' .bid-price, #' + auctionId + ' .bid-bidder, #' + auctionId+ ' .bid-savings-price, #' + auctionId + ' .bid-savings-percentage, #' + auctionId + ' .closes-on');
            auctionObjects[auctionId]['countdown']              = $('#' + auctionId + ' .countdown');
            auctionObjects[auctionId]['closes-on']              = $('#' + auctionId + ' .closes-on');
            auctionObjects[auctionId]['bid-bidder']             = $('#' + auctionId + ' .bid-bidder');
            auctionObjects[auctionId]['bid-button']             = $('#' + auctionId + ' .bid-button');
            auctionObjects[auctionId]['bid-button-a']           = $('#' + auctionId + ' .bid-button a');
            auctionObjects[auctionId]['bid-button-p']           = $('#' + auctionId + ' .bid-button p');
            auctionObjects[auctionId]['bid-price']              = $('#' + auctionId + ' .bid-price');
            auctionObjects[auctionId]['bid-price-fixed']        = $('#' + auctionId + ' .bid-price-fixed');
            auctionObjects[auctionId]['bid-loading']            = $('#' + auctionId + ' .bid-loading');
			auctionObjects[auctionId]['buynow-button']          = $('#' + auctionId + ' .buynow-button');
            auctionObjects[auctionId]['bid-message']            = $('#' + auctionId + ' .bid-message');
            auctionObjects[auctionId]['bid-flash']              = $('#' + auctionId + ' .bid-flash');
            auctionObjects[auctionId]['bid-savings-price']      = $('#' + auctionId + ' .bid-savings-price');
            auctionObjects[auctionId]['bid-savings-percentage'] = $('#' + auctionId + ' .bid-savings-percentage');
            auctionObjects[auctionId]['bid-bookbidbutler']      = $('#' + auctionId + ' .bid-bookbidbutler');

            auctionObjects[auctionId]['bid-histories']          = $('#bidHistoryTable' + auctionTitle);
            auctionObjects[auctionId]['bid-histories-p']        = $('#bidHistoryTable' + auctionTitle + ' p');
            auctionObjects[auctionId]['bid-histories-tbody']    = $('#bidHistoryTable' + auctionTitle + ' tbody');
        }
    });

    // additional object
    var bidOfficialTime        = $('.bid-official-time');
    var bidBalance             = $('.bid-balance');
    var price                  = '';
    var priceFixed             = '';
    var getstatus_url_time;
    var getstatus_url;

    if($('.bid-histories').length){
        getstatus_url = '/getstatus.php?histories=yes&ms=';
    }else{
        getstatus_url = '/getstatus.php?ms=';
    }

    function convertToNumber(sourceString){
        return sourceString.replace(/&#[0-9]{1,};/gi, "")
                            .replace(/&[a-z]{1,};/gi, "")
                            .replace(/[a-zA-Z]+/gi, "")
                            .replace(/[^0-9\,\.]/gi, "");
    }

    // Do the loop when auction available only
    if(auctions){
        setInterval(function(){
            getstatus_url_time = getstatus_url + new Date().getTime();
            if($('.getStatusURL').attr('title')!='' &&$('.getStatusURL').attr('title')!=null)
            	getstatus_url_time = $('.getStatusURL').attr('title')+ new Date().getTime();
            $.ajax({
                url: getstatus_url_time,
                dataType: 'json',
                type: 'POST',
                cache: false,
                data: auctions,
                success: function(data){
                    if(data[0]){
                        if(data[0].Auction.serverTimeString){
                            if(bidOfficialTime.html()){
                                bidOfficialTime.html(data[0].Auction.serverTimeString);
                            }
                        }

                        if(data[0].Balance){
                            if(bidBalance.html()){
                                bidBalance.html(data[0].Balance.balance);
                            }
                        }
                    }

                    $.each(data, function(i, item){
                        if(auctionObjects[item.Auction.element]['bid-price-fixed'].html()){

                            if(auctionObjects[item.Auction.element]['bid-price-fixed'].length > 1){
                                auctionObjects[item.Auction.element]['bid-price-fixed'].each(function(){
                                    price = $(this).html();
                                });
                            }else{
                                price = auctionObjects[item.Auction.element]['bid-price-fixed'].html();
                            }

                        }else{

                            if(auctionObjects[item.Auction.element]['bid-price'].length > 1){
                                auctionObjects[item.Auction.element]['bid-price'].each(function(){
                                    price = $(this).html();
                                });
                            }else{
                                price = auctionObjects[item.Auction.element]['bid-price'].html();
                            }

                        }
                        
                        price = convertToNumber(price);

                        if(auctionObjects[item.Auction.element]['bid-bidder'].html() != item.LastBid.username){
                            auctionObjects[item.Auction.element]['bid-bidder'].html(item.LastBid.username);
                        }
                       
                        if(price != convertToNumber(item.Auction.price)){
                        	
                        	//$('#current_auction_timer').html(item.Auction.timer);
                            auctionObjects[item.Auction.element]['bid-price'].html('');
                            auctionObjects[item.Auction.element]['bid-price-fixed'].html('');
                            
                          
                           
                            if(auctionObjects[item.Auction.element]['bid-flash'] && item.Message){
                                auctionObjects[item.Auction.element]['bid-flash'].html(item.Message.message).show(1).animate({opacity: 1.0}, 2000).hide(1);
                                
                            }

                            if(auctionObjects[item.Auction.element]['bid-histories'].length){
                                if(auctionObjects[item.Auction.element]['bid-histories-p'].html()){
                                    auctionObjects[item.Auction.element]['bid-histories-p'].remove();
                                }

                                auctionObjects[item.Auction.element]['bid-histories-tbody'].empty();


                                $.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>';

                                    auctionObjects[item.Auction.element]['bid-histories-tbody'].append(row);
                                });

                                auctionObjects[item.Auction.element]['closes-on'].html(item.Auction.closes_on);
                                auctionObjects[item.Auction.element]['bid-savings-percentage'].html(item.Auction.savings.percentage);
                                auctionObjects[item.Auction.element]['bid-savings-price'].html(item.Auction.savings.price);
                            }

                            auctionObjects[item.Auction.element]['flash-elements'].effect("highlight", {}, 1500);
                        }

                        if(item.Auction.peak_only == 1 && item.Auction.isPeakNow == 0){
                            auctionObjects[item.Auction.element]['countdown'].html('Paused');

                            auctionObjects[item.Auction.element]['bid-button-a'].hide();
                            if(auctionObjects[item.Auction.element]['bid-button-p'].html() == ''){
                                auctionObjects[item.Auction.element]['bid-button'].append('<p>Peak Only Auction</p>');
                            }
                        }else{
                            if(item.Auction.end_time - item.Auction.serverTimestamp > 0){
                                auctionObjects[item.Auction.element]['countdown'].html(item.Auction.end_time_string);

                                if(item.Auction.time_left <= 10){
                                    auctionObjects[item.Auction.element]['countdown'].css('color', '#ff0000');
                                }else{
                                    auctionObjects[item.Auction.element]['countdown'].removeAttr('style');
                                }
                            }

                            if(auctionObjects[item.Auction.element]['bid-button-p'].html()){
                                auctionObjects[item.Auction.element]['bid-button-a'].show();
                                auctionObjects[item.Auction.element]['bid-button-p'].remove();
                            }
                        }
                        if(item.Auction.time_left <= 1 && item.Auction.closed == 0){
                        	 var closeQueryAuction = '/removeAuctionSecoundView.php'
                            $.ajax({
                                url: closeQueryAuction,
                                dataType: 'json',
                                type: 'POST',
                                cache: false,
                                data: 'auctionID='+item.Auction.id,
                                success: function(data){
	                                    }
                               });	 
                        }
                        if(item.Auction.time_left <= 1 && item.Auction.closed == 1){
                            auctionObjects[item.Auction.element]['countdown'].html('Ended');
                            auctionObjects[item.Auction.element]['bid-button'].hide();
                            auctionObjects[item.Auction.element]['bid-bookbidbutler'].hide();
                            var closeQueryAuction = '/removeAuctionSecoundView.php'
                                $.ajax({
                                    url: closeQueryAuction,
                                    dataType: 'json',
                                    type: 'POST',
                                    cache: false,
                                    data: 'auctionID='+item.Auction.id,
                                    success: function(data){
    	                                    }
                                   });	 
                        }
                    });
                },

                error: function(XMLHttpRequest, textStatus, errorThrown){
                    // nothing implement here
                    // have an idea?
                }
            });
        }, 1000);
    }else{
        if(bidOfficialTime.length){
            setInterval(function(){
                var gettime = '/gettime.php?' + new Date().getTime();
                $.ajax({
                    url: gettime,
                    cache: false,
                    success: function(data){
                        bidOfficialTime.html(data);
                    }
                });
            }, 1000);
        }
    }
    $('.bid-button-link-secound-view').click(function(){
        var auctionElement = 'auction_' + $(this).attr('title');
        var auctionElementSe = 'auction_se_' + $(this).attr('title');

        //auctionObjects[auctionElement]['bid-button'].hide(1);
        //auctionObjects[auctionElement]['bid-loading'].show(1);

        $.ajax({
            url: $(this).attr('href'),
            dataType: 'json',
            cache: false,
            success: function(data){
            	$('.' + auctionElementSe + ' .bid-message-secound-view').html(data.Auction.message)
                                                             .show(1)
                                                             .animate({opacity: 1.0}, 2000)
                                                             .hide(1);
            	
				if(data.Auction.message == "Your bid was placed")
				{
					$('.' + auctionElementSe ).animate({opacity: 1.0}, 2000).hide(1);
					$("#dialog").dialog('open');
					$('#current_auction_timer').html('00:15');
					$("#current_auction_price").html(data.Auction.price).show(1);
					$("#current_auction_start_price").html(data.Auction.start_price).show(1);
					$("#current_auction_savings_procent").html(data.Auction.savings_procent).show(1);
					$("#current_auction_savings_amount").html(data.Auction.savings_amount).show(1);
					$("#current_auction_participants").html(data.Auction.participants).show(1);
					$("#current_auction_buy_now_link").attr('href', '/app/webroot/payment_gateways/win_auction/'+data.Auction.id);
					$("#basic_auction_id").val(data.Auction.id);
					var intval = "";
					if(intval=="")
					{
						intval=setInterval(function()
						{
							$.ajax({
								url: '/popuptimer.php',

			                    dataType: 'json',
			                    cache: false,
			                    type: 'POST',
                                data: 'lastBid='+data.Auction.LastBid+'&bidID='+data.Auction.BidId,
                                
			                    success: function(data)
			                    	{
			                    		
			                    			if(data.Time<0)
			                    			{
			                    				clearInterval(intval);
			                    				$("#dialog").dialog('close');
			                    				auctionObjects[auctionElement]['bid-button'].show(1);
			                    				var closeBid = '/closebid.php?ms=' + new Date().getTime();
			                                	
			                                    $.ajax({
			                                        url: closeBid,
			                                        dataType: 'json',
			                                        type: 'POST',
			                                        cache: false,
			                                        data: 'bidID='+data.BidID,
			                                        success: function(data){
			                                           var test = data;
			                                        }
			                                    });
			                    			}
			                    			if(data.Time<10)
			                    				$("#current_auction_timer").html('00:0' + data.Time).show(1);
			                    			else
			                    				$("#current_auction_timer").html('00:' + data.Time).show(1);
			                    				
			                               
			                        }
								});

						}, 1000);
					}
					else
					{
						clearInterval(intval);
				    }	
				}
				else if(data.Auction.message == "Your can add bid to waiting list")
				{
					auctionObjects[auctionElement]['bid-button'].show(1);
					$("#dialogPending").dialog('open');
					var image = $('#productImage'+data.Auction.id).html();
					$('#current_auction_product_image').html(image).show(1);
					$('#current_auction_product_title').html(data.Product.title).show(1);
					$("#pending_auction_id").val(data.Auction.id);
					$('#current_auction_timerPending').html('').show(1);
					getCurrentAuctionTimeOut(data.Auction.id);
				}
				else if(data.Auction.message == "Auction has been closed")
				{
					$('.' + auctionElementSe ).animate({opacity: 1.0}, 2000).hide(1);
				}
				else
				{
					//auctionObjects[auctionElement]['bid-button'].show(1);
				}
                
				
                //auctionObjects[auctionElement]['bid-loading'].hide(1);
            }
        });
    });
    // Function for bidding
    $('.bid-button-link').click(function(){
        var auctionElement = 'auction_' + $(this).attr('title');

        auctionObjects[auctionElement]['bid-button'].hide(1);
        auctionObjects[auctionElement]['bid-loading'].show(1);

        $.ajax({
            url: $(this).attr('href'),
            dataType: 'json',
            cache: false,
            success: function(data){
                auctionObjects[auctionElement]['bid-message'].html(data.Auction.message)
                                                             .show(1)
                                                             .animate({opacity: 1.0}, 2000)
                                                             .hide(1);
															 
				if(data.Auction.message == "Your bid was placed")
				{
					$("#dialog").dialog('open');
					$('#current_auction_timer').html('00:15');
					$("#current_auction_price").html(data.Auction.price).show(1);
					$("#current_auction_start_price").html(data.Auction.start_price).show(1);
					$("#current_auction_savings_procent").html(data.Auction.savings_procent).show(1);
					$("#current_auction_savings_amount").html(data.Auction.savings_amount).show(1);
					$("#current_auction_participants").html(data.Auction.participants).show(1);
					$("#current_auction_buy_now_link").attr('href', '/app/webroot/payment_gateways/win_auction/'+data.Auction.id);
					$("#basic_auction_id").val(data.Auction.id);
					//$("#current_auction_return_later_link").attr('href', '/app/webroot/payment_gateways/delay_auction/'+data.Auction.id);
					var intval = "";
					if(intval=="")
					{
						intval=setInterval(function()
						{
							$.ajax({
								url: '/popuptimer.php',

			                    dataType: 'json',
			                    
			                    type: 'POST',
                                data: 'lastBid='+data.Auction.LastBid+'&bidID='+data.Auction.BidId,
                                
			                    success: function(data)
			                    	{
			                    		
			                    			if(data.Time<0)
			                    			{
			                    				clearInterval(intval);
			                    				$("#dialog").dialog('close');
			                    				auctionObjects[auctionElement]['bid-button'].show(1);
			                    				var closeBid = '/closebid.php?ms=' + new Date().getTime();
			                                	
			                                    $.ajax({
			                                        url: closeBid,
			                                        dataType: 'json',
			                                        type: 'POST',
			                                        cache: false,
			                                        data: 'bidID='+data.BidID,
			                                        success: function(data){
			                                           var test = data;
			                                        }
			                                    });
			                    			}
			                    			if(data.Time<10)
			                    				$("#current_auction_timer").html('00:0' + data.Time).show(1);
			                    			else
			                    				$("#current_auction_timer").html('00:' + data.Time).show(1);
			                    				
			                               
			                        }
								});

						}, 1000);
					}
					else
					{
						clearInterval(intval);
				    }					//auctionObjects[auctionElement]['buynow-button'].show(1);


				}
				else if(data.Auction.message == "Your can add bid to waiting list")
				{
					auctionObjects[auctionElement]['bid-button'].show(1);
					$("#dialogPending").dialog('open');
					var image = $('#productImage'+data.Auction.id).html();
					$('#current_auction_product_image').html(image).show(1);
					$('#current_auction_product_title').html(data.Product.title).show(1);
					$("#pending_auction_id").val(data.Auction.id);
					$('#current_auction_timerPending').html('').show(1);
					getCurrentAuctionTimeOut(data.Auction.id);
				}
				else if(data.Auction.message == "You cannot bid as you are already the lowest bidder")
				{
					$("#dialog").dialog('open');
					$('#current_auction_timer').html('00:00');
					$("#current_auction_price").html(data.Auction.price).show(1);
					$("#current_auction_start_price").html(data.Auction.start_price).show(1);
					$("#current_auction_savings_procent").html(data.Auction.savings_procent).show(1);
					$("#current_auction_savings_amount").html(data.Auction.savings_amount).show(1);
					$("#current_auction_participants").html(data.Auction.participants).show(1);
					$("#current_auction_buy_now_link").attr('href', '/app/webroot/payment_gateways/win_auction/'+data.Auction.id);
					$("#basic_auction_id").val(data.Auction.id);
					auctionObjects[auctionElement]['bid-button'].show(1);
				}
				else
				{
					auctionObjects[auctionElement]['bid-button'].show(1);
				}
                
				
                auctionObjects[auctionElement]['bid-loading'].hide(1);
            }
        });

        return false;
    });

    // Function to check limit and change the icon whenever it's changed
    // Run only when bid icon available
    if($('.bid-limit-icon').length){
        setInterval(function(){
            var count = $('.bid-limit-icon').length
            if(count > 0){
                $.ajax({
                    url: '/limits/getlimitsstatus/?ms=' + new Date().getTime(),
                    dataType: 'json',
                    cache: false,
                    success: function(data){
                        if(data){
                            $('.bid-limit-icon').each(function(i){
                                if(data[i].image){
                                    $(this).attr('src', '/img/'+data[i].image);
                                }
                            });
                        }
                    }
                });
            }
        }, 30000);
    }

    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');
        });
    }
});

function closePendingDialog()
{
	 $('#dialogPending').dialog('close');
	 //getCurrentAuctionTimeOut($("#pending_auction_id").val());
	 var item ='';
	 var image = $('#productImage'+$("#pending_auction_id").val()).html();
	 image = image.replace("width=\"70\"", "width=\"50\"");
	 var title = $('#product_link_'+$("#pending_auction_id").val()).html();
	 item += '<li class="queryBidList-item" id="auction_'+$("#pending_auction_id").val()+'" title="'+$("#pending_auction_id").val()+'">';
	 item += '<div style="float:left; padding-left:3px;width:55px; margin-top:5px;">';
	 item += '<a href="/auctions/buydowns/'+$("#pending_auction_id").val()+'">';
	 
	 item += image;
	 item += '</a></div>';
	 item += '<div style="float:left; padding-left:7px;width:135px; margin-top:5px;" class="query_timerauction'+$("#pending_auction_id").val()+'">';
	 item += '<div style="color:red; font-size:14px; font-weight:bold;padding:5px 0;">time until bid: <span id="timerauction_'+$("#pending_auction_id").val()+'"></span></div>';
	 item += title;
	 item += '</div><div style="clear:both; height:7px"></div></li>';
	 $(".queryBidList").append(item);	 
}

function getCurrentAuctionTimeOut(auctionId)
{
	 intervalQueryList = setInterval(function(){
         $.ajax({
             url: '/app/webroot/getstatusquerylist.php',
             dataType: 'json',
             type: 'POST',
             cache: false,
             data: 'auction_'+auctionId+'='+auctionId,
             success: function(data){
	                		if(data[0].Auction.queryTimer<=0)
	                		{
	                			$('#current_auction_timerPending').html('00').show(1);
	                			if($('#timerauction_'+data[0].Auction.id))
	                				$('#timerauction_'+data[0].Auction.id).html('00').show(1);
	                			if($('.queryBidList #auction_'+data[0].Auction.id))
	                				$('.queryBidList #auction_'+data[0].Auction.id).remove();
	                			var closeQueryAuction = '/closequeryauction.php?ms=' + new Date().getTime();
	                			var auctionId = data[0].Auction.id;
	                			$.ajax({
	                                 url: closeQueryAuction,
	                                 dataType: 'json',
	                                 type: 'POST',
	                                 data: 'bidID='+data[0].Auction.bidId+'&auctionID='+data[0].Auction.id,
	                                 success: function(data){
		                                 	$("#dialogPending").dialog('close');
		                                 	var auctionElement = 'auction_' + data.auctionID;
		                                 	$('#' + auctionElement + ' .bid-button').show(1);
		                                 	clearInterval(intervalQueryList);
		                                    }
	                                });	                			
		                	}
	                		else
	                		{
	                			$('#current_auction_timerPending').html(data[0].Auction.queryTimer).show(1);
	                			if($('#timerauction_'+data[0].Auction.id))
	                				$('#timerauction_'+data[0].Auction.id).html(data[0].Auction.queryTimer).show(1);
	                		}
		            	}
	                });
	        }, 1000);
}
