<!-- javascript functions needed to preform web requests START -->

var req;
var enabled = true; 
var timerID;
var gl_url = false;
var a_tries = 0;
var p_func;
var f_func;

function send(url, funcProc, funcFail, flag) 
{
	if (!enabled && flag == false)	return;
	gl_url = url;
	p_func = funcProc;
	f_func = funcFail;
	enabled = false;
	if (req)
		req.abort();
	url = url + '&' + Math.random(0,100);
    if(ga_helper.debug === true) console.log('Category: ', ga_helper.getCategory(), 'Action: ', ga_helper.getAction(url));
    if (_gaq) _gaq.push(['_trackEvent', ga_helper.getCategory(), ga_helper.getAction(url)]);	
	if (window.XMLHttpRequest) 
	{
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send(null);
	} 
	else if (window.ActiveXObject) 
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) 
		{
			req.onreadystatechange = processReqChange;
			req.open("GET", url, true);
			req.send(null);
		}
	}
	
}

function processReqChange() 
{
	if (req.readyState == 4) 
	{
		if (req.status == 200) 
		{
        	a_tries = 0;  
        	//alert(req.responseText);
        	eval(p_func+"(\""+req.responseText+"\")");
        	enabled = true;
		} 
		else 
		{
			a_tries = a_tries + 1;
			enabled = false;
			window.setTimeout("replaySend();", 1000);
		}
	}
} 

function replaySend() {
	if (a_tries >= 5) {
		a_tries = 0;
		req.abort();
		enabled = true;		
		eval(f_func);
		return false;
	} else {
		send(gl_url, true);
	}
}

function getReqObject() {
	var xmlhttp;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') xmlhttp = new XMLHttpRequest();
	return xmlhttp;
}

function getRequest(url, code) {
	var req = getReqObject();
	req.onreadystatechange = function() {
		if (req.readyState != 4) return false;
		eval(code);
	}
    if(ga_helper.debug === true) console.log('Category: ', ga_helper.getCategory(), 'Action: ', ga_helper.getAction(url));
    if (_gaq) _gaq.push(['_trackEvent', ga_helper.getCategory(), ga_helper.getAction(url)]);	
	req.open("GET", url);
	req.send(null);
}

<!-- javascript functions needed to preform web requests END -->

