var ajaxLoop;

$(function() {
    // Variable to hold auction data
    var auctions = '';
    var auctionObjects = new Array();
	var words = '';
	
    // Collecting auction data, the layer id and auction id
    $('.auction-item').each(function(){

        var auctionId    = $(this).attr('id');
        var auctionTitle = auctionId.substr(8);
		//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]['flash-elements']         = $('.' + auctionId + ' .countdown');
            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-timer']              = $('.' + auctionId + ' .bidder-timer');
			auctionObjects[auctionId]['bid-timer-text']         = $('.' + auctionId + ' .bidder-timer-text');
            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-sold']              	= $('.' + auctionId + ' .bid-sold');
			auctionObjects[auctionId]['price']              	= $('.' + auctionId + ' .price');
			auctionObjects[auctionId]['value-price']            = $('.' + auctionId + ' .value-price');
            auctionObjects[auctionId]['bid-price-fixed']        = $('.' + auctionId + ' .bid-price-fixed');
            auctionObjects[auctionId]['bid-loading']            = $('.' + auctionId + ' .bid-loading');
            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]['partner-callback']       = $('.' + auctionId + ' .partner-callback');

            //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 valueprice			   = $('.value-price');
	//var divPrice			   = $('.price');
	var loggedOnUser		   = $('.logged_on_user').text();	
    var bidOfficialTime        = $('.bid-official-time');
    var bidBalance             = $('.bid-balance');
    var price                  = '';
    var priceFixed             = '';
    var getstatus_url_time;
    var getstatus_url;
	var msg = new Object();
	
	msg = getMessages();
	
	// Do the loop when auction available only
    if(auctions){
		//put the current time to timebefore var
		date_now = new Date().getTime();
		$("#time_before").text(date_now);
        postAjax();
    }else{
        if(bidOfficialTime.length){
            setInterval(function(){
                var gettime = '/gettime.php?' + new Date().getTime();
                $.ajax({
                    url: gettime,
                    success: function(data){
                        bidOfficialTime.html(data);
                    }
                });
            }, 1000);
        }
    }
    
    function convertToNumber(sourceString){
        return sourceString.replace(/&#[0-9]{1,};/gi, "")
                            .replace(/&[a-z]{1,};/gi, "")
                            .replace(/[a-zA-Z]+/gi, "")
                            .replace(/[^0-9\,\.]/gi, "");
    }
    
    function yellowFade(el) {
	var b = 155;
	function f() {
	  el.style.background = 'rgb(255,255,'+ (b+=4) +')';
	  if (b < 255) {
	    setTimeout(f, 40);
	  }
	};
	f();
    }

   function postAjax() {
   		if($('.bid-histories').length){
	        getstatus_url = '/data.timer.2.php?histories=yes&ms=';
	    }else{
	        getstatus_url = '/data.timer.2.php?ms=';
	    }
   		//showTime = setInterval(function(){
            getstatus_url_time = getstatus_url + new Date().getTime();
			
            $.ajax({
                url: getstatus_url_time,
                dataType: 'json',
                type: 'POST',
                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()){
								if (data[0].Balance.balance == null || data[0].Balance.balance == ""  || parseInt(data[0].Balance.balance) < 0) {
									data[0].Balance.balance = 0;
								}
                                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);
						//check if text = no_bid_yet
						if  (item.LastBid.username == "no_bid_yet") {
							var bidderName = msg['no_bid_yet'];
						}
						else {
							var bidderName = item.LastBid.username;
						}
						
                        if(auctionObjects[item.Auction.element]['bid-bidder'].html() != bidderName){
                            auctionObjects[item.Auction.element]['bid-bidder'].html(msg['highest'] + ': <strong>'+ bidderName +'</strong>');							
                        }
						if (loggedOnUser == item.LastBid.username) {
                            if (item.Auction.free_auction == 1) {
                                if (item.Auction.cooldownString == "bid_for_free") {
									auctionObjects[item.Auction.element]['bid-button'].css("display", "block");
									auctionObjects[item.Auction.element]['bid-timer'].css('display', 'none');
									auctionObjects[item.Auction.element]['bid-timer-text'].css('display', 'none');
                                    auctionObjects[item.Auction.element]['bid-button-a'].html('<span class="bid_span">' + msg['leader'] + '</span>');
									auctionObjects[item.Auction.element]['bid-button'].attr('class', 'bidder_highest');
                                }
                                else {
                                    auctionObjects[item.Auction.element]['bid-button'].css("display", "none");
									auctionObjects[item.Auction.element]['bid-timer'].css('display', 'block');
									auctionObjects[item.Auction.element]['bid-timer-text'].css('display', 'block');
									auctionObjects[item.Auction.element]['bid-timer'].attr('class', 'bidder_timer');
									auctionObjects[item.Auction.element]['bid-timer-text'].attr('class', 'bidder-timer-text');
									auctionObjects[item.Auction.element]['bid-timer'].html(item.Auction.cooldownString);
                                }
                                
                            }
                            else {
								auctionObjects[item.Auction.element]['bid-timer'].css('display', 'none');
								auctionObjects[item.Auction.element]['bid-timer-text'].css('display', 'none');
                                auctionObjects[item.Auction.element]['bid-button-a'].html('<span class="bid_span">' + msg['leader'] + '</span>');
 							    auctionObjects[item.Auction.element]['bid-button'].attr('class', 'bidder_highest');
                            }
						}
						else {
						    if (item.Auction.free_auction == 1) {
                                if (item.Auction.cooldownString == "bid_for_free") {
									auctionObjects[item.Auction.element]['bid-button'].css("display", "block");
									auctionObjects[item.Auction.element]['bid-timer'].css('display', 'none');
									auctionObjects[item.Auction.element]['bid-timer-text'].css('display', 'none');
                                    auctionObjects[item.Auction.element]['bid-button-a'].html('<span class="bid_span">' + msg['bidNow'] + '</span>');
									auctionObjects[item.Auction.element]['bid-button'].attr('class', 'bidder_highest');
                                }
                                else {
                                    auctionObjects[item.Auction.element]['bid-button'].css("display", "none");
									auctionObjects[item.Auction.element]['bid-timer'].css('display', 'block');
									auctionObjects[item.Auction.element]['bid-timer-text'].css('display', 'block');
									auctionObjects[item.Auction.element]['bid-timer'].attr('class', 'bidder_timer');
									auctionObjects[item.Auction.element]['bid-timer-text'].attr('class', 'bidder-timer-text');
									auctionObjects[item.Auction.element]['bid-timer'].html(item.Auction.cooldownString);
                                }
                                
                            }
                            else {
								auctionObjects[item.Auction.element]['bid-timer'].css('display', 'none');
								auctionObjects[item.Auction.element]['bid-timer-text'].css('display', 'none');
                                auctionObjects[item.Auction.element]['bid-button-a'].html('<span class="bid_span">' + msg['bidNow'] + '</span>');
 							    auctionObjects[item.Auction.element]['bid-button'].attr('class', 'bidder_normal');
                            }
                            //Jgrowl here
						}
						/*if (loggedOnUser == item.LastBid.username) {
							//auctionObjects[item.Auction.element]['bid-button-a'].text(msg['leader']); 
							auctionObjects[item.Auction.element]['bid-button-a'].html('<span class="bid_span">' + msg['leader'] + '</span>');
							//auctionObjects[item.Auction.element]['bid-button'].css('background','url(/themed/ziinga/img/btn_highestbid-blank.png) no-repeat center');
							auctionObjects[item.Auction.element]['bid-button'].attr('class', 'bidder_highest');
							 
						}
						else {
							//auctionObjects[item.Auction.element]['bid-button-a'].text(msg['bidNow']); 
							auctionObjects[item.Auction.element]['bid-button-a'].html('<span class="bid_span">' + msg['bidNow'] + "</span>");
							//auctionObjects[item.Auction.element]['bid-button'].css('background','url(/themed/ziinga/img/btn_bidnow2-blank.png) no-repeat center'); 
							auctionObjects[item.Auction.element]['bid-button'].attr('class', 'bidder_normal');
						}*/
                        if(price != convertToNumber(item.Auction.price)){
                            auctionObjects[item.Auction.element]['bid-price'].html(item.Auction.price);
                            auctionObjects[item.Auction.element]['bid-price-fixed'].html(item.Auction.price);

                            /*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></tr>';//<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);
                            }*/
							
							//change button when a client bids
                            //
                            //if ($.browser.msie) {
                                if (parseInt(item.Auction.status_id) != 10) {
                                    auctionObjects[item.Auction.element]['flash-elements'].glow('yellow', 200);
                                }
                            //}
                            //else {
                            //    auctionObjects[item.Auction.element]['flash-elements'].animate({backgroundColor: "yellow"}, 300).animate({backgroundColor: "white"}, 300);
                            //}

                            //auctionObjects[item.Auction.element]['flash-elements'].animate({backgroundColor: "white"}, 300);
							//var timerId = item.Auction.element;
							//var timerElement = timerId.substr(8);
							
							//$("#timer_"+ timerElement).effect("highlight", {}, 1000);
                        }

                        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);
								//alert("Auction End Time: "+item.Auction.end_time+"\n"+ "Server Time Stamp: "+ item.Auction.end_time_string+"\n"+"Auction Time String: "+item.Auction.end_time_string);
                                if (item.Auction.time_left > 120){
                                    auctionObjects[item.Auction.element]['countdown'].attr('class','countdown_timer');
                                }

								if (item.Auction.time_left <= 120){
                                    //auctionObjects[item.Auction.element]['countdown'].css('color', '#ff0000');
									auctionObjects[item.Auction.element]['countdown'].attr('class','countdown_timer_120');
                                }
				
								if (item.Auction.time_left <= 60) {
									auctionObjects[item.Auction.element]['countdown'].attr('class','countdown_timer_60');
								}

								if (item.Auction.time_left <= 10) {
									auctionObjects[item.Auction.element]['countdown'].attr('class','countdown_timer_10');
								}
                            }

                            if (parseInt(item.Auction.status_id) == 10) {
                                //auctionObjects[item.Auction.element]['countdown'].html('Paused');
                                auctionObjects[item.Auction.element]['bid-price'].html(msg['paused']);
                                auctionObjects[item.Auction.element]['bid-button-a'].hide();
                                auctionObjects[item.Auction.element]['bid-button'].css('display', 'none');
                                auctionObjects[item.Auction.element]['bid-timer-text'].css('display', 'block');
                                auctionObjects[item.Auction.element]['bid-timer-text'].attr('class', 'bidder-timer-text');
                                auctionObjects[item.Auction.element]['bid-timer-text'].html(msg['paused_text']);

                            }
                            else {
                                    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 == 1){
							var savings = 0;
							var winner =  "";
							if (item.LastBid.username != "") {
								winner = msg['winner']+':<strong>'+item.LastBid.username +'</strong>';	
							}
							else {
								winner = "No winner";
							}
							auctionObjects[item.Auction.element]['bid-timer'].css('display', 'none');
							auctionObjects[item.Auction.element]['bid-timer-text'].css('display', 'none');
							auctionObjects[item.Auction.element]['bid-bidder'].html(winner);
							auctionObjects[item.Auction.element]['bid-button'].css('display','none');
							//auctionObjects[item.Auction.element]['price'].css('background','url(/themed/ziinga/img/pricetag3_grey.png) no-repeat center');
							auctionObjects[item.Auction.element]['price'].addClass('bg_pricetag_sold');
							auctionObjects[item.Auction.element]['bid-sold'].css('display','block');
							auctionObjects[item.Auction.element]['countdown'].html(msg['sold']);
							//auctionObjects[item.Auction.element]['countdown'].css({'font-size' : '18px', 'color' : '#EB6308'});
							auctionObjects[item.Auction.element]['countdown'].addClass('countdown_sold');
							//auctionObjects[item.Auction.element]['bid-bookbidbutler'].hide();
                        }
					}); 
					//interval must be set here (time diff)
					/*
					 * if time diff < = 200ms interval = 200
					 */
					var time_now = new Date().getTime();
					var time_before = $("#time_before").text();
					
					var time_diff = parseInt(time_now) - parseInt(time_before);
					
					if (time_diff <= 100) {
						time_diff = 100;
					}
					if (time_diff >= 1000) {
						time_diff = 500;
					}
					//time diff = current timestamp - timebefore
					$("#time_before").text(time_now);
					ajaxLoop = setTimeout(function() {
						postAjax();
					}, time_diff);
                },
                error: function(XMLHttpRequest, textStatus, errorThrown){

					//clearInterval(showTime);
					ajaxLoop = setTimeout(function() {
						postAjax();
					}, 5000);

                }
            });
        //}, 1000);
   } 

    // Function for bidding
    $('.auction-item .bid-button-link').click(function(){
        var auctionElement = 'auction_' + $(this).attr('id');

        auctionObjects[auctionElement]['bid-button'].hide(1);
        auctionObjects[auctionElement]['bid-loading'].show(1);

        $.ajax({
            url: $(this).attr('href') + '&ms=' + new Date().getTime(),
            dataType: 'json',
            success: function(data){
				// conversion related code
				if (data.mvtConverted == 1) {
					callGwoConversion();
				}
				if (data.partnerCallback != null || data.partnerCallback != "") {
				    doCallback(data.partnerCallback);
				}
				
				// bid related code
				if (data.Auction.message == "winner_limits_reached") {
				    //next_bid = data.Auction.next_bid;
				    next_bid = data.Auction.next_bid_days + ' ' + msg['winner_limits_days'] + ' ' + data.Auction.next_bid_hours + ' ' + msg['winner_limits_hours'] + '.';
				    alert(msg[data.Auction.message] + ' ' + next_bid);
				}
				else if (data.Auction.message == "no_more_bids") {
				    //window.location = "/" + data.Country + "/packages";
				    window.location = getPaymentPage();
				}
				else {
					var message = msg[data.Auction.message];
					if (data.Auction.message == "" || data.Auction.message == null) {
						message = msg["none"];
					}
				    auctionObjects[auctionElement]['bid-message'].html(message)
                                        .show(1)
                                        .animate({opacity: 1.0}, 2000)
                                        .hide(1);
				}
            }
        });
        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',
                    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');
        });
    }

});

