$(document).ready(function() {
	var excludedReferrers = ["muzak.com"];
	var cookieDomain = "muzak.com";
	var payPerClickParameter = "kw";

	// IDs for the fields to be updated.
	var searchStringField = "#SearchString";
	var searchEngineField = "#SearchEngine";
	var payPerClickKeywordField = "#PPCKeyword";

	var refer = document.referrer;
	var searchString;
	var searchEngine;

	// if there's no referrer, do nothing
	if ((refer == undefined) || (refer == "")) {;
	}
	else {
		// get the domain of the referring website -- http://[[this-thing.com]]/
		var referrerDomain =
		refer.substr(refer.indexOf("\/\/") + 2, refer.indexOf("\/", 8) - refer.indexOf("\/\/") - 2).toLowerCase();

		var excludedDomainFound = false;
		var i = 0;

		// search the excluded domain list to see if the referrer domain is on it
		while ((i < excludedReferrers.length) && !excludedDomainFound) {
			var thisExcludedDomain = excludedReferrers[i].toLowerCase();

			// weird semantics here -- indexOf returns "-1" if the search string isnt found.
			// thus excludedDomainFound is true only when indexOf matches an excluded domain (!= -1)
			excludedDomainFound = (referrerDomain.indexOf(thisExcludedDomain) != -1);
			i++;
		}

		// only if the referrer isn't in our excluded domain list...
		if (!excludedDomainFound) {
			// extract the URL parameters from common search engines
			// To add your own, each engine needs:
			//  name: how the search engine will appear on your Marketo leads
			//  url: REGEX for matching the engine's referrer.  ex.  /\.google\./i
			//  query: URL parameter that contains the search query - usually "p" or "q"
			var searchEngines = [{
				name: "Yahoo",
				url: /\.yahoo\.co/i,
				query: "p"
			},
			{
				name: "Google",
				url: /\.google\./i,
				query: "q"
			},
			{
				name: "Microsoft Live",
				url: /\.live\.com/i,
				query: "q"
			},
			{
				name: "MSN Search",
				url: /search\.msn\./i,
				query: "q"
			},
			{
				name: "AOL",
				url: /\.aol\./i,
				query: "query"
			},
			{
				name: "Bing",
				url: /\.bing\.com/i,
				query: "q"
			},
			{
				name: "Ask",
				url: /\.ask\.com/i,
				query: "q"
			}];

			// find the referring search engine (if any)
			i = 0;
			while (i < searchEngines.length) {
				if (refer.match(searchEngines[i].url)) {
					searchEngine = searchEngines[i].name;
					searchString = $.getQueryString({
						ID: searchEngines[i].query,
						URL: refer,
						DefaultValue: ""
					});
					break;
				}
				i++;
			}
			// If no search engine is found, this person probably used a less
			// popular one.  Use the referring doman, then guess the query parameter
			if (i == searchEngines.length) {

				searchEngine = referrerDomain;

				var queries = ["q", "p", "query"];
				var i = 0;
				while ((i < queries.length) && (searchString == undefined)) {
					searchString = $.getQueryString({
						ID: queries[i],
						URL: refer
					});
					i++;
				}

				// no search strings found -- use this text instead.
				if (searchString == undefined) {
					searchString = "None";
				}
			}

			// Use the provided URL parameter to get the PPC keyword.
			var payPerClickWord = $.getQueryString({
				ID: payPerClickParameter,
				URL: refer,
				DefaultValue: ""
			});

			// Put the info into cookies.  These values will be extracted
			// and put into a Marketo form later.  Expires in 2 years.
			$.cookie('mktoPPCKeyword', payPerClickWord, {
				expires: 730,
				path: '\/',
				domain: cookieDomain
			});
			$.cookie('mktoSearchEngine', searchEngine, {
				expires: 730,
				path: '\/',
				domain: cookieDomain
			});
			$.cookie('mktoSearchString', searchString, {
				expires: 730,
				path: '\/',
				domain: cookieDomain
			});
		}
	}
	// Get the values from the cookies and put them into the hidden fields
	$(searchStringField).attr("value", $.cookie('mktoSearchString'));
	$(searchEngineField).attr("value", $.cookie('mktoSearchEngine'));
	$(payPerClickKeywordField).attr("value", $.cookie('mktoPPCKeyword'));
});
