var Objects =
{
	clone : function(inObject)
	{
		var theClonedObject;

		if(typeof(inObject) != 'object')
			return inObject;
		if(inObject == null)
			return inObject;

		if (inObject instanceof Array)
			theClonedObject = new Array();
		else
			theClonedObject = new Object();

		for(var i in inObject)
			theClonedObject[i] = Objects.clone(inObject[i]);

		return theClonedObject;
	},

	typeOf : function(inValue)
	{
		var theType = typeof inValue;
		if (theType === 'object')
		{
			if (inValue)
			{
				if (typeof inValue.length === 'number' &&
					!(inValue.propertyIsEnumerable('length')) &&
					typeof inValue.splice === 'function')
				{
					theType = 'array';
				}
			}
			else
			{
				theType = 'null';
			}
		}
		return theType;
	}

}