// 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);
  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();
  
  return referrerString;
}