//
//
//

var high_bid;
var BID_XML_URL = 'include/xml/current.bid.php';
var SUB_XML_URL = 'include/xml/submit.bid.php';
var BLU_XML_URL = 'include/xml/get.blurb.php';

function initAJAXBidUpdate( bid_span ) {
	high_bid = bid_span;
	runBidUpdate();
}

function runBidUpdate() {
	var xml_request;
	if ( window.XMLHttpRequest ) xml_request = new XMLHttpRequest();
	else if ( window.ActiveXObject ) xml_request = new ActiveXObject('Microsoft.XMLHTTP');
	
	if ( xml_request ) {
		xml_request.onreadystatechange = function() {
			if ( xml_request.readyState == 4 ) {
				var xml_content = xml_request.responseXML;
				if ( !xml_content ) high_bid.innerHTML = '<i>cannot load high bid</i>';
				else {
					var username = xml_content.documentElement.getElementsByTagName('username')[0].firstChild.data;
					var amount = xml_content.documentElement.getElementsByTagName('amount')[0].firstChild.data;		
					high_bid.innerHTML = '$'+amount+'.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;('+username+')';
				}
			}
		}
		xml_request.open('GET',BID_XML_URL,true);
		xml_request.send(null);
	} else high_bid.innerHTML = '<i>cannot load high bid</i>';

	// refresh every 30 seconds...
	setTimeout('runBidUpdate()',30000);
}

function AJAXBidSubmit( username, password, amount, cover, result ) {
	cover.style.zIndex = 9;
	result.innerHTML = 'bidding...';
	
	if ( !isNatural(amount) ) {
		result.innerHTML = '<span style="color:#900;">error submitting bid: bid must be a whole number</span>';
		cover.style.zIndex = 7;
		return;
	}
	
	var xml_request;
	if ( window.XMLHttpRequest ) xml_request = new XMLHttpRequest();
	else if ( window.ActiveXObject ) xml_request = new ActiveXObject('Microsoft.XMLHTTP');
	
	if ( xml_request ) {
		xml_request.onreadystatechange = function() {
			if ( xml_request.readyState == 4 ) {
				var xml_content = xml_request.responseXML;
				if ( !xml_content ) result.innerHTML = '<span style="color:#900;">error submitting bid</span>';
				else {
					var high_user = xml_content.documentElement.getElementsByTagName('username')[0].firstChild.data;
					var high_amount = xml_content.documentElement.getElementsByTagName('amount')[0].firstChild.data;	
					
					if ( username == high_user ) result.innerHTML = '<span style="color:#090;">you are now the high bidder ($'+high_amount+')</span>';
					else if ( high_user == '_INVALIDUP_' ) result.innerHTML = '<span style="color:#900;">error submitting bid: invalid username/password</span>';
					else if ( high_user == '_INVALIDBID_' ) result.innerHTML = '<span style="color:#900;">error submitting bid: cannot lower bid ($'+high_amount+')</span>';
					else result.innerHTML = '<span style="color:#900;">you have been outbid by '+high_user+' ($'+high_amount+')</span>';
				}
				
				cover.style.zIndex = 7;
				runBidUpdate();
			}
		}
		xml_request.open('GET',SUB_XML_URL+'?username='+username+'&password='+password+'&amount='+amount,true);
		//xml_request.open('POST',SUB_XML_URL,true);
		//xml_request.send('username='+username+'&password='+password+'&amount='+amount);
		xml_request.send(null);
	} else {
		result.innerHTML = '<span style="color:#900">error submitting bid: browser error</span>';
		cover.style.zIndex = 7;
	}
}

function AJAXBlurbLoad( id, blurb, loading ) {
	loading.style.visibility = 'visible';
	
	var xml_request;
	if ( window.XMLHttpRequest ) xml_request = new XMLHttpRequest();
	else if ( window.ActiveXObject ) xml_request = new ActiveXObject('Microsoft.XMLHTTP');
	
	if ( xml_request ) {
		xml_request.onreadystatechange = function() {
			if ( xml_request.readyState == 4 ) {
				var xml_content = xml_request.responseText;
				if ( !xml_content ) blurb.innerHTML = '<span style="color:#900;">error loading page</span>';
				else blurb.innerHTML = xml_content;
				
				loading.style.visibility = 'hidden';
			}
		}
		
		xml_request.open('GET',BLU_XML_URL+'?id='+id,true);
		xml_request.send(null);
	} else {
		result.innerHTML = '<span style="color:#900">error loading page: browser error</span>';
		loading.style.visibility = 'hidden';
	}
}

function isNatural( value ) {
	if ( value.length == 0 ) return false;
	
	for ( var i = 0; i < value.length; ++i ) {
		if ( !isDigit(value.charAt(i)) ) return false;
	}
	
	return true;
}

function isDigit( ch ) {
	return ( '0' <= ch && '9' >= ch );
}

