onerror=handleErr;

function handleErr(msg,url,l)
{
    var adr = document.location.href;
    var redir1 = "?no_js=1";
    var redir2 = "&no_js=1";
    //jezeli juz byl przekierowany zglos blad i poddaj sie :/
    if(adr.indexOf(redir1) > 0 || adr.indexOf(redir2) > 0) return false;
    document.location.href = adr + (adr.indexOf("?") > 0 ? redir2 : redir1);
    return true;
}

var ie5  = (document.all && document.getElementById);
var ns6 = (!document.all && document.getElementById);
var opacityFF = new Array();
var opacityIE = new Array();
var opIdx = 0;
var timeInterval = 0;
var timerId = 0;
var loadURLAtFadeOut = "";

function fadeLoop()
{
    var obj = document.getElementById('fade_mask');
    if(opIdx < opacityFF.length) {
        obj.style.visibility = "visible";
        obj.style.width = "100%";
        obj.style.height = "100%";
        if(ie5) obj.style.filter = "alpha(opacity=" + opacityIE[opIdx] + ")";
        if(ns6) obj.style.MozOpacity = opacityFF[opIdx];
        timerId = setTimeout("fadeLoop()", timeInterval);
        opIdx++;
    } else {
        clearTimeout(timerId);
        var op = opacityIE[opacityIE.length - 1];
        if(op <= 1) {
            obj.style.visibility = "hidden";
            obj.style.width = "0px";
            obj.style.height = "0px";
        }
        if(loadURLAtFadeOut.length > 0) 
            document.location.href = loadURLAtFadeOut;
        loadURLAtFadeOut = "";
    }
}

function fadeOut(steps) 
{
    fade(0, 100, steps);
}

function fadeOut(steps, url) 
{
    loadURLAtFadeOut = url;
    fade(0, 100, steps);
}

function fadeIn(steps) 
{
    fade(100, 0, steps);
}

function fade(_from, _to, steps) 
{
    if(!ns6 && !ie5) throw "browser not supported!";
    if(steps <= 0) return "insane params!";
    timeInterval = 50;
    opIdx = 0;
    opacityIE = new Array();
    opacityFF = new Array();
    for(var i = 0; i <= steps; ++i) {
        op = Math.floor(_from * ((steps - i) / steps) + _to * (i / steps));
        opacityIE[i] = Math.round(op, 0);
        opacityFF[i] = parseFloat(op) / 100.0;
    }
    timerId = setTimeout("fadeLoop()", timeInterval);
}
