/[refeed]/trunk/script/comm.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/script/comm.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (hide annotations)
Wed Jul 5 00:27:49 2006 UTC (17 years, 11 months ago) by dpavlin
File MIME type: application/javascript
File size: 4430 byte(s)
make working copy of trunk
1 dpavlin 2 /*----------------------------------------
2     $Id: comm.js,v 1.5 2005/10/12 23:15:13 migurski Exp $
3     vim: ts=4 foldcolumn=4 foldmethod=marker
4    
5     This file is part of Reblog: http://reblog.org
6     A derivative work of Feed On Feeds: http://feedonfeeds.com
7    
8     Distributed under the Gnu Public License, see LICENSE
9    
10     Copyright ©2004 Michael Frumin, Michal Migurski
11     mike@stamen.com, http://stamen.com
12     mfrumin@eyebeam.org, http://eyebeam.org
13    
14     comm.js - Refeed.ServerComm handles JSON-RPC calls to Refeed
15     ----------------------------------------*/
16    
17     // namespace
18     if(window.refeed == null) { window.refeed = {}; }
19     if(Refeed == null) { var Refeed = window.refeed; }
20    
21     Refeed.ServerComm = {
22    
23     remoteCall: function(method, params, onResult, onError)
24     {
25     if(window.XMLHttpRequest) {
26     var request = new XMLHttpRequest();
27    
28     } else if(window.ActiveXObject) {
29     var request = new ActiveXObject("Microsoft.XMLHTTP");
30    
31     }
32    
33     if(request) {
34     request.onreadystatechange = function()
35     {
36     if(request.readyState == 4) {
37     if(request.status == '200') {
38     //alert(request.responseText);
39     eval('var response = '+request.responseText+';');
40    
41     if(response.result && !response.error && onResult) {
42     onResult(response.result);
43    
44     } else if(response.error && !response.result && onError) {
45     onError(response.error);
46    
47     }
48     }
49     }
50     };
51    
52     request.open("POST", Refeed.ServerComm.callHREF, true);
53     request.send(Refeed.ServerComm.jsonEncode({method:method, params:params, id:0}));
54     }
55     },
56    
57     jsonEncode: function(arg)
58     {
59     var i, o, u, v;
60    
61     switch (typeof arg) {
62     case 'object':
63     if (arg) {
64     if (arg.constructor == Array) {
65     o = '';
66     for (i = 0; i < arg.length; ++i) {
67     v = Refeed.ServerComm.jsonEncode(arg[i]);
68     if (o) {
69     o += ',';
70     }
71     if (v !== u) {
72     o += v;
73     } else {
74     o += 'null,';
75     }
76     }
77     return '[' + o + ']';
78     } else if (typeof arg.toString != 'undefined') {
79     o = '';
80     for (i in arg) {
81     v = Refeed.ServerComm.jsonEncode(arg[i]);
82     if (v !== u) {
83     if (o) {
84     o += ',';
85     }
86     o += Refeed.ServerComm.jsonEncode(i) + ':' + v;
87     }
88     }
89     return '{' + o + '}';
90     } else {
91     return;
92     }
93     }
94     return 'null';
95     case 'unknown':
96     case 'undefined':
97     case 'function':
98     return u;
99     case 'string':
100     var c, i, l = arg.length, o = '"';
101     for (i = 0; i < l; i += 1) {
102     c = arg.charAt(i);
103     if (c >= ' ') {
104     if (c == '\\' || c == '"') {
105     o += '\\';
106     }
107     o += c;
108     } else {
109     switch (c) {
110     case '\b':
111     o += '\\b';
112     break;
113     case '\f':
114     o += '\\f';
115     break;
116     case '\n':
117     o += '\\n';
118     break;
119     case '\r':
120     o += '\\r';
121     break;
122     case '\t':
123     o += '\\t';
124     break;
125     default:
126     c = c.charCodeAt();
127     o += '\\u00' + Math.floor(c / 16).toString(16) +
128     (c % 16).toString(16);
129     }
130     }
131     }
132     return o + '"';
133     default:
134     return String(arg);
135     }
136     }
137     };

  ViewVC Help
Powered by ViewVC 1.1.26