var TimerLeft = Class.create();

var AllTimers = $A();
var GlobalTimerStarting = false;
var timers_string='';
var auction_ids='';
var extend_status_auction_ids=-1;


var TimeUpdateRun = false;
var GlobalAuctionDataUpdateTime = null;
var GlobalAuctionData = $A(new Array());
var GlobalAuctionDataLoading = false;


TimerLeft.prototype = {
	initialize : function(DivId,AuctionId) {
		this.update_time=null;
		this.div_id=DivId;
		this.auction_id = AuctionId;
		
		if(auction_ids!='')
		{
			auction_ids=auction_ids+',';
		}	
		auction_ids=auction_ids+AuctionId;

		this.all_seconds=$(this.div_id).innerHTML;
		this.EvaluateTime();
		if (!TimeUpdateRun) {
			TimeUpdateRun = true;
			LoadAllAuctionData();
		}		
	},
	EvaluateTime : function() {
		if(this.all_seconds>0)
		{
			all_minutes=Math.floor(this.all_seconds/60);
			all_hours=Math.floor(all_minutes/60);
			all_days=Math.floor(all_hours/24);
			this.seconds=this.all_seconds-all_minutes*60;
			this.minutes=all_minutes-all_hours*60;
			this.hours=all_hours-all_days*24;
			this.days=all_days;
			this.can_dec=true;
			this.can_refresh=true;
		}
		else
		{
			this.can_dec=false;
			this.can_refresh=false;
		}
	},

	DecrementSecond: function (){
		var type=typeof GlobalAuctionData[this.auction_id];
		if(type != "undefined" && GlobalAuctionDataUpdateTime != this.update_time)
		{
			this.update_time = GlobalAuctionDataUpdateTime;
			this.all_seconds=GlobalAuctionData[this.auction_id][0];
			this.EvaluateTime();
		}
		if(this.seconds>0)
		{
			this.seconds--;
		}
		else if(this.minutes>0)
		{
			this.seconds=59;
			this.minutes--;
		}
		else if(this.hours>0)
		{
			this.seconds=59;
			this.minutes=59;
			this.hours--;
		}
		else if(this.days>0)
		{
			this.seconds=59;
			this.minutes=59;
			this.hours=23;
			this.days--;
		}
		else
		{
			this.can_dec=false;
			if(this.can_refresh)
			{
				window.location.reload();
			}
		}

		var str='';

		if(this.days>0)
		{
			str=this.days+timer_day+' ';
		}
		str+=((this.hours>9)?this.hours:("0"+this.hours))+':'+((this.minutes>9)?this.minutes:("0"+this.minutes))+':'+((this.seconds>9)?this.seconds:("0"+this.seconds));
		if(!this.can_dec)
		{
			str='00:00:00';
		}
		$(this.div_id).innerHTML=str;
		if(this.auction_id==extend_status_auction_ids && this.days==0 && this.seconds==0 && ((this.hours==1 && this.minutes==0) || (this.hours==0 && this.minutes==1)))
		{
			if(ExtensionTimer!=null)
			clearTimeout(ExtensionTimer);
			CheckAuctionExtensionBlock(this.auction_id);
		}
		setTimeout(this.DecrementSecond.bind(this), 1000);
	},


	onTimerEvent: function() {
			this.DecrementSecond();
	},


	StartTimer: function (){
		this.timer = setInterval(this.onTimerEvent.bind(this), 1000);
	}
}

TimerLeft.methods = {
}

function LoadAllAuctionData() {
	if (!GlobalAuctionDataLoading) {
		GlobalAuctionDataLoading = true;	

		new Ajax.Request(
				'/ajax_get_auction_timer_data.php',
				{
					method : 'post',
					parameters : {auction_ids:encodeURIComponent(auction_ids),extend_status_auction_ids:extend_status_auction_ids},
					onSuccess : function(transport) {
						var tempAuctionData = $A(new Array());
						var data = transport.responseText.evalJSON();
						GlobalAuctionData = data;
						GlobalAuctionDataLoading = false;
						GlobalAuctionDataUpdateTime = new Date().getTime();
						setTimeout('LoadAllAuctionData()', timer_update_interval*1000);						
					},
					onFailure : function(transport) {						
						GlobalAuctionDataLoading = false;
						setTimeout('LoadAllAuctionData()', timer_update_interval*1000);
					}
				});
	}
}
