﻿var xmlHttp;
var website = document.location.hostname.replace("http://", "").replace("www.", "");
var g_debug_mode = false;
var attempts = 0;
/*
var RoasLogger = function() {
}
RoasLogger.prototype =
{
    Log: function(message) {
        if (!g_debug_mode) return;
        alert(message);
    }
};
*/

function getTrkGuid() {
    try {
        //don't run twice!
        if (xmlHttp == null) {
            var ref = document.referrer;
            var currurl = escape(document.URL);
            var url = "http://www." + website + "/roas/track.asmx/GetVisitorGuid?currentUrl=" + currurl + "&documentReferrer=" + ref;
            //RoasLogger.prototype.Log("about to run tracking with referrer data: " + ref);
            createXMLObject();
            if (xmlHttp) {
                // RoasLogger.prototype.Log("created xmlhttp object: " + xmlHttp);
                xmlHttp.open("get", url, true);
                xmlHttp.onreadystatechange = sendUserTrk;
                //RoasLogger.prototype.Log("sending req: " + url);
                xmlHttp.send(null);
                attempts++;
                return false;
            }
        }
    }
    catch (e) {
        //RoasLogger.prototype.Log("Could not get tracking guid data. Exception: " + e.toString());
    }

}

function sendUserTrk() {
    if (!xmlHttp) return false;

    if (xmlHttp.readyState == 4) {
        //RoasLogger.prototype.Log("in sendUserTrk()");
        try {
            var xmlDoc = xmlHttp.responseXML;
            if (xmlDoc != null) {
                var responseElement = xmlDoc.getElementsByTagName("string")[0];
                var respText = responseElement.firstChild.nodeValue;
                //RoasLogger.prototype.Log("sent xml request. recd: " + respText);
                setCookie("Three60", respText);
            } //try to resend
            else {
            if( attempts <= 3 )
                getTrkGuid();
            }
        }
        catch (e) {
            
        }
        
    }
}


function createXMLObject() {
    try {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        //RoasLogger.prototype.Log("created Microsoft.XMLHTTP instance");
    }
    catch (e) {
        try {
            xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
            //RoasLogger.prototype.Log("created MSXML2.XMLHTTP instance");
        }
        catch (e) {
            xmlHttp = false;
            //RoasLogger.prototype.Log("failling to XMLHttpRequest");
        }
    }
    if (!xmlHttp && typeof (XMLHttpRequest) != null) {
        try {
            xmlHttp = new XMLHttpRequest();
            //RoasLogger.prototype.Log("created XMLHttpRequest()");
        }
        catch (e) {
            xmlHttp = false;
            //RoasLogger.prototype.Log("in createXMLObject, could not create XMLObject(). Error: " + e.toString())
        }
    }
}

function setCookie(sName, sValue) {
    //prevent the same cookie from being overwritten. 
    if (!cookieExists()) {
        //RoasLogger.prototype.Log("about to set cookie name; " + sName + ";" + sValue);
        document.cookie = sName + "=" + escape(sValue);
        var date = new Date();
        date.setDate(date.getDate() + 1);
        document.cookie += ("; expires=" + date.toUTCString());
        //RoasLogger.prototype.Log("Set cookie: " + document.cookie);
    }
}

function cookieExists() {
    try {
        return document.cookie.split('Three60')[1] != null;
    }
    catch (e) {
        return false; 
    }
}




setTimeout("getTrkGuid()", 2000);


