try {
    window.loadFirebugConsole();
} catch (e) {}

//Create logger wrapper
var Logger = new Class();

Logger._useLite = false;
Logger._enabled = (typeof(console) != 'undefined');
Logger._loadCnt = 0;

Logger.trace = function() {};
Logger.warn = function() {};
Logger.error = function() {};

Logger.loadFirebugLite = function() {
    $$('head').adopt(
        new Element('script', {src: 'http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js', type: 'text/javascript'})
    );
    Logger._initFbLite.delay(500);
}

Logger._initFbLite = function() {
    if (typeof(firebug) == 'undefined') {
        if (Logger._loadCnt == 5) {
            alert('Firebug Lite could not be initialized');
        }else{
            Logger._loadCnt++;
            Logger._initFbLite.delay(500);
        }
        return;
    }
    
    $('_btn_lfb').destroy();
    firebug.init();
    
    Logger._useLite = true;
    Logger._enabled = (typeof(firebug) != 'undefined' && typeof(firebug.d.console) != 'undefined');
    
    if (Logger._enabled) {
        if (typeof(firebug.d.console.log) == 'function') {
            Logger.trace = firebug.d.console.log;
            Logger.warn = firebug.d.console.warn;
            Logger.error = firebug.d.console.error;
        }else{
            Logger.trace = console.log;
            Logger.warn = console.warn;
            Logger.error = console.error;
        }
    }
}

//Try to find console, load Firebug Lite if not found or in Webkit browsers
if (!Logger._enabled || Browser.Engine.webkit) {
    Logger._enabled = false;
    Logger._useLite = true;
}

//Add Firebug Lite button
window.addEvent('domready', function() {
    if (DEBUG) {
        if (Logger._useLite) {
            $$('body').adopt(
                new Element('img', {id: '_btn_lfb', src: 'http://getfirebug.com/images/firebug3.jpg', title: 'Enable FireBug Lite', alt: 'Enable FireBug Lite'})
                .setStyles({
                    position:   'absolute',
                    top:        '1px',
                    right:      '1px',
                    cursor:     'pointer',
                    opacity:    .4,
                    'z-index':  99999
                })
                .addEvent('click', Logger.loadFirebugLite)
            );
        }else{
            Logger.trace = console.log;
            Logger.warn = console.warn;
            Logger.error = console.error;
        }

        $$('body').adopt(
            new Element('img', {id: '_btn_lfb', src: 'http://www.w3.org/Icons/valid-xhtml10-blue', width: 50, height: 18, title: 'Validate XHTML', alt: 'Validate XHTML'})
            .setStyles({
                position:   'absolute',
                top:        '1px',
                left:       '1px',
                cursor:     'pointer',
                opacity:    .4,
                'z-index':  99999
            })
            .addEvent('click', function() { window.open('http://validator.w3.org/check?uri=referer'); })
        );
        
        if (document.cookie.match(/X-FirePHP-Missing/)) Logger.warn('FirePHP is missing or disabled! To enable easy logging, please download from http://www.firephp.org/.');
    }

});
