/*
  ___                     _       _   _              ___                       
 / _ \                   (_)     | | (_)            / _ \                      
/ /_\ \___ ___  ___   ___ _  __ _| |_ ___   _____  / /_\ \_ __ _ __ __ _ _   _ 
|  _  / __/ __|/ _ \ / __| |/ _` | __| \ \ / / _ \ |  _  | '__| '__/ _` | | | |
| | | \__ \__ \ (_) | (__| | (_| | |_| |\ V /  __/ | | | | |  | | | (_| | |_| |
\_| |_/___/___/\___/ \___|_|\__,_|\__|_| \_/ \___| \_| |_/_|  |_|  \__,_|\__, |
______          _        _                                                __/ |
| ___ \        | |      | |                                              |___/ 
| |_/ / __ ___ | |_ ___ | |_ _   _ _ __   ___ 
|  __/ '__/ _ \| __/ _ \| __| | | | '_ \ / _ \
| |  | | | (_) | || (_) | |_| |_| | |_) |  __/
\_|  |_|  \___/ \__\___/ \__|\__, | .__/ \___|
                              __/ | |         
                             |___/|_|                                                                                  
*/

var Class = {
  create: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}

var Hash = Class.create();

Hash.prototype = {
  AA: {},
  initialize: function() {
    args = this.initialize.arguments;
    if(args.length > 0) {
      this.add(args[0], args[1]);
    }
  },
  add: function(key, value) { this.AA[key] = value; },
  num: function() { return this.AA.length; },
  get: function(key) { return this.AA[key]; },
  set: function(key, value) { this.add(key, value); },
  test: function() {
    var aa = '';
    var num = this.num();
    for(key in this.AA) aa += '[' + key + ']: ' + this.AA[key] + "\n";
    alert(aa);
  }
}
