/*
	FILE : ajax_http_request.js
	DATE : 12.19.2005
	AUTH : David A Striegel
	COPY : 2005 Copyright Mindframe, Inc.
*/

function getRequestObject() 
{
	var oRequest = null;
	/*@cc_on 
		@if (@_jscript_version >= 5) 
			try { oRequest = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { oRequest = new ActiveXObject('Microsoft.XMLHTTP'); } catch (E) { oRequest = null; } } 
		@else 
			this.xmlhttp = null; 
		@end 
	@*/ 
	if (!oRequest && typeof XMLHttpRequest != 'undefined') { try { oRequest = new XMLHttpRequest(); } catch (e) { oRequest = null; } }
	return oRequest;
}

var bRequestInProgress = false;
var bRequestWasAborted = false;
var oRequest = getRequestObject();
var cc = null;

function loadModule(sURL,elm)
{
	if (oRequest && document.getElementById)
	{
		if (bRequestInProgress)
		{
			bRequestWasAborted = true;
			oRequest.abort(); //return;
		}
		cc = document.getElementById(elm);
		
		bRequestInProgress = true;
		
		var sep = (-1 < sURL.indexOf("?")) ? "&" : "?"	
		sURL = sURL + sep + "ts=" + encodeURIComponent((new Date()).getTime());

		oRequest.open('GET', sURL, true);
		
		oRequest.onreadystatechange = function()
		{ 
			if (oRequest.readyState == 4) 
			{
				if (oRequest.status == 200) // REQUEST SUCCEEDED
					cc.innerHTML = oRequest.responseText;
				else // REQUEST FAILED
				{
					var errorMessage = 'The sort order update failed.<br>';
					errorMessage += 'AJAX details: ';
					errorMessage += oRequest.status + ': ' + oRequest.statusText;
					
					if ( !bRequestWasAborted ) cc.innerHTML = errorMessage + oRequest.responseText;
				}
				
				bRequestWasAborted = false;
				bRequestInProgress = false;
				cc = null;
			} 
		} 
	
		oRequest.send(null);
		return false;
	}
	else
		return true;
}

function loadModuleAbort() 
{ 
	bRequestInProgress = false;
	oRequest.abort(); 
}

function getRetailers(elem) {
	var state = elem.options[elem.selectedIndex].value;
	loadModule('/my_account/populate_retailers.cfm?state_code=' + state, 'retailer');
}