var LogDomain = 'http://log.cnsb.tv';

if (WebsiteID == 1)
{
    document.write("<script type='text/javascript' src='" + MainDomain + "/Public/SessionGet.asp?SessionName=admin'></script>");
    document.write("<script type='text/javascript' src='" + MainDomain + "/Public/SessionGet.asp?SessionName=company_id'></script>");
}

var m_Param = "";

function LogWrite()
{
    var m_User = "";
    var m_CompanyID = "";
    if (WebsiteID == 1)
    {
         m_User = admin;
         m_CompanyID = company_id;
    }
    
    var m_PageArray = document.location.href.split("?");

    var m_Page = m_PageArray[0];

    if (m_PageArray.length > 1)
    {
        if (m_Param.length > 0)
        {
            m_Param = m_Param + "&"
        }
        m_Param = m_Param + m_PageArray[1];
    }

    var m_Source = document.referrer;
    
    var m_Url = LogDomain + "/Log.ashx?WebsiteID=" + WebsiteID + "&Page=" + m_Page;
    if (m_User.length > 0)
    {
        m_Url = m_Url + "&User=" + escape(m_User);
    }
    if (m_CompanyID.length > 0)
    {
        m_Url = m_Url + "&CompanyID=" + m_CompanyID;
    }
    if (m_Param.length > 0)
    {
        m_Url = m_Url + "&Param=" + escape(m_Param);
    }
    m_Url = m_Url + "&Source=" + escape(m_Source);

    var m_Script = document.createElement('SCRIPT');
    m_Script.src = m_Url;
    document.body.appendChild(m_Script);
}

Crab = {};
Crab.util = {};
Crab.evn = {};

(function(){
    Crab.evn.navType = null;
    if(navigator.userAgent.indexOf("MSIE") > 0){
         Crab.evn.navType = "MSIE";
    }
    if(isFirefox = navigator.userAgent.indexOf("Firefox") > 0){
         Crab.evn.navType = "Firefox";
    }
    if(isSafari = navigator.userAgent.indexOf("Safari") > 0){
         Crab.evn.navType = "Safari";
    }
    if(isCamino = navigator.userAgent.indexOf("Camino") > 0){
         Crab.evn.navType = "Camino";
    }
    if(isMozilla = navigator.userAgent.indexOf("Gecko") > 0){
         Crab.evn.navType = "Gecko";
    }
})();

(function(){
    Crab.util.Event = function(obj, name){
        this.name = name;
        this.obj = obj;
        this.listeners = [];
    };

    Crab.util.Event.prototype = {
        addListener : function(fn){
            if(!this.isListening(fn)){
                var l = this.createListener(fn);
                if(!this.firing){
                    this.listeners.push(l);
                }else{ // if we are currently firing this event, don't disturb the listener loop
                    this.listeners = this.listeners.slice(0);
                    this.listeners.push(l);
                }
            }
        },

        createListener : function(fn){
            var l = {
                fn:fn,
                fireFn:fn
            };
            return l;
        },

        findListener : function(fn){
            var ls = this.listeners;
            for(var i = 0, len = ls.length; i < len; i++){
                var l = ls[i];
                if(l.fn == fn){
                    return i;
                }
            }
            return -1;
        },

        isListening : function(fn){
            return this.findListener(fn) != -1;
        },

        clearListeners : function(){
            this.listeners = [];
        },

        fire : function(){
            var ls = this.listeners, len = ls.length;
            if(len > 0){
                this.firing = true;
                var args = Array.prototype.slice.call(arguments, 0);
                for(var i = 0; i < len; i++){
                    var l = ls[i];
                    if(l.fireFn.apply(window, arguments) === false){
                        this.firing = false;
                        return false;
                    }
                }
                this.firing = false;
            }
            return true;
        }
    };
})();
  
Crab.EventManager = function(){
    var docReadyEvent, docReadyProcId, docReadyState = false;

    var fireDocReady = function(){
        if(!docReadyState){
            docReadyState = true;
   
            switch(Crab.evn.navType){
                case 'MSIE':
                    var defer = document.getElementById("ie-deferred-loader");
                    if(defer){
                        defer.onreadystatechange = null;
                        defer.parentNode.removeChild(defer);
                    }
                    break;
                case 'Firefox':
                case 'Safari':
                case 'Camino':
                case 'Gecko':
                    document.removeEventListener("DOMContentLoaded", fireDocReady, false);
                    break;
                default:
                    break;
            }
   
            if(docReadyEvent){
                docReadyEvent.fire();
                docReadyEvent.clearListeners();
            }
        }
    };

    var initDocReady = function(){
        docReadyEvent = new Crab.util.Event();
  
        switch(Crab.evn.navType){
            case 'MSIE':
                document.write("<s"+'cript id="ie-deferred-loader" defer="defer" src="/'+'/:"></s'+"cript>");
                var defer = document.getElementById("ie-deferred-loader");
                defer.onreadystatechange = function(){
                    if(this.readyState == "complete"){
                        fireDocReady();
                    }
                };
                break;
            case 'Firefox':
            case 'Safari':
            case 'Camino':
            case 'Gecko':
                document.addEventListener("DOMContentLoaded", fireDocReady, false);
                break;
            default:
                break;
        }
    };

    var pub = {
        onDocumentReady : function(fn){
            if(docReadyState){ // if it already fired
                docReadyEvent.addListener(fn, scope, options);
                docReadyEvent.fire();
                docReadyEvent.clearListeners();
                return;
            }
            if(!docReadyEvent){
                initDocReady();
            }
            docReadyEvent.addListener(fn);
        }
    }

    return pub;
}();

Crab.onReady = Crab.EventManager.onDocumentReady;

Crab.onReady(LogWrite);