
function AjaxFunc(url, targetFunc) 
{
	if (window.XMLHttpRequest) 
	{
		req = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject) 
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (req != undefined) 
	{
		req.onreadystatechange = function() 
		{
			AjaxFunc_Complete(targetFunc);
		};
		req.open("GET", url, true);
		req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); 
		req.send("");	
		
	}
}

function AjaxFunc_Complete(targetFunc) 
{		
	if (req.readyState == 4) 
	{ 
		// only if req is "loaded"
		if (req.status == 200) 
		{ // only if "OK"
			targetFunc(req.responseText);
		} 
		else 
		{
			alert("AJAX callback result :\n"+ req.status + "\n" +req.statusText);
		}			
	}
}

function AjaxDiv(sourceTD, url, target) 
{		
	if (window.XMLHttpRequest) 
	{
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) 
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if (req != undefined) 
	{
		req.onreadystatechange = function() 
		{
			Ajax_Complete(sourceTD, url, target);
		};
		req.open("GET", url, true);
		req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); 
		req.send("");
	}
}

function Ajax_Complete(sourceTD, url, target) 
{		
	if (req.readyState == 4) 
	{ 
		// only if req is "loaded"
		if (req.status == 200) 
		{ 
			document.getElementById(target).innerHTML = req.responseText;

			// Apply any <script> elements to the current DOM
			var x = document.getElementById(target).getElementsByTagName("script");
			var h = document.getElementsByTagName("body")[0];
			for(var i=0;i<x.length;i++)
			{
				var s = document.createElement("script");
				s.type="text/javascript";
				h.appendChild(s);
				s.text=x[i].text;
			}
		} 
		else 
		{
			document.getElementById(target).innerHTML=" AJAX callback result :\n"+ req.status + "\n" +req.statusText;
		}	
		
		if (sourceTD != null)
		{
			sourceTD.style.backgroundColor = "WhiteSmoke";
			sourceTD.style.cursor = 'pointer'; 	
		}
	}
}

function LoadDiv(name, div) 
{
	return LoadDivDir(name, div, "GPSTrack");
}
function LoadDivDir(name, div, directory) 
{	
	var strLink = document.location.href;
    var intSlashPos = strLink.indexOf(directory + "/", 0) + directory.length;

	var strURL = strLink.substr(0, intSlashPos) + "/" + name;
	
	AjaxDiv(null, strURL, div);
	
	return false;
}

function LoadDivTD(sourceTD, htmlPage, targetDiv)
{		
	var parentTR = sourceTD.parentNode;
	var parentTable = sourceTD.parentNode.parentNode;

	var intTD = 0;
	var intTDCount = parentTable.getElementsByTagName("td").length;
	
	for (intTD = 0; intTD <= intTDCount-1; intTD ++)
	{
		var cellTD = parentTable.getElementsByTagName("td")[intTD];

		if (cellTD.className.indexOf('button') > 0)
			cellTD.style.backgroundColor = "Gray";
	}
	
	sourceTD.style.backgroundColor = "WhiteSmoke";
	sourceTD.style.cursor = 'wait'; 

	var f = function() {LoadDivTDAsync(sourceTD, htmlPage, targetDiv); };
	setTimeout(f, 0);
}	

function LoadDivAsync(htmlPage, targetDiv)
{		
	var f = function() {LoadDivTDAsync(null, htmlPage, targetDiv); };
	setTimeout(f, 0);
}	

function LoadDivTDAsync(sourceTD, name, div) 
{	
	var strLink = document.location.href;
    var intSlashPos = strLink.indexOf("GPSTrack/", 0) + 8;

	var strURL = strLink.substr(0, intSlashPos) + "/" + name;
	
	AjaxDiv(sourceTD, strURL,div);
	
	return false;
}

function createCookie(name,value,days) 
{
	if (days) 
   	{
    	var date = new Date();
    	date.setTime(date.getTime()+(days*24*60*60*1000));
    	var expires = "; expires="+date.toGMTString();
	}
	else 
    	expires = "";

	document.cookie = name+"="+value+expires+"; path=/";
}	

function readCookie(name) 
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) 
    {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) 
    			return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) 
{
	createCookie(name,"",-1);
}	

function queryParam( name )
{
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null )
		return "";
	else
		return results[1];
} 


