
/**
 * Namespace iD mit Fehlerbehandlung/ausgabe
 * @param {Object} msg
 */
(function(global){
	global.iD = Class.create({
		/**
		 * in untergeordneten Klassen ein "." (Punkt) fuer Namespacing setzen!
		 * @example - iD.UI.Controls.Menu
		 */
		NAME : "iD",
		
		/**
		 * bool Debugmodus
		 */
		DEBUG: true,
		
		/**
		 * Ausgabe Debugmeldung
		 * @param {Object} msg
		 */
		logDebug: function(msg) {
			if (!!this.DEBUG && typeof console != 'undefined') {
				if (!!console.debug) {
					if (!!this.CALLER) {
						console.debug(this.debug.caller);
					}
					console.debug(" -->\t" + msg);
				}
				else if (!!console.log) {
					if (!!this.CALLER) {
						console.log(this.debug.caller);
					}
					console.log(" -->\t" + msg);	
				}
			}
		},
		
		/**
		 * Ausgabe Exeption
		 * @param {Object} err
		 */
		logError: function(err) {
			if (!!this.DEBUG) {
				if (typeof console != 'undefined' && !!console.error) {
					console.error(err);
				}
				else {
					alert("Error: " + err.description + "\n\r" + err.message + "\n\r" + err.name);
				}
			}
		},
		
		/**
		 * Klassenname separieren (ist standardmaessig mit Punkt getrennt)
		 * @param {String} separator - default == " " (Leerzeichen)
		 */
		separatedName: function(separator) {
			if (!!this.NAME) {
				return this.NAME.replace(/\./gi, (!!separator ? separator : " "));
			}
			return "";
		}
	});
})(window);


//= require "Util.js"
//= require "UI.js"

