
function NaosTools() {}

NaosTools.toVanillaObject = function(object) {

	if(Object.isArray(object))
	{
		var vaob = {};
		
		for(var i=0; i<object.length; ++i)
		{
			vaob[i] = NaosTools.toVanillaObject(object[i]);
		}
		
		return vaob;
	}
	else if(object === null)
	{
		return object;
	}
	else if(typeof object == "object")
	{
		var vaob = {};
		
		for(var i in object)
		{
			vaob[i] = NaosTools.toVanillaObject(object[i]);
		}
		
		return vaob;
	}
	else
	{
		return object;
	}
}

NaosTools.removeObjectAttribute = function(object, attribute)
{
	var no = {};
	
	for(i in object)
	{
		if(i != attribute)
		{
			no[i] = object[i];
		}
	}
	
	return no;
}

NaosTools.insertFreeObjectAttribute = function(object, value)
{
	var i = 0;
	
	while(object[i] != undefined)
		++i;
		
	object[i] = value;
	
	return object;
}

NaosTools.fromJSON = function(json) {
	if(json == '')
		return {};
	
	// decode in a standard way
	var object = json.evalJSON(true);
	
	// transform to hash tree
	return NaosTools.toVanillaObject(object);
}

NaosTools.toJSON = function(object) {
	return Object.toJSON(object);
}

//alert(NaosTools.toJSON(NaosTools.fromJSON(NaosTools.toJSON({test: null}))));
