function Hash() 
{ 
    this.length = 0; 
    this.undefined; 
    this.items = new Array(); 
    for (var i = 0; i < arguments.length; i += 2) { 
        if (arguments[i + 1] != this.undefined) { 
            this.items[arguments[i]] = arguments[i + 1]; 
            this.length++; 
        } 
    } 
    
    this.removeItem = function(in_key) 
    { 
        if (this.items[in_key] != this.undefined) { 
            this.length--; 
            var tmp_value = this.items[in_key]; 
            delete this.items[in_key]; 
            return tmp_value; 
        } 
    } 

    this.getItem = function(in_key) { 
        if (this.items[in_key] != this.undefined) { 
            return this.items[in_key]; 
        } 
        else { 
            return false; 
        } 
    } 

    this.setItem = function(in_key, in_value) 
    { 
        if (in_value != this.undefined) { 
            if (this.items[in_key] == this.undefined) { 
                this.length++; 
            } 

            return this.items[in_key] = in_value; 
        } 
    } 

    this.itemExists = function(in_key) 
    { 
        return this.items[in_key] != this.undefined; 
    } 
}