function loadGoogleAnalytics( current_page )
{
    var analytics = document.getElementById('tracker-analytics');
    var analytics_link = document.getElementById('load-analytics-link');
    var original_content = analytics.innerHTML;
    analytics_link.innerHTML = 'Loading Google Analytics...';
    loadDivContents('/tracking/load_google_analytics_stats.php?page_link=' + current_page, 'tracker-analytics');
}

function toggleElement( elem_id )
{
    var element = document.getElementById(elem_id);
    if(!element) return;

    if(element.style.display == 'block') {
        element.style.display = 'none';
    } else {
        element.style.display = 'block';
    }

}

var google_stats_loaded = false;

function toggleGoogleStats( box_id, page_url )
{
	stats_box_table = document.getElementById( box_id );

	if ( !stats_box_table )
	{
		return;
	}

	if ( stats_box_table.style.display == 'block' )
	{
		stats_box_table.style.display = 'none';
	}
	else
	{
		stats_box_table.style.display = 'block';
	}

    if(!google_stats_loaded) {
        loadGoogleAnalytics(page_url);
        google_stats_loaded = true;
    }
}

function loadGoogleStats( box_id, page_title, page_link )
{
	document.getElementById( box_id ).innerHTML = '<a href="#">&nbsp;Loading Google Stats</a>';
	url = '/tracking/load_googlestats.php?box_id=' + box_id + '&page_title=' + page_title + '&page_link=' + page_link + '&uid=' + GenUniqueID();
	loadDivContents( url, box_id );
}

function toggleReferrers( link )
{
    var elem = document.getElementById('referrers');

    if(elem)
    {
        if(elem.style.display == 'none')
        {
            elem.style.display = 'block';
            link.innerHTML = 'Hide Referrers';
        }
        else
        {
            elem.style.display = 'none';
            link.innerHTML = 'Show Referrers';
        }
    }
}
//*********************************************************************************************************
//	Generates a unique ID
//*********************************************************************************************************
function GenUniqueID()
{
	var dateValue = new Date();
    var timestamp = (dateValue.getTime());
	
	return timestamp;
}

function copyStatsToClipboard( link_object, stats_id )
{
	//	Hide the copy image link
	link_object.style.display = 'none';

	//	Do the copy
	copyElementToClipboard( stats_id )

	//	Show the link
	link_object.style.display = 'block';

	alert('Copied to clipboard');
}

//#########################################################################################################
//
//	Public AJAX functions
//
//#########################################################################################################

//---------------------------------------------------------------------------------------------------------
//	Load an object dynamiclly with a source page
//---------------------------------------------------------------------------------------------------------
function loadDivContents( url, div )
{
	objNumber = 0;
	
	//	Have we used the div object before?
	for( i=1; i<= HTTPObjects.length; i++ )
	{
		if (HTTPObjects[i] == div)
		{
			objNumber = i
		}
	}

	//	Not found?
	if(!objNumber)
	{
		objNumber				= HTTPObjects.length;
		HTTPObjects[objNumber]	= div;
	}

	//	Generate the div object pointer
	var divObj = eval( 'document.getElementById("' + div + '");' );
	
	eval( 'http' + objNumber + ' = initHTTPObject();' );
	eval( 'if (!http' + objNumber + '){window.location=\'/site/compatability.php\';}' );
	eval( 'http' + objNumber + '.open("GET", url, true );');
	eval( 'http' + objNumber + '.onreadystatechange = function() { if (http' + objNumber + '.readyState == 4) {divObj.innerHTML = http' + objNumber + '.responseText;}};');
	eval( 'http' + objNumber + '.send(null);');
}

//#########################################################################################################
//
//	Private AJAX functions
//
//#########################################################################################################

//---------------------------------------------------------------------------------------------------------
//	Define the elements
//---------------------------------------------------------------------------------------------------------
var HTTPObjects = Array();	//	Track all the used HTTP objects on the page
var objNumber   = null;

//---------------------------------------------------------------------------------------------------------
//	Initialize a new HTTP object
//	PRIVATE
//---------------------------------------------------------------------------------------------------------
function initHTTPObject() 
{
	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') {
		try {
  			xmlhttp = new XMLHttpRequest();
		} catch (e) {
  			xmlhttp = false;
		}
	}

	return xmlhttp;
}

