var $jQ = jQuery.noConflict();



$jQ(document).ready(function(){



   //-----

   //------------- CHANGE THESE!!! --------------------

   //-----



      // Change this to match domains of referrers you want to ignore.

      // You'll want to ignore referrers from your own domains.

      // Use only the base domain name without subdomains (ex. "company.com")

      // Separate multiple domains with commas (leave the brackets).

  var excludedReferrers = [ "intacct.com" ];



      // Change this to match the base domain of your company's landing pages.

      // Cookies will be created with this domain.

      // Ex. If your landing page domain is "pages.yourcompany.com" then use

      //     "yourcompany.com"

  var cookieDomain = "intacct.com";



      // The URL parameter that has your pay-per-click info.

      // Typically "kw" or "keyword" (depends on how you set up your PPC URLs)

  var payPerClickParameter = "keyword";



   //-----

   //----- you probably shouldn't change anything after this -----

   //-----





  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 a:

         //    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 = $jQ.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 = $jQ.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 =

        $jQ.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.

      $jQ.cookie('mktoPPCKeyword', payPerClickWord,

                  {expires: 730, path: '\/', domain: cookieDomain});

      $jQ.cookie('mktoSearchEngine', searchEngine,

                  {expires: 730, path: '\/', domain: cookieDomain});

      $jQ.cookie('mktoSearchString', searchString,

                  {expires: 730, path: '\/', domain: cookieDomain});

    }

  }

});
