var networkDomain = 'www.orkut.com'; var hi5AppDomain = 'www.hi5.com'; var slideStage = 'live'; var Serdes = {} var hexDigits = "0123456789ABCDEF"; var i2x = function(x) { return hexDigits.substring(x, x+1); } ; var d2x = function(x) { return i2x(x / 16) + i2x(x % 16); } Serdes.escapeChar = function(c) { return "%" + d2x(c.charCodeAt(0)); }; Serdes.escapeParm = function(p) { p = encodeURIComponent(p); return String(p).replace(/[~!()'*]/gi, Serdes.escapeChar); }; Serdes.url_add_parms = function(url, parms, sep) { var sep = sep || "?"; if (parms) { return url + sep + Serdes.encodeValues(parms); } else { return url; } } Serdes.encodeValues = function(parms) { var buf = []; for (var name in parms) { if (name.substring(name.length-2) != "__") { buf.push(encodeURIComponent(name) + "=" + encodeURIComponent(parms[name])); } } return buf.join("&"); }; Serdes.make_command_url = function(cmd, parms) { var domain = 'www.slide.com'; if (parms['domain']) { domain = parms['domain']; delete parms.domain; } var url = 'http://' + domain + cmd; return Serdes.url_add_parms(url, parms); } Serdes.make_google_url = function(cmd, app, site, parms) { var sep = '.'; var url = 'http://' + app + sep + site + sep + 'community.slide.com/' + cmd; if (parms) return Serdes.url_add_parms(url, parms); else return url; } Serdes.make_static_url = function(filename) { var sep = ''; if (filename.charAt(0) != '/') { sep = '/'; } var cmd = '/version/' + '20090723050343' + sep + filename; return 'http://static.slide.com' + cmd; } Serdes.make_ua_url = function(remainder_type, app_code, event_code, user_id, remainder, data_1, data_2, data_3, data_4, data_5, data_6) { var url = "http://" + widget_domain + "/ua/" + remainder_type + "/" + app_code + "/" + event_code + "/" + user_id + "/" + data_1 + "/" + data_2 + "/" + data_3 + "/" + data_4 + "/" + data_5 + "/" + data_6 + (remainder && remainder.charAt(0) == '/' ? '' : '/') + remainder return url; } Serdes.make_ua_filename = function(app_code, event_code, user_id, remainder, data_1, data_2, data_3, data_4, data_5, data_6) { data_1 = data_1 || 0; data_2 = data_2 || 0; data_3 = data_3 || 0; data_4 = data_4 || 0; data_5 = data_5 || 0; data_6 = data_6 || 0; var url = Serdes.make_ua_url(constants.UA_REMAINDER_FILENAME, app_code, event_code, user_id, remainder, data_1, data_2, data_3, data_4, data_5, data_6); return url; } // A much more descriptive (slightly useful) wrapper around make_ua_filename Serdes.make_ua_filelink = function(app_code, event_code, user_id, file_path, foreign_key, flag) { var timestamp = Math.round(new Date().getTime()/1000); // time in seconds return Serdes.make_ua_filename(app_code, event_code, user_id, file_path, timestamp, foreign_key, flag) } var base_base_domain = "slide.com"; var widget_domain = "widget.slide.com"; var widget_dir = "widgets"; var skininfo_version = "5"; var ig_domain = "community.slide.com"; var logging_domain = "logging.slide.com"; var ua_remainder_filename = 64; var constants = {}; constants.UA_REMAINDER_FILENAME = 64; var URLMaker = {}; URLMaker.make_snapshot_finder_url = function(cid, w, h, play, bg, file_type) { return 'http://' + Partition.channel_domain(cid) + '/fsnapshot/' + cid + '/1/' + w + '/' + h + '/0/0/' + Number(play) + '/' + bg.toString(16) + '/image.' + file_type; } var Partition = {}; Partition.channel_domain = function(id) { return Partition._channel_domain(id); }; Partition._channel_domain = function(id) { if (!id) { return 'widget.slide.com' } var hash_id = id % 256; var prefix = 'widget-'; if (hash_id < 0x10) { prefix += '0'; } var suffix = '.slide.com'; return prefix + hash_id.toString(16) + suffix }; // this is better than Partition var stringMod = function(s) { var acc = 0; for (var i=0; i