var agt=navigator.userAgent.toLowerCase();
var is_ie=(agt.indexOf("msie")!=-1 && document.all);
var is_ie5=(agt.indexOf("msie 5")!=-1 && document.all);
var is_safari=(agt.indexOf("safari")!=-1);
var is_nav=!is_ie && !is_safari && (agt.indexOf("mozilla")!=-1);
var js_version = 1;
var xmlhttp;
var retunValuesFunction;
var wait_obj;
var TimerID;
var error_msg="";
/*
function ParseAddress(addr)
{
	var name="";var address="";
	for(var i=0;i<addr.length;)
	{
		var token=GetEmailToken(addr,i);
		if(token.charAt(0)=='<')
		{
			var end=token.indexOf(">");
			address=token.substring(1,(end!=-1)?end:token.length);
		}
		else
		{
			if(address=="")
			{
				name+=token;
			}
		}
		i+=token.length;
	}

	if(address=="" && name.indexOf("@")!=-1)
	{
		address=name;name="";
	}
	name=CollapseWhitespace(name);
	name=StripQuotes(name,"'");
	name=StripQuotes(name,"\"");
	address=CollapseWhitespace(address);
	
	return [name,address];
}*/
function DumpException(e)
{
	alert(e.toString());
}
function DumpError(str)
{
	//alert(str);
}
function Debug(str)
{
	//DB_WriteDebugMsg(str,0);
	//alert(str);
}
function AssertNumArgs(num)
{
	var caller=AssertNumArgs.caller;
	if(caller && caller.arguments.length!=num)
	{
		DumpError("Wrong number of arguments!");
	}
}
function U_MakeUnique(url)
{
	var s = url.toString();
	if(s.indexOf('?')<0)
	{
		return s;
	}
	var rand_str = js_version+Math.round(Math.random()*2147483648.000000);
	return U_AppendParam(s,"t",rand_str);
}
function U_AppendParam(url, key, value)
{
	if(url.indexOf('?')<0)
	{
		return url+U_FirstParam(key,value);
	}
	else
	{
		return url+U_Param(key,value);
	}
}
function U_Param(key, value)
{
	return "&"+key+"="+UrlEncode(value);
}
function U_FirstParam(key, value)
{
	return "?"+key+"="+UrlEncode(value);
}
function UrlEncode(str)
{
	return encodeURIComponent(str);
}
function XmlHttpSend(data)
{
	try
	{
		xmlhttp.send(data);
	}
	catch(e)
	{
		DumpException(e);
		if(e.number==-2146697208.000000)
		{
			alert("Please make sure the 'Languages..' setting for your Internet Explorer is not empty.");
		}
	}
}
function XmlHttpGET(url, handler)
{
	AssertNumArgs(3);
	url=U_MakeUnique(url);
	Debug("Server request: GET "+url);
	xmlhttp.onreadystatechange=handler;
	xmlhttp.open("GET",url,true);
	XmlHttpSend(xmlhttp,null);
}

function XmlHttpPOST(url, data, handler)
{
	AssertNumArgs(4);
	Debug("Server request: POST "+url);
	xmlhttp.onreadystatechange=handler;
	xmlhttp.open("POST",url,true);
	XmlHttpSend(xmlhttp,data);
}
function XmlHttpCreate()
{
	if(is_ie)
	{
		var xml_control=(is_ie5)?"Microsoft.XMLHTTP":"Msxml2.XMLHTTP";
		try
		{
			xmlhttp = new ActiveXObject(xml_control);
		}
		catch(e)
		{
			DumpException(e);
			alert("You need to enable active scripting and activeX controls.");
		}
	}
	else
	{
		xmlhttp = new XMLHttpRequest();
		if(!xmlhttp) alert("XML is not supported on this browser.");
	}
	return true;
}
function getHttpPage(url)
{
	XmlHttpCreate();
	if (xmlhttp != null )
	{
		sURL = url.toString();
		XmlHttpGET(sURL, processReqChange);
	}
}
function processReqChange()
{
	if (xmlhttp.readyState==4)
	{
		if (xmlhttp.status==404)
		{
			alert("Unable to perform your requrest, no page was found on the server!");
			return;
		}
		rtnValues = xmlhttp.responseText;
		TimerID = window.setTimeout("retunValuesFunction('"+rtnValues+"')", 10); //call this function immediatly :p
	}
}

function rtnPartnerValues( rv )
{
	//alert(rv);
	wait_obj.style.visibility = "hidden";
	if ( rv == "" || rv == " " || rv==null || rv=="null" )
	{
		alert(error_msg);
	}
	else
	{
		return_obj.value = rv;
	}
	clearTimeout(TimerID);

}

function getName(page, src, dest, wait, err_msg)
{
	wait_obj = document.getElementById(wait);
	wait_obj.style.visibility = "visible";
	
	return_obj = document.getElementById(dest);
	error_msg = err_msg;
	
	retunValuesFunction = rtnPartnerValues;
	//alert("index.php?page="+page+"&code="+document.getElementById(src).value);
	getHttpPage("index.php?page="+page+"&code="+document.getElementById(src).value);
	
	return true;
}
