//test of CVS by AG
var READY_STATE_UNINITIALIZED	= 0;
var READY_STATE_LOADING			= 1;
var READY_STATE_LOADED			= 2;
var READY_STATE_INTERACTIVE		= 3;
var READY_STATE_COMPLETE		= 4;

// Bridge XMLHTTP to XMLHttpRequest in pre-7.0 Internet Explorers (source: wikipedia)
/*
if (typeof XMLHttpRequest == "undefined") {
	XMLHttpRequest = function() {
		try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e) {};
		try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) {};
		try { return new ActiveXObject("Msxml2.XMLHTTP"); }     catch(e) {};
		try { return new ActiveXObject("Microsoft.XMLHTTP"); }  catch(e) {};
		return null;
		//throw new Error("This browser does not support XMLHttpRequest or XMLHTTP.");
	}
}
*/

// shared requests
var http	= createXMLHTTPRequest();	// osDate compatibility, i.e. for shoutbox, ...
var http1	= createXMLHTTPRequest();	// PowerDating: cascading country, IM send message
var http2	= createXMLHTTPRequest();	// PowerDating: integrated IM refresh

// one-time-only request to avoid caching, needed for picture gallery
var http_fresh = null;

function createXMLHTTPRequest()
{
	if (window.XMLHttpRequest && !(window.ActiveXObject))		//  IM does not refresh in IE7 if we do not test for !(window.ActiveXObject)
	{
		//Mozilla 1.0+, Netscape 8.0+, Firefox 1.0+, Safari 1.2+, IE 7.0+
		return new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		// IE 6.0, 5.5, 5.0  we try new versions first, for improved ajax support and bugfixes
		try { return new ActiveXObject('MSXML2.XMLHTTP.6.0'); } catch(e) { }
		try { return new ActiveXObject('MSXML2.XMLHTTP.5.0'); } catch(e) { }
		try { return new ActiveXObject('MSXML2.XMLHTTP.4.0'); } catch(e) { }
		try { return new ActiveXObject('MSXML2.XMLHTTP.3.0'); } catch(e) { }
		try { return new ActiveXObject('MSXML2.XMLHTTP'); } catch(e) { }
		try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) { }
	}
}

function sendHTTPRequest(url, parameters, method, callback)
{
	if (method == "get")
	{
		url = url + '?' + parameters;
		parameters = null;
	}
	
	// alert(url); //debug

	if (http)
	{
		http.onreadystatechange = callback;
		http.open(method, url, true);	// true = asynchronous
		http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http.send(parameters);
	}
	else
	{
		alert("The object XMLHttpRequest is not supported by your browser.");
	}
}

function sendHTTPRequest1(url, parameters, method, callback)
{
	if (method == "get")
	{
		url = url + '?' + parameters;
		parameters = null;
	}
	
	//alert(url); //debug

	if (http1)
	{
		http1.onreadystatechange = callback;
		http1.open(method, url, true);	// true = asynchronous
		http1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http1.send(parameters);
	}
	else
	{
		alert("The object XMLHttpRequest is not supported by your browser.");
	}
}

function sendHTTPRequest2(url, parameters, method, callback)
{
	if (method == "get")
	{
		url = url + '?' + parameters;
		parameters = null;
	}
	
	//alert(url); //debug

	if (http2)
	{
		http2.onreadystatechange = callback;
		http2.open(method, url, true);	// true = asynchronous
		http2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http2.send(parameters);
	}
	else
	{
		alert("The object XMLHttpRequest is not supported by your browser.");
	}
}

function sendHTTPRequest_fresh(url, parameters, method, callback)
{
	http_fresh = createXMLHTTPRequest();
	
	if (method == "get")
	{
		url = url + '?' + parameters;
		parameters = null;
	}

	if (http_fresh)
	{
		http_fresh.onreadystatechange = callback;
		http_fresh.open(method, url, true);	// false = synchronous
		http_fresh.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		http_fresh.send(parameters);
	}
	else
	{
		alert("The object XMLHttpRequest is not supported by your browser.");
	}
}

function handleResponse()
{
    if (http.readyState == READY_STATE_COMPLETE)
	{
		var response = http.responseText;
		//alert(response); // debug
        var update = new Array();
		var up2 = new Array();
        
		if (response.indexOf('|||') != -1)
		{
            update = response.split('|||');
			for (var i = 1; i < update.length; i++)
			{
				up2 = update[i].split("|:|");
				// alert(up2[0] + ':' + up2[1]); // debug
				try
				{
					document.getElementById(up2[0]).innerHTML = up2[1];
				}
				catch(err)
				{
				}
			}
        }
    }
}

function handleResponse1()
{
    if (http1.readyState == READY_STATE_COMPLETE)
	{
		var response = http1.responseText;
		//alert(response); // debug
        var update = new Array();
		var up2 = new Array();
        
		if (response.indexOf('|||') != -1)
		{
            update = response.split('|||');
			for (var i = 1; i < update.length; i++)
			{
				up2 = update[i].split("|:|");
				try
				{
					document.getElementById(up2[0]).innerHTML = up2[1];
				}
				catch(err)
				{
				}
			}
        }
    }
	
	try
	{
		if (frm = document.getElementById('frmSignup'))
		{
			frm.phone_login.value = frm.phone_country.value + frm.phone_area.value + frm.phone_number.value;
		}
		else if (frm = document.getElementById('frmPayment'))
		{
			frm.phone_login.value = frm.phone_country.value + frm.phone_area.value + frm.phone_number.value;
		}
	}
	catch(err)
	{
		// do nothing
	}
}

// old ajax code for cascading location select etc.
/*
var http = createXMLHTTPRequest();

function createRequestObject()
{
	if (window.XMLHttpRequest && !(window.ActiveXObject))
	{
		return new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		try 
		{
			return new ActiveXObject('MSXML2.XMLHTTP');  
		}
		catch (e)
		{
			return new ActiveXObject('Microsoft.XMLHTTP');
		}
	} 
}

function handleResponse()
{
    if (http.readyState == 4)
	{
		var response = http.responseText;
        var update = new Array();
		var up2 = new Array();
        
		if (response.indexOf('|||' != -1))
		{
            update = response.split('|||');
			for (var i = 1; i < update.length; i++)
			{
				up2 = update[i].split("|:|");
            	document.getElementById(up2[0]).innerHTML = up2[1];
			}
        }
    }
}
*/