var $login = 1;

$(document).ready(function(){

	// 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 + ' .saving-price, #' + auctionId+ ' .bid-savings-price, #' + auctionId + ' .bid-savings-percentage, #' + auctionId + ' .closes-on, #display_end_time, #display_end_time, #bid_count, #bid_count_2, #' + auctionId + ' .saving-bid_count, #' + auctionId + ' .saving-bid_cost, .saving-purchase_discount, .saving-purchase_price');
			auctionObjects[auctionId]['flash-elements']		 = $('#' + auctionId + ' .countdown, #' + auctionId + ' .bid-price, #' + auctionId + ' .bid-bidder, #' + auctionId + ' .saving-price, #' + 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]['saving-price']		   = $('#' + auctionId + ' .saving-price');
			auctionObjects[auctionId]['saving-price']			  = $('#' + auctionId + ' .saving-price');
			auctionObjects[auctionId]['bid-price-fixed']		= $('#' + auctionId + ' .bid-price-fixed');
			auctionObjects[auctionId]['bid-loading']			= $('#' + auctionId + ' .bid-loading');
			auctionObjects[auctionId]['last_winner']			= $('#' + auctionId + ' .last_winner');
			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]['display_end_time']	   = $('#display_end_time');
//			auctionObjects[auctionId]['bid_count']			  = $('#bid_count');
//			auctionObjects[auctionId]['bid_count_2']			= $('#bid_count_2');
//			auctionObjects[auctionId]['saving-bid_count']	   = $('#' + auctionId + ' .saving-bid_count');
//			auctionObjects[auctionId]['saving-bid_cost']		= $('#' + auctionId + ' .saving-bid_cost');
//			auctionObjects[auctionId]['saving-purchase_discount'] = $('.saving-purchase_discount');
//			auctionObjects[auctionId]['saving-purchase_price']  = $('.saving-purchase_price');

			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){
	auctions = auctions + "format=json";
		setInterval(function(){
			getstatus_url_time = "http://update.mtk-auc.com" + getstatus_url + new Date().getTime();
			$.ajax({
				url: getstatus_url_time,
				dataType: 'jsonp',
//				jsonp : 'jsoncallback',
				data : auctions,
				type: 'GET',
				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);
							}
							//$login = 1;
						} else {
							//$login = 0;
						}
					}

					$.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.BidderCount.cnt){
							auctionObjects[item.Auction.element]['bid-bidder'].html(item.BidderCount.cnt + "人");
						}

						if(price != convertToNumber(item.Auction.price)){
							auctionObjects[item.Auction.element]['bid-price'].html(item.Auction.price);
							auctionObjects[item.Auction.element]['saving-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 style="font-weight: bold;">' + tRow.User.username + '</td><td style="text-align: center;">' + 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]['display_end_time'].html(item.Auction.closes_on2);
//
//								auctionObjects[item.Auction.element]['bid_count'].html(item.BidCount.bid_count);
//								auctionObjects[item.Auction.element]['bid_count_2'].html(item.BidCount.bid_count);
//								auctionObjects[item.Auction.element]['saving-bid_count'].html(item.BidCount.bid_count);
//								auctionObjects[item.Auction.element]['saving-bid_cost'].html(item.BidCount.bid_cost);
//								auctionObjects[item.Auction.element]['saving-purchase_discount'].html(item.BidCount.purchase_discount);
//								auctionObjects[item.Auction.element]['saving-purchase_price'].html(item.BidCount.purchase_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('停止中');

							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');
								}
							} else {
								auctionObjects[item.Auction.element]['countdown'].html('処理中');
								auctionObjects[item.Auction.element]['countdown'].css('color', '#ff0000');
							}

							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 < 0 && item.Auction.closed == 1){
							auctionObjects[item.Auction.element]['countdown'].html('終了');
							auctionObjects[item.Auction.element]['bid-button'].hide();
							auctionObjects[item.Auction.element]['bid-bookbidbutler'].hide();
						}
					});
				},

				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,
					success: function(data){
						bidOfficialTime.html(data);
					}
				});
			}, 1000);
		}
	}

	// For Newest Bidder
	if(auctions){
	auctions = auctions + "format=json";
		setInterval(function(){
			getstatus_url_time = getstatus_url + new Date().getTime();
			$.ajax({
				url: getstatus_url_time,
				dataType: 'jsonp',
				data : auctions,
				type: 'GET',
				success: function(data){
					$.each(data, function(i, item){
						if(item.LastBid.flg == "1" && auctionObjects[item.Auction.element]['last_winner'].html() == ""){
							auctionObjects[item.Auction.element]['last_winner'].html("あなたが最新入札者です");
						} else if ( item.LastBid.flg == "0" && auctionObjects[item.Auction.element]['last_winner'].html() != "" ) {
							auctionObjects[item.Auction.element]['last_winner'].html("");
						}
					});
				},

				error: function(XMLHttpRequest, textStatus, errorThrown){
					// nothing implement here
					// have an idea?
				}
			});
		}, 1000);
	}

	// 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') + '&ms=' + new Date().getTime(),
			dataType: 'json',
			success: function(data){
				auctionObjects[auctionElement]['bid-message'].html(data.Auction.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');
		});
	}
});

function checkauth( auctionId ) {
	var getstatus_url_time;
	var auctions = "";


//	$('.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 + '&';
//		}
//	});

	auctions = 'auction_' + auctionId + '=' + auctionId + '&';

	getstatus_url_time = "/getstatus.php?ms=" + new Date().getTime();
	$.ajax({
		url: getstatus_url_time,
		dataType: 'jsonp',
		data : auctions,
		type: 'GET',
		success: function(data){
			if(data[0]){
				if(data[0].Balance){
					$login = 1;
				} else {
//					$login = 0;
					$('#auction_' + auctionId + ' .bid-message')
							.html('ログアウトしています。<br>ログインしてください。')
							.show(1)
							.animate({opacity: 1.0}, 2000)
							.hide(1);
				}
			}
		},
		error: function(XMLHttpRequest, textStatus, errorThrown){
			// nothing implement here
			// have an idea?
		}
	});

	if ( $login == 0 ) {
		$('#auction_' + auctionId + ' .bid-message')
			.html('ログアウトしています。<br>ログインしてください。')
			.show(1)
			.animate({opacity: 1.0}, 2000)
			.hide(1);
	}
}

