var remaining_seconds = new Array();
var remaining_ids = new Array();
var start_30 = false;
var less_than_count = 0;
var old_qs = '';

function start_ticker() {
	//every second do something
	update_remaining();
}

function update_remaining() {
	//need to change each remaining time every second
	var qs = '';
	for (var i = 0; i < remaining_ids.length; i++) {
		qs += 'a_id[]=' + remaining_ids[i] + (i == remaining_ids.length - 1 ? '' : '&');
	}
	loadXMLDoc(qs);
}

function show_remaining(out_row) {
	var qs = '';
	var out, minutes, hours, days, seconds, i;
	if (out_row == '') {
		for (i = 0; i < remaining_seconds.length; i ++) {
			remaining_seconds[i] --;
			if (remaining_seconds[i] < 30 || remaining_ids.length==1) {
				//do ajax call every 5 seconds
				qs += 'a_id[]=' + remaining_ids[i] + '&';
			}

			if (document.getElementById('remaining_' + remaining_ids[i]) != null)  {
				
				if(remaining_seconds[i] > 0) {
					
					var remaining = document.getElementById('remaining_' + remaining_ids[i]);
					if(remaining != null) remaining.innerHTML = format_seconds(remaining_seconds[i]);
					
					var timeleft = document.getElementById('timeleftdiv_' + remaining_ids[i]);
					if(timeleft != null) timeleft.style.display = "block";
					
					var solddiv = document.getElementById('solddiv_' + remaining_ids[i]);
					if(solddiv != null) solddiv.style.display = "none";
					
				} else {
				
					var timeleft = document.getElementById('timeleftdiv_' + remaining_ids[i]);
					if(timeleft != null) timeleft.style.display = "none";
					
					var solddiv = document.getElementById('solddiv_' + remaining_ids[i]);
					if(solddiv != null) solddiv.style.display = "block";
					
					var biddiv = document.getElementById('biddiv');
					if(biddiv != null) biddiv.style.display = "none";
					
					var buynowdiv = document.getElementById('buynowdiv');
					if(buynowdiv != null) buynowdiv.style.display = "none";
					
					setTimeout(refreshPage, 60 * 1000);
				}
			}
		}
	} else {
		for (i = 0; i < out_row.length; i ++) {
			var out_components = out_row[i].split("\t");
			remaining_seconds[i] = out_components[1];
			if (document.getElementById('remaining_' + out_components[0]) != null) 
				document.getElementById('remaining_' + out_components[0]).innerHTML = format_seconds(out_components[1]);
		}
	}
	setTimeout("show_remaining('')", 1000);
	
	if (((qs != '') && (!start_30)) || (old_qs != qs)) {
		loadXMLDoc_30(qs);
	}
}

function refreshPage() {
	window.location.reload();
}

function loadXMLDoc(qs) {
	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
		var http_request = new XMLHttpRequest();
	} else {// code for IE6, IE5
		var http_request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	http_request.onreadystatechange=function() {
		if (http_request.readyState==4 && http_request.status==200) {
			//do something
			var out = http_request.responseText;
			if (out != '') {
				//document.getElementById('js_output').innerHTML = out;
				var out_row = out.split("\n");
				show_remaining(out_row);
			}
		}
	}
	var url = 'get_auction_seconds.php?' + qs;
	http_request.open("GET", url, true);
	http_request.send('');	//'' to correct uncaught exception: [Exception... "Not enough arguments [nsIXMLHttpRequest.send]"
}

function loadXMLDoc_30(qs) {
	if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
		var http_request = new XMLHttpRequest();
	} else {// code for IE6, IE5
		var http_request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	http_request.onreadystatechange=function() {
		if (http_request.readyState==4 && http_request.status==200) {
			//do something
			var out = http_request.responseText;
			if (out != '') {
			
				var out_row = out.split("\n");
				var $updatedbid = false;
				
				for (i = 0; i < out_row.length; i ++) {
					
					var out_components = out_row[i].split("\t");
					
					if (document.getElementById('remaining_' + out_components[0]) != null)
						document.getElementById('remaining_' + out_components[0]).innerHTML = out_components[1];
					
					//update bid
					if ((document.getElementById('bid_' + out_components[0]) != null) && (out_components[3] != null)) {
					
						//convert to number then display to 2 decimal places
						out_components[3] = parseFloat(out_components[3]);
						
						if(document.getElementById('bid_' + out_components[0]) != null) {
						
							if(document.getElementById('bid_' + out_components[0]).innerHTML != addCommas(out_components[3].toFixed(2))) {
							
								$updatedbid = true;

								document.getElementById('bid_' + out_components[0]).innerHTML = addCommas(out_components[3].toFixed(2));

								if(document.getElementById('bid_response') != null)	
									document.getElementById('bid_response').style.display="none";

								if(document.getElementById('bid_info'))
									document.getElementById('bid_info').style.display="none";
							}
						}
					}
					
					// out_components[4] holds the top bidding user id, out_components[5] hold current user_id
					if(out_components[4] != null && out_components[5] != null)
					{
						if(out_components[4] != out_components[5]) {

							if(document.getElementById('bid_outbid'))
								document.getElementById('bid_outbid').style.display="block";

							if(document.getElementById('bid_info_updated'))
								document.getElementById('bid_info_updated').style.display="none";

							if(document.getElementById('bid_info'))
								document.getElementById('bid_info').style.display="none";


						} else {

							if(document.getElementById('bid_outbid'))
								document.getElementById('bid_outbid').style.display="none";

							if(document.getElementById('bid_info_updated') && $updatedbid)
								document.getElementById('bid_info_updated').style.display="block";

							if(document.getElementById('bid_info'))
								document.getElementById('bid_info').style.display="block";

						}
					}

					//update the correct remaining_seconds
					for (var j = 0; j < remaining_ids.length; j ++) {
						if (remaining_ids[j] == out_components[0]) {
							remaining_seconds[j] = out_components[2];
							break;
						}
					}
				}
			}
		}
	}
	if (qs != '') {
		var url = 'get_auction_time.php?' + qs;
		http_request.open("GET", url, true);
		http_request.send('');	//'' to correct uncaught exception: [Exception... "Not enough arguments [nsIXMLHttpRequest.send]"
		start_30 = true;
		old_qs = qs;
		setTimeout("loadXMLDoc_30('" + qs + "')", 5000);
		//UpdateDebug(".");
	}
}

function format_seconds(seconds) {
var minutes, hours, days;
	var out = '';
	if (seconds > 0) {
		if (seconds < 3600) {
				minutes = Math.floor(seconds / (60));
				seconds -= (minutes * 60);
				out += minutes + " min" + ((minutes > 1) ? 's' : '') + " ";
				out += seconds + " secs";
				return out;
		} else {
			if (seconds > (60 * 60 * 24)) {
				days = Math.floor(seconds / (60 * 60 * 24));
				out = days + " day" + ((days > 1) ? 's' : '') + " ";
				seconds -= (days * 60 * 60 * 24);
			}
			
			if (days >= 1) {
				return out;
			} else {
				if (seconds > 3600) {
					hours = Math.floor(seconds / 3600);
					out += hours + " hour" + ((hours > 1) ? 's' : '') + " ";
					seconds -= (hours * 3600);
				}
				
				if (hours >= 10) {
					return out;
				}
				
				minutes = Math.floor(seconds / (60));
				seconds -= (minutes * 60);
				out += minutes + " min" + ((minutes > 1) ? 's' : '') + " ";
				
				return out;
			}
		}
	} else return '0 seconds';
}

function UpdateDebug(msg) {
	var dbg = document.getElementById('debug_output');
	if(dbg != null) {
		document.getElementById('debug_output').innerHTML = document.getElementById('debug_output').innerHTML + msg;
	}
}

function SetDebug(msg) {
	var dbg = document.getElementById('debug_output');
	if(dbg != null) {
		document.getElementById('debug_output').innerHTML = msg;
	}
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

