function at_futureDate(nHours)
{
    var expire = null;
    if (nHours==null || nHours==0)
    {
        expire = null;
    }
    else
    {
        var today = new Date();
        var expire = new Date();
        expire.setTime(today.getTime() + 3600000*nHours);
    }
    return expire;
}

function at_setCookie(name, value, path, domain, secure, nHours)
{
  var expires = at_futureDate(nHours);
  var curCookie = name + "=" + escape(value) +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((expires) ? "; expires="+ expires : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}

function at_getCookie(name)
{
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else {
    begin += 2;
  }
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
  {
    end = dc.length;
  }
  return unescape(dc.substring(begin + prefix.length, end));
}

function at_report( https, params )
{
    if( window.trkref )
    {
        params += "&trkref="+ escape( window.trkref );
    }
    var protocol = (https ? "https" : "http");
    document.write( "<img src=\""+ protocol +":\/\/activetracker.activehotels.com/activetracker/tracker/"+ Math.random() + params +"\"></img>" );
}

function isHttps()
{
    var rx = /(http[s]?)/
    var res = rx.exec( document.URL )
    if( res == null || res[1] == "http" )
    {
        return false;
    }
    else
    {
        return true;
    }
}

function reportError( http_status, message )
{
    var params = "?error="+ http_status +"&msg="+ escape( message ) +"&referrer="+ escape(document.referrer) +"&url="+ escape( document.URL ) +"&useragent="+ escape(navigator.userAgent);
    at_report( isHttps(), params );
}

function reportWarning( message )
{
    var params = "?error=200&msg="+ escape( message ) +"&referrer="+ escape(document.referrer) +"&url="+ escape( document.URL ) +"&useragent="+ escape(navigator.userAgent);
    at_report( isHttps(), params );
}

function reportDeadSuspended( hotelid )
{
    reportWarning( "dead_suspended:"+ hotelid );
}

function at_reportVisitsAndTransaction( trkref, subid )
{
    // this @httpAndDomain is old and broken
    document.write( "<img src=\"@httpAndDomain@/activetracker/tracker/"+ Math.random() +"?visits="+ escape( getCookie( "ATVisits" ) ) +"&trkref="+ escape( trkref ) +"&subid="+ escape( subid ) +"\"></img>" );
}

/*
function at_trackVisit()
{
    var now = new Date();
    var visits = at_getCookie("ATVisits");
    if( visits != null )
    {
        ar = visits.split("+");
        if( ar.length > 14 ) ar = ar.splice( 0, 14 );
        visits = ar.join("+");
    }
    setCookie( "ATVisits", now.getTime() + ((visits) ? ("+"+ visits) : ""), "/", document.domain, false, 24*365 );
}
*/

// if global trkref is set then add it as a parameter to overide any derived trkref in url or from domain
function at_trackSession( https )
{
    var params = "?referrer="+ escape(document.referrer) +"&url="+ escape( document.URL ) +"&useragent="+ escape(navigator.userAgent);
    at_report( isHttps(), params );
}

var rx = /http[s]?:\/\/([^:|^\/]+)/
var res = rx.exec( document.referrer )
if( res == null || res[1] != document.domain )
{
    if( at_getCookie( "ActTrk" ) == null )
    {
        at_trackSession();
    }
    //at_trackVisit();
}
at_setCookie( "ActTrk", "tracked", "/", document.domain, false, 3 );

