var ARRM = Class.create( {
   initialize : function(url) {
      this.url = url; }
   , encodeObjectValues : function(obj) {
      for(key in obj) {
         if(typeof(obj[key]) == "object") {
            obj[key] = this.encodeObjectValues(obj[key]); }
         else {
            obj[key] = encodeURIComponent(obj[key].toString().split("\"").join("\\\"")); }
         }
      return obj; }
   , jsonRequest : function(params, func, div) {
      data = "json=" + Object.toJSON(this.encodeObjectValues(params)); new Ajax.Request(this.url, {
         method : 'post', postBody : data, onComplete : function(transport) {
            var data = transport.responseText.evalJSON(true); func(data);
			}
         }
      ); }
   , jsonFormRequest : function(params, func, div) {
      data = "json=" + Object.toJSON(params); new Ajax.Request(this.url, {
         method : 'post', postBody : data, onComplete : function(transport) {
            var data = transport.responseText.evalJSON(true); func(data); }
         }
      ); }
   }
);
