	function Container()
	{
		this.data = {};
		this.export_delimiter = '||';
		this.export_name_value_delimiter = '=';
		this.export_array_start = '{';
		this.export_array_end = '}';
		this.export_array_delimiter = '__';
		this.export_assoc_name_value_delimiter = '=>';
		
		this.set = function( name, value )
		{
			this.data[ name ] = value;
		}
		this.get = function( name )
		{
			if ( name in this.data )
			{
				this.data[ name ];
			}
			return false;
		}
		this.getAll = function()
		{
			return this.data;
		}
		this.fromPhp = function( values )
		{
			this.data = {};
			var previous = 0;
			var ends = 0;
			do
			{
				ends = values.indexOf( this.export_delimiter, previous );
				ends = ( ends !== -1 ) ? ends : values.length;
				variable = values.substr( previous, ( ends - previous ) );
				if ( variable.length )
				{
					name = variable.substr( 0, variable.indexOf( this.export_name_value_delimiter ) );
					value = variable.substr( variable.indexOf( this.export_name_value_delimiter ) + this.export_name_value_delimiter.length );
					if ( ( value === 'TRUE' ) || ( value === 'FALSE' ) )
					{
						this.set( name, ( ( value == 'TRUE' ) ? 'TRUE' : 'FALSE' ) );
					}
					else
					{
						this.set( name, value );
					}
				}
				previous = ( ends + this.export_delimiter.length );
			} while ( ends < values.length )
		}
		this.toPhp = function()
		{
			var build = '';
			for ( var name in this.data )
			{
				build += this.export_delimiter + name + this.export_name_value_delimiter
				value = this.data[ name ];
				if ( typeof value == 'boolean' )
				{
					build += ( ( value ) ? 'TRUE' : 'FALSE' );
				}
				else if ( ( value.constructor == String ) || ( value.constructor == Number ) )
				{
					build += escape( String( value ) );
				}
				else if ( value.constructor == Array )
				{
					var array_value = '';
					for ( i = 0; i < value.length; i++ )
					{
						array_value += this.export_array_delimiter + escape( String( value[ i ] ) );
					}
					build += this.export_array_start + array_value.substr( this.export_array_delimiter.length ) + this.export_array_end;
				}
				//associative array
				else if ( value.constructor == Object )
				{
					var array_value = '';
					for ( var array_name in value )
					{
						array_value += this.export_array_delimiter + escape( String( array_name ) ) + this.export_assoc_name_value_delimiter + escape( String( value[ array_name ] ) );
					}
					build += this.export_array_start + array_value.substr( this.export_array_delimiter.length ) + this.export_array_end;
				}
			}
			return build.substr( this.export_delimiter.length );
		}
	}
