var gTrackLinkQueue = new Array();

function gf_CallTracker(strVirtualPath, objWTOptions) {

	try {
		trackLink(strVirtualPath, objWTOptions);
		//alert("gf_CallTracker() -- called trackLink() -- strVirtualPath = " + strVirtualPath + "");
		return;
	} catch (e) {
		//alert("gf_CallTracker() -- called trackLink() -- Error:  " + e);
	}

	var arrTrackLinkQueue = new Array();

	try {
		arrTrackLinkQueue = gTrackLinkQueue;

	} catch(e) {
	
	}

	arrTrackLinkQueue[arrTrackLinkQueue.length] = {"virtualPath":strVirtualPath, "WTOptions":objWTOptions};

	gTrackLinkQueue = arrTrackLinkQueue;
}

var strVirtualPathOnExit = "";
var objWTOptionsOnExit = new Object();

function setExitListenerValues(strVirtualPath, objWTOptions) {
	strVirtualPathOnExit = strVirtualPath;
	objWTOptionsOnExit = objWTOptions;
}

function trackLinkOnExit() {
	trackLink(strVirtualPathOnExit, objWTOptionsOnExit);
}


function gf_CallExitTracker(strVirtualPath, objWTOptions) {
	try {
		/*
		addUnloadEvents(trackLink(strVirtualPath, objWTOptions));
		*/
		// UBET: trying a direct listener approach
		setExitListenerValues(strVirtualPath, objWTOptions);
		if(window.addEventListener) {
			window.addEventListener('unload',trackLinkOnExit,false);
		} else if(window.attachEvent) {
			window.attachEvent('onunload',trackLinkOnExit);
		}
		//alert("gf_CallExitTracker() -- adding trackLink() to unload events -- strVirtualPath = " + strVirtualPath + "");
	} catch (e) {
		//alert("gf_CallExitTracker() -- adding trackLink() to unload events  -- Error:  " + e);
	}
}
