/**
 * Descriptive tracking based on GroupID or GroupObjectID
 * Targets Google Analytics.
 * @Avery Brooks, 2008/9
 */

// wrapper functions

function trackPath(path,base) {
	return TT.trackPath(path,base);
}

function trackAndGo(id,type,override,next,new_window) {
	return TT.trackAndGo(id,type,override,next,new_window);
}

function trackView(view,id,type,override) {
	return TT.trackView(view,id,type,override);
}

function trackPage(data) {
	return TT.trackPage(data);
}

function gid2path(gid) {
	return TT.gid2path(gid);
}

// actual obj

TT = {

	_tp : "",
	_defaultStart : "/home_page",
	
	TargetTrack : "data/bc.php",
	TargetGroupID2BreadCrumb : "data/gid2bc.php",
	
	PageTracker : {}, // GoogleAnalytics object

	// ARBITARARY TRACKING
	trackPath : function(path,base) {
		if (!path) return;
		if (!base) base = TT._defaultStart;
		if (path.substr(0,1) != "/") path = "/" + path;
		var trackIt = "" + base + path;
		if (trackIt.substr(0,1) === "#") trackIt = trackIt.substr(1);
		TT.trackPage(trackIt);
	},

	// TRACK AND BOUNCE
	trackAndGo : function(id,type,override,next,new_window) {
		TT.trackView('',id,type,override);
		if (new_window) {
			setTimeout(function(){window.open(next);},200);
		} else {
			setTimeout(function(){window.location = next},200);
		}
	},

	// TRACK BY VIEW / ID / TYPE
	trackView : function(view,id,type,override) {
		if (!override) {
			override = "";
		} else {
			override = "/" + TT.urlNameSanitize(override);
		}

		if (!type) type = "group";

		if (id && type) {
			$.get(
				TT.TargetTrack,
				{R_Tag:type,R_ID:id},
				function(returned_data) {
					if (returned_data.length > 0) {
		 				TT.trackPage(returned_data + override);
					}
 				}
		 	);
		}
		return false;
	},

	// TRACK A VIEW TO GOOGLE
	trackPage : function(data) {

		if (!TT._tp)
			var tp = false;
		else
			var tp = TT._tp;

		// optional sitewide tracking
		if (tp) data += "?" + tp;

		TT.PageTracker._trackPageview(data);
		return null;
	},

	// CONVERT A GID TO A FLASH PATH
	gid2path : function(gid) {
		if (!checkURL()) {
			if(!gid) return false;
			$.get(
				TT.TargetGroupID2BreadCrumb,
				{GroupID:gid},
				function(returned_data) {
					document.location = "#" + returned_data;
				}
	 		);
		}
	},

	// MAKE SURE A CALL IS URLNAME COMPLIANT
	urlNameSanitize : function (str) {
		var oldString = new String(str.toLowerCase());
		var newString = "";
		for (var i=0; i < oldString.length; i++) {
			if (oldString.charAt(i).match(/[a-z0-9\/]/)) {
				newString += oldString.charAt(i);
			} else if (oldString.charAt(i).match(/[\_\ \-]/)) {
				if (i > 1 && newString.charAt(i-2) != "_") {
					newString += "_";
				}
			}
		}
		return newString;
	}

}


// GRID CALL ... (APPENDIX)
function movieCall(i) {return null;}

// OPEN THE STORE LOCATOR
function openStore(target) {
	if (!target) var target = "/StoreLocator/";
	window.open(target,'PopUpWindow','height=472,width=922,toolbar=no,scrollbars=no,resizable=no');
	return false;
}