{
	var IdManager = function() {
		if(this.idDefinitionObject == undefined) {
			this.idDefinitionObject = new Object();
		}
		
		this.reportIn = (function(iType, iPrefix, iSuffix) {
			var newObject = new Object();
			newObject["id"] = 0;
			if(iPrefix != undefined) {
				newObject["prefix"] = iPrefix;
			}
			else {
				newObject["prefix"] = "";
			}
			if(iSuffix != undefined) {
				newObject["suffix"] = iSuffix;
			}
			else {
				newObject["suffix"] = "";
			}
			this.idDefinitionObject[iType] = newObject;
		});
		
		this.getIdName = (function(iType) {
			if(this.idDefinitionObject[iType] == undefined) {
				this.reportIn(iType, (iType + "_"), "");
			}
			var currentObject = this.idDefinitionObject[iType];
			var returnString = currentObject.prefix + "" + currentObject.id + "" + currentObject.suffix;
			currentObject.id++;
			return returnString;
		});
		
		this.getId = (function(iType) {
			if(this.idDefinitionObject[iType] == undefined) {
				this.reportIn(iType, (iType + "_"), "");
			}
			var currentObject = this.idDefinitionObject[iType];
			var returnNr = currentObject.id;
			currentObject.id++;
			return returnNr;
		});
	}
	
	gTewonderGlobalFunctions.addClass("se.tewonder.GlobalObjects.IdManager", IdManager);
	gTewonderGlobalFunctions.addGlobalObject("idManager", (new gTewonderClasses.se.tewonder.GlobalObjects.IdManager()));
}

