ûÙÿX û¹Ê Geneva ÀdSÀ"¦v`Î(¶LANDÿÿÿÿÿÿmac 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) %> €WdatatablG¿àM�¿àM� createdTue, 03 Jan 2006 20:49:35 GMT€WdatatablGÀäzÀäz createdSat, 11 Feb 2006 05:46:50 GMT€WdatatablGÀëÀë createdSat, 11 Feb 2006 06:14:44 GMT€WdatatablGÀä|Àä| createdSat, 11 Feb 2006 05:46:52 GMT€WdatatablGÀ!ñ}À!ñ} createdWed, 22 Feb 2006 15:46:21 GMT€WdatatablGÀ!ñ–À!ñ– createdWed, 22 Feb 2006 15:46:46 GMT€WdatatablGÀ!ó À!ó createdWed, 22 Feb 2006 15:52:58 GMT€WdatatablGÀ"¦[À"¦[ createdThu, 23 Feb 2006 04:38:03 GMT€WdatatablGÀ!òUÀ!òU createdWed, 22 Feb 2006 15:49:56 GMT€WdatatablGÀ!÷˜À!÷˜ createdWed, 22 Feb 2006 16:12:24 GMT€WdatatablGÀ!÷®À!÷® createdWed, 22 Feb 2006 16:12:46 GMT€WdatatablGÀ"¦[À"¦[ createdThu, 23 Feb 2006 04:38:03 GMT€WdatatablGÀ!òUÀ!òU createdWed, 22 Feb 2006 15:49:56 GMT û‘7¿xû‡Àá] prefsOutlineXVGeneva©|=@8ÖÈ‘3/¿÷ýÀÇt themedefault3©O¿~GD¿÷=L news(http://127.0.0.1:5337/decafbadNewsRiver/VGenevaº¡Z$7Ê©í4AGeneva ¿ö�£¿ö’ÝÛ£�LANDÿÿÿÿÿÿmac /* Main CSS */ body, td, p, div, li { font: 11px arial; } €WdatatablG¿ö�§¿ö�§ createdFri, 20 Jan 2006 18:05:43 GMT€WdatatablG¿ö�¬¿ö�¬ createdFri, 20 Jan 2006 18:05:48 GMT€WdatatablG¿ö’;¿ö’; createdFri, 20 Jan 2006 18:12:27 GMT€WdatatablG¿ö�¹¿ö�¹ createdFri, 20 Jan 2006 18:06:01 GMT€WdatatablG¿ö�³¿ö�³ createdFri, 20 Jan 2006 18:05:55 GMT€WdatatablG¿ö‘¸¿ö‘¸ createdFri, 20 Jan 2006 18:10:16 GMTísFFFF000000060001001777AA00000000007C000000001001710000001-7FFF6FBE1800000‚‚48004806C2F200��-1‚DFEE05DFEE056620Â6‚C2F222FFFF��0‚‚10‚‚3‚E05000010000007600000002074E840�‚�‚6‚4EC22273302CE0004E164ECA2074E1518840�‚�‚4EC6C2F222DC9028E000C246C2FC00002000007540000000074E,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; }00040000000C0000000201151A100050000000B000000020�151A00006000000650000000210��A210‚‚ÁFFFF��0‚A00000 10ÂÁ ‚‚Á‚20�920�‚‚ÁFFFF��0‚900000 10ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000001C40000000340,Geneva40,4030 1040, Helvetica40,40150 1040,Monaco40,4040 10000900000017000000023‚21B2453‚21B245000A00000017000000026‚C2F2226‚C2F222000B00000005000000020Â000C0000001D00000001E05DFEE0585E585072‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,s4,s4,keÓ.4, 4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿÷°Àøh;_��åïsUQ$ÀÄiÀÒ-  mainà ð newsOutlineàéU¥GIF89a÷àÿÿÿýýýêêêëëëèèèùùùÓÓÓûûûõõõçççóóóøøø÷÷÷úúúüüüÌÌÌïïïöööËËËþþþéééîîîBBBÙÙÙñññ¯¯¯‰‰‰ÞÞÞÏÏÏ&&&³³³ðððÒÒÒôôô···ÚÚÚÛÛÛ���£££kkkÐÐЬ¬¬ÍÍÍ­­­«««½½½ìììÎÎÎáááòòòºººwww   ���€€€dddbbbÃÃÃÇÇLJ‡‡àààŸŸŸ¢¢¢ˆˆˆooo§§§×××ÀÀÀåååÝÝÝííí```™™™“““ßßßEEEæææ444ØØØ„„„äää®®®ÜÜÜ???ggg›››ÈÈȹ¹¹ššš!!!ÄÄÄ---°°°ŒŒŒÕÕÕÑÑÑ\\\ãããIII<<†˜ ºÂÈ busy_animÿÿÿÿ,Éoutline_collapsedFGIF89a ‘ÞÞÞÿÿÿ!ù, ”b©�šÜŒoJnÈ—Kï€I;outline_collapsed_altHGIF89a ñÞÞÞÿÿÿ!ù, ”/€±ÖÜŠòÐj‚Öoã³=Ù‡H;outline_expandedDGIF89a ‘ÞÞÞ­­­ÿÿÿ!ù, ”�©Ë�¢”Îx,EzAT;outline_expanded_altDGIF89a ‘ÞÞÞ­­­ÿÿÿ!ù, ”�©Ë�¢”Îx,EzAT;snake_transparentÿÿÿÿ5zsnake_transparent_smallerÿÿÿÿ>+space/GIFfGIF89a€ÿÿÿ!ù,D;VGeneva ÈÞ=_Å}Ö¹®ª8ÀÈäÀéÞ  "; GX ]author l.m.orchard authorEmaill.m.orchard@pobox.com description default themename default theme®%$FFFF000000060001001777AA000000000071000000001001710000001-7F7F6FBE1800000‚‚48004806D20200��-1‚0ÂC840Â6‚D20222FFFF��0‚‚10‚‚3‚1FE400001000000BD00000003090E40840�‚�‚6‚51A2228CE03CE00050D651A152090E11CC40840�‚�‚51A683322285D03CE00082668331F0011CC1FE440840�‚�‚8336D20222E18038E000D136D20600002000009140000000090E,/* 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 */ 00040000000B000000020�1FE6000050000000B000000020�1FE60000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 20ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000015000000023‚9C17D3‚9C17D000A00000017000000026‚D202226‚D20222000B00000005000000020Â000C0000000F000000011FE40Â�‚‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,TÚ«4,77A4,4,4,4,æææØ4,ëëëÞ00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AAÀÃ2ÀÃ2ä(t×$ %$TßFFFF000000060001001777AA000000000074000000001001710000001-7F7F6FBE1800000‚‚48004806231D200��-1‚0Â22810Â6‚231D222FFFF��0‚‚10‚‚3‚4D59000010000026200000009099B40840�‚�‚6‚3EF22296803CC0003E263EF10B099B120440840�‚�‚3EF683322284703CE0008266833A0012041A5E40840�‚�‚8336CD222281A03C8000CC548CD218A01A5E228440840�‚�‚CD2610C82227F603C800010BB6010C813D022842AA240840�‚�‚10C8614D82227FB03C800014CB3014D8D702AA232AD40840�‚�‚14D8618732227F303C800018661818738D032AD3AC640840�‚�‚187361B992227D403CC0001B8C61B9917203AC641E440840�‚�‚1B9961DFC2226F003C80001DEF481DFC12C041E44D5940840�‚�‚1DFC6231D222B75038E00023106231D600002000009A10000000099B,// // 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"); 00040000000B000000020�4D5B000050000000B000000020�4D5B0000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 20ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000015000000023‚9C17D3‚9C17D000A00000019000000026‚231D2226‚231D222000B00000005000000020Â000C0000000F000000014D590Â�‚‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,3[4,4,4,4,4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AAÀÃ'ÀÃ'MY(t×T[TßzFFFF000000060001001777AA000000000068000000001001710000001-7E7F6FBE1800000‚‚48004806201200��-1‚0Â6‚201222FFFF��0‚‚10‚‚3‚328000010000003A00000001032840840�‚�‚6‚201222328038E0001F462016000020000032E00000000328,/* 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; */ 00040000000B000000020132A100050000000A000000020�32A00006000000650000000210��A210‚‚ÁFFFF��0‚A00000 10ÂÁ ‚‚Á‚10�A30�‚‚ÁFFFF��0‚A00000 10ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚00080000012D0000000240,Geneva40,4030 1040,Monaco40,4040 10000900000017000000023‚2712C13‚2712C1000A00000017000000026‚2012226‚201222000B00000005000000020Â000C0000001700000001325‚‚1ED9D2696‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4, 1:04,4,4,+4, 4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿ö�)¿øx’(^ºâŽöz�dFFFF000000060001001777AA00000000006C000000001001710000001-7F7F6FBE1800000‚‚48004806DA55200��-1‚0Â6‚DA55222FFFF��0‚‚10‚‚3‚187450000100000D0700000030091140840�‚�‚6‚6932228E903CE0006866693E8091111AE40840�‚�‚6936C1C22289003CE000C0F6C1C43011AE1A1D40840�‚�‚C1C6117E22284503CE00011716117EE601A1D225B40840�‚�‚117E6176F22283403CE00017626176F350225B2A7A40840�‚�‚176F61C762227FA03CE0001C6961C76C502A7A32AE40840�‚�‚1C766220C22280903CE00021FF6220CDB032AE3AAD40840�‚�‚220C6276E2227F003CE00027616276E4B03AAD42BB40840�‚�‚276E62A532227FE03CE0002A4662A5359042BB4ABE40840�‚�‚2A5362D6C2227E003CE0002D5F62D6CB204ABE52BF40840�‚�‚2D6C632CE2227DE03CE00032C1632CEAA052BF5ACA40840�‚�‚32CE637EF2227F203CE00037E2637EF8205ACA62C440840�‚�‚37EF63D9F2227DF03CE0003D9263D9F84062C46AD840840�‚�‚3D9F643C42227F603CE00043B7643C49B06AD872CE40840�‚�‚43C46498E22279403CE00049816498E1F8072CE7AC740840�‚�‚498E64C662227CE03CE0004C5964C66DF07AC782F440840�‚�‚4C66650352227F403CE00050286503512C082F48AEC40840�‚�‚5035653A922279903CC000539C653A921408AEC92F940840�‚�‚53A9657442227B903CE0005737657441C0092F99AFC40840�‚�‚574465AF92227CD03CE0005AEC65AF912B09AFCA2F640840�‚�‚5AF965F7E2227D703CE0005F7165F7EC50A2F6AAEE40840�‚�‚5F7E663B52227AA03CC00063A8663B518D0AAEEB2E240840�‚�‚63B5668542227E003CE000684766854690B2E2BAE540840�‚�‚685466D272227E903CE0006D1A66D278B0BAE5C2E640840�‚�‚6D27672D72227E403CE00072CA672D7980C2E6CAEB40840�‚�‚72D7676992227DA03CE000768C67699EF0CAEBD2F040840�‚�‚7699679B22227E803CE00079A5679B29B0D2F0DAEF40840�‚�‚79B267E922227E303CE0007E8567E92950DAEFE2D840840�‚�‚7E92683F42227DC03CE00083E7683F4420E2D8EAE740840�‚�‚83F4689702227E303CE000896368970FB0EAE7F2D340840�‚�‚897068D8D2227C403CE0008D8068D8DD50F2D3FAC440840�‚�‚8D8D6927A2227EE03CE000926D6927AF0FAC4102D540840�‚�‚927A697332227F203CE000972669733AA0102D510ADE40840�‚�‚973369BAB2227E903CE0009B9E69BABB2010ADE112CE40840�‚�‚9BAB69F122227D203CE0009F0569F12A20112CE11AF940840�‚�‚9F126A2932227CF03CC000A2866A2931E6011AF91230440840�‚�‚A2936A74C2227D103CE000A73F6A74C14001230412AF340840�‚�‚A74C6AAC02227C403CE000AAB36AAC0EB012AF31330240840�‚�‚AAC06AEEA2227E303CE000AEDD6AEEAEB01330213AEA40840�‚�‚AEEA6B2ED2227C903CE000B2E06B2ED9D013AEA142D540840�‚�‚B2ED6B7652227E103CE000B7586B765350142D514AE840840�‚�‚B7656BF372227EA03CE000BF2A6BF37E3014AE8152D840840�‚�‚BF376C3A22227E503CC000C3956C3A2390152D815EBB40840�‚�‚C3A26C54F222BDE03CC000C5426C54F1B015EBB1653740840�‚�‚C54F6C87522267203CE000C8686C8753301653716C6640840�‚�‚C8756CB4022270803CE000CB336CB40E1016C66173D140840�‚�‚CB406CF8422275403CE000CF776CF84830173D117B3F40840�‚�‚CF846D43022274203CE000D4236D430E1017B3F1874540840�‚�‚D4306DA55222C06038E000DA486DA556000020000091700000000911,/*** 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); } } })(); } 00040000000C000000020�18747000050000000C000000020�187470000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 20ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000015000000023‚9C17D3‚9C17D000A00000019000000026‚DA552226‚DA55222000B00000005000000020Â000C0000001300000001187450Â790‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,4,4,4,4,4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AAÀ‡Àˆ‡E(tלà�du] Geneva ¿ø„O¿ùt+Å¢�LANDÿÿÿÿÿÿmac 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 GMT€WdatatablG¿ø…p¿ø…p createdSun, 22 Jan 2006 05:42:24 GMT€WdatatablG¿ø†4¿ø†4 createdSun, 22 Jan 2006 05:45:40 GMT€WdatatablG¿ø…s¿ø…s createdSun, 22 Jan 2006 05:42:27 GMT€WdatatablG¿ø…k¿ø…k createdSun, 22 Jan 2006 05:42:19 GMT€WdatatablG¿ø„_¿ø„_ createdSun, 22 Jan 2006 05:37:51 GMT€WdatatablG¿ø„c¿ø„c createdSun, 22 Jan 2006 05:37:55 GMTWdatatablG¿ø„g¿ø„g createdSun, 22 Jan 2006 05:37:59 GMT€€€€WdatatablG¿ø„t¿ø„t createdSun, 22 Jan 2006 05:38:12 GMTu!xFFFF000000060001001777AA000000000081000000001001710000001-7EFB6FBE1800000‚‚48004806C6A200��-1‚14CB14D614CB14D67110Â6‚C6A222FFFF��0‚‚10‚‚3‚15BF00001000000B7000000030911840�‚�‚6‚4092228E503CE0003FC64091080911F2B840�‚�‚40966A02225D403CE00069366A01A40F2B1B5C40840�‚�‚6A06C6A222C1C038E000C5D6C6A6000020000091700000000911,/* 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); 00040000000C00000002011B5E100050000000B000000020�1B5E00006000000650000000210��A210‚‚ÁFFFF��0‚A00000 10ÂÁ ‚‚Á‚10�A30�‚‚ÁFFFF��0‚A00000 10ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚00080000012D0000000240,Geneva40,4030 1040,Monaco40,4040 10000900000017000000023‚25A25D3‚25A25D000A00000017000000026‚C6A2226‚C6A222000B00000005000000020Â000C000000150000000115C0‚‚95F6360‚�000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,4, î+4,ÿÿÿ4,T4,ÿÿÿ4,tool00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿ùÀÑÀ%8)X\=ݪM ô!xR­FFFF000000060001001777AA000000000074000000001001710000001-7F7F6FBE1800000‚‚4800480621FF200��-1‚0Â21630Â6‚21FF222FFFF��0‚‚10‚‚3‚4B2700001000002620000000909BA40840�‚�‚6‚3EF22298703CC0003E263EF10B09BA122240840�‚�‚3EF687422284C03C800086760874EC012221A6540840�‚�‚8746CC522282C03C8000CB818CC5AE01A65229C40840�‚�‚CC5610C822281703C800010BB6010C8F50229C2AAD40840�‚�‚10C8614972227EA03C8000148A301497EA02AAD32E440840�‚�‚1497618732227F203C8000186630187317E032E43AFE40840�‚�‚187361B242227CF03CE0001B1761B2415C03AFE414740840�‚�‚1B2461D6022260003C80001D53301D601A6041474B2740840�‚�‚1D60621FF2229E0038E00021F2621FF600002000009C0000000009BA,// // 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"); 00040000000B000000020�4B29000050000000B000000020�4B290000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 20ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000015000000023‚9C17D3‚9C17D000A00000019000000026‚21FF2226‚21FF222000B00000005000000020Â000C0000000F000000014B270Â�‚‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,4,4,4,77A4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AAÀ›ÀœK'(t×R)R­oFFFF000000060001001777AA000000000068000000001001710000001-7F7F6FBE1800000‚‚48004806833200��-1‚0Â6‚833222FFFF��0‚‚10‚‚3‚FED000010000003A000000010FED40840�‚�‚6‚833222FEC038E0008266833B0000200000FF300000000FED,/* 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; }00040000000A000000020�FEF000050000000A000000020�FEF0000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 20ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000017000000023‚24920E3‚24920E000A00000017000000026‚8332226‚833222000B00000005000000020Â000C0000001100000001FED0ÂA15‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,4,4,ÿÿÿ4,,‹4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AAÀ¤À¤í(t„•ëo+'`ÀÇâÀÕ  + 0< EQ wƒ �› ¤° · behaviouràJ[dbXMLRPCào‹mainàÄvMochiKitàÌü%nastyInsecureUserAndPasswordJSIncludeàjl newsOutlineàpívcXMLRPCà’qxmlrpcàå*+\FFFF000000060001001777AA000000000071000000001001710000001-7EFB6FBE1800000‚‚48004806AF200��-1‚5D605D600Â6‚AF222FFFF��0‚‚10‚‚3‚1D0000100000035000000010DD40840�‚�‚6‚AF222DD038E000A26AF600002000000E200000000DD,

News as of <%now%>

<%msgtext%>
    <%feeds%>
<%buttons%>
<% theme^.utils.furtherReading() %> 000400000009000000020�DF0000500000009000000020�DF0000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 70ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000015000000023‚D818B3‚D818B000A00000015000000026‚AF2226‚AF222000B00000005000000020Â000C00000011000000011D‚‚21620‚�000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,ÿÿÿ4,EÕ»4,4, 4,þÿÿÿ4,2Ûà00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿öúPÀ!ù)ݤ �©Ø\ ”FFFF000000060001001777AA000000000078000000001001710000001-7EFF6FBE1800000‚‚48004806165200��-1‚44A45244A4520Â6‚165222FFFF��0‚‚10‚‚3‚45F000010000003A00000001048E40840�‚�‚6‚16522248D038E0001586165600002000004940000000048E, <%"
  • "%>

    <% 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("") } %>
  • 0004000000450000000C0�DB1119016711A401F1122F027D12890310131D0490000050000000A000000020�4900000600000060000000020ÁA210‚‚ÁFFFF��0‚A00000 C0ÂÁ ‚‚Á‚ÁA20�‚‚ÁFFFF��0‚900000 70ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000017000000023‚1FC2453‚1FC245000A00000017000000026‚1652226‚165222000B00000005000000020Â000C0000001C0000000145F45B‚13510B5411E‚0000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,gif4,reÓ.4, 8:44,lÏú4,4,esti00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿öúPÀ!öÇOŽÉwØÏ  ” ´FFFF000000060001001777AA000000000078000000001001710000001-7EFE6FBE1800000‚‚48004806172200��-1‚3103223103220Â6‚172222FFFF��0‚‚10‚‚3‚43E000010000003800000001049D840�‚�‚6‚17222249D038E0001656172600002000004A30000000049D, <%"
  • "%>

    <% 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("") } %>
  • 0004000000450000000C0�DB1119016711A401F1122F027D12890310131D049F000050000000A000000020�49F0000600000060000000020ÁA210‚‚ÁFFFF��0‚A00000 C0ÂÁ ‚‚Á‚ÁA20�‚‚ÁFFFF��0‚900000 70ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000017000000023‚1FC2453‚1FC245000A00000017000000026‚1722226‚172222000B00000005000000020Â000C0000002F0000000243E‚‚1357C5476‚0473‚‚1381855417E‚0000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,gif4,reÓ.4, 8:44,lÏú4,4,esti00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿öúPÀ ý¾J�È×q 0 ´�FFFF000000060001001777AA000000000071000000001001710000001-7EFE6FBE1800000‚‚4800480688200��-1‚9EA79EA70Â6‚88222FFFF��0‚‚10‚‚3‚C2000010000003600000001010540840�‚�‚6‚88222FC038E0007B6886000020000010B00000000105,
  • <%""%><%globeimg%> <%feed.title%> <%""%><%xmlimg%>

      <%feed.entries%>
  • 00040000000A000000020�107000050000000A000000020�1070000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 30ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000015000000023‚E91AC3‚E91AC000A00000015000000026‚882226‚88222000B00000005000000020Â000C0000001800000001C2BE‚331D9C186‚0000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4, 8:44,s4,smEx4,keÓ.4,pmEx4,pmEx00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿öúPÀðzð¯ � ‡ýGeneva ¶FûÀ!ù!Yq¦'ŒLANDÿÿÿÿÿÿmac 0xDECAFBAD newsRiver: <%title%> <%metaTags ()%>

    0xDECAFBAD newsRiver: <%title%>

    <%bodytext%> €€€€€WdatatablGÀØ]ÀØ] createdSat, 11 Feb 2006 04:55:09 GMT€WdatatablG¿öˆé¿öˆé createdFri, 20 Jan 2006 17:32:41 GMT€WdatatablG¿ø…a¿ø…a createdSun, 22 Jan 2006 05:42:09 GMT€WdatatablGÀØFÀØF createdSat, 11 Feb 2006 04:54:46 GMT€WdatatablG¿ö‰¿ö‰ createdFri, 20 Jan 2006 17:33:21 GMT€WdatatablG¿ö‰¿ö‰ createdFri, 20 Jan 2006 17:33:21 GMT€WdatatablG¿ö‰¿ö‰ createdFri, 20 Jan 2006 17:33:21 GMT€WdatatablG¿ø…M¿ø…M createdSun, 22 Jan 2006 05:41:49 GMT€WdatatablG¿ø‡G¿ø‡G createdSun, 22 Jan 2006 05:50:15 GMT€WdatatablG¿ö‰¿ö‰ createdFri, 20 Jan 2006 17:33:21 GMT€WdatatablG¿ø…]¿ø…] createdSun, 22 Jan 2006 05:42:05 GMT€€WdatatablGÀ!ùÀ!ù createdWed, 22 Feb 2006 16:18:43 GMT€€€€WdatatablG¿–o¿–o createdTue, 08 Nov 2005 16:59:27 GMT€€WdatatablG¿÷=º¿÷=º createdSat, 21 Jan 2006 06:24:10 GMT€WdatatablG¿÷=Ì¿÷=Ì createdSat, 21 Jan 2006 06:24:28 GMT€WdatatablG¿÷=È¿÷=È createdSat, 21 Jan 2006 06:24:24 GMT€€ ‡¬BÀÄ^Àû  ' 4@ IU ZnewsàúÜ newsEntryàD newsEntry #1à änewsFeedà¤pageà?VGeneva ³|3RJèÚ� 2åGeneva ÀìåÀî­H%§LANDÿÿÿÿÿÿmac 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 €WdatatablGÀí2Àí2 createdSat, 11 Feb 2006 06:24:02 GMTWdatatablG¿ù9ˆ¿ù9ˆ createdSun, 22 Jan 2006 18:30:48 GMTWdatatablG¿ù9—¿ù9— createdSun, 22 Jan 2006 18:31:03 GMTWdatatablGÀí4Àí4 createdSat, 11 Feb 2006 06:24:04 GMTWdatatablGÀî Àî createdSat, 11 Feb 2006 06:27:39 GMT€WdatatablGÀí6Àí6 createdSat, 11 Feb 2006 06:24:06 GMTWdatatablGÀí9Àí9 createdSat, 11 Feb 2006 06:24:09 GMT€WdatatablG¿zœ±¿zœ± createdTue, 18 Oct 2005 19:36:01 GMT€WdatatablGÀí?Àí? createdSat, 11 Feb 2006 06:24:15 GMT€WdatatablG¿ù½¥¿ù½¥ createdMon, 23 Jan 2006 03:54:29 GMT€WdatatablG¿™û¿™û 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 GMTWdatatablGÀkšÀkš createdFri, 10 Feb 2006 02:58:50 GMTWdatatablGÀr^Àr^ createdFri, 10 Feb 2006 03:27:42 GMTWdatatablG¿ú0ÿú0à createdMon, 23 Jan 2006 12:05:39 GMTWdatatablG¿ú0Ì¿ú0Ì createdMon, 23 Jan 2006 12:05:48 GMTWdatatablG¿ú0Ñ¿ú0Ñ createdMon, 23 Jan 2006 12:05:53 GMTWdatatablG¿ú0Ò¿ú0Ò createdMon, 23 Jan 2006 12:05:54 GMTWdatatablGÀjÉÀjÉ createdFri, 10 Feb 2006 02:55:21 GMTWdatatablGÀk³Àk³ createdFri, 10 Feb 2006 02:59:15 GMTWdatatablGÀl]Àl] createdFri, 10 Feb 2006 03:02:05 GMTWdatatablGÀlcÀlc createdFri, 10 Feb 2006 03:02:11 GMTWdatatablGÀjÉÀjÉ createdFri, 10 Feb 2006 02:55:21 GMTWdatatablGÀk³Àk³ createdFri, 10 Feb 2006 02:59:15 GMTWdatatablGÀk“Àk“ 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 GMTWdatatablGÀjèÀjè createdFri, 10 Feb 2006 02:55:52 GMTWdatatablG¿ù½ó¿ù½ó createdMon, 23 Jan 2006 03:55:47 GMT€WdatatablG¿ù½Ø¿ù½Ø createdMon, 23 Jan 2006 03:55:20 GMT€WdatatablGÀíMÀíM createdSat, 11 Feb 2006 06:24:29 GMT�äsùGeneva ÀìåÀ"¥þ<›úLANDÿÿÿÿÿÿmac 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 GMT€WdatatablGÀí2Àí2 createdSat, 11 Feb 2006 06:24:02 GMT€WdatatablG¿ù9—¿ù9— createdSun, 22 Jan 2006 18:31:03 GMT€WdatatablGÀ!ô”À!ô” createdWed, 22 Feb 2006 15:59:32 GMT€WdatatablGÀí4Àí4 createdSat, 11 Feb 2006 06:24:04 GMT€WdatatablGÀí6Àí6 createdSat, 11 Feb 2006 06:24:06 GMTWdatatablGÀí9Àí9 createdSat, 11 Feb 2006 06:24:09 GMT€WdatatablGÀ!ôªÀ!ôª createdWed, 22 Feb 2006 15:59:54 GMT€WdatatablGÀ!ôØÀ!ôØ createdWed, 22 Feb 2006 16:00:40 GMT€WdatatablGÀ!ôÛÀ!ôÛ createdWed, 22 Feb 2006 16:00:43 GMT€WdatatablGÀ!ôÞÀ!ôÞ createdWed, 22 Feb 2006 16:00:46 GMT€WdatatablGÀíMÀíM createdSat, 11 Feb 2006 06:24:29 GMT€WdatatablGÀ!õ™À!õ™ createdWed, 22 Feb 2006 16:03:53 GMT€WdatatablGÀ!õŸÀ!õŸ createdWed, 22 Feb 2006 16:03:59 GMT€WdatatablGÀ!õÁÀ!õÁ createdWed, 22 Feb 2006 16:04:33 GMTä(šGeneva À!ù3À"¥ïc’аLANDÿÿÿÿÿÿmac 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 GMT€WdatatablGÀí2Àí2 createdSat, 11 Feb 2006 06:24:02 GMT€WdatatablG¿ù9—¿ù9— createdSun, 22 Jan 2006 18:31:03 GMT€WdatatablGÀ!ô”À!ô” createdWed, 22 Feb 2006 15:59:32 GMT€WdatatablGÀí4Àí4 createdSat, 11 Feb 2006 06:24:04 GMT€WdatatablGÀí6Àí6 createdSat, 11 Feb 2006 06:24:06 GMTWdatatablGÀí9Àí9 createdSat, 11 Feb 2006 06:24:09 GMT€WdatatablGÀ!ôªÀ!ôª createdWed, 22 Feb 2006 15:59:54 GMT€WdatatablGÀ!ôØÀ!ôØ createdWed, 22 Feb 2006 16:00:40 GMT€WdatatablGÀ!ù†À!ù† createdWed, 22 Feb 2006 16:20:38 GMT€WdatatablGÀ!ôØÀ!ôØ createdWed, 22 Feb 2006 16:00:40 GMT€WdatatablGÀíMÀíM createdSat, 11 Feb 2006 06:24:29 GMT€WdatatablGÀ!õ™À!õ™ createdWed, 22 Feb 2006 16:03:53 GMT€WdatatablGÀ!õÁÀ!õÁ createdWed, 22 Feb 2006 16:04:33 GMT(}y.ÀìÂÀ!ù3  '3 ;furtherReadingà$ä itemContentà7prefsJSà?o}¬¸L¿ù?zÀì   %1 4@ JV \css ,himg FÜinfo I¡js ù¥ templates #Òutils F£V Lucida GrandeÈ„2@8NäXÊGeneva À ªÀ ª%'?ïÀLANDÿÿÿÿÿÿmac css img info js behaviour dbXMLRPC main MochiKit nastyInsecureUserAndPasswordJSInclude newsOutline vcXMLRPC xmlrpc templates news newsEntry newsEntry #1 newsFeed page utils furtherReading €| |€| |€| |€| |€| Є€| Є€| Є€| Є€| Є€| Є€| Є€| Є€| |€| Ñ(€| Ñ(€| Ñ(€| Ñ(€| Ñ(€| |€| |<¬í4AGeneva ¿ö�£¿ö’ÝÛ£�LANDÿÿÿÿÿÿmac /* Main CSS */ body, td, p, div, li { font: 11px arial; } €WdatatablG¿ö�§¿ö�§ createdFri, 20 Jan 2006 18:05:43 GMT€WdatatablG¿ö�¬¿ö�¬ createdFri, 20 Jan 2006 18:05:48 GMT€WdatatablG¿ö’;¿ö’; createdFri, 20 Jan 2006 18:12:27 GMT€WdatatablG¿ö�¹¿ö�¹ createdFri, 20 Jan 2006 18:06:01 GMT€WdatatablG¿ö�³¿ö�³ createdFri, 20 Jan 2006 18:05:55 GMT€WdatatablG¿ö‘¸¿ö‘¸ createdFri, 20 Jan 2006 18:10:16 GMTí[FFFF000000060001001777AA00000000007C000000001001710000001-7EFF6FBE1800000‚‚48004806B8A200��-1‚1D21D71D21D76280Â6‚B8A222FFFF��0‚‚10‚‚3‚8AC000010000007600000002074E840�‚�‚6‚4EC22273302CE0004E164ECA2074E1408840�‚�‚4EC6B8A222CBA028E000B7F6B8A600002000007540000000074E,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; } 00040000000C0000000201140A100050000000B000000020�140A00006000000650000000210��A210‚‚ÁFFFF��0‚A00000 10ÂÁ ‚‚Á‚20�920�‚‚ÁFFFF��0‚900000 10ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000001C40000000340,Geneva40,4030 1040, Helvetica40,40150 1040,Monaco40,4040 10000900000017000000023‚21B2453‚21B245000A00000017000000026‚B8A2226‚B8A222000B00000005000000020Â000C0000001500000001787‚‚512E136‚2000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,s4,s4,keÓ.4, 4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿÷°À =.U™ƒñ×[UQ$ÀÄiÀÒ-  mainàKä newsOutlineàNÝU¥GIF89a÷àÿÿÿýýýêêêëëëèèèùùùÓÓÓûûûõõõçççóóóøøø÷÷÷úúúüüüÌÌÌïïïöööËËËþþþéééîîîBBBÙÙÙñññ¯¯¯‰‰‰ÞÞÞÏÏÏ&&&³³³ðððÒÒÒôôô···ÚÚÚÛÛÛ���£££kkkÐÐЬ¬¬ÍÍÍ­­­«««½½½ìììÎÎÎáááòòòºººwww   ���€€€dddbbbÃÃÃÇÇLJ‡‡àààŸŸŸ¢¢¢ˆˆˆooo§§§×××ÀÀÀåååÝÝÝííí```™™™“““ßßßEEEæææ444ØØØ„„„äää®®®ÜÜÜ???ggg›››ÈÈȹ¹¹ššš!!!ÄÄÄ---°°°ŒŒŒÕÕÕÑÑÑ\\\ãããIII<<†˜ º busy_animÿÿÿÿi¥outline_collapsedFGIF89a ‘ÞÞÞÿÿÿ!ù, ”b©�šÜŒoJnÈ—Kï€I;outline_collapsed_altHGIF89a ñÞÞÞÿÿÿ!ù, ”/€±ÖÜŠòÐj‚Öoã³=Ù‡H;outline_expandedDGIF89a ‘ÞÞÞ­­­ÿÿÿ!ù, ”�©Ë�¢”Îx,EzAT;outline_expanded_altDGIF89a ‘ÞÞÞ­­­ÿÿÿ!ù, ”�©Ë�¢”Îx,EzAT;snake_transparentÿÿÿÿrVsnake_transparent_smallerÿÿÿÿ{VGeneva ÈÞ=_Å}ÖvÀ¼8ÀÈäÀê,  "; Gl qauthor l.m.orchard authorEmaill.m.orchard@pobox.com description!Another random experimental themename play2 themeÀ%$FFFF000000060001001777AA000000000071000000001001710000001-7F7F6FBE1800000‚‚48004806D20200��-1‚0ÂC840Â6‚D20222FFFF��0‚‚10‚‚3‚1FE400001000000BD00000003090E40840�‚�‚6‚51A2228CE03CE00050D651A152090E11CC40840�‚�‚51A683322285D03CE00082668331F0011CC1FE440840�‚�‚8336D20222E18038E000D136D20600002000009140000000090E,/* 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 */ 00040000000B000000020�1FE6000050000000B000000020�1FE60000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 20ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000015000000023‚9C17D3‚9C17D000A00000017000000026‚D202226‚D20222000B00000005000000020Â000C0000000F000000011FE40Â�‚‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,TÚ«4,77A4,4,4,4,æææØ4,ëëëÞ00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AAÀÃ2ÀÃ2ä(t×$ %$TßFFFF000000060001001777AA000000000074000000001001710000001-7F7F6FBE1800000‚‚48004806231D200��-1‚0Â22810Â6‚231D222FFFF��0‚‚10‚‚3‚4D59000010000026200000009099B40840�‚�‚6‚3EF22296803CC0003E263EF10B099B120440840�‚�‚3EF683322284703CE0008266833A0012041A5E40840�‚�‚8336CD222281A03C8000CC548CD218A01A5E228440840�‚�‚CD2610C82227F603C800010BB6010C813D022842AA240840�‚�‚10C8614D82227FB03C800014CB3014D8D702AA232AD40840�‚�‚14D8618732227F303C800018661818738D032AD3AC640840�‚�‚187361B992227D403CC0001B8C61B9917203AC641E440840�‚�‚1B9961DFC2226F003C80001DEF481DFC12C041E44D5940840�‚�‚1DFC6231D222B75038E00023106231D600002000009A10000000099B,// // 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"); 00040000000B000000020�4D5B000050000000B000000020�4D5B0000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 20ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000015000000023‚9C17D3‚9C17D000A00000019000000026‚231D2226‚231D222000B00000005000000020Â000C0000000F000000014D590Â�‚‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,3[4,4,4,4,4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AAÀÃ'ÀÃ'MY(t×T[TßzFFFF000000060001001777AA000000000068000000001001710000001-7E7F6FBE1800000‚‚48004806201200��-1‚0Â6‚201222FFFF��0‚‚10‚‚3‚328000010000003A00000001032840840�‚�‚6‚201222328038E0001F462016000020000032E00000000328,/* 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; */ 00040000000B000000020132A100050000000A000000020�32A00006000000650000000210��A210‚‚ÁFFFF��0‚A00000 10ÂÁ ‚‚Á‚10�A30�‚‚ÁFFFF��0‚A00000 10ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚00080000012D0000000240,Geneva40,4030 1040,Monaco40,4040 10000900000017000000023‚2712C13‚2712C1000A00000017000000026‚2012226‚201222000B00000005000000020Â000C0000001700000001325‚‚1ED9D2696‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4, 1:04,4,4,+4, 4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿ö�)¿øx’(^ºâŽöz�dFFFF000000060001001777AA00000000006C000000001001710000001-7F7F6FBE1800000‚‚48004806DA55200��-1‚0Â6‚DA55222FFFF��0‚‚10‚‚3‚187450000100000D0700000030091140840�‚�‚6‚6932228E903CE0006866693E8091111AE40840�‚�‚6936C1C22289003CE000C0F6C1C43011AE1A1D40840�‚�‚C1C6117E22284503CE00011716117EE601A1D225B40840�‚�‚117E6176F22283403CE00017626176F350225B2A7A40840�‚�‚176F61C762227FA03CE0001C6961C76C502A7A32AE40840�‚�‚1C766220C22280903CE00021FF6220CDB032AE3AAD40840�‚�‚220C6276E2227F003CE00027616276E4B03AAD42BB40840�‚�‚276E62A532227FE03CE0002A4662A5359042BB4ABE40840�‚�‚2A5362D6C2227E003CE0002D5F62D6CB204ABE52BF40840�‚�‚2D6C632CE2227DE03CE00032C1632CEAA052BF5ACA40840�‚�‚32CE637EF2227F203CE00037E2637EF8205ACA62C440840�‚�‚37EF63D9F2227DF03CE0003D9263D9F84062C46AD840840�‚�‚3D9F643C42227F603CE00043B7643C49B06AD872CE40840�‚�‚43C46498E22279403CE00049816498E1F8072CE7AC740840�‚�‚498E64C662227CE03CE0004C5964C66DF07AC782F440840�‚�‚4C66650352227F403CE00050286503512C082F48AEC40840�‚�‚5035653A922279903CC000539C653A921408AEC92F940840�‚�‚53A9657442227B903CE0005737657441C0092F99AFC40840�‚�‚574465AF92227CD03CE0005AEC65AF912B09AFCA2F640840�‚�‚5AF965F7E2227D703CE0005F7165F7EC50A2F6AAEE40840�‚�‚5F7E663B52227AA03CC00063A8663B518D0AAEEB2E240840�‚�‚63B5668542227E003CE000684766854690B2E2BAE540840�‚�‚685466D272227E903CE0006D1A66D278B0BAE5C2E640840�‚�‚6D27672D72227E403CE00072CA672D7980C2E6CAEB40840�‚�‚72D7676992227DA03CE000768C67699EF0CAEBD2F040840�‚�‚7699679B22227E803CE00079A5679B29B0D2F0DAEF40840�‚�‚79B267E922227E303CE0007E8567E92950DAEFE2D840840�‚�‚7E92683F42227DC03CE00083E7683F4420E2D8EAE740840�‚�‚83F4689702227E303CE000896368970FB0EAE7F2D340840�‚�‚897068D8D2227C403CE0008D8068D8DD50F2D3FAC440840�‚�‚8D8D6927A2227EE03CE000926D6927AF0FAC4102D540840�‚�‚927A697332227F203CE000972669733AA0102D510ADE40840�‚�‚973369BAB2227E903CE0009B9E69BABB2010ADE112CE40840�‚�‚9BAB69F122227D203CE0009F0569F12A20112CE11AF940840�‚�‚9F126A2932227CF03CC000A2866A2931E6011AF91230440840�‚�‚A2936A74C2227D103CE000A73F6A74C14001230412AF340840�‚�‚A74C6AAC02227C403CE000AAB36AAC0EB012AF31330240840�‚�‚AAC06AEEA2227E303CE000AEDD6AEEAEB01330213AEA40840�‚�‚AEEA6B2ED2227C903CE000B2E06B2ED9D013AEA142D540840�‚�‚B2ED6B7652227E103CE000B7586B765350142D514AE840840�‚�‚B7656BF372227EA03CE000BF2A6BF37E3014AE8152D840840�‚�‚BF376C3A22227E503CC000C3956C3A2390152D815EBB40840�‚�‚C3A26C54F222BDE03CC000C5426C54F1B015EBB1653740840�‚�‚C54F6C87522267203CE000C8686C8753301653716C6640840�‚�‚C8756CB4022270803CE000CB336CB40E1016C66173D140840�‚�‚CB406CF8422275403CE000CF776CF84830173D117B3F40840�‚�‚CF846D43022274203CE000D4236D430E1017B3F1874540840�‚�‚D4306DA55222C06038E000DA486DA556000020000091700000000911,/*** 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); } } })(); } 00040000000C000000020�18747000050000000C000000020�187470000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 20ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000015000000023‚9C17D3‚9C17D000A00000019000000026‚DA552226‚DA55222000B00000005000000020Â000C0000001300000001187450Â790‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,4,4,4,4,4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AAÀ‡Àˆ‡E(tלà�du] Geneva ¿ø„O¿ùt+Å¢�LANDÿÿÿÿÿÿmac 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 GMT€WdatatablG¿ø…p¿ø…p createdSun, 22 Jan 2006 05:42:24 GMT€WdatatablG¿ø†4¿ø†4 createdSun, 22 Jan 2006 05:45:40 GMT€WdatatablG¿ø…s¿ø…s createdSun, 22 Jan 2006 05:42:27 GMT€WdatatablG¿ø…k¿ø…k createdSun, 22 Jan 2006 05:42:19 GMT€WdatatablG¿ø„_¿ø„_ createdSun, 22 Jan 2006 05:37:51 GMT€WdatatablG¿ø„c¿ø„c createdSun, 22 Jan 2006 05:37:55 GMTWdatatablG¿ø„g¿ø„g createdSun, 22 Jan 2006 05:37:59 GMT€€€€WdatatablG¿ø„t¿ø„t createdSun, 22 Jan 2006 05:38:12 GMTu/FFFF000000060001001777AA000000000068000000001001710000001-7EFB6FBE1800000‚‚4800480695E200��-1‚0Â6‚95E222FFFF��0‚‚10‚‚3‚254000010000007900000002076040840�‚�‚6‚35322273403CE00034663531080760137F840�‚�‚353695E222C1F038E000951695E6000020000076600000000760,/* 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); 00040000000C00000002011381100050000000B000000020�138100006000000650000000210��A210‚‚ÁFFFF��0‚A00000 10ÂÁ ‚‚Á‚10�A30�‚‚ÁFFFF��0‚A00000 10ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚00080000012D0000000240,Geneva40,4030 1040,Monaco40,4040 10000900000017000000023‚2602563‚260256000A00000017000000026‚95E2226‚95E222000B00000005000000020Â000C0000001A00000001254251‚1324E175A‚0000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,4, î+4,ÿÿÿ4,T4,ÿÿÿ4,tool00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿ùÀÑÀÚX;ß®H«/R­FFFF000000060001001777AA000000000074000000001001710000001-7F7F6FBE1800000‚‚4800480621FF200��-1‚0Â21630Â6‚21FF222FFFF��0‚‚10‚‚3‚4B2700001000002620000000909BA40840�‚�‚6‚3EF22298703CC0003E263EF10B09BA122240840�‚�‚3EF687422284C03C800086760874EC012221A6540840�‚�‚8746CC522282C03C8000CB818CC5AE01A65229C40840�‚�‚CC5610C822281703C800010BB6010C8F50229C2AAD40840�‚�‚10C8614972227EA03C8000148A301497EA02AAD32E440840�‚�‚1497618732227F203C8000186630187317E032E43AFE40840�‚�‚187361B242227CF03CE0001B1761B2415C03AFE414740840�‚�‚1B2461D6022260003C80001D53301D601A6041474B2740840�‚�‚1D60621FF2229E0038E00021F2621FF600002000009C0000000009BA,// // 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"); 00040000000B000000020�4B29000050000000B000000020�4B290000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 20ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000015000000023‚9C17D3‚9C17D000A00000019000000026‚21FF2226‚21FF222000B00000005000000020Â000C0000000F000000014B270Â�‚‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,4,4,4,77A4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AAÀ›ÀœK'(t×R)R­oFFFF000000060001001777AA000000000068000000001001710000001-7F7F6FBE1800000‚‚48004806833200��-1‚0Â6‚833222FFFF��0‚‚10‚‚3‚FED000010000003A000000010FED40840�‚�‚6‚833222FEC038E0008266833B0000200000FF300000000FED,/* 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; }00040000000A000000020�FEF000050000000A000000020�FEF0000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 20ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000017000000023‚24920E3‚24920E000A00000017000000026‚8332226‚833222000B00000005000000020Â000C0000001100000001FED0ÂA15‚1000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,4,4,ÿÿÿ4,,‹4,4,00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AAÀ¤À¤í(t„•ëo+'`ÀÇâÀÕ  + 0< EQ wƒ �› ¤° · behaviourà‡dbXMLRPCà¬6mainà!MochiKità §%nastyInsecureUserAndPasswordJSIncludeà§ newsOutlineà­˜vcXMLRPCàÆÓxmlrpcàŒ+fFFFF000000060001001777AA000000000071000000001001710000001-7EFB6FBE1800000‚‚48004806BC200��-1‚5D605D600Â6‚BC222FFFF��0‚‚10‚‚3‚110000100000035000000010E340840�‚�‚6‚BC222E2038E000AF6BC600002000000E800000000E3,

    News as of <%now%>

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

    Further Reading

    <%readingLists%> 000400000009000000020�E50000500000009000000020�E50000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 70ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000015000000023‚CE2393‚CE239000A00000015000000026‚BC2226‚BC222000B00000005000000020Â000C0000001500000001116D‚3B605B‚0000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,ÿÿÿ4,EÕ»4,4, 4,þÿÿÿ4,2Ûà00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿öúPÀ ü�ãѦ²òâf žFFFF000000060001001777AA000000000078000000001001710000001-7EFF6FBE1800000‚‚48004806172200��-1‚3103223103220Â6‚172222FFFF��0‚‚10‚‚3‚104000010000003A00000001049D40840�‚�‚6‚17222249D038E0001656172600002000004A30000000049D, <%"
  • "%>

    <% 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("") } %>
  • 0004000000450000000C0�DB1119016711A401F1122F027D12890310131D049F000050000000A000000020�49F00006000000620000000210��A210‚‚ÁFFFF��0‚A00000 C0ÂÁ ‚‚Á‚ÁA20�‚‚ÁFFFF��0‚900000 70ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000017000000023‚1FC2453‚1FC245000A00000017000000026‚1722226‚172222000B00000005000000020Â000C0000001500000001104‚‚4F222190‚�000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4,gif4,reÓ.4, 8:44,lÏú4,4,esti00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿öúPÀ ý¾H�Ðkßà  žQFFFF000000060001001777AA000000000071000000001001710000001-7EFB6FBE1800000‚‚4800480695200��-1‚939493940Â6‚95222FFFF��0‚‚10‚‚3‚320000100000035000000010CD40840�‚�‚6‚95222C3038E00088695600002000000D200000000CD,
  • <%globeimg%> <%""%><%feed.title%> <%xmlimg%>

      <%feed.entries%>
  • 000400000009000000020�CF0000500000009000000020�CF0000600000032000000010ÁA210‚‚ÁFFFF��0‚A00000 30ÂÁ ‚‚Á‚000700000019000000010��Â�‚20Â�180‚Á‚0008000000970000000140,Geneva40,4030 10000900000015000000023‚D923D3‚D923D000A00000015000000026‚952226‚95222000B00000005000000020Â000C0000001600000001323A‚375E849‚0000F0000005200000000400 10 ��‚��ÂÁÂÁ‚‚ÁÂ4,77A4, 8:44,s4,smEx4,keÓ.4,pmEx4,pmEx00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF��0FFFF��0FFFE000000060001001777AA¿öúPÀ ü¢Í ¥öõÍQ د± Geneva ¶FûÀÛ�Z78íLANDÿÿÿÿÿÿmac 0xDECAFBAD newsRiver: <%title%> <%metaTags ()%>

    0xDECAFBAD newsRiver: <%title%>

    <%bodytext%> €€€€€WdatatablGÀØ]ÀØ] createdSat, 11 Feb 2006 04:55:09 GMT€WdatatablG¿öˆé¿öˆé createdFri, 20 Jan 2006 17:32:41 GMT€WdatatablG¿ø…a¿ø…a createdSun, 22 Jan 2006 05:42:09 GMT€WdatatablGÀØFÀØF createdSat, 11 Feb 2006 04:54:46 GMT€WdatatablG¿ö‰¿ö‰ createdFri, 20 Jan 2006 17:33:21 GMT€WdatatablG¿ö‰¿ö‰ createdFri, 20 Jan 2006 17:33:21 GMT€WdatatablG¿ö‰¿ö‰ createdFri, 20 Jan 2006 17:33:21 GMT€WdatatablG¿ø…M¿ø…M createdSun, 22 Jan 2006 05:41:49 GMT€WdatatablG¿ø‡G¿ø‡G createdSun, 22 Jan 2006 05:50:15 GMT€WdatatablG¿ö‰¿ö‰ createdFri, 20 Jan 2006 17:33:21 GMT€WdatatablG¿ø…]¿ø…] createdSun, 22 Jan 2006 05:42:05 GMT€€€€WdatatablG¿–o¿–o createdTue, 08 Nov 2005 16:59:27 GMT€€WdatatablG¿÷=º¿÷=º createdSat, 21 Jan 2006 06:24:10 GMT€WdatatablG¿÷=Ì¿÷=Ì createdSat, 21 Jan 2006 06:24:28 GMT€WdatatablG¿÷=È¿÷=È createdSat, 21 Jan 2006 06:24:24 GMT€€ Ø‘�8ÀÄ^ÀÛË  + 4@ EnewsBodyà/> newsEntryà4°newsFeedà>ZpageàC·‘ œB¿ù?zÀÖ(   %1 4@ Jcss iDimg ƒ¸info †:js . templates M› RN$¿öí7ÀèÖ  default`G,play2`N8R�Œ8¿÷üÀà2  & 1= Denglish _prefs ü systemUrls ;themesNä�³5Geneva ÀqìÀr'?ïÀLANDÿÿÿÿÿÿmac Gather all items by feed, rather than intertwingling €³&JÀ  Geneva >¸¦ À%:žìƒE ïLANDÿÿÿÿÿÿmac 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 GMT€WdatatablGÀ%:)À%:) createdSat, 25 Feb 2006 03:33:13 GMT€WdatatablGÀ%:9À%:9 createdSat, 25 Feb 2006 03:33:29 GMT€WdatatablGÀ%:cÀ%:c createdSat, 25 Feb 2006 03:34:11 GMT€WdatatablGÀ%:9À%:9 createdSat, 25 Feb 2006 03:33:29 GMT€WdatatablGÀ%:uÀ%:u createdSat, 25 Feb 2006 03:34:29 GMT€WdatatablGÀ%:9À%:9 createdSat, 25 Feb 2006 03:33:29 GMT€WdatatablGÀ%:uÀ%:u createdSat, 25 Feb 2006 03:34:29 GMT€WdatatablGÀ%:9À%:9 createdSat, 25 Feb 2006 03:33:29 GMT€WdatatablGÀ%:‹À%:‹ createdSat, 25 Feb 2006 03:34:51 GMT€WdatatablGÀ%:9À%:9 createdSat, 25 Feb 2006 03:33:29 GMT€WdatatablGÀ%:uÀ%:u createdSat, 25 Feb 2006 03:34:29 GMT€WdatatablGÀ"¦+À"¦+ createdThu, 23 Feb 2006 04:37:15 GMT€WdatatablGÀ"¦1À"¦1 createdThu, 23 Feb 2006 04:37:21 GMT€WdatatablGÀ ýÀ ý createdTue, 21 Feb 2006 05:06:21 GMT€WdatatablGÀ À  createdTue, 21 Feb 2006 05:06:25 GMT€WdatatablGÀûôÀûô createdSat, 11 Feb 2006 07:27:00 GMT€WdatatablGÀûùÀûù createdSat, 11 Feb 2006 07:27:05 GMT€WdatatablGÀø¨Àø¨ createdSat, 11 Feb 2006 07:12:56 GMT€WdatatablGÀø¬Àø¬ createdSat, 11 Feb 2006 07:13:00 GMT€WdatatablGÀÜ>ÀÜ> createdSat, 11 Feb 2006 05:11:42 GMT€WdatatablGÀÜRÀÜR createdSat, 11 Feb 2006 05:12:02 GMT€WdatatablGÀòƒÀòƒ createdSat, 11 Feb 2006 06:46:43 GMT€WdatatablGÀÆÀÆ createdFri, 10 Feb 2006 15:17:42 GMT€WdatatablGÀËÀË createdFri, 10 Feb 2006 15:17:47 GMT€WdatatablGÀ þøÀ þø createdSun, 05 Feb 2006 06:01:44 GMT€WdatatablGÀ þýÀ þý createdSun, 05 Feb 2006 06:01:49 GMT€WdatatablGÀnÈÀnÈ createdFri, 10 Feb 2006 03:12:24 GMT€WdatatablGÀ ýëÀ ýë createdSun, 05 Feb 2006 05:57:15 GMT€WdatatablGÀ ýîÀ ýî createdSun, 05 Feb 2006 05:57:18 GMT€WdatatablG¿ú¢ß¿ú¢ß createdMon, 23 Jan 2006 20:12:31 GMT€WdatatablG¿ú¢ä¿ú¢ä createdMon, 23 Jan 2006 20:12:36 GMT€WdatatablG¿ú2Z¿ú2Z createdMon, 23 Jan 2006 12:12:26 GMT€WdatatablG¿ú2`¿ú2` createdMon, 23 Jan 2006 12:12:32 GMT€WdatatablG¿ú¢ ¿ú¢ createdMon, 23 Jan 2006 20:09:01 GMT€WdatatablG¿ú¢1¿ú¢1 createdMon, 23 Jan 2006 20:09:37 GMT€WdatatablG¿ùφ¿ùφ createdMon, 23 Jan 2006 05:10:46 GMT€WdatatablG¿ùÏ‹¿ùÏ‹ createdMon, 23 Jan 2006 05:10:51 GMT€WdatatablG¿ùÛ¿ùÛ createdMon, 23 Jan 2006 04:19:55 GMT€WdatatablG¿ùÃU¿ùÃU createdMon, 23 Jan 2006 04:18:45 GMT€WdatatablG¿ù=ï¿ù=ï createdSun, 22 Jan 2006 18:49:35 GMT€WdatatablG¿ù=õ¿ù=õ createdSun, 22 Jan 2006 18:49:41 GMT€WdatatablG¿ù?È¿ù?È createdSun, 22 Jan 2006 18:57:28 GMT€WdatatablG¿ùta¿ùta createdSun, 22 Jan 2006 22:41:53 GMT€WdatatablG¿ø�s¿ø�s createdSun, 22 Jan 2006 06:25:07 GMT€WdatatablG¿ø�{¿ø�{ createdSun, 22 Jan 2006 06:25:15 GMT€WdatatablG¿ø‹Ø¿ø‹Ø createdSun, 22 Jan 2006 06:09:44 GMT€WdatatablG¿øŠ[¿øŠ[ createdSun, 22 Jan 2006 06:03:23 GMT€WdatatablG¿ø‹)¿ø‹) createdSun, 22 Jan 2006 06:06:49 GMT€WdatatablG¿øŠ˜¿øŠ˜ createdSun, 22 Jan 2006 06:04:24 GMT€WdatatablG¿øŠù¿øŠù createdSun, 22 Jan 2006 06:06:01 GMT€WdatatablG¿ø‹|¿ø‹| createdSun, 22 Jan 2006 06:08:12 GMT€WdatatablG¿øŠ ¿øŠ createdSun, 22 Jan 2006 06:02:24 GMT€WdatatablG¿øŠ5¿øŠ5 createdSun, 22 Jan 2006 06:02:45 GMT€WdatatablG¿øˆ¿øˆ createdSun, 22 Jan 2006 05:53:37 GMT€WdatatablG¿ø‹í¿ø‹í createdSun, 22 Jan 2006 06:10:05 GMT€WdatatablG¿ø‹ú¿ø‹ú createdSun, 22 Jan 2006 06:10:18 GMT€WdatatablG¿øˆ ¿øˆ createdSun, 22 Jan 2006 05:53:32 GMT€WdatatablG¿÷ßè¿÷ßè createdSat, 21 Jan 2006 17:56:08 GMT€WdatatablG¿÷ßë¿÷ßë createdSat, 21 Jan 2006 17:56:11 GMT€WdatatablG¿÷Þ•¿÷Þ• createdSat, 21 Jan 2006 17:50:29 GMT€WdatatablG¿÷Þ™¿÷Þ™ createdSat, 21 Jan 2006 17:50:33 GMT€WdatatablG¿÷Ùû¿÷Ùû createdSat, 21 Jan 2006 17:30:51 GMT€WdatatablG¿÷Ùÿ¿÷Ùÿ createdSat, 21 Jan 2006 17:30:55 GMT€WdatatablG¿÷ت¿÷ت createdSat, 21 Jan 2006 17:25:14 GMT€WdatatablG¿÷Ø®¿÷Ø® createdSat, 21 Jan 2006 17:25:18 GMT€WdatatablG¿÷Ô ¿÷Ô createdSat, 21 Jan 2006 17:05:29 GMT€WdatatablG¿÷Ô ¿÷Ô createdSat, 21 Jan 2006 17:05:32 GMT€€&Jr.¸¦Å¿ùuê  ) ‘ releaseNotes`P�releaseNotesUrlRhttp://hosting.opml.org/decafbad/decafbadNewsRiver/decafbadNewsRiver-relnotes.opmlupdateDownloadUrlQhttp://hosting.opml.org/decafbad/decafbadNewsRiver/decafbadNewsRiver-updates.fttbVGeneva p¼J–o…r�‰j¿÷À%:ë  "; 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Þ updateInfovóversion0.216� ¿÷ü¿÷Î VÀGeneva ¿÷ý¿÷ý'?ïÀLANDÿÿÿÿÿÿmac 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&,$ýßLANDÿÿÿÿÿÿmac 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 GMT†ÄŠÂVerdana ¹îÌnÀ%4ù"?|`LANDÿÿÿÿÿÿmac 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¿#8XîíLANDÿÿÿÿÿÿmac 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 ¹êïÀ%6¦4cYÞœLANDÿÿÿÿÿÿmac 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 Q‚WGeneva ¹îÎ[À%6È#¾LANDÿÿÿÿÿÿmac 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) €„€WdatatablG¿êH$¿êH$ createdWed, 11 Jan 2006 13:29:08 GMT€WdatatablG¿êH%¿êH% createdWed, 11 Jan 2006 13:29:09 GMT€€€€€€€€€€WdatatablG¿êGû¿êGû createdWed, 11 Jan 2006 13:28:27 GMT€€„WdatatablG¿êG^¿êG^ createdWed, 11 Jan 2006 13:25:50 GMTWdatatablG¿êG6¿êG6 createdWed, 11 Jan 2006 13:25:10 GMTWdatatablG¿êG¾¿êG¾ createdWed, 11 Jan 2006 13:27:26 GMTQÅÁB¿÷üÀ%9#  #/ DP [g ogetItem|xgetRecentItems getRecentItemsForSubƒÚ getSubInfo‰getSubsŽ,Å ¿÷ü¿÷ü ›Geneva ¿÷þ¿÷þ '?ïÀLANDÿÿÿÿÿÿmac This script runs every hour. „›¦ÀnGeneva ¿÷þÀ^“ 3äûeLANDÿÿÿÿÿÿmac This script runs every minute. decafbadNewsRiverSuite.init() decafbadNewsRiverSuite.updateReadingListCounts() „€WdatatablGÀi™Ài™ createdFri, 10 Feb 2006 02:50:17 GMT„WdatatablGÀnèÀnè createdFri, 10 Feb 2006 03:12:56 GMT¦œGeneva ¿÷ÿ¿÷ÿ '?ïÀLANDÿÿÿÿÿÿmac This script runs every night. „œ{w.¿÷þ¿÷ÿ  ". 9 everyHour`•† everyMinute`–- everyNight`—ß{ ¿÷ÿ¿÷ÿ ¿÷ÿ¿÷ÿ ¿÷ÿ¿÷ÿ nj.¿÷ÿ¿÷ÿ  ' ,fileMenu`™radio`™:user`™fnH¨(Geneva ÀÈÀä0¡IÈåLANDÿÿÿÿÿÿmac 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) €WdatatablGÀÈSÀÈS createdSat, 11 Feb 2006 03:46:43 GMT€WdatatablGÀÈ©ÀÈ© createdSat, 11 Feb 2006 03:48:09 GMT€€WdatatablGÀäÀä createdSat, 11 Feb 2006 05:44:54 GMT€WdatatablGÀÈ¥ÀÈ¥ createdSat, 11 Feb 2006 03:48:05 GMT€WdatatablGÀÈIÀÈI createdSat, 11 Feb 2006 03:46:33 GMT€WdatatablGÀÈ�ÀÈ� createdSat, 11 Feb 2006 03:47:57 GMT€WdatatablGÀÈjÀÈj createdSat, 11 Feb 2006 03:47:06 GMTWdatatablGÀÈsÀÈs 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 KerLANDÿÿÿÿÿÿmac 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()) €WdatatablGÀÈSÀÈS createdSat, 11 Feb 2006 03:46:43 GMT€WdatatablGÀÈ©ÀÈ© createdSat, 11 Feb 2006 03:48:09 GMT€WdatatablG¿ù9—¿ù9— createdSun, 22 Jan 2006 18:31:03 GMT€WdatatablGÀâüÀâü createdSat, 11 Feb 2006 05:40:28 GMT€WdatatablGÀâÀâ createdSat, 11 Feb 2006 05:36:33 GMT€WdatatablGÀâäÀâä createdSat, 11 Feb 2006 05:40:04 GMT€WdatatablGÀãÀã createdSat, 11 Feb 2006 05:40:48 GMT€WdatatablGÀâäÀâä createdSat, 11 Feb 2006 05:40:04 GMT€WdatatablGÀãÀã createdSat, 11 Feb 2006 05:40:48 GMT€WdatatablGÀâäÀâä createdSat, 11 Feb 2006 05:40:04 GMT€WdatatablGÀãÀã createdSat, 11 Feb 2006 05:40:48 GMT€WdatatablGÀÈ�ÀÈ� createdSat, 11 Feb 2006 03:47:57 GMT€WdatatablGÀÈjÀÈj createdSat, 11 Feb 2006 03:47:06 GMT€WdatatablGÀÈ�ÀÈ� createdSat, 11 Feb 2006 03:47:41 GMTTŽ‘…Geneva ¿öð À!ö>l2èéLANDÿÿÿÿÿÿmac 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) €€WdatatablGÀhyÀhy createdFri, 10 Feb 2006 02:45:29 GMT€WdatatablGÀâÀâ createdSat, 11 Feb 2006 05:36:38 GMT€WdatatablGÀâ;Àâ; createdSat, 11 Feb 2006 05:37:15 GMT€WdatatablGÀhéÀhé createdFri, 10 Feb 2006 02:47:21 GMT€WdatatablG¿Ùï¿Ùï createdFri, 30 Dec 2005 03:52:32 GMT€WdatatablG¿Ùï<¿Ùï< createdFri, 30 Dec 2005 03:53:32 GMT€WdatatablG¿öñ ¿öñ createdSat, 21 Jan 2006 00:56:59 GMTŽì‘ãGeneva Àç`Àé^ÕB�ÃLANDÿÿÿÿÿÿmac 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 GMT€WdatatablGÀç›Àç› createdSat, 11 Feb 2006 06:00:11 GMT€WdatatablGÀçŽÀçŽ createdSat, 11 Feb 2006 05:59:58 GMT€WdatatablGÀç»Àç» createdSat, 11 Feb 2006 06:00:43 GMT€WdatatablGÀçúÀçú createdSat, 11 Feb 2006 06:01:46 GMT€WdatatablGÀç{Àç{ createdSat, 11 Feb 2006 05:59:39 GMT€WdatatablGÀç}Àç} createdSat, 11 Feb 2006 05:59:41 GMTìÑ‘ÈGeneva Àç`Àéõ Ô+œ¬LANDÿÿÿÿÿÿmac 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 GMT€WdatatablGÀç›Àç› createdSat, 11 Feb 2006 06:00:11 GMT€WdatatablGÀçŽÀçŽ createdSat, 11 Feb 2006 05:59:58 GMT€WdatatablGÀç»Àç» createdSat, 11 Feb 2006 06:00:43 GMT€WdatatablGÀçúÀçú createdSat, 11 Feb 2006 06:01:46 GMT€WdatatablGÀç{Àç{ createdSat, 11 Feb 2006 05:59:39 GMT€WdatatablGÀç}Àç} createdSat, 11 Feb 2006 05:59:41 GMTÑבÎGeneva Àç`ÀêÕB�ÃLANDÿÿÿÿÿÿmac 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 GMT€WdatatablGÀç›Àç› createdSat, 11 Feb 2006 06:00:11 GMT€WdatatablGÀçŽÀçŽ createdSat, 11 Feb 2006 05:59:58 GMT€WdatatablGÀç»Àç» createdSat, 11 Feb 2006 06:00:43 GMT€WdatatablGÀçúÀçú createdSat, 11 Feb 2006 06:01:46 GMT€WdatatablGÀç{Àç{ createdSat, 11 Feb 2006 05:59:39 GMT€WdatatablGÀç}Àç} createdSat, 11 Feb 2006 05:59:41 GMT×®0Geneva¿Ø›g¿÷<ô)›_càLANDÿÿÿÿÿÿmac decafbadNewsRiverSuite.menuCommands.viewNews () €®¯1Geneva T¿÷×Ê¿÷×Þ'?ïÀLANDÿÿÿÿÿÿmac decafbadNewsRiverSuite.menuCommands.updateTool() €¯Û,7Geneva ¿÷ÿ¿÷Ø0…'?ïÀLANDÿÿÿÿÿÿmac DecafbadNewsRiver View News... - Get Latest Code... €€ ·€€ ·ÌÛp¸‡¯£Y[Geneva ;è?p8 ´Geneva ¸¦ V¿÷ך$8#¤LANDÿÿÿÿÿÿmac if dialog.twoWay ("Check for updates to Ò" + decafbadNewsRiverSuite.util.guestDatabaseName (this) + "Ó?", "Update", "Cancel") decafbadNewsRiverSuite.updater.checkReleaseNotes () €€8¹;Geneva¿Ø›9¿÷=}ÍÅìØLANDÿÿÿÿÿÿmac webbrowser.openurl (decafbadNewsRiverData.systemUrls.news) €¹XT$¿÷<Ç¿÷×·  updateTool`¹êviewNews`».X( ¤Geneva ¿÷ÿÀiF '?ïÀLANDÿÿÿÿÿÿmac 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 ¸¦ ì¿÷ßŵm‹ÎµLANDÿÿÿÿÿÿmac 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 €„€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ sZ¡Geneva ¸¦9θ¦dòr’”ascrÿÿÿÿÿÿmac 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 €€€€€€€€€€€€€€€s—Geneva ¸¦Y‘¸¦Yœÿ#vLANDÿÿÿÿÿÿmac 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©¿÷à:Õ:}ãÒLANDÿÿÿÿÿÿmac 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 gÇÍLANDÿÿÿÿÿÿmac 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 ("CanÕt 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 ÀWñÀX*2ÙLANDÿÿÿÿÿÿmac 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 GMT€WdatatablGÀX ÀX createdFri, 10 Feb 2006 01:35:44 GMTWdatatablG¿ù9—¿ù9— createdSun, 22 Jan 2006 18:31:03 GMT€WdatatablGÀY×ÀY× createdFri, 10 Feb 2006 01:43:03 GMT€WdatatablGÀYûÀYû createdFri, 10 Feb 2006 01:43:39 GMT€WdatatablG¿ú0ÿú0à createdMon, 23 Jan 2006 12:05:39 GMTWdatatablG¿ú0Ò¿ú0Ò createdMon, 23 Jan 2006 12:05:54 GMT€WdatatablGÀZ<ÀZ< createdFri, 10 Feb 2006 01:44:44 GMT€WdatatablGÀZ<ÀZ< createdFri, 10 Feb 2006 01:44:44 GMT€WdatatablGÀYûÀYû createdFri, 10 Feb 2006 01:43:39 GMT€WdatatablGÀ[À[ createdFri, 10 Feb 2006 01:48:22 GMT€WdatatablGÀ["À[" createdFri, 10 Feb 2006 01:48:34 GMTWdatatablGÀ[QÀ[Q createdFri, 10 Feb 2006 01:49:21 GMT€WdatatablGÀ\&À\& createdFri, 10 Feb 2006 01:52:54 GMTWdatatablGÀ\0À\0 createdFri, 10 Feb 2006 01:53:04 GMT€WdatatablGÀ\îÀ\î createdFri, 10 Feb 2006 01:56:14 GMTWdatatablGÀ\úÀ\ú createdFri, 10 Feb 2006 01:56:26 GMT€WdatatablGÀ\‡À\‡ createdFri, 10 Feb 2006 01:54:31 GMT€WdatatablGÀ®À® createdFri, 10 Feb 2006 15:17:18 GMT€WdatatablGÀ]CÀ]C createdFri, 10 Feb 2006 01:57:39 GMT€WdatatablGÀ]DÀ]D createdFri, 10 Feb 2006 01:57:40 GMT€WdatatablGÀ]¥À]¥ createdFri, 10 Feb 2006 01:59:17 GMT€WdatatablGÀoÃÀoà createdFri, 10 Feb 2006 03:16:35 GMT€WdatatablGÀqPÀqP createdFri, 10 Feb 2006 03:23:12 GMT€WdatatablGÀ]AÀ]A createdFri, 10 Feb 2006 01:57:37 GMT€WdatatablGÀX"ÀX" createdFri, 10 Feb 2006 01:35:46 GMT€WdatatablGÀX'ÀX' createdFri, 10 Feb 2006 01:35:51 GMT€WdatatablGÀX ÀX createdFri, 10 Feb 2006 01:35:44 GMTWdatatablG¿ù9—¿ù9— createdSun, 22 Jan 2006 18:31:03 GMTWdatatablGÀXNÀXN createdFri, 10 Feb 2006 01:36:30 GMT€WdatatablGÀY•ÀY• createdFri, 10 Feb 2006 01:41:57 GMTWdatatablGÀY˜ÀY˜ createdFri, 10 Feb 2006 01:42:00 GMT€WdatatablGÀY×ÀY× createdFri, 10 Feb 2006 01:43:03 GMT€WdatatablGÀYûÀYû createdFri, 10 Feb 2006 01:43:39 GMT€WdatatablG¿ú0ÿú0à createdMon, 23 Jan 2006 12:05:39 GMTWdatatablG¿ú0Ò¿ú0Ò createdMon, 23 Jan 2006 12:05:54 GMT€WdatatablGÀ^|À^| createdFri, 10 Feb 2006 02:02:52 GMT€WdatatablGÀXTÀXT createdFri, 10 Feb 2006 01:36:36 GMT§LT€Geneva ·v:¶·v}8*ÁaíLANDÿÿÿÿÿÿmac 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 ("CanÕt 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 ¸–óʸ–ôùÿ_ÇàLANDÿÿÿÿÿÿmac 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#Íß=£LANDÿÿÿÿÿÿmac 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 ·v13·v{‚+= LANDÿÿÿÿÿÿmac 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 ("CanÕt find a FTP site starting at " + adrObject + ".") €„€€€€€€€€€€€€€€€€€€€€€€¹þ0VGeneva ¸¦ !¸¦ œ@�LANDÿÿÿÿÿÿmac 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(p·u=rBœÎLANDÿÿÿÿÿÿmac 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@‚¸ |œ> µ¨·LANDÿÿÿÿÿÿmac 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 ("CanÕt " + operation + " because the WebDAV server " + error + ".") €€€€€€€€€€zRln Geneva ¸ |/¸¤�"oÿØ1LANDÿÿÿÿÿÿmac 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 + ")" €€€€€€€€€€€€€€€€€€RÏ9Geneva ¸—ó͸¦Kؼ²„3LANDÿÿÿÿÿÿmac 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À^4üh4J3½Geneva ¿öA&Àð§,r÷ùñLANDÿÿÿÿÿÿmac 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 () €„WdatatablG¿wâÔ¿wâÔ createdSun, 16 Oct 2005 17:58:28 GMTWdatatablG¿wâ׿wâ× createdSun, 16 Oct 2005 17:58:31 GMTWdatatablG¿wâò¿wâò createdSun, 16 Oct 2005 17:58:58 GMT€WdatatablG¿ù9ˆ¿ù9ˆ createdSun, 22 Jan 2006 18:30:48 GMTWdatatablG¿ù9‘¿ù9‘ createdSun, 22 Jan 2006 18:30:57 GMTWdatatablG¿ù9—¿ù9— createdSun, 22 Jan 2006 18:31:03 GMTWdatatablG¿ù<»¿ù<» createdSun, 22 Jan 2006 18:44:27 GMTWdatatablG¿ù9 ¿ù9 createdSun, 22 Jan 2006 18:28:45 GMTWdatatablG¿ù9¿ù9 createdSun, 22 Jan 2006 18:28:34 GMTWdatatablG¿ù9¿ù9 createdSun, 22 Jan 2006 18:29:02 GMTWdatatablG¿ù9¿ù9 createdSun, 22 Jan 2006 18:28:58 GMTWdatatablG¿ù9¿ù9 createdSun, 22 Jan 2006 18:28:36 GMTWdatatablG¿ù9¿ù9 createdSun, 22 Jan 2006 18:28:38 GMTWdatatablG¿ù¼ä¿ù¼ä createdMon, 23 Jan 2006 03:51:16 GMTWdatatablG¿ù¼à¿ù¼à createdMon, 23 Jan 2006 03:51:12 GMTWdatatablG¿ù9¿ù9 createdSun, 22 Jan 2006 18:28:52 GMTWdatatablG¿ù=¿ù= createdSun, 22 Jan 2006 18:46:03 GMTWdatatablG¿ù<пù<Ð createdSun, 22 Jan 2006 18:44:48 GMTWdatatablG¿ù9¿ù9 createdSun, 22 Jan 2006 18:28:55 GMTWdatatablG¿ù<È¿ù<È createdSun, 22 Jan 2006 18:44:40 GMTWdatatablG¿ù7;¿ù7; createdSun, 22 Jan 2006 18:20:59 GMTWdatatablG¿ù7E¿ù7E createdSun, 22 Jan 2006 18:21:09 GMTWdatatablG¿ù=¿ù= createdSun, 22 Jan 2006 18:45:53 GMTWdatatablG¿ù7?¿ù7? createdSun, 22 Jan 2006 18:21:03 GMTWdatatablG¿ù7H¿ù7H createdSun, 22 Jan 2006 18:21:12 GMTWdatatablG¿ú1‰¿ú1‰ createdMon, 23 Jan 2006 12:08:57 GMTWdatatablG¿ù<ÿù<à createdSun, 22 Jan 2006 18:44:35 GMTWdatatablG¿ù7K¿ù7K createdSun, 22 Jan 2006 18:21:15 GMTWdatatablG¿ù96¿ù96 createdSun, 22 Jan 2006 18:29:26 GMTWdatatablG¿ù9-¿ù9- createdSun, 22 Jan 2006 18:29:17 GMTWdatatablG¿ù92¿ù92 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 GMT€WdatatablG¿ù9¿ù9 createdSun, 22 Jan 2006 18:31:46 GMT€WdatatablG¿ù;‘¿ù;‘ createdSun, 22 Jan 2006 18:39:29 GMT€WdatatablG¿ù:*¿ù:* createdSun, 22 Jan 2006 18:33:30 GMT€€€€WdatatablG¿÷(6¿÷(6 createdSat, 21 Jan 2006 04:52:22 GMTWdatatablG¿÷)?¿÷)? createdSat, 21 Jan 2006 04:56:47 GMTWdatatablG¿÷R¿÷R 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 GMTWdatatablGÀðVÀðV 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 GMT€WdatatablG¿ù¼ú¿ù¼ú createdMon, 23 Jan 2006 03:51:38 GMTWdatatablG¿ù½¿ù½ createdMon, 23 Jan 2006 03:51:49 GMT€€WdatatablG¿öóοöóÎ 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 GMT€WdatatablGÀ ùVÀ ùV createdSun, 05 Feb 2006 05:37:42 GMT€€WdatatablG¿÷'ï¿÷'ï createdSat, 21 Jan 2006 04:51:11 GMT€€€€€€€€€€€WdatatablG¿ù=,¿ù=, createdSun, 22 Jan 2006 18:46:20 GMT€WdatatablG¿ù;w¿ù;w createdSun, 22 Jan 2006 18:39:03 GMTWdatatablG¿xïè¿xïè createdMon, 17 Oct 2005 13:06:32 GMTWdatatablG¿xïí¿xïí createdMon, 17 Oct 2005 13:06:37 GMT€WdatatablG¿zœ±¿zœ± createdTue, 18 Oct 2005 19:36:01 GMTWdatatablG¿ú1§¿ú1§ createdMon, 23 Jan 2006 12:09:27 GMT€€WdatatablG¿zŽš¿zŽš createdTue, 18 Oct 2005 18:35:54 GMTWdatatablG¿~€¬¿~€¬ createdFri, 21 Oct 2005 18:25:32 GMTWdatatablGÀjIÀjI createdFri, 10 Feb 2006 02:53:13 GMTWdatatablG¿ÚÚî¹ createdFri, 30 Dec 2005 22:03:37 GMTWdatatablGÀj†Àj† createdFri, 10 Feb 2006 02:54:14 GMT€WdatatablG¿÷¿÷ createdSat, 21 Jan 2006 03:20:50 GMTWdatatablG¿ú1)¿ú1) createdMon, 23 Jan 2006 12:07:21 GMTWdatatablG¿ú1å¿ú1å createdMon, 23 Jan 2006 12:10:29 GMTWdatatablG¿ú1ö¿ú1ö createdMon, 23 Jan 2006 12:10:46 GMT„€WdatatablG¿–u¿–u createdTue, 08 Nov 2005 17:03:49 GMT€WdatatablG¿÷3p¿÷3p createdSat, 21 Jan 2006 05:40:16 GMTWdatatablG¿÷0.¿÷0. createdSat, 21 Jan 2006 05:26:22 GMTWdatatablG¿÷0U¿÷0U createdSat, 21 Jan 2006 05:27:01 GMTWdatatablG¿÷3G¿÷3G createdSat, 21 Jan 2006 05:39:35 GMTWdatatablG¿÷0}¿÷0} createdSat, 21 Jan 2006 05:27:41 GMTWdatatablG¿÷3]¿÷3] createdSat, 21 Jan 2006 05:39:57 GMTWdatatablG¿÷0}¿÷0} createdSat, 21 Jan 2006 05:27:41 GMT€WdatatablG¿ù") return (true) €€€þ± -Geneva ­ÂEu¸�  ­ 2 LANDÿÿÿÿÿÿmac on firstFilter (adrPageTable) return (true) €€±ý*[Geneva ­ÂEu¸�  ~}2�LANDÿÿÿÿÿÿmac 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���.���­ÂE¼¶Fû�������� ���� ��� ����$���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���^���¿�������»���$���¿ö‘I¿ö‘I�������� ���� ��� ����„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���Ã���Á�������½���$���¿÷o¿÷o�������� ���� ���€ ����…linetext���s["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.css.mainpath��� css/main.wsf���Á���Ï�������Ë���$���¿÷w¿÷w�������� ���� ���‡ ����Œ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���Ù���É�������Å���$���¿÷v¿÷v�������� ���� ���„ ����‰linetext���w["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.js.behaviourpath���js/behaviour.wsf���É���¿�������»���$���¿÷v¿÷v�������� ���� ��� ����„linetext���r["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.js.mainpath��� js/main.wsf���¿���Ç�������Ã���$���¿÷p¿÷p�������� ���� ���ƒ ����ˆlinetext���v["Caffeina2:Users:deusx:Applications:OPML:Guest Databases:apps:Tools:decafbadFun.root"].decafbadFunWebsite.js.MochiKitpath���js/MochiKit.wsf���Ç���Í�������É���$���¿÷w¿÷w�������� ���� ���† ����‹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���Ó���Ï�������Ë���$���¿øI0¿øI0�������� ���� ���� ����’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���$���¿ø�4¿ø�4�������� ���� ���( ����-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���`�������\���$���ÀlrÀlr�������� ���� ���" ����'linetext���l.m.orchard's friendspath��� index.wsf���`���b�������^���$���ÀmšÀmš�������� ���� ���$ ����)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���$���¿÷1¿÷1�������� ���� ��� ����linetext��� Macro Playpath��� macroplay.wsf���Y���p�������l���$���ÀøoÀøo�������� ���� ���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���$���ÀmàÀmà�������� ���� ��� ����!linetext���subs-links.opmlpath��� index.wsf���Z���[�������W���$���¿øu¿øu�������� ���� ��� ����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���������������������������� ��������������¶FûÀ×Z���U��7�8íLANDÿÿÿÿÿÿ������mac ������������<%bodytext%> €��������‹���n�����������������¿öŠ1������VArial����������������������������� ������������������������������������������������n��–�������4���ê���Geneva���������������������������� ��������������¿ŒºäÀ ú÷������,iðLANDÿÿÿÿÿÿ������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������¿Œ»w¿Œ»w�������� ����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���������������������������� �������������¿÷ÌoÀá5�����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������ÀÐmÀÐm�������� ����created���Sat, 11 Feb 2006 04:21:17 GMT�����Wdatatabl����G������¿åìv¿åìv�������� ����created���Sun, 08 Jan 2006 03:08:54 GMT�����Wdatatabl����G������ÀÑ�ÀÑ��������� ����created���Sat, 11 Feb 2006 04:26:05 GMT€����Wdatatabl����G������ÀÒTÀÒT�������� ����created���Sat, 11 Feb 2006 04:29:24 GMT�����Wdatatabl����G������ÀÒjÀÒj�������� ����created���Sat, 11 Feb 2006 04:29:46 GMT�����Wdatatabl����G������ÀÑKÀÑK�������� ����created���Sat, 11 Feb 2006 04:24:59 GMT�����Wdatatabl����G������ÀÐeÀÐe�������� ����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������ÀÑTÀÑT�������� ����created���Sat, 11 Feb 2006 04:25:08 GMT�����Wdatatabl����G������ÀÑ^ÀÑ^�������� ����created���Sat, 11 Feb 2006 04:25:18 GMT�����Wdatatabl����G������ÀÑdÀÑd�������� ����created���Sat, 11 Feb 2006 04:25:24 GMT�����Wdatatabl����G������ÀÑeÀÑe�������� ����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�5ø0������������������������ 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���������������������� ����������������������ÿÿ����������������������������������������������������������º