// JavaScript Document
function GetSearchTerms()
{  
  var referrer = GetReferringPage();
  if (!referrer) {
    return false;
  }
  
  var dashLoc = referrer.indexOf('.'); 
  var dashLoc2;
  var front;                                                    
  var rest;
  var engine;
  var len = referrer.length;
  if (dashLoc > 0){
	front = referrer.substr(0, dashLoc);
	rest = referrer.substr(dashLoc + 1, len);
	dashLoc2 = rest.indexOf('.');
	if (dashLoc2 > 0){
		engine = rest.substr(0, dashLoc2);
	}
  }
  
  var queryPrefix = DeterminPreFix(referrer);
  //alert("referrer is: " + referrer + "\nqueryPrefix is: " + queryPrefix);
  if (!queryPrefix)
  {
  	return false;
  }
  
  var startPos = referrer.toLowerCase().indexOf(queryPrefix);
  if ((startPos < 0) || (startPos + queryPrefix.length == referrer.length)) {
    return false;
  }
  
  var endPos = referrer.indexOf("&", startPos);
  if (endPos < 0) {
    endPos = referrer.length;
  }
  
  var queryString = referrer.substring(startPos + queryPrefix.length, endPos);

  queryString = queryString.replace(/(%22)(.*?)(%22)/gi, function(x,y,z) {return z.replace(/\+/gi," ")});
  queryString = queryString.replace(/(\")(.*?)(\")/gi, function(x,y,z) {return z.replace(/\+/gi," ")});
  
  queryString = queryString.replace(/%20/gi, ", ");
  queryString = queryString.replace(/\+/gi, ", ");

  queryString = queryString.replace(/%22/gi, "");
  queryString = queryString.replace(/\"/gi, "");
  
  queryString = queryString.replace(/%28/gi, "");
  queryString = queryString.replace(/\(/gi, "");
  
  queryString = queryString.replace(/%29/gi, "");
  queryString = queryString.replace(/\)/gi, "");
  
  return engine + ":" + queryString;
}

function DeterminPreFix(referrerString)
{
      
  if (!referrerString) {
  	return false;
  }
  // used by google, Live (msn), Ask (google), altavista (yahoo), iwon (google)
  else if (referrerString.indexOf("q=") >= 0) 
  {
  	return "q=";
  }
  // used by yahoo,
  else if (referrerString.indexOf("p=") >= 0) 
  {
  	return "p=";
  }
  // used by AOL (google), Netscape (google), Lycos (google)
  else if (referrerString.indexOf("query=") >= 0) 
  {
  	return "query=";
  }
  // dmoz (google)
  else if (referrerString.indexOf("search=") >= 0) 
  {
  	return "search=";
  }
  else
  {
  	return false;
  }
}


function DeterminReferringDomain()
{
  var referrerString = GetReferringPage();

  if (!referrerString) {
    return false;
  }
  
  var strSplit = referrerString.split("/");
  
  if (strSplit[2].length == 0) 
  {
  	return "Unknown";
  }
  else
  {
  	return strSplit[2];
  }
  
}

function GetReferringPage()
{
  var referrerString = document.referrer.toLowerCase();

  // Test Values:
  //var referrerString = "http://www.google.com/search?q=javascript%20highlight&start=0";
  //var referrerString = "http://www.google.com/search?num=100&hl=en&q=javascript+replace+%22this+is+a+test%22+hello&btnG=Search";
  //var referrerString = "http://www.google.com/search?num=100&hl=en&q=%22This+is+a+test%22+something+else+%22Hi+how+are+you%22+Comcast";
  //var referrerString = "http://www.google.com/search?num=100&hl=en&q=\"This+is+a+test\"+something+else+%22Hi+how+are+you%22+Comcast";
  //var referrerString = "http://www.google.com/search?num=100&hl=en&q=%28%22This+is+a+test%22+OR+%22Hello%22%29+something+else+%22Hi+how+are+you%22+Comcast&btnG=Search"
  //var referrerString = "http://search.yahoo.com/search?p=This+is+a+test+%22Hello+People%22&fr=yfp-t-501&toggle=1&cop=mss&ei=UTF-8"
  //var referrerString = "http://www.google.com/search?num=100&hl=en&q=comcast+internet";
  
  return referrerString;
}