// START AJAX STUFF ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
var xmlRemote = null;
function obtainRemote ()
{
	var remote = null;
	if (window.XMLHttpRequest)
	{
		// if Mozilla, Safari etc
		remote = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		// if IE
		try 
		{
			remote = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				remote = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
		}
	}
	else
	{
		return null;
	}
	
	return remote;
}

function remoteRequest (url, callback, skipload, back)
{
	if (!back && !callback) lasturl_store (url);

	//if (!skipload) document.getElementById ('pageContainer').innerHTML = '<table cellpadding="0" cellspacing="0"><tr><td width="126" height="22" style="background: url(images/load_ani.gif) no-repeat; color: #aaaaaa; font-size: 10px;" valign="middle" align="center">LOADING...</td></tr></table>';
	if (!skipload)
	{
		document.getElementById ('list_container').innerHTML = '<img src="images/simple_load_ani.gif">';
	}
	
	xmlRemote = obtainRemote ();
	
	if (callback)
	{
		eval ("xmlRemote.onreadystatechange = function () {if (xmlRemote.readyState==4 && xmlRemote.status==200){" + callback + " (xmlRemote);}}");
	}
	else
	{
		xmlRemote.onreadystatechange = function ()
		{
			if (xmlRemote.readyState == 4 && (xmlRemote.status == 200 || window.location.href.indexOf("http") == -1))
			{
				remoteReturn (xmlRemote.responseText);
			}
		}
	}
	
	url = url + '&seed=' + Math.random ();
	xmlRemote.open ('GET', clearDomainRoot (url), true);
	xmlRemote.send (null);
}

function remoteRequestPost (url, DATA)
{
	//document.getElementById ('pageContainer').innerHTML = '<img src="images/load_ani.gif">';
	if (document.getElementById ('remote_loader')) document.getElementById ('remote_loader').style.display = "";
	
	xmlRemote = obtainRemote ();
	
	xmlRemote.onreadystatechange = function ()
	{
		if (xmlRemote.readyState == 4 && (xmlRemote.status == 200 || window.location.href.indexOf("http") == -1))
		{
			remoteReturn (xmlRemote.responseText);
		}
	}

	url = url + '&seed=' + Math.random ();
	
	var strData = '';
	var firstRun = true;
	if (DATA && DATA.length > 0)
	{
		for (var idx in DATA)
		{
			if (DATA[idx] && DATA[idx][0] != undefined) strData += "&" + DATA[idx][0] + "=" + encodeURI (DATA[idx][1]);
		}
	}
	
	xmlRemote.open ('POST', url, true);
	xmlRemote.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	xmlRemote.setRequestHeader ("Content-length", strData.length);
	xmlRemote.setRequestHeader ("Connection", "close");
	xmlRemote.send (strData);
}

function remoteReturn (response)
{
	if (document.getElementById ('remote_loader')) document.getElementById ('remote_loader').style.display = "none";
	document.getElementById ('list_container').innerHTML = response.replace (/\<form /, '<form onsubmit="remoteSubmit (this); return false;" ');
}

function remoteSubmit (frm)
{
	var DATA = new Array ();

	if (frm.elements && frm.elements.length > 0)
	{
		// since IE doesn't work well using  the [ for (var idx in frm.elements) ] iteration we need to use this
		for (var idx = 0; idx < frm.elements.length; idx ++)
		{	
			// if (typeof (frm.elements[idx]) == "object") alert (frm.elements[idx].name + " = " + frm.elements[idx].type);
			if (frm.elements[idx] != undefined)
			{
				if (typeof (frm.elements[idx]) == "object" && (frm.elements[idx].type == "hidden" || frm.elements[idx].type == "password" || frm.elements[idx].type == "text" || frm.elements[idx].type == "textarea"))
				{
					DATA[DATA.length] = [frm.elements[idx].name, frm.elements[idx].value];
				}
				else if (typeof (frm.elements[idx]) == "object" && (frm.elements[idx].type == "select" || frm.elements[idx].type == "select-one" || frm.elements[idx].type == "radio"))
				{
					DATA[DATA.length] = [frm.elements[idx].name, frm.elements[idx].options[frm.elements[idx].selectedIndex].value];
				}
				else if (typeof (frm.elements[idx]) == "object" && (frm.elements[idx].type == "checkbox"))
				{
					DATA[DATA.length] = [frm.elements[idx].name, (frm.elements[idx].checked ? frm.elements[idx].value : '') ];
				}
			}
		}
	}
	
	remoteRequestPost (clearDomainRoot (frm.action), DATA);
}

function clearDomainRoot (url)
{
	url = url.replace (/^http\:\/\/www\.barskydiamonds\.com\//, "");
	url = url.replace (/^http\:\/\/barskydiamonds\.com\//, "");
	return url
}

// END AJAX STUFF ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------