 /*!
* Loggr JavaScript Library v1
* http://api.loggr.net/1/loggr.js
*
* Copyright 2011, Dave Weaver
* http://loggr.net
*
* Minified (aggressive)
* http://fmarcia.info/jsmin/test.html
*/

Loggr = {};
Loggr.logFactory = function() {
    this.get = function(logKey) {
        return new Loggr.log(logKey);
    };
};
Loggr.eventFactory = function(log) {
    this.log = log;
    var base = this;
    this.link= "" + Math.floor(Math.random()*10000000);
    
    
    this._writeSessionCookie = function (cookieName, cookieValue) {
    document.cookie = escape(cookieName) + "=" + escape(cookieValue) + "; path=/";
  
};

this._writeSessionCookie('link', this.link);
    
    
    
    this._getCookie = function(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
    {
    return unescape(y);
    }
  }
};
    
    this.createEvent = function() {
    	var e = new Loggr.fluentEvent(base.log);
    	var u = this._getCookie('PHPSESSID');
    	if (typeof u === "undefined") {
    		u = '';
    	}
        return e.user(u).link(this.link).source(window.location.pathname + '' + window.location.search);
    };
};
Loggr.logs = new Loggr.logFactory();
Loggr.log = function(logKey) {
    this.logKey = logKey;
    this.events = new Loggr.eventFactory(this);
};
Loggr.fluentEvent = function(log) {
    this.event = new Loggr.event();
    this.log = log;
    this.clear = function() {
        this.event = new Loggr.event();
        return this;
    };
    this.post = function() {
        var qs = "";
        if (this.event.text != null)
            qs += "text=" + encodeURIComponent(this.event.text);
        if (this.event.link != null)
            qs += "&link=" + encodeURIComponent(this.event.link);
        if (this.event.source != null)
            qs += "&source=" + encodeURIComponent(this.event.source);
        if (this.event.user != null)
            qs += "&user=" + encodeURIComponent(this.event.user);
        if (this.event.tags != null)
            qs += "&tags=" + encodeURIComponent(this.event.tags.join(" "));
        if (this.event.value != null)
            qs += "&value=" + encodeURIComponent(this.event.value);
        var dataType = "";
        if (this.event.dataType == Loggr.dataType.html)
            dataType = "@html\r\n";
        if (this.event.data != null)
            qs += "&data=" + dataType + encodeURIComponent(this.event.data);
        if (this.event.geo != null)
            qs += "&geo=" + encodeURIComponent(this.event.geo);
        Loggr.jsonp.fetch("http://cloudtail.arriba.no/l.php?" + qs + "&fmt=jsonp&logkey=" + this.log.logKey + "&callback=?", function(data) {
        });
        return this;
    };
    this.text = function(text) {
        var formatted = text.replace("$$", this.event.text);
        for (var i = 1; i < arguments.length; i++)
            formatted = formatted.replace("{" + (i - 1) + "}", arguments[i]);
        this.event.text = formatted;
        return this;
    };
    this.addText = function(text) {
        var formatted = text.replace("$$", this.event.text);
        for (var i = 1; i < arguments.length; i++)
            formatted = formatted.replace("{" + (i - 1) + "}", arguments[i]);
        this.event.text += formatted;
        return this;
    };
    this.link = function(link) {
        var formatted = link.replace("$$", this.event.link);
        for (var i = 1; i < arguments.length; i++)
            formatted = formatted.replace("{" + (i - 1) + "}", arguments[i]);
        this.event.link = formatted;
        return this;
    };
    this.source = function(source) {
        var formatted = source.replace("$$", this.event.source);
        for (var i = 1; i < arguments.length; i++)
            formatted = formatted.replace("{" + (i - 1) + "}", arguments[i]);
        this.event.source = formatted;
        return this;
    };
    this.user = function(user) {
        var formatted = user.replace("$$", this.event.user);
        for (var i = 1; i < arguments.length; i++)
            formatted = formatted.replace("{" + (i - 1) + "}", arguments[i]);
        this.event.user = formatted;
        return this;
    };
    this.tags = function(tags) {
        var newTags = new Array();
        for (var i = 0; i < arguments.length; i++) {
            var arg = arguments[i];
            if (arg.constructor.toString().indexOf("Array") != -1) {
                for (var j = 0; j < tags.length; j++)
                    this._addRange(newTags, this._tokenizeAndFormatTags(tags[j]));
            } else {
                this._addRange(newTags, this._tokenizeAndFormatTags(arg));
            }
        }
        this.event.tags = newTags;
        return this;
    };
    this.addTags = function(tags) {
        var newTags = new Array();
        for (var i = 0; i < arguments.length; i++) {
            var arg = arguments[i];
            if (arg.constructor.toString().indexOf("Array") != -1) {
                for (var j = 0; j < tags.length; j++)
                    this._addRange(newTags, this._tokenizeAndFormatTags(tags[j]));
            } else {
                this._addRange(newTags, this._tokenizeAndFormatTags(arg));
            }
        }
        this._addRange(this.event.tags, newTags);
        return this;
    };
    this.value = function(value) {
        this.event.value = value;
        return this;
    };
    this.valueClear = function() {
        this.event.value = null;
        return this;
    };
    this.data = function(data) {
        var formatted = data.replace("$$", this.event.data);
        for (var i = 1; i < arguments.length; i++)
            formatted = formatted.replace("{" + (i - 1) + "}", arguments[i]);
        this.event.data = formatted;
        return this;
    };
    this.addData = function(data) {
        var formatted = data.replace("$$", this.event.data);
        for (var i = 1; i < arguments.length; i++)
            formatted = formatted.replace("{" + (i - 1) + "}", arguments[i]);
        this.event.data += formatted;
        return this;
    };
    this.dataType = function(dataType) {
        this.event.dataType = dataType;
        return this;
    };
    this.geo = function(arg1, arg2) {
        if (arguments.length > 1) {
            this.event.geo = "" + arg1 + "," + arg2;
        } else {
            this.event.geo = arg1
        }
        return this;
    };
    this._addRange = function(toArray, fromArray) {
        for (var j = 0; j < fromArray.length; j++) {
            toArray.push(fromArray[j]);
        }
    };
    this._tokenizeAndFormatTags = function(tags) {
        var results = new Array();
        var tokens = tags.split(" ");
        for (var i = 0; i < tokens.length; i++) {
            var token = tokens[i].replace(" ", "");
            var regexp = new RegExp('[^a-zA-Z0-9\\-]', 'gi');
            token = token.replace(regexp, "");
            if (token.length > 0)
                results.push(token);
        }
        return results;
    };
};
Loggr.dataType = {"html": 0,"plaintext": 1};
Loggr.event = function() {
    this.text = null;
    this.link = null;
    this.source = null;
    this.user = null;
    this.tags = null;
    this.value = null;
    this.data = null;
    this.dataType = Loggr.dataType.plaintext;
    this.geo = null;
};
Loggr.jsonp = {callbackCounter: 0,fetch: function(url, callback) {
        var fn = 'JSONPCallback_' + this.callbackCounter++;
        window[fn] = this.evalJSONP(callback);
        url = url.replace('=?', '=' + fn);
        var scriptTag = document.createElement('SCRIPT');
        scriptTag.src = url;
        document.getElementsByTagName('HEAD')[0].appendChild(scriptTag);
    },evalJSONP: function(callback) {
        var base = this;
        return function(data) {
            if (data) {
                for (var i = 0; i < data.length; i++) {
                    if (data[i].created) {
                        data[i].created = base.parseDate(data[i].created);
                    }
                }
            }
            callback(data);
        }
    },parseDate: function(dt) {
        var match = dt.match(/^\/Date\((\S+)\)\/$/);
        return new Date(parseInt(match[1]));
    }};
Loggr.Log = Loggr.logs.get('resetaqumy');

Loggr.Log.events.createEvent().text("Page loaded").tags('javascript').post();

