/*
Nitidum Helper!
www.nitidum.com
*/

var bby=false,__w = window, __d = document, __n = __d.nitidum,
dc = "document.", ni = dc+"nitidum.", lc = dc + "location.",
sc = "screen.", nv = "navigator.", tc=400;
__n.cx = __n.cy = 0;
__n.ds=new Date().getTime();

function qry(a){
    var e = function(s, u) {
        return (typeof(encodeURIComponent) == 'function') ?
        (u ? encodeURI(s) : encodeURIComponent(s)) : escape(s);
    };
    var q = "";
    a.phit=ni +"pid";
    a.cache="Math.floor(1000 * Math.random())";
    for (var i in a) {
        var r = get(a[i]), t=typeof(r);
        r = r?typeof(r)=="object"?r.toString():r:"";
        t = t=="number"?r==parseInt(r)?"int":"float":t=="boolean"?"bool":t;
        r = (t=="int" || t=="float")&& r=="" ? 0:r;
        q += i+":"+t+"="+e(r == "null"?"":r)+"&" ; 
    }
    return q;
}

function statTracker() {
    (new Image).src = "/sts?"+qry({
        dl: dc + "location.toString()", sw: sc + "width",
        sh: sc + "height", scd: sc + "colorDepth",
        dw: dc + "width", dh: dc + "height",
        je: nv + "javaEnabled", nlang: nv + "language",
        dcharset: Array(dc + "characterSet", dc + "charset"),
        referrer: dc + "referrer", flash: "_uFlash", 
        cookies_enabled: nv + "cookieEnabled"
    });
}

function _uFlash() {
    var f = "-",
    n = navigator;
    if (n.plugins && n.plugins.length) {
        for (var ii = 0; ii < n.plugins.length; ii++) {
            if (n.plugins[ii].name.indexOf('Shockwave Flash') != -1) {
                f = n.plugins[ii].description.split('Shockwave Flash ')[1];
                break;
            }
        }
    } else if (window.ActiveXObject) {
        for (var ii = 10; ii >= 2; ii--) {
            try {
                var fl = eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash." + ii + "');");
                if (fl) {
                    f = ii + '.0';
                    break;
                }
            } catch(e) {}
        }
    }
    return f;
}

function rv(arg) {
    for (var i in arg) {
        var r = eval(arg[i]);
        if (r != null) return r;
    }
    return "";
}

function get(arg) {
    var r = "-";
    try {
        r = typeof(arg) == "string" ? eval(arg) : rv(arg);
        return typeof(r) == "function" ? eval(arg + "()") : r;
    }
    catch(err) {
        return null
    };
}

function getElementsByClassName(className) {
    t_hag = __d.getElementsByTagName;
    var all = __d.all ? __d.all:t_hag('*');
    var elements = new Array();
    for (var e = 0; e < all.length; e++)
    if (all[e].className.indexOf(className) >= 0)
    elements[elements.length] = all[e];
    return elements;
}


function f_clientWidth() {
    return f_filterResults(
    __w.innerWidth ? __w.innerWidth: 0,
    __d.documentElement ? __d.documentElement.clientWidth: 0,
    __d.body ? __d.body.clientWidth: 0
    );
}

function f_clientHeight() {
    return f_filterResults(
    __w.innerHeight ? __w.innerHeight: 0,
    __d.documentElement ? __d.documentElement.clientHeight: 0,
    __d.body ? __d.body.clientHeight: 0
    );
}

function f_scrollLeft() {
    return f_filterResults(
    __w.pageXOffset ? __w.pageXOffset: 0,
    __d.documentElement ? document.documentElement.scrollLeft: 0,
    __d.body ? __d.body.scrollLeft: 0
    );
}

function f_scrollTop() {
    return f_filterResults(
    __w.pageYOffset ? __w.pageYOffset: 0,
    __d.documentElement ? __d.documentElement.scrollTop: 0,
    __d.body ? __d.body.scrollTop: 0
    );
}

function f_filterResults(n_win, n_docel, n_body) {
    var n_result = n_win ? n_win: 0;
    if (n_docel && (!n_result || (n_result > n_docel)))
    n_result = n_docel;
    return n_body && (!n_result || (n_result > n_body)) ? n_body: n_result;
}

function dh() {
    return __d.all?__d.body.offsetHeight:__d.layers?__d.body.document.height:__d.height;
}

function dw() {
    return __d.all?__d.body.offsetWidth:__d.layers?__d.body.document.width:__d.width;
}

function f_scrollHeightStat() {
    return parseInt(((f_scrollTop() + f_clientHeight())*100)/dh());
}

function f_scrollWidthStat() {
    return parseInt(((f_scrollLeft() + f_clientWidth())*100)/dw());
}

timercallback = function(){
    cx = __n.tx;cx1 = f_scrollWidthStat();__n.cx = cx1;__n.tx = cx > cx1 ? cx : cx1;
    cy = __n.ty;cy1 = f_scrollHeightStat();__n.cy = cy1;__n.ty = cy > cy1 ? cy : cy1;
    
}
__n.tid=__w.setInterval("timercallback();", tc);

formFocus = function()
{
    var forms = document.forms || [];
    for (var i = 0; i < forms.length; i++) {
        for (var j = 0; j < forms[i].length; j++) {
            if ((forms[i][j].type == "text" || forms[i][j].type == "submit" || 
                forms[i][j].type == "select") && !forms[i][j].disabled && 
                    forms[i][j].style.display != 'none') {
                forms[i][j].focus();
                return;
            }
        }
    }
}


/*
var fontSize = 100;

var incFont = function() {
    fontSize += 5;
    resizeFont();
}

var decFont = function() {
    fontSize -= 5;
    resizeFont();
}

var resizeFont = function() {
    __d.body.style.fontSize = fontSize + '%';
}
*/

listen = function(eventname, elem, func) {
    if (elem.addEventListener)
        elem.addEventListener(eventname, func, false);// W3C DOM
    else if (elem.attachEvent) {
        var r = elem.attachEvent("on" + eventname, func); // IE DOM
        return r;
    }
    else throw 'No es posible añadir evento';
}

listen("load",window, function() {
    //resizeFont();
    statTracker();
    //formFocus();
    
    n = __d.getElementById("nitidum_text_controls");
    if (n)
        n.style.visibility = "";

    try {
        uld = function() {
            if (bby) return;
            bby = true;
            var w;
            clearInterval(__n.tid);
            if (__w.XMLHttpRequest) {
                // Mozilla, Safari, ...
                w = new XMLHttpRequest();

            } else if (__w.ActiveXObject) {
                // IE
                try {
                    w = new ActiveXObject("Msxml2.XMLHTTP");

                }
                catch(e) {
                    try {
                        w = new ActiveXObject("Microsoft.XMLHTTP");

                    }
                    catch(f) {
                        error(f);
                        w = null;
                    }
                }
            }
            w.open("POST", "/bby", false);
            w.setRequestHeader("Content-Type", 
                "application/x-www-form-urlencoded");
            w.send(qry({tx:ni+"tx",ty:ni+"ty", cx:ni+"cx",cy:ni+"cy",
                et:"(new Date().getTime()-"+ni+"ds)/1000"}));
        }

        var items = document.getElementsByTagName("a");
        for (var i=0; i< items.length; i++)
            listen("mousedown", items[i], clk);
        
        _b = __d.body;
        listen("beforeunload", _b, uld);
        listen("beforeunload", __w, uld);
        listen("beforeunload", __d, uld);
        listen("unload", _b, uld);
        listen("unload", __w, uld);
        listen("unload", __d, uld);
    } catch(e) {
        alert(e)
    };
} );

clk = function(e) {
    if (!e) var e = window.event;
    var el = e.target || e.srcElement;
    k = "href";
    __n.lastUrl = el.getAttribute(k,2)?
        el.getAttribute(k,2):el.parentNode.getAttribute(k,2);
    if (__d.images)
        (new Image).src = "/clk?"+qry({url:ni+"lastUrl",cx:ni+"cx",cy:ni+"cy",
            et:"(new Date().getTime()-"+ni+"ds)/1000"});
    return true
};

