/**
 * wrapper around console to prevent leaving debug-messages 
 * lying around on the production server
 *
 * set fb = false to turn off all error-reporting
 *
 * usage:
 *
 * debug().time('accordion').log( numViews ).warn('oops!').dir( views ).timeEnd('accordion');
 *
 */
( function() {
    var Debugger = function() {			
        var methods = [	
            "log",
            "debug",
            "info",
            "warn",
            "error",
            "time",
            "timeEnd",
            "profile",
            "profileEnd",
            "group",
            "groupEnd",
            "groupCollapsed",
            "trace",
            "dir",
            "dirxml",
            "assert",
            "count",
            "clear"
        ];
                    
        var fb = ( window.console && window.console.firebug );        
        var l = methods.length;        
        var wc = window.console || {};        
        var d = this;
        
        var create = function( m, f ) {
            d[m] = function() {
                var a = Array.prototype.slice.call( arguments );                                    
                f.apply( d, a );                
                return d;
            };
        };
        
        for( var i = 0; i < l; i++) {
            var m = methods[i];            
            if ( fb ) {
                create( m, wc[m] );                
            } else {            
                create( m, function() {} );	
            }
        }			
    };
    
    window.debug = function() {			
        return new Debugger();
    };
} )();
