var develop = function(){ return this }

develop.prototype.processArguments = function( objectName , argArray ,argumentMap ){
	var arg;

	for( arg in argumentMap ){
		var defaultValue=null;
		if( typeof(argumentMap[arg].defaultValue) != 'undefined' ){
			defaultValue = argumentMap[arg].defaultValue
		}

		/* required? */
			if(	argumentMap[arg].required && argArray[arg] == null ){
				alert('Illegal '+objectName+' setup! "'+arg+'" is a required Argument');
				if( typeof(argumentMap[arg].hint) == 'string' ){
					alert(arg+' (Usage Hint): \n\n'+argumentMap[arg].hint);
				}
				return false;
			}else if( defaultValue != null && argArray[arg] == null ){
				argArray[arg] = defaultValue;
			}
		/* end */

		/* data type test */
			if(
				argArray[arg] != null
			&&
				argumentMap[arg].type.toLowerCase() != typeof(argArray[arg])
			&&
				(
					defaultValue == null
				||
					defaultValue != argArray[arg]
				)
			){
				alert('Illegal '+objectName+' setup! Invalid variable type for argument: "'+arg+'".\n\nType required: '+argumentMap[arg].type+'\nType received: '+typeof(argArray[arg]));
				return false;
			}
		/* end */
	}

	return argArray;
}

if( OlOs == null ){
	document.write("<script type=\"text/javascript\" src=\"OlOs.js\"></script>");
}
OlOs.attachTo( new develop() , "develop" );
