X  Geneva dS"v`(LANDmac decafbadNewsRiver preferences Theme selection How would you like your news river presented? You can choose from a number of templated themes, each of which can introduce any number of visual and functional alterations. <% radio.prefs.popupMenuPref("Choose a theme", @aggregatorData.decafbadNewsRiver.theme, decafbadNewsRiverSuite.listThemeIDs(), decafbadNewsRiverSuite.listThemeNames()) %> Deferred item content loading One of the features offered by some themes is the ability to defer the loading of news item content until you're ready to read it. This is done via AJAX and the Aggregator API, and it's usually okay to leave this feature enabled since it should help your news pages load faster and display better. However, some browsers may have trouble with this feature. So, the following preference will allow you to disable it and fall back to static rendering of news item content on page load. Note that for this feature to work, the Aggregator API must be enabled. <% radio.prefs.checkboxPref("Enable deferred item content loading", @aggregatorData.decafbadNewsRiver.deferredItemContent) %> Per-item and per-feed delete buttons Another AJAX-powered feature of some themes is the addition of a "delete" button on news items and "delete all" on feeds. However, you may find these buttons inconvenient or that your browser has problems with this feature. This preference allows you to control the display of these buttons. Note that for this feature to work, the Aggregator API must be enabled. <% radio.prefs.checkboxPref("Show per-item and per-feed delete buttons", @aggregatorData.decafbadNewsRiver.showDeleteButtons) %> WdatatablGMM createdTue, 03 Jan 2006 20:49:35 GMTWdatatablGzz createdSat, 11 Feb 2006 05:46:50 GMTWdatatablG createdSat, 11 Feb 2006 06:14:44 GMTWdatatablG|| createdSat, 11 Feb 2006 05:46:52 GMTWdatatablG!}!} createdWed, 22 Feb 2006 15:46:21 GMTWdatatablG!! createdWed, 22 Feb 2006 15:46:46 GMTWdatatablG! ! createdWed, 22 Feb 2006 15:52:58 GMTWdatatablG"["[ createdThu, 23 Feb 2006 04:38:03 GMTWdatatablG!U!U createdWed, 22 Feb 2006 15:49:56 GMTWdatatablG!! createdWed, 22 Feb 2006 16:12:24 GMTWdatatablG!! createdWed, 22 Feb 2006 16:12:46 GMTWdatatablG"["[ createdThu, 23 Feb 2006 04:38:03 GMTWdatatablG!U!U createdWed, 22 Feb 2006 15:49:56 GMT 7x] prefsOutlineXVGeneva|=@83/t themedefault3O~GD=L news(http://127.0.0.1:5337/decafbadNewsRiver/VGenevaZ$74AGeneva LANDmac /* Main CSS */ body, td, p, div, li { font: 11px arial; } WdatatablG createdFri, 20 Jan 2006 18:05:43 GMTWdatatablG createdFri, 20 Jan 2006 18:05:48 GMTWdatatablG;; createdFri, 20 Jan 2006 18:12:27 GMTWdatatablG createdFri, 20 Jan 2006 18:06:01 GMTWdatatablG createdFri, 20 Jan 2006 18:05:55 GMTWdatatablG createdFri, 20 Jan 2006 18:10:16 GMTsFFFF000000060001001777AA00000000007C000000001001710000001-7FFF6FBE180000048004806C2F200-1DFEE05DFEE0566206C2F222FFFF0103E05000010000007600000002074E84064EC22273302CE0004E164ECA2074E15188404EC6C2F222DC9028E000C246C2FC00002000007540000000074E,body { font: 10px verdana; margin: 10px; } .footer { text-align: right; border-top: 1px solid #000; font-size: x-small; margin-top: 1em; padding-top: 1em; } h1 { /* position: fixed; */ left: 0px; top: 0px; z-index: 999; } body > h1 { /* position: fixed; */ background-color: #fff; border-bottom: 1px solid #000; padding: 5px 0px 5px 0px; left: 0px; top: 0px; } body > h2 { border-bottom: 1px dotted #333; padding: 3px 0px 3px 0px; } ul.feeds { /* margin-top: 45px; */ padding-left: 10px; z-index: 100; } ul.newsindex { margin: 0 0 15px 0; padding: 0; list-style: none; } ul.newsindex h1 { margin: 0 0 10px 0; padding: 2px; border: 1px solid #000; background: #ddd; font-size: 1.2em; } ul.newsindex li { font-weight: bold; font-size: 1.15em; line-height: 1.45em; } ul.newsindex li:before { content: "\00BB \0020"; } ul.newsindex li a { text-decoration: none; } ul.newsindex li a:hover { text-decoration: underline; } ul.newsindex li a abbr { text-decoration: none; border: none; } ul.feeds { list-style-type: none; } ul.feeds li.feed { clear: both; } li.feed h2 { display: block; padding: 5px; margin: 7px 14px 7px 5px; background: #ddd; border: 1px solid #888; } li.feed h2 a { text-decoration: none; } li.feed h2 a:hover { text-decoration: underline; } ul.entries { list-style-type: none; display: none; padding-bottom: 10px; } li.collapsed > ul.entries { display: none; } li.expanded > ul.entries { display: block; } li.entry { clear: both; } li.entry h3 { padding: 3px; margin: 5px 5px 5px 3px; background: #f0f0f0; border: 1px solid #ddd; white-space: nowrap; overflow: hidden; } li.entry h3 a { text-decoration: none; 000200000DD00000074EDCA,} li.entry h3 a:hover { text-decoration: underline; } .entrydate, .entrytime { font-size: 0.75em; padding-right: 0.25em; float: right; } .entryicons { font-size: 0.75em; float: right; padding-right: 1em; } .entryicons a { padding-right: 1em; } ul.entrycontent { list-style-type: none; display: none; border: 1px dotted #888; margin-left: 20px; margin-right: 20px; padding: 15px 25px 15px 25px; font: 14px georgia; line-height: 1.5em; } li.collapsed > ul.entrycontent { display: none; } li.expanded > ul.entrycontent { display: block; } ul.entrycontent li.content, ul.entrycontent li.content * { font: 14px georgia; } .handle, .handle_alt { display: block; width: 10px; height: 10px; cursor: pointer; } .handle { float: left; background: url(../img/outline_collapsed) no-repeat center; margin: 3px 0 3px 6px; padding: 3px 0 3px 6px; margin-left: -12px; } .handle_alt { float: right; background: url(../img/outline_collapsed_alt) no-repeat center; margin: 3px 3px 3px 3px; padding: 3px 3px 3px 3px; margin-right: -3px; } .collapsed > .handle { background: url(../img/outline_collapsed) no-repeat center; } .collapsed > .handle_alt { background: url(../img/outline_collapsed_alt) no-repeat center; } .expanded > .handle { background: url(../img/outline_expanded) no-repeat center; } .expanded > .handle_alt { background: url(../img/outline_expanded_alt) no-repeat center; } .empty > .handle { background: url(../img/space) no-repeat center; cursor: default; } .empty > .handle_alt { background: url(../img/space) no-repeat center; cursor: default; } .busy > .handle { background: url(../img/busy_anim) no-repeat center; } .busy > .handle_alt { background: url(../img/busy_anim) no-repeat center; } li.feed .handle { margin: 3px 0 3px 6px; padding: 3px 0 3px 6px; margin-top: 6px; margin-left: -12px; } li.entry .handle { margin: 0; padding: 3px; margin-left: -12px; } li.entry .handle_alt { margin: 0; padding: 3px; margin-left: -3px; margin-right: 3px; } .entry .link { float: right } .feed .link, .feed .control { float: right } .orangeButton { border: 1px solid; border-color: #FC9 #630 #330 #F96; padding: 0 3px; font: bold 10px verdana,sans-serif; color: #FFF; background: #F60; text-decoration: none; margin: 0; } .button { cursor: pointer; color: #00f; border: 1px solid; border-color: #CCC #666 #333 #999; padding: 0 3px; font: bold 10px verdana,sans-serif; background: #ddd; text-decoration: none; margin: 4px; } a.button:link { color: #00f; } a.button:visited { color: #00f; } a.button:hover { color: #00f; background: #f2f2f2; text-decoration: none; } .buttonDisabled { cursor: default; color: #00f; border: 1px solid; border-color: #CCC #666 #333 #999; padding: 0 3px; font: bold 10px verdana,sans-serif; background: #ddd; text-decoration: none; margin: 4px; } a.buttonDisabled:link { color: #444; } a.buttonDisabled:visited { color: #444; } a.buttonDisabled:hover { color: #444; text-decoration: none; } ul.readinglists { list-style-type: square; } ul.readinglists li.readinglist { padding-bottom: 0.75em; } ul.readinglists li.readinglist a { font-weight: bold; } a.feedlink img { padding-right: 0.5ex; } a.feedxmllink { padding-right: 0.5ex; }00040000000C0000000201151A100050000000B000000020151A00006000000650000000210A210FFFF0A00000 10 20920FFFF0900000 10 000700000019000000010201800008000001C40000000340,Geneva40,4030 1040, Helvetica40,40150 1040,Monaco40,4040 1000090000001700000002321B245321B245000A00000017000000026C2F2226C2F222000B00000005000000020000C0000001D00000001E05DFEE0585E5850721000F0000005200000000400 10 4,77A4,s4,s4,ke.4, 4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAh;_sUQ$i-  main newsOutlineUGIF89aBBB񯯯&&&ېkkkЬͭ򺺺wwwdddbbbLJooo```EEE444؄䮮???ggg›ȹ!!!---\\\III<< busy_anim,outline_collapsedFGIF89a !, boJnȗKI;outline_collapsed_altHGIF89a !, /܊jo=هH;outline_expandedDGIF89a ޭ!, ˝x,EzAT;outline_expanded_altDGIF89a ޭ!, ˝x,EzAT;snake_transparent5zsnake_transparent_smaller>+space/GIFfGIF89a!,D;VGeneva =_}8  "; GX ]author l.m.orchard authorEmaill.m.orchard@pobox.com description default themename default theme%$FFFF000000060001001777AA000000000071000000001001710000001-7F7F6FBE180000048004806D20200-10C8406D20222FFFF01031FE400001000000BD00000003090E40840651A2228CE03CE00050D651A152090E11CC4084051A683322285D03CE00082668331F0011CC1FE4408408336D20222E18038E000D136D20600002000009140000000090E,/* Behaviour v1.0 by Ben Nolan, June 2005. Based largely on the work of Simon Willison (see comments by Simon below). Description: Uses css selectors to apply javascript behaviours to enable unobtrusive javascript in html documents. Usage: var myrules = { 'b.someclass' : function(element){ element.onclick = function(){ alert(this.innerHTML); } }, '#someid u' : function(element){ element.onmouseover = function(){ this.innerHTML = "BLAH!"; } } ); Behaviour.register(myrules); // Call Behaviour.apply() to re-apply the rules (if you // update the dom, etc). License: My stuff is BSD licensed. Not sure about Simon's. More information: http://ripcord.co.nz/behaviour/ */ var Behaviour = { list : new Array, register : function(sheet){ Behaviour.list.push(sheet); }, start : function(){ Behaviour.addLoadEvent(function(){ Behaviour.apply(); }); }, apply : function(){ for (h=0;sheet=Behaviour.list[h];h++){ for (selector in sheet){ list = document.getElementsBySelector(selector); if (!list){ continue; } for (i=0;element=list[i];i++){ sheet[selector](element); } } } }, addLoadEvent : function(func){ var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { oldonload(); func(); } } } } Behaviour.start(); /* The following code is Copyright (C) Simon Willison 2004. document.getElementsBySelector(selector) - returns an array of element objects from the current document matching the CSS selector. Selectors can contain element names, class names and ids and can be nested. For example: elements = document.getElementsBySelect('div#main p a.external') Will return an array of all 'a' elements with 'external' in their class attribute that are contained inside 'p' elements that are contained inside the 'div' element which has id="main" New in version 0.4: Support for CSS2 and CSS3 attribute selectors: See http://www.w3.org/TR/css3-selectors/#attribute-selectors 0002000008C40000090E8BE, Version 0.4 - Simon Willison, March 25th 2003 -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows -- Opera 7 fails */ function getAllChildren(e) { // Returns all children of element. Workaround required for IE5/Windows. Ugh. return e.all ? e.all : e.getElementsByTagName('*'); } document.getElementsBySelector = function(selector) { // Attempt to fail gracefully in lesser browsers if (!document.getElementsByTagName) { return new Array(); } // Split selector in to tokens var tokens = selector.split(' '); var currentContext = new Array(document); for (var i = 0; i < tokens.length; i++) { token = tokens[i].replace(/^\s+/,'').replace(/\s+$/,'');; if (token.indexOf('#') > -1) { // Token is an ID selector var bits = token.split('#'); var tagName = bits[0]; var id = bits[1]; var element = document.getElementById(id); if (tagName && element.nodeName.toLowerCase() != tagName) { // tag with that ID not found, return false return new Array(); } // Set currentContext to contain just this element currentContext = new Array(element); continue; // Skip to next token } if (token.indexOf('.') > -1) { // Token contains a class selector var bits = token.split('.'); var tagName = bits[0]; var className = bits[1]; if (!tagName) { tagName = '*'; } // Get elements matching tag, filter them for class selector var found = new Array; var foundCount = 0; for (var h = 0; h < currentContext.length; h++) { var elements; if (tagName == '*') { elements = getAllChildren(currentContext[h]); } else { elements = currentContext[h].getElementsByTagName(tagName); } for (var j = 0; j < elements.length; j++) { found[foundCount++] = elements[j]; } } currentContext = new Array; var currentContextIndex = 0; for (var k = 0; k < found.length; k++) { if (found[k].className && found[k].className.match(new RegExp('\\b'+className+'\\b'))) { 000200000E1E000011CCE18, currentContext[currentContextIndex++] = found[k]; } } continue; // Skip to next token } // Code to deal with attribute selectors if (token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)) { var tagName = RegExp.$1; var attrName = RegExp.$2; var attrOperator = RegExp.$3; var attrValue = RegExp.$4; if (!tagName) { tagName = '*'; } // Grab all of the tagName elements within current context var found = new Array; var foundCount = 0; for (var h = 0; h < currentContext.length; h++) { var elements; if (tagName == '*') { elements = getAllChildren(currentContext[h]); } else { elements = currentContext[h].getElementsByTagName(tagName); } for (var j = 0; j < elements.length; j++) { found[foundCount++] = elements[j]; } } currentContext = new Array; var currentContextIndex = 0; var checkFunction; // This function will be used to filter the elements switch (attrOperator) { case '=': // Equality checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); }; break; case '~': // Match one of space seperated words checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); }; break; case '|': // Match start with value followed by optional hyphen checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); }; break; case '^': // Match starts with value checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); }; break; case '$': // Match ends with value - fails with "Warning" in Opera 7 checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); }; break; case '*': // Match ends with value checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); }; break; default : // Just test for existence of attribute checkFunction = function(e) { return e.getAttribute(attrName); }; } currentContext = new Array; var currentContextIndex = 0; for (var k = 0; k < found.length; k++) { if (checkFunction(found[k])) { currentContext[currentContextIndex++] = found[k]; } } // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue); continue; // Skip to next token } if (!currentContext[0]){ return; } // If we get here, token is JUST an element (not a class or ID selector) tagName = token; var found = new Array; var foundCount = 0; for (var h = 0; h < currentContext.length; h++) { var elements = currentContext[h].getElementsByTagName(tagName); for (var j = 0; j < elements.length; j++) { found[foundCount++] = elements[j]; } } currentContext = found; } return currentContext; } /* That revolting regular expression explained /^(\w+)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/ \---/ \---/\-------------/ \-------/ | | | | | | | The value | | ~,|,^,$,* or = | Attribute Tag */ 00040000000B0000000201FE6000050000000B0000000201FE60000600000032000000010A210FFFF0A00000 20 000700000019000000010201800008000000970000000140,Geneva40,4030 100009000000150000000239C17D39C17D000A00000017000000026D202226D20222000B00000005000000020000C0000000F000000011FE401000F0000005200000000400 10 4,Tګ4,77A4,4,4,4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA22(t$%$TFFFF000000060001001777AA000000000074000000001001710000001-7F7F6FBE180000048004806231D200-10228106231D222FFFF01034D59000010000026200000009099B4084063EF22296803CC0003E263EF10B099B1204408403EF683322284703CE0008266833A0012041A5E408408336CD222281A03C8000CC548CD218A01A5E228440840CD2610C82227F603C800010BB6010C813D022842AA24084010C8614D82227FB03C800014CB3014D8D702AA232AD4084014D8618732227F303C800018661818738D032AD3AC640840187361B992227D403CC0001B8C61B9917203AC641E4408401B9961DFC2226F003C80001DEF481DFC12C041E44D59408401DFC6231D222B75038E00023106231D600002000009A10000000099B,// // Copyright (C) 2000, 2001, 2002 Virtual Cowboys info@virtualcowboys.nl // // Author: Ruben Daniels // Version: 0.91 // Date: 29-08-2001 // Site: www.vcdn.org/Public/XMLRPC/ // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // LMO: Tweaked this so as not to pollute the Object prototype //Object.prototype.toXMLRPC = function(){ function toXMLRPC(obj) { var wo = obj.valueOf(); if(! wo.toXMLRPC ){ retstr = ""; for(prop in obj){ if(typeof wo[prop] != "function"){ retstr += "" + prop + "" + XMLRPC.getXML(wo[prop]) + ""; } } retstr += ""; return retstr; } else{ return wo.toXMLRPC(); } } String.prototype.toXMLRPC = function(){ // return "";//.replace(/" + this + ""; } else if(this == parseFloat(this)){ return "" + this + ""; } else{ return false.toXMLRPC(); } } Boolean.prototype.toXMLRPC = function(){ if(this) return "1"; else return "0"; } Date.prototype.toXMLRPC = function(){ //Could build in possibilities to express dates //in weeks or other iso8601 possibillities //hmmmm ???? //19980717T14:08:55 return "" + doYear(this.getUTCYear()) + doZero(this.getMonth()) + doZero(this.getUTCDate()) + "T" + doZero(this.getHours()) + ":" + doZero(this.getMinutes()) + ":" + doZero(this.getSeconds()) + ""; 00020000086F0000099B869, function doZero(nr) { nr = String("0" + nr); return nr.substr(nr.length-2, 2); } function doYear(year) { if(year > 9999 || year < 0) XMLRPC.handleError(new Error("Unsupported year: " + year)); year = String("0000" + year) return year.substr(year.length-4, 4); } } Array.prototype.toXMLRPC = function(){ var retstr = ""; for(var i=0;i"; } return retstr + ""; } function VirtualService(servername, oRPC){ this.version = '0.91'; this.URL = servername; this.multicall = false; this.autoroute = true; this.onerror = null; this.rpc = oRPC; this.receive = {}; this.purge = function(receive){ return this.rpc.purge(this, receive); } this.revert = function(){ this.rpc.revert(this); } this.add = function(name, alias, receive){ this.rpc.validateMethodName();if(this.rpc.stop){this.rpc.stop = false;return false} if(receive) this.receive[name] = receive; this[(alias || name)] = new Function('var args = new Array(), i;for(i=0;i" + XMLRPC.getXML(wo[prop]) + ""; } } retstr += ""; return retstr; } else{ return wo.toXMLRPC(); 0002000008600000120485A, } }, routeServer : "http://www.vcdn.org/cgi-bin/rpcproxy.cgi", autoroute : true, multicall : false, services : {}, stack : {}, queue : new Array(), timers : new Array(), timeout : 30000, ontimeout : null, getService : function(serviceName){ //serviceNames cannot contain / or . if(/[\/\.]/.test(serviceName)){ return new VirtualService(serviceName, this); } else if(this.services[serviceName]){ return this.services[serviceName]; } else{ try{ var ct = eval(serviceName); this.services[serviceName] = new ct(this); } catch(e){ return false; } } }, purge : function(modConst, receive){ if(this.stack[modConst.URL].length){ var info = this.send(modConst.URL, "system.multicall", [this.stack[modConst.URL]], receive, false, modConst.autoroute); modConst.autoroute = info[0]; this.revert(modConst); if(info){ modConst.autoroute = info[0]; return info[1]; } else{ if(modConst.onerror) modConst.onerror(this.lastError); return false; } } }, revert : function(modConst){ this.stack[modConst.URL] = new Array(); }, call : function(){ //[optional info || receive, servername,] functionname, args...... var args = new Array(), i, a = arguments; var servername, methodname, receive, service, info, autoroute, multicall; if(typeof a[0] == "object"){ receive = a[0][0]; servername = a[0][1].URL; methodname = a[1]; multicall = (a[0][1].supportsMulticall && a[0][1].multicall); autoroute = a[0][1].autoroute; service = a[0][1]; } else if(typeof a[0] == "function"){ i = 3; receive = a[0]; servername = a[1]; methodname = a[2]; } else{ i = 2; servername = a[0]; methodname = a[1]; } for(i=i;i mask/s * -------------------- * undefined -> 0/1 [default] * number -> 2 * boolean -> 4 * string -> 8 * function -> 16 * object -> 32 * -------------------- * Examples: * Want [String] only: (eqv. (typeof(vDunno) == 'string') ) * Soya.Common.typematch(unknown, 8) * Anything else than 'undefined' acceptable: * Soya.Common.typematch(unknown) * Want [Number], [Boolean] or [Function]: * Soya.Common.typematch(unknown, 2 + 4 + 16) * Want [Number] only: * Soya.Common.typematch(unknown, 2) **/ typematch : function (vDunno, nCase){ var nMask; switch(typeof(vDunno)){ case 'number' : nMask = 2; break; case 'boolean' : nMask = 4; break; case 'string' : nMask = 8; break; case 'function': nMask = 16; break; case 'object' : nMask = 32; break; default : nMask = 1; break; } return Boolean(nMask & (nCase || 62)); }, getNode : function(data, tree){ var nc = 0;//nodeCount //node = 1 if(data != null){ for(i=0;i 1){ tree.shift(); data = this.getNode(data, tree); } return data; } nc++ } } } return false; }, toObject : function(data){ var ret, i; switch(data.tagName){ case "string": return (data.firstChild) ? new String(data.firstChild.nodeValue) : ""; break; case "int": case "i4": case "double": return (data.firstChild) ? new Number(data.firstChild.nodeValue) : 0; break; case "dateTime.iso8601": /* Have to read the spec to be able to completely 0002000008240000228481E, parse all the possibilities in iso8601 07-17-1998 14:08:55 19980717T14:08:55 */ var sn = (isIE) ? "-" : "/"; if(/^(\d{4})(\d{2})(\d{2})T(\d{2}):(\d{2}):(\d{2})/.test(data.firstChild.nodeValue)){;//data.text)){ return new Date(RegExp.$2 + sn + RegExp.$3 + sn + RegExp.$1 + " " + RegExp.$4 + ":" + RegExp.$5 + ":" + RegExp.$6); } else{ return new Date(); } break; case "array": data = this.getNode(data, [0]); if(data && data.tagName == "data"){ ret = new Array(); var i = 0; while(child = this.getNode(data, [i++])){ ret.push(this.toObject(child)); } return ret; } else{ this.handleError(new Error("Malformed XMLRPC Message1")); return false; } break; case "struct": ret = {}; var i = 0; while(child = this.getNode(data, [i++])){ if(child.tagName == "member"){ ret[this.getNode(child, [0]).firstChild.nodeValue] = this.toObject(this.getNode(child, [1])); } else{ this.handleError(new Error("Malformed XMLRPC Message2")); return false; } } return ret; break; case "boolean": return Boolean(isNaN(parseInt(data.firstChild.nodeValue)) ? (data.firstChild.nodeValue == "true") : parseInt(data.firstChild.nodeValue)) break; case "base64": return this.decodeBase64(data.firstChild.nodeValue); break; case "value": child = this.getNode(data, [0]); return (!child) ? ((data.firstChild) ? new String(data.firstChild.nodeValue) : "") : this.toObject(child); break; default: this.handleError(new Error("Malformed XMLRPC Message: " + data.tagName)); return false; break; } }, /*** Decode Base64 ****** * Original Idea & Code by thomas@saltstorm.net * from Soya.Encode.Base64 [http://soya.saltstorm.net] **/ decodeBase64 : function(sEncoded){ // Input must be dividable with 4. 00020000081100002AA280B, if(!sEncoded || (sEncoded.length % 4) > 0) return sEncoded; /* Use NN's built-in base64 decoder if available. This procedure is horribly slow running under NN4, so the NN built-in equivalent comes in very handy. :) */ else if(typeof(atob) != 'undefined') return atob(sEncoded); var nBits, i, sDecoded = ''; var base64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; sEncoded = sEncoded.replace(/\W|=/g, ''); for(i=0; i < sEncoded.length; i += 4){ nBits = (base64.indexOf(sEncoded.charAt(i)) & 0xff) << 18 | (base64.indexOf(sEncoded.charAt(i+1)) & 0xff) << 12 | (base64.indexOf(sEncoded.charAt(i+2)) & 0xff) << 6 | base64.indexOf(sEncoded.charAt(i+3)) & 0xff; sDecoded += String.fromCharCode( (nBits & 0xff0000) >> 16, (nBits & 0xff00) >> 8, nBits & 0xff); } // not sure if the following statement behaves as supposed under // all circumstances, but tests up til now says it does. return sDecoded.substring(0, sDecoded.length - ((sEncoded.charCodeAt(i - 2) == 61) ? 2 : (sEncoded.charCodeAt(i - 1) == 61 ? 1 : 0))); }, getObject : function(type, message){ if(type == "HTTP"){ if(isIE) obj = new ActiveXObject("microsoft.XMLHTTP"); else if(isNS) obj = new XMLHttpRequest(); } else if(type == "XMLDOM"){ if(isIE){ obj = new ActiveXObject("microsoft.XMLDOM"); obj.loadXML(message) }else if(isNS){ obj = new DOMParser(); obj = obj.parseFromString(message, "text/xml"); } } else{ this.handleError(new Error("Unknown Object")); } return obj; }, validateMethodName : function(name){ /*do Checking: The string may only contain identifier characters, upper and lower-case A-Z, the numeric characters, 0-9, underscore, dot, colon and slash. */ if(/^[A-Za-z0-9\._\/:]+$/.test(name)) return true else this.handleError(new Error("Incorrect method name")); }, getXML : function(obj){ 00020000081F000032AD819, if(typeof obj == "function"){ this.handleError(new Error("Cannot Parse functions")); }else if(obj == null || obj == undefined || (typeof obj == "number" && !isFinite(obj))) return false.toXMLRPC(); else return toXMLRPC(obj); // return obj.toXMLRPC(); }, handleError : function(e){ if(!this.onerror || !this.onerror(e)){ //alert("An error has occured: " + e.message); throw e; } this.stop = true; this.lastError = e; }, cancel : function(id){ //You can only cancel a request when it was executed async (I think) if(!this.queue[id]) return false; this.queue[id][0].abort(); return true; }, send : function(serverAddress, functionName, args, receive, multicall, autoroute){ var id, http; //default is sync this.validateMethodName(); if(this.stop){this.stop = false; return false;} //setting up multicall multicall = (multicall != null) ? multicall : this.multicall; if(multicall){ if(!this.stack[serverAddress]) this.stack[serverAddress] = new Array(); this.stack[serverAddress].push({methodName : functionName, params : args}); return true; } //creating http object var http = this.getObject("HTTP"); //setting some things for async/sync transfers if(!receive) { // LMO || isNS){; async = false; } else{ async = true; /* The timer functionality is implemented instead of the onreadystatechange event because somehow the calling of this event crashed IE5.x */ id = this.queue.push([http, receive, null, new Date()])-1; // this.queue[id][2] = new Function("var id='" + id + "';var dt = new Date(new Date().getTime() - XMLRPC.queue[id][3].getTime());diff = parseInt(dt.getSeconds()*1000 + dt.getMilliseconds());if(diff > XMLRPC.timeout){if(XMLRPC.ontimeout) XMLRPC.ontimeout(); clearInterval(XMLRPC.timers[id]);XMLRPC.cancel(id);return};if(XMLRPC.queue[id][0].readyState == 4){XMLRPC.queue[id][0].onreadystatechange = function(){};XMLRPC.receive(id);clearInterval(XMLRPC.timers[id])}"); 00020000072400003AC671E, this.queue[id][2] = function() { var dt = new Date(new Date().getTime() - XMLRPC.queue[id][3].getTime()); diff = parseInt(dt.getSeconds()*1000 + dt.getMilliseconds()); if(diff > XMLRPC.timeout) { if(XMLRPC.ontimeout) XMLRPC.ontimeout(); clearInterval(XMLRPC.timers[id]); XMLRPC.cancel(id); return }; if(XMLRPC.queue[id][0].readyState == 4) { XMLRPC.queue[id][0].onreadystatechange = function(){}; XMLRPC.receive(id); clearInterval(XMLRPC.timers[id]) }; } this.timers[id] = setInterval("XMLRPC.queue[" + id + "][2]()", 20); } //setting up the routing autoroute = (autoroute || this.autoroute); //'active' is only set when direct sending the message has failed var srv = (autoroute == "active") ? this.routeServer : serverAddress; try{ http.open('POST', srv, async); http.setRequestHeader("User-Agent", "vcXMLRPC v0.91 (" + navigator.userAgent + ")"); http.setRequestHeader("Host", srv.replace(/^https?:\/{2}([:\[\]\-\w\.]+)\/?.*/, '$1')); http.setRequestHeader("Content-type", "text/xml"); if(autoroute == "active"){ http.setRequestHeader("X-Proxy-Request", serverAddress); http.setRequestHeader("X-Compress-Response", "gzip"); } } catch(e){ if(autoroute == true){ //Access has been denied, Routing call. autoroute = "active"; if(id){ delete this.queue[id]; clearInterval(this.timers[id]); } return this.send(serverAddress, functionName, args, receive, multicall, autoroute); } //Routing did not work either..Throwing error 000200000B7B000041E4B75, this.handleError(new Error("Could not sent XMLRPC Message (Reason: Access Denied on client)")); if(this.stop){this.stop = false;return false} } //Construct the message var message = '' + functionName + ''; for(i=0;i'; } message += ''; var xmldom = this.getObject('XMLDOM', message); if(self.DEBUG) alert(message); try{ //send message http.send(xmldom); } catch(e){ //Most likely the message timed out(what happend to your internet connection?) this.handleError(new Error("XMLRPC Message not Sent(Reason: " + e.message + ")")); if(this.stop){this.stop = false;return false} } if(!async && receive) { return [autoroute, receive(this.processResult(http))]; } else if(receive) { logDebug("ASYNC and receive"); return [autoroute, id]; } else { logDebug("Async and process"); return [autoroute, this.processResult(http)]; } }, receive : function(id){ //Function for handling async transfers.. if(this.queue[id]){ var data = this.processResult(this.queue[id][0]); this.queue[id][1](data); delete this.queue[id]; } else{ this.handleError(new Error("Error while processing queue")); } }, processResult : function(http){ if(self.DEBUG) alert(http.responseText); if(http.status == 200){ //getIncoming message dom = http.responseXML; if(dom){ var rpcErr, main; //Check for XMLRPC Errors rpcErr = dom.getElementsByTagName("fault"); if(rpcErr.length > 0){ rpcErr = this.toObject(rpcErr[0].firstChild); this.handleError(new Error(rpcErr.faultCode, rpcErr.faultString)); return false } //handle method result main = dom.getElementsByTagName("param"); if(main.length == 0) this.handleError(new Error("Malformed XMLRPC Message")); data = this.toObject(this.getNode(main[0], [0])); //handle receiving if(this.onreceive) this.onreceive(data); return data; } else{ this.handleError(new Error("Malformed XMLRPC Message")); } } else{ this.handleError(new Error("HTTP Exception: (" + http.status + ") " + http.statusText + "\n\n" + http.responseText)); } } } //Smell something ver = navigator.appVersion; app = navigator.appName; isNS = Boolean(navigator.productSub) //moz_can_do_http = (parseInt(navigator.productSub) >= 20010308) isIE = (ver.indexOf("MSIE 5") != -1 || ver.indexOf("MSIE 6") != -1) ? 1 : 0; isIE55 = (ver.indexOf("MSIE 5.5") != -1) ? 1 : 0; isOTHER = (!isNS && !isIE) ? 1 : 0; if(isOTHER) alert("Sorry your browser doesn't support the features of vcXMLRPC"); 00040000000B0000000204D5B000050000000B0000000204D5B0000600000032000000010A210FFFF0A00000 20 000700000019000000010201800008000000970000000140,Geneva40,4030 100009000000150000000239C17D39C17D000A00000019000000026231D2226231D222000B00000005000000020000C0000000F000000014D5901000F0000005200000000400 10 4,3[4,4,4,4,4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA''MY(tT[TzFFFF000000060001001777AA000000000068000000001001710000001-7E7F6FBE180000048004806201200-106201222FFFF0103328000010000003A000000010328408406201222328038E0001F462016000020000032E00000000328,/* Main JS */ var query, _DEBUG; var behaviours = { }; function init() { // See also: http://dean.edwards.name/weblog/2005/09/busted/ if (arguments.callee.done) return; arguments.callee.done = true; // Grab the query params and figure out the debug mode. query = parseQueryString(location.search.substring(1)); _DEBUG = (query.debug == '1') ? true : _DEBUG; if (_DEBUG) createLoggingPane(true); log("Starting up."); // log("Applying Behaviours."); // Behaviour.register(behaviours); // Behaviour.apply(); } /* // See also: http://dean.edwards.name/weblog/2005/09/busted/ if (document.addEventListener) { document.addEventListener("DOMContentLoaded", init, null); } else { addLoadEvent(init); } */ addLoadEvent(init); /* window.onload = init; */ 00040000000B000000020132A100050000000A00000002032A00006000000650000000210A210FFFF0A00000 10 10A30FFFF0A00000 10 0007000000190000000102018000080000012D0000000240,Geneva40,4030 1040,Monaco40,4040 100009000000170000000232712C132712C1000A000000170000000262012226201222000B00000005000000020000C00000017000000013251ED9D26961000F0000005200000000400 10 4,77A4, 1:04,4,4,+4, 4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA)x(^zdFFFF000000060001001777AA00000000006C000000001001710000001-7F7F6FBE180000048004806DA55200-106DA55222FFFF0103187450000100000D070000003009114084066932228E903CE0006866693E8091111AE408406936C1C22289003CE000C0F6C1C43011AE1A1D40840C1C6117E22284503CE00011716117EE601A1D225B40840117E6176F22283403CE00017626176F350225B2A7A40840176F61C762227FA03CE0001C6961C76C502A7A32AE408401C766220C22280903CE00021FF6220CDB032AE3AAD40840220C6276E2227F003CE00027616276E4B03AAD42BB40840276E62A532227FE03CE0002A4662A5359042BB4ABE408402A5362D6C2227E003CE0002D5F62D6CB204ABE52BF408402D6C632CE2227DE03CE00032C1632CEAA052BF5ACA4084032CE637EF2227F203CE00037E2637EF8205ACA62C44084037EF63D9F2227DF03CE0003D9263D9F84062C46AD8408403D9F643C42227F603CE00043B7643C49B06AD872CE4084043C46498E22279403CE00049816498E1F8072CE7AC740840498E64C662227CE03CE0004C5964C66DF07AC782F4408404C66650352227F403CE00050286503512C082F48AEC408405035653A922279903CC000539C653A921408AEC92F94084053A9657442227B903CE0005737657441C0092F99AFC40840574465AF92227CD03CE0005AEC65AF912B09AFCA2F6408405AF965F7E2227D703CE0005F7165F7EC50A2F6AAEE408405F7E663B52227AA03CC00063A8663B518D0AAEEB2E24084063B5668542227E003CE000684766854690B2E2BAE540840685466D272227E903CE0006D1A66D278B0BAE5C2E6408406D27672D72227E403CE00072CA672D7980C2E6CAEB4084072D7676992227DA03CE000768C67699EF0CAEBD2F0408407699679B22227E803CE00079A5679B29B0D2F0DAEF4084079B267E922227E303CE0007E8567E92950DAEFE2D8408407E92683F42227DC03CE00083E7683F4420E2D8EAE74084083F4689702227E303CE000896368970FB0EAE7F2D340840897068D8D2227C403CE0008D8068D8DD50F2D3FAC4408408D8D6927A2227EE03CE000926D6927AF0FAC4102D540840927A697332227F203CE000972669733AA0102D510ADE40840973369BAB2227E903CE0009B9E69BABB2010ADE112CE408409BAB69F122227D203CE0009F0569F12A20112CE11AF9408409F126A2932227CF03CC000A2866A2931E6011AF91230440840A2936A74C2227D103CE000A73F6A74C14001230412AF340840A74C6AAC02227C403CE000AAB36AAC0EB012AF31330240840AAC06AEEA2227E303CE000AEDD6AEEAEB01330213AEA40840AEEA6B2ED2227C903CE000B2E06B2ED9D013AEA142D540840B2ED6B7652227E103CE000B7586B765350142D514AE840840B7656BF372227EA03CE000BF2A6BF37E3014AE8152D840840BF376C3A22227E503CC000C3956C3A2390152D815EBB40840C3A26C54F222BDE03CC000C5426C54F1B015EBB1653740840C54F6C87522267203CE000C8686C8753301653716C6640840C8756CB4022270803CE000CB336CB40E1016C66173D140840CB406CF8422275403CE000CF776CF84830173D117B3F40840CF846D43022274203CE000D4236D430E1017B3F1874540840D4306DA55222C06038E000DA486DA556000020000091700000000911,/*** MochiKit.MochiKit 1.2 : PACKED VERSION THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please diff against the source tree, not this file. See for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.Base"); } if(typeof (MochiKit)=="undefined"){ MochiKit={}; } if(typeof (MochiKit.Base)=="undefined"){ MochiKit.Base={}; } MochiKit.Base.VERSION="1.2"; MochiKit.Base.NAME="MochiKit.Base"; MochiKit.Base.update=function(_1,_2){ if(_1==null){ _1={}; } for(var i=1;i>b; },zrshift:function(a,b){ return a>>>b; },eq:function(a,b){ return a==b; },ne:function(a,b){ return a!=b; },gt:function(a,b){ return a>b; },ge:function(a,b){ return a>=b; },lt:function(a,b){ return al){ _37=l; } } _36=[]; for(i=0;i<_37;i++){ var _38=[]; for(var j=1;j0){ _51=m.concat(me.im_preargs,_51); } var _46=me.im_self; if(!_46){ _46=this; } return me.im_func.apply(_46,_51); }; _50.im_self=_49; _50.im_func=_47; _50.im_preargs=_48; return _50; },bindMethods:function(_52){ var _53=MochiKit.Base.bind; for(var k in _52){ var _54=_52[k]; if(typeof (_54)=="function"){ _52[k]=_53(_54,_52); } } },registerComparator:function(_55,_56,_57,_58){ MochiKit.Base.comparatorRegistry.register(_55,_56,_57,_58); },_primitives:{"bool":true,"string":true,"number":true},compare:function(a,b){ if(a==b){ return 0; } var _59=(typeof (a)=="undefined"||a==null); var _60=(typeof (b)=="undefined"||b==null); if(_59&&_60){ return 0; }else{ if(_59){ return -1; }else{ if(_60){ return 1; } } } var m=MochiKit.Base; var _61=m._primitives; if(!(typeof (a) in _61&&typeof (b) in _61)){ try{ return m.comparatorRegistry.match(a,b); } catch(e){ if(e!=m.NotFound){ throw e; } } } if(ab){ return 1; 0002000008250000225B81F, } } var _62=m.repr; throw new TypeError(_62(a)+" and "+_62(b)+" can not be compared"); },compareDateLike:function(a,b){ return MochiKit.Base.compare(a.getTime(),b.getTime()); },compareArrayLike:function(a,b){ var _63=MochiKit.Base.compare; var _64=a.length; var _65=0; if(_64>b.length){ _65=1; _64=b.length; }else{ if(_640))){ var kv=MochiKit.DOM.formContents(_108); _108=kv[0]; _109=kv[1]; }else{ if(arguments.length==1){ var o=_108; _108=[]; _109=[]; for(var k in o){ var v=o[k]; if(typeof (v)!="function"){ _108.push(k); _109.push(v); } } } } var rval=[]; var len=Math.min(_108.length,_109.length); var _113=MochiKit.Base.urlEncode; for(var i=0;i=stop){ throw self.StopIteration; } _142+=step; return rval; }}; },imap:function(fun,p,q){ var m=MochiKit.Base; var self=MochiKit.Iter; var _146=m.map(self.iter,m.extend(null,arguments,1)); var map=m.map; var next=self.next; return {repr:function(){ return "imap(...)"; },toString:m.forward("repr"),next:function(){ return fun.apply(this,map(next,_146)); }}; },applymap:function(fun,seq,self){ seq=MochiKit.Iter.iter(seq); var m=MochiKit.Base; return {repr:function(){ return "applymap(...)"; },toString:m.forward("repr"),next:function(){ return fun.apply(self,seq.next()); }}; },chain:function(p,q){ var self=MochiKit.Iter; var m=MochiKit.Base; if(arguments.length==1){ return self.iter(arguments[0]); } var _148=m.map(self.iter,arguments); return {repr:function(){ return "chain(...)"; },toString:m.forward("repr"),next:function(){ while(_148.length>1){ try{ return _148[0].next(); } catch(e){ if(e!=self.StopIteration){ throw e; } _148.shift(); } } if(_148.length==1){ var arg=_148.shift(); this.next=m.bind("next",arg); return this.next(); } throw self.StopIteration; }}; },takewhile:function(pred,seq){ var self=MochiKit.Iter; seq=self.iter(seq); return {repr:function(){ 00020000080000005ACA7FA, return "takewhile(...)"; },toString:MochiKit.Base.forward("repr"),next:function(){ var rval=seq.next(); if(!pred(rval)){ this.next=function(){ throw self.StopIteration; }; this.next(); } return rval; }}; },dropwhile:function(pred,seq){ seq=MochiKit.Iter.iter(seq); var m=MochiKit.Base; var bind=m.bind; return {"repr":function(){ return "dropwhile(...)"; },"toString":m.forward("repr"),"next":function(){ while(true){ var rval=seq.next(); if(!pred(rval)){ break; } } this.next=bind("next",seq); return rval; }}; },_tee:function(_150,sync,_152){ sync.pos[_150]=-1; var m=MochiKit.Base; var _153=m.listMin; return {repr:function(){ return "tee("+_150+", ...)"; },toString:m.forward("repr"),next:function(){ var rval; var i=sync.pos[_150]; if(i==sync.max){ rval=_152.next(); sync.deque.push(rval); sync.max+=1; sync.pos[_150]+=1; }else{ rval=sync.deque[i-sync.min]; sync.pos[_150]+=1; if(i==sync.min&&_153(sync.pos)!=sync.min){ sync.min+=1; sync.deque.shift(); } } return rval; }}; },tee:function(_154,n){ var rval=[]; var sync={"pos":[],"deque":[],"max":-1,"min":-1}; if(arguments.length==1){ n=2; } var self=MochiKit.Iter; _154=self.iter(_154); var _tee=self._tee; for(var i=0;i0&&_160>=stop)||(step<0&&_160<=stop)){ throw MochiKit.Iter.StopIteration; } var rval=_160; _160+=step; return rval; },repr:function(){ return "range("+[_160,stop,step].join(", ")+")"; },toString:MochiKit.Base.forward("repr")}; },sum:function(_161,_162){ var x=_162||0; var self=MochiKit.Iter; _161=self.iter(_161); try{ while(true){ x+=_161.next(); } } catch(e){ if(e!=self.StopIteration){ throw e; } } return x; },exhaust:function(_163){ var self=MochiKit.Iter; _163=self.iter(_163); try{ while(true){ _163.next(); } } catch(e){ if(e!=self.StopIteration){ throw e; } } },forEach:function(_164,func,self){ var m=MochiKit.Base; if(arguments.length>2){ func=m.bind(func,self); } if(m.isArrayLike(_164)){ try{ for(var i=0;i<_164.length;i++){ func(_164[i]); } } catch(e){ if(e!=MochiKit.Iter.StopIteration){ throw e; } } }else{ self=MochiKit.Iter; self.exhaust(self.imap(func,_164)); } },every:function(_166,func){ var self=MochiKit.Iter; try{ self.ifilterfalse(func,_166).next(); return false; } catch(e){ if(e!=self.StopIteration){ throw e; } return true; } },sorted:function(_167,cmp){ var rval=MochiKit.Iter.list(_167); if(arguments.length==1){ cmp=MochiKit.Base.compare; } rval.sort(cmp); return rval; },reversed:function(_168){ var rval=MochiKit.Iter.list(_168); rval.reverse(); return rval; },some:function(_169,func){ var self=MochiKit.Iter; try{ self.ifilter(func,_169).next(); return true; } catch(e){ if(e!=self.StopIteration){ throw e; } return false; } },iextend:function(lst,_170){ 0002000007FC00006AD87F6, if(MochiKit.Base.isArrayLike(_170)){ for(var i=0;i<_170.length;i++){ lst.push(_170[i]); } }else{ var self=MochiKit.Iter; _170=self.iter(_170); try{ while(true){ lst.push(_170.next()); } } catch(e){ if(e!=self.StopIteration){ throw e; } } } return lst; },groupby:function(_171,_172){ var m=MochiKit.Base; var self=MochiKit.Iter; if(arguments.length<2){ _172=m.operator.identity; } _171=self.iter(_171); var pk=undefined; var k=undefined; var v; function fetch(){ v=_171.next(); k=_172(v); } function eat(){ var ret=v; v=undefined; return ret; } var _175=true; return {repr:function(){ return "groupby(...)"; },next:function(){ while(k==pk){ fetch(); if(_175){ _175=false; break; } } pk=k; return [k,{next:function(){ if(v==undefined){ fetch(); } if(k!=pk){ throw self.StopIteration; } return eat(); }}]; }}; },groupby_as_array:function(_176,_177){ var m=MochiKit.Base; var self=MochiKit.Iter; if(arguments.length<2){ _177=m.operator.identity; } _176=self.iter(_176); var _178=[]; var _179=true; var _180; while(true){ try{ var _181=_176.next(); var key=_177(_181); } catch(e){ if(e==self.StopIteration){ break; } throw e; } if(_179||key!=_180){ var _182=[]; _178.push([key,_182]); } _182.push(_181); _179=false; _180=key; } return _178; },arrayLikeIter:function(_183){ var i=0; return {repr:function(){ return "arrayLikeIter(...)"; },toString:MochiKit.Base.forward("repr"),next:function(){ if(i>=_183.length){ throw MochiKit.Iter.StopIteration; } return _183[i++]; }}; },hasIterateNext:function(_184){ return (_184&&typeof (_184.iterateNext)=="function"); },iterateNextIter:function(_185){ return {repr:function(){ return "iterateNextIter(...)"; },toString:MochiKit.Base.forward("repr"),next:function(){ var rval=_185.iterateNext(); if(rval===null||rval===undefined){ throw MochiKit.Iter.StopIteration; } return rval; }}; }}); MochiKit.Iter.EXPORT_OK=["iteratorRegistry","arrayLikeIter","hasIterateNext","iterateNextIter",]; 0002000007FF000072CE7F9, MochiKit.Iter.EXPORT=["StopIteration","registerIteratorFactory","iter","count","cycle","repeat","next","izip","ifilter","ifilterfalse","islice","imap","applymap","chain","takewhile","dropwhile","tee","list","reduce","range","sum","exhaust","forEach","every","sorted","reversed","some","iextend","groupby","groupby_as_array"]; MochiKit.Iter.__new__=function(){ var m=MochiKit.Base; this.StopIteration=new m.NamedError("StopIteration"); this.iteratorRegistry=new m.AdapterRegistry(); this.registerIteratorFactory("arrayLike",m.isArrayLike,this.arrayLikeIter); this.registerIteratorFactory("iterateNext",this.hasIterateNext,this.iterateNextIter); this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; m.nameFunctions(this); }; MochiKit.Iter.__new__(); reduce=MochiKit.Iter.reduce; MochiKit.Base._exportSymbols(this,MochiKit.Iter); if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.Logging"); dojo.require("MochiKit.Base"); } if(typeof (JSAN)!="undefined"){ JSAN.use("MochiKit.Base",[]); } try{ if(typeof (MochiKit.Base)=="undefined"){ throw ""; } } catch(e){ throw "MochiKit.Logging depends on MochiKit.Base!"; } if(typeof (MochiKit.Logging)=="undefined"){ MochiKit.Logging={}; } MochiKit.Logging.NAME="MochiKit.Logging"; MochiKit.Logging.VERSION="1.2"; MochiKit.Logging.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; MochiKit.Logging.toString=function(){ return this.__repr__(); }; MochiKit.Logging.EXPORT=["LogLevel","LogMessage","Logger","alertListener","logger","log","logError","logDebug","logFatal","logWarning"]; MochiKit.Logging.EXPORT_OK=["logLevelAtLeast","isLogMessage","compareLogMessage"]; MochiKit.Logging.LogMessage=function(num,_187,info){ this.num=num; this.level=_187; this.info=info; this.timestamp=new Date(); }; MochiKit.Logging.LogMessage.prototype={repr:function(){ var m=MochiKit.Base; return "LogMessage("+m.map(m.repr,[this.num,this.level,this.info]).join(", ")+")"; },toString:MochiKit.Base.forward("repr")}; 00020000083300007AC782D, MochiKit.Base.update(MochiKit.Logging,{logLevelAtLeast:function(_189){ var self=MochiKit.Logging; if(typeof (_189)=="string"){ _189=self.LogLevel[_189]; } return function(msg){ var _191=msg.level; if(typeof (_191)=="string"){ _191=self.LogLevel[_191]; } return _191>=_189; }; },isLogMessage:function(){ var _192=MochiKit.Logging.LogMessage; for(var i=0;i=0&&this._messages.length>this.maxSize){ this._messges.shift(); } },getMessages:function(_201){ var _202=0; if(!(typeof (_201)=="undefined"||_201==null)){ _202=Math.max(0,this._messages.length-_201); } return this._messages.slice(_202); },getMessageText:function(_203){ if(typeof (_203)=="undefined"||_203==null){ _203=30; } var _204=this.getMessages(_203); if(_204.length){ var lst=map(function(m){ return "\n ["+m.num+"] "+m.level+": "+m.info.join(" "); 0002000007FE000082F47F8, },_204); lst.unshift("LAST "+_204.length+" MESSAGES:"); return lst.join(""); } return ""; },debuggingBookmarklet:function(_205){ if(typeof (MochiKit.LoggingPane)=="undefined"){ alert(this.getMessageText()); }else{ MochiKit.LoggingPane.createLoggingPane(_205||false); } }}; MochiKit.Logging.__new__=function(){ this.LogLevel={ERROR:40,FATAL:50,WARNING:30,INFO:20,DEBUG:10}; var m=MochiKit.Base; m.registerComparator("LogMessage",this.isLogMessage,this.compareLogMessage); var _206=m.partial; var _207=this.Logger; var _208=_207.prototype.baseLog; m.update(this.Logger.prototype,{debug:_206(_208,"DEBUG"),log:_206(_208,"INFO"),error:_206(_208,"ERROR"),fatal:_206(_208,"FATAL"),warning:_206(_208,"WARNING")}); var self=this; var _209=function(name){ return function(){ self.logger[name].apply(self.logger,arguments); }; }; this.log=_209("log"); this.logError=_209("error"); this.logDebug=_209("debug"); this.logFatal=_209("fatal"); this.logWarning=_209("warning"); this.logger=new _207(); this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; m.nameFunctions(this); }; MochiKit.Logging.__new__(); MochiKit.Base._exportSymbols(this,MochiKit.Logging); if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.DateTime"); } if(typeof (MochiKit)=="undefined"){ MochiKit={}; } if(typeof (MochiKit.DateTime)=="undefined"){ MochiKit.DateTime={}; } MochiKit.DateTime.NAME="MochiKit.DateTime"; MochiKit.DateTime.VERSION="1.2"; MochiKit.DateTime.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; MochiKit.DateTime.toString=function(){ return this.__repr__(); }; MochiKit.DateTime.isoDate=function(str){ str=str+""; if(typeof (str)!="string"||str.length==0){ return null; } var iso=str.split("-"); if(iso.length==0){ return null; } return new Date(iso[0],iso[1]-1,iso[2]); }; MochiKit.DateTime._isoRegexp=/(\d{4,})(?:-(\d{1,2})(?:-(\d{1,2})(?:[T ](\d{1,2}):(\d{1,2})(?::(\d{1,2})(?:\.(\d+))?)?(?:(Z)|([+-])(\d{1,2})(?::(\d{1,2}))?)?)?)?)?/; 00020000081300008AEC80D, MochiKit.DateTime.isoTimestamp=function(str){ str=str+""; if(typeof (str)!="string"||str.length==0){ return null; } var res=str.match(MochiKit.DateTime._isoRegexp); if(typeof (res)=="undefined"||res==null){ return null; } var year,month,day,hour,min,sec,msec; year=parseInt(res[1],10); if(typeof (res[2])=="undefined"||res[2]==""){ return new Date(year); } month=parseInt(res[2],10)-1; day=parseInt(res[3],10); if(typeof (res[4])=="undefined"||res[4]==""){ return new Date(year,month,day); } hour=parseInt(res[4],10); min=parseInt(res[5],10); sec=(typeof (res[6])!="undefined"&&res[6]!="")?parseInt(res[6],10):0; if(typeof (res[7])!="undefined"&&res[7]!=""){ msec=Math.round(1000*parseFloat("0."+res[7])); }else{ msec=0; } if((typeof (res[8])=="undefined"||res[8]=="")&&(typeof (res[9])=="undefined"||res[9]=="")){ return new Date(year,month,day,hour,min,sec,msec); } var ofs; if(typeof (res[9])!="undefined"&&res[9]!=""){ ofs=parseInt(res[10],10)*3600000; if(typeof (res[11])!="undefined"&&res[11]!=""){ ofs+=parseInt(res[11],10)*60000; } if(res[9]=="-"){ ofs=-ofs; } }else{ ofs=0; } return new Date(Date.UTC(year,month,day,hour,min,sec,msec)-ofs); }; MochiKit.DateTime.toISOTime=function(date,_215){ if(typeof (date)=="undefined"||date==null){ return null; } var hh=date.getHours(); var mm=date.getMinutes(); var ss=date.getSeconds(); var lst=[((_215&&(hh<10))?"0"+hh:hh),((mm<10)?"0"+mm:mm),((ss<10)?"0"+ss:ss)]; return lst.join(":"); }; MochiKit.DateTime.toISOTimestamp=function(date,_219){ if(typeof (date)=="undefined"||date==null){ return null; } var sep=_219?"T":" "; var foot=_219?"Z":""; if(_219){ date=new Date(date.getTime()+(date.getTimezoneOffset()*60000)); } return MochiKit.DateTime.toISODate(date)+sep+MochiKit.DateTime.toISOTime(date,_219)+foot; }; MochiKit.DateTime.toISODate=function(date){ if(typeof (date)=="undefined"||date==null){ return null; } var _222=MochiKit.DateTime._padTwo; return [date.getFullYear(),_222(date.getMonth()+1),_222(date.getDate())].join("-"); 000200000809000092F9803, }; MochiKit.DateTime.americanDate=function(d){ d=d+""; if(typeof (d)!="string"||d.length==0){ return null; } var a=d.split("/"); return new Date(a[2],a[0]-1,a[1]); }; MochiKit.DateTime._padTwo=function(n){ return (n>9)?n:"0"+n; }; MochiKit.DateTime.toPaddedAmericanDate=function(d){ if(typeof (d)=="undefined"||d==null){ return null; } var _224=MochiKit.DateTime._padTwo; return [_224(d.getMonth()+1),_224(d.getDate()),d.getFullYear()].join("/"); }; MochiKit.DateTime.toAmericanDate=function(d){ if(typeof (d)=="undefined"||d==null){ return null; } return [d.getMonth()+1,d.getDate(),d.getFullYear()].join("/"); }; MochiKit.DateTime.EXPORT=["isoDate","isoTimestamp","toISOTime","toISOTimestamp","toISODate","americanDate","toPaddedAmericanDate","toAmericanDate"]; MochiKit.DateTime.EXPORT_OK=[]; MochiKit.DateTime.EXPORT_TAGS={":common":MochiKit.DateTime.EXPORT,":all":MochiKit.DateTime.EXPORT}; MochiKit.DateTime.__new__=function(){ var base=this.NAME+"."; for(var k in this){ var o=this[k]; if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){ try{ o.NAME=base+k; } catch(e){ } } } }; MochiKit.DateTime.__new__(); (function(_225,_226){ if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(typeof (MochiKit.__compat__)=="boolean"&&MochiKit.__compat__)){ var all=_226.EXPORT_TAGS[":all"]; for(var i=0;i_234){ var i=_240.length-_234; res=fmt.separator+_240.substring(i,_240.length)+res; _240=_240.substring(0,i); } } res=_240+res; if(_232>0){ while(frac.length<_235){ frac=frac+"0"; } res=res+fmt.decimal+frac; } return _236+res+_237; }; }; MochiKit.Format.numberFormatter=function(_242,_243,_244){ if(typeof (_243)=="undefined"){ _243=""; } var _245=_242.match(/((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/); if(!_245){ throw TypeError("Invalid pattern"); } var _246=_242.substr(0,_245.index); var _247=_242.substr(_245.index+_245[0].length); if(_246.search(/-/)==-1){ _246=_246+"-"; } var _248=_245[1]; var frac=(typeof (_245[2])=="string"&&_245[2]!="")?_245[2]:""; var _249=(typeof (_245[3])=="string"&&_245[3]!=""); var tmp=_248.split(/,/); var _251; if(typeof (_244)=="undefined"){ _244="default"; } if(tmp.length==1){ _251=null; }else{ _251=tmp[1].length; } var _252=_248.length-_248.replace(/0/g,"").length; var _253=frac.length-frac.replace(/0/g,"").length; var _254=frac.length; var rval=MochiKit.Format._numberFormatter(_243,_246,_247,_244,_249,_254,_252,_251,_253); var m=MochiKit.Base; if(m){ var fn=arguments.callee; var args=m.concat(arguments); rval.repr=function(){ return [self.NAME,"(",map(m.repr,args).join(", "),")"].join(""); }; } return rval; }; MochiKit.Format.formatLocale=function(_256){ if(typeof (_256)=="undefined"||_256==null){ _256="default"; } if(typeof (_256)=="string"){ var rval=MochiKit.Format.LOCALE[_256]; if(typeof (rval)=="string"){ rval=arguments.callee(rval); MochiKit.Format.LOCALE[_256]=rval; 0002000007FE0000A2F67F8, } return rval; }else{ return _256; } }; MochiKit.Format.twoDigitAverage=function(_257,_258){ if(_258){ var res=_257/_258; if(!isNaN(res)){ return MochiKit.Format.twoDigitFloat(_257/_258); } } return "0"; }; MochiKit.Format.twoDigitFloat=function(_259){ var sign=(_259<0?"-":""); var s=Math.floor(Math.abs(_259)*100).toString(); if(s=="0"){ return s; } if(s.length<3){ while(s.charAt(s.length-1)=="0"){ s=s.substring(0,s.length-1); } return sign+"0."+s; } var head=sign+s.substring(0,s.length-2); var tail=s.substring(s.length-2,s.length); if(tail=="00"){ return head; }else{ if(tail.charAt(1)=="0"){ return head+"."+tail.charAt(0); }else{ return head+"."+tail; } } }; MochiKit.Format.lstrip=function(str,_264){ str=str+""; if(typeof (str)!="string"){ return null; } if(!_264){ return str.replace(/^\s+/,""); }else{ return str.replace(new RegExp("^["+_264+"]+"),""); } }; MochiKit.Format.rstrip=function(str,_265){ str=str+""; if(typeof (str)!="string"){ return null; } if(!_265){ return str.replace(/\s+$/,""); }else{ return str.replace(new RegExp("["+_265+"]+$"),""); } }; MochiKit.Format.strip=function(str,_266){ var self=MochiKit.Format; return self.rstrip(self.lstrip(str,_266),_266); }; MochiKit.Format.truncToFixed=function(_267,_268){ _267=Math.floor(_267*Math.pow(10,_268)); var res=(_267*Math.pow(10,-_268)).toFixed(_268); if(res.charAt(0)=="."){ res="0"+res; } return res; }; MochiKit.Format.roundToFixed=function(_269,_270){ return MochiKit.Format.truncToFixed(_269+0.5*Math.pow(10,-_270),_270); }; MochiKit.Format.percentFormat=function(_271){ return MochiKit.Format.twoDigitFloat(100*_271)+"%"; }; MochiKit.Format.EXPORT=["truncToFixed","roundToFixed","numberFormatter","formatLocale","twoDigitAverage","twoDigitFloat","percentFormat","lstrip","rstrip","strip"]; MochiKit.Format.LOCALE={en_US:{separator:",",decimal:".",percent:"%"},de_DE:{separator:".",decimal:",",percent:"%"},fr_FR:{separator:" ",decimal:",",percent:"%"},"default":"en_US"}; 0002000007FA0000AAEE7F4, MochiKit.Format.EXPORT_OK=[]; MochiKit.Format.EXPORT_TAGS={":all":MochiKit.Format.EXPORT,":common":MochiKit.Format.EXPORT}; MochiKit.Format.__new__=function(){ var base=this.NAME+"."; var k,v,o; for(k in this.LOCALE){ o=this.LOCALE[k]; if(typeof (o)=="object"){ o.repr=function(){ return this.NAME; }; o.NAME=base+"LOCALE."+k; } } for(k in this){ o=this[k]; if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){ try{ o.NAME=base+k; } catch(e){ } } } }; MochiKit.Format.__new__(); (function(_272,_273){ if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(typeof (MochiKit.__compat__)=="boolean"&&MochiKit.__compat__)){ var all=_273.EXPORT_TAGS[":all"]; for(var i=0;i=0)){ this._fire(); } },_continue:function(res){ this._resback(res); this._unpause(); },_resback:function(res){ this.fired=((res instanceof Error)?1:0); this.results[this.fired]=res; this._fire(); },_check:function(){ if(this.fired!=-1){ if(!this.silentlyCancelled){ throw new MochiKit.Async.AlreadyCalledError(this); } this.silentlyCancelled=false; return; } },callback:function(res){ this._check(); this._resback(res); },errback:function(res){ this._check(); if(!(res instanceof Error)){ res=new MochiKit.Async.GenericError(res); } this._resback(res); },addBoth:function(fn){ if(arguments.length>1){ fn=MochiKit.Base.partial.apply(null,arguments); } return this.addCallbacks(fn,fn); },addCallback:function(fn){ if(arguments.length>1){ fn=MochiKit.Base.partial.apply(null,arguments); } return this.addCallbacks(fn,null); },addErrback:function(fn){ if(arguments.length>1){ fn=MochiKit.Base.partial.apply(null,arguments); } return this.addCallbacks(null,fn); },addCallbacks:function(cb,eb){ this.chain.push([cb,eb]); if(this.fired>=0){ this._fire(); } return this; },_fire:function(){ var _278=this.chain; var _279=this.fired; var res=this.results[_279]; var self=this; var cb=null; while(_278.length>0&&this.paused==0){ var pair=_278.shift(); var f=pair[_279]; if(f==null){ continue; } try{ res=f(res); _279=((res instanceof Error)?1:0); if(res instanceof MochiKit.Async.Deferred){ cb=function(res){ self._continue(res); }; this._pause(); } } catch(err){ _279=1; res=err; } } this.fired=_279; this.results[_279]=res; if(cb&&this.paused){ res.addBoth(cb); } }}; MochiKit.Base.update(MochiKit.Async,{evalJSONRequest:function(){ return eval("("+arguments[0].responseText+")"); },succeed:function(_281){ 0002000008070000BAE5801, var d=new MochiKit.Async.Deferred(); d.callback.apply(d,arguments); return d; },fail:function(_282){ var d=new MochiKit.Async.Deferred(); d.errback.apply(d,arguments); return d; },getXMLHttpRequest:function(){ var self=arguments.callee; if(!self.XMLHttpRequest){ var _283=[function(){ return new XMLHttpRequest(); },function(){ return new ActiveXObject("Msxml2.XMLHTTP"); },function(){ return new ActiveXObject("Microsoft.XMLHTTP"); },function(){ return new ActiveXObject("Msxml2.XMLHTTP.4.0"); },function(){ throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest"); }]; for(var i=0;i<_283.length;i++){ var func=_283[i]; try{ self.XMLHttpRequest=func; return func(); } catch(e){ } } } return self.XMLHttpRequest(); },sendXMLHttpRequest:function(req,_285){ if(typeof (_285)=="undefined"){ _285=null; } var _286=function(){ try{ req.onreadystatechange=null; } catch(e){ try{ req.onreadystatechange=function(){ }; } catch(e){ } } req.abort(); }; var self=MochiKit.Async; var d=new self.Deferred(_286); var _287=function(){ if(req.readyState==4){ try{ req.onreadystatechange=null; } catch(e){ try{ req.onreadystatechange=function(){ }; } catch(e){ } } var _288=null; try{ _288=req.status; if(!_288&&MochiKit.Base.isNotEmpty(req.responseText)){ _288=304; } } catch(e){ } if(_288==200||_288==304){ d.callback(req); }else{ var err=new self.XMLHttpRequestError(req,"Request failed"); if(err.number){ d.errback(err); }else{ d.errback(err); } } } }; try{ req.onreadystatechange=_287; req.send(_285); } catch(e){ try{ req.onreadystatechange=null; } catch(ignore){ } d.errback(e); } return d; },doSimpleXMLHttpRequest:function(url){ var self=MochiKit.Async; var req=self.getXMLHttpRequest(); if(arguments.length>1){ var m=MochiKit.Base; var qs=m.queryString.apply(null,m.extend(null,arguments,1)); if(qs){ url+="?"+qs; } } req.open("GET",url,true); return self.sendXMLHttpRequest(req); },loadJSONDoc:function(url){ 00020000080B0000C2E6805, var self=MochiKit.Async; var d=self.doSimpleXMLHttpRequest.apply(self,arguments); d=d.addCallback(self.evalJSONRequest); return d; },wait:function(_292,_293){ var d=new MochiKit.Async.Deferred(); var m=MochiKit.Base; if(typeof (_293)!="undefined"){ d.addCallback(function(){ return _293; }); } var _294=setTimeout(m.bind("callback",d),Math.floor(_292*1000)); d.canceller=function(){ try{ clearTimeout(_294); } catch(e){ } }; return d; },callLater:function(_295,func){ var m=MochiKit.Base; var _296=m.partial.apply(m,m.extend(null,arguments,1)); return MochiKit.Async.wait(_295).addCallback(function(res){ return _296(); }); }}); MochiKit.Async.DeferredLock=function(){ this.waiting=[]; this.locked=false; this.id=this._nextId(); }; MochiKit.Async.DeferredLock.prototype={__class__:MochiKit.Async.DeferredLock,acquire:function(){ d=new MochiKit.Async.Deferred(); if(this.locked){ this.waiting.push(d); }else{ this.locked=true; d.callback(this); } return d; },release:function(){ if(!this.locked){ throw TypeError("Tried to release an unlocked DeferredLock"); } this.locked=false; if(this.waiting.length>0){ this.locked=true; this.waiting.shift().callback(this); } },_nextId:MochiKit.Base.counter(),repr:function(){ var _297; if(this.locked){ _297="locked, "+this.waiting.length+" waiting"; }else{ _297="unlocked"; } return "DeferredLock("+this.id+", "+_297+")"; },toString:MochiKit.Base.forward("repr")}; MochiKit.Async.EXPORT=["AlreadyCalledError","CancelledError","BrowserComplianceError","GenericError","XMLHttpRequestError","Deferred","succeed","fail","getXMLHttpRequest","doSimpleXMLHttpRequest","loadJSONDoc","wait","callLater","sendXMLHttpRequest","DeferredLock"]; MochiKit.Async.EXPORT_OK=["evalJSONRequest"]; MochiKit.Async.__new__=function(){ var m=MochiKit.Base; var ne=m.partial(m._newNamedError,this); ne("AlreadyCalledError",function(_299){ this.deferred=_299; }); ne("CancelledError",function(_300){ this.deferred=_300; }); ne("BrowserComplianceError",function(msg){ 00020000080B0000CAEB805, this.message=msg; }); ne("GenericError",function(msg){ this.message=msg; }); ne("XMLHttpRequestError",function(req,msg){ this.req=req; this.message=msg; try{ this.number=req.status; } catch(e){ } }); this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; m.nameFunctions(this); }; MochiKit.Async.__new__(); MochiKit.Base._exportSymbols(this,MochiKit.Async); if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.DOM"); dojo.require("MochiKit.Iter"); } if(typeof (JSAN)!="undefined"){ JSAN.use("MochiKit.Iter",[]); } try{ if(typeof (MochiKit.Iter)=="undefined"){ throw ""; } } catch(e){ throw "MochiKit.DOM depends on MochiKit.Iter!"; } if(typeof (MochiKit.DOM)=="undefined"){ MochiKit.DOM={}; } MochiKit.DOM.NAME="MochiKit.DOM"; MochiKit.DOM.VERSION="1.2"; MochiKit.DOM.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; MochiKit.DOM.toString=function(){ return this.__repr__(); }; MochiKit.DOM.EXPORT=["elementDimensions","formContents","currentWindow","currentDocument","withWindow","withDocument","registerDOMConverter","coerceToDOM","createDOM","createDOMFunc","getNodeAttribute","setNodeAttribute","updateNodeAttributes","appendChildNodes","replaceChildNodes","removeElement","swapDOM","BUTTON","TT","PRE","H1","H2","H3","BR","CANVAS","HR","LABEL","TEXTAREA","FORM","STRONG","SELECT","OPTION","OPTGROUP","LEGEND","FIELDSET","P","UL","OL","LI","TD","TR","THEAD","TBODY","TFOOT","TABLE","TH","INPUT","SPAN","A","DIV","IMG","getElement","$","computedStyle","getElementsByTagAndClassName","addToCallStack","addLoadEvent","focusOnLoad","setElementClass","toggleElementClass","addElementClass","removeElementClass","swapElementClass","hasElementClass","escapeHTML","toHTML","emitHTML","setDisplayForElement","hideElement","showElement","scrapeText","elementPosition"]; MochiKit.DOM.EXPORT_OK=["domConverters"]; MochiKit.DOM.Dimensions=function(w,h){ this.w=w; this.h=h; }; MochiKit.DOM.Dimensions.prototype.repr=function(){ var repr=MochiKit.Base.repr; 0002000008050000D2F07FF, return "{w: "+repr(this.w)+", h: "+repr(this.h)+"}"; }; MochiKit.DOM.Coordinates=function(x,y){ this.x=x; this.y=y; }; MochiKit.DOM.Coordinates.prototype.repr=function(){ var repr=MochiKit.Base.repr; return "{x: "+repr(this.x)+", y: "+repr(this.y)+"}"; }; MochiKit.DOM.elementDimensions=function(elem){ var self=MochiKit.DOM; if(typeof (elem.w)=="number"||typeof (elem.h)=="number"){ return new self.Dimensions(elem.w||0,elem.h||0); } elem=self.getElement(elem); if(!elem){ return undefined; } if(self.computedStyle(elem,"display")!="none"){ return new self.Dimensions(elem.w||0,elem.h||0); } var s=elem.style; var _305=s.visibility; var _306=s.position; s.visibility="hidden"; s.position="absolute"; s.display=""; var _307=elem.clientWidth; var _308=elem.clientHeight; s.display="none"; s.position=_306; s.visibility=_305; return new self.Dimensions(_307,_308); }; MochiKit.DOM.elementPosition=function(elem,_309){ var self=MochiKit.DOM; elem=self.getElement(elem); if(!elem){ return undefined; } var x=0; var y=0; if(elem.offsetParent){ while(elem.offsetParent){ x+=elem.offsetLeft; y+=elem.offsetTop; elem=elem.offsetParent; } }else{ x=elem.x||x; y=elem.y||y; } if(_309){ _309=arguments.callee(_309); if(_309){ x-=(_309.x||0); y-=(_309.y||0); } } return new self.Coordinates(x,y); }; MochiKit.DOM.currentWindow=function(){ return MochiKit.DOM._window; }; MochiKit.DOM.currentDocument=function(){ return MochiKit.DOM._document; }; MochiKit.DOM.withWindow=function(win,func){ var self=MochiKit.DOM; var _311=self._document; var _312=self._win; var rval; try{ self._window=win; self._document=win.document; rval=func(); } catch(e){ self._window=_312; self._document=_311; throw e; } self._window=_312; self._document=_311; return rval; }; MochiKit.DOM.formContents=function(elem){ var _313=[]; var _314=[]; var m=MochiKit.Base; var self=MochiKit.DOM; if(typeof (elem)=="undefined"||elem==null){ elem=self._document; }else{ elem=self.getElement(elem); 0002000007EF0000DAEF7E9, } m.nodeWalk(elem,function(elem){ var name=elem.name; if(m.isNotEmpty(name)){ if(elem.tagName=="INPUT"&&(elem.type=="radio"||elem.type=="checkbox")&&!elem.checked){ return null; } if(elem.tagName=="SELECT"){ var opts=elem.options; for(var i=0;i0){ return node; } if(typeof (node)=="number"||typeof (node)=="bool"){ node=node.toString(); } if(typeof (node)=="string"){ return self._document.createTextNode(node); } if(typeof (node.toDOM)=="function"){ node=node.toDOM(ctx); continue; } if(typeof (node)=="function"){ node=node(ctx); continue; } var _329=null; try{ _329=iter(node); } catch(e){ } if(_329){ return imap(_327,_329,_324(ctx)); } try{ node=_326.match(node,ctx); continue; } catch(e){ if(e!=_328){ throw e; } } return self._document.createTextNode(node.toString()); } return undefined; }; MochiKit.DOM.setNodeAttribute=function(node,attr,_331){ var o={}; o[attr]=_331; try{ return MochiKit.DOM.updateNodeAttributes(node,o); } catch(e){ } return null; 0002000008150000E2D880F, }; MochiKit.DOM.getNodeAttribute=function(node,attr){ var self=MochiKit.DOM; var _332=self.attributeArray.renames[attr]; node=self.getElement(node); try{ if(_332){ return node[_332]; } return node.getAttribute(attr); } catch(e){ } return null; }; MochiKit.DOM.updateNodeAttributes=function(node,_333){ var elem=node; var self=MochiKit.DOM; if(typeof (node)=="string"){ elem=self.getElement(node); } if(_333){ var _334=MochiKit.Base.updatetree; if(self.attributeArray.compliant){ for(var k in _333){ var v=_333[k]; if(typeof (v)=="object"&&typeof (elem[k])=="object"){ _334(elem[k],v); }else{ if(k.substring(0,2)=="on"){ if(typeof (v)=="string"){ v=new Function(v); } elem[k]=v; }else{ elem.setAttribute(k,v); } } } }else{ var _335=self.attributeArray.renames; for(k in _333){ v=_333[k]; var _336=_335[k]; if(k=="style"&&typeof (v)=="string"){ elem.style.cssText=v; }else{ if(typeof (_336)=="string"){ elem[_336]=v; }else{ if(typeof (elem[k])=="object"&&typeof (v)=="object"){ _334(elem[k],v); }else{ if(k.substring(0,2)=="on"){ if(typeof (v)=="string"){ v=new Function(v); } elem[k]=v; }else{ elem.setAttribute(k,v); } } } } } } } return elem; }; MochiKit.DOM.appendChildNodes=function(node){ var elem=node; var self=MochiKit.DOM; if(typeof (node)=="string"){ elem=self.getElement(node); } var _337=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)]; var _338=MochiKit.Iter.iextend; while(_337.length){ var n=_337.shift(); if(typeof (n)=="undefined"||n==null){ }else{ if(typeof (n.nodeType)=="number"){ elem.appendChild(n); }else{ _338(_337,n); } } } return elem; }; MochiKit.DOM.replaceChildNodes=function(node){ var elem=node; var self=MochiKit.DOM; if(typeof (node)=="string"){ elem=self.getElement(node); arguments[0]=elem; } var _339; while((_339=elem.firstChild)){ elem.removeChild(_339); } if(arguments.length<2){ return elem; }else{ return self.appendChildNodes.apply(this,arguments); } }; MochiKit.DOM.createDOM=function(name,_340){ 0002000007F20000EAE77EC, var elem; var self=MochiKit.DOM; if(typeof (name)=="string"){ if(_340&&"name" in _340&&!self.attributeArray.compliant){ name="<"+name+" name=\""+self.escapeHTML(_340.name)+"\">"; } elem=self._document.createElement(name); }else{ elem=name; } if(_340){ self.updateNodeAttributes(elem,_340); } if(arguments.length<=2){ return elem; }else{ var args=MochiKit.Base.extend([elem],arguments,2); return self.appendChildNodes.apply(this,args); } }; MochiKit.DOM.createDOMFunc=function(){ var m=MochiKit.Base; return m.partial.apply(this,m.extend([MochiKit.DOM.createDOM],arguments)); }; MochiKit.DOM.swapDOM=function(dest,src){ var self=MochiKit.DOM; dest=self.getElement(dest); var _343=dest.parentNode; if(src){ src=self.getElement(src); _343.replaceChild(src,dest); }else{ _343.removeChild(dest); } return src; }; MochiKit.DOM.getElement=function(id){ var self=MochiKit.DOM; if(arguments.length==1){ return ((typeof (id)=="string")?self._document.getElementById(id):id); }else{ return MochiKit.Base.map(self.getElement,arguments); } }; MochiKit.DOM.computedStyle=function(_345,_346,_347){ if(arguments.length==2){ _347=_346; } var self=MochiKit.DOM; var el=self.getElement(_345); var _349=self._document; if(!el||el==_349){ return undefined; } if(el.currentStyle){ return el.currentStyle[_346]; } if(typeof (_349.defaultView)=="undefined"){ return undefined; } if(_349.defaultView==null){ return undefined; } var _350=_349.defaultView.getComputedStyle(el,null); if(typeof (_350)=="undefined"||_350==null){ return undefined; } return _350.getPropertyValue(_347); }; MochiKit.DOM.getElementsByTagAndClassName=function(_351,_352,_353){ var self=MochiKit.DOM; if(typeof (_351)=="undefined"||_351==null){ _351="*"; } if(typeof (_353)=="undefined"||_353==null){ _353=self._document; } _353=self.getElement(_353); var _354=_353.getElementsByTagName(_351)||self._document.all; if(typeof (_352)=="undefined"||_352==null){ return MochiKit.Base.extend(null,_354); 0002000007F70000F2D37F1, } var _355=[]; for(var i=0;i<_354.length;i++){ var _356=_354[i]; var _357=_356.className.split(" "); for(var j=0;j<_357.length;j++){ if(_357[j]==_352){ _355.push(_356); break; } } } return _355; }; MochiKit.DOM._newCallStack=function(path,once){ var rval=function(){ var _360=arguments.callee.callStack; for(var i=0;i<_360.length;i++){ if(_360[i].apply(this,arguments)===false){ break; } } if(once){ try{ this[path]=null; } catch(e){ } } }; rval.callStack=[]; return rval; }; MochiKit.DOM.addToCallStack=function(_361,path,func,once){ var self=MochiKit.DOM; var _362=_361[path]; var _363=_362; if(!(typeof (_362)=="function"&&typeof (_362.callStack)=="object"&&_362.callStack!=null)){ _363=self._newCallStack(path,once); if(typeof (_362)=="function"){ _363.callStack.push(_362); } _361[path]=_363; } _363.callStack.push(func); }; MochiKit.DOM.addLoadEvent=function(func){ var self=MochiKit.DOM; self.addToCallStack(self._window,"onload",func,true); }; MochiKit.DOM.focusOnLoad=function(_364){ var self=MochiKit.DOM; self.addLoadEvent(function(){ _364=self.getElement(_364); if(_364){ _364.focus(); } }); }; MochiKit.DOM.setElementClass=function(_365,_366){ var self=MochiKit.DOM; var obj=self.getElement(_365); if(self.attributeArray.compliant){ obj.setAttribute("class",_366); }else{ obj.setAttribute("className",_366); } }; MochiKit.DOM.toggleElementClass=function(_367){ var self=MochiKit.DOM; for(var i=1;i/g,">"); }; MochiKit.DOM.toHTML=function(dom){ return MochiKit.DOM.emitHTML(dom).join(""); }; MochiKit.DOM.emitHTML=function(dom,lst){ if(typeof (lst)=="undefined"||lst==null){ lst=[]; } var _383=[dom]; var self=MochiKit.DOM; var _384=self.escapeHTML; var _385=self.attributeArray; while(_383.length){ dom=_383.pop(); if(typeof (dom)=="string"){ lst.push(dom); }else{ if(dom.nodeType==1){ lst.push("<"+dom.nodeName.toLowerCase()); var _386=[]; var _387=_385(dom); for(var i=0;i<_387.length;i++){ var a=_387[i]; _386.push([" ",a.name,"=\"",_384(a.value),"\""]); } _386.sort(); for(i=0;i<_386.length;i++){ var _388=_386[i]; for(var j=0;j<_388.length;j++){ lst.push(_388[j]); } } if(dom.hasChildNodes()){ lst.push(">"); _383.push(""); var _389=dom.childNodes; for(i=_389.length-1;i>=0;i--){ _383.push(_389[i]); } }else{ lst.push("/>"); } }else{ if(dom.nodeType==3){ lst.push(_384(dom.nodeValue)); 00020000080F000102D5809, } } } } return lst; }; MochiKit.DOM.setDisplayForElement=function(_390,_391){ var m=MochiKit.Base; var _392=m.extend(null,arguments,1); MochiKit.Iter.forEach(m.filter(null,m.map(MochiKit.DOM.getElement,_392)),function(_391){ _391.style.display=_390; }); }; MochiKit.DOM.scrapeText=function(node,_393){ var rval=[]; (function(node){ var cn=node.childNodes; if(cn){ for(var i=0;i0){ var _398=m.filter; _397=function(node){ return _398(_397.ignoreAttrFilter,node.attributes); }; _397.ignoreAttr={}; MochiKit.Iter.forEach(_396.attributes,function(a){ _397.ignoreAttr[a.name]=a.value; }); _397.ignoreAttrFilter=function(a){ return (_397.ignoreAttr[a.name]!=a.value); }; _397.compliant=false; _397.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor"}; }else{ _397=function(node){ return node.attributes; }; _397.compliant=true; _397.renames={}; } this.attributeArray=_397; var _399=this.createDOMFunc; this.UL=_399("ul"); this.OL=_399("ol"); this.LI=_399("li"); this.TD=_399("td"); this.TR=_399("tr"); this.TBODY=_399("tbody"); this.THEAD=_399("thead"); this.TFOOT=_399("tfoot"); this.TABLE=_399("table"); this.TH=_399("th"); this.INPUT=_399("input"); this.SPAN=_399("span"); this.A=_399("a"); this.DIV=_399("div"); this.IMG=_399("img"); this.BUTTON=_399("button"); this.TT=_399("tt"); this.PRE=_399("pre"); this.H1=_399("h1"); this.H2=_399("h2"); this.H3=_399("h3"); this.BR=_399("br"); this.HR=_399("hr"); this.LABEL=_399("label"); this.TEXTAREA=_399("textarea"); 0002000007F600010ADE7F0, this.FORM=_399("form"); this.P=_399("p"); this.SELECT=_399("select"); this.OPTION=_399("option"); this.OPTGROUP=_399("optgroup"); this.LEGEND=_399("legend"); this.FIELDSET=_399("fieldset"); this.STRONG=_399("strong"); this.CANVAS=_399("canvas"); this.hideElement=m.partial(this.setDisplayForElement,"none"); this.showElement=m.partial(this.setDisplayForElement,"block"); this.removeElement=this.swapDOM; this.$=this.getElement; this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; m.nameFunctions(this); }; MochiKit.DOM.__new__(this); MochiKit.Base._exportSymbols(this,MochiKit.DOM); if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.LoggingPane"); dojo.require("MochiKit.Logging"); dojo.require("MochiKit.Base"); } if(typeof (JSAN)!="undefined"){ JSAN.use("MochiKit.Logging",[]); JSAN.use("MochiKit.Base",[]); } try{ if(typeof (MochiKit.Base)=="undefined"||typeof (MochiKit.Logging)=="undefined"){ throw ""; } } catch(e){ throw "MochiKit.LoggingPane depends on MochiKit.Base and MochiKit.Logging!"; } if(typeof (MochiKit.LoggingPane)=="undefined"){ MochiKit.LoggingPane={}; } MochiKit.LoggingPane.NAME="MochiKit.LoggingPane"; MochiKit.LoggingPane.VERSION="1.2"; MochiKit.LoggingPane.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; MochiKit.LoggingPane.toString=function(){ return this.__repr__(); }; MochiKit.LoggingPane.createLoggingPane=function(_400){ var m=MochiKit.LoggingPane; _400=!(!_400); if(m._loggingPane&&m._loggingPane.inline!=_400){ m._loggingPane.closePane(); m._loggingPane=null; } if(!m._loggingPane||m._loggingPane.closed){ m._loggingPane=new m.LoggingPane(_400,MochiKit.Logging.logger); } return m._loggingPane; }; MochiKit.LoggingPane.LoggingPane=function(_401,_402){ if(typeof (_402)=="undefined"||_402==null){ _402=MochiKit.Logging.logger; } this.logger=_402; var _403=MochiKit.Base.update; var _404=MochiKit.Base.updatetree; var bind=MochiKit.Base.bind; var _405=MochiKit.Base.clone; 000200000831000112CE82B, var win=window; var uid="_MochiKit_LoggingPane"; if(typeof (MochiKit.DOM)!="undefined"){ win=MochiKit.DOM.currentWindow(); } if(!_401){ var url=win.location.href.split("?")[0].replace(/[:\/.><&]/g,"_"); var name=uid+"_"+url; var nwin=win.open("",name,"dependent,resizable,height=200"); if(!nwin){ alert("Not able to open debugging window due to pop-up blocking."); return undefined; } nwin.document.write(""+"[MochiKit.LoggingPane]"+""); nwin.document.close(); nwin.document.title+=" "+win.document.title; win=nwin; } var doc=win.document; this.doc=doc; var _408=doc.getElementById(uid); var _409=!!_408; if(_408&&typeof (_408.loggingPane)!="undefined"){ _408.loggingPane.logger=this.logger; _408.loggingPane.buildAndApplyFilter(); return _408.loggingPane; } if(_409){ var _410; while((_410=_408.firstChild)){ _408.removeChild(_410); } }else{ _408=doc.createElement("div"); _408.id=uid; } _408.loggingPane=this; var _411=doc.createElement("input"); var _412=doc.createElement("input"); var _413=doc.createElement("button"); var _414=doc.createElement("button"); var _415=doc.createElement("button"); var _416=doc.createElement("button"); var _417=doc.createElement("div"); var _418=doc.createElement("div"); var _419=uid+"_Listener"; this.colorTable=_405(this.colorTable); var _420=[]; var _421=null; var _422=function(msg){ var _423=msg.level; if(typeof (_423)=="number"){ _423=MochiKit.Logging.LogLevel[_423]; } return _423; }; var _424=function(msg){ return msg.info.join(" "); }; var _425=bind(function(msg){ var _426=_422(msg); var text=_424(msg); var c=this.colorTable[_426]; var p=doc.createElement("span"); p.className="MochiKit-LogMessage MochiKit-LogLevel-"+_426; p.style.cssText="margin: 0px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; white-space: pre-line; word-wrap: break-word; wrap-option: emergency; color: "+c; 00020000081100011AF980B, p.appendChild(doc.createTextNode(_426+": "+text)); _418.appendChild(p); _418.appendChild(doc.createElement("br")); if(_417.offsetHeight>_417.scrollHeight){ _417.scrollTop=0; }else{ _417.scrollTop=_417.scrollHeight; } },this); var _429=function(msg){ _420[_420.length]=msg; _425(msg); }; var _430=function(){ var _431,infore; try{ _431=new RegExp(_411.value); infore=new RegExp(_412.value); } catch(e){ logDebug("Error in filter regex: "+e.message); return null; } return function(msg){ return (_431.test(_422(msg))&&infore.test(_424(msg))); }; }; var _432=function(){ while(_418.firstChild){ _418.removeChild(_418.firstChild); } }; var _433=function(){ _420=[]; _432(); }; var _434=bind(function(){ if(this.closed){ return; } this.closed=true; if(MochiKit.LoggingPane._loggingPane==this){ MochiKit.LoggingPane._loggingPane=null; } this.logger.removeListener(_419); _408.loggingPane=null; if(_401){ _408.parentNode.removeChild(_408); }else{ this.win.close(); } },this); var _435=function(){ _432(); for(var i=0;i<_420.length;i++){ var msg=_420[i]; if(_421==null||_421(msg)){ _425(msg); } } }; this.buildAndApplyFilter=function(){ _421=_430(); _435(); this.logger.removeListener(_419); this.logger.addListener(_419,_421,_429); }; var _436=bind(function(){ _420=this.logger.getMessages(); _435(); },this); var _437=bind(function(_438){ _438=_438||window.event; key=_438.which||_438.keyCode; if(key==13){ this.buildAndApplyFilter(); } },this); var _439="display: block; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: "+this.logFont; if(_401){ _439+="; height: 10em; border-top: 2px solid black"; }else{ _439+="; height: 100%;"; } _408.style.cssText=_439; if(!_409){ doc.body.appendChild(_408); } _439={"cssText":"width: 33%; display: inline; font: "+this.logFont}; _404(_411,{"value":"FATAL|ERROR|WARNING|INFO|DEBUG","onkeypress":_437,"style":_439}); _408.appendChild(_411); _404(_412,{"value":".*","onkeypress":_437,"style":_439}); 0002000007F5000123047EF, _408.appendChild(_412); _439="width: 8%; display:inline; font: "+this.logFont; _413.appendChild(doc.createTextNode("Filter")); _413.onclick=bind("buildAndApplyFilter",this); _413.style.cssText=_439; _408.appendChild(_413); _414.appendChild(doc.createTextNode("Load")); _414.onclick=_436; _414.style.cssText=_439; _408.appendChild(_414); _415.appendChild(doc.createTextNode("Clear")); _415.onclick=_433; _415.style.cssText=_439; _408.appendChild(_415); _416.appendChild(doc.createTextNode("Close")); _416.onclick=_434; _416.style.cssText=_439; _408.appendChild(_416); _417.style.cssText="overflow: auto; width: 100%"; _418.style.cssText="width: 100%; height: "+(_401?"8em":"100%"); _417.appendChild(_418); _408.appendChild(_417); this.buildAndApplyFilter(); _436(); if(_401){ this.win=undefined; }else{ this.win=win; } this.inline=_401; this.closePane=_434; this.closed=false; return this; }; MochiKit.LoggingPane.LoggingPane.prototype={"logFont":"8pt Verdana,sans-serif","colorTable":{"ERROR":"red","FATAL":"darkred","WARNING":"blue","INFO":"black","DEBUG":"green"}}; MochiKit.LoggingPane.EXPORT_OK=["LoggingPane"]; MochiKit.LoggingPane.EXPORT=["createLoggingPane"]; MochiKit.LoggingPane.__new__=function(){ this.EXPORT_TAGS={":common":this.EXPORT,":all":MochiKit.Base.concat(this.EXPORT,this.EXPORT_OK)}; MochiKit.Base.nameFunctions(this); MochiKit.LoggingPane._loggingPane=null; }; MochiKit.LoggingPane.__new__(); MochiKit.Base._exportSymbols(this,MochiKit.LoggingPane); if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.Color"); dojo.require("MochiKit.Base"); } if(typeof (JSAN)!="undefined"){ JSAN.use("MochiKit.Base",[]); } try{ if(typeof (MochiKit.Base)=="undefined"){ throw ""; } } catch(e){ throw "MochiKit.Color depends on MochiKit.Base"; } if(typeof (MochiKit.Color)=="undefined"){ MochiKit.Color={}; } MochiKit.Color.NAME="MochiKit.Color"; MochiKit.Color.VERSION="1.2"; MochiKit.Color.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; 00020000081500012AF380F, }; MochiKit.Color.toString=function(){ return this.__repr__(); }; MochiKit.Color.Color=function(red,_441,blue,_443){ if(typeof (_443)=="undefined"||_443==null){ _443=1; } this.rgb={r:red,g:_441,b:blue,a:_443}; }; MochiKit.Color.Color.prototype={__class__:MochiKit.Color.Color,colorWithAlpha:function(_444){ var rgb=this.rgb; var m=MochiKit.Color; return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,_444); },colorWithHue:function(hue){ var hsl=this.asHSL(); hsl.h=hue; var m=MochiKit.Color; return m.Color.fromHSL(hsl); },colorWithSaturation:function(_448){ var hsl=this.asHSL(); hsl.s=_448; var m=MochiKit.Color; return m.Color.fromHSL(hsl); },colorWithLightness:function(_449){ var hsl=this.asHSL(); hsl.l=_449; var m=MochiKit.Color; return m.Color.fromHSL(hsl); },darkerColorWithLevel:function(_450){ var hsl=this.asHSL(); hsl.l=Math.max(hsl.l-_450,0); var m=MochiKit.Color; return m.Color.fromHSL(hsl); },lighterColorWithLevel:function(_451){ var hsl=this.asHSL(); Math.min(hsl.l+_451,1); var m=MochiKit.Color; return m.Color.fromHSL(hsl); },blendedColor:function(_452,_453){ if(typeof (_453)=="undefined"||_453==null){ _453=0.5; } var sf=1-_453; var s=this.rgb; var d=_452.rgb; var df=_453; return MochiKit.Color.Color.fromRGB((s.r*sf)+(d.r*df),(s.g*sf)+(d.g*df),(s.b*sf)+(d.b*df),(s.a*sf)+(d.a*df)); },compareRGB:function(_456){ var a=this.asRGB(); var b=_456.asRGB(); return MochiKit.Base.compare([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a]); },isLight:function(){ return this.asHSL().b>0.5; },isDark:function(){ return (!this.isLight()); },toHSLString:function(){ var c=this.asHSL(); var ccc=MochiKit.Color.clampColorComponent; var rval=this._hslString; if(!rval){ var mid=(ccc(c.h,360).toFixed(0)+","+ccc(c.s,100).toPrecision(4)+"%"+","+ccc(c.l,100).toPrecision(4)+"%"); var a=c.a; if(a>=1){ a=1; rval="hsl("+mid+")"; }else{ if(a<=0){ a=0; } rval="hsla("+mid+","+a+")"; } this._hslString=rval; } return rval; },toRGBString:function(){ var c=this.rgb; var ccc=MochiKit.Color.clampColorComponent; 0002000007EE000133027E8, var rval=this._rgbString; if(!rval){ var mid=(ccc(c.r,255).toFixed(0)+","+ccc(c.g,255).toFixed(0)+","+ccc(c.b,255).toFixed(0)); if(c.a!=1){ rval="rgba("+mid+","+c.a+")"; }else{ rval="rgb("+mid+")"; } this._rgbString=rval; } return rval; },asRGB:function(){ return MochiKit.Base.clone(this.rgb); },toHexString:function(){ var m=MochiKit.Color; var c=this.rgb; var ccc=MochiKit.Color.clampColorComponent; var rval=this._hexString; if(!rval){ rval=("#"+m.toColorPart(ccc(c.r,255))+m.toColorPart(ccc(c.g,255))+m.toColorPart(ccc(c.b,255))); this._hexString=rval; } return rval; },asHSV:function(){ var hsv=this.hsv; var c=this.rgb; if(typeof (hsv)=="undefined"||hsv==null){ hsv=MochiKit.Color.rgbToHSV(this.rgb); this.hsv=hsv; } return MochiKit.Base.clone(hsv); },asHSL:function(){ var hsl=this.hsl; var c=this.rgb; if(typeof (hsl)=="undefined"||hsl==null){ hsl=MochiKit.Color.rgbToHSL(this.rgb); this.hsl=hsl; } return MochiKit.Base.clone(hsl); },toString:function(){ return this.toRGBString(); },repr:function(){ var c=this.rgb; var col=[c.r,c.g,c.b,c.a]; return this.__class__.NAME+"("+col.join(", ")+")"; }}; MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(red,_461,blue,_462){ var _463=MochiKit.Color.Color; if(arguments.length==1){ var rgb=red; red=rgb.r; _461=rgb.g; blue=rgb.b; if(typeof (rgb.a)=="undefined"){ _462=undefined; }else{ _462=rgb.a; } } return new _463(red,_461,blue,_462); },fromHSL:function(hue,_464,_465,_466){ var m=MochiKit.Color; return m.Color.fromRGB(m.hslToRGB.apply(m,arguments)); },fromHSV:function(hue,_467,_468,_469){ var m=MochiKit.Color; return m.Color.fromRGB(m.hsvToRGB.apply(m,arguments)); },fromName:function(name){ var _470=MochiKit.Color.Color; var _471=_470._namedColors[name.toLowerCase()]; if(typeof (_471)=="string"){ return _470.fromHexString(_471); }else{ if(name=="transparent"){ return _470.transparentColor(); } } return null; },fromString:function(_472){ var self=MochiKit.Color.Color; 0002000007F100013AEA7EB, var _473=_472.substr(0,3); if(_473=="rgb"){ return self.fromRGBString(_472); }else{ if(_473=="hsl"){ return self.fromHSLString(_472); }else{ if(_472.charAt(0)=="#"){ return self.fromHexString(_472); } } } return self.fromName(_472); },fromHexString:function(_474){ if(_474.charAt(0)=="#"){ _474=_474.substring(1); } var _475=[]; var i,hex; if(_474.length==3){ for(i=0;i<3;i++){ hex=_474.substr(i,1); _475.push(parseInt(hex+hex,16)/255); } }else{ for(i=0;i<6;i+=2){ hex=_474.substr(i,2); _475.push(parseInt(hex,16)/255); } } var _476=MochiKit.Color.Color; return _476.fromRGB.apply(_476,_475); },_fromColorString:function(pre,_478,_479,_480){ if(_480.indexOf(pre)==0){ _480=_480.substring(_480.indexOf("(",3)+1,_480.length-1); } var _481=_480.split(/\s*,\s*/); var _482=[]; for(var i=0;i<_481.length;i++){ var c=_481[i]; var val; var _483=c.substring(c.length-3); if(c.charAt(c.length-1)=="%"){ val=0.01*parseFloat(c.substring(0,c.length-1)); }else{ if(_483=="deg"){ val=parseFloat(c)/360; }else{ if(_483=="rad"){ val=parseFloat(c)/(Math.PI*2); }else{ val=_479[i]*parseFloat(c); } } } _482.push(val); } return this[_478].apply(this,_482); },fromComputedStyle:function(elem,_484,_485){ var d=MochiKit.DOM; var cls=MochiKit.Color.Color; for(elem=d.getElement(elem);elem;elem=elem.parentNode){ var _486=d.computedStyle.apply(d,arguments); if(!_486){ continue; } var _487=cls.fromString(_486); if(!_487){ break; } if(_487.asRGB().a>0){ return _487; } } return null; },fromBackground:function(elem){ var cls=MochiKit.Color.Color; return cls.fromComputedStyle(elem,"backgroundColor","background-color")||cls.whiteColor(); },fromText:function(elem){ var cls=MochiKit.Color.Color; return cls.fromComputedStyle(elem,"color","color")||cls.blackColor(); },namedColors:function(){ return MochiKit.Base.clone(MochiKit.Color.Color._namedColors); }}); MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(v,_488){ v*=_488; if(v<0){ return 0; 000200000819000142D5813, }else{ if(v>_488){ return _488; }else{ return v; } } },_hslValue:function(n1,n2,hue){ if(hue>6){ hue-=6; }else{ if(hue<0){ hue+=6; } } var val; if(hue<1){ val=n1+(n2-n1)*hue; }else{ if(hue<3){ val=n2; }else{ if(hue<4){ val=n1+(n2-n1)*(4-hue); }else{ val=n1; } } } return val; },hsvToRGB:function(hue,_491,_492,_493){ if(arguments.length==1){ var hsv=hue; hue=hsv.h; _491=hsv.s; _492=hsv.v; _493=hsv.a; } var red; var _494; var blue; if(_491==0){ red=0; _494=0; blue=0; }else{ var i=Math.floor(hue*6); var f=(hue*6)-i; var p=_492*(1-_491); var q=_492*(1-(_491*f)); var t=_492*(1-(_491*(1-f))); switch(i){ case 1: red=q; _494=_492; blue=p; break; case 2: red=p; _494=_492; blue=t; break; case 3: red=p; _494=q; blue=_492; break; case 4: red=t; _494=p; blue=_492; break; case 5: red=_492; _494=p; blue=q; break; case 6: case 0: red=_492; _494=t; blue=p; break; } } return {r:red,g:_494,b:blue,a:_493}; },hslToRGB:function(hue,_496,_497,_498){ if(arguments.length==1){ var hsl=hue; hue=hsl.h; _496=hsl.s; _497=hsl.l; _498=hsl.a; } var red; var _499; var blue; if(_496==0){ red=_497; _499=_497; blue=_497; }else{ var m2; if(_497<=0.5){ m2=_497*(1+_496); }else{ m2=_497+_496-(_497*_496); } var m1=(2*_497)-m2; var f=MochiKit.Color._hslValue; var h6=hue*6; red=f(m1,m2,h6+2); _499=f(m1,m2,h6); blue=f(m1,m2,h6-2); } return {r:red,g:_499,b:blue,a:_498}; },rgbToHSV:function(red,_503,blue,_504){ if(arguments.length==1){ var rgb=red; red=rgb.r; _503=rgb.g; blue=rgb.b; _504=rgb.a; } var max=Math.max(Math.max(red,_503),blue); var min=Math.min(Math.min(red,_503),blue); var hue; var _507; var _508=max; if(min==max){ hue=0; _507=0; }else{ var _509=(max-min); _507=_509/max; if(red==max){ hue=(_503-blue)/_509; }else{ if(_503==max){ hue=2+((blue-red)/_509); }else{ hue=4+((red-_503)/_509); } } hue/=6; if(hue<0){ hue+=1; } if(hue>1){ hue-=1; } } return {h:hue,s:_507,v:_508,a:_504}; },rgbToHSL:function(red,_510,blue,_511){ 0002000007F600014AE87F0, if(arguments.length==1){ var rgb=red; red=rgb.r; _510=rgb.g; blue=rgb.b; _511=rgb.a; } var max=Math.max(red,Math.max(_510,blue)); var min=Math.min(red,Math.min(_510,blue)); var hue; var _512; var _513=(max+min)/2; var _514=max-min; if(_514==0){ hue=0; _512=0; }else{ if(_513<=0.5){ _512=_514/(max+min); }else{ _512=_514/(2-max-min); } if(red==max){ hue=(_510-blue)/_514; }else{ if(_510==max){ hue=2+((blue-red)/_514); }else{ hue=4+((red-_510)/_514); } } hue/=6; if(hue<0){ hue+=1; } if(hue>1){ hue-=1; } } return {h:hue,s:_512,l:_513,a:_511}; },toColorPart:function(num){ var _515=Math.round(num).toString(16); if(num<16){ return "0"+_515; } return _515; },__new__:function(){ var m=MochiKit.Base; this.Color.fromRGBString=m.bind(this.Color._fromColorString,this.Color,"rgb","fromRGB",[1/255,1/255,1/255,1]); this.Color.fromHSLString=m.bind(this.Color._fromColorString,this.Color,"hsl","fromHSL",[1/360,0.01,0.01,1]); var _516=1/3; var _517={black:[0,0,0],blue:[0,0,1],brown:[0.6,0.4,0.2],cyan:[0,1,1],darkGray:[_516,_516,_516],gray:[0.5,0.5,0.5],green:[0,1,0],lightGray:[2*_516,2*_516,2*_516],magenta:[1,0,1],orange:[1,0.5,0],purple:[0.5,0,0.5],red:[1,0,0],transparent:[0,0,0,0],white:[1,1,1],yellow:[1,1,0]}; var _518=function(name,r,g,b,a){ var rval=this.fromRGB(r,g,b,a); this[name]=function(){ return rval; }; return rval; }; for(var k in _517){ var name=k+"Color"; var _521=m.concat([_518,this.Color,name],_517[k]); this.Color[name]=m.bind.apply(null,_521); } var _522=function(){ for(var i=0;i"+el.innerHTML+""; },_roundTopCorners:function(el,_538,_539){ var _540=this._createCorner(_539); for(var i=0;i=0;i--){ _543.appendChild(this._createCornerSlice(_541,_542,i,"bottom")); } el.style.paddingBottom=0; el.appendChild(_543); },_createCorner:function(_544){ var dom=MochiKit.DOM; return dom.DIV({style:{backgroundColor:_544.toString()}}); },_createCornerSlice:function(_545,_546,n,_547){ var _548=MochiKit.DOM.SPAN(); var _549=_548.style; _549.backgroundColor=_545.toString(); _549.display="block"; _549.height="1px"; _549.overflow="hidden"; _549.fontSize="1px"; var _550=this._borderColor(_545,_546); 00020000077100016C6676B, if(this.options.border&&n==0){ _549.borderTopStyle="solid"; _549.borderTopWidth="1px"; _549.borderLeftWidth="0px"; _549.borderRightWidth="0px"; _549.borderBottomWidth="0px"; _549.height="0px"; _549.borderColor=_550.toString(); }else{ if(_550){ _549.borderColor=_550.toString(); _549.borderStyle="solid"; _549.borderWidth="0px 1px"; } } if(!this.options.compact&&(n==(this.options.numSlices-1))){ _549.height="2px"; } this._setMargin(_548,n,_547); this._setBorder(_548,n,_547); return _548; },_setOptions:function(_551){ this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false,__unstable__wrapElement:false}; MochiKit.Base.update(this.options,_551); this.options.numSlices=(this.options.compact?2:4); },_whichSideTop:function(){ var _552=this.options.corners; if(this._hasString(_552,"all","top")){ return ""; } var _553=(_552.indexOf("tl")!=-1); var _554=(_552.indexOf("tr")!=-1); if(_553&&_554){ return ""; } if(_553){ return "left"; } if(_554){ return "right"; } return ""; },_whichSideBottom:function(){ var _555=this.options.corners; if(this._hasString(_555,"all","bottom")){ return ""; } var _556=(_555.indexOf("bl")!=-1); var _557=(_555.indexOf("br")!=-1); if(_556&&_557){ return ""; } if(_556){ return "left"; } if(_557){ return "right"; } return ""; },_borderColor:function(_558,_559){ if(_558=="transparent"){ return _559; }else{ if(this.options.border){ return this.options.border; }else{ if(this.options.blend){ return _559.blendedColor(_558); } } } return ""; },_setMargin:function(el,n,_560){ var _561=this._marginSize(n)+"px"; var _562=(_560=="top"?this._whichSideTop():this._whichSideBottom()); var _563=el.style; if(_562=="left"){ _563.marginLeft=_561; _563.marginRight="0px"; }else{ if(_562=="right"){ _563.marginRight=_561; _563.marginLeft="0px"; 000200000774000173D176E, }else{ _563.marginLeft=_561; _563.marginRight=_561; } } },_setBorder:function(el,n,_564){ var _565=this._borderSize(n)+"px"; var _566=(_564=="top"?this._whichSideTop():this._whichSideBottom()); var _567=el.style; if(_566=="left"){ _567.borderLeftWidth=_565; _567.borderRightWidth="0px"; }else{ if(_566=="right"){ _567.borderRightWidth=_565; _567.borderLeftWidth="0px"; }else{ _567.borderLeftWidth=_565; _567.borderRightWidth=_565; } } },_marginSize:function(n){ if(this.isTransparent){ return 0; } var o=this.options; if(o.compact&&o.blend){ var _568=[1,0]; return _568[n]; }else{ if(o.compact){ var _569=[2,1]; return _569[n]; }else{ if(o.blend){ var _570=[3,2,1,0]; return _570[n]; }else{ var _571=[5,3,2,1]; return _571[n]; } } } },_borderSize:function(n){ var o=this.options; var _572; if(o.compact&&(o.blend||this.isTransparent)){ return 1; }else{ if(o.compact){ _572=[1,0]; }else{ if(o.blend){ _572=[2,1,1,1]; }else{ if(o.border){ _572=[0,2,0,0]; }else{ if(this.isTransparent){ _572=[5,3,2,1]; }else{ return 0; } } } } } return _572[n]; },_hasString:function(str){ for(var i=1;i"+"<"+"/script"+">"; document.write(tag); } } })(); } 00040000000C00000002018747000050000000C000000020187470000600000032000000010A210FFFF0A00000 20 000700000019000000010201800008000000970000000140,Geneva40,4030 100009000000150000000239C17D39C17D000A00000019000000026DA552226DA55222000B00000005000000020000C00000013000000011874507901000F0000005200000000400 10 4,4,4,4,4,4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA‡ˆE(tdu]Geneva Ot+LANDmac NOTE: THIS IS A NASTY AND INSECURE HACK THAT I'M USING UNTIL I THINK OF A BETTER WAY TO DO THIS. THIS SUCKS. In a nutshell, it allows you to pull your Aggregator API username and password straight from the server. Which, you know, defeats the whole point of having a username and password on the API. There's got to be a more secure way to "login" from the browser-side to use the XML-RPC API. local outtext = "" on add(s) outtext = outtext + s + "\r\n"; add("API_USERNAME = \""+aggregatorData.prefs.security.username+"\";") add("API_PASSWD = \""+aggregatorData.prefs.security.password+"\";") add("API_URL = \"http://\"+location.host+\"/RPC2\";") return outtext WdatatablG createdSun, 22 Jan 2006 05:40:40 GMTWdatatablGpp createdSun, 22 Jan 2006 05:42:24 GMTWdatatablG44 createdSun, 22 Jan 2006 05:45:40 GMTWdatatablGss createdSun, 22 Jan 2006 05:42:27 GMTWdatatablGkk createdSun, 22 Jan 2006 05:42:19 GMTWdatatablG__ createdSun, 22 Jan 2006 05:37:51 GMTWdatatablGcc createdSun, 22 Jan 2006 05:37:55 GMTWdatatablGgg createdSun, 22 Jan 2006 05:37:59 GMTWdatatablGtt createdSun, 22 Jan 2006 05:38:12 GMTu!xFFFF000000060001001777AA000000000081000000001001710000001-7EFB6FBE180000048004806C6A200-114CB14D614CB14D671106C6A222FFFF010315BF00001000000B700000003091184064092228E503CE0003FC64091080911F2B84040966A02225D403CE00069366A01A40F2B1B5C408406A06C6A222C1C038E000C5D6C6A6000020000091700000000911,/* miniagg outline UI implementation */ var ID_COUNTER = counter(); function newsoutline_init() { // Debounce the init call if (arguments.callee.done) return; arguments.callee.done = true; // Build all the list outline controls. forEach(document.getElementsByTagName("li"), function(li) { var cn = li.className; // Only interested in feed and entry list items. if (! (/feed/.test(cn) || /entry/.test(cn)) ) return; // Add new IDs where none found. if (!getNodeAttribute(li, "id")) { li.setAttribute("id", "_id"+ID_COUNTER()); } var li_id = li.getAttribute("id"); if (/feed/.test(cn)) { if (showDeleteButtons) insertDeleteAllButton(li_id); insertToggleAll(li_id); } if (/entry/.test(cn)) { if (showDeleteButtons) insertDeleteButton(li_id); if (!getEntryContent(li_id)) addElementClass(li, "empty"); } insertLinkShortcut(li_id); insertOutlineHandle(li_id); }); } function getEntryContent(li_id) { var li = $(li_id); var uls = li.getElementsByTagName('ul'); for (var i=0, ul; ul = uls[i]; i++) if (ul.className == "entrycontent") return ul; return null; } function insertToggleAll(li_id) { var li = $(li_id); var button = document.createElement("span"); button.appendChild(document.createTextNode("show all")); button.className = "control button"; button.onclick = function() { return toggleChildren($(li_id)); } li.insertBefore(button, li.firstChild); } function insertLinkShortcut(li_id) { var li = $(li_id); var links = getElementsByTagAndClassName("a", "feedlink", li); if (links.length == 0) { links = getElementsByTagAndClassName("a", "entrylink", li); } if (links.length > 0) { var link = document.createElement("a"); link.className = "link button"; link.href = links[0].getAttribute("href"); link.target = "_new"; link.appendChild(document.createTextNode("link")); li.insertBefore(link, li.firstChild); } } function insertDeleteAllButton(li_id) { var li = $(li_id); // Create and insert the delete all button var link = document.createElement("a"); 0002000006200000091161A, link.className = "link button"; link.appendChild(document.createTextNode("delete all")); li.insertBefore(link, li.firstChild); // Collect entry ids for this feed. var entry_ids = []; var lis = li.getElementsByTagName("li"); for (var i=0; i<"+"/script>"); /*@end @*/ /* for other browsers */ /* window.onload = init; */ addLoadEvent(newsoutline_init); 00040000000C00000002011B5E100050000000B0000000201B5E00006000000650000000210A210FFFF0A00000 10 10A30FFFF0A00000 10 0007000000190000000102018000080000012D0000000240,Geneva40,4030 1040,Monaco40,4040 1000090000001700000002325A25D325A25D000A00000017000000026C6A2226C6A222000B00000005000000020000C000000150000000115C095F6360000F0000005200000000400 10 4,77A4,4, +4,4,T4,4,tool00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA%8)X\=M !xRFFFF000000060001001777AA000000000074000000001001710000001-7F7F6FBE18000004800480621FF200-1021630621FF222FFFF01034B2700001000002620000000909BA4084063EF22298703CC0003E263EF10B09BA1222408403EF687422284C03C800086760874EC012221A65408408746CC522282C03C8000CB818CC5AE01A65229C40840CC5610C822281703C800010BB6010C8F50229C2AAD4084010C8614972227EA03C8000148A301497EA02AAD32E4408401497618732227F203C8000186630187317E032E43AFE40840187361B242227CF03CE0001B1761B2415C03AFE4147408401B2461D6022260003C80001D53301D601A6041474B27408401D60621FF2229E0038E00021F2621FF600002000009C0000000009BA,// // Copyright (C) 2000, 2001, 2002 Virtual Cowboys info@virtualcowboys.nl // // Author: Ruben Daniels // Version: 0.91 // Date: 29-08-2001 // Site: www.vcdn.org/Public/XMLRPC/ // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // LMO: Tweaked this so as not to pollute the Object prototype //Object.prototype.toXMLRPC = function(){ function toXMLRPC(obj) { var wo = obj.valueOf(); if(! wo.toXMLRPC ){ retstr = ""; for(prop in obj){ if(typeof wo[prop] != "function"){ retstr += "" + prop + ""; retstr += "" + XMLRPC.getXML(wo[prop]) + ""; } } retstr += ""; return retstr; } else{ return wo.toXMLRPC(); } } String.prototype.toXMLRPC = function(){ // return "";//.replace(/" + this + ""; } else if(this == parseFloat(this)){ return "" + this + ""; } else{ return false.toXMLRPC(); } } Boolean.prototype.toXMLRPC = function(){ if(this) return "1"; else return "0"; } Date.prototype.toXMLRPC = function(){ //Could build in possibilities to express dates //in weeks or other iso8601 possibillities //hmmmm ???? //19980717T14:08:55 return "" + doYear(this.getUTCYear()) + doZero(this.getMonth()) + doZero(this.getUTCDate()) + "T" + doZero(this.getHours()) + ":" + doZero(this.getMinutes()) + ":" + doZero(this.getSeconds()) + ""; 00020000086E000009BA868, function doZero(nr) { nr = String("0" + nr); return nr.substr(nr.length-2, 2); } function doYear(year) { if(year > 9999 || year < 0) XMLRPC.handleError(new Error("Unsupported year: " + year)); year = String("0000" + year) return year.substr(year.length-4, 4); } } Array.prototype.toXMLRPC = function(){ var retstr = ""; for(var i=0;i"; } return retstr + ""; } function VirtualService(servername, oRPC){ this.version = '0.91'; this.URL = servername; this.multicall = false; this.autoroute = true; this.onerror = null; this.rpc = oRPC; this.receive = {}; this.purge = function(receive){ return this.rpc.purge(this, receive); } this.revert = function(){ this.rpc.revert(this); } this.add = function(name, alias, receive){ this.rpc.validateMethodName();if(this.rpc.stop){this.rpc.stop = false;return false} if(receive) this.receive[name] = receive; this[(alias || name)] = new Function('var args = new Array(), i;for(i=0;i mask/s * -------------------- * undefined -> 0/1 [default] * number -> 2 * boolean -> 4 * string -> 8 * function -> 16 * object -> 32 * -------------------- 00020000083D00001A65837, * Examples: * Want [String] only: (eqv. (typeof(vDunno) == 'string') ) * Soya.Common.typematch(unknown, 8) * Anything else than 'undefined' acceptable: * Soya.Common.typematch(unknown) * Want [Number], [Boolean] or [Function]: * Soya.Common.typematch(unknown, 2 + 4 + 16) * Want [Number] only: * Soya.Common.typematch(unknown, 2) **/ typematch : function (vDunno, nCase){ var nMask; switch(typeof(vDunno)){ case 'number' : nMask = 2; break; case 'boolean' : nMask = 4; break; case 'string' : nMask = 8; break; case 'function': nMask = 16; break; case 'object' : nMask = 32; break; default : nMask = 1; break; } return Boolean(nMask & (nCase || 62)); }, getNode : function(data, tree){ var nc = 0;//nodeCount //node = 1 if(data != null){ for(i=0;i 1){ tree.shift(); data = this.getNode(data, tree); } return data; } nc++ } } } return false; }, toObject : function(data){ var ret, i; switch(data.tagName){ case "string": return (data.firstChild) ? new String(data.firstChild.nodeValue) : ""; break; case "int": case "i4": case "double": return (data.firstChild) ? new Number(data.firstChild.nodeValue) : 0; break; case "dateTime.iso8601": /* Have to read the spec to be able to completely parse all the possibilities in iso8601 07-17-1998 14:08:55 19980717T14:08:55 */ var sn = (isIE) ? "-" : "/"; if(/^(\d{4})(\d{2})(\d{2})T(\d{2}):(\d{2}):(\d{2})/.test(data.firstChild.nodeValue)){;//data.text)){ return new Date(RegExp.$2 + sn + RegExp.$3 + sn + RegExp.$1 + " " + RegExp.$4 + ":" + RegExp.$5 + ":" + RegExp.$6); } else{ return new Date(); } break; case "array": data = this.getNode(data, [0]); 0002000008170000229C811, if(data && data.tagName == "data"){ ret = new Array(); var i = 0; while(child = this.getNode(data, [i++])){ ret.push(this.toObject(child)); } return ret; } else{ this.handleError(new Error("Malformed XMLRPC Message1")); return false; } break; case "struct": ret = {}; var i = 0; while(child = this.getNode(data, [i++])){ if(child.tagName == "member"){ ret[this.getNode(child, [0]).firstChild.nodeValue] = this.toObject(this.getNode(child, [1])); } else{ this.handleError(new Error("Malformed XMLRPC Message2")); return false; } } return ret; break; case "boolean": return Boolean(isNaN(parseInt(data.firstChild.nodeValue)) ? (data.firstChild.nodeValue == "true") : parseInt(data.firstChild.nodeValue)) break; case "base64": return this.decodeBase64(data.firstChild.nodeValue); break; case "value": child = this.getNode(data, [0]); return (!child) ? ((data.firstChild) ? new String(data.firstChild.nodeValue) : "") : this.toObject(child); break; default: this.handleError(new Error("Malformed XMLRPC Message: " + data.tagName)); return false; break; } }, /*** Decode Base64 ****** * Original Idea & Code by thomas@saltstorm.net * from Soya.Encode.Base64 [http://soya.saltstorm.net] **/ decodeBase64 : function(sEncoded){ // Input must be dividable with 4. if(!sEncoded || (sEncoded.length % 4) > 0) return sEncoded; /* Use NN's built-in base64 decoder if available. This procedure is horribly slow running under NN4, so the NN built-in equivalent comes in very handy. :) */ else if(typeof(atob) != 'undefined') return atob(sEncoded); var nBits, i, sDecoded = ''; var base64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; sEncoded = sEncoded.replace(/\W|=/g, ''); for(i=0; i < sEncoded.length; i += 4){ 00020000083D00002AAD837, nBits = (base64.indexOf(sEncoded.charAt(i)) & 0xff) << 18 | (base64.indexOf(sEncoded.charAt(i+1)) & 0xff) << 12 | (base64.indexOf(sEncoded.charAt(i+2)) & 0xff) << 6 | base64.indexOf(sEncoded.charAt(i+3)) & 0xff; sDecoded += String.fromCharCode( (nBits & 0xff0000) >> 16, (nBits & 0xff00) >> 8, nBits & 0xff); } // not sure if the following statement behaves as supposed under // all circumstances, but tests up til now says it does. return sDecoded.substring(0, sDecoded.length - ((sEncoded.charCodeAt(i - 2) == 61) ? 2 : (sEncoded.charCodeAt(i - 1) == 61 ? 1 : 0))); }, getObject : function(type, message){ if(type == "HTTP"){ if(isIE) obj = new ActiveXObject("microsoft.XMLHTTP"); else if(isNS) obj = new XMLHttpRequest(); } else if(type == "XMLDOM"){ if(isIE){ obj = new ActiveXObject("microsoft.XMLDOM"); obj.loadXML(message) }else if(isNS){ obj = new DOMParser(); obj = obj.parseFromString(message, "text/xml"); } } else{ this.handleError(new Error("Unknown Object")); } return obj; }, validateMethodName : function(name){ /*do Checking: The string may only contain identifier characters, upper and lower-case A-Z, the numeric characters, 0-9, underscore, dot, colon and slash. */ if(/^[A-Za-z0-9\._\/:]+$/.test(name)) return true else this.handleError(new Error("Incorrect method name")); }, getXML : function(obj){ if(typeof obj == "function"){ this.handleError(new Error("Cannot Parse functions")); }else if(obj == null || obj == undefined || (typeof obj == "number" && !isFinite(obj))) return false.toXMLRPC(); else return toXMLRPC(obj); // return obj.toXMLRPC(); }, handleError : function(e){ if(!this.onerror || !this.onerror(e)){ //alert("An error has occured: " + e.message); throw e; } this.stop = true; this.lastError = e; }, cancel : function(id){ //You can only cancel a request when it was executed async (I think) 000200000820000032E481A, if(!this.queue[id]) return false; this.queue[id][0].abort(); return true; }, send : function(serverAddress, functionName, args, receive, multicall, autoroute){ var id, http; //default is sync this.validateMethodName(); if(this.stop){this.stop = false; return false;} //setting up multicall multicall = (multicall != null) ? multicall : this.multicall; if(multicall){ if(!this.stack[serverAddress]) this.stack[serverAddress] = new Array(); this.stack[serverAddress].push({methodName : functionName, params : args}); return true; } //creating http object var http = this.getObject("HTTP"); //setting some things for async/sync transfers if(!receive) { // LMO || isNS){; async = false; } else{ async = true; /* The timer functionality is implemented instead of the onreadystatechange event because somehow the calling of this event crashed IE5.x */ id = this.queue.push([http, receive, null, new Date()])-1; // this.queue[id][2] = new Function("var id='" + id + "';var dt = new Date(new Date().getTime() - XMLRPC.queue[id][3].getTime());diff = parseInt(dt.getSeconds()*1000 + dt.getMilliseconds());if(diff > XMLRPC.timeout){if(XMLRPC.ontimeout) XMLRPC.ontimeout(); clearInterval(XMLRPC.timers[id]);XMLRPC.cancel(id);return};if(XMLRPC.queue[id][0].readyState == 4){XMLRPC.queue[id][0].onreadystatechange = function(){};XMLRPC.receive(id);clearInterval(XMLRPC.timers[id])}"); this.queue[id][2] = function() { var dt = new Date(new Date().getTime() - XMLRPC.queue[id][3].getTime()); diff = parseInt(dt.getSeconds()*1000 + dt.getMilliseconds()); if(diff > XMLRPC.timeout) { if(XMLRPC.ontimeout) XMLRPC.ontimeout(); clearInterval(XMLRPC.timers[id]); XMLRPC.cancel(id);return }; if(XMLRPC.queue[id][0].readyState == 4) { XMLRPC.queue[id][0].onreadystatechange = function(){}; 00020000064F00003AFE649, XMLRPC.receive(id);clearInterval(XMLRPC.timers[id]) }; } this.timers[id] = setInterval("XMLRPC.queue[" + id + "][2]()", 20); } //setting up the routing autoroute = (autoroute || this.autoroute); //'active' is only set when direct sending the message has failed var srv = (autoroute == "active") ? this.routeServer : serverAddress; try{ http.open('POST', srv, async); http.setRequestHeader("User-Agent", "vcXMLRPC v0.91 (" + navigator.userAgent + ")"); http.setRequestHeader("Host", srv.replace(/^https?:\/{2}([:\[\]\-\w\.]+)\/?.*/, '$1')); http.setRequestHeader("Content-type", "text/xml"); if(autoroute == "active"){ http.setRequestHeader("X-Proxy-Request", serverAddress); http.setRequestHeader("X-Compress-Response", "gzip"); } } catch(e){ if(autoroute == true){ //Access has been denied, Routing call. autoroute = "active"; if(id){ delete this.queue[id]; clearInterval(this.timers[id]); } return this.send(serverAddress, functionName, args, receive, multicall, autoroute); } //Routing did not work either..Throwing error this.handleError(new Error("Could not sent XMLRPC Message (Reason: Access Denied on client)")); if(this.stop){this.stop = false;return false} } //Construct the message var message = '' + functionName + ''; for(i=0;i'; 0002000009E6000041479E0, } message += ''; var xmldom = this.getObject('XMLDOM', message); if(self.DEBUG) alert(message); try{ //send message http.send(xmldom); } catch(e){ //Most likely the message timed out(what happend to your internet connection?) this.handleError(new Error("XMLRPC Message not Sent(Reason: " + e.message + ")")); if(this.stop){this.stop = false;return false} } if(!async && receive) { return [autoroute, receive(this.processResult(http))]; } else if(receive) { logDebug("ASYNC and receive"); return [autoroute, id]; } else { logDebug("Async and process"); return [autoroute, this.processResult(http)]; } }, receive : function(id){ //Function for handling async transfers.. if(this.queue[id]){ var data = this.processResult(this.queue[id][0]); this.queue[id][1](data); delete this.queue[id]; } else{ this.handleError(new Error("Error while processing queue")); } }, processResult : function(http){ if(self.DEBUG) alert(http.responseText); if(http.status == 200){ //getIncoming message dom = http.responseXML; if(dom){ var rpcErr, main; //Check for XMLRPC Errors rpcErr = dom.getElementsByTagName("fault"); if(rpcErr.length > 0){ rpcErr = this.toObject(rpcErr[0].firstChild); this.handleError(new Error(rpcErr.faultCode, rpcErr.faultString)); return false } //handle method result main = dom.getElementsByTagName("param"); if(main.length == 0) this.handleError(new Error("Malformed XMLRPC Message")); data = this.toObject(this.getNode(main[0], [0])); //handle receiving if(this.onreceive) this.onreceive(data); return data; } else{ this.handleError(new Error("Malformed XMLRPC Message")); } } else{ this.handleError(new Error("HTTP Exception: (" + http.status + ") " + http.statusText + "\n\n" + http.responseText)); } } } //Smell something ver = navigator.appVersion; app = navigator.appName; isNS = Boolean(navigator.productSub) //moz_can_do_http = (parseInt(navigator.productSub) >= 20010308) isIE = (ver.indexOf("MSIE 5") != -1 || ver.indexOf("MSIE 6") != -1) ? 1 : 0; isIE55 = (ver.indexOf("MSIE 5.5") != -1) ? 1 : 0; isOTHER = (!isNS && !isIE) ? 1 : 0; if(isOTHER) alert("Sorry your browser doesn't support the features of vcXMLRPC"); 00040000000B0000000204B29000050000000B0000000204B290000600000032000000010A210FFFF0A00000 20 000700000019000000010201800008000000970000000140,Geneva40,4030 100009000000150000000239C17D39C17D000A0000001900000002621FF222621FF222000B00000005000000020000C0000000F000000014B2701000F0000005200000000400 10 4,77A4,4,4,4,77A4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA›œK'(tR)RoFFFF000000060001001777AA000000000068000000001001710000001-7F7F6FBE180000048004806833200-106833222FFFF0103FED000010000003A000000010FED408406833222FEC038E0008266833B0000200000FF300000000FED,/* xmlrpc.js beta version 1 Tool for creating XML-RPC formatted requests in JavaScript Copyright 2001 Scott Andrew LePera scott@scottandrew.com http://www.scottandrew.com/xml-rpc License: You are granted the right to use and/or redistribute this code only if this license and the copyright notice are included and you accept that no warranty of any kind is made or implied by the author. */ function XMLRPCMessage(methodname){ this.method = methodname||"system.listMethods"; this.params = []; return this; } XMLRPCMessage.prototype.setMethod = function(methodName){ if (!methodName) return; this.method = methodName; } XMLRPCMessage.prototype.addParameter = function(data){ if (arguments.length==0) return; this.params[this.params.length] = data; } XMLRPCMessage.prototype.xml = function(){ var method = this.method; // assemble the XML message header var xml = ""; xml += "\n"; xml += "\n"; xml += "" + method+ "\n"; xml += "\n"; // do individual parameters for (var i = 0; i < this.params.length; i++){ var data = this.params[i]; xml += "\n"; xml += "" + XMLRPCMessage.getParamXML(XMLRPCMessage.dataTypeOf(data),data) + "\n"; xml += "\n"; } xml += "\n"; xml += ""; return xml; // for now } XMLRPCMessage.dataTypeOf = function (o){ // identifies the data type var type = typeof(o); type = type.toLowerCase(); switch(type){ case "number": if (Math.round(o) == o) type = "i4"; else type = "double"; break; case "object": var con = o.constructor; if (con == Date) type = "date"; else if (con == Array) type = "array"; else type = "struct"; break; } return type; } XMLRPCMessage.doValueXML = function(type,data){ var xml = "<" + type + ">" + data + ""; return xml; } XMLRPCMessage.doBooleanXML = function(data){ var value = (data==true)?1:0; var xml = "" + value + ""; return xml; } XMLRPCMessage.doDateXML = function(data){ var xml = ""; xml += dateToISO8601(data); xml += ""; return xml; } XMLRPCMessage.doArrayXML = function(data){ var xml = "\n"; for (var i = 0; i < data.length; i++){ xml += "" + XMLRPCMessage.getParamXML(XMLRPCMessage.dataTypeOf(data[i]),data[i]) + "\n"; } xml += "\n"; return xml; } XMLRPCMessage.doStructXML = function(data){ var xml = "\n"; for (var i in data){ xml += "\n"; xml += "" + i + "\n"; xml += "" + XMLRPCMessage.getParamXML(XMLRPCMessage.dataTypeOf(data[i]),data[i]) + "\n"; xml += "\n"; } xml += "\n"; return xml; } XMLRPCMessage.getParamXML = function(type,data){ var xml; switch (type){ case "date": xml = XMLRPCMessage.doDateXML(data); break; case "array": xml = XMLRPCMessage.doArrayXML(data); break; case "struct": xml = XMLRPCMessage.doStructXML(data); break; case "boolean": xml = XMLRPCMessage.doBooleanXML(data); break; default: xml = XMLRPCMessage.doValueXML(type,data); break; } return xml; } function dateToISO8601(date){ // wow I hate working with the Date object var year = new String(date.getYear()); var month = leadingZero(new String(date.getMonth())); var day = leadingZero(new String(date.getDate())); var time = leadingZero(new String(date.getHours())) + ":" + leadingZero(new String(date.getMinutes())) + ":" + leadingZero(new String(date.getSeconds())); var converted = year+month+day+"T"+time; return converted; } function leadingZero(n){ // pads a single number with a leading zero. Heh. if (n.length==1) n = "0" + n; return n; }00040000000A000000020FEF000050000000A000000020FEF0000600000032000000010A210FFFF0A00000 20 000700000019000000010201800008000000970000000140,Geneva40,4030 1000090000001700000002324920E324920E000A000000170000000268332226833222000B00000005000000020000C0000001100000001FED0A151000F0000005200000000400 10 4,77A4,4,4,4,,4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA¤¤(to+'`  + 0< EQ w behaviourJ[dbXMLRPComainvMochiKit%nastyInsecureUserAndPasswordJSIncludejl newsOutlinepvcXMLRPCqxmlrpc*+\FFFF000000060001001777AA000000000071000000001001710000001-7EFB6FBE180000048004806AF200-15D605D6006AF222FFFF01031D0000100000035000000010DD408406AF222DD038E000A26AF600002000000E200000000DD,

News as of <%now%>

<%msgtext%>
    <%feeds%>
<%buttons%>
<% theme^.utils.furtherReading() %> 000400000009000000020DF0000500000009000000020DF0000600000032000000010A210FFFF0A00000 70 000700000019000000010201800008000000970000000140,Geneva40,4030 10000900000015000000023D818B3D818B000A00000015000000026AF2226AF222000B00000005000000020000C00000011000000011D21620000F0000005200000000400 10 4,77A4,4,Eջ4,4, 4,4,200130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAP!) \ FFFF000000060001001777AA000000000078000000001001710000001-7EFF6FBE180000048004806165200-144A45244A45206165222FFFF010345F000010000003A00000001048E40840616522248D038E0001586165600002000004940000000048E, <%"
  • "%>

    <% if defined (itemmeta.permalink) { return ("" + permalinkimg + "") } else { return ("") } %> <% if defined (itemmeta.enclosure) { return ("" + mediaimg + "") } else { return ("") } %> <% if defined (itemmeta.comments) { return ("" + commentimg + "") } else { return ("") } %> <% if defined (itemmeta.checkmark) { return (checkmarkimg) } else { return ("") } %> <% if itemcheckbox.show { return("") } else { return ("") } %> <%""%><%item^.data.title%>

    <% if defined(item^.data.description) && (item^.data.description != "") { return ("
      " + theme^.utils.itemContent(item) + "
    ") } else { return("") } %>
  • 0004000000450000000C0DB1119016711A401F1122F027D12890310131D0490000050000000A0000000204900000600000060000000020A210FFFF0A00000 C0 A20FFFF0900000 70 000700000019000000010201800008000000970000000140,Geneva40,4030 100009000000170000000231FC24531FC245000A000000170000000261652226165222000B00000005000000020000C0000001C0000000145F45B13510B5411E0000F0000005200000000400 10 4,77A4,gif4,re.4, 8:44,l4,4,esti00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAP!Ow  FFFF000000060001001777AA000000000078000000001001710000001-7EFE6FBE180000048004806172200-131032231032206172222FFFF010343E000010000003800000001049D840617222249D038E0001656172600002000004A30000000049D, <%"
  • "%>

    <% if defined (itemmeta.permalink) { return ("" + permalinkimg + "") } else { return ("") } %> <% if defined (itemmeta.enclosure) { return ("" + mediaimg + "") } else { return ("") } %> <% if defined (itemmeta.comments) { return ("" + commentimg + "") } else { return ("") } %> <% if defined (itemmeta.checkmark) { return (checkmarkimg) } else { return ("") } %> <% if itemcheckbox.show { return("") } else { return ("") } %> <%""%><%item^.data.title%>

    <% if defined(item^.data.description) && (item^.data.description != "") { return ("
    • "+item^.data.description+"
    ") } else { return("") } %>
  • 0004000000450000000C0DB1119016711A401F1122F027D12890310131D049F000050000000A00000002049F0000600000060000000020A210FFFF0A00000 C0 A20FFFF0900000 70 000700000019000000010201800008000000970000000140,Geneva40,4030 100009000000170000000231FC24531FC245000A000000170000000261722226172222000B00000005000000020000C0000002F0000000243E1357C547604731381855417E0000F0000005200000000400 10 4,77A4,gif4,re.4, 8:44,l4,4,esti00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAP Jq 0 FFFF000000060001001777AA000000000071000000001001710000001-7EFE6FBE18000004800480688200-19EA79EA70688222FFFF0103C2000010000003600000001010540840688222FC038E0007B6886000020000010B00000000105,
  • <%""%><%globeimg%> <%feed.title%> <%""%><%xmlimg%>

      <%feed.entries%>
  • 00040000000A000000020107000050000000A0000000201070000600000032000000010A210FFFF0A00000 30 000700000019000000010201800008000000970000000140,Geneva40,4030 10000900000015000000023E91AC3E91AC000A0000001500000002688222688222000B00000005000000020000C0000001800000001C2BE331D9C1860000F0000005200000000400 10 4,77A4, 8:44,s4,smEx4,ke.4,pmEx4,pmEx00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAPz  Geneva F!!Yq'LANDmac 0xDECAFBAD newsRiver: <%title%> <%metaTags ()%>

    0xDECAFBAD newsRiver: <%title%>

    <%bodytext%> WdatatablG]] createdSat, 11 Feb 2006 04:55:09 GMTWdatatablG createdFri, 20 Jan 2006 17:32:41 GMTWdatatablGaa createdSun, 22 Jan 2006 05:42:09 GMTWdatatablGFF createdSat, 11 Feb 2006 04:54:46 GMTWdatatablG createdFri, 20 Jan 2006 17:33:21 GMTWdatatablG createdFri, 20 Jan 2006 17:33:21 GMTWdatatablG createdFri, 20 Jan 2006 17:33:21 GMTWdatatablGMM createdSun, 22 Jan 2006 05:41:49 GMTWdatatablGGG createdSun, 22 Jan 2006 05:50:15 GMTWdatatablG createdFri, 20 Jan 2006 17:33:21 GMTWdatatablG]] createdSun, 22 Jan 2006 05:42:05 GMTWdatatablG!! createdWed, 22 Feb 2006 16:18:43 GMTWdatatablGoo createdTue, 08 Nov 2005 16:59:27 GMTWdatatablG== createdSat, 21 Jan 2006 06:24:10 GMTWdatatablG=̿= createdSat, 21 Jan 2006 06:24:28 GMTWdatatablG=ȿ= createdSat, 21 Jan 2006 06:24:24 GMT B^  ' 4@ IU Znews newsEntryD newsEntry #1 newsFeedpage?VGeneva |3RJ 2Geneva H%LANDmac local // Grab page table and tool data pta = html.getpagetableaddress() adrdata = decafbadNewsRiverSuite.init() out = "" readingListUrl = "" on add(s) out = out + s + "\n" bundle // Process incoming web request parameters & arguments local (args) new (tabletype, @args) webserver.parseArgs (pta^.searchArgs, @args) if defined (args.readingListUrl) // Should filter on one reading list? readingListUrl = args.readingListUrl add("

    Further Reading

    ") add("
      ") for adrlist in @adrdata^.newsRiver.readingLists local opmlurl = nameof (adrlist^) opmltitle = "" storyCount = 0 storyCountLastUpdate = "" if defined(adrlist^.title) opmltitle = adrlist^.title else continue if defined(adrlist^.storyCount) storyCount = adrlist^.storyCount if storyCount == 0 continue if defined(adrlist^.storyCountLastUpdate) storyCountLastUpdate = adrlist^.storyCountLastUpdate add("
    • ") if readingListUrl != opmlurl add(""+opmltitle+"") else add(opmltitle) add(" (" + storyCount + " stories last updated on "+ storyCountLastUpdate +")") add("
    • ") add("
    ") return out WdatatablG22 createdSat, 11 Feb 2006 06:24:02 GMTWdatatablG99 createdSun, 22 Jan 2006 18:30:48 GMTWdatatablG99 createdSun, 22 Jan 2006 18:31:03 GMTWdatatablG44 createdSat, 11 Feb 2006 06:24:04 GMTWdatatablG  createdSat, 11 Feb 2006 06:27:39 GMTWdatatablG66 createdSat, 11 Feb 2006 06:24:06 GMTWdatatablG99 createdSat, 11 Feb 2006 06:24:09 GMTWdatatablGzz createdTue, 18 Oct 2005 19:36:01 GMTWdatatablG?? createdSat, 11 Feb 2006 06:24:15 GMTWdatatablG createdMon, 23 Jan 2006 03:54:29 GMTWdatatablG createdFri, 11 Nov 2005 15:38:48 GMTWdatatablG createdFri, 11 Nov 2005 15:37:04 GMTWdatatablG createdFri, 11 Nov 2005 15:37:04 GMTWdatatablG'' createdMon, 23 Jan 2006 03:56:39 GMTWdatatablGkk createdFri, 10 Feb 2006 02:58:50 GMTWdatatablGr^r^ createdFri, 10 Feb 2006 03:27:42 GMTWdatatablG0ÿ0 createdMon, 23 Jan 2006 12:05:39 GMTWdatatablG0̿0 createdMon, 23 Jan 2006 12:05:48 GMTWdatatablG0ѿ0 createdMon, 23 Jan 2006 12:05:53 GMTWdatatablG0ҿ0 createdMon, 23 Jan 2006 12:05:54 GMTWdatatablGjj createdFri, 10 Feb 2006 02:55:21 GMTWdatatablGkk createdFri, 10 Feb 2006 02:59:15 GMTWdatatablGl]l] createdFri, 10 Feb 2006 03:02:05 GMTWdatatablGlclc createdFri, 10 Feb 2006 03:02:11 GMTWdatatablGjj createdFri, 10 Feb 2006 02:55:21 GMTWdatatablGkk createdFri, 10 Feb 2006 02:59:15 GMTWdatatablGkk createdFri, 10 Feb 2006 02:58:43 GMTWdatatablGؿ createdMon, 23 Jan 2006 03:55:20 GMTWdatatablG߿ createdMon, 23 Jan 2006 05:07:59 GMTWdatatablG createdMon, 23 Jan 2006 03:55:55 GMTWdatatablG createdMon, 23 Jan 2006 05:08:45 GMTWdatatablG createdMon, 23 Jan 2006 03:55:55 GMTWdatatablGjj createdFri, 10 Feb 2006 02:55:52 GMTWdatatablG createdMon, 23 Jan 2006 03:55:47 GMTWdatatablGؿ createdMon, 23 Jan 2006 03:55:20 GMTWdatatablGMM createdSat, 11 Feb 2006 06:24:29 GMTsGeneva "<LANDmac on itemContent(adritem) local // Grab page table and tool data adrdata = decafbadNewsRiverSuite.init() adrprefs = decafbadNewsRiverSuite.getPrefs() out = "" on add(s) out = out + s + "\n" if (aggregatorData.prefs.security.flRpcInterfaceEnabled && adrPrefs^.deferredItemContent) add("
  • ") else add("
  • "+adritem^.data.description+"
  • ") return out bundle // test code adritem = @aggregatorData.stories[1] dialog.alert(itemContent(adritem)) WdatatablG!! createdWed, 22 Feb 2006 16:03:33 GMTWdatatablG22 createdSat, 11 Feb 2006 06:24:02 GMTWdatatablG99 createdSun, 22 Jan 2006 18:31:03 GMTWdatatablG!! createdWed, 22 Feb 2006 15:59:32 GMTWdatatablG44 createdSat, 11 Feb 2006 06:24:04 GMTWdatatablG66 createdSat, 11 Feb 2006 06:24:06 GMTWdatatablG99 createdSat, 11 Feb 2006 06:24:09 GMTWdatatablG!! createdWed, 22 Feb 2006 15:59:54 GMTWdatatablG!! createdWed, 22 Feb 2006 16:00:40 GMTWdatatablG!! createdWed, 22 Feb 2006 16:00:43 GMTWdatatablG!! createdWed, 22 Feb 2006 16:00:46 GMTWdatatablGMM createdSat, 11 Feb 2006 06:24:29 GMTWdatatablG!! createdWed, 22 Feb 2006 16:03:53 GMTWdatatablG!! createdWed, 22 Feb 2006 16:03:59 GMTWdatatablG!! createdWed, 22 Feb 2006 16:04:33 GMT(Geneva !3"cLANDmac on prefsJS() local // Grab page table and tool data adrdata = decafbadNewsRiverSuite.init() adrprefs = decafbadNewsRiverSuite.getPrefs() out = "" on add(s) out = out + s + "\n" if (aggregatorData.prefs.security.flRpcInterfaceEnabled && adrPrefs^.showDeleteButtons) add("showDeleteButtons = true;") else add("showDeleteButtons = false;") return out bundle // test code dialog.alert(prefsJS()) WdatatablG!! createdWed, 22 Feb 2006 16:03:33 GMTWdatatablG22 createdSat, 11 Feb 2006 06:24:02 GMTWdatatablG99 createdSun, 22 Jan 2006 18:31:03 GMTWdatatablG!! createdWed, 22 Feb 2006 15:59:32 GMTWdatatablG44 createdSat, 11 Feb 2006 06:24:04 GMTWdatatablG66 createdSat, 11 Feb 2006 06:24:06 GMTWdatatablG99 createdSat, 11 Feb 2006 06:24:09 GMTWdatatablG!! createdWed, 22 Feb 2006 15:59:54 GMTWdatatablG!! createdWed, 22 Feb 2006 16:00:40 GMTWdatatablG!! createdWed, 22 Feb 2006 16:20:38 GMTWdatatablG!! createdWed, 22 Feb 2006 16:00:40 GMTWdatatablGMM createdSat, 11 Feb 2006 06:24:29 GMTWdatatablG!! createdWed, 22 Feb 2006 16:03:53 GMTWdatatablG!! createdWed, 22 Feb 2006 16:04:33 GMT(}y.!3  '3 ;furtherReading$ itemContent7prefsJS?o}L?z   %1 4@ JV \css ,himg Finfo Ijs  templates #utils FV Lucida Grande2@8NXGeneva   %'?LANDmac css img info js behaviour dbXMLRPC main MochiKit nastyInsecureUserAndPasswordJSInclude newsOutline vcXMLRPC xmlrpc templates news newsEntry newsEntry #1 newsFeed page utils furtherReading | || || || || Є| Є| Є| Є| Є| Є| Є| Є| || (| (| (| (| (| || |<4AGeneva LANDmac /* Main CSS */ body, td, p, div, li { font: 11px arial; } WdatatablG createdFri, 20 Jan 2006 18:05:43 GMTWdatatablG createdFri, 20 Jan 2006 18:05:48 GMTWdatatablG;; createdFri, 20 Jan 2006 18:12:27 GMTWdatatablG createdFri, 20 Jan 2006 18:06:01 GMTWdatatablG createdFri, 20 Jan 2006 18:05:55 GMTWdatatablG createdFri, 20 Jan 2006 18:10:16 GMT[FFFF000000060001001777AA00000000007C000000001001710000001-7EFF6FBE180000048004806B8A200-11D21D71D21D762806B8A222FFFF01038AC000010000007600000002074E84064EC22273302CE0004E164ECA2074E14088404EC6B8A222CBA028E000B7F6B8A600002000007540000000074E,body { font: 10px verdana; margin: 10px; } .footer { text-align: right; border-top: 1px solid #000; font-size: x-small; margin-top: 1em; padding-top: 1em; } h1 { /* position: fixed; */ left: 0px; top: 0px; z-index: 999; } body > h1 { /* position: fixed; */ background-color: #fff; border-bottom: 1px solid #000; padding: 5px 0px 5px 0px; left: 0px; top: 0px; } body > h2 { border-bottom: 1px dotted #333; padding: 3px 0px 3px 0px; } ul.feeds { /* margin-top: 45px; */ padding-left: 10px; z-index: 100; } ul.newsindex { margin: 0 0 15px 0; padding: 0; list-style: none; } ul.newsindex h1 { margin: 0 0 10px 0; padding: 2px; border: 1px solid #000; background: #ddd; font-size: 1.2em; } ul.newsindex li { font-weight: bold; font-size: 1.15em; line-height: 1.45em; } ul.newsindex li:before { content: "\00BB \0020"; } ul.newsindex li a { text-decoration: none; } ul.newsindex li a:hover { text-decoration: underline; } ul.newsindex li a abbr { text-decoration: none; border: none; } ul.feeds { list-style-type: none; } ul.feeds li.feed { clear: both; } li.feed h2 { display: block; padding: 5px; margin: 7px 14px 7px 5px; background: #ddd; border: 1px solid #888; } li.feed h2 a { text-decoration: none; } li.feed h2 a:hover { text-decoration: underline; } ul.entries { list-style-type: none; display: none; padding-bottom: 10px; } li.collapsed > ul.entries { display: none; } li.expanded > ul.entries { display: block; } li.entry { clear: both; } li.entry h3 { padding: 3px; margin: 5px 5px 5px 3px; background: #f0f0f0; border: 1px solid #ddd; white-space: nowrap; overflow: hidden; } li.entry h3 a { text-decoration: none; 000200000CC00000074ECBA,} li.entry h3 a:hover { text-decoration: underline; } .entrydate, .entrytime { font-size: 0.75em; padding-right: 0.25em; float: right; } .entryicons { font-size: 0.75em; float: right; padding-right: 1em; } .entryicons a { padding-right: 1em; } ul.entrycontent { list-style-type: none; display: none; border: 1px dotted #888; margin-left: 20px; margin-right: 20px; padding: 15px 25px 15px 25px; font: 14px georgia; line-height: 1.5em; } li.collapsed > ul.entrycontent { display: none; } li.expanded > ul.entrycontent { display: block; } ul.entrycontent li.content, ul.entrycontent li.content * { font: 14px georgia; } .handle, .handle_alt { display: block; width: 10px; height: 10px; cursor: pointer; } .handle { float: left; background: url(../img/outline_collapsed) no-repeat center; margin: 3px 0 3px 6px; padding: 3px 0 3px 6px; margin-left: -12px; } .handle_alt { float: right; background: url(../img/outline_collapsed_alt.gif) no-repeat center; margin: 3px 3px 3px 3px; padding: 3px 3px 3px 3px; margin-right: -3px; } .collapsed > .handle { background: url(../img/outline_collapsed) no-repeat center; } .collapsed > .handle_alt { background: url(../img/outline_collapsed_alt) no-repeat center; } .expanded > .handle { background: url(../img/outline_expanded) no-repeat center; } .expanded > .handle_alt { background: url(../img/outline_expanded_alt) no-repeat center; } .busy > .handle { background: url(../img/busy_anim) no-repeat center; } .busy > .handle_alt { background: url(../img/busy_anim) no-repeat center; } li.feed .handle { margin: 3px 0 3px 6px; padding: 3px 0 3px 6px; margin-top: 6px; margin-left: -12px; } li.entry .handle { margin: 0; padding: 3px; margin-left: -12px; } li.entry .handle_alt { margin: 0; padding: 3px; margin-left: -3px; margin-right: 3px; } .entry .link { float: right } .feed .link, .feed .control { float: right } .orangeButton { border: 1px solid; border-color: #FC9 #630 #330 #F96; padding: 0 3px; font: bold 10px verdana,sans-serif; color: #FFF; background: #F60; text-decoration: none; margin: 0; } .button { cursor: pointer; color: #00f; border: 1px solid; border-color: #CCC #666 #333 #999; padding: 0 3px; font: bold 10px verdana,sans-serif; background: #ddd; text-decoration: none; margin: 4px; } a.button:link { color: #00f; } a.button:visited { color: #00f; } a.button:hover { color: #00f; background: #f2f2f2; text-decoration: none; } .buttonDisabled { cursor: default; color: #00f; border: 1px solid; border-color: #CCC #666 #333 #999; padding: 0 3px; font: bold 10px verdana,sans-serif; background: #ddd; text-decoration: none; margin: 4px; } a.buttonDisabled:link { color: #444; } a.buttonDisabled:visited { color: #444; } a.buttonDisabled:hover { color: #444; text-decoration: none; } ul.readinglists { list-style-type: square; } ul.readinglists li.readinglist { padding-bottom: 0.75em; } ul.readinglists li.readinglist a { font-weight: bold; } 00040000000C0000000201140A100050000000B000000020140A00006000000650000000210A210FFFF0A00000 10 20920FFFF0900000 10 000700000019000000010201800008000001C40000000340,Geneva40,4030 1040, Helvetica40,40150 1040,Monaco40,4040 1000090000001700000002321B245321B245000A00000017000000026B8A2226B8A222000B00000005000000020000C0000001500000001787512E1362000F0000005200000000400 10 4,77A4,s4,s4,ke.4, 4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA =.U[UQ$i-  mainK newsOutlineNUGIF89aBBB񯯯&&&ېkkkЬͭ򺺺wwwdddbbbLJooo```EEE444؄䮮???ggg›ȹ!!!---\\\III<< busy_animioutline_collapsedFGIF89a !, boJnȗKI;outline_collapsed_altHGIF89a !, /܊jo=هH;outline_expandedDGIF89a ޭ!, ˝x,EzAT;outline_expanded_altDGIF89a ޭ!, ˝x,EzAT;snake_transparentrVsnake_transparent_smaller{VGeneva =_}v8,  "; Gl qauthor l.m.orchard authorEmaill.m.orchard@pobox.com description!Another random experimental themename play2 theme%$FFFF000000060001001777AA000000000071000000001001710000001-7F7F6FBE180000048004806D20200-10C8406D20222FFFF01031FE400001000000BD00000003090E40840651A2228CE03CE00050D651A152090E11CC4084051A683322285D03CE00082668331F0011CC1FE4408408336D20222E18038E000D136D20600002000009140000000090E,/* Behaviour v1.0 by Ben Nolan, June 2005. Based largely on the work of Simon Willison (see comments by Simon below). Description: Uses css selectors to apply javascript behaviours to enable unobtrusive javascript in html documents. Usage: var myrules = { 'b.someclass' : function(element){ element.onclick = function(){ alert(this.innerHTML); } }, '#someid u' : function(element){ element.onmouseover = function(){ this.innerHTML = "BLAH!"; } } ); Behaviour.register(myrules); // Call Behaviour.apply() to re-apply the rules (if you // update the dom, etc). License: My stuff is BSD licensed. Not sure about Simon's. More information: http://ripcord.co.nz/behaviour/ */ var Behaviour = { list : new Array, register : function(sheet){ Behaviour.list.push(sheet); }, start : function(){ Behaviour.addLoadEvent(function(){ Behaviour.apply(); }); }, apply : function(){ for (h=0;sheet=Behaviour.list[h];h++){ for (selector in sheet){ list = document.getElementsBySelector(selector); if (!list){ continue; } for (i=0;element=list[i];i++){ sheet[selector](element); } } } }, addLoadEvent : function(func){ var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { oldonload(); func(); } } } } Behaviour.start(); /* The following code is Copyright (C) Simon Willison 2004. document.getElementsBySelector(selector) - returns an array of element objects from the current document matching the CSS selector. Selectors can contain element names, class names and ids and can be nested. For example: elements = document.getElementsBySelect('div#main p a.external') Will return an array of all 'a' elements with 'external' in their class attribute that are contained inside 'p' elements that are contained inside the 'div' element which has id="main" New in version 0.4: Support for CSS2 and CSS3 attribute selectors: See http://www.w3.org/TR/css3-selectors/#attribute-selectors 0002000008C40000090E8BE, Version 0.4 - Simon Willison, March 25th 2003 -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows -- Opera 7 fails */ function getAllChildren(e) { // Returns all children of element. Workaround required for IE5/Windows. Ugh. return e.all ? e.all : e.getElementsByTagName('*'); } document.getElementsBySelector = function(selector) { // Attempt to fail gracefully in lesser browsers if (!document.getElementsByTagName) { return new Array(); } // Split selector in to tokens var tokens = selector.split(' '); var currentContext = new Array(document); for (var i = 0; i < tokens.length; i++) { token = tokens[i].replace(/^\s+/,'').replace(/\s+$/,'');; if (token.indexOf('#') > -1) { // Token is an ID selector var bits = token.split('#'); var tagName = bits[0]; var id = bits[1]; var element = document.getElementById(id); if (tagName && element.nodeName.toLowerCase() != tagName) { // tag with that ID not found, return false return new Array(); } // Set currentContext to contain just this element currentContext = new Array(element); continue; // Skip to next token } if (token.indexOf('.') > -1) { // Token contains a class selector var bits = token.split('.'); var tagName = bits[0]; var className = bits[1]; if (!tagName) { tagName = '*'; } // Get elements matching tag, filter them for class selector var found = new Array; var foundCount = 0; for (var h = 0; h < currentContext.length; h++) { var elements; if (tagName == '*') { elements = getAllChildren(currentContext[h]); } else { elements = currentContext[h].getElementsByTagName(tagName); } for (var j = 0; j < elements.length; j++) { found[foundCount++] = elements[j]; } } currentContext = new Array; var currentContextIndex = 0; for (var k = 0; k < found.length; k++) { if (found[k].className && found[k].className.match(new RegExp('\\b'+className+'\\b'))) { 000200000E1E000011CCE18, currentContext[currentContextIndex++] = found[k]; } } continue; // Skip to next token } // Code to deal with attribute selectors if (token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)) { var tagName = RegExp.$1; var attrName = RegExp.$2; var attrOperator = RegExp.$3; var attrValue = RegExp.$4; if (!tagName) { tagName = '*'; } // Grab all of the tagName elements within current context var found = new Array; var foundCount = 0; for (var h = 0; h < currentContext.length; h++) { var elements; if (tagName == '*') { elements = getAllChildren(currentContext[h]); } else { elements = currentContext[h].getElementsByTagName(tagName); } for (var j = 0; j < elements.length; j++) { found[foundCount++] = elements[j]; } } currentContext = new Array; var currentContextIndex = 0; var checkFunction; // This function will be used to filter the elements switch (attrOperator) { case '=': // Equality checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); }; break; case '~': // Match one of space seperated words checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); }; break; case '|': // Match start with value followed by optional hyphen checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); }; break; case '^': // Match starts with value checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); }; break; case '$': // Match ends with value - fails with "Warning" in Opera 7 checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); }; break; case '*': // Match ends with value checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); }; break; default : // Just test for existence of attribute checkFunction = function(e) { return e.getAttribute(attrName); }; } currentContext = new Array; var currentContextIndex = 0; for (var k = 0; k < found.length; k++) { if (checkFunction(found[k])) { currentContext[currentContextIndex++] = found[k]; } } // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue); continue; // Skip to next token } if (!currentContext[0]){ return; } // If we get here, token is JUST an element (not a class or ID selector) tagName = token; var found = new Array; var foundCount = 0; for (var h = 0; h < currentContext.length; h++) { var elements = currentContext[h].getElementsByTagName(tagName); for (var j = 0; j < elements.length; j++) { found[foundCount++] = elements[j]; } } currentContext = found; } return currentContext; } /* That revolting regular expression explained /^(\w+)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/ \---/ \---/\-------------/ \-------/ | | | | | | | The value | | ~,|,^,$,* or = | Attribute Tag */ 00040000000B0000000201FE6000050000000B0000000201FE60000600000032000000010A210FFFF0A00000 20 000700000019000000010201800008000000970000000140,Geneva40,4030 100009000000150000000239C17D39C17D000A00000017000000026D202226D20222000B00000005000000020000C0000000F000000011FE401000F0000005200000000400 10 4,Tګ4,77A4,4,4,4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA22(t$%$TFFFF000000060001001777AA000000000074000000001001710000001-7F7F6FBE180000048004806231D200-10228106231D222FFFF01034D59000010000026200000009099B4084063EF22296803CC0003E263EF10B099B1204408403EF683322284703CE0008266833A0012041A5E408408336CD222281A03C8000CC548CD218A01A5E228440840CD2610C82227F603C800010BB6010C813D022842AA24084010C8614D82227FB03C800014CB3014D8D702AA232AD4084014D8618732227F303C800018661818738D032AD3AC640840187361B992227D403CC0001B8C61B9917203AC641E4408401B9961DFC2226F003C80001DEF481DFC12C041E44D59408401DFC6231D222B75038E00023106231D600002000009A10000000099B,// // Copyright (C) 2000, 2001, 2002 Virtual Cowboys info@virtualcowboys.nl // // Author: Ruben Daniels // Version: 0.91 // Date: 29-08-2001 // Site: www.vcdn.org/Public/XMLRPC/ // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // LMO: Tweaked this so as not to pollute the Object prototype //Object.prototype.toXMLRPC = function(){ function toXMLRPC(obj) { var wo = obj.valueOf(); if(! wo.toXMLRPC ){ retstr = ""; for(prop in obj){ if(typeof wo[prop] != "function"){ retstr += "" + prop + "" + XMLRPC.getXML(wo[prop]) + ""; } } retstr += ""; return retstr; } else{ return wo.toXMLRPC(); } } String.prototype.toXMLRPC = function(){ // return "";//.replace(/" + this + ""; } else if(this == parseFloat(this)){ return "" + this + ""; } else{ return false.toXMLRPC(); } } Boolean.prototype.toXMLRPC = function(){ if(this) return "1"; else return "0"; } Date.prototype.toXMLRPC = function(){ //Could build in possibilities to express dates //in weeks or other iso8601 possibillities //hmmmm ???? //19980717T14:08:55 return "" + doYear(this.getUTCYear()) + doZero(this.getMonth()) + doZero(this.getUTCDate()) + "T" + doZero(this.getHours()) + ":" + doZero(this.getMinutes()) + ":" + doZero(this.getSeconds()) + ""; 00020000086F0000099B869, function doZero(nr) { nr = String("0" + nr); return nr.substr(nr.length-2, 2); } function doYear(year) { if(year > 9999 || year < 0) XMLRPC.handleError(new Error("Unsupported year: " + year)); year = String("0000" + year) return year.substr(year.length-4, 4); } } Array.prototype.toXMLRPC = function(){ var retstr = ""; for(var i=0;i"; } return retstr + ""; } function VirtualService(servername, oRPC){ this.version = '0.91'; this.URL = servername; this.multicall = false; this.autoroute = true; this.onerror = null; this.rpc = oRPC; this.receive = {}; this.purge = function(receive){ return this.rpc.purge(this, receive); } this.revert = function(){ this.rpc.revert(this); } this.add = function(name, alias, receive){ this.rpc.validateMethodName();if(this.rpc.stop){this.rpc.stop = false;return false} if(receive) this.receive[name] = receive; this[(alias || name)] = new Function('var args = new Array(), i;for(i=0;i" + XMLRPC.getXML(wo[prop]) + ""; } } retstr += ""; return retstr; } else{ return wo.toXMLRPC(); 0002000008600000120485A, } }, routeServer : "http://www.vcdn.org/cgi-bin/rpcproxy.cgi", autoroute : true, multicall : false, services : {}, stack : {}, queue : new Array(), timers : new Array(), timeout : 30000, ontimeout : null, getService : function(serviceName){ //serviceNames cannot contain / or . if(/[\/\.]/.test(serviceName)){ return new VirtualService(serviceName, this); } else if(this.services[serviceName]){ return this.services[serviceName]; } else{ try{ var ct = eval(serviceName); this.services[serviceName] = new ct(this); } catch(e){ return false; } } }, purge : function(modConst, receive){ if(this.stack[modConst.URL].length){ var info = this.send(modConst.URL, "system.multicall", [this.stack[modConst.URL]], receive, false, modConst.autoroute); modConst.autoroute = info[0]; this.revert(modConst); if(info){ modConst.autoroute = info[0]; return info[1]; } else{ if(modConst.onerror) modConst.onerror(this.lastError); return false; } } }, revert : function(modConst){ this.stack[modConst.URL] = new Array(); }, call : function(){ //[optional info || receive, servername,] functionname, args...... var args = new Array(), i, a = arguments; var servername, methodname, receive, service, info, autoroute, multicall; if(typeof a[0] == "object"){ receive = a[0][0]; servername = a[0][1].URL; methodname = a[1]; multicall = (a[0][1].supportsMulticall && a[0][1].multicall); autoroute = a[0][1].autoroute; service = a[0][1]; } else if(typeof a[0] == "function"){ i = 3; receive = a[0]; servername = a[1]; methodname = a[2]; } else{ i = 2; servername = a[0]; methodname = a[1]; } for(i=i;i mask/s * -------------------- * undefined -> 0/1 [default] * number -> 2 * boolean -> 4 * string -> 8 * function -> 16 * object -> 32 * -------------------- * Examples: * Want [String] only: (eqv. (typeof(vDunno) == 'string') ) * Soya.Common.typematch(unknown, 8) * Anything else than 'undefined' acceptable: * Soya.Common.typematch(unknown) * Want [Number], [Boolean] or [Function]: * Soya.Common.typematch(unknown, 2 + 4 + 16) * Want [Number] only: * Soya.Common.typematch(unknown, 2) **/ typematch : function (vDunno, nCase){ var nMask; switch(typeof(vDunno)){ case 'number' : nMask = 2; break; case 'boolean' : nMask = 4; break; case 'string' : nMask = 8; break; case 'function': nMask = 16; break; case 'object' : nMask = 32; break; default : nMask = 1; break; } return Boolean(nMask & (nCase || 62)); }, getNode : function(data, tree){ var nc = 0;//nodeCount //node = 1 if(data != null){ for(i=0;i 1){ tree.shift(); data = this.getNode(data, tree); } return data; } nc++ } } } return false; }, toObject : function(data){ var ret, i; switch(data.tagName){ case "string": return (data.firstChild) ? new String(data.firstChild.nodeValue) : ""; break; case "int": case "i4": case "double": return (data.firstChild) ? new Number(data.firstChild.nodeValue) : 0; break; case "dateTime.iso8601": /* Have to read the spec to be able to completely 0002000008240000228481E, parse all the possibilities in iso8601 07-17-1998 14:08:55 19980717T14:08:55 */ var sn = (isIE) ? "-" : "/"; if(/^(\d{4})(\d{2})(\d{2})T(\d{2}):(\d{2}):(\d{2})/.test(data.firstChild.nodeValue)){;//data.text)){ return new Date(RegExp.$2 + sn + RegExp.$3 + sn + RegExp.$1 + " " + RegExp.$4 + ":" + RegExp.$5 + ":" + RegExp.$6); } else{ return new Date(); } break; case "array": data = this.getNode(data, [0]); if(data && data.tagName == "data"){ ret = new Array(); var i = 0; while(child = this.getNode(data, [i++])){ ret.push(this.toObject(child)); } return ret; } else{ this.handleError(new Error("Malformed XMLRPC Message1")); return false; } break; case "struct": ret = {}; var i = 0; while(child = this.getNode(data, [i++])){ if(child.tagName == "member"){ ret[this.getNode(child, [0]).firstChild.nodeValue] = this.toObject(this.getNode(child, [1])); } else{ this.handleError(new Error("Malformed XMLRPC Message2")); return false; } } return ret; break; case "boolean": return Boolean(isNaN(parseInt(data.firstChild.nodeValue)) ? (data.firstChild.nodeValue == "true") : parseInt(data.firstChild.nodeValue)) break; case "base64": return this.decodeBase64(data.firstChild.nodeValue); break; case "value": child = this.getNode(data, [0]); return (!child) ? ((data.firstChild) ? new String(data.firstChild.nodeValue) : "") : this.toObject(child); break; default: this.handleError(new Error("Malformed XMLRPC Message: " + data.tagName)); return false; break; } }, /*** Decode Base64 ****** * Original Idea & Code by thomas@saltstorm.net * from Soya.Encode.Base64 [http://soya.saltstorm.net] **/ decodeBase64 : function(sEncoded){ // Input must be dividable with 4. 00020000081100002AA280B, if(!sEncoded || (sEncoded.length % 4) > 0) return sEncoded; /* Use NN's built-in base64 decoder if available. This procedure is horribly slow running under NN4, so the NN built-in equivalent comes in very handy. :) */ else if(typeof(atob) != 'undefined') return atob(sEncoded); var nBits, i, sDecoded = ''; var base64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; sEncoded = sEncoded.replace(/\W|=/g, ''); for(i=0; i < sEncoded.length; i += 4){ nBits = (base64.indexOf(sEncoded.charAt(i)) & 0xff) << 18 | (base64.indexOf(sEncoded.charAt(i+1)) & 0xff) << 12 | (base64.indexOf(sEncoded.charAt(i+2)) & 0xff) << 6 | base64.indexOf(sEncoded.charAt(i+3)) & 0xff; sDecoded += String.fromCharCode( (nBits & 0xff0000) >> 16, (nBits & 0xff00) >> 8, nBits & 0xff); } // not sure if the following statement behaves as supposed under // all circumstances, but tests up til now says it does. return sDecoded.substring(0, sDecoded.length - ((sEncoded.charCodeAt(i - 2) == 61) ? 2 : (sEncoded.charCodeAt(i - 1) == 61 ? 1 : 0))); }, getObject : function(type, message){ if(type == "HTTP"){ if(isIE) obj = new ActiveXObject("microsoft.XMLHTTP"); else if(isNS) obj = new XMLHttpRequest(); } else if(type == "XMLDOM"){ if(isIE){ obj = new ActiveXObject("microsoft.XMLDOM"); obj.loadXML(message) }else if(isNS){ obj = new DOMParser(); obj = obj.parseFromString(message, "text/xml"); } } else{ this.handleError(new Error("Unknown Object")); } return obj; }, validateMethodName : function(name){ /*do Checking: The string may only contain identifier characters, upper and lower-case A-Z, the numeric characters, 0-9, underscore, dot, colon and slash. */ if(/^[A-Za-z0-9\._\/:]+$/.test(name)) return true else this.handleError(new Error("Incorrect method name")); }, getXML : function(obj){ 00020000081F000032AD819, if(typeof obj == "function"){ this.handleError(new Error("Cannot Parse functions")); }else if(obj == null || obj == undefined || (typeof obj == "number" && !isFinite(obj))) return false.toXMLRPC(); else return toXMLRPC(obj); // return obj.toXMLRPC(); }, handleError : function(e){ if(!this.onerror || !this.onerror(e)){ //alert("An error has occured: " + e.message); throw e; } this.stop = true; this.lastError = e; }, cancel : function(id){ //You can only cancel a request when it was executed async (I think) if(!this.queue[id]) return false; this.queue[id][0].abort(); return true; }, send : function(serverAddress, functionName, args, receive, multicall, autoroute){ var id, http; //default is sync this.validateMethodName(); if(this.stop){this.stop = false; return false;} //setting up multicall multicall = (multicall != null) ? multicall : this.multicall; if(multicall){ if(!this.stack[serverAddress]) this.stack[serverAddress] = new Array(); this.stack[serverAddress].push({methodName : functionName, params : args}); return true; } //creating http object var http = this.getObject("HTTP"); //setting some things for async/sync transfers if(!receive) { // LMO || isNS){; async = false; } else{ async = true; /* The timer functionality is implemented instead of the onreadystatechange event because somehow the calling of this event crashed IE5.x */ id = this.queue.push([http, receive, null, new Date()])-1; // this.queue[id][2] = new Function("var id='" + id + "';var dt = new Date(new Date().getTime() - XMLRPC.queue[id][3].getTime());diff = parseInt(dt.getSeconds()*1000 + dt.getMilliseconds());if(diff > XMLRPC.timeout){if(XMLRPC.ontimeout) XMLRPC.ontimeout(); clearInterval(XMLRPC.timers[id]);XMLRPC.cancel(id);return};if(XMLRPC.queue[id][0].readyState == 4){XMLRPC.queue[id][0].onreadystatechange = function(){};XMLRPC.receive(id);clearInterval(XMLRPC.timers[id])}"); 00020000072400003AC671E, this.queue[id][2] = function() { var dt = new Date(new Date().getTime() - XMLRPC.queue[id][3].getTime()); diff = parseInt(dt.getSeconds()*1000 + dt.getMilliseconds()); if(diff > XMLRPC.timeout) { if(XMLRPC.ontimeout) XMLRPC.ontimeout(); clearInterval(XMLRPC.timers[id]); XMLRPC.cancel(id); return }; if(XMLRPC.queue[id][0].readyState == 4) { XMLRPC.queue[id][0].onreadystatechange = function(){}; XMLRPC.receive(id); clearInterval(XMLRPC.timers[id]) }; } this.timers[id] = setInterval("XMLRPC.queue[" + id + "][2]()", 20); } //setting up the routing autoroute = (autoroute || this.autoroute); //'active' is only set when direct sending the message has failed var srv = (autoroute == "active") ? this.routeServer : serverAddress; try{ http.open('POST', srv, async); http.setRequestHeader("User-Agent", "vcXMLRPC v0.91 (" + navigator.userAgent + ")"); http.setRequestHeader("Host", srv.replace(/^https?:\/{2}([:\[\]\-\w\.]+)\/?.*/, '$1')); http.setRequestHeader("Content-type", "text/xml"); if(autoroute == "active"){ http.setRequestHeader("X-Proxy-Request", serverAddress); http.setRequestHeader("X-Compress-Response", "gzip"); } } catch(e){ if(autoroute == true){ //Access has been denied, Routing call. autoroute = "active"; if(id){ delete this.queue[id]; clearInterval(this.timers[id]); } return this.send(serverAddress, functionName, args, receive, multicall, autoroute); } //Routing did not work either..Throwing error 000200000B7B000041E4B75, this.handleError(new Error("Could not sent XMLRPC Message (Reason: Access Denied on client)")); if(this.stop){this.stop = false;return false} } //Construct the message var message = '' + functionName + ''; for(i=0;i'; } message += ''; var xmldom = this.getObject('XMLDOM', message); if(self.DEBUG) alert(message); try{ //send message http.send(xmldom); } catch(e){ //Most likely the message timed out(what happend to your internet connection?) this.handleError(new Error("XMLRPC Message not Sent(Reason: " + e.message + ")")); if(this.stop){this.stop = false;return false} } if(!async && receive) { return [autoroute, receive(this.processResult(http))]; } else if(receive) { logDebug("ASYNC and receive"); return [autoroute, id]; } else { logDebug("Async and process"); return [autoroute, this.processResult(http)]; } }, receive : function(id){ //Function for handling async transfers.. if(this.queue[id]){ var data = this.processResult(this.queue[id][0]); this.queue[id][1](data); delete this.queue[id]; } else{ this.handleError(new Error("Error while processing queue")); } }, processResult : function(http){ if(self.DEBUG) alert(http.responseText); if(http.status == 200){ //getIncoming message dom = http.responseXML; if(dom){ var rpcErr, main; //Check for XMLRPC Errors rpcErr = dom.getElementsByTagName("fault"); if(rpcErr.length > 0){ rpcErr = this.toObject(rpcErr[0].firstChild); this.handleError(new Error(rpcErr.faultCode, rpcErr.faultString)); return false } //handle method result main = dom.getElementsByTagName("param"); if(main.length == 0) this.handleError(new Error("Malformed XMLRPC Message")); data = this.toObject(this.getNode(main[0], [0])); //handle receiving if(this.onreceive) this.onreceive(data); return data; } else{ this.handleError(new Error("Malformed XMLRPC Message")); } } else{ this.handleError(new Error("HTTP Exception: (" + http.status + ") " + http.statusText + "\n\n" + http.responseText)); } } } //Smell something ver = navigator.appVersion; app = navigator.appName; isNS = Boolean(navigator.productSub) //moz_can_do_http = (parseInt(navigator.productSub) >= 20010308) isIE = (ver.indexOf("MSIE 5") != -1 || ver.indexOf("MSIE 6") != -1) ? 1 : 0; isIE55 = (ver.indexOf("MSIE 5.5") != -1) ? 1 : 0; isOTHER = (!isNS && !isIE) ? 1 : 0; if(isOTHER) alert("Sorry your browser doesn't support the features of vcXMLRPC"); 00040000000B0000000204D5B000050000000B0000000204D5B0000600000032000000010A210FFFF0A00000 20 000700000019000000010201800008000000970000000140,Geneva40,4030 100009000000150000000239C17D39C17D000A00000019000000026231D2226231D222000B00000005000000020000C0000000F000000014D5901000F0000005200000000400 10 4,3[4,4,4,4,4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA''MY(tT[TzFFFF000000060001001777AA000000000068000000001001710000001-7E7F6FBE180000048004806201200-106201222FFFF0103328000010000003A000000010328408406201222328038E0001F462016000020000032E00000000328,/* Main JS */ var query, _DEBUG; var behaviours = { }; function init() { // See also: http://dean.edwards.name/weblog/2005/09/busted/ if (arguments.callee.done) return; arguments.callee.done = true; // Grab the query params and figure out the debug mode. query = parseQueryString(location.search.substring(1)); _DEBUG = (query.debug == '1') ? true : _DEBUG; if (_DEBUG) createLoggingPane(true); log("Starting up."); // log("Applying Behaviours."); // Behaviour.register(behaviours); // Behaviour.apply(); } /* // See also: http://dean.edwards.name/weblog/2005/09/busted/ if (document.addEventListener) { document.addEventListener("DOMContentLoaded", init, null); } else { addLoadEvent(init); } */ addLoadEvent(init); /* window.onload = init; */ 00040000000B000000020132A100050000000A00000002032A00006000000650000000210A210FFFF0A00000 10 10A30FFFF0A00000 10 0007000000190000000102018000080000012D0000000240,Geneva40,4030 1040,Monaco40,4040 100009000000170000000232712C132712C1000A000000170000000262012226201222000B00000005000000020000C00000017000000013251ED9D26961000F0000005200000000400 10 4,77A4, 1:04,4,4,+4, 4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA)x(^zdFFFF000000060001001777AA00000000006C000000001001710000001-7F7F6FBE180000048004806DA55200-106DA55222FFFF0103187450000100000D070000003009114084066932228E903CE0006866693E8091111AE408406936C1C22289003CE000C0F6C1C43011AE1A1D40840C1C6117E22284503CE00011716117EE601A1D225B40840117E6176F22283403CE00017626176F350225B2A7A40840176F61C762227FA03CE0001C6961C76C502A7A32AE408401C766220C22280903CE00021FF6220CDB032AE3AAD40840220C6276E2227F003CE00027616276E4B03AAD42BB40840276E62A532227FE03CE0002A4662A5359042BB4ABE408402A5362D6C2227E003CE0002D5F62D6CB204ABE52BF408402D6C632CE2227DE03CE00032C1632CEAA052BF5ACA4084032CE637EF2227F203CE00037E2637EF8205ACA62C44084037EF63D9F2227DF03CE0003D9263D9F84062C46AD8408403D9F643C42227F603CE00043B7643C49B06AD872CE4084043C46498E22279403CE00049816498E1F8072CE7AC740840498E64C662227CE03CE0004C5964C66DF07AC782F4408404C66650352227F403CE00050286503512C082F48AEC408405035653A922279903CC000539C653A921408AEC92F94084053A9657442227B903CE0005737657441C0092F99AFC40840574465AF92227CD03CE0005AEC65AF912B09AFCA2F6408405AF965F7E2227D703CE0005F7165F7EC50A2F6AAEE408405F7E663B52227AA03CC00063A8663B518D0AAEEB2E24084063B5668542227E003CE000684766854690B2E2BAE540840685466D272227E903CE0006D1A66D278B0BAE5C2E6408406D27672D72227E403CE00072CA672D7980C2E6CAEB4084072D7676992227DA03CE000768C67699EF0CAEBD2F0408407699679B22227E803CE00079A5679B29B0D2F0DAEF4084079B267E922227E303CE0007E8567E92950DAEFE2D8408407E92683F42227DC03CE00083E7683F4420E2D8EAE74084083F4689702227E303CE000896368970FB0EAE7F2D340840897068D8D2227C403CE0008D8068D8DD50F2D3FAC4408408D8D6927A2227EE03CE000926D6927AF0FAC4102D540840927A697332227F203CE000972669733AA0102D510ADE40840973369BAB2227E903CE0009B9E69BABB2010ADE112CE408409BAB69F122227D203CE0009F0569F12A20112CE11AF9408409F126A2932227CF03CC000A2866A2931E6011AF91230440840A2936A74C2227D103CE000A73F6A74C14001230412AF340840A74C6AAC02227C403CE000AAB36AAC0EB012AF31330240840AAC06AEEA2227E303CE000AEDD6AEEAEB01330213AEA40840AEEA6B2ED2227C903CE000B2E06B2ED9D013AEA142D540840B2ED6B7652227E103CE000B7586B765350142D514AE840840B7656BF372227EA03CE000BF2A6BF37E3014AE8152D840840BF376C3A22227E503CC000C3956C3A2390152D815EBB40840C3A26C54F222BDE03CC000C5426C54F1B015EBB1653740840C54F6C87522267203CE000C8686C8753301653716C6640840C8756CB4022270803CE000CB336CB40E1016C66173D140840CB406CF8422275403CE000CF776CF84830173D117B3F40840CF846D43022274203CE000D4236D430E1017B3F1874540840D4306DA55222C06038E000DA486DA556000020000091700000000911,/*** MochiKit.MochiKit 1.2 : PACKED VERSION THIS FILE IS AUTOMATICALLY GENERATED. If creating patches, please diff against the source tree, not this file. See for documentation, downloads, license, etc. (c) 2005 Bob Ippolito. All rights Reserved. ***/ if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.Base"); } if(typeof (MochiKit)=="undefined"){ MochiKit={}; } if(typeof (MochiKit.Base)=="undefined"){ MochiKit.Base={}; } MochiKit.Base.VERSION="1.2"; MochiKit.Base.NAME="MochiKit.Base"; MochiKit.Base.update=function(_1,_2){ if(_1==null){ _1={}; } for(var i=1;i>b; },zrshift:function(a,b){ return a>>>b; },eq:function(a,b){ return a==b; },ne:function(a,b){ return a!=b; },gt:function(a,b){ return a>b; },ge:function(a,b){ return a>=b; },lt:function(a,b){ return al){ _37=l; } } _36=[]; for(i=0;i<_37;i++){ var _38=[]; for(var j=1;j0){ _51=m.concat(me.im_preargs,_51); } var _46=me.im_self; if(!_46){ _46=this; } return me.im_func.apply(_46,_51); }; _50.im_self=_49; _50.im_func=_47; _50.im_preargs=_48; return _50; },bindMethods:function(_52){ var _53=MochiKit.Base.bind; for(var k in _52){ var _54=_52[k]; if(typeof (_54)=="function"){ _52[k]=_53(_54,_52); } } },registerComparator:function(_55,_56,_57,_58){ MochiKit.Base.comparatorRegistry.register(_55,_56,_57,_58); },_primitives:{"bool":true,"string":true,"number":true},compare:function(a,b){ if(a==b){ return 0; } var _59=(typeof (a)=="undefined"||a==null); var _60=(typeof (b)=="undefined"||b==null); if(_59&&_60){ return 0; }else{ if(_59){ return -1; }else{ if(_60){ return 1; } } } var m=MochiKit.Base; var _61=m._primitives; if(!(typeof (a) in _61&&typeof (b) in _61)){ try{ return m.comparatorRegistry.match(a,b); } catch(e){ if(e!=m.NotFound){ throw e; } } } if(ab){ return 1; 0002000008250000225B81F, } } var _62=m.repr; throw new TypeError(_62(a)+" and "+_62(b)+" can not be compared"); },compareDateLike:function(a,b){ return MochiKit.Base.compare(a.getTime(),b.getTime()); },compareArrayLike:function(a,b){ var _63=MochiKit.Base.compare; var _64=a.length; var _65=0; if(_64>b.length){ _65=1; _64=b.length; }else{ if(_640))){ var kv=MochiKit.DOM.formContents(_108); _108=kv[0]; _109=kv[1]; }else{ if(arguments.length==1){ var o=_108; _108=[]; _109=[]; for(var k in o){ var v=o[k]; if(typeof (v)!="function"){ _108.push(k); _109.push(v); } } } } var rval=[]; var len=Math.min(_108.length,_109.length); var _113=MochiKit.Base.urlEncode; for(var i=0;i=stop){ throw self.StopIteration; } _142+=step; return rval; }}; },imap:function(fun,p,q){ var m=MochiKit.Base; var self=MochiKit.Iter; var _146=m.map(self.iter,m.extend(null,arguments,1)); var map=m.map; var next=self.next; return {repr:function(){ return "imap(...)"; },toString:m.forward("repr"),next:function(){ return fun.apply(this,map(next,_146)); }}; },applymap:function(fun,seq,self){ seq=MochiKit.Iter.iter(seq); var m=MochiKit.Base; return {repr:function(){ return "applymap(...)"; },toString:m.forward("repr"),next:function(){ return fun.apply(self,seq.next()); }}; },chain:function(p,q){ var self=MochiKit.Iter; var m=MochiKit.Base; if(arguments.length==1){ return self.iter(arguments[0]); } var _148=m.map(self.iter,arguments); return {repr:function(){ return "chain(...)"; },toString:m.forward("repr"),next:function(){ while(_148.length>1){ try{ return _148[0].next(); } catch(e){ if(e!=self.StopIteration){ throw e; } _148.shift(); } } if(_148.length==1){ var arg=_148.shift(); this.next=m.bind("next",arg); return this.next(); } throw self.StopIteration; }}; },takewhile:function(pred,seq){ var self=MochiKit.Iter; seq=self.iter(seq); return {repr:function(){ 00020000080000005ACA7FA, return "takewhile(...)"; },toString:MochiKit.Base.forward("repr"),next:function(){ var rval=seq.next(); if(!pred(rval)){ this.next=function(){ throw self.StopIteration; }; this.next(); } return rval; }}; },dropwhile:function(pred,seq){ seq=MochiKit.Iter.iter(seq); var m=MochiKit.Base; var bind=m.bind; return {"repr":function(){ return "dropwhile(...)"; },"toString":m.forward("repr"),"next":function(){ while(true){ var rval=seq.next(); if(!pred(rval)){ break; } } this.next=bind("next",seq); return rval; }}; },_tee:function(_150,sync,_152){ sync.pos[_150]=-1; var m=MochiKit.Base; var _153=m.listMin; return {repr:function(){ return "tee("+_150+", ...)"; },toString:m.forward("repr"),next:function(){ var rval; var i=sync.pos[_150]; if(i==sync.max){ rval=_152.next(); sync.deque.push(rval); sync.max+=1; sync.pos[_150]+=1; }else{ rval=sync.deque[i-sync.min]; sync.pos[_150]+=1; if(i==sync.min&&_153(sync.pos)!=sync.min){ sync.min+=1; sync.deque.shift(); } } return rval; }}; },tee:function(_154,n){ var rval=[]; var sync={"pos":[],"deque":[],"max":-1,"min":-1}; if(arguments.length==1){ n=2; } var self=MochiKit.Iter; _154=self.iter(_154); var _tee=self._tee; for(var i=0;i0&&_160>=stop)||(step<0&&_160<=stop)){ throw MochiKit.Iter.StopIteration; } var rval=_160; _160+=step; return rval; },repr:function(){ return "range("+[_160,stop,step].join(", ")+")"; },toString:MochiKit.Base.forward("repr")}; },sum:function(_161,_162){ var x=_162||0; var self=MochiKit.Iter; _161=self.iter(_161); try{ while(true){ x+=_161.next(); } } catch(e){ if(e!=self.StopIteration){ throw e; } } return x; },exhaust:function(_163){ var self=MochiKit.Iter; _163=self.iter(_163); try{ while(true){ _163.next(); } } catch(e){ if(e!=self.StopIteration){ throw e; } } },forEach:function(_164,func,self){ var m=MochiKit.Base; if(arguments.length>2){ func=m.bind(func,self); } if(m.isArrayLike(_164)){ try{ for(var i=0;i<_164.length;i++){ func(_164[i]); } } catch(e){ if(e!=MochiKit.Iter.StopIteration){ throw e; } } }else{ self=MochiKit.Iter; self.exhaust(self.imap(func,_164)); } },every:function(_166,func){ var self=MochiKit.Iter; try{ self.ifilterfalse(func,_166).next(); return false; } catch(e){ if(e!=self.StopIteration){ throw e; } return true; } },sorted:function(_167,cmp){ var rval=MochiKit.Iter.list(_167); if(arguments.length==1){ cmp=MochiKit.Base.compare; } rval.sort(cmp); return rval; },reversed:function(_168){ var rval=MochiKit.Iter.list(_168); rval.reverse(); return rval; },some:function(_169,func){ var self=MochiKit.Iter; try{ self.ifilter(func,_169).next(); return true; } catch(e){ if(e!=self.StopIteration){ throw e; } return false; } },iextend:function(lst,_170){ 0002000007FC00006AD87F6, if(MochiKit.Base.isArrayLike(_170)){ for(var i=0;i<_170.length;i++){ lst.push(_170[i]); } }else{ var self=MochiKit.Iter; _170=self.iter(_170); try{ while(true){ lst.push(_170.next()); } } catch(e){ if(e!=self.StopIteration){ throw e; } } } return lst; },groupby:function(_171,_172){ var m=MochiKit.Base; var self=MochiKit.Iter; if(arguments.length<2){ _172=m.operator.identity; } _171=self.iter(_171); var pk=undefined; var k=undefined; var v; function fetch(){ v=_171.next(); k=_172(v); } function eat(){ var ret=v; v=undefined; return ret; } var _175=true; return {repr:function(){ return "groupby(...)"; },next:function(){ while(k==pk){ fetch(); if(_175){ _175=false; break; } } pk=k; return [k,{next:function(){ if(v==undefined){ fetch(); } if(k!=pk){ throw self.StopIteration; } return eat(); }}]; }}; },groupby_as_array:function(_176,_177){ var m=MochiKit.Base; var self=MochiKit.Iter; if(arguments.length<2){ _177=m.operator.identity; } _176=self.iter(_176); var _178=[]; var _179=true; var _180; while(true){ try{ var _181=_176.next(); var key=_177(_181); } catch(e){ if(e==self.StopIteration){ break; } throw e; } if(_179||key!=_180){ var _182=[]; _178.push([key,_182]); } _182.push(_181); _179=false; _180=key; } return _178; },arrayLikeIter:function(_183){ var i=0; return {repr:function(){ return "arrayLikeIter(...)"; },toString:MochiKit.Base.forward("repr"),next:function(){ if(i>=_183.length){ throw MochiKit.Iter.StopIteration; } return _183[i++]; }}; },hasIterateNext:function(_184){ return (_184&&typeof (_184.iterateNext)=="function"); },iterateNextIter:function(_185){ return {repr:function(){ return "iterateNextIter(...)"; },toString:MochiKit.Base.forward("repr"),next:function(){ var rval=_185.iterateNext(); if(rval===null||rval===undefined){ throw MochiKit.Iter.StopIteration; } return rval; }}; }}); MochiKit.Iter.EXPORT_OK=["iteratorRegistry","arrayLikeIter","hasIterateNext","iterateNextIter",]; 0002000007FF000072CE7F9, MochiKit.Iter.EXPORT=["StopIteration","registerIteratorFactory","iter","count","cycle","repeat","next","izip","ifilter","ifilterfalse","islice","imap","applymap","chain","takewhile","dropwhile","tee","list","reduce","range","sum","exhaust","forEach","every","sorted","reversed","some","iextend","groupby","groupby_as_array"]; MochiKit.Iter.__new__=function(){ var m=MochiKit.Base; this.StopIteration=new m.NamedError("StopIteration"); this.iteratorRegistry=new m.AdapterRegistry(); this.registerIteratorFactory("arrayLike",m.isArrayLike,this.arrayLikeIter); this.registerIteratorFactory("iterateNext",this.hasIterateNext,this.iterateNextIter); this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; m.nameFunctions(this); }; MochiKit.Iter.__new__(); reduce=MochiKit.Iter.reduce; MochiKit.Base._exportSymbols(this,MochiKit.Iter); if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.Logging"); dojo.require("MochiKit.Base"); } if(typeof (JSAN)!="undefined"){ JSAN.use("MochiKit.Base",[]); } try{ if(typeof (MochiKit.Base)=="undefined"){ throw ""; } } catch(e){ throw "MochiKit.Logging depends on MochiKit.Base!"; } if(typeof (MochiKit.Logging)=="undefined"){ MochiKit.Logging={}; } MochiKit.Logging.NAME="MochiKit.Logging"; MochiKit.Logging.VERSION="1.2"; MochiKit.Logging.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; MochiKit.Logging.toString=function(){ return this.__repr__(); }; MochiKit.Logging.EXPORT=["LogLevel","LogMessage","Logger","alertListener","logger","log","logError","logDebug","logFatal","logWarning"]; MochiKit.Logging.EXPORT_OK=["logLevelAtLeast","isLogMessage","compareLogMessage"]; MochiKit.Logging.LogMessage=function(num,_187,info){ this.num=num; this.level=_187; this.info=info; this.timestamp=new Date(); }; MochiKit.Logging.LogMessage.prototype={repr:function(){ var m=MochiKit.Base; return "LogMessage("+m.map(m.repr,[this.num,this.level,this.info]).join(", ")+")"; },toString:MochiKit.Base.forward("repr")}; 00020000083300007AC782D, MochiKit.Base.update(MochiKit.Logging,{logLevelAtLeast:function(_189){ var self=MochiKit.Logging; if(typeof (_189)=="string"){ _189=self.LogLevel[_189]; } return function(msg){ var _191=msg.level; if(typeof (_191)=="string"){ _191=self.LogLevel[_191]; } return _191>=_189; }; },isLogMessage:function(){ var _192=MochiKit.Logging.LogMessage; for(var i=0;i=0&&this._messages.length>this.maxSize){ this._messges.shift(); } },getMessages:function(_201){ var _202=0; if(!(typeof (_201)=="undefined"||_201==null)){ _202=Math.max(0,this._messages.length-_201); } return this._messages.slice(_202); },getMessageText:function(_203){ if(typeof (_203)=="undefined"||_203==null){ _203=30; } var _204=this.getMessages(_203); if(_204.length){ var lst=map(function(m){ return "\n ["+m.num+"] "+m.level+": "+m.info.join(" "); 0002000007FE000082F47F8, },_204); lst.unshift("LAST "+_204.length+" MESSAGES:"); return lst.join(""); } return ""; },debuggingBookmarklet:function(_205){ if(typeof (MochiKit.LoggingPane)=="undefined"){ alert(this.getMessageText()); }else{ MochiKit.LoggingPane.createLoggingPane(_205||false); } }}; MochiKit.Logging.__new__=function(){ this.LogLevel={ERROR:40,FATAL:50,WARNING:30,INFO:20,DEBUG:10}; var m=MochiKit.Base; m.registerComparator("LogMessage",this.isLogMessage,this.compareLogMessage); var _206=m.partial; var _207=this.Logger; var _208=_207.prototype.baseLog; m.update(this.Logger.prototype,{debug:_206(_208,"DEBUG"),log:_206(_208,"INFO"),error:_206(_208,"ERROR"),fatal:_206(_208,"FATAL"),warning:_206(_208,"WARNING")}); var self=this; var _209=function(name){ return function(){ self.logger[name].apply(self.logger,arguments); }; }; this.log=_209("log"); this.logError=_209("error"); this.logDebug=_209("debug"); this.logFatal=_209("fatal"); this.logWarning=_209("warning"); this.logger=new _207(); this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; m.nameFunctions(this); }; MochiKit.Logging.__new__(); MochiKit.Base._exportSymbols(this,MochiKit.Logging); if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.DateTime"); } if(typeof (MochiKit)=="undefined"){ MochiKit={}; } if(typeof (MochiKit.DateTime)=="undefined"){ MochiKit.DateTime={}; } MochiKit.DateTime.NAME="MochiKit.DateTime"; MochiKit.DateTime.VERSION="1.2"; MochiKit.DateTime.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; MochiKit.DateTime.toString=function(){ return this.__repr__(); }; MochiKit.DateTime.isoDate=function(str){ str=str+""; if(typeof (str)!="string"||str.length==0){ return null; } var iso=str.split("-"); if(iso.length==0){ return null; } return new Date(iso[0],iso[1]-1,iso[2]); }; MochiKit.DateTime._isoRegexp=/(\d{4,})(?:-(\d{1,2})(?:-(\d{1,2})(?:[T ](\d{1,2}):(\d{1,2})(?::(\d{1,2})(?:\.(\d+))?)?(?:(Z)|([+-])(\d{1,2})(?::(\d{1,2}))?)?)?)?)?/; 00020000081300008AEC80D, MochiKit.DateTime.isoTimestamp=function(str){ str=str+""; if(typeof (str)!="string"||str.length==0){ return null; } var res=str.match(MochiKit.DateTime._isoRegexp); if(typeof (res)=="undefined"||res==null){ return null; } var year,month,day,hour,min,sec,msec; year=parseInt(res[1],10); if(typeof (res[2])=="undefined"||res[2]==""){ return new Date(year); } month=parseInt(res[2],10)-1; day=parseInt(res[3],10); if(typeof (res[4])=="undefined"||res[4]==""){ return new Date(year,month,day); } hour=parseInt(res[4],10); min=parseInt(res[5],10); sec=(typeof (res[6])!="undefined"&&res[6]!="")?parseInt(res[6],10):0; if(typeof (res[7])!="undefined"&&res[7]!=""){ msec=Math.round(1000*parseFloat("0."+res[7])); }else{ msec=0; } if((typeof (res[8])=="undefined"||res[8]=="")&&(typeof (res[9])=="undefined"||res[9]=="")){ return new Date(year,month,day,hour,min,sec,msec); } var ofs; if(typeof (res[9])!="undefined"&&res[9]!=""){ ofs=parseInt(res[10],10)*3600000; if(typeof (res[11])!="undefined"&&res[11]!=""){ ofs+=parseInt(res[11],10)*60000; } if(res[9]=="-"){ ofs=-ofs; } }else{ ofs=0; } return new Date(Date.UTC(year,month,day,hour,min,sec,msec)-ofs); }; MochiKit.DateTime.toISOTime=function(date,_215){ if(typeof (date)=="undefined"||date==null){ return null; } var hh=date.getHours(); var mm=date.getMinutes(); var ss=date.getSeconds(); var lst=[((_215&&(hh<10))?"0"+hh:hh),((mm<10)?"0"+mm:mm),((ss<10)?"0"+ss:ss)]; return lst.join(":"); }; MochiKit.DateTime.toISOTimestamp=function(date,_219){ if(typeof (date)=="undefined"||date==null){ return null; } var sep=_219?"T":" "; var foot=_219?"Z":""; if(_219){ date=new Date(date.getTime()+(date.getTimezoneOffset()*60000)); } return MochiKit.DateTime.toISODate(date)+sep+MochiKit.DateTime.toISOTime(date,_219)+foot; }; MochiKit.DateTime.toISODate=function(date){ if(typeof (date)=="undefined"||date==null){ return null; } var _222=MochiKit.DateTime._padTwo; return [date.getFullYear(),_222(date.getMonth()+1),_222(date.getDate())].join("-"); 000200000809000092F9803, }; MochiKit.DateTime.americanDate=function(d){ d=d+""; if(typeof (d)!="string"||d.length==0){ return null; } var a=d.split("/"); return new Date(a[2],a[0]-1,a[1]); }; MochiKit.DateTime._padTwo=function(n){ return (n>9)?n:"0"+n; }; MochiKit.DateTime.toPaddedAmericanDate=function(d){ if(typeof (d)=="undefined"||d==null){ return null; } var _224=MochiKit.DateTime._padTwo; return [_224(d.getMonth()+1),_224(d.getDate()),d.getFullYear()].join("/"); }; MochiKit.DateTime.toAmericanDate=function(d){ if(typeof (d)=="undefined"||d==null){ return null; } return [d.getMonth()+1,d.getDate(),d.getFullYear()].join("/"); }; MochiKit.DateTime.EXPORT=["isoDate","isoTimestamp","toISOTime","toISOTimestamp","toISODate","americanDate","toPaddedAmericanDate","toAmericanDate"]; MochiKit.DateTime.EXPORT_OK=[]; MochiKit.DateTime.EXPORT_TAGS={":common":MochiKit.DateTime.EXPORT,":all":MochiKit.DateTime.EXPORT}; MochiKit.DateTime.__new__=function(){ var base=this.NAME+"."; for(var k in this){ var o=this[k]; if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){ try{ o.NAME=base+k; } catch(e){ } } } }; MochiKit.DateTime.__new__(); (function(_225,_226){ if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(typeof (MochiKit.__compat__)=="boolean"&&MochiKit.__compat__)){ var all=_226.EXPORT_TAGS[":all"]; for(var i=0;i_234){ var i=_240.length-_234; res=fmt.separator+_240.substring(i,_240.length)+res; _240=_240.substring(0,i); } } res=_240+res; if(_232>0){ while(frac.length<_235){ frac=frac+"0"; } res=res+fmt.decimal+frac; } return _236+res+_237; }; }; MochiKit.Format.numberFormatter=function(_242,_243,_244){ if(typeof (_243)=="undefined"){ _243=""; } var _245=_242.match(/((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/); if(!_245){ throw TypeError("Invalid pattern"); } var _246=_242.substr(0,_245.index); var _247=_242.substr(_245.index+_245[0].length); if(_246.search(/-/)==-1){ _246=_246+"-"; } var _248=_245[1]; var frac=(typeof (_245[2])=="string"&&_245[2]!="")?_245[2]:""; var _249=(typeof (_245[3])=="string"&&_245[3]!=""); var tmp=_248.split(/,/); var _251; if(typeof (_244)=="undefined"){ _244="default"; } if(tmp.length==1){ _251=null; }else{ _251=tmp[1].length; } var _252=_248.length-_248.replace(/0/g,"").length; var _253=frac.length-frac.replace(/0/g,"").length; var _254=frac.length; var rval=MochiKit.Format._numberFormatter(_243,_246,_247,_244,_249,_254,_252,_251,_253); var m=MochiKit.Base; if(m){ var fn=arguments.callee; var args=m.concat(arguments); rval.repr=function(){ return [self.NAME,"(",map(m.repr,args).join(", "),")"].join(""); }; } return rval; }; MochiKit.Format.formatLocale=function(_256){ if(typeof (_256)=="undefined"||_256==null){ _256="default"; } if(typeof (_256)=="string"){ var rval=MochiKit.Format.LOCALE[_256]; if(typeof (rval)=="string"){ rval=arguments.callee(rval); MochiKit.Format.LOCALE[_256]=rval; 0002000007FE0000A2F67F8, } return rval; }else{ return _256; } }; MochiKit.Format.twoDigitAverage=function(_257,_258){ if(_258){ var res=_257/_258; if(!isNaN(res)){ return MochiKit.Format.twoDigitFloat(_257/_258); } } return "0"; }; MochiKit.Format.twoDigitFloat=function(_259){ var sign=(_259<0?"-":""); var s=Math.floor(Math.abs(_259)*100).toString(); if(s=="0"){ return s; } if(s.length<3){ while(s.charAt(s.length-1)=="0"){ s=s.substring(0,s.length-1); } return sign+"0."+s; } var head=sign+s.substring(0,s.length-2); var tail=s.substring(s.length-2,s.length); if(tail=="00"){ return head; }else{ if(tail.charAt(1)=="0"){ return head+"."+tail.charAt(0); }else{ return head+"."+tail; } } }; MochiKit.Format.lstrip=function(str,_264){ str=str+""; if(typeof (str)!="string"){ return null; } if(!_264){ return str.replace(/^\s+/,""); }else{ return str.replace(new RegExp("^["+_264+"]+"),""); } }; MochiKit.Format.rstrip=function(str,_265){ str=str+""; if(typeof (str)!="string"){ return null; } if(!_265){ return str.replace(/\s+$/,""); }else{ return str.replace(new RegExp("["+_265+"]+$"),""); } }; MochiKit.Format.strip=function(str,_266){ var self=MochiKit.Format; return self.rstrip(self.lstrip(str,_266),_266); }; MochiKit.Format.truncToFixed=function(_267,_268){ _267=Math.floor(_267*Math.pow(10,_268)); var res=(_267*Math.pow(10,-_268)).toFixed(_268); if(res.charAt(0)=="."){ res="0"+res; } return res; }; MochiKit.Format.roundToFixed=function(_269,_270){ return MochiKit.Format.truncToFixed(_269+0.5*Math.pow(10,-_270),_270); }; MochiKit.Format.percentFormat=function(_271){ return MochiKit.Format.twoDigitFloat(100*_271)+"%"; }; MochiKit.Format.EXPORT=["truncToFixed","roundToFixed","numberFormatter","formatLocale","twoDigitAverage","twoDigitFloat","percentFormat","lstrip","rstrip","strip"]; MochiKit.Format.LOCALE={en_US:{separator:",",decimal:".",percent:"%"},de_DE:{separator:".",decimal:",",percent:"%"},fr_FR:{separator:" ",decimal:",",percent:"%"},"default":"en_US"}; 0002000007FA0000AAEE7F4, MochiKit.Format.EXPORT_OK=[]; MochiKit.Format.EXPORT_TAGS={":all":MochiKit.Format.EXPORT,":common":MochiKit.Format.EXPORT}; MochiKit.Format.__new__=function(){ var base=this.NAME+"."; var k,v,o; for(k in this.LOCALE){ o=this.LOCALE[k]; if(typeof (o)=="object"){ o.repr=function(){ return this.NAME; }; o.NAME=base+"LOCALE."+k; } } for(k in this){ o=this[k]; if(typeof (o)=="function"&&typeof (o.NAME)=="undefined"){ try{ o.NAME=base+k; } catch(e){ } } } }; MochiKit.Format.__new__(); (function(_272,_273){ if((typeof (JSAN)=="undefined"&&typeof (dojo)=="undefined")||(typeof (MochiKit.__compat__)=="boolean"&&MochiKit.__compat__)){ var all=_273.EXPORT_TAGS[":all"]; for(var i=0;i=0)){ this._fire(); } },_continue:function(res){ this._resback(res); this._unpause(); },_resback:function(res){ this.fired=((res instanceof Error)?1:0); this.results[this.fired]=res; this._fire(); },_check:function(){ if(this.fired!=-1){ if(!this.silentlyCancelled){ throw new MochiKit.Async.AlreadyCalledError(this); } this.silentlyCancelled=false; return; } },callback:function(res){ this._check(); this._resback(res); },errback:function(res){ this._check(); if(!(res instanceof Error)){ res=new MochiKit.Async.GenericError(res); } this._resback(res); },addBoth:function(fn){ if(arguments.length>1){ fn=MochiKit.Base.partial.apply(null,arguments); } return this.addCallbacks(fn,fn); },addCallback:function(fn){ if(arguments.length>1){ fn=MochiKit.Base.partial.apply(null,arguments); } return this.addCallbacks(fn,null); },addErrback:function(fn){ if(arguments.length>1){ fn=MochiKit.Base.partial.apply(null,arguments); } return this.addCallbacks(null,fn); },addCallbacks:function(cb,eb){ this.chain.push([cb,eb]); if(this.fired>=0){ this._fire(); } return this; },_fire:function(){ var _278=this.chain; var _279=this.fired; var res=this.results[_279]; var self=this; var cb=null; while(_278.length>0&&this.paused==0){ var pair=_278.shift(); var f=pair[_279]; if(f==null){ continue; } try{ res=f(res); _279=((res instanceof Error)?1:0); if(res instanceof MochiKit.Async.Deferred){ cb=function(res){ self._continue(res); }; this._pause(); } } catch(err){ _279=1; res=err; } } this.fired=_279; this.results[_279]=res; if(cb&&this.paused){ res.addBoth(cb); } }}; MochiKit.Base.update(MochiKit.Async,{evalJSONRequest:function(){ return eval("("+arguments[0].responseText+")"); },succeed:function(_281){ 0002000008070000BAE5801, var d=new MochiKit.Async.Deferred(); d.callback.apply(d,arguments); return d; },fail:function(_282){ var d=new MochiKit.Async.Deferred(); d.errback.apply(d,arguments); return d; },getXMLHttpRequest:function(){ var self=arguments.callee; if(!self.XMLHttpRequest){ var _283=[function(){ return new XMLHttpRequest(); },function(){ return new ActiveXObject("Msxml2.XMLHTTP"); },function(){ return new ActiveXObject("Microsoft.XMLHTTP"); },function(){ return new ActiveXObject("Msxml2.XMLHTTP.4.0"); },function(){ throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest"); }]; for(var i=0;i<_283.length;i++){ var func=_283[i]; try{ self.XMLHttpRequest=func; return func(); } catch(e){ } } } return self.XMLHttpRequest(); },sendXMLHttpRequest:function(req,_285){ if(typeof (_285)=="undefined"){ _285=null; } var _286=function(){ try{ req.onreadystatechange=null; } catch(e){ try{ req.onreadystatechange=function(){ }; } catch(e){ } } req.abort(); }; var self=MochiKit.Async; var d=new self.Deferred(_286); var _287=function(){ if(req.readyState==4){ try{ req.onreadystatechange=null; } catch(e){ try{ req.onreadystatechange=function(){ }; } catch(e){ } } var _288=null; try{ _288=req.status; if(!_288&&MochiKit.Base.isNotEmpty(req.responseText)){ _288=304; } } catch(e){ } if(_288==200||_288==304){ d.callback(req); }else{ var err=new self.XMLHttpRequestError(req,"Request failed"); if(err.number){ d.errback(err); }else{ d.errback(err); } } } }; try{ req.onreadystatechange=_287; req.send(_285); } catch(e){ try{ req.onreadystatechange=null; } catch(ignore){ } d.errback(e); } return d; },doSimpleXMLHttpRequest:function(url){ var self=MochiKit.Async; var req=self.getXMLHttpRequest(); if(arguments.length>1){ var m=MochiKit.Base; var qs=m.queryString.apply(null,m.extend(null,arguments,1)); if(qs){ url+="?"+qs; } } req.open("GET",url,true); return self.sendXMLHttpRequest(req); },loadJSONDoc:function(url){ 00020000080B0000C2E6805, var self=MochiKit.Async; var d=self.doSimpleXMLHttpRequest.apply(self,arguments); d=d.addCallback(self.evalJSONRequest); return d; },wait:function(_292,_293){ var d=new MochiKit.Async.Deferred(); var m=MochiKit.Base; if(typeof (_293)!="undefined"){ d.addCallback(function(){ return _293; }); } var _294=setTimeout(m.bind("callback",d),Math.floor(_292*1000)); d.canceller=function(){ try{ clearTimeout(_294); } catch(e){ } }; return d; },callLater:function(_295,func){ var m=MochiKit.Base; var _296=m.partial.apply(m,m.extend(null,arguments,1)); return MochiKit.Async.wait(_295).addCallback(function(res){ return _296(); }); }}); MochiKit.Async.DeferredLock=function(){ this.waiting=[]; this.locked=false; this.id=this._nextId(); }; MochiKit.Async.DeferredLock.prototype={__class__:MochiKit.Async.DeferredLock,acquire:function(){ d=new MochiKit.Async.Deferred(); if(this.locked){ this.waiting.push(d); }else{ this.locked=true; d.callback(this); } return d; },release:function(){ if(!this.locked){ throw TypeError("Tried to release an unlocked DeferredLock"); } this.locked=false; if(this.waiting.length>0){ this.locked=true; this.waiting.shift().callback(this); } },_nextId:MochiKit.Base.counter(),repr:function(){ var _297; if(this.locked){ _297="locked, "+this.waiting.length+" waiting"; }else{ _297="unlocked"; } return "DeferredLock("+this.id+", "+_297+")"; },toString:MochiKit.Base.forward("repr")}; MochiKit.Async.EXPORT=["AlreadyCalledError","CancelledError","BrowserComplianceError","GenericError","XMLHttpRequestError","Deferred","succeed","fail","getXMLHttpRequest","doSimpleXMLHttpRequest","loadJSONDoc","wait","callLater","sendXMLHttpRequest","DeferredLock"]; MochiKit.Async.EXPORT_OK=["evalJSONRequest"]; MochiKit.Async.__new__=function(){ var m=MochiKit.Base; var ne=m.partial(m._newNamedError,this); ne("AlreadyCalledError",function(_299){ this.deferred=_299; }); ne("CancelledError",function(_300){ this.deferred=_300; }); ne("BrowserComplianceError",function(msg){ 00020000080B0000CAEB805, this.message=msg; }); ne("GenericError",function(msg){ this.message=msg; }); ne("XMLHttpRequestError",function(req,msg){ this.req=req; this.message=msg; try{ this.number=req.status; } catch(e){ } }); this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; m.nameFunctions(this); }; MochiKit.Async.__new__(); MochiKit.Base._exportSymbols(this,MochiKit.Async); if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.DOM"); dojo.require("MochiKit.Iter"); } if(typeof (JSAN)!="undefined"){ JSAN.use("MochiKit.Iter",[]); } try{ if(typeof (MochiKit.Iter)=="undefined"){ throw ""; } } catch(e){ throw "MochiKit.DOM depends on MochiKit.Iter!"; } if(typeof (MochiKit.DOM)=="undefined"){ MochiKit.DOM={}; } MochiKit.DOM.NAME="MochiKit.DOM"; MochiKit.DOM.VERSION="1.2"; MochiKit.DOM.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; MochiKit.DOM.toString=function(){ return this.__repr__(); }; MochiKit.DOM.EXPORT=["elementDimensions","formContents","currentWindow","currentDocument","withWindow","withDocument","registerDOMConverter","coerceToDOM","createDOM","createDOMFunc","getNodeAttribute","setNodeAttribute","updateNodeAttributes","appendChildNodes","replaceChildNodes","removeElement","swapDOM","BUTTON","TT","PRE","H1","H2","H3","BR","CANVAS","HR","LABEL","TEXTAREA","FORM","STRONG","SELECT","OPTION","OPTGROUP","LEGEND","FIELDSET","P","UL","OL","LI","TD","TR","THEAD","TBODY","TFOOT","TABLE","TH","INPUT","SPAN","A","DIV","IMG","getElement","$","computedStyle","getElementsByTagAndClassName","addToCallStack","addLoadEvent","focusOnLoad","setElementClass","toggleElementClass","addElementClass","removeElementClass","swapElementClass","hasElementClass","escapeHTML","toHTML","emitHTML","setDisplayForElement","hideElement","showElement","scrapeText","elementPosition"]; MochiKit.DOM.EXPORT_OK=["domConverters"]; MochiKit.DOM.Dimensions=function(w,h){ this.w=w; this.h=h; }; MochiKit.DOM.Dimensions.prototype.repr=function(){ var repr=MochiKit.Base.repr; 0002000008050000D2F07FF, return "{w: "+repr(this.w)+", h: "+repr(this.h)+"}"; }; MochiKit.DOM.Coordinates=function(x,y){ this.x=x; this.y=y; }; MochiKit.DOM.Coordinates.prototype.repr=function(){ var repr=MochiKit.Base.repr; return "{x: "+repr(this.x)+", y: "+repr(this.y)+"}"; }; MochiKit.DOM.elementDimensions=function(elem){ var self=MochiKit.DOM; if(typeof (elem.w)=="number"||typeof (elem.h)=="number"){ return new self.Dimensions(elem.w||0,elem.h||0); } elem=self.getElement(elem); if(!elem){ return undefined; } if(self.computedStyle(elem,"display")!="none"){ return new self.Dimensions(elem.w||0,elem.h||0); } var s=elem.style; var _305=s.visibility; var _306=s.position; s.visibility="hidden"; s.position="absolute"; s.display=""; var _307=elem.clientWidth; var _308=elem.clientHeight; s.display="none"; s.position=_306; s.visibility=_305; return new self.Dimensions(_307,_308); }; MochiKit.DOM.elementPosition=function(elem,_309){ var self=MochiKit.DOM; elem=self.getElement(elem); if(!elem){ return undefined; } var x=0; var y=0; if(elem.offsetParent){ while(elem.offsetParent){ x+=elem.offsetLeft; y+=elem.offsetTop; elem=elem.offsetParent; } }else{ x=elem.x||x; y=elem.y||y; } if(_309){ _309=arguments.callee(_309); if(_309){ x-=(_309.x||0); y-=(_309.y||0); } } return new self.Coordinates(x,y); }; MochiKit.DOM.currentWindow=function(){ return MochiKit.DOM._window; }; MochiKit.DOM.currentDocument=function(){ return MochiKit.DOM._document; }; MochiKit.DOM.withWindow=function(win,func){ var self=MochiKit.DOM; var _311=self._document; var _312=self._win; var rval; try{ self._window=win; self._document=win.document; rval=func(); } catch(e){ self._window=_312; self._document=_311; throw e; } self._window=_312; self._document=_311; return rval; }; MochiKit.DOM.formContents=function(elem){ var _313=[]; var _314=[]; var m=MochiKit.Base; var self=MochiKit.DOM; if(typeof (elem)=="undefined"||elem==null){ elem=self._document; }else{ elem=self.getElement(elem); 0002000007EF0000DAEF7E9, } m.nodeWalk(elem,function(elem){ var name=elem.name; if(m.isNotEmpty(name)){ if(elem.tagName=="INPUT"&&(elem.type=="radio"||elem.type=="checkbox")&&!elem.checked){ return null; } if(elem.tagName=="SELECT"){ var opts=elem.options; for(var i=0;i0){ return node; } if(typeof (node)=="number"||typeof (node)=="bool"){ node=node.toString(); } if(typeof (node)=="string"){ return self._document.createTextNode(node); } if(typeof (node.toDOM)=="function"){ node=node.toDOM(ctx); continue; } if(typeof (node)=="function"){ node=node(ctx); continue; } var _329=null; try{ _329=iter(node); } catch(e){ } if(_329){ return imap(_327,_329,_324(ctx)); } try{ node=_326.match(node,ctx); continue; } catch(e){ if(e!=_328){ throw e; } } return self._document.createTextNode(node.toString()); } return undefined; }; MochiKit.DOM.setNodeAttribute=function(node,attr,_331){ var o={}; o[attr]=_331; try{ return MochiKit.DOM.updateNodeAttributes(node,o); } catch(e){ } return null; 0002000008150000E2D880F, }; MochiKit.DOM.getNodeAttribute=function(node,attr){ var self=MochiKit.DOM; var _332=self.attributeArray.renames[attr]; node=self.getElement(node); try{ if(_332){ return node[_332]; } return node.getAttribute(attr); } catch(e){ } return null; }; MochiKit.DOM.updateNodeAttributes=function(node,_333){ var elem=node; var self=MochiKit.DOM; if(typeof (node)=="string"){ elem=self.getElement(node); } if(_333){ var _334=MochiKit.Base.updatetree; if(self.attributeArray.compliant){ for(var k in _333){ var v=_333[k]; if(typeof (v)=="object"&&typeof (elem[k])=="object"){ _334(elem[k],v); }else{ if(k.substring(0,2)=="on"){ if(typeof (v)=="string"){ v=new Function(v); } elem[k]=v; }else{ elem.setAttribute(k,v); } } } }else{ var _335=self.attributeArray.renames; for(k in _333){ v=_333[k]; var _336=_335[k]; if(k=="style"&&typeof (v)=="string"){ elem.style.cssText=v; }else{ if(typeof (_336)=="string"){ elem[_336]=v; }else{ if(typeof (elem[k])=="object"&&typeof (v)=="object"){ _334(elem[k],v); }else{ if(k.substring(0,2)=="on"){ if(typeof (v)=="string"){ v=new Function(v); } elem[k]=v; }else{ elem.setAttribute(k,v); } } } } } } } return elem; }; MochiKit.DOM.appendChildNodes=function(node){ var elem=node; var self=MochiKit.DOM; if(typeof (node)=="string"){ elem=self.getElement(node); } var _337=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)]; var _338=MochiKit.Iter.iextend; while(_337.length){ var n=_337.shift(); if(typeof (n)=="undefined"||n==null){ }else{ if(typeof (n.nodeType)=="number"){ elem.appendChild(n); }else{ _338(_337,n); } } } return elem; }; MochiKit.DOM.replaceChildNodes=function(node){ var elem=node; var self=MochiKit.DOM; if(typeof (node)=="string"){ elem=self.getElement(node); arguments[0]=elem; } var _339; while((_339=elem.firstChild)){ elem.removeChild(_339); } if(arguments.length<2){ return elem; }else{ return self.appendChildNodes.apply(this,arguments); } }; MochiKit.DOM.createDOM=function(name,_340){ 0002000007F20000EAE77EC, var elem; var self=MochiKit.DOM; if(typeof (name)=="string"){ if(_340&&"name" in _340&&!self.attributeArray.compliant){ name="<"+name+" name=\""+self.escapeHTML(_340.name)+"\">"; } elem=self._document.createElement(name); }else{ elem=name; } if(_340){ self.updateNodeAttributes(elem,_340); } if(arguments.length<=2){ return elem; }else{ var args=MochiKit.Base.extend([elem],arguments,2); return self.appendChildNodes.apply(this,args); } }; MochiKit.DOM.createDOMFunc=function(){ var m=MochiKit.Base; return m.partial.apply(this,m.extend([MochiKit.DOM.createDOM],arguments)); }; MochiKit.DOM.swapDOM=function(dest,src){ var self=MochiKit.DOM; dest=self.getElement(dest); var _343=dest.parentNode; if(src){ src=self.getElement(src); _343.replaceChild(src,dest); }else{ _343.removeChild(dest); } return src; }; MochiKit.DOM.getElement=function(id){ var self=MochiKit.DOM; if(arguments.length==1){ return ((typeof (id)=="string")?self._document.getElementById(id):id); }else{ return MochiKit.Base.map(self.getElement,arguments); } }; MochiKit.DOM.computedStyle=function(_345,_346,_347){ if(arguments.length==2){ _347=_346; } var self=MochiKit.DOM; var el=self.getElement(_345); var _349=self._document; if(!el||el==_349){ return undefined; } if(el.currentStyle){ return el.currentStyle[_346]; } if(typeof (_349.defaultView)=="undefined"){ return undefined; } if(_349.defaultView==null){ return undefined; } var _350=_349.defaultView.getComputedStyle(el,null); if(typeof (_350)=="undefined"||_350==null){ return undefined; } return _350.getPropertyValue(_347); }; MochiKit.DOM.getElementsByTagAndClassName=function(_351,_352,_353){ var self=MochiKit.DOM; if(typeof (_351)=="undefined"||_351==null){ _351="*"; } if(typeof (_353)=="undefined"||_353==null){ _353=self._document; } _353=self.getElement(_353); var _354=_353.getElementsByTagName(_351)||self._document.all; if(typeof (_352)=="undefined"||_352==null){ return MochiKit.Base.extend(null,_354); 0002000007F70000F2D37F1, } var _355=[]; for(var i=0;i<_354.length;i++){ var _356=_354[i]; var _357=_356.className.split(" "); for(var j=0;j<_357.length;j++){ if(_357[j]==_352){ _355.push(_356); break; } } } return _355; }; MochiKit.DOM._newCallStack=function(path,once){ var rval=function(){ var _360=arguments.callee.callStack; for(var i=0;i<_360.length;i++){ if(_360[i].apply(this,arguments)===false){ break; } } if(once){ try{ this[path]=null; } catch(e){ } } }; rval.callStack=[]; return rval; }; MochiKit.DOM.addToCallStack=function(_361,path,func,once){ var self=MochiKit.DOM; var _362=_361[path]; var _363=_362; if(!(typeof (_362)=="function"&&typeof (_362.callStack)=="object"&&_362.callStack!=null)){ _363=self._newCallStack(path,once); if(typeof (_362)=="function"){ _363.callStack.push(_362); } _361[path]=_363; } _363.callStack.push(func); }; MochiKit.DOM.addLoadEvent=function(func){ var self=MochiKit.DOM; self.addToCallStack(self._window,"onload",func,true); }; MochiKit.DOM.focusOnLoad=function(_364){ var self=MochiKit.DOM; self.addLoadEvent(function(){ _364=self.getElement(_364); if(_364){ _364.focus(); } }); }; MochiKit.DOM.setElementClass=function(_365,_366){ var self=MochiKit.DOM; var obj=self.getElement(_365); if(self.attributeArray.compliant){ obj.setAttribute("class",_366); }else{ obj.setAttribute("className",_366); } }; MochiKit.DOM.toggleElementClass=function(_367){ var self=MochiKit.DOM; for(var i=1;i/g,">"); }; MochiKit.DOM.toHTML=function(dom){ return MochiKit.DOM.emitHTML(dom).join(""); }; MochiKit.DOM.emitHTML=function(dom,lst){ if(typeof (lst)=="undefined"||lst==null){ lst=[]; } var _383=[dom]; var self=MochiKit.DOM; var _384=self.escapeHTML; var _385=self.attributeArray; while(_383.length){ dom=_383.pop(); if(typeof (dom)=="string"){ lst.push(dom); }else{ if(dom.nodeType==1){ lst.push("<"+dom.nodeName.toLowerCase()); var _386=[]; var _387=_385(dom); for(var i=0;i<_387.length;i++){ var a=_387[i]; _386.push([" ",a.name,"=\"",_384(a.value),"\""]); } _386.sort(); for(i=0;i<_386.length;i++){ var _388=_386[i]; for(var j=0;j<_388.length;j++){ lst.push(_388[j]); } } if(dom.hasChildNodes()){ lst.push(">"); _383.push(""); var _389=dom.childNodes; for(i=_389.length-1;i>=0;i--){ _383.push(_389[i]); } }else{ lst.push("/>"); } }else{ if(dom.nodeType==3){ lst.push(_384(dom.nodeValue)); 00020000080F000102D5809, } } } } return lst; }; MochiKit.DOM.setDisplayForElement=function(_390,_391){ var m=MochiKit.Base; var _392=m.extend(null,arguments,1); MochiKit.Iter.forEach(m.filter(null,m.map(MochiKit.DOM.getElement,_392)),function(_391){ _391.style.display=_390; }); }; MochiKit.DOM.scrapeText=function(node,_393){ var rval=[]; (function(node){ var cn=node.childNodes; if(cn){ for(var i=0;i0){ var _398=m.filter; _397=function(node){ return _398(_397.ignoreAttrFilter,node.attributes); }; _397.ignoreAttr={}; MochiKit.Iter.forEach(_396.attributes,function(a){ _397.ignoreAttr[a.name]=a.value; }); _397.ignoreAttrFilter=function(a){ return (_397.ignoreAttr[a.name]!=a.value); }; _397.compliant=false; _397.renames={"class":"className","checked":"defaultChecked","usemap":"useMap","for":"htmlFor"}; }else{ _397=function(node){ return node.attributes; }; _397.compliant=true; _397.renames={}; } this.attributeArray=_397; var _399=this.createDOMFunc; this.UL=_399("ul"); this.OL=_399("ol"); this.LI=_399("li"); this.TD=_399("td"); this.TR=_399("tr"); this.TBODY=_399("tbody"); this.THEAD=_399("thead"); this.TFOOT=_399("tfoot"); this.TABLE=_399("table"); this.TH=_399("th"); this.INPUT=_399("input"); this.SPAN=_399("span"); this.A=_399("a"); this.DIV=_399("div"); this.IMG=_399("img"); this.BUTTON=_399("button"); this.TT=_399("tt"); this.PRE=_399("pre"); this.H1=_399("h1"); this.H2=_399("h2"); this.H3=_399("h3"); this.BR=_399("br"); this.HR=_399("hr"); this.LABEL=_399("label"); this.TEXTAREA=_399("textarea"); 0002000007F600010ADE7F0, this.FORM=_399("form"); this.P=_399("p"); this.SELECT=_399("select"); this.OPTION=_399("option"); this.OPTGROUP=_399("optgroup"); this.LEGEND=_399("legend"); this.FIELDSET=_399("fieldset"); this.STRONG=_399("strong"); this.CANVAS=_399("canvas"); this.hideElement=m.partial(this.setDisplayForElement,"none"); this.showElement=m.partial(this.setDisplayForElement,"block"); this.removeElement=this.swapDOM; this.$=this.getElement; this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}; m.nameFunctions(this); }; MochiKit.DOM.__new__(this); MochiKit.Base._exportSymbols(this,MochiKit.DOM); if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.LoggingPane"); dojo.require("MochiKit.Logging"); dojo.require("MochiKit.Base"); } if(typeof (JSAN)!="undefined"){ JSAN.use("MochiKit.Logging",[]); JSAN.use("MochiKit.Base",[]); } try{ if(typeof (MochiKit.Base)=="undefined"||typeof (MochiKit.Logging)=="undefined"){ throw ""; } } catch(e){ throw "MochiKit.LoggingPane depends on MochiKit.Base and MochiKit.Logging!"; } if(typeof (MochiKit.LoggingPane)=="undefined"){ MochiKit.LoggingPane={}; } MochiKit.LoggingPane.NAME="MochiKit.LoggingPane"; MochiKit.LoggingPane.VERSION="1.2"; MochiKit.LoggingPane.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; }; MochiKit.LoggingPane.toString=function(){ return this.__repr__(); }; MochiKit.LoggingPane.createLoggingPane=function(_400){ var m=MochiKit.LoggingPane; _400=!(!_400); if(m._loggingPane&&m._loggingPane.inline!=_400){ m._loggingPane.closePane(); m._loggingPane=null; } if(!m._loggingPane||m._loggingPane.closed){ m._loggingPane=new m.LoggingPane(_400,MochiKit.Logging.logger); } return m._loggingPane; }; MochiKit.LoggingPane.LoggingPane=function(_401,_402){ if(typeof (_402)=="undefined"||_402==null){ _402=MochiKit.Logging.logger; } this.logger=_402; var _403=MochiKit.Base.update; var _404=MochiKit.Base.updatetree; var bind=MochiKit.Base.bind; var _405=MochiKit.Base.clone; 000200000831000112CE82B, var win=window; var uid="_MochiKit_LoggingPane"; if(typeof (MochiKit.DOM)!="undefined"){ win=MochiKit.DOM.currentWindow(); } if(!_401){ var url=win.location.href.split("?")[0].replace(/[:\/.><&]/g,"_"); var name=uid+"_"+url; var nwin=win.open("",name,"dependent,resizable,height=200"); if(!nwin){ alert("Not able to open debugging window due to pop-up blocking."); return undefined; } nwin.document.write(""+"[MochiKit.LoggingPane]"+""); nwin.document.close(); nwin.document.title+=" "+win.document.title; win=nwin; } var doc=win.document; this.doc=doc; var _408=doc.getElementById(uid); var _409=!!_408; if(_408&&typeof (_408.loggingPane)!="undefined"){ _408.loggingPane.logger=this.logger; _408.loggingPane.buildAndApplyFilter(); return _408.loggingPane; } if(_409){ var _410; while((_410=_408.firstChild)){ _408.removeChild(_410); } }else{ _408=doc.createElement("div"); _408.id=uid; } _408.loggingPane=this; var _411=doc.createElement("input"); var _412=doc.createElement("input"); var _413=doc.createElement("button"); var _414=doc.createElement("button"); var _415=doc.createElement("button"); var _416=doc.createElement("button"); var _417=doc.createElement("div"); var _418=doc.createElement("div"); var _419=uid+"_Listener"; this.colorTable=_405(this.colorTable); var _420=[]; var _421=null; var _422=function(msg){ var _423=msg.level; if(typeof (_423)=="number"){ _423=MochiKit.Logging.LogLevel[_423]; } return _423; }; var _424=function(msg){ return msg.info.join(" "); }; var _425=bind(function(msg){ var _426=_422(msg); var text=_424(msg); var c=this.colorTable[_426]; var p=doc.createElement("span"); p.className="MochiKit-LogMessage MochiKit-LogLevel-"+_426; p.style.cssText="margin: 0px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; white-space: pre-line; word-wrap: break-word; wrap-option: emergency; color: "+c; 00020000081100011AF980B, p.appendChild(doc.createTextNode(_426+": "+text)); _418.appendChild(p); _418.appendChild(doc.createElement("br")); if(_417.offsetHeight>_417.scrollHeight){ _417.scrollTop=0; }else{ _417.scrollTop=_417.scrollHeight; } },this); var _429=function(msg){ _420[_420.length]=msg; _425(msg); }; var _430=function(){ var _431,infore; try{ _431=new RegExp(_411.value); infore=new RegExp(_412.value); } catch(e){ logDebug("Error in filter regex: "+e.message); return null; } return function(msg){ return (_431.test(_422(msg))&&infore.test(_424(msg))); }; }; var _432=function(){ while(_418.firstChild){ _418.removeChild(_418.firstChild); } }; var _433=function(){ _420=[]; _432(); }; var _434=bind(function(){ if(this.closed){ return; } this.closed=true; if(MochiKit.LoggingPane._loggingPane==this){ MochiKit.LoggingPane._loggingPane=null; } this.logger.removeListener(_419); _408.loggingPane=null; if(_401){ _408.parentNode.removeChild(_408); }else{ this.win.close(); } },this); var _435=function(){ _432(); for(var i=0;i<_420.length;i++){ var msg=_420[i]; if(_421==null||_421(msg)){ _425(msg); } } }; this.buildAndApplyFilter=function(){ _421=_430(); _435(); this.logger.removeListener(_419); this.logger.addListener(_419,_421,_429); }; var _436=bind(function(){ _420=this.logger.getMessages(); _435(); },this); var _437=bind(function(_438){ _438=_438||window.event; key=_438.which||_438.keyCode; if(key==13){ this.buildAndApplyFilter(); } },this); var _439="display: block; left: 0px; bottom: 0px; position: fixed; width: 100%; background-color: white; font: "+this.logFont; if(_401){ _439+="; height: 10em; border-top: 2px solid black"; }else{ _439+="; height: 100%;"; } _408.style.cssText=_439; if(!_409){ doc.body.appendChild(_408); } _439={"cssText":"width: 33%; display: inline; font: "+this.logFont}; _404(_411,{"value":"FATAL|ERROR|WARNING|INFO|DEBUG","onkeypress":_437,"style":_439}); _408.appendChild(_411); _404(_412,{"value":".*","onkeypress":_437,"style":_439}); 0002000007F5000123047EF, _408.appendChild(_412); _439="width: 8%; display:inline; font: "+this.logFont; _413.appendChild(doc.createTextNode("Filter")); _413.onclick=bind("buildAndApplyFilter",this); _413.style.cssText=_439; _408.appendChild(_413); _414.appendChild(doc.createTextNode("Load")); _414.onclick=_436; _414.style.cssText=_439; _408.appendChild(_414); _415.appendChild(doc.createTextNode("Clear")); _415.onclick=_433; _415.style.cssText=_439; _408.appendChild(_415); _416.appendChild(doc.createTextNode("Close")); _416.onclick=_434; _416.style.cssText=_439; _408.appendChild(_416); _417.style.cssText="overflow: auto; width: 100%"; _418.style.cssText="width: 100%; height: "+(_401?"8em":"100%"); _417.appendChild(_418); _408.appendChild(_417); this.buildAndApplyFilter(); _436(); if(_401){ this.win=undefined; }else{ this.win=win; } this.inline=_401; this.closePane=_434; this.closed=false; return this; }; MochiKit.LoggingPane.LoggingPane.prototype={"logFont":"8pt Verdana,sans-serif","colorTable":{"ERROR":"red","FATAL":"darkred","WARNING":"blue","INFO":"black","DEBUG":"green"}}; MochiKit.LoggingPane.EXPORT_OK=["LoggingPane"]; MochiKit.LoggingPane.EXPORT=["createLoggingPane"]; MochiKit.LoggingPane.__new__=function(){ this.EXPORT_TAGS={":common":this.EXPORT,":all":MochiKit.Base.concat(this.EXPORT,this.EXPORT_OK)}; MochiKit.Base.nameFunctions(this); MochiKit.LoggingPane._loggingPane=null; }; MochiKit.LoggingPane.__new__(); MochiKit.Base._exportSymbols(this,MochiKit.LoggingPane); if(typeof (dojo)!="undefined"){ dojo.provide("MochiKit.Color"); dojo.require("MochiKit.Base"); } if(typeof (JSAN)!="undefined"){ JSAN.use("MochiKit.Base",[]); } try{ if(typeof (MochiKit.Base)=="undefined"){ throw ""; } } catch(e){ throw "MochiKit.Color depends on MochiKit.Base"; } if(typeof (MochiKit.Color)=="undefined"){ MochiKit.Color={}; } MochiKit.Color.NAME="MochiKit.Color"; MochiKit.Color.VERSION="1.2"; MochiKit.Color.__repr__=function(){ return "["+this.NAME+" "+this.VERSION+"]"; 00020000081500012AF380F, }; MochiKit.Color.toString=function(){ return this.__repr__(); }; MochiKit.Color.Color=function(red,_441,blue,_443){ if(typeof (_443)=="undefined"||_443==null){ _443=1; } this.rgb={r:red,g:_441,b:blue,a:_443}; }; MochiKit.Color.Color.prototype={__class__:MochiKit.Color.Color,colorWithAlpha:function(_444){ var rgb=this.rgb; var m=MochiKit.Color; return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,_444); },colorWithHue:function(hue){ var hsl=this.asHSL(); hsl.h=hue; var m=MochiKit.Color; return m.Color.fromHSL(hsl); },colorWithSaturation:function(_448){ var hsl=this.asHSL(); hsl.s=_448; var m=MochiKit.Color; return m.Color.fromHSL(hsl); },colorWithLightness:function(_449){ var hsl=this.asHSL(); hsl.l=_449; var m=MochiKit.Color; return m.Color.fromHSL(hsl); },darkerColorWithLevel:function(_450){ var hsl=this.asHSL(); hsl.l=Math.max(hsl.l-_450,0); var m=MochiKit.Color; return m.Color.fromHSL(hsl); },lighterColorWithLevel:function(_451){ var hsl=this.asHSL(); Math.min(hsl.l+_451,1); var m=MochiKit.Color; return m.Color.fromHSL(hsl); },blendedColor:function(_452,_453){ if(typeof (_453)=="undefined"||_453==null){ _453=0.5; } var sf=1-_453; var s=this.rgb; var d=_452.rgb; var df=_453; return MochiKit.Color.Color.fromRGB((s.r*sf)+(d.r*df),(s.g*sf)+(d.g*df),(s.b*sf)+(d.b*df),(s.a*sf)+(d.a*df)); },compareRGB:function(_456){ var a=this.asRGB(); var b=_456.asRGB(); return MochiKit.Base.compare([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a]); },isLight:function(){ return this.asHSL().b>0.5; },isDark:function(){ return (!this.isLight()); },toHSLString:function(){ var c=this.asHSL(); var ccc=MochiKit.Color.clampColorComponent; var rval=this._hslString; if(!rval){ var mid=(ccc(c.h,360).toFixed(0)+","+ccc(c.s,100).toPrecision(4)+"%"+","+ccc(c.l,100).toPrecision(4)+"%"); var a=c.a; if(a>=1){ a=1; rval="hsl("+mid+")"; }else{ if(a<=0){ a=0; } rval="hsla("+mid+","+a+")"; } this._hslString=rval; } return rval; },toRGBString:function(){ var c=this.rgb; var ccc=MochiKit.Color.clampColorComponent; 0002000007EE000133027E8, var rval=this._rgbString; if(!rval){ var mid=(ccc(c.r,255).toFixed(0)+","+ccc(c.g,255).toFixed(0)+","+ccc(c.b,255).toFixed(0)); if(c.a!=1){ rval="rgba("+mid+","+c.a+")"; }else{ rval="rgb("+mid+")"; } this._rgbString=rval; } return rval; },asRGB:function(){ return MochiKit.Base.clone(this.rgb); },toHexString:function(){ var m=MochiKit.Color; var c=this.rgb; var ccc=MochiKit.Color.clampColorComponent; var rval=this._hexString; if(!rval){ rval=("#"+m.toColorPart(ccc(c.r,255))+m.toColorPart(ccc(c.g,255))+m.toColorPart(ccc(c.b,255))); this._hexString=rval; } return rval; },asHSV:function(){ var hsv=this.hsv; var c=this.rgb; if(typeof (hsv)=="undefined"||hsv==null){ hsv=MochiKit.Color.rgbToHSV(this.rgb); this.hsv=hsv; } return MochiKit.Base.clone(hsv); },asHSL:function(){ var hsl=this.hsl; var c=this.rgb; if(typeof (hsl)=="undefined"||hsl==null){ hsl=MochiKit.Color.rgbToHSL(this.rgb); this.hsl=hsl; } return MochiKit.Base.clone(hsl); },toString:function(){ return this.toRGBString(); },repr:function(){ var c=this.rgb; var col=[c.r,c.g,c.b,c.a]; return this.__class__.NAME+"("+col.join(", ")+")"; }}; MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(red,_461,blue,_462){ var _463=MochiKit.Color.Color; if(arguments.length==1){ var rgb=red; red=rgb.r; _461=rgb.g; blue=rgb.b; if(typeof (rgb.a)=="undefined"){ _462=undefined; }else{ _462=rgb.a; } } return new _463(red,_461,blue,_462); },fromHSL:function(hue,_464,_465,_466){ var m=MochiKit.Color; return m.Color.fromRGB(m.hslToRGB.apply(m,arguments)); },fromHSV:function(hue,_467,_468,_469){ var m=MochiKit.Color; return m.Color.fromRGB(m.hsvToRGB.apply(m,arguments)); },fromName:function(name){ var _470=MochiKit.Color.Color; var _471=_470._namedColors[name.toLowerCase()]; if(typeof (_471)=="string"){ return _470.fromHexString(_471); }else{ if(name=="transparent"){ return _470.transparentColor(); } } return null; },fromString:function(_472){ var self=MochiKit.Color.Color; 0002000007F100013AEA7EB, var _473=_472.substr(0,3); if(_473=="rgb"){ return self.fromRGBString(_472); }else{ if(_473=="hsl"){ return self.fromHSLString(_472); }else{ if(_472.charAt(0)=="#"){ return self.fromHexString(_472); } } } return self.fromName(_472); },fromHexString:function(_474){ if(_474.charAt(0)=="#"){ _474=_474.substring(1); } var _475=[]; var i,hex; if(_474.length==3){ for(i=0;i<3;i++){ hex=_474.substr(i,1); _475.push(parseInt(hex+hex,16)/255); } }else{ for(i=0;i<6;i+=2){ hex=_474.substr(i,2); _475.push(parseInt(hex,16)/255); } } var _476=MochiKit.Color.Color; return _476.fromRGB.apply(_476,_475); },_fromColorString:function(pre,_478,_479,_480){ if(_480.indexOf(pre)==0){ _480=_480.substring(_480.indexOf("(",3)+1,_480.length-1); } var _481=_480.split(/\s*,\s*/); var _482=[]; for(var i=0;i<_481.length;i++){ var c=_481[i]; var val; var _483=c.substring(c.length-3); if(c.charAt(c.length-1)=="%"){ val=0.01*parseFloat(c.substring(0,c.length-1)); }else{ if(_483=="deg"){ val=parseFloat(c)/360; }else{ if(_483=="rad"){ val=parseFloat(c)/(Math.PI*2); }else{ val=_479[i]*parseFloat(c); } } } _482.push(val); } return this[_478].apply(this,_482); },fromComputedStyle:function(elem,_484,_485){ var d=MochiKit.DOM; var cls=MochiKit.Color.Color; for(elem=d.getElement(elem);elem;elem=elem.parentNode){ var _486=d.computedStyle.apply(d,arguments); if(!_486){ continue; } var _487=cls.fromString(_486); if(!_487){ break; } if(_487.asRGB().a>0){ return _487; } } return null; },fromBackground:function(elem){ var cls=MochiKit.Color.Color; return cls.fromComputedStyle(elem,"backgroundColor","background-color")||cls.whiteColor(); },fromText:function(elem){ var cls=MochiKit.Color.Color; return cls.fromComputedStyle(elem,"color","color")||cls.blackColor(); },namedColors:function(){ return MochiKit.Base.clone(MochiKit.Color.Color._namedColors); }}); MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(v,_488){ v*=_488; if(v<0){ return 0; 000200000819000142D5813, }else{ if(v>_488){ return _488; }else{ return v; } } },_hslValue:function(n1,n2,hue){ if(hue>6){ hue-=6; }else{ if(hue<0){ hue+=6; } } var val; if(hue<1){ val=n1+(n2-n1)*hue; }else{ if(hue<3){ val=n2; }else{ if(hue<4){ val=n1+(n2-n1)*(4-hue); }else{ val=n1; } } } return val; },hsvToRGB:function(hue,_491,_492,_493){ if(arguments.length==1){ var hsv=hue; hue=hsv.h; _491=hsv.s; _492=hsv.v; _493=hsv.a; } var red; var _494; var blue; if(_491==0){ red=0; _494=0; blue=0; }else{ var i=Math.floor(hue*6); var f=(hue*6)-i; var p=_492*(1-_491); var q=_492*(1-(_491*f)); var t=_492*(1-(_491*(1-f))); switch(i){ case 1: red=q; _494=_492; blue=p; break; case 2: red=p; _494=_492; blue=t; break; case 3: red=p; _494=q; blue=_492; break; case 4: red=t; _494=p; blue=_492; break; case 5: red=_492; _494=p; blue=q; break; case 6: case 0: red=_492; _494=t; blue=p; break; } } return {r:red,g:_494,b:blue,a:_493}; },hslToRGB:function(hue,_496,_497,_498){ if(arguments.length==1){ var hsl=hue; hue=hsl.h; _496=hsl.s; _497=hsl.l; _498=hsl.a; } var red; var _499; var blue; if(_496==0){ red=_497; _499=_497; blue=_497; }else{ var m2; if(_497<=0.5){ m2=_497*(1+_496); }else{ m2=_497+_496-(_497*_496); } var m1=(2*_497)-m2; var f=MochiKit.Color._hslValue; var h6=hue*6; red=f(m1,m2,h6+2); _499=f(m1,m2,h6); blue=f(m1,m2,h6-2); } return {r:red,g:_499,b:blue,a:_498}; },rgbToHSV:function(red,_503,blue,_504){ if(arguments.length==1){ var rgb=red; red=rgb.r; _503=rgb.g; blue=rgb.b; _504=rgb.a; } var max=Math.max(Math.max(red,_503),blue); var min=Math.min(Math.min(red,_503),blue); var hue; var _507; var _508=max; if(min==max){ hue=0; _507=0; }else{ var _509=(max-min); _507=_509/max; if(red==max){ hue=(_503-blue)/_509; }else{ if(_503==max){ hue=2+((blue-red)/_509); }else{ hue=4+((red-_503)/_509); } } hue/=6; if(hue<0){ hue+=1; } if(hue>1){ hue-=1; } } return {h:hue,s:_507,v:_508,a:_504}; },rgbToHSL:function(red,_510,blue,_511){ 0002000007F600014AE87F0, if(arguments.length==1){ var rgb=red; red=rgb.r; _510=rgb.g; blue=rgb.b; _511=rgb.a; } var max=Math.max(red,Math.max(_510,blue)); var min=Math.min(red,Math.min(_510,blue)); var hue; var _512; var _513=(max+min)/2; var _514=max-min; if(_514==0){ hue=0; _512=0; }else{ if(_513<=0.5){ _512=_514/(max+min); }else{ _512=_514/(2-max-min); } if(red==max){ hue=(_510-blue)/_514; }else{ if(_510==max){ hue=2+((blue-red)/_514); }else{ hue=4+((red-_510)/_514); } } hue/=6; if(hue<0){ hue+=1; } if(hue>1){ hue-=1; } } return {h:hue,s:_512,l:_513,a:_511}; },toColorPart:function(num){ var _515=Math.round(num).toString(16); if(num<16){ return "0"+_515; } return _515; },__new__:function(){ var m=MochiKit.Base; this.Color.fromRGBString=m.bind(this.Color._fromColorString,this.Color,"rgb","fromRGB",[1/255,1/255,1/255,1]); this.Color.fromHSLString=m.bind(this.Color._fromColorString,this.Color,"hsl","fromHSL",[1/360,0.01,0.01,1]); var _516=1/3; var _517={black:[0,0,0],blue:[0,0,1],brown:[0.6,0.4,0.2],cyan:[0,1,1],darkGray:[_516,_516,_516],gray:[0.5,0.5,0.5],green:[0,1,0],lightGray:[2*_516,2*_516,2*_516],magenta:[1,0,1],orange:[1,0.5,0],purple:[0.5,0,0.5],red:[1,0,0],transparent:[0,0,0,0],white:[1,1,1],yellow:[1,1,0]}; var _518=function(name,r,g,b,a){ var rval=this.fromRGB(r,g,b,a); this[name]=function(){ return rval; }; return rval; }; for(var k in _517){ var name=k+"Color"; var _521=m.concat([_518,this.Color,name],_517[k]); this.Color[name]=m.bind.apply(null,_521); } var _522=function(){ for(var i=0;i"+el.innerHTML+""; },_roundTopCorners:function(el,_538,_539){ var _540=this._createCorner(_539); for(var i=0;i=0;i--){ _543.appendChild(this._createCornerSlice(_541,_542,i,"bottom")); } el.style.paddingBottom=0; el.appendChild(_543); },_createCorner:function(_544){ var dom=MochiKit.DOM; return dom.DIV({style:{backgroundColor:_544.toString()}}); },_createCornerSlice:function(_545,_546,n,_547){ var _548=MochiKit.DOM.SPAN(); var _549=_548.style; _549.backgroundColor=_545.toString(); _549.display="block"; _549.height="1px"; _549.overflow="hidden"; _549.fontSize="1px"; var _550=this._borderColor(_545,_546); 00020000077100016C6676B, if(this.options.border&&n==0){ _549.borderTopStyle="solid"; _549.borderTopWidth="1px"; _549.borderLeftWidth="0px"; _549.borderRightWidth="0px"; _549.borderBottomWidth="0px"; _549.height="0px"; _549.borderColor=_550.toString(); }else{ if(_550){ _549.borderColor=_550.toString(); _549.borderStyle="solid"; _549.borderWidth="0px 1px"; } } if(!this.options.compact&&(n==(this.options.numSlices-1))){ _549.height="2px"; } this._setMargin(_548,n,_547); this._setBorder(_548,n,_547); return _548; },_setOptions:function(_551){ this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false,__unstable__wrapElement:false}; MochiKit.Base.update(this.options,_551); this.options.numSlices=(this.options.compact?2:4); },_whichSideTop:function(){ var _552=this.options.corners; if(this._hasString(_552,"all","top")){ return ""; } var _553=(_552.indexOf("tl")!=-1); var _554=(_552.indexOf("tr")!=-1); if(_553&&_554){ return ""; } if(_553){ return "left"; } if(_554){ return "right"; } return ""; },_whichSideBottom:function(){ var _555=this.options.corners; if(this._hasString(_555,"all","bottom")){ return ""; } var _556=(_555.indexOf("bl")!=-1); var _557=(_555.indexOf("br")!=-1); if(_556&&_557){ return ""; } if(_556){ return "left"; } if(_557){ return "right"; } return ""; },_borderColor:function(_558,_559){ if(_558=="transparent"){ return _559; }else{ if(this.options.border){ return this.options.border; }else{ if(this.options.blend){ return _559.blendedColor(_558); } } } return ""; },_setMargin:function(el,n,_560){ var _561=this._marginSize(n)+"px"; var _562=(_560=="top"?this._whichSideTop():this._whichSideBottom()); var _563=el.style; if(_562=="left"){ _563.marginLeft=_561; _563.marginRight="0px"; }else{ if(_562=="right"){ _563.marginRight=_561; _563.marginLeft="0px"; 000200000774000173D176E, }else{ _563.marginLeft=_561; _563.marginRight=_561; } } },_setBorder:function(el,n,_564){ var _565=this._borderSize(n)+"px"; var _566=(_564=="top"?this._whichSideTop():this._whichSideBottom()); var _567=el.style; if(_566=="left"){ _567.borderLeftWidth=_565; _567.borderRightWidth="0px"; }else{ if(_566=="right"){ _567.borderRightWidth=_565; _567.borderLeftWidth="0px"; }else{ _567.borderLeftWidth=_565; _567.borderRightWidth=_565; } } },_marginSize:function(n){ if(this.isTransparent){ return 0; } var o=this.options; if(o.compact&&o.blend){ var _568=[1,0]; return _568[n]; }else{ if(o.compact){ var _569=[2,1]; return _569[n]; }else{ if(o.blend){ var _570=[3,2,1,0]; return _570[n]; }else{ var _571=[5,3,2,1]; return _571[n]; } } } },_borderSize:function(n){ var o=this.options; var _572; if(o.compact&&(o.blend||this.isTransparent)){ return 1; }else{ if(o.compact){ _572=[1,0]; }else{ if(o.blend){ _572=[2,1,1,1]; }else{ if(o.border){ _572=[0,2,0,0]; }else{ if(this.isTransparent){ _572=[5,3,2,1]; }else{ return 0; } } } } } return _572[n]; },_hasString:function(str){ for(var i=1;i"+"<"+"/script"+">"; document.write(tag); } } })(); } 00040000000C00000002018747000050000000C000000020187470000600000032000000010A210FFFF0A00000 20 000700000019000000010201800008000000970000000140,Geneva40,4030 100009000000150000000239C17D39C17D000A00000019000000026DA552226DA55222000B00000005000000020000C00000013000000011874507901000F0000005200000000400 10 4,4,4,4,4,4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA‡ˆE(tdu]Geneva Ot+LANDmac NOTE: THIS IS A NASTY AND INSECURE HACK THAT I'M USING UNTIL I THINK OF A BETTER WAY TO DO THIS. THIS SUCKS. In a nutshell, it allows you to pull your Aggregator API username and password straight from the server. Which, you know, defeats the whole point of having a username and password on the API. There's got to be a more secure way to "login" from the browser-side to use the XML-RPC API. local outtext = "" on add(s) outtext = outtext + s + "\r\n"; add("API_USERNAME = \""+aggregatorData.prefs.security.username+"\";") add("API_PASSWD = \""+aggregatorData.prefs.security.password+"\";") add("API_URL = \"http://\"+location.host+\"/RPC2\";") return outtext WdatatablG createdSun, 22 Jan 2006 05:40:40 GMTWdatatablGpp createdSun, 22 Jan 2006 05:42:24 GMTWdatatablG44 createdSun, 22 Jan 2006 05:45:40 GMTWdatatablGss createdSun, 22 Jan 2006 05:42:27 GMTWdatatablGkk createdSun, 22 Jan 2006 05:42:19 GMTWdatatablG__ createdSun, 22 Jan 2006 05:37:51 GMTWdatatablGcc createdSun, 22 Jan 2006 05:37:55 GMTWdatatablGgg createdSun, 22 Jan 2006 05:37:59 GMTWdatatablGtt createdSun, 22 Jan 2006 05:38:12 GMTu/FFFF000000060001001777AA000000000068000000001001710000001-7EFB6FBE18000004800480695E200-10695E222FFFF0103254000010000007900000002076040840635322273403CE00034663531080760137F840353695E222C1F038E000951695E6000020000076600000000760,/* miniagg outline UI implementation */ var ID_COUNTER = counter(); function newsoutline_init() { // Debounce the init call if (arguments.callee.done) return; arguments.callee.done = true; // Build all the list outline controls. var lis = document.getElementsByTagName("li") for (var i=0; i 0) { var link = document.createElement("a"); link.className = "link button"; link.href = links[0].getAttribute("href"); link.target = "_new"; link.appendChild(document.createTextNode("link")); li.insertBefore(link, li.firstChild); } } function insertDeleteAllButton(li) { var feed_id = li.getAttribute("id"); // Create and insert the delete all button var link = document.createElement("a"); 000200000C2500000760C1F, link.className = "link button"; link.appendChild(document.createTextNode("delete all")); li.insertBefore(link, li.firstChild); // Collect entry ids for this feed. var entry_ids = []; var lis = li.getElementsByTagName("li"); for (var i=0; i<"+"/script>"); /*@end @*/ /* for other browsers */ /* window.onload = init; */ addLoadEvent(newsoutline_init); 00040000000C00000002011381100050000000B000000020138100006000000650000000210A210FFFF0A00000 10 10A30FFFF0A00000 10 0007000000190000000102018000080000012D0000000240,Geneva40,4030 1040,Monaco40,4040 100009000000170000000232602563260256000A0000001700000002695E222695E222000B00000005000000020000C0000001A000000012542511324E175A0000F0000005200000000400 10 4,77A4,4, +4,4,T4,4,tool00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAX;H/RFFFF000000060001001777AA000000000074000000001001710000001-7F7F6FBE18000004800480621FF200-1021630621FF222FFFF01034B2700001000002620000000909BA4084063EF22298703CC0003E263EF10B09BA1222408403EF687422284C03C800086760874EC012221A65408408746CC522282C03C8000CB818CC5AE01A65229C40840CC5610C822281703C800010BB6010C8F50229C2AAD4084010C8614972227EA03C8000148A301497EA02AAD32E4408401497618732227F203C8000186630187317E032E43AFE40840187361B242227CF03CE0001B1761B2415C03AFE4147408401B2461D6022260003C80001D53301D601A6041474B27408401D60621FF2229E0038E00021F2621FF600002000009C0000000009BA,// // Copyright (C) 2000, 2001, 2002 Virtual Cowboys info@virtualcowboys.nl // // Author: Ruben Daniels // Version: 0.91 // Date: 29-08-2001 // Site: www.vcdn.org/Public/XMLRPC/ // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // LMO: Tweaked this so as not to pollute the Object prototype //Object.prototype.toXMLRPC = function(){ function toXMLRPC(obj) { var wo = obj.valueOf(); if(! wo.toXMLRPC ){ retstr = ""; for(prop in obj){ if(typeof wo[prop] != "function"){ retstr += "" + prop + ""; retstr += "" + XMLRPC.getXML(wo[prop]) + ""; } } retstr += ""; return retstr; } else{ return wo.toXMLRPC(); } } String.prototype.toXMLRPC = function(){ // return "";//.replace(/" + this + ""; } else if(this == parseFloat(this)){ return "" + this + ""; } else{ return false.toXMLRPC(); } } Boolean.prototype.toXMLRPC = function(){ if(this) return "1"; else return "0"; } Date.prototype.toXMLRPC = function(){ //Could build in possibilities to express dates //in weeks or other iso8601 possibillities //hmmmm ???? //19980717T14:08:55 return "" + doYear(this.getUTCYear()) + doZero(this.getMonth()) + doZero(this.getUTCDate()) + "T" + doZero(this.getHours()) + ":" + doZero(this.getMinutes()) + ":" + doZero(this.getSeconds()) + ""; 00020000086E000009BA868, function doZero(nr) { nr = String("0" + nr); return nr.substr(nr.length-2, 2); } function doYear(year) { if(year > 9999 || year < 0) XMLRPC.handleError(new Error("Unsupported year: " + year)); year = String("0000" + year) return year.substr(year.length-4, 4); } } Array.prototype.toXMLRPC = function(){ var retstr = ""; for(var i=0;i"; } return retstr + ""; } function VirtualService(servername, oRPC){ this.version = '0.91'; this.URL = servername; this.multicall = false; this.autoroute = true; this.onerror = null; this.rpc = oRPC; this.receive = {}; this.purge = function(receive){ return this.rpc.purge(this, receive); } this.revert = function(){ this.rpc.revert(this); } this.add = function(name, alias, receive){ this.rpc.validateMethodName();if(this.rpc.stop){this.rpc.stop = false;return false} if(receive) this.receive[name] = receive; this[(alias || name)] = new Function('var args = new Array(), i;for(i=0;i mask/s * -------------------- * undefined -> 0/1 [default] * number -> 2 * boolean -> 4 * string -> 8 * function -> 16 * object -> 32 * -------------------- 00020000083D00001A65837, * Examples: * Want [String] only: (eqv. (typeof(vDunno) == 'string') ) * Soya.Common.typematch(unknown, 8) * Anything else than 'undefined' acceptable: * Soya.Common.typematch(unknown) * Want [Number], [Boolean] or [Function]: * Soya.Common.typematch(unknown, 2 + 4 + 16) * Want [Number] only: * Soya.Common.typematch(unknown, 2) **/ typematch : function (vDunno, nCase){ var nMask; switch(typeof(vDunno)){ case 'number' : nMask = 2; break; case 'boolean' : nMask = 4; break; case 'string' : nMask = 8; break; case 'function': nMask = 16; break; case 'object' : nMask = 32; break; default : nMask = 1; break; } return Boolean(nMask & (nCase || 62)); }, getNode : function(data, tree){ var nc = 0;//nodeCount //node = 1 if(data != null){ for(i=0;i 1){ tree.shift(); data = this.getNode(data, tree); } return data; } nc++ } } } return false; }, toObject : function(data){ var ret, i; switch(data.tagName){ case "string": return (data.firstChild) ? new String(data.firstChild.nodeValue) : ""; break; case "int": case "i4": case "double": return (data.firstChild) ? new Number(data.firstChild.nodeValue) : 0; break; case "dateTime.iso8601": /* Have to read the spec to be able to completely parse all the possibilities in iso8601 07-17-1998 14:08:55 19980717T14:08:55 */ var sn = (isIE) ? "-" : "/"; if(/^(\d{4})(\d{2})(\d{2})T(\d{2}):(\d{2}):(\d{2})/.test(data.firstChild.nodeValue)){;//data.text)){ return new Date(RegExp.$2 + sn + RegExp.$3 + sn + RegExp.$1 + " " + RegExp.$4 + ":" + RegExp.$5 + ":" + RegExp.$6); } else{ return new Date(); } break; case "array": data = this.getNode(data, [0]); 0002000008170000229C811, if(data && data.tagName == "data"){ ret = new Array(); var i = 0; while(child = this.getNode(data, [i++])){ ret.push(this.toObject(child)); } return ret; } else{ this.handleError(new Error("Malformed XMLRPC Message1")); return false; } break; case "struct": ret = {}; var i = 0; while(child = this.getNode(data, [i++])){ if(child.tagName == "member"){ ret[this.getNode(child, [0]).firstChild.nodeValue] = this.toObject(this.getNode(child, [1])); } else{ this.handleError(new Error("Malformed XMLRPC Message2")); return false; } } return ret; break; case "boolean": return Boolean(isNaN(parseInt(data.firstChild.nodeValue)) ? (data.firstChild.nodeValue == "true") : parseInt(data.firstChild.nodeValue)) break; case "base64": return this.decodeBase64(data.firstChild.nodeValue); break; case "value": child = this.getNode(data, [0]); return (!child) ? ((data.firstChild) ? new String(data.firstChild.nodeValue) : "") : this.toObject(child); break; default: this.handleError(new Error("Malformed XMLRPC Message: " + data.tagName)); return false; break; } }, /*** Decode Base64 ****** * Original Idea & Code by thomas@saltstorm.net * from Soya.Encode.Base64 [http://soya.saltstorm.net] **/ decodeBase64 : function(sEncoded){ // Input must be dividable with 4. if(!sEncoded || (sEncoded.length % 4) > 0) return sEncoded; /* Use NN's built-in base64 decoder if available. This procedure is horribly slow running under NN4, so the NN built-in equivalent comes in very handy. :) */ else if(typeof(atob) != 'undefined') return atob(sEncoded); var nBits, i, sDecoded = ''; var base64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; sEncoded = sEncoded.replace(/\W|=/g, ''); for(i=0; i < sEncoded.length; i += 4){ 00020000083D00002AAD837, nBits = (base64.indexOf(sEncoded.charAt(i)) & 0xff) << 18 | (base64.indexOf(sEncoded.charAt(i+1)) & 0xff) << 12 | (base64.indexOf(sEncoded.charAt(i+2)) & 0xff) << 6 | base64.indexOf(sEncoded.charAt(i+3)) & 0xff; sDecoded += String.fromCharCode( (nBits & 0xff0000) >> 16, (nBits & 0xff00) >> 8, nBits & 0xff); } // not sure if the following statement behaves as supposed under // all circumstances, but tests up til now says it does. return sDecoded.substring(0, sDecoded.length - ((sEncoded.charCodeAt(i - 2) == 61) ? 2 : (sEncoded.charCodeAt(i - 1) == 61 ? 1 : 0))); }, getObject : function(type, message){ if(type == "HTTP"){ if(isIE) obj = new ActiveXObject("microsoft.XMLHTTP"); else if(isNS) obj = new XMLHttpRequest(); } else if(type == "XMLDOM"){ if(isIE){ obj = new ActiveXObject("microsoft.XMLDOM"); obj.loadXML(message) }else if(isNS){ obj = new DOMParser(); obj = obj.parseFromString(message, "text/xml"); } } else{ this.handleError(new Error("Unknown Object")); } return obj; }, validateMethodName : function(name){ /*do Checking: The string may only contain identifier characters, upper and lower-case A-Z, the numeric characters, 0-9, underscore, dot, colon and slash. */ if(/^[A-Za-z0-9\._\/:]+$/.test(name)) return true else this.handleError(new Error("Incorrect method name")); }, getXML : function(obj){ if(typeof obj == "function"){ this.handleError(new Error("Cannot Parse functions")); }else if(obj == null || obj == undefined || (typeof obj == "number" && !isFinite(obj))) return false.toXMLRPC(); else return toXMLRPC(obj); // return obj.toXMLRPC(); }, handleError : function(e){ if(!this.onerror || !this.onerror(e)){ //alert("An error has occured: " + e.message); throw e; } this.stop = true; this.lastError = e; }, cancel : function(id){ //You can only cancel a request when it was executed async (I think) 000200000820000032E481A, if(!this.queue[id]) return false; this.queue[id][0].abort(); return true; }, send : function(serverAddress, functionName, args, receive, multicall, autoroute){ var id, http; //default is sync this.validateMethodName(); if(this.stop){this.stop = false; return false;} //setting up multicall multicall = (multicall != null) ? multicall : this.multicall; if(multicall){ if(!this.stack[serverAddress]) this.stack[serverAddress] = new Array(); this.stack[serverAddress].push({methodName : functionName, params : args}); return true; } //creating http object var http = this.getObject("HTTP"); //setting some things for async/sync transfers if(!receive) { // LMO || isNS){; async = false; } else{ async = true; /* The timer functionality is implemented instead of the onreadystatechange event because somehow the calling of this event crashed IE5.x */ id = this.queue.push([http, receive, null, new Date()])-1; // this.queue[id][2] = new Function("var id='" + id + "';var dt = new Date(new Date().getTime() - XMLRPC.queue[id][3].getTime());diff = parseInt(dt.getSeconds()*1000 + dt.getMilliseconds());if(diff > XMLRPC.timeout){if(XMLRPC.ontimeout) XMLRPC.ontimeout(); clearInterval(XMLRPC.timers[id]);XMLRPC.cancel(id);return};if(XMLRPC.queue[id][0].readyState == 4){XMLRPC.queue[id][0].onreadystatechange = function(){};XMLRPC.receive(id);clearInterval(XMLRPC.timers[id])}"); this.queue[id][2] = function() { var dt = new Date(new Date().getTime() - XMLRPC.queue[id][3].getTime()); diff = parseInt(dt.getSeconds()*1000 + dt.getMilliseconds()); if(diff > XMLRPC.timeout) { if(XMLRPC.ontimeout) XMLRPC.ontimeout(); clearInterval(XMLRPC.timers[id]); XMLRPC.cancel(id);return }; if(XMLRPC.queue[id][0].readyState == 4) { XMLRPC.queue[id][0].onreadystatechange = function(){}; 00020000064F00003AFE649, XMLRPC.receive(id);clearInterval(XMLRPC.timers[id]) }; } this.timers[id] = setInterval("XMLRPC.queue[" + id + "][2]()", 20); } //setting up the routing autoroute = (autoroute || this.autoroute); //'active' is only set when direct sending the message has failed var srv = (autoroute == "active") ? this.routeServer : serverAddress; try{ http.open('POST', srv, async); http.setRequestHeader("User-Agent", "vcXMLRPC v0.91 (" + navigator.userAgent + ")"); http.setRequestHeader("Host", srv.replace(/^https?:\/{2}([:\[\]\-\w\.]+)\/?.*/, '$1')); http.setRequestHeader("Content-type", "text/xml"); if(autoroute == "active"){ http.setRequestHeader("X-Proxy-Request", serverAddress); http.setRequestHeader("X-Compress-Response", "gzip"); } } catch(e){ if(autoroute == true){ //Access has been denied, Routing call. autoroute = "active"; if(id){ delete this.queue[id]; clearInterval(this.timers[id]); } return this.send(serverAddress, functionName, args, receive, multicall, autoroute); } //Routing did not work either..Throwing error this.handleError(new Error("Could not sent XMLRPC Message (Reason: Access Denied on client)")); if(this.stop){this.stop = false;return false} } //Construct the message var message = '' + functionName + ''; for(i=0;i'; 0002000009E6000041479E0, } message += ''; var xmldom = this.getObject('XMLDOM', message); if(self.DEBUG) alert(message); try{ //send message http.send(xmldom); } catch(e){ //Most likely the message timed out(what happend to your internet connection?) this.handleError(new Error("XMLRPC Message not Sent(Reason: " + e.message + ")")); if(this.stop){this.stop = false;return false} } if(!async && receive) { return [autoroute, receive(this.processResult(http))]; } else if(receive) { logDebug("ASYNC and receive"); return [autoroute, id]; } else { logDebug("Async and process"); return [autoroute, this.processResult(http)]; } }, receive : function(id){ //Function for handling async transfers.. if(this.queue[id]){ var data = this.processResult(this.queue[id][0]); this.queue[id][1](data); delete this.queue[id]; } else{ this.handleError(new Error("Error while processing queue")); } }, processResult : function(http){ if(self.DEBUG) alert(http.responseText); if(http.status == 200){ //getIncoming message dom = http.responseXML; if(dom){ var rpcErr, main; //Check for XMLRPC Errors rpcErr = dom.getElementsByTagName("fault"); if(rpcErr.length > 0){ rpcErr = this.toObject(rpcErr[0].firstChild); this.handleError(new Error(rpcErr.faultCode, rpcErr.faultString)); return false } //handle method result main = dom.getElementsByTagName("param"); if(main.length == 0) this.handleError(new Error("Malformed XMLRPC Message")); data = this.toObject(this.getNode(main[0], [0])); //handle receiving if(this.onreceive) this.onreceive(data); return data; } else{ this.handleError(new Error("Malformed XMLRPC Message")); } } else{ this.handleError(new Error("HTTP Exception: (" + http.status + ") " + http.statusText + "\n\n" + http.responseText)); } } } //Smell something ver = navigator.appVersion; app = navigator.appName; isNS = Boolean(navigator.productSub) //moz_can_do_http = (parseInt(navigator.productSub) >= 20010308) isIE = (ver.indexOf("MSIE 5") != -1 || ver.indexOf("MSIE 6") != -1) ? 1 : 0; isIE55 = (ver.indexOf("MSIE 5.5") != -1) ? 1 : 0; isOTHER = (!isNS && !isIE) ? 1 : 0; if(isOTHER) alert("Sorry your browser doesn't support the features of vcXMLRPC"); 00040000000B0000000204B29000050000000B0000000204B290000600000032000000010A210FFFF0A00000 20 000700000019000000010201800008000000970000000140,Geneva40,4030 100009000000150000000239C17D39C17D000A0000001900000002621FF222621FF222000B00000005000000020000C0000000F000000014B2701000F0000005200000000400 10 4,77A4,4,4,4,77A4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA›œK'(tR)RoFFFF000000060001001777AA000000000068000000001001710000001-7F7F6FBE180000048004806833200-106833222FFFF0103FED000010000003A000000010FED408406833222FEC038E0008266833B0000200000FF300000000FED,/* xmlrpc.js beta version 1 Tool for creating XML-RPC formatted requests in JavaScript Copyright 2001 Scott Andrew LePera scott@scottandrew.com http://www.scottandrew.com/xml-rpc License: You are granted the right to use and/or redistribute this code only if this license and the copyright notice are included and you accept that no warranty of any kind is made or implied by the author. */ function XMLRPCMessage(methodname){ this.method = methodname||"system.listMethods"; this.params = []; return this; } XMLRPCMessage.prototype.setMethod = function(methodName){ if (!methodName) return; this.method = methodName; } XMLRPCMessage.prototype.addParameter = function(data){ if (arguments.length==0) return; this.params[this.params.length] = data; } XMLRPCMessage.prototype.xml = function(){ var method = this.method; // assemble the XML message header var xml = ""; xml += "\n"; xml += "\n"; xml += "" + method+ "\n"; xml += "\n"; // do individual parameters for (var i = 0; i < this.params.length; i++){ var data = this.params[i]; xml += "\n"; xml += "" + XMLRPCMessage.getParamXML(XMLRPCMessage.dataTypeOf(data),data) + "\n"; xml += "\n"; } xml += "\n"; xml += ""; return xml; // for now } XMLRPCMessage.dataTypeOf = function (o){ // identifies the data type var type = typeof(o); type = type.toLowerCase(); switch(type){ case "number": if (Math.round(o) == o) type = "i4"; else type = "double"; break; case "object": var con = o.constructor; if (con == Date) type = "date"; else if (con == Array) type = "array"; else type = "struct"; break; } return type; } XMLRPCMessage.doValueXML = function(type,data){ var xml = "<" + type + ">" + data + ""; return xml; } XMLRPCMessage.doBooleanXML = function(data){ var value = (data==true)?1:0; var xml = "" + value + ""; return xml; } XMLRPCMessage.doDateXML = function(data){ var xml = ""; xml += dateToISO8601(data); xml += ""; return xml; } XMLRPCMessage.doArrayXML = function(data){ var xml = "\n"; for (var i = 0; i < data.length; i++){ xml += "" + XMLRPCMessage.getParamXML(XMLRPCMessage.dataTypeOf(data[i]),data[i]) + "\n"; } xml += "\n"; return xml; } XMLRPCMessage.doStructXML = function(data){ var xml = "\n"; for (var i in data){ xml += "\n"; xml += "" + i + "\n"; xml += "" + XMLRPCMessage.getParamXML(XMLRPCMessage.dataTypeOf(data[i]),data[i]) + "\n"; xml += "\n"; } xml += "\n"; return xml; } XMLRPCMessage.getParamXML = function(type,data){ var xml; switch (type){ case "date": xml = XMLRPCMessage.doDateXML(data); break; case "array": xml = XMLRPCMessage.doArrayXML(data); break; case "struct": xml = XMLRPCMessage.doStructXML(data); break; case "boolean": xml = XMLRPCMessage.doBooleanXML(data); break; default: xml = XMLRPCMessage.doValueXML(type,data); break; } return xml; } function dateToISO8601(date){ // wow I hate working with the Date object var year = new String(date.getYear()); var month = leadingZero(new String(date.getMonth())); var day = leadingZero(new String(date.getDate())); var time = leadingZero(new String(date.getHours())) + ":" + leadingZero(new String(date.getMinutes())) + ":" + leadingZero(new String(date.getSeconds())); var converted = year+month+day+"T"+time; return converted; } function leadingZero(n){ // pads a single number with a leading zero. Heh. if (n.length==1) n = "0" + n; return n; }00040000000A000000020FEF000050000000A000000020FEF0000600000032000000010A210FFFF0A00000 20 000700000019000000010201800008000000970000000140,Geneva40,4030 1000090000001700000002324920E324920E000A000000170000000268332226833222000B00000005000000020000C0000001100000001FED0A151000F0000005200000000400 10 4,77A4,4,4,4,,4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AA¤¤(to+'`  + 0< EQ w behaviourdbXMLRPC6main!MochiKit %nastyInsecureUserAndPasswordJSInclude newsOutlinevcXMLRPCxmlrpc+fFFFF000000060001001777AA000000000071000000001001710000001-7EFB6FBE180000048004806BC200-15D605D6006BC222FFFF0103110000100000035000000010E3408406BC222E2038E000AF6BC600002000000E800000000E3,

    News as of <%now%>

    <%msgtext%>
      <%feeds%>
    <%buttons%>

    Further Reading

    <%readingLists%> 000400000009000000020E50000500000009000000020E50000600000032000000010A210FFFF0A00000 70 000700000019000000010201800008000000970000000140,Geneva40,4030 10000900000015000000023CE2393CE239000A00000015000000026BC2226BC222000B00000005000000020000C0000001500000001116D3B605B0000F0000005200000000400 10 4,77A4,4,Eջ4,4, 4,4,200130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAP f FFFF000000060001001777AA000000000078000000001001710000001-7EFF6FBE180000048004806172200-131032231032206172222FFFF0103104000010000003A00000001049D40840617222249D038E0001656172600002000004A30000000049D, <%"
  • "%>

    <% if defined (itemmeta.permalink) { return ("" + permalinkimg + "") } else { return ("") } %> <% if defined (itemmeta.enclosure) { return ("" + mediaimg + "") } else { return ("") } %> <% if defined (itemmeta.comments) { return ("" + commentimg + "") } else { return ("") } %> <% if defined (itemmeta.checkmark) { return (checkmarkimg) } else { return ("") } %> <% if itemcheckbox.show { return("") } else { return ("") } %> <%""%><%item^.data.title%>

    <% if defined(item^.data.description) && (item^.data.description != "") { return ("
    • "+item^.data.description+"
    ") } else { return("") } %>
  • 0004000000450000000C0DB1119016711A401F1122F027D12890310131D049F000050000000A00000002049F00006000000620000000210A210FFFF0A00000 C0 A20FFFF0900000 70 000700000019000000010201800008000000970000000140,Geneva40,4030 100009000000170000000231FC24531FC245000A000000170000000261722226172222000B00000005000000020000C00000015000000011044F222190000F0000005200000000400 10 4,77A4,gif4,re.4, 8:44,l4,4,esti00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAP Hk  QFFFF000000060001001777AA000000000071000000001001710000001-7EFB6FBE18000004800480695200-1939493940695222FFFF0103320000100000035000000010CD40840695222C3038E00088695600002000000D200000000CD,
  • <%globeimg%> <%""%><%feed.title%> <%xmlimg%>

      <%feed.entries%>
  • 000400000009000000020CF0000500000009000000020CF0000600000032000000010A210FFFF0A00000 30 000700000019000000010201800008000000970000000140,Geneva40,4030 10000900000015000000023D923D3D923D000A0000001500000002695222695222000B00000005000000020000C0000001600000001323A375E8490000F0000005200000000400 10 4,77A4, 8:44,s4,smEx4,ke.4,pmEx4,pmEx00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-..'"FFFF0FFFF0FFFE000000060001001777AAP  Q  Geneva FۍZ78LANDmac 0xDECAFBAD newsRiver: <%title%> <%metaTags ()%>

    0xDECAFBAD newsRiver: <%title%>

    <%bodytext%> WdatatablG]] createdSat, 11 Feb 2006 04:55:09 GMTWdatatablG createdFri, 20 Jan 2006 17:32:41 GMTWdatatablGaa createdSun, 22 Jan 2006 05:42:09 GMTWdatatablGFF createdSat, 11 Feb 2006 04:54:46 GMTWdatatablG createdFri, 20 Jan 2006 17:33:21 GMTWdatatablG createdFri, 20 Jan 2006 17:33:21 GMTWdatatablG createdFri, 20 Jan 2006 17:33:21 GMTWdatatablGMM createdSun, 22 Jan 2006 05:41:49 GMTWdatatablGGG createdSun, 22 Jan 2006 05:50:15 GMTWdatatablG createdFri, 20 Jan 2006 17:33:21 GMTWdatatablG]] createdSun, 22 Jan 2006 05:42:05 GMTWdatatablGoo createdTue, 08 Nov 2005 16:59:27 GMTWdatatablG== createdSat, 21 Jan 2006 06:24:10 GMTWdatatablG=̿= createdSat, 21 Jan 2006 06:24:28 GMTWdatatablG=ȿ= createdSat, 21 Jan 2006 06:24:24 GMT 8^  + 4@ EnewsBody/> newsEntry4newsFeed>ZpageCB?z(   %1 4@ Jcss iDimg info :js . templates MRN$7  default`G,play2`N8R82  & 1= Denglish _prefs systemUrls ;themesN5Geneva qr'?LANDmac Gather all items by feed, rather than intertwingling &J  Geneva > %:E LANDmac 0.216 New XML-RPC methods: decafbadNewsRiver.getItem Returns full story structure, not just a subset decafbadNewsRiver.getRecentItems Calls decafbadNewsRiver.getItem() for data decafbadNewsRiver.getRecentItemsForSub Calls decafbadNewsRiver.getItem() for data decafbadNewsRiver.getSubInfo Returns the full subscription structure, not just a subset decafbadNewsRiver.getSubs Calls decafbadNewsRiver.getSubInfo() for data 0.215 Added a check to ensure Aggregator API is enabled before using any AJAX-based features that use it 0.214 Added preferences to enable/disable some of the new AJAX-based features 0.213 Added initial support for deferred loading of news item text via aggregator API. 0.212 Tweaked JS to only display working disclosure triangles for items with expandable content. 0.211 Completely revamped theming system, now supports static / script per-theme assets and switching on a prefs value Added a prefs page stolen from newsRiver 0.210 Working out some wrinkles with Reading List counts 0.209 Added reading list story counting, along with display of count in Further Reading list. Reading lists with no stories are not displayed in the Further Reading list. Reading List story count update happens every minute, but I'm not attached to the idea. 0.208 Fixed a persistent bug in rendering templates by switching from { } macro chars to <% %> macro chars. 0.207 Poking around with making the news display faster, disabiling some bells and whistles for now. 0.206 Reading list title now in page title if filtering by reading list. Shoved item icons right over by the date display, rather than flush with end of title. Defensive driving: Skipping links to reading lists in news display footer where the title is undefined 0.205 If filtering, refrain from linking the current reading list at the bottom of the page. 0.204 Added a list of links to reading list filters at the bottom of the news page. 0.203 Now filtering news page for single reading list when a readingListUrl parameter supplied, with a reading list URL as the value. Moved news page display templates into a 'default' sub-branch, the idea being that multiple sub-branched could be created in order to facilitate theme switching. Fixed a bug with the nasty and insecure JS include to enable XML-RPC access from AJAX on the news page. 0.202 Fixed a few more bugs, but doesn't quite seem to be working in Safari. 0.201 Initial support for AJAX-to-XMLRPC interfacing with newsRiver's Aggregator API Make sure your Aggregator API is enabled in preferences Currently only delete is implemented for items. WARNING: Your username and password for the Aggregator API are passed to the browser in a JS include, in order to enable AJAX-to-XMLRPC. This is somewhat insecure, to say the least. (Suggestions welcome.) Imported MochiKit and vcXMLRPC JS libraries as binaries (Is there a way to get this thing to *not* mess with JS files and serve them up straight?) Various and sundry tweaks to the CSS and HTML Hmm, my updater thinks that 0.133 > 0.2. So, here's a bigger version number. 0.2 0.133 Moved update info from data into info section 0.13 Verifying that the updater works 0.12 Fixed a bug in the updater 0.11 This is a test of the updater 0.1 Trying out this updater thing 0.0 Just getting started WdatatablG%:&%:& createdSat, 25 Feb 2006 03:33:10 GMTWdatatablG%:)%:) createdSat, 25 Feb 2006 03:33:13 GMTWdatatablG%:9%:9 createdSat, 25 Feb 2006 03:33:29 GMTWdatatablG%:c%:c createdSat, 25 Feb 2006 03:34:11 GMTWdatatablG%:9%:9 createdSat, 25 Feb 2006 03:33:29 GMTWdatatablG%:u%:u createdSat, 25 Feb 2006 03:34:29 GMTWdatatablG%:9%:9 createdSat, 25 Feb 2006 03:33:29 GMTWdatatablG%:u%:u createdSat, 25 Feb 2006 03:34:29 GMTWdatatablG%:9%:9 createdSat, 25 Feb 2006 03:33:29 GMTWdatatablG%:%: createdSat, 25 Feb 2006 03:34:51 GMTWdatatablG%:9%:9 createdSat, 25 Feb 2006 03:33:29 GMTWdatatablG%:u%:u createdSat, 25 Feb 2006 03:34:29 GMTWdatatablG"+"+ createdThu, 23 Feb 2006 04:37:15 GMTWdatatablG"1"1 createdThu, 23 Feb 2006 04:37:21 GMTWdatatablG createdTue, 21 Feb 2006 05:06:21 GMTWdatatablG   createdTue, 21 Feb 2006 05:06:25 GMTWdatatablG createdSat, 11 Feb 2006 07:27:00 GMTWdatatablG createdSat, 11 Feb 2006 07:27:05 GMTWdatatablG createdSat, 11 Feb 2006 07:12:56 GMTWdatatablG createdSat, 11 Feb 2006 07:13:00 GMTWdatatablG>> createdSat, 11 Feb 2006 05:11:42 GMTWdatatablGRR createdSat, 11 Feb 2006 05:12:02 GMTWdatatablG createdSat, 11 Feb 2006 06:46:43 GMTWdatatablG createdFri, 10 Feb 2006 15:17:42 GMTWdatatablG createdFri, 10 Feb 2006 15:17:47 GMTWdatatablG createdSun, 05 Feb 2006 06:01:44 GMTWdatatablG createdSun, 05 Feb 2006 06:01:49 GMTWdatatablGnn createdFri, 10 Feb 2006 03:12:24 GMTWdatatablG createdSun, 05 Feb 2006 05:57:15 GMTWdatatablG createdSun, 05 Feb 2006 05:57:18 GMTWdatatablG߿ createdMon, 23 Jan 2006 20:12:31 GMTWdatatablG createdMon, 23 Jan 2006 20:12:36 GMTWdatatablG2Z2Z createdMon, 23 Jan 2006 12:12:26 GMTWdatatablG2`2` createdMon, 23 Jan 2006 12:12:32 GMTWdatatablG createdMon, 23 Jan 2006 20:09:01 GMTWdatatablG11 createdMon, 23 Jan 2006 20:09:37 GMTWdatatablGφφ createdMon, 23 Jan 2006 05:10:46 GMTWdatatablGϋϋ createdMon, 23 Jan 2006 05:10:51 GMTWdatatablGÛÛ createdMon, 23 Jan 2006 04:19:55 GMTWdatatablGUU createdMon, 23 Jan 2006 04:18:45 GMTWdatatablG== createdSun, 22 Jan 2006 18:49:35 GMTWdatatablG== createdSun, 22 Jan 2006 18:49:41 GMTWdatatablG?ȿ? createdSun, 22 Jan 2006 18:57:28 GMTWdatatablGtata createdSun, 22 Jan 2006 22:41:53 GMTWdatatablGss createdSun, 22 Jan 2006 06:25:07 GMTWdatatablG{{ createdSun, 22 Jan 2006 06:25:15 GMTWdatatablGؿ createdSun, 22 Jan 2006 06:09:44 GMTWdatatablG[[ createdSun, 22 Jan 2006 06:03:23 GMTWdatatablG)) createdSun, 22 Jan 2006 06:06:49 GMTWdatatablG createdSun, 22 Jan 2006 06:04:24 GMTWdatatablG createdSun, 22 Jan 2006 06:06:01 GMTWdatatablG|| createdSun, 22 Jan 2006 06:08:12 GMTWdatatablG createdSun, 22 Jan 2006 06:02:24 GMTWdatatablG55 createdSun, 22 Jan 2006 06:02:45 GMTWdatatablG createdSun, 22 Jan 2006 05:53:37 GMTWdatatablG createdSun, 22 Jan 2006 06:10:05 GMTWdatatablG createdSun, 22 Jan 2006 06:10:18 GMTWdatatablG createdSun, 22 Jan 2006 05:53:32 GMTWdatatablG createdSat, 21 Jan 2006 17:56:08 GMTWdatatablG createdSat, 21 Jan 2006 17:56:11 GMTWdatatablGޕޕ createdSat, 21 Jan 2006 17:50:29 GMTWdatatablGޙޙ createdSat, 21 Jan 2006 17:50:33 GMTWdatatablG createdSat, 21 Jan 2006 17:30:51 GMTWdatatablG createdSat, 21 Jan 2006 17:30:55 GMTWdatatablGتت createdSat, 21 Jan 2006 17:25:14 GMTWdatatablGخخ createdSat, 21 Jan 2006 17:25:18 GMTWdatatablG createdSat, 21 Jan 2006 17:05:29 GMTWdatatablG createdSat, 21 Jan 2006 17:05:32 GMT&Jr.ſu  ) releaseNotes`PreleaseNotesUrlRhttp://hosting.opml.org/decafbad/decafbadNewsRiver/decafbadNewsRiver-relnotes.opmlupdateDownloadUrlQhttp://hosting.opml.org/decafbad/decafbadNewsRiver/decafbadNewsRiver-updates.fttbVGeneva pJorj%:  "; Gn z %:  author l.m.orchard authorEmaill.m.orchard@pobox.com description#A more outliney and AJAXy newsRiver homePageUrl>http://decafbad.com/blog/2006/01/21/a-bit-of-newsriver-hackerynamedecafbadNewsRiver releaseDateTODOO updateInfovversion0.216  VGeneva '?LANDmac on any (pta) //boilerplate for your responder pta^.responseHeaders.["Content-Type"] = "text/html" pta^.code = 200 //everything was OK pta^.responseBody = "" //build response return (true) V2. any`z62. DL T condition6(string.lower (path) beginsWith "/decafbadnewsriver/")enabledmethods{Verdana ȶ%9H&,$LANDmac on getItem (itemId, username, password) xml.aggregator.securityForRpc (client, username, password) local (adrdata = xml.aggregator.init ()) local (adrstories = @adrdata^.stories) local (adritem = @adrstories^.[string.padWithZeros (itemId, 8)] ) if not defined (adritem^) scriptError ("Can't get the item because there is no item with an id of \"" + itemId + "\".") return (adritem^) WdatatablG%4j%4j createdSat, 25 Feb 2006 03:08:42 GMTVerdana n%4"?|`LANDmac on getRecentItems (numberOfItems, username, password) Changes 11/6/02; 1:42:04 PM by JES Created. Get the most recent stories as an array of structs. The structs match the struct returned by aggregator.getStory. xml.aggregator.securityForRpc (client, username, password) local (adrdata = xml.aggregator.init ()) local (adrstories = @adrdata^.stories) local (sizestories = sizeOf (adrstories^)) local (returnStruct); new (tableType, @returnStruct) local (i, ct = 0) for i = sizestories downto 1 ct++ local (adrstory = @adrstories^[i] ) local (itemId = nameOf (adrstory^)) returnStruct[itemId] = decafbadNewsRiverRpcHandlers.getItem (itemId, username, password) if ct == numberOfItems break return (returnStruct) bundle //testing local (t); new (tabletype, @t) t.client = "127.0.0.1" with user.radio.prefs.security scratchpad.items = callscript (@xml.aggregator.rpcHandlers.getRecentItems, {50, remoteUsername, remotePassword}, @t) /'Verdana n%5#8XLANDmac on getRecentItemsForSub (url, numberOfItems, username, password) Changes 11/6/02; 1:42:04 PM by JES Created. Get the most recent items in a given subscription as an array of structs. The structs match the struct returned by aggregator.getItem. xml.aggregator.securityForRpc (client, username, password) local (adrdata = xml.aggregator.init ()) local (adrstories = @adrdata^.stories) local (sizestories = sizeOf (adrstories^)) local (returnStruct); new (tableType, @returnStruct) local (i, ct = 0) for i = sizestories downto 1 local (adritem = @adrstories^[i] ) if adritem^.url == url ct++ local (itemId = nameOf (adritem^)) returnStruct.[itemId] = decafbadNewsRiverRpcHandlers.getItem (itemId, username, password) if ct == numberOfItems break return (returnStruct) bundle //testing local (t); new (tabletype, @t) t.client = "127.0.0.1" with user.radio.prefs.security scratchpad.items = callscript (@xml.aggregator.rpcHandlers.getRecentItemsForSub, {"http://www.scripting.com/rss.xml", 10, remoteUsername, remotePassword}, @t) / Verdana %64cYLANDmac on getSubInfo (url, username, password) Changes 11/3/02; 5:29:27 PM by JES Created. Return a struct of information about a subscribed RSS feed. The struct contains the following elements: title -- the title of the feed link -- the channel link, usually a link to the HTML version description -- the description of the feed url -- the XML-URL of the feed language -- the language code for the feed, or the empty string image -- a struct describing the image associated with the feed url -- the url of the image, or the empty string title -- the title of the image, or the empty string height -- the height of the image, or 0 width -- the width of the image, or 0 xml.aggregator.securityForRpc (client, username, password) local (adrdata = xml.aggregator.init ()) local (adrservices = @adrdata^.services) local (adrservice = @adrservices^.[url]) local (adrinfo = @adrservice^.compilation) return (adrservice^) WdatatablG%6%6 createdSat, 25 Feb 2006 03:17:59 GMT QWGeneva [%6#LANDmac on getSubs (username, password) Changes 1/11/06; 5:29:08 AM by DW Put the call to getSubInfo in a try, because it's possible one of the services is malformed. 11/6/02; 1:49:30 PM by JES Created. Return an array of structs for all the channels we're subscribed to. xml.aggregator.securityForRpc (client, username, password) local (adrdata = xml.aggregator.init ()) local (adrservices = @adrdata^.services) local (returnStruct); new (tableType, @returnStruct) local (adrservice) for adrservice in adrservices local (url = nameOf (adrservice^)) try returnStruct.[url] = decafbadNewsRiverRpcHandlers.getSubInfo (url, username, password) return (returnStruct) bundle //testing root.client = "127.0.0.1" scratchpad.subs = getSubs (aggregatorData.prefs.security.username, aggregatorData.prefs.security.password) delete (@root.client) WdatatablGH$H$ createdWed, 11 Jan 2006 13:29:08 GMTWdatatablGH%H% createdWed, 11 Jan 2006 13:29:09 GMTWdatatablGGG createdWed, 11 Jan 2006 13:28:27 GMTWdatatablGG^G^ createdWed, 11 Jan 2006 13:25:50 GMTWdatatablGG6G6 createdWed, 11 Jan 2006 13:25:10 GMTWdatatablGGG createdWed, 11 Jan 2006 13:27:26 GMTQB%9#  #/ DP [g ogetItem|xgetRecentItems getRecentItemsForSub getSubInfogetSubs,  Geneva  '?LANDmac This script runs every hour. nGeneva ^ 3eLANDmac This script runs every minute. decafbadNewsRiverSuite.init() decafbadNewsRiverSuite.updateReadingListCounts() WdatatablGii createdFri, 10 Feb 2006 02:50:17 GMTWdatatablGnn createdFri, 10 Feb 2006 03:12:56 GMTGeneva  '?LANDmac This script runs every night. {w.  ". 9 everyHour` everyMinute`- everyNight`{    nj.  ' ,fileMenu`radio`:user`fnH(Geneva 0ILANDmac on getCurrentTheme() local adrtooldata = @decafbadNewsRiverData adrprefs = decafbadNewsRiverSuite.getPrefs() curr_theme = adrprefs^.theme adrtheme = @adrtooldata^.themes.[curr_theme] return (adrtheme) bundle // testing local theme = getCurrentTheme() dialog.alert(theme^.info.name) WdatatablGSS createdSat, 11 Feb 2006 03:46:43 GMTWdatatablGȩȩ createdSat, 11 Feb 2006 03:48:09 GMTWdatatablG createdSat, 11 Feb 2006 05:44:54 GMTWdatatablGȥȥ createdSat, 11 Feb 2006 03:48:05 GMTWdatatablGII createdSat, 11 Feb 2006 03:46:33 GMTWdatatablGȝȝ createdSat, 11 Feb 2006 03:47:57 GMTWdatatablGjj createdSat, 11 Feb 2006 03:47:06 GMTWdatatablGss createdSat, 11 Feb 2006 03:47:15 GMTWdatatablGȃȃ createdSat, 11 Feb 2006 03:47:31 GMTWdatatablGȍȍ createdSat, 11 Feb 2006 03:47:41 GMTHT Geneva !j KerLANDmac on getPrefs() local adrdata = decafbadNewsRiverSuite.init() adrprefs = @adrdata^.decafbadNewsRiver bundle // Set up any necessary prefs defaults if not defined (adrprefs^.theme) adrprefs^.theme = "default" if not defined (adrprefs^.deferredItemContent) adrprefs^.deferredItemContent = true if not defined (adrprefs^.showDeleteButtons) adrprefs^.showDeleteButtons = true return (adrprefs) bundle // testing dialog.alert(getPrefs()) WdatatablGSS createdSat, 11 Feb 2006 03:46:43 GMTWdatatablGȩȩ createdSat, 11 Feb 2006 03:48:09 GMTWdatatablG99 createdSun, 22 Jan 2006 18:31:03 GMTWdatatablG createdSat, 11 Feb 2006 05:40:28 GMTWdatatablG createdSat, 11 Feb 2006 05:36:33 GMTWdatatablG createdSat, 11 Feb 2006 05:40:04 GMTWdatatablG createdSat, 11 Feb 2006 05:40:48 GMTWdatatablG createdSat, 11 Feb 2006 05:40:04 GMTWdatatablG createdSat, 11 Feb 2006 05:40:48 GMTWdatatablG createdSat, 11 Feb 2006 05:40:04 GMTWdatatablG createdSat, 11 Feb 2006 05:40:48 GMTWdatatablGȝȝ createdSat, 11 Feb 2006 03:47:57 GMTWdatatablGjj createdSat, 11 Feb 2006 03:47:06 GMTWdatatablGȍȍ createdSat, 11 Feb 2006 03:47:41 GMTTGeneva !>l2LANDmac local adrdata = newsRiverSuite.init() if not defined (adrdata^.decafbadNewsRiver) new(tableType, @adrdata^.decafbadNewsRiver) bundle // Install a post-scan callback to update reading list counts if not defined (adrdata^.callbacks.postScan.updateReadingListCounts) adrdata^.callbacks.postScan.updateReadingListCounts = @decafbadNewsRiverSuite.updateReadingListCounts return (adrdata) WdatatablGhyhy createdFri, 10 Feb 2006 02:45:29 GMTWdatatablG createdSat, 11 Feb 2006 05:36:38 GMTWdatatablG;; createdSat, 11 Feb 2006 05:37:15 GMTWdatatablGhh createdFri, 10 Feb 2006 02:47:21 GMTWdatatablG createdFri, 30 Dec 2005 03:52:32 GMTWdatatablG<< createdFri, 30 Dec 2005 03:53:32 GMTWdatatablG createdSat, 21 Jan 2006 00:56:59 GMTGeneva `^BLANDmac on listThemeDescriptions() names = {} adrtooldata = decafbadNewsRiverData for adr in @decafbadNewsRiverData.themes names[sizeOf(names)+1] = adr^.info.description return names bundle dialog.alert(listThemeDescriptions()) WdatatablG createdSat, 11 Feb 2006 05:59:56 GMTWdatatablG createdSat, 11 Feb 2006 06:00:11 GMTWdatatablG createdSat, 11 Feb 2006 05:59:58 GMTWdatatablG createdSat, 11 Feb 2006 06:00:43 GMTWdatatablG createdSat, 11 Feb 2006 06:01:46 GMTWdatatablG{{ createdSat, 11 Feb 2006 05:59:39 GMTWdatatablG}} createdSat, 11 Feb 2006 05:59:41 GMTGeneva ` +LANDmac on listThemeIDs() names = {} adrtooldata = decafbadNewsRiverData for adr in @decafbadNewsRiverData.themes names[sizeOf(names)+1] = nameOf(adr^) return names bundle dialog.alert(listThemeIDs()) WdatatablG createdSat, 11 Feb 2006 05:59:56 GMTWdatatablG createdSat, 11 Feb 2006 06:00:11 GMTWdatatablG createdSat, 11 Feb 2006 05:59:58 GMTWdatatablG createdSat, 11 Feb 2006 06:00:43 GMTWdatatablG createdSat, 11 Feb 2006 06:01:46 GMTWdatatablG{{ createdSat, 11 Feb 2006 05:59:39 GMTWdatatablG}} createdSat, 11 Feb 2006 05:59:41 GMTGeneva `BLANDmac on listThemeNames() names = {} adrtooldata = decafbadNewsRiverData for adr in @decafbadNewsRiverData.themes names[sizeOf(names)+1] = adr^.info.name return names bundle dialog.alert(listThemeNames()) WdatatablG createdSat, 11 Feb 2006 05:59:56 GMTWdatatablG createdSat, 11 Feb 2006 06:00:11 GMTWdatatablG createdSat, 11 Feb 2006 05:59:58 GMTWdatatablG createdSat, 11 Feb 2006 06:00:43 GMTWdatatablG createdSat, 11 Feb 2006 06:01:46 GMTWdatatablG{{ createdSat, 11 Feb 2006 05:59:39 GMTWdatatablG}} createdSat, 11 Feb 2006 05:59:41 GMT0Geneva؛g<)_cLANDmac decafbadNewsRiverSuite.menuCommands.viewNews () 1Geneva Tʿ'?LANDmac decafbadNewsRiverSuite.menuCommands.updateTool() ,7Geneva 0'?LANDmac DecafbadNewsRiver View News... - Get Latest Code...  pY[Geneva ;?p8 Geneva Vך$8#LANDmac if dialog.twoWay ("Check for updates to " + decafbadNewsRiverSuite.util.guestDatabaseName (this) + "?", "Update", "Cancel") decafbadNewsRiverSuite.updater.checkReleaseNotes () 8;Geneva؛9=}LANDmac webbrowser.openurl (decafbadNewsRiverData.systemUrls.news) XT$<ǿ׷  updateTool`viewNews`.X( Geneva iF '?LANDmac This script returns a string which appears in the Status Center on the Radio UserLand home page. return ("It's a river of news where the water is actually coffee") ( n 0Geneva  mLANDmac on checkReleaseNotes () Check for updates. Download the release notes first, then check its version, give the user a choice. Sat, Mar 2, 2002 at 5:11:46 AM by NJR Changes: local adrTool = table.getRootAddress (this) adrUpdater = parentOf (this^) gdbName = decafbadNewsRiverSuite.util.guestDatabaseName (this) XXX dependent on webdav toolName = Frontier.tools.cleanToolName (gdbName) adrUpdateTable = @temp.[toolName + "ToolUpdateTemp"] on toolTable (itemName) local (adrTable = @adrTool^.[toolName + itemName]) if defined (adrTable^) and sizeOf (adrTable^) > 0 return adrTable return nil new (tableType, adrUpdateTable) local adrButtonTable = @adrUpdateTable^.buttons adrRelNotes = @adrUpdateTable^.relnotes adrToolInfo = toolTable ("Info") adrUpdateInfo = @(toolTable ("Info"))^.updateInfo currentVersion = adrToolInfo^.version currentVersionPostText = " currently installed version" savedTarget = target.get () bundle fetch release notes op.xmlToOutline (adrUpdater^.getUrl (adrUpdateInfo^.releaseNotesUrl), adrRelNotes, flNewOutline: true) target.set (adrRelNotes) bundle check if we have the latest version already, if so display a message op.fullCollapse () op.firstSummit () testVersion = op.getLineText () if (currentVersion == testVersion) dialog.notify ("The currently installed version of " + gdbName + " (" + currentVersion + ") is already the latest version.") return if (date.versionLessThan (testVersion, currentVersion)) dialog.notify ("The currently installed version of " + gdbName + " (" + currentVersion + ") is newer than the downloadable version (" + testVersion + "). Cancelling update attempt.") return bundle annotate and collapse/expand release notes by version op.setLineText (testVersion + " most recent version: click Update Now to install") op.expand (infinity) loop testVersion = op.getLineText () if (currentVersion == testVersion) op.setLineText (testVersion + currentVersionPostText) break if (date.versionLessThan (testVersion, currentVersion)) op.insert (currentVersion + currentVersionPostText, up) break op.expand (infinity) if not op.go (down, 1) op.insert (currentVersion + currentVersionPostText, down) break bundle add buttons local (closer = "window.close (window.frontmost ())") adrUpdateTable^.update = adrUpdater^.update copy update script out of tool database new (tableType, adrButtonTable) script.newScriptObject (string (adrUpdateTable) + ".update (@" + adrTool + ")\r" + closer, @adrButtonTable^.["Update Now"]) script.newScriptObject (closer, @adrButtonTable^.Cancel) target.set (savedTarget) XXX interruption issues? edit (adrRelNotes, windowTitle: toolName + " Tool Release Notes", flReadOnly: true, adrButtonTable: adrButtonTable) checkReleaseNotes () testing  sZGeneva 9θdrascrmac on createArchives (rootFile, zipName, zipFolder) -- rootFile and zipFolder must be aliases -- ZipIt must be configured for no MB (pending bug fix) local zipArchive, oldMB tell application "ZipIt" copy (make new document) to zipArchive add rootFile to zipArchive compress zipArchive name zipName in zipFolder quit end tell tell application "DropStuff" open rootFile quit end tell end createArchives sGeneva YY#vLANDmac on getUrl (url) local (urlList = string.urlSplit (url)) if (urlList [1] "http://") scriptError ("Only HTTP URLs are supported (" + url + " uses another protocol)") return tcp.httpClient (server: urlList[2], path: urlList [3], ctFollowRedirects: 5)  _  Lucida Grande 5::}LANDmac This script is designed for internal use only; don't blame me if it blows up. Sat, Mar 2, 2002 at 12:10:26 PM by NJR local version = decafbadNewsRiverInfo.version distFilenamePrefix = "decafbadNewsRivertool-" + version desktopPath = file.getSpecialFolderPath ("", "desktop folder", false) uploadPath = "Caffeina2:Users:deusx:OPML:www:decafbadNewsRiver:" uploadPath = desktopPath + "decafbadNewsRiver Tool " + version + " To Upload" + file.getPathChar () opmlPath = uploadPath + "decafbadNewsRiver-relnotes.opml" fttbPath = uploadPath + "decafbadNewsRiver-updates.fttb" rootPath = uploadPath + "decafbadNewsRiver.root" adrRelNotes = @decafbadNewsRiverInfo.updateInfo.releaseNotes bundle check release OK, set up upload folder target.set (adrRelNotes) op.firstSummit () if (version op.getLineText ()) scriptError ("Version in release notes does not match version in tool info.") if file.exists (uploadPath) if dialog.twoWay ("Delete " + uploadPath + "?", "Delete", "Cancel") file.deleteFolder (uploadPath) else return file.deleteFolder (uploadPath) file.newFolder (uploadPath) bundle release info, date file.writeTextFile (opmlPath, op.outlineToXml (adrRelNotes)) decafbadNewsRiverInfo.releaseDate = clock.now () bundle make upgrader export file Can't just do this: export.sendObject (table.getRootAddress (this), fttbPath) otherwise Frontier complains on import that a table can't have a window Also, can't use a local object, needs to be an odb-based object. local (adrData = @system.temp.decafbadNewsRiverUpgradeData) new (tableType, adrData) table.copyContents (table.getRootAddress (this), adrData) export.sendObject (adrData, fttbPath) target.set (this) fileMenu.saveCopy (rootPath) file.setVersion (rootPath, version) bundle // Zip up root decafbadNewsRiverSuite.updater.createArchives (alias (rootPath), distFilenamePrefix + ".zip", alias (uploadPath)) file.rename (uploadPath + "decafbadNewsRiver.root.sit", distFilenamePrefix + ".sit") file.delete (rootPath) Finder.open (alias (uploadPath)) WdatatablG{{ createdSat, 21 Jan 2006 17:15:55 GMT Geneva X߇E gLANDmac on update (adrTool) A very lightweight updating mechanism. Because the tool root is expected to stay small, it downloads everything always (and base64 encoded at that). Sat, Mar 2, 2002 at 10:24:10 AM by NJR Changes: if (table.getRootAddress (this) == adrTool) scriptError ("Cant update a tool in place; script will cease execution once replaced. Copy this script somewhere else before running it.") local toolname = Frontier.tools.cleanToolName (decafbadNewsRiverSuite.util.guestDatabaseName (adrTool)) downloadUrl = adrTool^.[toolName + "Info"].updateInfo.updateDownloadUrl updateSource = decafbadNewsRiverSuite.updater.getUrl (downloadUrl) tempDest atts if not (fatPages.getPageAtts (@updateSource, @atts) and defined (atts.pageData)) scriptError ("Unable to update from <" + downloadUrl + ">: it does not contain an embedded object.") Like publishing, can't unpack directly into the gdb address otherwise the kernel starts reporting internal errors and/or crashing. Use an intermediate location (doesn't need to be in the odb in this direction). new (tableType, @tempDest) fatPages.unpackOdbObject (@atts, @tempDest, flRunnable: false, flEdit: false) table.copyContents (@tempDest, adrTool) local (x = string.parseAddress (adrTool), f = x [1]) Frontier.tools.install (f) dialog.notify ("The " + toolname + " tool has been updated to version " + adrTool^.[toolName + "Info"].version + ".") B  -9 @L T` gcheckReleaseNotes`createArchives`ʭgetUrl`,publish`update`شVGeneva 2X [Geneva WX*2LANDmac on updateReadingListCounts() Changes: local adrdata = decafbadNewsRiverSuite.init() bundle // Clear out all reading lists story counts for adrlist in @adrdata^.newsRiver.readingLists if not(defined(adrlist^.title)) continue adrlist^.storyCount = 0 adrlist^.storyCountLastUpdate = "" bundle // Walk through all stories and update tallies for each reading list for adrstory in @adrdata^.stories local adrservice = @adrdata^.services.[adrstory^.url] if not defined(adrservice^) // Skip service-orphaned stories continue if not defined(adrservice^.readingList) // Skip stories not from reading lists continue for adrservicerl in @adrservice^.readingList try local rl_url = nameOf(adrservicerl^) adrlist = @adrdata^.newsRiver.readingLists.[rl_url] if adrstory^.time > adrlist^.storyCountLastUpdate adrlist^.storyCountLastUpdate = adrstory^.time adrlist^.storyCount = adrlist^.storyCount + 1 bundle // test code updateReadingListCounts() local adrdata = decafbadNewsRiverSuite.init() out = "" on add(s) out = out + s + "\n" bundle for adrlist in @adrdata^.newsRiver.readingLists if not(defined(adrlist^.title)) continue add("RL: " + adrlist^.title + " (" + adrlist^.storyCount + " / "+ adrlist^.storyCountLastUpdate +")") wp.newTextObject(out, @scratchpad.updatecounts) WdatatablG__ createdFri, 10 Feb 2006 02:08:36 GMTWdatatablGX X createdFri, 10 Feb 2006 01:35:44 GMTWdatatablG99 createdSun, 22 Jan 2006 18:31:03 GMTWdatatablGYY createdFri, 10 Feb 2006 01:43:03 GMTWdatatablGYY createdFri, 10 Feb 2006 01:43:39 GMTWdatatablG0ÿ0 createdMon, 23 Jan 2006 12:05:39 GMTWdatatablG0ҿ0 createdMon, 23 Jan 2006 12:05:54 GMTWdatatablGZ<Z< createdFri, 10 Feb 2006 01:44:44 GMTWdatatablGZ<Z< createdFri, 10 Feb 2006 01:44:44 GMTWdatatablGYY createdFri, 10 Feb 2006 01:43:39 GMTWdatatablG[[ createdFri, 10 Feb 2006 01:48:22 GMTWdatatablG["[" createdFri, 10 Feb 2006 01:48:34 GMTWdatatablG[Q[Q createdFri, 10 Feb 2006 01:49:21 GMTWdatatablG\&\& createdFri, 10 Feb 2006 01:52:54 GMTWdatatablG\0\0 createdFri, 10 Feb 2006 01:53:04 GMTWdatatablG\\ createdFri, 10 Feb 2006 01:56:14 GMTWdatatablG\\ createdFri, 10 Feb 2006 01:56:26 GMTWdatatablG\\ createdFri, 10 Feb 2006 01:54:31 GMTWdatatablG createdFri, 10 Feb 2006 15:17:18 GMTWdatatablG]C]C createdFri, 10 Feb 2006 01:57:39 GMTWdatatablG]D]D createdFri, 10 Feb 2006 01:57:40 GMTWdatatablG]] createdFri, 10 Feb 2006 01:59:17 GMTWdatatablGoo createdFri, 10 Feb 2006 03:16:35 GMTWdatatablGqPqP createdFri, 10 Feb 2006 03:23:12 GMTWdatatablG]A]A createdFri, 10 Feb 2006 01:57:37 GMTWdatatablGX"X" createdFri, 10 Feb 2006 01:35:46 GMTWdatatablGX'X' createdFri, 10 Feb 2006 01:35:51 GMTWdatatablGX X createdFri, 10 Feb 2006 01:35:44 GMTWdatatablG99 createdSun, 22 Jan 2006 18:31:03 GMTWdatatablGXNXN createdFri, 10 Feb 2006 01:36:30 GMTWdatatablGYY createdFri, 10 Feb 2006 01:41:57 GMTWdatatablGYY createdFri, 10 Feb 2006 01:42:00 GMTWdatatablGYY createdFri, 10 Feb 2006 01:43:03 GMTWdatatablGYY createdFri, 10 Feb 2006 01:43:39 GMTWdatatablG0ÿ0 createdMon, 23 Jan 2006 12:05:39 GMTWdatatablG0ҿ0 createdMon, 23 Jan 2006 12:05:54 GMTWdatatablG^|^| createdFri, 10 Feb 2006 02:02:52 GMTWdatatablGXTXT createdFri, 10 Feb 2006 01:36:36 GMTLTGeneva v:v}8*aLANDmac on backupTable (adrTable, backupSuffix = "backup") Back up the table to another table with the specified suffix and the same parent table. Appends a number to the backup name if a backup already exists. local adrParent = parentOf (adrTable^) backupName = nameOf (adrTable^) + " " + backupSuffix adrBackup = @adrParent^.[backupName] if typeOf (adrTable^) != tableType scriptError ("Cant perform backupTable on a non-table.") if defined (adrBackup^) adrBackup = table.uniqueName (backupName + " ", adrParent) new (tableType, adrBackup) table.copyContents (adrTable, adrBackup) bundle testing backupTable (@scratchpad.blah) L~Geneva I 1 { s = s + "and " } s = s + errorList [numErrors] + "." scriptError (s) bundle testing code webdav.util.processResult (string (scratchpad.msResult2), "DELETE /path/to/dir") 6<Geneva ʸ_LANDmac on fileFromPath (path) Does the same thing as file.fileFromPath, but for POSIX paths (like basename(1)). Mon, Feb 18, 2002 at 6:10:22 PM by NJR Changes: local (oldWordChar = string.getWordChar (), fname) string.setWordChar ('/') fname = string.lastWord (path) string.setWordChar (oldWordChar) return fname H Geneva x;B#=LANDmac on fixSiteRootPath (siteRootDirectory) Returns a string containing a normalized site root path 2/18/02; 4:06:27 PM by NJR Pulled out of fileWriters.webdav.shutdown because it is useful to the Radio upstream driver as well. Changes: if not (siteRootDirectory beginsWith "/") siteRootDirectory = "/" + siteRootDirectory if not (siteRootDirectory endsWith "/") siteRootDirectory = siteRootDirectory + "/" if siteRootDirectory == "//" siteRootDirectory = "/" return siteRootDirectory Geneva v13v{+= LANDmac on getFtpSite (adrObject) Get the address of the actual FTP site table, given an object in the website framework. Or, if adrObject already is a ftpSite table, just return it. Sat, Jul 14, 2001 at 5:30:52 PM by NJR Changes: Sat, Jul 14, 2001 at 5:32:08 PM by NJR Original version ripped out of html.callFileWriterStartup. This script should really exist separately somewhere in UserLand code, but... on getSite () local (nomad = adrObject) if typeOf (nomad^) != tableType nomad = parentOf (nomad^) loop if defined (nomad^.["#ftpSite"]) return (@nomad^.["#ftpSite"]) if defined (nomad^.["#prefs"].ftpSite) return (@nomad^.["#prefs"].ftpSite) if defined (nomad^.["#prefs"].["#ftpSite"]) return (@nomad^.["#prefs"].["#ftpSite"]) nomad = parentOf (nomad^) if nomad == nil or nomad == @root break local (adrFtpSite = getSite ()) local (method, adrScript) if adrFtpSite if typeOf (adrFtpSite^) == stringType //handle indirect ftpSites try {adrFtpSite = @user.html.sites.default} try {adrFtpSite = @user.html.sites.[adrFtpSite]} return adrFtpSite scriptError ("Cant find a FTP site starting at " + adrObject + ".") 0VGeneva ! @LANDmac on guestDatabaseName (adr) Returns the name of the guest database containing the object whose address is adr. Sat, Mar 2, 2002 at 4:53:47 AM by NJR Changes: local (alist = string.parseAddress (table.getRootAddress (adr))) return file.fileFromPath (alist [1]) bundle testing code msg (guestDatabaseName (@webdav.commands.updateTool)) l Geneva u(pu=rBLANDmac on parseResult (s, adrStatus, adrHeaderTable=nil) local ix = string.patternMatch ("\r\n", s) statusLine = string.delete (s, ix, infinity) status new (tableType, adrStatus) regex.extract ("^HTTP/([0-9.]+) ([0-9]{3}) (.+)$", @statusLine, @status, {1, 2, 3}) try adrStatus^.httpVersion = status[1][1] adrStatus^.statusCode = status[1][2] adrStatus^.statusText = status[1][3] else scriptError ("Invalid HTTP status line returned by server: " + statusLine + "") return string.httpResultSplit (s, adrHeaderTable) bundle testing with apologies to the Magliozzis :-) parseResult ("HTTP/1.1 204 BO-O-GUS!", @scratchpad.status, nil) edit (@scratchpad.status) z< Geneva u@|> LANDmac on processResult (result, operation, okStatusCodes={}) local (status, headers) result = webdav.util.parseResult (result, @status, @headers) if okStatusCodes contains status.statusCode return result if (status.statusCode == 207) Multi-Status webdav.util.errorFromMultiStatus (result, operation, headers) else local (error = webdav.util.statusString (@status)) scriptError ("Cant " + operation + " because the WebDAV server " + error + ".") zRln Geneva |/"o1LANDmac on statusString (adrStatus) local (errorString) case adrStatus^.statusCode 401 errorString = "did not accept your authentication information" 403 errorString = "is unable to access the requested location" 404 errorString = "cannot locate a resource at the specified location" 423 errorString = "encountered a locked resource while accessing the requested location" 500 errorString = "experienced an internal error" 302 errorString = "redirected too many times" else errorString = "returned an error" return errorString + " (" + adrStatus^.statusCode + " " + adrStatus^.statusText + ")" R9Geneva ͸K3LANDmac on urlEncodePath (path) Do the same thing as string.urlEncode, but don't escape slashes. May need to also exclude $, ?, and the like, but until I get bug reports I'm not doing anything about it. Tue, Feb 19, 2002 at 12:24:06 PM by NJR Changes: return string.replaceAll (string.urlEncode (path), "%2F", "/") ~u(_<  $0 EQ ^j z   backupTable` dirFromPath`werrorFromMultiStatus`a fileFromPath`+fixSiteRootPath`! getFtpSite`guestDatabaseName` parseResult` processResult`A statusString` urlEncodePath`%VGeneva 2^4h4J3Geneva A&,rLANDmac on viewNewsItems (adrargs=nil, ctStoriesToList=nil) Changes: 10/16/05; 10:58:30 AM by DW Began work on this code after a long hiatus. Make it work inside the OPML Editor. local // Declare & init local variables used here pta = html.getpagetableaddress() uri = pta^.uri adrdata = newsRiverSuite.init() indentlevel = 0 htmltext = "" entriestext = "" feedstext = "" msgtext = "" buttonstext = "" rltext = "" lastchanneltitle = "" ctstories = 0 flOneService = false xmlUrl = "" flOneReadingList = false readingListUrl = "" adrReadingList = nil adrservice = nil adrprevservice = nil adritem = nil adrprevitem = nil adrcache = @adrdata^.cache.[this] adrincache = nil defaultcachename = "default" // TODO: Allow prefs switching on templates path for selectable themes? templatestheme = "default" adrtheme = decafbadNewsRiverSuite.getCurrentTheme() adrtemplates = @adrtheme^.templates bundle // Stow away data useful for testing later scratchpad.newsparams = pta^ // Utility functions here... on add (s) htmltext = htmltext + (string.filledstring ("\t", indentlevel) + s + "\r\n"); on addMsg (s) msgtext = msgtext + (string.filledstring ("\t", indentlevel) + s + "\r\n"); on addButtons (s) buttonstext = buttonstext + (string.filledstring ("\t", indentlevel) + s + "\r\n"); on addFeed(adrservice) local(feed) bundle // old feed rendering bundle //link the XML icon to the source XML file for the channel xmllink = "
    " + xmlimg + "
    " local (magglass = "") bundle //load up the magnifying glass with some HTML if not flOneService local (url, args) new (tabletype, @args) args.xmlUrl = adritem^.url url = "?" + webserver.encodeArgs (@args) magglass = " " + searchimg + "" add (" " + globe + " " + decodeEntities (adrItem^.channelTitle) + ", " + adritem^.time + "." + magglass + "" + xmllink + "") bundle // Prepare the feed structure for rendering new(tabletype, @feed) with adrservice^.compilation feed.link = channellink feed.xmlUrl = nameOf(adrservice^) feed.title = channeltitle feed.description = newsRiverSuite.translateToEntities (searchengine.stripmarkup (channeldescription)) feed.entries = entriestext bundle // Render and add the feed chunk pta^.feed = feed feedstext = feedstext + processTmpl("newsFeed") entriestext = "" on addReadingList(s) rltext = rltext + s + "\r\n" on decodeEntities (s) s = string.replaceAll (s, "\r\n", "\r") s = string.replaceAll (s, "\n", "\r") return (newsRiverSuite.decodeEntities (s, flNeuterJavaScript:false)) on processTmpl(tmplname) local adrtmpl = @adrtemplates^.[tmplname] case typeOf(adrtmpl^) scriptType tmpl = adrtmpl^() else tmpl = string(adrtmpl^) pta^.theme = adrtheme return html.processMacros(tmpl) local (globeimg, xmlimg, searchimg, checkmarkimg, mediaimg, commentimg, postbuttonimg, permalinkimg) bundle // Set up img refs for templates new (tabletype, @pta^.imgs) with pta^.imgs globeimg = dotOpmlSuite.mdiWindow.imageRef ("newsRiver/qbullet/remote") xmlimg = dotOpmlSuite.mdiWindow.imageRef ("newsRiver/icons/xml") searchimg = dotOpmlSuite.mdiWindow.imageRef ("newsRiver/qbullet/search") checkmarkimg = dotOpmlSuite.mdiWindow.imageRef ("newsRiver/icons/checkmark") postbuttonimg = dotOpmlSuite.mdiWindow.imageRef ("newsRiver/icons/post") mediaimg = dotOpmlSuite.mdiWindow.imageRef ("newsRiver/qbullet/sound") commentimg = dotOpmlSuite.mdiWindow.imageRef ("newsRiver/icons/pencil") permalinkimg = dotOpmlSuite.mdiWindow.imageRef ("newsRiver/icons/itemPermalink") bundle // Figure out a limit to the number of stories shown on page if ctStoriesToList == nil ctStoriesToList = adrdata^.newsRiver.ctStoriesOnNewsPage bundle // Process incoming web request parameters & arguments local (args) new (tabletype, @args) webserver.parseArgs (pta^.searchArgs, @args) if defined (args.xmlUrl) // Should filter on one feed? flOneService = true xmlurl = args.xmlUrl adrservice = @adrdata^.services.[xmlurl] if defined (adrservice^.compilation.channeltitle) //avoid errors for non-compliant channels add ("Channel: " + decodeEntities (adrservice^.compilation.channeltitle) + "

    ") pta^.title = "Channel: " + decodeEntities (adrservice^.compilation.channeltitle) if defined (args.readingListUrl) // Should filter on one reading list? flOneReadingList = true readingListUrl = args.readingListUrl adrReadingList = @adrdata^.newsRiver.readingLists[readingListUrl] bundle // Set up for page output caching if not defined (adrcache^) //make sure the cache table is defined new (tabletype, adrcache) if adrdata^.newsRiver.flCacheNewsItemsPage local (cachename = defaultcachename) if sizeof (xmlUrl) > 0 cachename = xmlUrl adrincache = @adrcache^.[cachename] bundle // Catch and process form POST action if pta^.method == "POST" local (args) new (tabletype, @args) webserver.parseArgs (pta^.requestBody, @args) scratchpad.args = args; edit (@scratchpad.args) if defined (args.formName) if string.lower (args.formName) == "editstories" delete (@args.formName) if defined (args.unsubscribe) local (args) new (tabletype, @args) args.xmlUrl = xmlUrl if defined (adrdata^.services.[xmlUrl]) adrargs^.redirect = newsRiverData.systemUrls.unsub + "?" + webserver.encodeargs (@args) return ("") local adrdefaultcache = @adrcache^.[defaultcachename] for adrarg in @args try local (name = string.padwithzeros (number (nameof (adrarg^)), 8)) local (adrstory = @adrdata^.stories.[name]) if defined (adrstory^) adrdata^.trash.[name] = adrstory^ delete (adrstory) if adrdata^.newsRiver.flCacheNewsItemsPage if defined (adrcache^) if defined (adrincache^) //posting invalidates the cache delete (adrincache) if adrdefaultcache == adrincache //02/24/2001 JES: delete the cache for the service if defined (adrstory^) local (adrservicecache = @adrcache^.["xmlUrl=" + string.urlEncode (adrstory^.url)]) if defined (adrservicecache^) delete (adrservicecache) else //02/24/2001 JES: we're on the service page -- delete the default cache if defined (adrdefaultcache^) delete (adrdefaultcache) decafbadNewsRiverSuite.updateReadingListCounts() bundle // Set up page metadata pta^.title = newsRiverSuite.getString ("aggregator.title") if flOneReadingList // Tweak the page title if filtering on a reading list if defined(adrReadingList^.title) pta^.title = adrReadingList^.title bundle // See if we can serve from the cache if defined (adrcache^) if defined (adrincache^) return (adrincache^) bundle // Message at the top of the page if flOneService local (t) new (tabletype, @t) t.channeltitle = decodeEntities (adrservice^.compilation.channeltitle) addMsg (newsRiverSuite.getString ("aggregator.oneChannelMessage", @t)) pta^.title = t.channeltitle else local (t) new (tabletype, @t) t.subscriptionurl = newsRiverData.systemUrls.subscriptionList addMsg (newsRiverSuite.getString ("aggregator.standardMessage", @t)) add (newsRiverSuite.getString ("aggregator.clickThePostButton")) if adrdata^.newsRiver.flNewsPageDeleteCheckboxesDefault addMsg (newsRiverSuite.getString ("aggregator.checkBoxesOnIntro")) else addMsg (newsRiverSuite.getString ("aggregator.checkBoxesOffIntro")) if flOneService addMsg (newsRiverSuite.getString ("aggregator.howToUnsubscribe")) bundle // Set up deletion checkbox prefs for templates new(tabletype, @pta^.itemcheckbox) pta^.itemcheckbox.show = adrdata^.newsRiver.flItemCheckboxes if adrdata^.newsRiver.flNewsPageDeleteCheckboxesDefault pta^.itemcheckbox.checked = "checked=\"checked\"" else pta^.itemcheckbox.checked = "" local // Look up all the potential news items to be displayed i = 0 adrtable = @adrdata^.stories sizetable = sizeof (adrtable^) bundle // Loop over the news items to build the page local flskip for i = sizetable downto 1 bundle // Save the previous item, grab the next adrprevitem = adritem adritem = @adrdata^.stories [i] bundle // Skip missing or empty stories if not defined (adritem^.storyText) //skip this story -- this can happen if the scan is interrupted continue if (string.trimWhiteSpace (searchEngine.stripMarkup (adrItem^.storyText)) == "") and (not (string.lower (adrItem^.storyText) contains " ctStoriesToList break bundle // On feed transition between items, finalize the previous feed display chunk. if adritem^.channeltitle != lastchanneltitle if adrprevservice != nil addFeed(adrprevservice) adrprevservice = adrservice lastchanneltitle = adritem^.channeltitle bundle // Build some metadata flags for this item new(tabletype, @pta^.itemmeta) bundle // add info for the deletion checkbox pta^.itemmeta.name = number(nameof(adritem^)) bundle //an item has a checkmark if it's been blogged if defined (adritem^.adrBlogPost) pta^.itemmeta.checkmark = true bundle //if it has an enclosure add a media link if defined (adritem^.enclosure) if not defined (adritem^.enclosure.error) local (url) if defined (adritem^.enclosure.f) url = html.getfileurl (adritem^.enclosure.f) else url = adritem^.enclosure.url pta^.itemmeta.enclosure = url bundle //if it has comments add a comment link if defined (adritem^.comments) pta^.itemmeta.comments = adritem^.comments pta^.itemmeta.commentsonclick = "window.open (this.href, \'comments\', \'width=515, height=480, location=0, resizable=1, scrollbars=1, status=0, toolbar=0, directories=0\'); return(false);" pta^.itemmeta.commentstooltip = newsRiverSuite.getString ("misc.clickToCommentOnThisPost") bundle //if it has permalink add a permalink link if defined (adritem^.permalink) pta^.itemmeta.permalink = true bundle // Finally, add this new item to the display buffer. pta^.item = adritem local (checkmark = "", enclosure = "", comments = "", permalink = "") entriestext = entriestext + processTmpl("newsEntry") bundle // Wrap up the final feed on the page, if there are buffered items still waiting. if entriestext != "" if defined(adrprevservice^) addFeed(adrprevservice) if ctstories == 0 // No stories available msg. addMsg (newsRiverSuite.getString ("aggregator.noStories")) bundle // Add the item delete button to the page, with an optional unsubscribe button local (flDeleteButtonAdded = false) if flOneService if defined (adrservice^) addButtons ("

      

    ") flDeleteButtonAdded = true if not flDeleteButtonAdded addButtons("

    ") bundle // Finish building the page. pta^.now = clock.now() pta^.feeds = feedstext pta^.msgtext = msgtext pta^.buttons = buttonstext pta^.readingLists = rltext htmltext = htmltext + processTmpl("news") pta^.bodytext = htmltext htmltext = processTmpl("page") bundle // Cache the page output if adrdata^.newsRiver.flCacheNewsItemsPage adrincache^ = htmltext return (htmltext) bundle //test code html.setpagetableaddress (@scratchpad.newsparams) webbrowser.displaytext (viewNewsItems ()) webbrowser.bringtofront () WdatatablGwԿw createdSun, 16 Oct 2005 17:58:28 GMTWdatatablGw׿w createdSun, 16 Oct 2005 17:58:31 GMTWdatatablGww createdSun, 16 Oct 2005 17:58:58 GMTWdatatablG99 createdSun, 22 Jan 2006 18:30:48 GMTWdatatablG99 createdSun, 22 Jan 2006 18:30:57 GMTWdatatablG99 createdSun, 22 Jan 2006 18:31:03 GMTWdatatablG<< createdSun, 22 Jan 2006 18:44:27 GMTWdatatablG9 9 createdSun, 22 Jan 2006 18:28:45 GMTWdatatablG99 createdSun, 22 Jan 2006 18:28:34 GMTWdatatablG99 createdSun, 22 Jan 2006 18:29:02 GMTWdatatablG99 createdSun, 22 Jan 2006 18:28:58 GMTWdatatablG99 createdSun, 22 Jan 2006 18:28:36 GMTWdatatablG99 createdSun, 22 Jan 2006 18:28:38 GMTWdatatablG createdMon, 23 Jan 2006 03:51:16 GMTWdatatablG createdMon, 23 Jan 2006 03:51:12 GMTWdatatablG99 createdSun, 22 Jan 2006 18:28:52 GMTWdatatablG== createdSun, 22 Jan 2006 18:46:03 GMTWdatatablG<п< createdSun, 22 Jan 2006 18:44:48 GMTWdatatablG99 createdSun, 22 Jan 2006 18:28:55 GMTWdatatablG<ȿ< createdSun, 22 Jan 2006 18:44:40 GMTWdatatablG7;7; createdSun, 22 Jan 2006 18:20:59 GMTWdatatablG7E7E createdSun, 22 Jan 2006 18:21:09 GMTWdatatablG== createdSun, 22 Jan 2006 18:45:53 GMTWdatatablG7?7? createdSun, 22 Jan 2006 18:21:03 GMTWdatatablG7H7H createdSun, 22 Jan 2006 18:21:12 GMTWdatatablG11 createdMon, 23 Jan 2006 12:08:57 GMTWdatatablG<ÿ< createdSun, 22 Jan 2006 18:44:35 GMTWdatatablG7K7K createdSun, 22 Jan 2006 18:21:15 GMTWdatatablG9696 createdSun, 22 Jan 2006 18:29:26 GMTWdatatablG9-9- createdSun, 22 Jan 2006 18:29:17 GMTWdatatablG9292 createdSun, 22 Jan 2006 18:29:22 GMTWdatatablG:: createdSun, 22 Jan 2006 18:32:55 GMTWdatatablG;9;9 createdSun, 22 Jan 2006 18:38:01 GMTWdatatablG"" createdSat, 21 Jan 2006 04:29:05 GMTWdatatablG?? createdSun, 22 Jan 2006 18:56:34 GMTWdatatablGʁʁ createdSat, 11 Feb 2006 03:56:01 GMTWdatatablG9¿9 createdSun, 22 Jan 2006 18:31:46 GMTWdatatablG;; createdSun, 22 Jan 2006 18:39:29 GMTWdatatablG:*:* createdSun, 22 Jan 2006 18:33:30 GMTWdatatablG(6(6 createdSat, 21 Jan 2006 04:52:22 GMTWdatatablG)?)? createdSat, 21 Jan 2006 04:56:47 GMTWdatatablGRR createdSat, 21 Jan 2006 03:31:46 GMTWdatatablG)N)N createdSat, 21 Jan 2006 04:57:02 GMTWdatatablG createdSat, 21 Jan 2006 01:55:09 GMTWdatatablG&n&n createdSat, 21 Jan 2006 04:44:46 GMTWdatatablG createdSat, 21 Jan 2006 02:03:24 GMTWdatatablGVV createdSat, 11 Feb 2006 06:37:26 GMTWdatatablG createdSat, 21 Jan 2006 02:03:47 GMTWdatatablG&& createdSat, 21 Jan 2006 04:45:10 GMTWdatatablG createdSat, 21 Jan 2006 02:03:17 GMTWdatatablG),), createdSat, 21 Jan 2006 04:56:28 GMTWdatatablGͿ createdSat, 21 Jan 2006 02:04:13 GMTWdatatablGտ createdSat, 21 Jan 2006 02:04:21 GMTWdatatablG createdSat, 21 Jan 2006 03:41:33 GMTWdatatablG createdMon, 23 Jan 2006 03:51:38 GMTWdatatablG createdMon, 23 Jan 2006 03:51:49 GMTWdatatablGο createdSat, 21 Jan 2006 01:08:46 GMTWdatatablGََ createdSat, 11 Feb 2006 05:00:14 GMTWdatatablGٗٗ createdSat, 11 Feb 2006 05:00:23 GMTWdatatablG createdSat, 11 Feb 2006 04:36:06 GMTWdatatablG createdSat, 11 Feb 2006 04:40:08 GMTWdatatablG createdSat, 11 Feb 2006 04:40:11 GMTWdatatablG createdSat, 11 Feb 2006 04:36:51 GMTWdatatablG createdSat, 11 Feb 2006 04:36:55 GMTWdatatablG createdSat, 11 Feb 2006 06:31:18 GMTWdatatablG createdSat, 21 Jan 2006 01:09:11 GMTWdatatablG V V createdSun, 05 Feb 2006 05:37:42 GMTWdatatablG'' createdSat, 21 Jan 2006 04:51:11 GMTWdatatablG=,=, createdSun, 22 Jan 2006 18:46:20 GMTWdatatablG;w;w createdSun, 22 Jan 2006 18:39:03 GMTWdatatablGxx createdMon, 17 Oct 2005 13:06:32 GMTWdatatablGxx createdMon, 17 Oct 2005 13:06:37 GMTWdatatablGzz createdTue, 18 Oct 2005 19:36:01 GMTWdatatablG11 createdMon, 23 Jan 2006 12:09:27 GMTWdatatablGzz createdTue, 18 Oct 2005 18:35:54 GMTWdatatablG~~ createdFri, 21 Oct 2005 18:25:32 GMTWdatatablGjIjI createdFri, 10 Feb 2006 02:53:13 GMTWdatatablG createdFri, 30 Dec 2005 22:03:37 GMTWdatatablGjj createdFri, 10 Feb 2006 02:54:14 GMTWdatatablG¿ createdSat, 21 Jan 2006 03:20:50 GMTWdatatablG1)1) createdMon, 23 Jan 2006 12:07:21 GMTWdatatablG11 createdMon, 23 Jan 2006 12:10:29 GMTWdatatablG11 createdMon, 23 Jan 2006 12:10:46 GMTWdatatablGuu createdTue, 08 Nov 2005 17:03:49 GMTWdatatablG3p3p createdSat, 21 Jan 2006 05:40:16 GMTWdatatablG0.0. createdSat, 21 Jan 2006 05:26:22 GMTWdatatablG0U0U createdSat, 21 Jan 2006 05:27:01 GMTWdatatablG3G3G createdSat, 21 Jan 2006 05:39:35 GMTWdatatablG0}0} createdSat, 21 Jan 2006 05:27:41 GMTWdatatablG3]3] createdSat, 21 Jan 2006 05:39:57 GMTWdatatablG0}0} createdSat, 21 Jan 2006 05:27:41 GMTWdatatablG") return (true)  -Geneva Eu 2 LANDmac on firstFilter (adrPageTable) return (true) *[Geneva Eu ~}2LANDmac on pageFilter (pta) if typeOf (pta^.template) == outlineType or typeOf (pta^.template) == wpTextType table.assign (@pta^.template, string (pta^.template)) if typeOf (pta^.template) == stringType and not pta^.indirectTemplate pta^.template = string.replace (pta^.template, "", "[[title]]") html.addPageToGlossary (pta) return (true) �����������������������������������������������y���.���EF�������� ���� ��� ����$���0 ����; finalFilter����`�J firstFilter����`�T pagefilter����`���VGeneva���������������������������� �����������G�N��)�����������������������������������C������7�������� ����url���http://127.0.0.1/decafbadFun/��VGeneva���������������������������� ������������A��'����������������������������^�������Z���$����������� ���� ��� ����%linetext���0xDECAFBAD fun Homepath��� index.wsf���^�������������$���II�������� ���� ��� ����linetext���r["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.css.foopath��� css/foo.wsf����������������$����������� ���� ��� ����linetext���s["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.css.foo2path��� css/foo2.wsf����������������$����������� ���� ��� ����linetext���t["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.css.foo45path��� css/foo45.wsf����������������$���oo�������� ���� ��� ����linetext���s["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.css.mainpath��� css/main.wsf����������������$���ww�������� ���� ��� ����linetext���z["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.css.newsOutlinepath���css/newsOutline.wsf����������������$���\\�������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.img.outline_collapsedpath���img/outline_collapsed.wsf����������������$���[[�������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.img.outline_collapsed_altpath���img/outline_collapsed_alt.wsf����������������$���\\�������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.img.outline_expandedpath���img/outline_expanded.wsf����������������$���vv�������� ���� ��� ����linetext���w["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.js.behaviourpath���js/behaviour.wsf����������������$���vv�������� ���� ��� ����linetext���r["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.js.mainpath��� js/main.wsf����������������$���pp�������� ���� ��� ����linetext���v["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.js.MochiKitpath���js/MochiKit.wsf����������������$���ww�������� ���� ��� ����linetext���y["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.js.newsOutlinepath���js/newsOutline.wsf����������������$����������� ���� ��� ����linetext���t["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.macroplaypath��� macroplay.wsf����������������$����������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.css.mainpath��� css/main.wsf����������������$���ʵʵ�������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.css.newsOutlinepath���css/newsOutline.wsf����������������$����������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.behaviourpath���js/behaviour.wsf����������������$����������� ���� ��� ����linetext���~["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.mainpath��� js/main.wsf����������������$����������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.MochiKitpath���js/MochiKit.wsf����� ������ ���$����������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.nastyInsecureUserAndPasswordJSIncludepath���,js/nastyInsecureUserAndPasswordJSInclude.wsf�� �������������$���ʶʶ�������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.newsOutlinepath���js/newsOutline.wsf����������������$����������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.vcXMLRPCpath���js/vcXMLRPC.wsf����������������$���I0I0�������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.xmlrpcpath��� js/xmlrpc.wsf��������������$����������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.nastyInsecureUserAndPasswordJSIncludepath���)nastyInsecureUserAndPasswordJSInclude.wsf���������������$����������� ���� ��� ����linetext���}["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.staticpath��� static.wsf����������������$���ͥͥ�������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.theme.staticpath���theme/static.wsf����������������$��� �������� ���� ��� ����linetext���["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.xmlrpctestpath���xmlrpctest.wsf����������������$��� X X�������� ���� ��� ����linetext���z["Pi~e:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.css.mainpath��� css/main.wsf����������������$��� ` `�������� ���� ��� ����linetext���["Pi~e:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.css.newsOutlinepath���css/newsOutline.wsf����������������$��� �������� ���� ��� ����linetext���w["Pi~e:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.indexpath��� index.wsf����������������$��� _ _�������� ���� ��� ����linetext���y["Pi~e:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.mainpath��� js/main.wsf��������������$��� ` `�������� ���� ��� ����linetext���["Pi~e:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.nastyInsecureUserAndPasswordJSIncludepath���,js/nastyInsecureUserAndPasswordJSInclude.wsf�����f�������b���$���44�������� ���� ���( ����-linetext���del.icio.us/tag/electronicspath��� index.wsf���f���O�������K���$���%8}%8}�������� ���� ��� ����linetext���Homepath��� index.wsf���O���c�������_���$����������� ���� ���% ����*linetext���l.m.orchard's amusementspath��� index.wsf���c���^�������Z���$��� �������� ���� ��� ����%linetext���l.m.orchard's blogspath��� index.wsf���^���f�������b���$���[[�������� ���� ���( ����-linetext���l.m.orchard's filtered newspath��� index.wsf���f���`�������\���$���lrlr�������� ���� ���" ����'linetext���l.m.orchard's friendspath��� index.wsf���`���b�������^���$���mm�������� ���� ���$ ����)linetext���l.m.orchard's hot stuffpath��� index.wsf���b���^�������Z���$��� _ _�������� ���� ��� ����%linetext���l.m.orchard's linkspath��� index.wsf���^���g�������c���$����������� ���� ���) ����.linetext���l.m.orchard's news for nerdspath��� index.wsf���g���Y�������U���$���11�������� ���� ��� ����linetext��� Macro Playpath��� macroplay.wsf���Y���p�������l���$���oo�������� ���� ���2 ����7linetext���%phillip torrone's how-to reading listpath��� index.wsf���p���V�������R���$���%8Y%8Y�������� ���� ��� ����linetext��� Preferencespath��� prefs.wsf���V���Z�������V���$����������� ���� ��� ����!linetext���subs-blogs.opmlpath��� index.wsf���Z���Z�������V���$���mm�������� ���� ��� ����!linetext���subs-links.opmlpath��� index.wsf���Z���[�������W���$���uu�������� ���� ��� ����linetext��� XMLRPC testpath���xmlrpctest.wsf���[��B���������������%8}�������� ������� ������� ����� ����� ����� ����� ���(��4 ����� ���E��Q ����� ���H��T ����� ���Q��] ����� ���^��j ����� ����� ��� ��  ��� �� ��� G�� S ��� �� ��� h�� t ��� ��  ��� �� ��� (�� 4 ��� �� ���F��R ����� ���[��g ����� ���e��q ��� �� ���4��@ ���E��Q ���j��v ����� ����� ����� ����� �����$ ���A��M ���X��d ����� ����� ����� ����� ���0xDECAFBAD fun Home����`�r["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.css.foo����`� s["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.css.foo2����`�t["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.css.foo45����`�s["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.css.main����`�sz["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.css.newsOutline����`�@["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.img.outline_collapsed����`�["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.img.outline_collapsed_alt����`�["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.img.outline_expanded����`�w["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.js.behaviour����`�r["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.js.main����`�v["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.js.MochiKit����`�vy["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.js.newsOutline����`�It["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.macroplay����`�"["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.css.main����`�["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.css.newsOutline����`�ʃ["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.behaviour����`�~["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.main����`�["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.MochiKit����`�i["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.nastyInsecureUserAndPasswordJSInclude����`�H["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.newsOutline����`�a["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.vcXMLRPC����`�F["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.xmlrpc����`�%["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.nastyInsecureUserAndPasswordJSInclude����`��}["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.static����`�["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.theme.static����`�["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.xmlrpctest����`�z["Pi~e:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.css.main����`�["Pi~e:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.css.newsOutline����`�zw["Pi~e:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.index����`�\y["Pi~e:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.main����`�*["Pi~e:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadNewsRiver.root"].decafbadNewsRiverWebsite.js.nastyInsecureUserAndPasswordJSInclude����`�del.icio.us/tag/electronics����`�Home����`�l.m.orchard's amusements����`�l.m.orchard's blogs����`�Ll.m.orchard's filtered news����`�l.m.orchard's friends����`�(l.m.orchard's hot stuff����`�l.m.orchard's links����`�l.m.orchard's news for nerds����`�l Macro Play����`�%phillip torrone's how-to reading list����`�D Preferences����`�subs-blogs.opml����`�"subs-links.opml����`� XMLRPC test����`���VArial����������������������������� �����������������������������������������������B����������W����������'������������space���/GIFfGIF89a�������!����,�������D�;��VArial����������������������������� ��������������������������������������������������g������ ���j�������o�������� ������� �������"�������+ ����0���: ����M���S ����h���n ����w��� ������� ����alink���008000bgcolor���FFFFFFflRenderlink���0000FFmacroEndCharacters���%>macroStartCharacters���<%spaceGif���spacetext���000000vlink���800080��VArial����������������������������� �����������������������������������������������g�������������� �����Geneva���������������������������� ��������������FZ���U��7�8LAND������mac ������������<%bodytext%> �����������n�����������������1������VArial����������������������������� ������������������������������������������������n���������4������Geneva���������������������������� �������������� ������,iLAND������mac ������������local (htmltext, args) new (tabletype, @args) htmltext = decafbadNewsRiverSuite.viewNewsItems (@args) table.assign(@scratchpad.dnrhtml, htmltext) if defined (args.redirect) dialog.alert ("Redirect" + args.redirect) return (htmltext) ����Wdatatabl����G������ww�������� ����created���Tue, 01 Nov 2005 14:28:07 GMT����Wdatatabl����G������~~�������� ����created���Tue, 01 Nov 2005 14:28:14 GMT���������Wdatatabl����G������  �������� ����created���Sun, 05 Feb 2006 05:40:53 GMT����Wdatatabl����G�������������� ����created���Tue, 01 Nov 2005 14:28:21 GMT����Wdatatabl����G�������������� ����created���Tue, 01 Nov 2005 14:28:36 GMT����Wdatatabl����G�������������� ����created���Tue, 01 Nov 2005 14:29:13 GMT���� �������������Geneva���������������������������� �������������o5�����k*LAND������mac ������������on prefs () Changes 2/11/06; 12:32:31 AM by LMO Copied over from newsRiver.root 1/11/06; 6:56:52 AM by DW Init the aggregator, for the case where viewing Prefs is the first thing the user does (I did it). 1/5/06; 3:11:18 PM by DW For POST requests, parse the args into pta^.postArgs. 1/3/06; 2:45:14 PM by DW Created. local (pta = html.getpagetableaddress ()) scratchpad.prefsparams = pta^ new (tabletype, @pta^.searchArgTable) webserver.parseargs (pta^.searchargs, @pta^.searchArgTable) if pta^.method == "POST" new (tabletype, @pta^.postArgs) webserver.parseArgs (pta^.requestBody, @pta^.postArgs) newsRiverSuite.init () //1/11/06 by DW local (htmltext = radio.prefs.browser (@decafbadNewsRiverData.english.prefsOutline)) pta^.title = "Preferences" return (htmltext) bundle //test code html.setpagetableaddress (@scratchpad.prefsparams) webbrowser.displaytext (prefs ()) ����Wdatatabl����G������<<�������� ����created���Tue, 03 Jan 2006 19:34:57 GMT����Wdatatabl����G������>x>x�������� ����created���Tue, 03 Jan 2006 19:45:12 GMT����Wdatatabl����G�������������� ����created���Sat, 11 Feb 2006 05:32:30 GMT����Wdatatabl����G������&&�������� ����created���Sat, 11 Feb 2006 05:32:38 GMT����Wdatatabl����G������\\�������� ����created���Wed, 11 Jan 2006 14:56:52 GMT����Wdatatabl����G������\\�������� ����created���Wed, 11 Jan 2006 14:56:53 GMT����Wdatatabl����G������甿�������� ����created���Thu, 05 Jan 2006 20:11:16 GMT�����Wdatatabl����G������痿�������� ����created���Thu, 05 Jan 2006 20:11:19 GMT����Wdatatabl����G������>y>y�������� ����created���Tue, 03 Jan 2006 19:45:13 GMT�����Wdatatabl����G������>{>{�������� ����created���Tue, 03 Jan 2006 19:45:15 GMT����Wdatatabl����G������<<�������� ����created���Tue, 03 Jan 2006 19:37:05 GMT����Wdatatabl����G������;;�������� ����created���Tue, 03 Jan 2006 19:34:22 GMT����Wdatatabl����G������<<�������� ����created���Tue, 03 Jan 2006 19:37:13 GMT����Wdatatabl����G������<<�������� ����created���Tue, 03 Jan 2006 19:37:29 GMT����Wdatatabl����G������˿�������� ����created���Thu, 05 Jan 2006 20:07:55 GMT��������������Wdatatabl����G������\\�������� ����created���Wed, 11 Jan 2006 14:56:31 GMT���������Wdatatabl����G������==�������� ����created���Tue, 03 Jan 2006 19:42:04 GMT����Wdatatabl����G������>W>W�������� ����created���Tue, 03 Jan 2006 19:44:39 GMT����Wdatatabl����G������<<�������� ����created���Tue, 03 Jan 2006 19:35:02 GMT�����Wdatatabl����G������<<�������� ����created���Tue, 03 Jan 2006 19:35:06 GMT�����Wdatatabl����G������<6<6�������� ����created���Tue, 03 Jan 2006 19:35:34 GMT�� ��^������� ��E�����Geneva���������������������������� ��������������oս������LAND������mac ������������Simple path resolution to theme assets local adrtheme = decafbadNewsRiverSuite.getCurrentTheme() pta = html.getpagetableaddress () out = "" path = pta^.path adrcurr = adrtheme bundle // Perform a 'mini-walk' on path to find theme resource local fl_found_theme = false for i = 1 to string.countFields(path, "/") local p = string.nthField(path, "/", i) if p == "theme" fl_found_theme = true else if fl_found_theme if defined(adrcurr^.[p]) adrcurr = @adrcurr^.[p] else bundle pta^.code = 404 pta^.responseBody = "No such theme resource " + path return bundle // Render the found object as a string case typeOf(adrcurr^) scriptType out = adrcurr^() else out = string(adrcurr^) bundle // Set the OK status, responseBody to output pta^.code = 200 pta^.responseBody = out ����Wdatatabl����G������զզ�������� ����created���Sat, 11 Feb 2006 04:43:34 GMT����Wdatatabl����G�������������� ����created���Fri, 06 Jan 2006 15:19:33 GMT�����Wdatatabl����G������ʁʁ�������� ����created���Sat, 11 Feb 2006 03:56:01 GMT�����Wdatatabl����G�������������� ����created���Sat, 11 Feb 2006 04:19:27 GMT�����Wdatatabl����G������mm�������� ����created���Sat, 11 Feb 2006 04:21:17 GMT�����Wdatatabl����G������vv�������� ����created���Sun, 08 Jan 2006 03:08:54 GMT�����Wdatatabl����G������ээ�������� ����created���Sat, 11 Feb 2006 04:26:05 GMT����Wdatatabl����G������TT�������� ����created���Sat, 11 Feb 2006 04:29:24 GMT�����Wdatatabl����G������jj�������� ����created���Sat, 11 Feb 2006 04:29:46 GMT�����Wdatatabl����G������KK�������� ����created���Sat, 11 Feb 2006 04:24:59 GMT�����Wdatatabl����G������ee�������� ����created���Sat, 11 Feb 2006 04:21:09 GMT�����Wdatatabl����G������ЖЖ�������� ����created���Sat, 11 Feb 2006 04:21:58 GMT�����Wdatatabl����G������ММ�������� ����created���Sat, 11 Feb 2006 04:22:04 GMT�����Wdatatabl����G������TT�������� ����created���Sat, 11 Feb 2006 04:25:08 GMT�����Wdatatabl����G������^^�������� ����created���Sat, 11 Feb 2006 04:25:18 GMT�����Wdatatabl����G������dd�������� ����created���Sat, 11 Feb 2006 04:25:24 GMT�����Wdatatabl����G������ee�������� ����created���Sat, 11 Feb 2006 04:25:25 GMT�����Wdatatabl����G������ѱѱ�������� ����created���Sat, 11 Feb 2006 04:26:41 GMT�����Wdatatabl����G�������������� ����created���Sat, 11 Feb 2006 04:26:56 GMT�����Wdatatabl����G�������������� ����created���Sat, 11 Feb 2006 04:27:13 GMT�����Wdatatabl����G�������������� ����created���Sat, 11 Feb 2006 04:14:59 GMT�����������������Wdatatabl����G������  �������� ����created���Sat, 11 Feb 2006 04:28:13 GMT����Wdatatabl����G������ӡӡ�������� ����created���Sat, 11 Feb 2006 04:34:57 GMT�����Wdatatabl����G�������������� ����created���Sat, 11 Feb 2006 04:36:06 GMT�����Wdatatabl����G�������������� ����created���Sat, 11 Feb 2006 04:40:08 GMT�����Wdatatabl����G�������������� ����created���Sat, 11 Feb 2006 04:40:11 GMT�����Wdatatabl����G�������������� ����created���Sat, 11 Feb 2006 04:36:51 GMT�����Wdatatabl����G�������������� ����created���Sat, 11 Feb 2006 04:36:55 GMT����Wdatatabl����G�������������� ����created���Sat, 11 Feb 2006 04:14:59 GMT��������������^���E�������A������p<�������� ����#objectNotFoundHandler����`�J���E��������>���t���7�������� ���� ��� �������* ����4���@ ����H���T ����[���g ����q���} ������� ������� ������� ����#filters������#ftpSite������ #glossary������U#images������ƣ#prefs������` #template�������#tools������jindex������prefs������͆theme��������VGeneva���������������������������� ����������v�O��x�?+��������������������������� ������������K��������������� �����������t��� Ol�������� �������" ����8���D ����_���k ������� ������� ������� ������ ��� ��, ���E��Q ���ndecafbadNewsRiverData������OBdecafbadNewsRiverInfo������xqdecafbadNewsRiverNodeTypes������z decafbadNewsRiverResponder������{decafbadNewsRiverRpcHandlers������decafbadNewsRiverSoapHandlers������ZdecafbadNewsRiverSuite������decafbadNewsRiverThread������decafbadNewsRiverWebsite������decafbadNewsRiverWindowTypes��������V Lucida Grande����������������������������������2�z�50������������������������ n���,��Geneva���������������������������� �����2�(������%:��!�'?LAND������mac ������������decafbadNewsRiverData english prefsOutline prefs systemUrls themes default css main newsOutline img info js behaviour dbXMLRPC main MochiKit nastyInsecureUserAndPasswordJSInclude newsOutline vcXMLRPC xmlrpc templates news newsEntry newsEntry #1 newsFeed page utils furtherReading itemContent prefsJS play2 decafbadNewsRiverInfo author authorEmail description homePageUrl name releaseDate TODO updateInfo releaseNotes releaseNotesUrl updateDownloadUrl version decafbadNewsRiverNodeTypes decafbadNewsRiverResponder decafbadNewsRiverRpcHandlers getItem getRecentItems getRecentItemsForSub getSubInfo getSubs decafbadNewsRiverSoapHandlers decafbadNewsRiverSuite background callbacks getCurrentTheme getPrefs init listThemeDescriptions listThemeIDs listThemeNames menu menuCommands statusCenterMessage updater checkReleaseNotes createArchives getUrl publish update updateReadingListCounts util viewNewsItems decafbadNewsRiverThread decafbadNewsRiverWebsite #filters #ftpSite #glossary #images space #prefs #template #tools index prefs theme decafbadNewsRiverWindowTypes ����� ������������������ 8������������������� L������������������� 8������������������ 8������������������ 8������������������ l������������������ <������������������� `�������������������� `������������������� <������������������ <������������������ <������������������� x�������������������� x�������������������� x�������������������� x�������������������� x�������������������� x�������������������� x�������������������� x������������������� <������������������� �������������������� �������������������� �������������������� �������������������� ������������������� <������������������� �������������������� �������������������� ������������������� l������������������ ������������������� и�������������������� и�������������������� и�������������������� и�������������������� и�������������������� и�������������������� и������������������� и������������������� �������������������� �������������������� �������������������� и������������������� ������������������ ������������������ ������������������� �������������������� �������������������� �������������������� �������������������� ������������������� ������������������ ������������������ ������������������ ������������������� �������������������� �������������������� �������������������� �������������������� �������������������� �������������������� ������������������� ������������������� ������������������� ������������������� Q�������������������� Q�������������������� Q�������������������� Q�������������������� Q�������������������� ������������������� ������������������� ������������������� ������������������ ������������������ ������������������ ������������������ ������������������ ������������������� `������������������� ������������������� ������������������� ������������������� �������������������� ������������������� ������������������ �����������������������@8 Lucida Grande���������������������� ���������������� Lucida Grande���������������������� ������������������=Geneva����������������������������� ����������������^= Lucida Grande���������������������� ����������������m. Lucida Grande���������������������� ���������������� Lucida Grande���������������������� ��������������������������������������������������������������������������������