var QueryID = 0;
var MonitorCode = '';
var Stopped = false;
var Running = false;
//var BaseAJAXURL = 'http://www.octagate.com/AJAX/SiteTimer/Service/';
//var BaseAJAXURL = 'http://www.gatebell.com/AJAX/SiteTimer/Service/';
var BaseAJAXURL = 'http://www.octagate.com/Service/SiteTimer/AJAX/';

/* BarGraph - START */

	var G_MaxScale = 1;
	var G_ScaleChanged = false;
	var isIE = navigator.appName.indexOf("Microsoft") != -1;
	var G_BarGraph = null;
	var G_BarGraphText = null;
	var G_BarGraphSize = null;
	var G_BarGraphStart = null;
	var G_BarGraphConnect = null;
	var G_BarGraphFirstB = null;
	var G_BarGraphLastB = null;
	var G_BarGraphTime = null;
	var G_BarGraphSpeed = null;
	var G_BarGraphStatus = null;
	var G_BarGraphMessage = null;
	var G_DetailsVisible = false;
	var	PageTarget = '';

	function TruncateURL(aURL)
	{
		var trunc = p.innerHTML;
		if (trunc.length > len)
		{
			trunc = trunc.substring(0, len);
			trunc = trunc.replace(/\w+$/, '');
			trunc += '<a href="#" ' + 'onclick="p.innerHTML=' + 'unescape(\''+escape(p.innerHTML)+'\');return false;">' + '...<\/a>';
			p.innerHTML = trunc;
		}
	}

	function bg_SetText(aColumn, aElement, aElementName, aValue, aClassName)
	{	
		var lElement = null;
		if (aElementName == 'T') lElement = aElement.elT;
		if (aElementName == 'Size') lElement = aElement.elSize;
		if (aElementName == 'Start') lElement = aElement.elStart;
		if (aElementName == 'Connect') lElement = aElement.elConnect;
		if (aElementName == 'FirstB') lElement = aElement.elFirstB;
		if (aElementName == 'LastB') lElement = aElement.elLastB;
		if (aElementName == 'Time') lElement = aElement.elTime;
		if (aElementName == 'Speed') lElement = aElement.elSpeed;
		if (aElementName == 'Status') lElement = aElement.elStatus;
		if (aElementName == 'Message') lElement = aElement.elMessage;
		if (typeof lElement == 'undefined')
			var lElement = document.getElementById(aElement.aElement+'.'+aElementName);
		if (lElement == null)
		{
			if (typeof aValue == 'undefined') aValue = '';
			if (isIE)
			{
				lElement = document.createElement('<div id="'+aElement.aElement+'.'+aElementName+'" class="'+aClassName+'"></div>');
			}
			else
			{
				lElement = document.createElement('div');
				lElement.setAttribute("id", aElement.aElement+'.'+aElementName)
				lElement.setAttribute("class", aClassName)
			}
			lElement.innerHTML = aValue;
			aColumn.appendChild(lElement);
		}
		else
		{
			if (typeof aValue != 'undefined')
			{
				if (aValue != '')
				{
					lElement.innerHTML = aValue;
				}
			}
		}		
		if (aClassName != lElement.className)
   		{
			if (isIE)
				lElement.setAttribute("className", aClassName)
			else
				lElement.setAttribute("class", aClassName);
		}
		if (aElementName == 'T') aElement.elT = lElement;
		if (aElementName == 'Size') aElement.elSize = lElement;
		if (aElementName == 'Start') aElement.elStart = lElement;
		if (aElementName == 'Connect') aElement.elConnect = lElement;
		if (aElementName == 'FirstB') aElement.elFirstB = lElement;
		if (aElementName == 'LastB') aElement.elLastB = lElement;
		if (aElementName == 'Time') aElement.elTime = lElement;
		if (aElementName == 'Speed') aElement.elSpeed = lElement;
		if (aElementName == 'Status') aElement.elStatus = lElement;
		if (aElementName == 'Message') aElement.elMessage = lElement;
	}

	function bg_SetBarWidth(aElement, aItem)
	{
		var aOffset = aItem.Start;
		var aW1 = aItem.Connect;
		var aW2 = aItem.FirstByte;
		var aW3 = aItem.LastByte;
		var aPos = aItem.RowID;
		var aClassName = '';

		var lMax = 0;
//		if (aOffset<0) aOffset = Math.abs(aOffset);
		if (aOffset<0) aOffset = 0;
		if (aOffset>0) lMax = parseFloat(aOffset);
		if (aW1>0) lMax = parseFloat(aOffset)+parseFloat(aW1-aOffset);
		if (aW2>0) lMax = parseFloat(aOffset)+parseFloat(aW1-aOffset)+parseFloat(aW2-aW1);
		if (aW3>0) lMax = parseFloat(aOffset)+parseFloat(aW1-aOffset)+parseFloat(aW2-aW1)+parseFloat(aW3-aW2);
		if (lMax>G_MaxScale)
		{
			G_MaxScale = lMax;
			bg_SetMaxScale(G_MaxScale);
			G_ScaleChanged = true;
		}

		var lElement1 = document.getElementById(aElement+'.1');

		if (lElement1 == null)
		{
			if (isIE)
			{
				lElement1 = document.createElement('<div id="'+aElement+'.1" class="graph1"></div>');
				lElement2 = document.createElement('<div id="'+aElement+'.2" class="graph2"></div>');
				lElement3 = document.createElement('<div id="'+aElement+'.3" class="graph3"></div>');
			}
			else
			{
				lElement1 = document.createElement('div');
				lElement1.setAttribute("id", aElement+".1")
				lElement1.setAttribute("class", "graph1FF")
				lElement2 = document.createElement('div');
				lElement2.setAttribute("id", aElement+".2")
				lElement2.setAttribute("class", "graph2")
				lElement3 = document.createElement('div');
				lElement3.setAttribute("id", aElement+".3")
				lElement3.setAttribute("class", "graph3")
			}
			G_BarGraph.appendChild(lElement1);
			lElement1.appendChild(lElement2);
			lElement2.appendChild(lElement3);
			lElement1.lElement2 = lElement2;
			lElement1.lElement3 = lElement3;
		}
		else
		{
			lElement2 = lElement1.lElement2;
			lElement3 = lElement1.lElement3;
		}

		lElement1.aElement = aElement;
		lElement1.aItem = null;
		lElement1.aItem = aItem;
		
		if (parseFloat(aOffset) == 0.0) aOffset = 0;
		if ((parseFloat(aOffset) != 0.0) && (G_MaxScale != 0)) aOffset = 400/(G_MaxScale/parseFloat(aOffset)); else aOffset = 0;
		if (parseFloat(aW1) == 0.0) aW1 = 0;
		if ((parseFloat(aW1) != 0.0) && (G_MaxScale != 0)) aW1 = 400/(G_MaxScale/parseFloat(aW1)); else aW1 = 0;
		if (parseFloat(aW2) == 0.0) aW2 = 0;
		if ((parseFloat(aW2) != 0.0) && (G_MaxScale != 0)) aW2 = 400/(G_MaxScale/parseFloat(aW2)); else aW2 = 0;
		if (parseFloat(aW3) == 0.0) aW3 = 0;
		if ((parseFloat(aW3) != 0.0) && (G_MaxScale != 0)) aW3 = 400/(G_MaxScale/parseFloat(aW3)); else aW3 = 0;
		aOffset = Math.round(aOffset);
		aW1 = Math.round(aW1-aOffset);
		aW2 = Math.round(aW2-(aW1+aOffset));
		aW3 = Math.round(aW3-(aW2+aW1+aOffset));
		if (aW1<0) aW1 = 0;
		if (aW2<0) aW2 = 0;
		if (aW3<0) aW3 = 0;

		lMax = aOffset+aW1+aW2+aW3;
		if (lMax<=400)
		{
			lElement1.style.marginLeft = aOffset+14+'px';
			lElement2.style.marginLeft = aW1+'px';
			lElement3.style.marginLeft = aW2+'px';

			lElement1.style.width = aW1+'px';
			lElement2.style.width = aW2+'px';
			lElement3.style.width = aW3+'px';
		}

		if (typeof aItem != 'undefined')
		{
			if (aItem.Error) 
			{
			    aClassName = "error"
			} 
			else if (aItem.Active) 
				{
	    			aClassName = "active";
				}
				else if (aItem.Queued)
					{
		    			aClassName = "queued";
					};
      		if(aPos % 2 == 0)
			    aClassName = aClassName+"Even"
     		else
    			aClassName = aClassName+"Odd";			

			bg_SetText(G_BarGraphText, lElement1, "T", aItem.URL, aClassName);
			bg_SetText(G_BarGraphSize, lElement1, "Size", aItem.Size, aClassName);
			bg_SetText(G_BarGraphStart, lElement1, "Start", parseFloat(aItem.Start).toFixed(2), aClassName);
			bg_SetText(G_BarGraphConnect, lElement1, "Connect", parseFloat(aItem.Connect).toFixed(2), aClassName);
			bg_SetText(G_BarGraphFirstB, lElement1, "FirstB", parseFloat(aItem.FirstByte).toFixed(2), aClassName);
			bg_SetText(G_BarGraphLastB, lElement1, "LastB", parseFloat(aItem.LastByte).toFixed(2), aClassName);
			bg_SetText(G_BarGraphTime, lElement1, "Time", aItem.Time, aClassName);
			bg_SetText(G_BarGraphSpeed, lElement1, "Speed", parseFloat(aItem.Speed).toFixed(2), aClassName);
			bg_SetText(G_BarGraphStatus, lElement1, "Status", aItem.HTTPStatus, aClassName);
			bg_SetText(G_BarGraphMessage, lElement1, "Message", aItem.Message, aClassName);
		}
	}


	function bg_SetBarScale(aElement, aT0, aT1, aT2, aT3, aT4, aT5, aT6, aT7, aT8, aT9, aT10)
	{
		document.getElementById('S0').innerHTML = aT0;
		document.getElementById('S1').innerHTML = aT1;
		document.getElementById('S2').innerHTML = aT2;
		document.getElementById('S3').innerHTML = aT3;
		document.getElementById('S4').innerHTML = aT4;
		document.getElementById('S5').innerHTML = aT5;
		document.getElementById('S6').innerHTML = aT6;
		document.getElementById('S7').innerHTML = aT7;
		document.getElementById('S8').innerHTML = aT8;
		document.getElementById('S9').innerHTML = aT9;
		document.getElementById('S10').innerHTML = aT10;
	}

	function bg_SetMaxScale(aMaxScale)
	{
		var lStep = aMaxScale/10;
		if (lStep <= 0.01) lStep = 0.01; else
		if (lStep <= 0.05) lStep = 0.05; else
		if (lStep <= 0.1) lStep = 0.1; else
		if (lStep <= 0.15) lStep = 0.15; else
		if (lStep <= 0.2) lStep = 0.2; else
		if (lStep <= 0.3) lStep = 0.3; else
		if (lStep <= 0.4) lStep = 0.4; else
		if (lStep <= 0.5) lStep = 0.5; else
		if (lStep <= 0.6) lStep = 0.6; else
		if (lStep <= 0.75) lStep = 0.75; else
		if (lStep <= 1) lStep = 1; else
		if (lStep <= 1.25) lStep = 1.25; else
		if (lStep <= 1.5) lStep = 1.5; else
		if (lStep <= 1.6) lStep = 1.6; else
		if (lStep <= 1.8) lStep = 1.8; else
		if (lStep <= 2) lStep = 2; else
		if (lStep <= 3) lStep = 3; else
		if (lStep <= 4) lStep = 4; else
		if (lStep <= 5) lStep = 5; else
		if (lStep <= 6) lStep = 6; else
		if (lStep <= 7) lStep = 7; else
		if (lStep <= 8) lStep = 8; else
		if (lStep <= 9) lStep = 9; else
		if (lStep <= 10) lStep = 10; else
		if (lStep <= 15) lStep = 15; else
		if (lStep <= 20) lStep = 20; else
		if (lStep <= 25) lStep = 25; else
		if (lStep <= 30) lStep = 30; else
		if (lStep <= 40) lStep = 40; else
		if (lStep <= 50) lStep = 50;
		G_MaxScale = lStep*10;
		var N = 1;
		if (lStep<1) N = 2;
		if (lStep<0.1) N = 3;
		bg_SetBarScale('S1', (lStep*0).toFixed(N), (lStep*1).toFixed(N), (lStep*2).toFixed(N), (lStep*3).toFixed(N), (lStep*4).toFixed(N), (lStep*5).toFixed(N), (lStep*6).toFixed(N), (lStep*7).toFixed(N), (lStep*8).toFixed(N), (lStep*9).toFixed(N), (lStep*10).toFixed(N));
	}

	function bg_Init()
	{
		G_MaxScale = 1;
		bg_SetMaxScale(G_MaxScale)
		G_BarGraph = document.getElementById('BarGraph');
		G_BarGraphText = document.getElementById('BarGraphText');
		G_BarGraphSize = document.getElementById('BarGraphSize');
		G_BarGraphStart = document.getElementById('BarGraphStart');
		G_BarGraphConnect = document.getElementById('BarGraphConnect');
		G_BarGraphFirstB = document.getElementById('BarGraphFirstB');
		G_BarGraphLastB = document.getElementById('BarGraphLastB');
		G_BarGraphTime = document.getElementById('BarGraphTime');
		G_BarGraphSpeed = document.getElementById('BarGraphSpeed');
		G_BarGraphStatus = document.getElementById('BarGraphStatus');
		G_BarGraphMessage = document.getElementById('BarGraphMessage');
		G_BarGraph.innerHTML = '';
		G_BarGraphText.innerHTML = '';
		G_BarGraphSize.innerHTML = '';
		G_BarGraphStart.innerHTML = '';
		G_BarGraphConnect.innerHTML = '';
		G_BarGraphFirstB.innerHTML = '';
		G_BarGraphLastB.innerHTML = '';
		G_BarGraphTime.innerHTML = '';
		G_BarGraphSpeed.innerHTML = '';
		G_BarGraphStatus.innerHTML = '';
		G_BarGraphMessage.innerHTML = '';
	}

	function bg_ToggleDetails()
	{
		G_DetailsVisible = !G_DetailsVisible;
		if (G_DetailsVisible)
		{
			bg_ShowDetails();
		}
		else
		{
			bg_HideDetails();
		}
	}

	function bg_ShowDetails()
	{
		if (isIE)
			document.getElementById("bg_Details").background = "Images/HideDetails.png"
		else
			document.getElementById("bg_Details").setAttribute("background", "Images/HideDetails.png");

		document.getElementById('BarGraphSize').style.display = '';
		document.getElementById('BarGraphStart').style.display = '';
		document.getElementById('BarGraphConnect').style.display = '';
		document.getElementById('BarGraphFirstB').style.display = '';
		document.getElementById('BarGraphLastB').style.display = '';
		document.getElementById('BarGraphTime').style.display = '';
		document.getElementById('BarGraphSpeed').style.display = '';
		document.getElementById('BarGraphStatus').style.display = '';
		document.getElementById('BarGraphMessage').style.display = '';

		document.getElementById("BarGraphHeaderSize").style.display = '';
		document.getElementById("BarGraphHeaderStart").style.display = '';
		document.getElementById("BarGraphHeaderConnect").style.display = '';
		document.getElementById("BarGraphHeaderFirstB").style.display = '';
		document.getElementById("BarGraphHeaderLastB").style.display = '';
		document.getElementById("BarGraphHeaderTime").style.display = '';
		document.getElementById("BarGraphHeaderSpeed").style.display = '';
		document.getElementById("BarGraphHeaderStatus").style.display = '';
		document.getElementById("BarGraphHeaderMessage").style.display = '';

		document.getElementById("BarGraphTotalSize").style.display = '';
		document.getElementById("BarGraphTotalStart").style.display = '';
		document.getElementById("BarGraphTotalConnect").style.display = '';
		document.getElementById("BarGraphTotalFirstB").style.display = '';
		document.getElementById("BarGraphTotalLastB").style.display = '';
		document.getElementById("BarGraphTotalTime").style.display = '';
		document.getElementById("BarGraphTotalSpeed").style.display = '';
		document.getElementById("BarGraphTotalStatus").style.display = '';
		document.getElementById("BarGraphTotalMessage").style.display = '';
	}

	function bg_HideDetails()
	{
		if (isIE)
			document.getElementById("bg_Details").background = "Images/ShowDetails.png"
		else
			document.getElementById("bg_Details").setAttribute("background", "Images/ShowDetails.png");

		document.getElementById('BarGraphSize').style.display = 'none';
		document.getElementById('BarGraphStart').style.display = 'none';
		document.getElementById('BarGraphConnect').style.display = 'none';
		document.getElementById('BarGraphFirstB').style.display = 'none';
		document.getElementById('BarGraphLastB').style.display = 'none';
		document.getElementById('BarGraphTime').style.display = 'none';
		document.getElementById('BarGraphSpeed').style.display = 'none';
		document.getElementById('BarGraphStatus').style.display = 'none';
		document.getElementById('BarGraphMessage').style.display = 'none';

		document.getElementById("BarGraphHeaderSize").style.display = 'none';
		document.getElementById("BarGraphHeaderStart").style.display = 'none';
		document.getElementById("BarGraphHeaderConnect").style.display = 'none';
		document.getElementById("BarGraphHeaderFirstB").style.display = 'none';
		document.getElementById("BarGraphHeaderLastB").style.display = 'none';
		document.getElementById("BarGraphHeaderTime").style.display = 'none';
		document.getElementById("BarGraphHeaderSpeed").style.display = 'none';
		document.getElementById("BarGraphHeaderStatus").style.display = 'none';
		document.getElementById("BarGraphHeaderMessage").style.display = 'none';

		document.getElementById("BarGraphTotalSize").style.display = 'none';
		document.getElementById("BarGraphTotalStart").style.display = 'none';
		document.getElementById("BarGraphTotalConnect").style.display = 'none';
		document.getElementById("BarGraphTotalFirstB").style.display = 'none';
		document.getElementById("BarGraphTotalLastB").style.display = 'none';
		document.getElementById("BarGraphTotalTime").style.display = 'none';
		document.getElementById("BarGraphTotalSpeed").style.display = 'none';
		document.getElementById("BarGraphTotalStatus").style.display = 'none';
		document.getElementById("BarGraphTotalMessage").style.display = 'none';

	}
		
/* BarGraph - END */

function AddDebugText(Text) {
	//document.getElementById('Status').innerHTML = document.getElementById('Status').innerHTML+'<br>'+Text;
	document.getElementById('Status').innerHTML = Text+'<br>';
}
function SpawnAJAX(Method, URL, Event) { 
    xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.onreadystatechange = Event;
    xmlhttp.open(Method, URL);    
    xmlhttp.send(null);	
    
    return xmlhttp;
}
function StartMonitor(URL) {
	if (Running) {
		alert('You must stop your previous monitor first!');
		return false;
	}
	bg_Init();
	ReloadADs();

//	document.getElementById('MyImage').innerHTML = '';
//	document.getElementById('ImageLink').innerHTML = '';
	AddDebugText('Starting to monitor '+URL+'...');
	SpawnAJAX("GET", BaseAJAXURL+"StartMonitor.ajax?URL="+URL, StartMonitor_Event);
	
	return false;
}

function StartMonitor_Event() {
    if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
    	var JSON = eval('('+xmlhttp.responseText+')');

		MonitorCode = JSON.MonitorCode;
	    
	    // Now get the damned result
	    if (JSON.Status=='Success') {
		    AddDebugText('Monitor started, MonitorCode= ' +MonitorCode);		    		    
		    Stopped = false;
		    Running = true;
			document.getElementById('URL').disabled = true;
			document.getElementById('StartSiteTimer').disabled = true;
			document.getElementById('StopSiteTimer').disabled = false;
			document.getElementById('StopSiteTimer').focus();
			document.getElementById('Logo').src = 'Images/OGST-Logo-Anim.gif';
	    	QueryMonitor();
	    } else {
		    AddDebugText('Monitor failed: ' +JSON.StatusMessage);
	    }
    }
    
    return false;
}
function QueryMonitor()
{	
	AddDebugText('Querying to monitor '+MonitorCode);
	QueryID=QueryID+1;	
	SpawnAJAX("GET", BaseAJAXURL + 'QueryMonitor.ajax?MonitorCode='+MonitorCode, QueryMonitor_Event);

	return false;
}
function QueryMonitor_Event()
{
    if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
    	var JSON = eval('('+xmlhttp.responseText+')');
//		document.getElementById("info").value += xmlhttp.responseText;
	    
	    // Now get the damned result
	    if (JSON.Status!='Failure') 
	    {
		    AddDebugText('Monitor returned, age='+JSON.Age);
		    FillResultTable(JSON);		    
		    if (JSON.Done!=true)
		    {
			    AddDebugText('Trying again...'+JSON.Age);
	    		QueryMonitor();
	    	}
	    	else 
	    	{
				Running = false;
	    		if (Stopped==false)
		    		AddDebugText('DONE!')
		    	else
		    		AddDebugText('STOPPED!');
				document.getElementById('URL').disabled = false;
				document.getElementById('StartSiteTimer').disabled = false;
				document.getElementById('StopSiteTimer').disabled = true;
				document.getElementById('URL').focus();
				document.getElementById('Logo').src = 'Images/OGST-Logo-1.gif';
//		    	ShowImage();
	    	}
	    	
	    } else {
		    AddDebugText(JSON.StatusMessage);
	    }
    }
}

function FillResultTable(JSON)
{
	for(var i = 0; i < JSON.ChangedItems.length; i++) 
	{
		var pos = JSON.ChangedItems[i].RowID+2;
		// Fill the row
		ChangedItem = JSON.ChangedItems[i];
		if (pos == 1)
		{
			document.getElementById("BarGraphTotalSize").innerHTML = '<b>'+ChangedItem.Size+'</b>';
			document.getElementById("BarGraphTotalLastB").innerHTML = '<b>'+parseFloat(ChangedItem.LastByte).toFixed(2)+'</b>';
//			document.getElementById("BarGraphTotalTime").innerHTML = '<b>'+parseFloat(ChangedItem.Time).toFixed(2)+'</b>';
			document.getElementById("BarGraphTotalSpeed").innerHTML = '<b>'+parseFloat(ChangedItem.Speed).toFixed(2)+'</b>';
		}
		
		if (pos>1)
		{
			bg_SetBarWidth('BGR'+pos, ChangedItem);
		}
	}  
	if (G_ScaleChanged)
	{
		for (i1 = 0; i1 < document.getElementById('BarGraph').childNodes.length; i1++)
		{
			if (typeof document.getElementById('BarGraph').childNodes[i1].aElement != 'undefined')
			{
				var tElement = document.getElementById('BarGraph').childNodes[i1].aElement;
				var tItem = document.getElementById('BarGraph').childNodes[i1].aItem;
				bg_SetBarWidth(tElement, tItem);
			}
		}
	}
}

function ShowImage() {
	if (Stopped==false) {
		document.getElementById('MyImage').innerHTML = 
			"<img src='"+BaseAJAXURL+"GetMonitorImage.ajax?MonitorCode="+MonitorCode+"' border='0'>"+
			"<b><br><font color='gray'>Connecting</font><br>"+
			"<font color='green'>Waiting for first byte</font><br>"+
			"<font color='blue'>Reading data until last byte</font><br></b>";
		document.getElementById('ImageLink').innerHTML = 'Scroll to image';
	}
	else	
		document.getElementById('MyImage').innerHTML = '';
}

function StopMonitor_Event() {
    if ((Stopxmlhttp.readyState == 4) && (Stopxmlhttp.status == 200))
    {
		document.getElementById('URL').disabled = false;
		document.getElementById('StartSiteTimer').disabled = false;
		document.getElementById('StopSiteTimer').disabled = true;
		document.getElementById('URL').focus();
		document.getElementById('Logo').src = 'Images/OGST-Logo-1.gif';
    	Stopped = true;
    } 
}

function StopMonitor() {
	if (MonitorCode!='') {
		// SpawnAJAX("GET", BaseAJAXURL+"StopMonitor.ajax?MonitorCode="+MonitorCode, IgnoreMe)
		Stopxmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
    	Stopxmlhttp.onreadystatechange = StopMonitor_Event;
    	Stopxmlhttp.open("GET", BaseAJAXURL+"StopMonitor.ajax?MonitorCode="+MonitorCode);    
    	Stopxmlhttp.send(null);	

	} else
		alert('Monitor hasnt been started!');
}

function getURLParam(strParamName){
	var strReturn = "";
	var strHref = window.location.href;
	if ( strHref.indexOf("?") > -1 ){
		var strQueryString =
			strHref.substr(strHref.indexOf("?")).toLowerCase();

		var aQueryString = strQueryString.split("&");
		for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
			if (aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ) {			
				var aParam = aQueryString[iParam].split("=");
				strReturn = aParam[1];
				break;
			}
		}
	}
	return strReturn;
}

function CheckRefererForAjax_Event() {
    if ((CheckRefererForAjaxHTTP.readyState == 4) && (CheckRefererForAjaxHTTP.status == 200)) {
    	var JSON = eval('('+CheckRefererForAjaxHTTP.responseText+')');
    	if (JSON.AJAXExists==true) 
    	{    	    	
    		PageTarget='AJAX';
    		document.getElementById('AJAXHeader').innerHTML = 
    			'For information about <a href="?Target=AJAX">AJAX, please click here</a>.';
    	}
    	else
    	{
    		PageTarget='Generic';
    	}
	}
}

function CheckRefererForAjax() {
	if ((PageTarget=='') && (getURLParam("Target")!="ajax")) {
		CheckRefererForAjaxHTTP = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
    	CheckRefererForAjaxHTTP.onreadystatechange = CheckRefererForAjax_Event;
    	CheckRefererForAjaxHTTP.open("GET", BaseAJAXURL+"PageContainsAjax.ajax?URL="+document.referrer);    
    	CheckRefererForAjaxHTTP.send(null);	
    }
}

function PageLoad() {	
	G_MaxScale = 1.0;
	bg_SetMaxScale(G_MaxScale)
  	if (document.getElementById('URL').value=='') {
    	document.getElementById('URL').value = getURLParam('URL');
    	if (getURLParam('URL')!='')
      		StartMonitor(getURLParam('URL'));
    }
	
  	document.getElementById('URL').focus();     	
	bg_HideDetails();
	CheckRefererForAjax();
}

function ReloadAd(aID)
{
	var Ad1 = document.getElementById(aID+'.1');
	var Ad2 = document.getElementById(aID+'.2');
	Ad1.height = "90px";
	Ad2.height = "90px";
	Ad2.src = "SiteTimer-Ad.html";
}

function ReloadADs() {
	ReloadAd('GAD1');
	ReloadAd('GAD2');
}