__XRPC_UsageCounter = 0;
function XRPC(opURL)
{
	if (!opURL) { var opURL = ''; }

	this.url = opURL;
	this.lastRequest = '';	
	this.__isIE = ((document.all) && (document.getElementById));
	
	this.clearParams();
}
XRPC.prototype.clearParams = function() { this.__parmArray = new Array(); }
XRPC.prototype.param = function(pName, pValue) { this.__parmArray[pName] = pValue; }
XRPC.prototype.exec = function(handler)
{
	if (!handler) { return alert('handler required'); }
	
	var temp = new Array();
	var ptr = 0;
	for(parm in this.__parmArray)
		temp[ptr++] = parm + '=' + escape(this.__parmArray[parm]);

	var tempDate = new Date();
	var uid = tempDate.getTime() + '_' + __XRPC_UsageCounter++;
	this.lastRequest = this.url + '?uid=' + uid + '&h=' + handler + '&' + temp.join('&');
	
	var newNode = document.createElement('script');
	if (this.__isIE)
	{
		newNode.id = uid;
		newNode.src = this.lastRequest;
	} else {
		newNode.setAttribute('id', uid);
		newNode.setAttribute('src', this.lastRequest);
	}
	var target = document.getElementsByTagName('body');
	target[0].appendChild(newNode);
}

var generated = 0;
var token = 0;
function getEmphormedToken()
{
	dateObj = new Date();
	now = Math.round(dateObj.getTime() / 1000);
	if ((now - generated) > 5)
	{
		req  = new XRPC('/cgi-custom/token.x');
		req.param('t', now);
		req.exec('rpcHandler');
		generated = now;
	}
	return token;
}
function rpcHandler(data)
{
	token = data;
	return token;
}
function setEmphormedToken()
{
	if ((ph = document.forms['ContactUsForm']) || (ph = document.forms[0]))
	{
		if (_tok = ph.elements['_token'])
		{
			_tok.value = getEmphormedToken();
		}
		else
		{
			_tok = document.createElement("input");
			_tok.setAttribute("type", "hidden");
			_tok.setAttribute("name", "_token");
			_tok.setAttribute("id", "_token");
			_tok.setAttribute("value", getEmphormedToken());
			ph.appendChild(_tok);
			ph.onsubmit = setEmphormedToken;
		}
	}
}

window.onfocus = setEmphormedToken;

window.onload = setEmphormedToken;
