var fwWaveApp;
var fwCookieDuration = 168;
var fwSite;

function Tracker(site)
{
	//alert("Live");
	Tracker(site, "Live");
}

function Tracker(site, waveApp)
{
  fwWaveApp = waveApp;
  fwSite = site;
  
  if (!navigator.cookieEnabled)
  {
    alert("Please enable cookies");
  }
  else
  {
    var query = document.location.href;
    var track = (query.indexOf("email=") >= 0) || (query.indexOf("&e=") >= 0) || true;

    //alert("query: " + query);
    //alert("track: " + track);

	//Find Firstwave KeyWord in the URL, if any...
	var adKeyWord = (query.indexOf("fwKeyWord=") >= 0);
	if (adKeyWord)
	{
		var queryURL = document.location.search;
		queryURL = queryURL.substring(1, queryURL.length);
		//alert(queryURL);

		var params = queryURL.split('&');
		//alert(params[0]);

		var paramValue = "[NONE]";
		for(var i=0; i < params.length; i++)
		{
			var param = params[i].split("=");
			if (param[0] == "fwKeyWord")
			{
				paramValue = param[1];
				break;
			}
		}
		//alert(paramValue);
		if (paramValue != "[NONE]")
		{
			writeCookie("fwKeyWord", paramValue, 1);
			//alert(readCookie("fwKeyWord"));
		}
	}
	else
	{
		//alert(readCookie("fwKeyWord"));
	}
	

	//return;


    var cookie = track ? query : readCookie("Tracker");
    if (track)
    {
      cookie += "&date=" + new Date().toGMTString();
    }
    writeCookie("Tracker", cookie, fwCookieDuration);
    if ((cookie.indexOf("email=") >= 0) || (cookie.indexOf("&e=") >= 0) || track)
    {
      var ttl = document.title;
      if (document.getElementsByName)
      {
         var metaArray = document.getElementsByName('PageTitle');
         if (metaArray.length > 0)
         {
             ttl = metaArray[0].content;
	     if (ttl == null || ttl == "")
	     {
		ttl = document.title;
	     }
         }
      }
      SendMessage(site, (track ? (document.location.protocol + "//" + document.location.host + document.location.pathname) : document.location.href) + "@@" + ttl + "||" + cookie);
      //SendMessage(site, (track ? (document.location.protocol + "//" + document.location.host + document.location.pathname) : document.location.href) + "@@" + document.title + "||" + cookie);
    }
  }
}


function TrackInWave()
{
	var adKeyWord = readCookie("fwKeyWord")
	if (adKeyWord != "")
	{
		//alert(adKeyWord);
	}
}


function writeCookie(name, value, hours)
{
  if (hours)
  {
    var date = new Date();
    date.setTime(date.getTime() + (hours * 60 * 60 * 1000));
    document.cookie = name + "=" + escape(value) + "; expires=" + date.toGMTString() + "; path=/";
  }
  else
  {
    document.cookie = name + "=" + escape(value) + "; path=/";
  }
}

function readCookie(name)
{
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for (var i = 0; (i < ca.length); i++)
  {
    var c = ca[i];
    while (c.charAt(0) == ' ')
    {
      c = c.substring(1, c.length);
    }
    if (c.indexOf(nameEQ) == 0)
    {
      return (unescape(c.substring(nameEQ.length, c.length)));
    }
  }
  return ("");
}

// Get the value of the cookie with the specified name.
function GetCookie(sName)
{
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0]) 
      return unescape(aCrumb[1]);
  }

  // a cookie with the requested name does not exist
  return "";
}

// Create a cookie with the specified name and value.
// The cookie expires at the end of the 21st century.
function SetCookie(sName, sValue)
{
  date = new Date();
  document.cookie = sName + "=" + escape(sValue) + "; expires=Fri, 31 Dec 2099 23:59:59 GMT;";
}


function SendMessage(site, args)
{
  try
  {
    //alert("SendMessage: " + escape(args));
    var img = new Image(1, 1);
    img.src = "http://" + site + "/WaveTracker/WaveTracker.asmx/Trackit?argument=" + escape(args);
    //alert("SendMessage Done: " + escape(args));
  }
  catch (e)
  {
    alert(e); 
  }
}

function TrackPreFormVisits(site, args)
{
  try
  {
    var img = new Image(1, 1);
    img.src = "http://" + site + "/WaveTracker/WaveTracker.asmx/SetCookieQueryString2?argument=" + escape(args);
  }
  catch (e)
  {
    alert(e); 
  }
}

function GetPageTitle()
{
    var ttl = document.title;
    if (document.getElementsByName)
    {
        var metaArray = document.getElementsByName('PageTitle');
        if (metaArray.length > 0)
        {
            ttl = metaArray[0].content;
            if (ttl == null || ttl == "")
            {
                ttl = document.title;
            }
        }
    }
    return ttl;
}


function fwTrackInWave5(fwPostBackPage, emailAddress, firstName, lastName, companyName)
{
	var result;
	var XmlHttpRequest;
	var url;
	var xmlDOC;
	var fwKeyWord = readCookie("fwKeyWord");
	var server = "http://192.168.1.179/" + fwWaveApp;
	//var server = "http://www.firstwave.com/" + fwWaveApp;


	//alert(fwKeyWord);

	if (fwKeyWord == "") 
	{
		result = "";

	}
	else
	{
		//alert(url);


		url = fwPostBackPage + "?" + server + "/WebServices/marketing.asmx/TrackLeadInWave?fwKeyWord=" + fwKeyWord;
		url = url + "&emailAddress=" + emailAddress + "&firstName=" + firstName + "&lastName=" + lastName + "&companyName=" + companyName;

		//alert(url);

		// code for Mozilla, etc.
		if (window.XMLHttpRequest)
		{
			XmlHttpRequest = new XMLHttpRequest();
			//alert("xmlHTTP Object Created For Firefox");
		}
		// code for IE
		else if (window.ActiveXObject)
		{
			XmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			//alert("xmlHTTP Object Created For IE");
		}

		//XmlHttpRequest = new ActiveXObject("MSXML2.XMLHTTP");
		//alert("xmlHTTP Object Created");

		XmlHttpRequest.open("GET", url, false);
		//alert("xmlHTTP Object Opened");	
		XmlHttpRequest.send(null);
		//alert("xmlHTTP Object Request Sent");

		result = XmlHttpRequest.responseText;
		//alert(result);
		
		var query = result;
		var track = (query.indexOf("email=") >= 0);
		
		var pageURL = document.location.href;
		var queryURL = document.location.search;
		if (queryURL.length == 0)
		{
			query = pageURL + query;
		}
		else
		{
			//remove the ? mark and prefix &...
			query = query.substring(1, query.length);
			query = "&" + query;
			query = pageURL + query;
		}

		if (track)
		{
			var cookie = query + "&date=" + new Date().toGMTString();
			writeCookie("Tracker", cookie, fwCookieDuration);
		}

	}


	return result;
}

function fwTrackInWave(fwPostBackPage, leadDetailXML)
{
	var result;
	var XmlHttpRequest;
	var url;
	var xmlDOC;
	var fwKeyWord = readCookie("fwKeyWord");
	var server = "http://192.168.1.179/" + fwWaveApp;
	//var server = "http://www.firstwave.com/" + fwWaveApp;


	//alert(fwKeyWord);
	
	//WebSite Leads
	if (fwKeyWord == "") 
	{
		fwKeyWord = "WebSite Leads";

	}

    //Get the Page Title and send it over...
    var ttl = GetPageTitle();
    ttl = '<fwPageTitle>' + ttl + '</fwPageTitle>';
    leadDetailXML = leadDetailXML.replace('</leadDetail>', ttl + '</leadDetail>');


	if (fwKeyWord == "") 
	{
		result = "";

	}
	else
	{
		//alert(url);


		url = fwPostBackPage + "?" + server + "/WebServices/marketing.asmx/TrackLeadDetailXMLInWave?fwKeyWord=" + fwKeyWord;
		url = url + "&leadDetailXML=" + leadDetailXML;

		//alert(url);

		// code for Mozilla, etc.
		if (window.XMLHttpRequest)
		{
			XmlHttpRequest = new XMLHttpRequest();
			//alert("xmlHTTP Object Created For Firefox");
		}
		// code for IE
		else if (window.ActiveXObject)
		{
			XmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			//alert("xmlHTTP Object Created For IE");
		}

		//XmlHttpRequest = new ActiveXObject("MSXML2.XMLHTTP");
		//alert("xmlHTTP Object Created");

		XmlHttpRequest.open("GET", url, false);
		//alert("xmlHTTP Object Opened");	
		XmlHttpRequest.send(null);
		//alert("xmlHTTP Object Request Sent");

		result = XmlHttpRequest.responseText;
		//alert(result);
		
		var query = result;
		var track = (query.indexOf("email=") >= 0);
        
		
		var pageURL = document.location.href;
		var queryURL = document.location.search;
		if (queryURL.length == 0)
		{
			query = pageURL + query;
		}
		else
		{
			//remove the ? mark and prefix &...
			query = query.substring(1, query.length);
			query = "&" + query;
			query = pageURL + query;
		}

		if (track)
		{
			var cookie = query + "&date=" + new Date().toGMTString();
			writeCookie("Tracker", cookie, fwCookieDuration);
			TrackPreFormVisits(fwSite, result);
		}

	}


	return result;
}