
// Set production or test for RIAX
// NOTE: environment passed into the "Resolution" field!
ra_riaxResolution = (location.hostname === 'www.appup.com') ? 'production' : 'test';
ra_riaxLocation = null;
ra_riaxKeywords = null;
ra_riaxDomain = null;
ra_firstRequest = true;
ra_ignoreCategory = false;
ra_zoomedIn = false;

ra_imageBank = new Array();

function ra_initialize()
{
	// set referrer
	var referDom = ra_getCookie('ra_referDom');
	var referKW = ra_getCookie('ra_referKW');

	// If the referrer wasn't carried over, set the cookie
	if (ra_isNOrU(referDom))
	{
		referDom = ra_stripPunctuation(ra_getDomainFromURL(document.referrer));

		var hostnameStr = ra_stripPunctuation(String(location.hostname));

		// Don't track in-site referrers
		if (referDom == hostnameStr)
		{
			referDom = '';
			referKW = '';
		}
		else
		{
			referKW = ra_stripPunctuation(ra_getKeywordsFromReferrer(document.referrer));
		}

		ra_setCookie('ra_referDom', referDom, false);
		ra_setCookie('ra_referKW', referKW, false);
	}

	ra_riaxDomain = referDom;
	ra_riaxKeywords = referKW;

	// Install handlers on all page elements
	//setInterval(ra_installAllHandlers, 250);
	ra_doHandlers();

	// Track initial pageload
	ra_trackPageChange();
}

function ra_trackPageChange()
{
	var url = location.href;
	var pageName = ra_getPageNameFromURL(url);
	var app = '';
	var searchTerms = '';
	var var1 = '';

	// Special handling for page names:

	// Promo pages
	if (pageName == 'promotions')
	{
		// fill in App with promotion app name
		// getAppCategory should work for this, as the promo app name is put in the same place in the URL as the app category
		if (!ra_isNOrU(ra_getAppCategory(url)))
		{
			app = ra_getAppCategory(url);
		}
	}

	// Home - look for promo code
	if (pageName == 'home')
	{
		if (!ra_isNOrU(ra_getPromoCode(url)))
		{
			pageName = 'home Page-' + ra_getPromoCode(url);
		}
	}

	// Find - category in URL
	if (pageName == 'find')
	{
		var blah = ra_getAppCategory(url);

		if (!ra_isNOrU(ra_getAppCategory(url)) && ra_getAppCategory(url) != '')
		{
			var1 = ra_getAppCategory(url);
		}
	}

	// Find - search terms in URL params
	if (pageName == 'find')
	{
		if (!ra_isNOrU(ra_getSearchString(url)) && ra_getSearchString(url) != '')
		{
			searchTerms = ra_getSearchString(url);
		}
	}

	if (pageName == 'find')
	{
		var params = ra_getUrlParams(url);

		if (!ra_isNOrU(params['featureBy']) && params['featureBy'] != '')
		{
			switch (params['featureBy'])
			{
				case '0':
					var1 = 'TopFeatured';
					break;
				case '5':
					var1 = 'TopFree';
					break;
				case '6':
					var1 = 'TopPaid';
					break;
				case '7':
					var1 = 'NewReleases';
					break;
			}
		}
	}

	// App details - application name in URL
	if (pageName == 'app-details')
	{
		if (!ra_isNOrU(ra_getAppName(url)) && ra_getAppName(url) != '')
		{
			app = ra_getAppName(url);
		}
	}

	ra_riaxLocation = pageName;

	ra_riaxTrackPage(app, searchTerms, var1);

	// SiteCatalyst page tracking
	if (!ra_firstRequest)
	{
		ra_setSiteCatalystVarsFromURL(url);

		waTrackAsPage(wa_pageName);

		// GA
		_gaq.push(['_trackPageview']);
	}
	ra_firstRequest = false;

	ra_doHandlers();

	ra_zoomedIn = false;
}

function ra_doHandlers()
{
	// Reset handlers
	setTimeout(ra_installAllHandlers, 250);
	setTimeout(ra_installAllHandlers, 1000);
	setTimeout(ra_installAllHandlers, 2500);
	setTimeout(ra_installAllHandlers, 5000);
}

function ra_installAllHandlers()
{
	// Submit handlers for search fields
	ra_jQueryHandlerHelper('#command', 'submit', ra_trackSearchSubmit);
	ra_jQueryHandlerHelper('#aside-searchbox', 'submit', ra_trackSearchSubmit);

	// Install the handler for named links, i.e. links with wa_names
	ra_jQueryHandlerHelper('a[wa_name]', 'click', ra_trackNamedLink);

	// Handlers for Twitter and Facebook
	ra_jQueryHandlerHelper('a.email', 'click', ra_handleEmail);
	ra_jQueryHandlerHelper('a.twitter', 'click', ra_handleTwitter);
	ra_jQueryHandlerHelper('a.facebook', 'click', ra_handleFacebook);

	// Featured app categories on Browse page
	ra_jQueryHandlerHelper('li.featured > A', 'click', ra_handleAppTypeGroup);

	// Regular app categories on Browse page
	ra_jQueryHandlerHelper('A.sub-categories-list', 'click', ra_handleAppCategory);

	// Subcategories on Browse page
	ra_jQueryHandlerHelper('UL.subCategories-list > LI', 'click', ra_trackSubcategory);

	// Page numbers on Browse page
	ra_jQueryHandlerHelper('#pages > LI', 'click', ra_handleAppBrowsePages);

	// Sort By menu
	ra_jQueryHandlerHelper('div.styleSelect_item_content > UL > LI', 'click', ra_handleSortByMenu);

	// Items in app grid on Browse page
	ra_jQueryHandlerHelper('div.icon > A', 'click', ra_trackAppGridClick);

	// Search community
	ra_jQueryHandlerHelper('#search-comunity', 'submit', ra_handleSearchCommunity);

	// Related apps in App Details page
	ra_jQueryHandlerHelper('a.rel-apps', 'click', ra_handleRelApps);

	// Featured app carousel on homepage
	ra_jQueryHandlerHelper('#waterwheel-carousel-horizon > DIV > DIV > A', 'click', ra_handleFeaturedApps);

	// Promo header on homepage
	ra_jQueryHandlerHelper('#header-download-promo', 'click', ra_handlePromoClick);

	// Support community thread links
	// recent content
	ra_jQueryHandlerHelper('UL.recent-threads > LI > A', 'click', ra_handleSupportComm);
	// top-viewed
	ra_jQueryHandlerHelper('UL.top-viewed-threads > LI > A', 'click', ra_handleSupportComm);

	// Previous related app on app details page
	ra_jQueryHandlerHelper('div.similar-apps-container > div.jcarousel-container > div.jcarousel-prev-horizontal', 'click', ra_handleSimilarAppPrev);
	// Next related app
	ra_jQueryHandlerHelper('div.similar-apps-container > div.jcarousel-container > div.jcarousel-next-horizontal', 'click', ra_handleSimilarAppNext);

	// Zoomer on app details page
	ra_jQueryHandlerHelper('#zoomer', 'click', ra_handleZoomer);

	// Screenshots on app details page
	ra_jQueryHandlerHelper('#mod-screenshot-carousel > ul.thumbnail > li', 'click', ra_handleScreenshot);
}

function ra_jQueryHandlerHelper(selector, type, handler)
{
	$(selector).unbind(type, handler).bind(type, handler);
}

function ra_trackSearchSubmit(e)
{
	var searchFieldValues = new Array();

	try
	{
		// Two INPUTs with the same ID...
		var inputs = document.getElementsByTagName('INPUT');

		for (var i = 0; i < inputs.length; i++)
		{
			if (!ra_isNOrU(inputs[i].name) && inputs[i].name == 'keyword')
			{
				searchFieldValues.push(ra_stripPunctuation(inputs[i].value));
			}
		}
	} catch (e) { };

	// Figure out which one the user entered data into...
	for (var j = 0; j < searchFieldValues.length; j++)
	{
		if (searchFieldValues[j].toLowerCase() != 'search_for_apps' && searchFieldValues[j].length > 0)
		{
			ra_riaxTrackClick('Search_Apps', '', searchFieldValues[j], '', '', '');
			break;
		}
	}
}

function ra_trackNamedLink(e)
{
	try
	{
		// Find actual link object
		var obj = e.target;

		while (!ra_isNOrU(obj) && ra_isNOrU(obj.getAttribute('wa_name')))
		{
			obj = obj.parentNode;
		}

		var name = obj.getAttribute('wa_name');

		if (ra_riaxLocation == 'app-details')
		{
			ra_riaxTrackClick(name, ra_getAppName(location.href), '', '', '', '');
		}
		else
		{
			ra_riaxTrackClick(name, '', '', '', '', '');
		}

		// Hooks for Omniture & GA tracking
		switch (name)
		{
			case 'Nav_Home':
				_gaq.push(['_trackEvent', 'link', 'primary', 'Home']);
				break;
			case 'Nav_About_AppUp':
				_gaq.push(['_trackEvent', 'link', 'primary', 'About AppUp']);
				break;
			case 'Nav_Browse_Apps':
				_gaq.push(['_trackEvent', 'link', 'primary', 'Browse Apps']);
				break;
			case 'Nav_Download':
				_gaq.push(['_trackEvent', 'link', 'primary ', 'Download']);
				break;
			case 'Top_Nav_Intel_AppUp':
				ra_omniTrack('appup:en_us:links', 'o', 'wa_custom36=appup:en_us:nav:appup-logo&wa_eCustom36=appup:en_us:nav:appup-logo&wa_events=se_cust01');
				break;
			case 'Button_StartDownload':
				ra_omniTrack('appup:en_us:links', 'o', 'wa_custom36=appup:en_us:nav:help_download&wa_eCustom36=appup:en_us:nav:help_download&wa_events=se_cust01');
				_gaq.push(['_trackPageview', '/download/AppUpCenter-Win']);
				_gaq.push(['_trackEvent', 'download', 'client', 'AppUp Center Windows']);

				// DoubleClick Floodlight tag
				var axel = Math.random() + "";
				var a = axel * 10000000000000;
				$('<iframe src="http://fls.doubleclick.net/activityi;src=1873234;type=appup010;cat=appup003;ord=1;num=' + a + '?" width="1" height="1" frameborder="0"></iframe>').appendTo('body');
				
				break;
			case 'Support_FAQ':
				ra_omniTrack('appup:en_us:links', 'o', 'wa_custom36=appup:en_us:nav:faq&wa_eCustom36=appup:en_us:nav:faq&wa_events=se_cust03');
				_gaq.push(['_trackEvent', 'link', 'exit', 'Support - View FAQ']);
				break;
			case 'Support_Community':
				ra_omniTrack('appup:en_us:links', 'o', 'wa_custom36=appup:en_us:nav:support_community&wa_eCustom36=appup:en_us:nav:support_community&wa_events=se_cust03');
				_gaq.push(['_trackEvent', 'link', 'exit', 'Support - Visit the Community']);
				break;
			case 'Developer':
				ra_omniTrack('appup:en_us:links', 'o', 'wa_custom36=appup:en_us:nav:dev_iadpjoin&wa_eCustom36=appup:en_us:nav:dev_iadpjoin&wa_eCustom10=si:blog_forum_view&wa_events=se_cust03,se_points');
				_gaq.push(['_trackEvent', 'link', 'exit', 'Programs - Developers']);
				break;
			case 'Terms_Of_Use':
				ra_omniTrack('appup:en_us:links', 'o', 'wa_custom36=appup:en_us:nav:footer:termsofuse&wa_eCustom36=appup:en_us:nav:footer:termsofuse&wa_events=se_cust03');
				_gaq.push(['_trackEvent', 'link', 'exit', 'Footer - Terms of Use']);
				break;
			case 'Privacy':
				ra_omniTrack('appup:en_us:links', 'o', 'wa_custom36=appup:en_us:nav:footer:privacypolicy&wa_eCustom36=appup:en_us:nav:footer:privacypolicy&wa_events=se_cust03');
				_gaq.push(['_trackEvent', 'link', 'exit', 'Footer - Privacy Policy']);
				break;
			case 'Trademarks':
				ra_omniTrack('appup:en_us:links', 'o', 'wa_custom36=appup:en_us:nav:footer:trademarks&wa_eCustom36=appup:en_us:nav:footer:trademarks&wa_events=se_cust03');
				_gaq.push(['_trackEvent', 'link', 'exit', 'Footer - Trademarks']);
				break;
			case 'Intel_Corporation':
				ra_omniTrack('appup:en_us:links', 'o', 'wa_custom36=appup:en_us:nav:footer:intel_corp&wa_eCustom36=appup:en_us:nav:footer:intel_corp&wa_events=se_cust03');
				_gaq.push(['_trackEvent', 'link', 'exit', 'Footer - Intel Home']);
				break;
			case 'Support_Email':
				_gaq.push(['_trackEvent', 'link', 'exit', 'Support - Send us an Email']);
				break;
			case 'Support_Chat':
				_gaq.push(['_trackEvent', 'link', 'exit ', 'Support - Chat with a Specialist']);
				break;
			case 'Partner':
				_gaq.push(['_trackEvent', 'link', 'exit', 'Programs - Partners']);
				break;
			case 'Small_Business_Service':
				_gaq.push(['_trackEvent', 'link', 'exit', 'Programs - Small Business']);
				break;
			case 'AppUp_Blog':
				_gaq.push(['_trackEvent', 'link', 'exit', 'Blog Home']);
				break;
			default:
				break;
		}

	} catch (e) { };
}

function ra_handlePromoClick()
{
	try
	{
		var promoDiv = document.getElementById('header-download-promo');
		var appNameDiv = promoDiv.getElementsByTagName('DIV')[0];
		var appName = ra_stripPunctuation(appNameDiv.id);

		ra_riaxTrackClick('Promo_App', appName, '', '', '', '');
	} catch (e) { };
}

function ra_handleEmail()
{
	if (ra_riaxLocation == 'app-details')
	{
		ra_riaxTrackClick('Button_ShareSocial', ra_getAppName(location.href), '', '', 'Email', '');
	}
	else
	{
		ra_riaxTrackClick('Button_ShareSocial', '', '', '', 'Email', '');
	}
	ra_omniTrack('appup:en_us:links', 'o', 'wa_custom36=appup:en_us:nav:share_email&wa_eCustom36=appup:en_us:nav:share_email&wa_eCustom10=si:blog_off_domain_link&wa_events=se_cust02,se_points');
	_gaq.push(['_trackPageview', '/goals/share_email']);
	_gaq.push(['_trackEvent', 'link', 'social', 'Email']);
}

function ra_handleTwitter()
{
	if (ra_riaxLocation == 'app-details')
	{
		ra_riaxTrackClick('Button_ShareSocial', ra_getAppName(location.href), '', '', 'Twitter', '');
	}
	else
	{
		ra_riaxTrackClick('Button_ShareSocial', '', '', '', 'Twitter', '');
	}
	ra_omniTrack('appup:en_us:links', 'o', 'wa_custom36=appup:en_us:nav:share_twitter&wa_eCustom36=appup:en_us:nav:share_twitter&wa_eCustom10=si:blog_off_domain_link&wa_events=se_cust02,se_points');
	_gaq.push(['_trackPageview', '/goals/share_twitter']);
	_gaq.push(['_trackEvent', 'link', 'social', 'Twitter']);
}

function ra_handleFacebook()
{
	if (ra_riaxLocation == 'app-details')
	{
		ra_riaxTrackClick('Button_ShareSocial', ra_getAppName(location.href), '', '', 'Facebook', '');
	}
	else
	{
		ra_riaxTrackClick('Button_ShareSocial', '', '', '', 'Facebook', '');
	}
	ra_omniTrack('appup:en_us:links', 'o', 'wa_custom36=appup:en_us:nav:share_facebook&wa_eCustom36=appup:en_us:nav:share_facebook&wa_eCustom10=si:blog_off_domain_link&wa_events=se_cust02,se_points');
	_gaq.push(['_trackPageview', '/goals/share_facebook']);
	_gaq.push(['_trackEvent', 'link', 'social', 'Facebook']);
}

function ra_handleButtonSignUp()
{
	ra_riaxTrackClick('Button_SignUp', '', '', '', '', '');
	_gaq.push(['_trackPageview', '/goals/emailSignup']);
	_gaq.push(['_trackEvent', 'link', 'signup', 'Email Sign Up']);
}

function ra_handleAppTypeGroup(e)
{
	ra_riaxTrackClick('App_Type_Group', '', '', '', ra_stripPunctuation(ra_getInnerText(e.target)), '');
}

function ra_handleAppCategory(e)
{
	if (!ra_ignoreCategory)
	{
		ra_riaxTrackClick('App_Category', '', '', '', ra_stripPunctuation(ra_getInnerText(e.target)), '');

		_gaq.push(['_trackEvent', 'link', 'app category', ra_stripPunctuation(ra_getInnerText(e.target))]);

		ra_doHandlers();
	}

	ra_ignoreCategory = false;
}

function ra_handleAppBrowsePages()
{
	ra_riaxTrackClick('App_Browse_Pages', '', '', '', '', '');

	ra_doHandlers();
}

function ra_handleSortByMenu(e)
{
	ra_riaxTrackClick('Sort', '', '', '', '', ra_stripPunctuation(ra_getInnerText(e.target)));

	ra_doHandlers();
}

function ra_handleSearchCommunity()
{
	try
	{
		var searchString = document.getElementById('search-support').value;

		ra_riaxTrackClick('Support_Community_Search', '', ra_stripPunctuation(searchString), '', '', '');
	}
	catch (e) { };
}

function ra_handleFeaturedApps(e)
{
	try
	{
		var appName = e.target.title;

		ra_riaxTrackClick('Featured_App', ra_stripPunctuation(appName), '', '', '', '');
	}
	catch (f) { };
}

function ra_submittedEmailAFriend()
{
	ra_riaxTrackClick('Email_Send', '', '', '', '', '');
}

function ra_submittedEmailAnotherFriend()
{
	ra_riaxTrackClick('Button_Share_More', '', '', '', '', '');
}

function ra_closedEmailAFriend()
{
	ra_riaxTrackClick('Email_Close', '', '', '', '', '');
}

function ra_handleSupportComm()
{
	ra_riaxTrackClick('Support_Community', '', '', '', '', '');
}

function ra_trackSubcategory(e)
{
	try
	{
		var obj = e.target;

		// Find parent UL
		var parUL = obj;

		while (!ra_isNOrU(parUL.tagName) && parUL.tagName != 'UL')
		{
			parUL = parUL.parentNode;
		}

		// Find inputs inside UL
		var inputs = parUL.getElementsByTagName('INPUT');

		var selectedValues = new Array();

		// Look to find activated inputs
		for (var i = 0; i < inputs.length; i++)
		{
			if (inputs[i].checked)
			{
				var string = ra_stripPunctuation(ra_getInnerText(inputs[i].parentNode));

				if (!ra_valueInArray(string, selectedValues))
				{
					selectedValues.push(string);
				}
			}
		}

		//alert( selectedValues.join(','));
		ra_riaxTrackClick('App_SubCategory', '', '', '', selectedValues.join(','), '');

		ra_ignoreCategory = true;

	} catch (e) { };

	ra_doHandlers();
}

function ra_trackAppGridClick(e)
{
	//alert('test');

	try
	{
		var parLI = e.target;

		while (!ra_isNOrU(parLI.tagName) && parLI.tagName != 'LI')
		{
			parLI = parLI.parentNode;
		}

		var parDivs = parLI.getElementsByTagName('DIV');
		var appName = '';

		for (var i = 0; i < parDivs.length; i++)
		{
			if (!ra_isNOrU(parDivs[i].className) && (parDivs[i].className.indexOf('application-grid-name') != -1))
			{
				appName = ra_getInnerText(parDivs[i]);
				break;
			}
		}

		ra_riaxTrackClick('App_Details', ra_stripPunctuation(appName), '', '', '', '');

	} catch (e) { };
}

function ra_handleRelApps(e)
{
	var appName = ra_stripPunctuation(ra_getInnerText(e.target));
	ra_riaxTrackClick('App_Details', appName, '', '', '', '');
}

function ra_handleSimilarAppPrev()
{
	ra_riaxTrackClick('App_Detail_Scroll_Left', '', '', '', '', '');
}

function ra_handleSimilarAppNext()
{
	ra_riaxTrackClick('App_Detail_Scroll_Right', '', '', '', '', '');
}

function ra_handleZoomer()
{
	if (ra_zoomedIn == false)
	{
		ra_riaxTrackClick('Zoom', ra_getAppName(location.href), '', '', '', '');
		ra_zoomedIn = true;
	}
	else
	{
		ra_riaxTrackClick('Zoom_Out', ra_getAppName(location.href), '', '', '', '');
		ra_zoomedIn = false;
	}
}

function ra_handleScreenshot()
{
	ra_riaxTrackClick('Screenshot', ra_getAppName(location.href), '', '', '', '');
}

// RIAX Page tracking function
function ra_riaxTrackPage(app, searchTerms, var1)
{
	// Sanity check
	if (ra_riaxLocation == null) { return; }

	//var app = '';

	// Action: View
	var imageUrl = 'http://switch.atdmt.com/action/riax_intel_appup/v3/';
	imageUrl += 'resolution.' + ra_riaxResolution + '/';
	imageUrl += 'keywords.' + ra_riaxKeywords + '/';
	imageUrl += 'domain.' + ra_riaxDomain + '/';
	imageUrl += 'location.' + ra_riaxLocation + '/';
	imageUrl += 'app.' + app + '/';
	imageUrl += 'searchTerms.' + searchTerms + '/';
	imageUrl += 'var1.' + var1 + '/';
	imageUrl += 'action.View/';
	imageUrl += 'section.Web/';
	imageUrl += 'url.' + encodeURIComponent(location.href);

	ra_sendImage(imageUrl);
}

function ra_riaxTrackClick(actionName, app, searchTerms, source, var1, var3)
{
	// Sanity check
	if (ra_riaxLocation == null) { return; }

	imageUrl = 'http://switch.atdmt.com/action/riax_intel_appup/v3/';
	imageUrl += 'resolution.' + ra_riaxResolution + '/';
	imageUrl += 'keywords.' + ra_riaxKeywords + '/';
	imageUrl += 'domain.' + ra_riaxDomain + '/';
	imageUrl += 'location.' + ra_riaxLocation + '/';
	imageUrl += 'action.Click/';
	imageUrl += 'actionname.' + actionName + '/';
	imageUrl += 'app.' + app + '/';
	imageUrl += 'searchterms.' + searchTerms + '/';
	imageUrl += 'source.' + source + '/';
	imageUrl += 'var1.' + var1 + '/';
	imageUrl += 'var3.' + var3 + '/';
	imageUrl += 'section.Web/';
	imageUrl += 'url.' + encodeURIComponent(location.href);

	ra_sendImage(imageUrl);
}

function ra_getDomainFromURL(url)
{
	var link = document.createElement('a');
	link.href = url;
	link.style.display = 'none';

	document.body.appendChild(link);

	var domain = link.hostname;

	document.body.removeChild(link);

	return domain;
}

// Copied from existing AppUP site
function ra_getKeywordsFromReferrer(url)
{
	var searchTerms = '';

	if (url.match(/[\?&]p=/))
	{
		searchTerms = ra_getUrlParams(url)['p'];
	}
	else if (url.match(/[\?&]q=/))
	{
		searchTerms = ra_getUrlParams(url)['q'];
	}

	if (ra_isNOrU(searchTerms))
	{
		return '';
	}

	return decodeURIComponent(searchTerms);
}

ra_pageNameLookup = new Array();
ra_pageNameLookup[''] = 'home';
ra_pageNameLookup['index'] = 'home';
ra_pageNameLookup['what-is-appup'] = 'about';
ra_pageNameLookup['browse-apps'] = 'find';
ra_pageNameLookup['download-appup'] = 'download';
ra_pageNameLookup['appup-support'] = 'support';
ra_pageNameLookup['app-details'] = 'app-details';
//ra_pageNameLookup['search'] = 'search';

function ra_getPageNameFromURL(url)
{
	var link = document.createElement('a');
	link.href = url;
	link.style.display = 'none';

	document.body.appendChild(link);

	var path = link.pathname;

	document.body.removeChild(link);

	// If the first char is /, truncate it
	if (path[0] == '/')
	{
		path = path.substring(1, path.length);
	}

	var pageName = path.split('/')[0];

	if (!ra_isNOrU(ra_pageNameLookup[pageName]))
	{
		pageName = ra_pageNameLookup[pageName];
	}

	return pageName;
}

function ra_setSiteCatalystVarsFromURL(url)
{
	var pageName = ra_getPageNameFromURL(url);

	switch (pageName)
	{
		case 'home':
			wa_pageName = '/appup/applications/index';
			wa_org4 = wa_org3 + ':home';
			p_contentcat = 'ssc:nav';
			break;
		case 'find':
			wa_pageName = '/appup/applications/find';
			wa_org4 = wa_org3 + ':find';
			p_contentcat = 'ssc:nav';
			break;
		case 'about':
			wa_pageName = '/appup/applications/learn';
			wa_org4 = wa_org3 + ':learn';
			p_contentcat = 'ssc:overview';
			break;
		case 'app-details':
			wa_pageName = '/applications' + '_' + ra_getAppName(location.href);
			wa_org4 = wa_org3 + ":apps";
			p_contentcat = 'ssc:intro';
			break;
		default:
			return;
	}

	// search string goes in:
	// var wa_custom37 = wa_eCustom37 = wa_keywd;
	var searchTerms = '';

	if (!ra_isNOrU(ra_getSearchString(url)))
	{
		searchTerms = ra_getSearchString(url);
	}

	wa_custom37 = wa_eCustom37 = searchTerms;
}

function ra_getUrlParams(url)
{
	var params = new Array();
	var hash = new Array();
	var hashes = url.slice(url.indexOf('?') + 1).split('&');
	for (var i = 0; i < hashes.length; i++)
	{
		hash = hashes[i].split('=');
		params.push(hash[0]);
		params[hash[0]] = hash[1];
	}
	return params;
}

function ra_getPromoCode(url)
{
	// appup.com/index?promo=promo-name-here
	var urlParams = ra_getUrlParams(url);

	return (urlParams['promo']);
}

function ra_getAppCategory(url)
{
	//appup.com/browse-apps/category-name-here
	var link = document.createElement('a');
	link.href = url;
	link.style.display = 'none';

	document.body.appendChild(link);

	var path = link.pathname;

	document.body.removeChild(link);

	// If the first char is /, truncate it
	if (path[0] == '/')
	{
		path = path.substring(1, path.length);
	}

	var categoryName = path.split('/')[1];

	if (categoryName == 'index' || categoryName == 'search')
	{
		categoryName = '';
	}

	return ra_stripPunctuation(categoryName);
}

function ra_getSearchString(url)
{
	//appup.com/browse-apps/search?keyword=search-string-here
	var urlParams = ra_getUrlParams(url);

	var searchString = urlParams['keyword'];

	if (ra_isNOrU(searchString) || searchString.length == 0)
	{
		return null;
	}

	return ra_stripPunctuation(searchString);
}

function ra_getAppName(url)
{
	//appup.com/app-details/app-name-here
	return (ra_getAppCategory(url));
}

function ra_getInnerText(obj)
{
	var text = obj.textContent || obj.innerText;

	if (text == null)
	{
		text = "";
	}

	return text;
}

function ra_stripPunctuation(val)
{
	val = ra_trimString(val);

	var result = '';

	for (var i = 0; i < val.length; i++)
	{
		if (ra_isAlphaNum(val.charAt(i)))
		{
			result += val.charAt(i);
		}
		else
		{
			result += '_';
		}
	}

	return result;
}

function ra_isAlphaNum(val)
{
	// True if val is a single alphabetic character.
	var re = /^([a-zA-Z0-9])$/;
	return re.test(val);
}

function ra_stripSlashes(str)
{
	return str.replace(/\//g, '');
}

function ra_trimString(str)
{
	return str.replace(/^\s+|\s+$/g, '');
}

function ra_sendImage(url)
{
	var i = document.createElement('img');

	i.setAttribute('src', url);
	ra_imageBank.push(i);
}

function ra_isNOrU(obj)
{
	return !(typeof obj != 'undefined' && obj != null);
}

function ra_valueInArray(value, array)
{
	for (var i = 0; i < array.length; i++)
	{
		if (array[i] == value)
		{
			return true;
		}
	}

	return false;
}

// Cookie handling functions
function ra_getCookie(key)
{
	var aCookie = document.cookie.split('; ');
	for (var i = 0; i < aCookie.length; i++)
	{
		var aCrumb = aCookie[i].split('=');
		if (aCrumb.length > 1 && key == aCrumb[0])
			return unescape(aCrumb[1]);
	}
	return null;
}

function ra_setCookie(key, val, isPersistent)
{
	var exdate = new Date();
	exdate.setTime(new Date().getTime() + (365 * 24 * 60 * 60 * 1000));

	document.cookie = key + "=" + escape(val) + ((isPersistent == false) ? "" : ";expires=" + exdate.toGMTString()) + ";path=/";
}

/**
* omniTrack: wrapper for Omniture tracking
* @param param1
* @param param2
* @param param3
* @return
*/
function ra_omniTrack(param1, param2, param3)
{
	if (typeof waTrackAsLink === 'function')
	{
		waTrackAsLink(param1, param2, param3);
	}
}

// kick it off
$(window).ready(function ()
{
	ra_initialize();
})

