// hash.js

function Hash() {
	this.length = 0;
	this.items = new Array();
	this.keys = new Array();
	
	this.asString = function() {
		var str = "";
		for (var i = 0; i < this.length; i ++) {
			str += this.items[this.keys[i]] + ",";
		}
		return str;
	}
	
	this.put = function( key, value ) {
		if ( typeof( value ) != 'undefined' ) {
			if ( typeof( this.items[key] ) == 'undefined' ) {
				this.length++;
			}
			this.keys.push(key);
			this.items[key] = value;
		}	   
		return value;
	}

	this.parameterNames = function() {
		return this.keys;
	}

	this.get = function( key ) {
		try {
			return this.items[key];
		} catch (e) {
			return null;
		}
	}

	this.contains = function( key ) {
		return typeof( this.items[key] ) != 'undefined';
	}

	this.remove = function( key ){
		var tmp_value;
		if ( typeof( this.items[key] ) != 'undefined' ) {
			this.length--;
			var tmp_value = this.items[key];
			delete this.items[key];
		}
		var c = this.keys.length;
		var str;
		for(var i = 0; i < c; i++) {
			str = this.keys[i];
			if (str == key) {
				this.keys.splice(i, 1);
				break;
			}
		}
		return tmp_value;
	}
}
