
var pageTracker;

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));


$(document).ready(function(){
	setupGoogleAnalytics();
	setupTrackClicks();
});


function getGoogleAnalyticsAPIKey() {
	switch(document.location.host) {
		case 'mytrailmap.scottnorland.net':
			return 'UA-2350576-3';
		break;
		case 'www.mytrailmap.com':
			return 'UA-2350576-2';
		break;
	}
}

// google analytics initialization
function setupGoogleAnalytics() {
		try {
			pageTracker = _gat._getTracker(getGoogleAnalyticsAPIKey());
			// delay the page tracking so the page can start functioning
			setTimeout(function(){
				pageTracker._trackPageview();
				
				// user defined segmentation
				if (ignoreTracking)
					pageTracker._setVar('IgnoreTracking');
				else if (userLoggedIn) 
					pageTracker._setVar('Member'); 
				else 
					pageTracker._setVar('');
			}, 500); 		
		} catch(err) {}
}

// google analytics click tracking
function setupTrackClicks() {
	$('a.track_click').each(function () {
		// define the category from page & subpage
		var category = PAGE+(SUBPAGE != '' ? '_'+SUBPAGE : '');
		// define the action for the a tag tc_class
		// get the classes
		var classesStr = $(this).attr('class');
		var classesAry = classesStr.split(' ');
		// one of the classes must have tc_class defined
		var action = '';
		$.each(classesAry, function (i, val) {
			if (val.substring(0,3) == 'tc_') {
				action = val.substring(3);
			}
		});
		var opt_label = '';
		opt_label = getOptValuesString (action);
		if (action != '') {
			$(this).bind('click',function () {
				//console.log('category: '+category+', action: '+action+', opt_label: '+opt_label+';');
				pageTracker._trackEvent(category, action, opt_label, 1);
			});
		}
	});
}

function getOptValuesString (action) {
	var optValuesAry = [];
	var opt_label = '';
	switch (action) {
		case 'sign_in':
		case 'click_top10_resort_link':
		case 'click_popular_points_resort_link':
		case 'click_comments_resort_link':
		case 'click_comments_seemoreat_resort_link':
		case 'click_fav_resorts_resort_link':
			optValuesAry.push('resort_id:'+gup('rid'));
		break;
		case 'go_to_resort_dropdown_nav':
			// resortId will be send as second arg
			optValuesAry.push('resort_id:'+arguments[1]);
		break;
		case 'click_popular_points_resort_userID':
		case 'click_comments_userID':
		case 'click_comments_userId_thumbnail':
			optValuesAry.push('member_id:'+gup('userId'));
		break;
		case 'change_fav_resort_view':
			// resortId will be send as second arg
			optValuesAry.push('view:'+arguments[1]);
		break;
	}
	if (userLoggedIn && userId != 0) {
		optValuesAry.push('user_id'+':'+userId);
	}
	// create optional fields string
	if (optValuesAry.length > 0) {
		opt_label += optValuesAry.join(',');
	}
	return opt_label;
}
