﻿var PageLogType = {None:0,FullUri:1,PageOnly:2,PageAndQuery:3,DomainOnly:4}

function PurlLogPage(url, logType, completeHandler, completeHandlerState)
{
   try
   {
      if (!window.PurlPageLog)
         window.PurlPageLog = new PurlClientLog(url, logType, completeHandler, completeHandlerState);
      else
      {
         window.PurlPageLog.Url = url;
         window.PurlPageLog.LogType = logType;
         window.PurlPageLog.CompleteHandler = completeHandler;
         window.PurlPageLog.CompleteState = completeHandlerState;
      }
      
      window.PurlPageLog.Send();
   }
   catch (error)
   {
      window.alert("PurlLogPage Exception: " + " " + error.message);
   }
}

function PurlClientLog(url, logType, completeHandler, completeState)
{
   this.Url = url;
   this.LogType = logType;
   this.CompleteHandler = completeHandler;
   this.CompleteState = completeState;
   this.Send = Send;
   
   if (window.XMLHttpRequest)
      this.XmlReq = new XMLHttpRequest();
   else
      this.XmlReq = null;
         
   function Send()
   {
      var logType = this.LogType;
      
      if (this.LogType != null)
         logType = "&LogType="+this.LogType;
      
      this.XmlReq.onreadystatechange = __LogPage_readystatechange;
      this.XmlReq.open("GET","PurlClientPageLog.axd?UriToLog="+this.Url+logType, true);
      this.XmlReq.setRequestHeader("If-Modified-Since", "Tuesday 1 Jan 1980 12:00:00 GMT");
      this.XmlReq.send("");
   }
}

function __LogPage_readystatechange()
{
   try
   {
      if (window.PurlPageLog.XmlReq.readyState == 4)
      {
         if (window.PurlPageLog.CompleteHandler != null)
            window.PurlPageLog.CompleteHandler(window.PurlPageLog);
      }
   }
   catch (error)
   {
      window.alert(error.message);
   }
}
