﻿(function() {
    Debug = function(isDebug) {
        Debug.isDebug = isDebug;
    };
    Debug.isDebug = true;
    Debug._shouldDebug = function() {
        return Debug.isDebug && window.console != undefined;
    };

    Debug.debug = function(text) {
        if (!Debug._shouldDebug())
            return;


        if (console.debug)
            console.debug(text);
        else if (console.log)
            console.log(text);
        else if (window.debugService) {

            window.debugService.trace(text);
        }
    };
    Debug.warn = function(text) {
        if (!Debug._shouldDebug())
            return;
        if (!console)
            Debug.debug(text);
        else
            console.warn(text);
    };
    Debug.error = function(text) {
        if (!Debug._shouldDebug())
            return;

        if (console.error)
            console.error(text);
        else
            Debug.debug(text);

    };
    Debug.dir = function(toDir) {
        if (!Debug._shouldDebug())
            return;

        if (typeof(debugService) != "undefined") {
            debugService.inspect("Insp. gadget", toDir);
        } else if (console.dir) {

            console.dir(toDir);
        } else {
            Debug.warn("No console dir available:");
            Debug.debug(toDir);
        }
    };
    Debug.trace = function() {
        if (!Debug._shouldDebug())
            return;

        if (!console.trace)
            Debug.warn("Couldn't trace");
        else
            console.trace();
    }


} ());
