/*
  SimpleJsMin From YouYee OpenSource 
  2008 - 2009
*/

org.youyee=org.youyee||{};org.youyee.services={Gateway:{call:function(service,responser){var _s='',_method='get';if(typeof(service)=='string'||typeof(service)=='number'){_s=String(service);}else{_s=service.service;_method=service.method;}
if(typeof(this._loader)=='undefined'){this._loader=new YEE.net.URLLoader();}
var loader=this._loader;if(this._mt){loader=new YEE.net.URLLoader();}
var url=this.URL;var _data=[_s];if(arguments.length>2){for(var i=2;i<arguments.length;i++){_data.push(arguments[i]);}}
var _self=this;loader.onComplete=function(data){if(_self._mt){loader.destroy();}
responser.onSuccess(data);}
loader.onError=function(data){loader.destroy();responser.onError(data);}
if(_method=='get'){url=[url,_data.join('/')].join('?');loader.load(url,'get');}else{loader.load(url,'post',['/',_data.join('/')].join(''));}},connect:function(url,multithread){this.URL=url;if(!!multithread){this._mt=true;}else{this._mt=false;}},URL:'amfphp/json.php',_mt:false,_loader:new YEE.net.URLLoader()},Cache:{_dataPool:{},add:function(key,value){this._dataPool[key]=value;},get:function(key){return this._dataPool[key];},clear:function(key){if(key=='*'){this._dataPool={};return true;}else if(typeof(key)!='undefined'&&typeof(this._dataPool[key])!='undefined'){delete this._dataPool[key];return true;}
return false;},appendData:function(value,path,direction){var d=this._parsePath(path);if(direction>0){d.push(value);}else{d.unshift(value);}},selectById:function(id,path){var d=this._parsePath(path);for(var i=0;i<d.length;i++){if(d[i].id==id){return d[i];break;}}
return null;},updateById:function(newdata,path){var d=this._parsePath(path);for(var i=0;i<d.length;i++){if(d[i].id==newdata.id){d[i]=newdata;return true;break;}}
return false;},deleteById:function(id,path){var d=this._parsePath(path);for(var i=0;i<d.length;i++){if(d[i].id==id){d.splice(i,1);return true;break;}}
return false;},_parsePath:function(path){var p=path.split('/');var d=this._dataPool[p[0]];if(p.length>1){for(var i=1;i<p.length;i++){d=d[p[i]];}}
return d;}}};