/////////////////////////// Javascript Map \\\\\\\\\\\\\\\\\\\\\\\\
function Map()
{
	// members
	this.keyArray = new Array(); // Keys
	this.valArray = new Array(); // Values
		
	// methods
	this.insert = function( key, val ) {
		var elementIndex = this.findIt( key );
		
		if( elementIndex == (-1) )
		{
			this.keyArray.push( key );
			this.valArray.push( val );
		}
	}
	this.retrieve = function( key ) {
		var result = null;
		var elementIndex = this.findIt( key );

		if( elementIndex != (-1) )
		{   
			result = this.valArray[ elementIndex ];
		}  
		
		return result;
	}
	this.size = function() {
		return (this.keyArray.length);  
	}
	this.clear = function () {
		for( var i = 0; i < this.keyArray.length; i++ )
		{
			this.keyArray.pop(); this.valArray.pop();   
		}
	}
	this.keySet = function() {
		return (this.keyArray);
	}
	this.valSet = function() {
		return (this.valArray);   
	}
	this.showMe = function () { // returns a string with all keys and values in map.
		var result = "";
		
		for( var i = 0; i < this.keyArray.length; i++ )
		{
			result += "Key: " + this.keyArray[ i ] + "\tValues: " + this.valArray[ i ] + "\n";
		}
		return result;
	}
	this.findIt = function( key ) {
		var result = (-1);

		for( var i = 0; i < this.keyArray.length; i++ )
		{
			if( this.keyArray[ i ] == key )
			{
				result = i;
				break;
			}
		}
		return result;
	}
	this.removeAt = function( index ) {
		/*var part1 = this.slice( 0, index);
		var part2 = this.slice( index+1 );

		return( part1.concat( part2 ) );*/
		this.keyArray.splice(index, 1);
		this.valArray.splice(index, 1);
	}
	this.removeJamlists = function () {
		this.keyArray.splice(5, (this.keyArray.length - 5));
		this.valArray.splice(5, (this.valArray.length - 5));
	}
}
