// (c)2011 MrOrange

﻿
mrO.object=function(id,args){this.id=id;this.overriddenFunctions={};this.applySettings(args);};mrO.object.prototype.init=function(args){this.appendSettings(args);};mrO.object.prototype.applySettings=function(settings){this.settings=settings?settings:{};};mrO.object.prototype.appendSettings=function(settings){if(mrO.isDefined(this.settings)){for(var key in settings){this.settings[key]=settings[key];};}
else{this.applySettings(settings);}};mrO.object.prototype.applyDefaultSettings=function(defaultSettings){for(var key in defaultSettings){if(typeof(this.settings[key])!=typeof(defaultSettings[key])){this.settings[key]=defaultSettings[key];};};};mrO.object.prototype.getDebugSignautre=function(keys){var debugSignautre="";for(var key in this.settings){if(mrO.isDefined(keys)&&mrO.utils.isInArray(keys,key)){if(debugSignautre.length>0){debugSignautre+=", "};debugSignautre+=key+":"+this.settings[key];};};debugSignautre=" ("+debugSignautre+")";return debugSignautre;};mrO.object.prototype.storeFunction=function(className,functionName,functionObject){if(mrO.isUndefined(this.getFunction(className,functionName))){this.setFunction(className,functionName,functionObject);}
else{if(mrO.page.debugging({sender:"mrO.object.prototype.storeFunction"})){mrO.utils.writeToConsole("mrO.object.prototype.storeFunction: Function '"+functionName+"' in '"+this.id+"' already stored!");}}};mrO.object.prototype.getFunction=function(className,functionName){if(mrO.isUndefined(this.overriddenFunctions[className])){return null;;}
return this.overriddenFunctions[className][functionName];};mrO.object.prototype.setFunction=function(className,functionName,functionObject){if(mrO.isUndefined(this.overriddenFunctions[className])){this.overriddenFunctions[className]={};}
if(mrO.isUndefined(this.overriddenFunctions[className][functionName])){this.overriddenFunctions[className][functionName]=functionObject;}
else{if(mrO.page.debugging({sender:"mrO.object.prototype.setFunction"})){mrO.utils.writeToConsole("mrO.object.prototype.setFunction: Function '"+functionName+"' in '"+className+"' already stored!");}}};mrO.object.prototype.hide=function(args){alert("Default hide");};mrO.object.prototype.show=function(args){alert("Default show");};
