function RemoteObject(uri) {
  this.uri=uri;
}
RemoteObject.prototype.call=function (method,parameterss,callback) {
  var pars="method=".concat(method,"&","parameters","=",encodeURIComponent(parameterss.toJSON()));
  var myAjax=new Ajax.Request(this.uri,{parameters:pars,onSuccess:function (transport) {
    try {
      var result=transport.responseText.evalJSON();
      if (typeof (result["Exception"])!="undefined") {
        throw new KISS_Server_Exception(result["Exception"],result["option_msg"]);
      }
      if (typeof (result["message"])!="undefined") {
        alert(result["message"]);
      }
      if (typeof (result["data"])!="undefined") {
        if (typeof (callback)==="function") {
          callback(result["data"]);
        } else {
          if (typeof (window[class_name][method_name+"_callback"])==="function") {
            var inner_callback=window[class_name][method_name+"_callback"];
            inner_callback(result["data"],orin_param);
          } else {
            alert(result["data"]);
          }
        }
      }
    }
    catch (e) {
      e.show_error();
    }
  }});
};
KISS_Server_Exception=function (msg,context) {
  this.message=msg;
  this.context=context;
};
KISS_Server_Exception.prototype.show_error=function () {
  alert(this.message+"\\n-----------------------\\n"+this.context);
};
RemoteObject.getInstance=function (class_name) {
  if (arguments.length==1) {
    var path_array=window.location.pathname.split("/");
    path_array.pop();
    path=path_array.join("/");
  } else {
    path=arguments[1];
  }
  return new RemoteObject(path.concat("/_JSON_",class_name,".php"));
};
function date_selector(ObjName) {
  var return_Value=showModalDialog("/libs/calendar.htm","yyyy-mm-dd","dialogWidth:286px;dialogHeight:221px;status:no;help:no;");
  if (return_Value) {
    ObjName.value=return_Value;
  }
}
function QueryString(sAddress,sName) {
  var sSource=String(sAddress);
  var sReturn="";
  var sQUS="?";
  var sAMP="&";
  var sEQ="=";
  var iPos;
  iPos=sSource.indexOf(sQUS);
  var strQuery=sSource.substr(iPos,sSource.length-iPos);
  var strLCQuery=strQuery.toLowerCase();
  var strLCName=sName.toLowerCase();
  iPos=strLCQuery.indexOf(sQUS+strLCName+sEQ);
  if (iPos==-1) {
    iPos=strLCQuery.indexOf(sAMP+strLCName+sEQ);
    if (iPos==-1) {
      return "";
    }
  }
  sReturn=strQuery.substr(iPos+sName.length+2,strQuery.length-(iPos+sName.length+2));
  var iPosAMP=sReturn.indexOf(sAMP);
  if (iPosAMP==-1) {
    return sReturn;
  } else {
    sReturn=sReturn.substr(0,iPosAMP);
  }
  return sReturn;
}
function CopyToClipboard(meintext) {
  if (window.clipboardData) {
    // the IE-manier
    window.clipboardData.setData("Text",meintext);
  } else {
    if (window.netscape) {
      try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
      }
      catch (e) {
      	alert("您的浏览器禁止访问剪贴板，清手动粘贴链接地址！");
        return false;
      }
      var clip=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);
      if (!clip) {
        return false;
      }
      var trans=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
      if (!trans) {
        return false;
      }
      trans.addDataFlavor("text/unicode");
      var str=new Object();
      var len=new Object();
      var str=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
      var copytext=meintext;
      str.data=copytext;
      trans.setTransferData("text/unicode",str,copytext.length*2);
      var clipid=Components.interfaces.nsIClipboard;
      if (!clip) {
        return false;
      }
      clip.setData(trans,null,clipid.kGlobalClipboard);
    } else {
      return false;
    }
  }
  return true;
}