aboutsummaryrefslogtreecommitdiffstats
path: root/src/XSitePost.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/XSitePost.js')
-rw-r--r--src/XSitePost.js100
1 files changed, 0 insertions, 100 deletions
diff --git a/src/XSitePost.js b/src/XSitePost.js
deleted file mode 100644
index 7d81e207..00000000
--- a/src/XSitePost.js
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright (C) 2008,2009 BRAT Tech LLC
-
-if (typeof nglr == 'undefined') nglr = {};
-
-if (typeof console == 'undefined') console = {};
-if (typeof console.log == 'undefined')
- console.log = function() {};
-if (typeof console.error == 'undefined')
- console.error = function() {};
-
-nglr.XSitePost = function(baseUrl, window, prefix) {
- this.baseUrl = baseUrl;
- this.post = jQuery.post;
- this.window = window;
- this.inQueue = {};
- this.outQueue = [];
- this.maxMsgSize = 100000;
- this.delay = 20;
- this.prefix = prefix;
- this.setTimeout=function(fn, delay){window.setTimeout(fn, delay);};
-};
-
-nglr.XSitePost.prototype.init = function() {
- this.window.name = '';
- this.response('ready', 'null');
-};
-
-nglr.XSitePost.prototype.incomingFragment = function(fragment) {
- var parts = fragment.split(";");
- this.incomingMsg(parts.shift(), 1*parts.shift(), 1*parts.shift(), parts.shift());
-};
-
-nglr.XSitePost.prototype.incomingMsg = function(id, partNo, totalParts, msgPart) {
- var msg = this.inQueue[id];
- if (!msg) {
- msg = {id:id, parts:[], count:0};
- this.inQueue[id] = msg;
- }
- msg.parts[partNo] = msgPart;
- msg.count++;
- if (totalParts === msg.count) {
- delete this.inQueue[id];
- var request = this.decodePost(msg.parts.join(''));
- var self = this;
- this.post(this.baseUrl + request.url, request.params, function(response, status){
- self.response(id, response, status);
- });
- }
-};
-
-nglr.XSitePost.prototype.response = function(id, response, status) {
- var start = 0;
- var end;
- var msg = Base64.encode(response);
- var msgLen = msg.length;
- var total = Math.ceil(msgLen / this.maxMsgSize);
- var part = 0;
- while (start < msgLen) {
- end = Math.min(msgLen, start + this.maxMsgSize);
- this.outQueue.push(id + ':'+part+':'+total+':' + msg.substring(start, end));
- start = end;
- part++;
- }
-};
-
-nglr.XSitePost.prototype.decodePost = function(post) {
- var parts = post.split(':');
- var url = Base64.decode(parts.shift());
- var params = {};
- while(parts.length !== 0) {
- var key = parts.shift();
- var value = Base64.decode(parts.shift());
- params[key] = value;
- }
- return {url:url, params:params};
-};
-
-nglr.XSitePost.prototype.listen = function() {
- console.log("listen()");
- var self = this;
- var window = this.window;
- var outQueue = this.outQueue;
- var setTimeout = this.setTimeout;
- var prefix = this.prefix;
- var prefixLen = prefix.length;
- var prefixRec = prefix + '>';
- var prefixRecLen = prefixRec.length;
- window.name = prefix;
- var pull = function(){
- var value = window.name;
- if (value == prefix && outQueue.length > 0) {
- window.name = prefix + '<' + outQueue.shift();
- } else if (value.substr(0, prefixRecLen) == prefixRec) {
- self.incomingFragment(value.substr(prefixRecLen));
- window.name = prefix;
- }
- setTimeout(pull, self.delay);
- };
- pull();
-};