Index: openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/de2.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/Attic/de2.html,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/de2.html 22 Nov 2006 01:48:59 -0000 1.1 @@ -0,0 +1,26 @@ + + + + Dojo Demos + + + + + + + + +
+ + Index: openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/demoEngine.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/Attic/demoEngine.css,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/demoEngine.css 22 Nov 2006 01:48:59 -0000 1.1 @@ -0,0 +1,240 @@ + #container { + width: 700px; + height: 450px; + border: 1px solid black; + padding: 0px; + margin: 0px; + overflow: hidden; + } + + .demoEngine { + width: 100%; + height: 450px; + } + + div.demoEngineNavigation, div.demoEngineDemoContainer { + width: 100%; + height: 450px; + font-family: Myriad,Tahoma,Verdana,sans-serif; + } + + div.demoEngineDemoContainer { + background: #f5f5f5; + padding: 1px; + } + + div.demoEngineNavigation { + color: black; + } + + div.dojoTabContainer { + width: 100%; + height: 450px; + top: 0px; + left: 0px; + float: right; + overflow: hidden; + border: 0px; + } + + div.dojoTabContainer iframe { + overflow: auto; + width: 100%; + height: 100%; + border: 0px; + padding: 0px; + margin: 0px; + background: #ffffff; + } + + div.dojoTabContainer textarea { + width: 100%; + height: 100%; + padding: 0px; + margin: 0px; + border: 0px; + overflow: auto; + } + + div.demoEngineDemoHeader { + top: 10px; + left: 0px; + width: 550px; + height: 65px; + position: absolute; + overflow: hidden; + color: black; + /*border: 1px solid black;*/ + z-index: 500; + } + + div.demoEngineDemoHeader h1 { + font-size: 1em; + font-weight: 300; + margin: 2px; + } + + div.demoEngineDemoHeader h2 { + font-size: .75em; + font-weight: 200; + } + + div.demoEngineDemoHeader div { + /*margin: 10px;*/ + float: left; + /*margin-left: 120px;*/ + position: absolute; + top: 0px; + left: 120px; + } + + /*div.demoEngineDemoHeader div:first-child { + left: 5px; + top: 10px; + width: 75px; + }*/ + + div.demoEngineDemoHeader span { + top: 0px; + padding-left: 70px; + padding-right: 0px; + padding-top: 0px; + padding-bottom: 35px; + width: 75px; + } + + div.dojoTabLabels-top { + position : absolute; + top : 0px; + left : 0px; + overflow : visible; + padding-top: 20px; + padding-bottom: 20px; + margin-right: 0px; + width : 150px; + } + + div.dojoTab { + float: right; + background: #f5f5f5; + border: 0px; + padding: 0px; + margin-left: 10px; + } + + div.dojoTab span { + background: #f5f5f5; + border: 0px; + padding: 0px; + margin: 0px; + } + + div.dojoTab.current { + background: #f5f5f5; + border-bottom: 5px solid #95bfff; + } + + div.demoEngineDemoNavigation { + width: 100%; + margin: 0px; + padding: 0px; + } + + .demoEngineCollapsedMenu { + cursor: pointer; + background: url("dojoDemos.gif") no-repeat; + width: 50px; + height: 50px; + margin-left: 15px; + margin-top: 0px; + } + + .dojoButton { + margin: 10px; + margin-top: 0px; + } + .dojoButton .dojoButtonContents { + font-size: 1.1em; + } + + .dojoButtonContents { + width: 100px; + } + + +.demoListWrapper { + border:1px solid #dcdbdb; + background-color:#f8f8f8; + padding:2px; +} + +.demoListContainer { + border:1px solid #f0f0f0; + background-color:#fff; + padding:1em; +} + +.demoSummaryBox { + background: #efefef; + border:1px solid #dae3ee; +} + +.screenshot { + padding:0.65em; + width:175px; + border-right:1px solid #fafafa; + text-align:center; +} + +.demoSummary { + margin-bottom:1em; +} + +.demoSummary a:link, .demoSummary a:visited { + color:#a6238f; + text-decoration:none; +} + +.summaryContainer { + border-left:1px solid #ddd; +} + +.summaryContainer h1 { + background-color:#e8e8e8; + border-bottom: 1px solid #e6e6e6; + color:#738fb9; + margin:1px; + padding:0.5em; + font-family:"Lucida Grande", "Tahoma", serif; + font-size:1.25em; + font-weight:normal; +} + +.summaryContainer h1 .packageSummary { + display:block; + color:#000; + font-size:10px; + margin-top:2px; +} + +.summaryContainer .summary { + padding:1em; +} + +.summaryContainer .summary p { + font-size:0.85em; + padding:0; + margin:0; +} + +.reflection { + background: url("images/demoBoxReflection.gif") repeat-x top left; + height:25px; +} + +.view { + padding: 5px; + text-align:right; + cursor: pointer; +} + Index: openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/demoEngine.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/Attic/demoEngine.html,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/demoEngine.html 22 Nov 2006 01:48:59 -0000 1.1 @@ -0,0 +1,22 @@ + + + + Dojo Demos + + + + + + + +
+ + Index: openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/demoRegistry.json =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/Attic/demoRegistry.json,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/demoRegistry.json 22 Nov 2006 01:48:59 -0000 1.1 @@ -0,0 +1,440 @@ +{ + navigation: [ + { + name: "Demo Applications", + demos: [ + "Mail", + "Moxie" + ] + }, + + { + name: "Effects", + demos: ["Effects"] + }, + { + name: "Drag And Drop", + demos: ["DragDrop", "DragMove", "DragHandle"] + }, + + { + name: "Storage", + demos: ["Moxie"] + }, + + { + name: "RPC", + demos: ["JSON-RPC Client"] + }, + + { + name: "Layout Widgets", + demos: [ + "Accordion", + "ContentPane", + "Dialog", + "Layout", + "LayoutContainer", + "Rounded Corners", + "SplitContainer", + "TabContainer", + "TitlePane", + "Windows", + "Wizard" + ] + }, + { + name: "Form Widgets", + demos: [ + "Checkbox", + "CiviCrmDateTimePicker", + "ColorPalette", + "ComboBox", + "DatePicker", + "Dialog", + "Editor", + "Form Bind", + "FormTour", + "TimePicker", + "Select", + "Spinner", + "Validation" + ] + }, + { + name: "General Widgets", + demos: [ + "Button", + "Chart", + "Fisheye", + "InlineEditBox", + "Menu", + "Progress", + "SortableTable", + "SlideShow", + "Tooltip", + "Tree", + /*"Toggler", broken :-( */ + "GoogleMap", + "YahooMap" + ] + } + + ], + + definitions: { + + "Progress": { + url: "../tests/widget/test_ProgressBar.html", + author: "", + thumbnail:"screenshots/test_NoThumb.gif", + screenShot:"", + description: "Configurable progress indicator." + }, + + "Rounded Corners": { + url: "widget/rounded.html", + author: "", + thumbnail:"screenshots/test_NoThumb.gif", + screenShot: "", + description: "A port of Curvy Corners (no image rounded corners) to Dojo." + }, + + "Form Bind": { + url: "http://mastodon.dojotoolkit.org/~david/formBind/", + author: "David Schontzler", + thumbnail: "screenshots/test_NoThumb.gif", + screenShot:"", + description:"This makes it easier to send forms via dojo.io.bind in a way that duplicates (as much as possible) a regular form submission (read: non-Ajax)" + }, + + "JSON-RPC Client": { + url: "../tests/rpc/test_JsonService.html", + author: "", + thumbnail: "screenshots/test_JSONRPCThumb.gif", + screenShot: "", + description: "Example of using Dojo's JSON-RPC Client. Lighweight JSON is ideal for marshalling RPC in webapps." + }, + "DragDrop": { + url: "../tests/dnd/test_simple.html", + author: "", + thumbnail: "screenshots/test_DragDropThumb.gif", + screenShot: "", + description: "Dragging items from one list to another" + }, + + "DragMove": { + url: "../tests/dnd/test_dragmove.html", + author: "", + thumbnail: "screenshots/test_DragMoveThumb.gif", + screenShot: "", + description: "Dragging items around the screen" + }, + + "DragHandle": { + url: "../tests/dnd/test_draghandle_2.html", + author: "", + thumbnail: "screenshots/test_DragHandleThumb.gif", + screenShot: "", + description: "Dragging things by a handle" + }, + + "Effects": { + url: "../tests/lfx/test_lfx.html", + author: "", + thumbnail: "screenshots/test_EffectsThumb.gif", + screenShot: "", + description: "Fades, wipes, slides, etc." + }, + + "YahooMap": { + url: "../tests/widget/test_YahooMap.html", + author: "Tom Trenka", + thumbnail: "screenshots/test_YahooMapThumb.gif", + screenShot: "", + description: "Demonstrates the use of the Map widget with Yahoo as the source" + }, + + "Wizard": { + url: "../tests/widget/test_Wizard.html", + author: "", + thumbnail: "screenshots/test_WizardThumb.gif", + screenShot: "", + description: "Wizard to take you step by step through a procedure (often seen while installing new software, etc.)" + }, + + "Tooltip": { + url: "widget/tooltip.html", + author: "", + thumbnail: "screenshots/test_TooltipThumb.gif", + screenShot: "", + description: "Displays up a little description box when you mouse over a button, link, etc." + }, + + "Toggler": { + url: "../tests/widget/test_Toggler.html", + author: "", + thumbnail: "screenshots/test_NoThumb.gif", + screenShot: "", + description: "Toggles (shows/hides) another widget." + }, + + "TitlePane": { + url: "../tests/widget/test_TitlePane.html", + author: "Dustin Machi", + thumbnail: "screenshots/test_TitlePaneThumb.gif", + screenShot: "", + description: "Displays some data with a title on top. Data can be collapsed leaving only the title shown." + }, + + "TimePicker": { + url: "../tests/widget/test_TimePicker.html", + author: "", + thumbnail: "screenshots/test_TimePickerThumb.gif", + screenShot: "", + description: "Widget to input a time (ex: 3:15PM)" + }, + + "Validation": { + url: "../tests/widget/test_validate.html", + author: "", + thumbnail: "screenshots/test_ValidationThumb.gif", + screenShot: "", + description: "Dojo has many widgets to validate and/or correct user keyboard input." + }, + + "Windows": { + url: "../tests/widget/test_TaskBar.html", + author: "various", + thumbnail: "screenshots/test_WindowThumb.gif", + screenShot: "", + description: "Demonstrates dojo's floating windows (FloatingPane) and taskbar (similar to a start menu)" + }, + + "TabContainer": { + url: "widget/tabContainer.html", + author: "Bill Keese", + thumbnail: "screenshots/test_TabContainerThumb.gif", + screenShot: "", + description: "A set of tabs." + }, + + "SplitContainer": { + url: "widget/splitContainer.html", + author: "", + thumbnail: "screenshots/test_SplitContainerThumb.gif", + screenShot: "", + description: "Widget that lets you adjust the width/height between two or more children, used (for example) to separate the tree, message list, and message pane in mail clients." + }, + + "SlideShow": { + url: "../tests/widget/test_SlideShow.html", + author: "", + thumbnail: "screenshots/test_SlideShowThumb.gif", + screenShot: "", + description: "Cycles through various images fading between them." + }, + + "ContentPane": { + url: "widget/contentPane.html", + author: "Bill Keese, Fredrik Johansson", + thumbnail: "screenshots/test_ContentPaneThumb.gif", + screenShot: "", + description: "Demonstrates the ContentPane widget, especially loading remote data (via an href), similar to an iframe." + }, + + "Menu": { + url: "../tests/widget/test_Menu2_Bar.html", + author: "", + thumbnail: "screenshots/test_MenuThumb.gif", + screenShot: "", + description: "Demonstrates the use of the MenuBar (like a File menu) and ContextMenu (right-click menu) widgets." + }, + + "LayoutContainer": { + url: "widget/layoutContainer.html", + author: "", + thumbnail: "screenshots/test_LayoutContainerThumb.gif", + screenShot: "", + description: "Delphi-like position of children into left/right/top/bottom/client positions." + }, + + "Layout": { + url: "../tests/widget/test_Layout.html", + author: "", + thumbnail: "screenshots/test_LayoutThumb.gif", + screenShot: "", + description: "Demonstrates the use of some of the layout widgets" + }, + + "InlineEditBox": { + url: "../tests/widget/test_InlineEditBox.html", + author: "", + thumbnail: "screenshots/test_InlineEditThumb.gif", + screenShot: "", + description: "This widget essentially lets you edit page items in-place, without bringing up an edit page." + }, + + "GoogleMap": { + url: "../tests/widget/test_GoogleMap.html", + author: "", + thumbnail: "screenshots/test_GoogleMapThumb.gif", + screenShot: "", + description: "Demonstrates the use of the GoogleMap Widget (use from sites outside of dojotoolkit.org will require a google key)" + }, + + "Editor": { + url: "widget/Editor.html", + author: "", + thumbnail: "screenshots/test_NoThumb.gif", + screenShot: "", + description: "Dojo's rich text editor" + }, + + "Dialog": { + url: "widget/dialog.html", + author: "", + thumbnail: "screenshots/test_NoThumb.gif", + screenShot: "", + description: "A modal dialog similar to an alert or confirm or popup window" + }, + + "DatePicker": { + url: "widget/datePicker.html", + author: "Dylan Schiemann", + thumbnail: "screenshots/test_DatePickerThumb.png", + screenShot: "screenshots/test_DatePicker.png", + description: "Pick a date from a calendar" + }, + + "Accordion": { + url: "widget/accordionContainer.html", + author: "Dustin Machi", + thumbnail: "screenshots/test_AccordionThumb.gif", + screenShot: "", + description: "Demonstrates the use of the the Accordion widget" + }, + + "Button": { + url: "../tests/widget/test_Button.html", + author: "Bill Keese", + thumbnail: "screenshots/test_ButtonThumb.gif", + screenShot: "", + description: "Dojo supports simple buttons, drop down list buttons, and combobuttons; users can customize the button style." + }, + + "Chart": { + url: "../tests/widget/test_Chart.html", + author: "", + thumbnail: "screenshots/test_ChartThumb.gif", + screenShot: "", + description: "Chart demonstrates SVG Charting in dojo. It requires a browser capable of inline SVG" + }, + + "Checkbox": { + url: "../tests/widget/test_Checkbox.html", + author: "", + thumbnail: "screenshots/test_CheckboxThumb.gif", + screenShot: "", + description: "Check box with customizable image for checkmark" + }, + + "CiviCrmDateTimePicker": { + url: "../tests/widget/test_CiviCrmDateTimePicker.html", + author: "", + thumbnail: "screenshots/test_CiviCrmDateTimePickerThumb.gif", + screenShot: "", + description: "Form input widget for specifying date and time" + }, + + "ColorPalette": { + url: "../tests/widget/test_ColorPalette.html", + author: "", + thumbnail: "screenshots/test_ColorPaletteThumb.gif", + screenShot: "", + description: "Widget to pick a color" + }, + + "ComboBox": { + url: "widget/comboBox.html", + author: "", + thumbnail: "screenshots/test_ComboBoxThumb.gif", + screenShot: "", + description: "Drop down select list featuring dynamic loading of matching data from the server (like Google Suggests?)" + }, + + "Tree": { + url: "widget/Tree/tree.html", + author: "Ilia Kantor", + thumbnail: "screenshots/test_TreeThumb.gif", + screenShot: "", + description: "Tree widget featuring lazy loading of data, drag & drop, etc." + }, + + "Moxie": { + url: "storage/editor.html", + author: "Brad Neuburg", + thumbnail: "screenshots/test_MoxieThumb.gif", + screenShot: "", + description: "Editor application that demonstrates use of dojo.strorage for offline use" + }, + + "FormTour": { + url: "widget/Form.html", + author: "Anonymous", + thumbnail: "screenshots/test_FormTourThumb.gif", + screenShot: "", + description: "Overview of the Dojo's Form Widgets" + }, + + "Fisheye": { + url: "widget/Fisheye.html", + author: "Cal Henderson", + thumbnail: "screenshots/test_FisheyeThumb.gif", + screenShot: "", + description: "A menu that balloons out, similar to the launcher on OS X" + }, + + "JsonService": { + url: "../tests/rpc/test_JsonService.html", + author: "Dustin Machi", + thumbnail: "screenshots/test_NoThumb.gif", + screenShot: "", + description: "JSON-RPC Test Page" + }, + + "Mail": { + url: "widget/Mail.html", + author: "Bill Keese", + thumbnail: "screenshots/test_MailThumb.gif", + screenShot: "", + description: "Simple Mail Application demonstration" + }, + + "SortableTable": { + url: "../tests/widget/test_SortableTable.html", + author: "Tom Trenka", + thumbnail: "screenshots/test_SortableTableThumb.gif", + screenShot: "", + description: "A table where the user can sort by column, the rows can be color coded, etc." + }, + + "Select":{ + url: "../tests/widget/test_Select.html", + author: "", + thumbnail: "screenshots/test_NoThumb.gif", + screenShot: "", + description: "The Select widget is an enhanced version of HTML's + + + + + + + + + + + + + +
+
+ Click Here to Begin Editing +
+
+ + + Index: openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/storage/editor.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/storage/Attic/editor.js,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/ajaxhelper/www/resources/dojo-ajax/demos/storage/editor.js 22 Nov 2006 01:49:00 -0000 1.1 @@ -0,0 +1,220 @@ +/* + Copyright (c) 2004-2006, The Dojo Foundation + All Rights Reserved. + + Licensed under the Academic Free License version 2.1 or above OR the + modified BSD license. For more information on Dojo licensing, see: + + http://dojotoolkit.org/community/licensing.shtml +*/ + +dojo.require("dojo.dom"); +dojo.require("dojo.event.*"); +dojo.require("dojo.html"); +dojo.require("dojo.lfx.*"); +dojo.require("dojo.widget.Editor"); +dojo.require("dojo.storage.*"); + +var Moxie = { + initialize: function(){ + //dojo.debug("test_storage.initialize()"); + + // fill out the offline link + dojo.byId("offlineLink").href = window.location.href; + + // clear out old values + dojo.byId("storageKey").value = ""; + dojo.byId("storageValue").value = ""; + + // write out our available keys + this._printAvailableKeys(); + + // initialize our event handlers + var directory = dojo.byId("directory"); + dojo.event.connect(directory, "onchange", this, this.directoryChange); + dojo.event.connect(dojo.byId("saveButton"), "onclick", this, this.save); + dojo.event.connect(dojo.byId("configureButton"), "onclick", this, this.configure); + }, + + directoryChange: function(evt){ + var key = evt.target.value; + + // add this value into the form + var keyNameField = dojo.byId("storageKey"); + keyNameField.value = key; + + // if blank key ignore + if(key == ""){ + return; + } + + this._handleLoad(key); + }, + + save: function(evt){ + // cancel the button's default behavior + evt.preventDefault(); + evt.stopPropagation(); + + // get the new values + var key = dojo.byId("storageKey").value; + var value = dojo.widget.byId("storageValue").getEditorContent(); + + + if(key == null || typeof key == "undefined" || key == ""){ + alert("Please enter a file name"); + return; + } + + if(value == null || typeof value == "undefined" || value == ""){ + alert("Please enter file contents"); + return; + } + + // do the save + this._save(key, value) + }, + + configure: function(evt){ + // cancel the button's default behavior + evt.preventDefault(); + evt.stopPropagation(); + + if(dojo.storage.hasSettingsUI()){ + // redraw our keys after the dialog is closed, in + // case they have all been erased + var self = this; + dojo.storage.onHideSettingsUI = function(){ + self._printAvailableKeys(); + + // Reshow the Editor (see below) + if(dojo.render.html.moz){ + var storageValue = dojo.byId("storageValue"); + storageValue.style.display = "block"; + } + } + + // The Flash dialog plus the underlying Editor on Firefox + // creates screen glitches; temporary + // workaround to just hide the Editors while dialog is showing + if(dojo.render.html.moz){ + var storageValue = dojo.byId("storageValue"); + storageValue.style.display = "none"; + } + + // show the dialog + dojo.storage.showSettingsUI(); + } + }, + + _save: function(key, value){ + this._printStatus("Saving '" + key + "'..."); + var self = this; + var saveHandler = function(status, keyName){ + if(status == dojo.storage.PENDING){ + // The Flash dialog plus the underlying Editor on Firefox + // creates screen glitches; temporary + // workaround to just hide the Editors while dialog is showing + if(dojo.render.html.moz){ + var storageValue = dojo.byId("storageValue"); + storageValue.style.display = "none"; + } + + return; + } + + if(status == dojo.storage.FAILED){ + alert("You do not have permission to store data for this web site. " + + "Press the Configure button to grant permission."); + }else if(status == dojo.storage.SUCCESS){ + // clear out the old value + dojo.byId("storageKey").value = ""; + dojo.byId("storageValue").value = ""; + self._printStatus("Saved '" + key + "'"); + + // update the list of available keys + // put this on a slight timeout, because saveHandler is called back + // from Flash, which can cause problems in Flash 8 communication + // which affects Safari + // FIXME: Find out what is going on in the Flash 8 layer and fix it + // there + window.setTimeout(function(){ self._printAvailableKeys() }, 1); + } + + // Reshow the Editor (see below) + if(dojo.render.html.moz){ + var storageValue = dojo.byId("storageValue"); + storageValue.style.display = "block"; + } + }; + try{ + dojo.storage.put(key, value, saveHandler); + }catch(exp){ + alert(exp); + } + }, + + _printAvailableKeys: function(){ + var directory = dojo.byId("directory"); + + // clear out any old keys + directory.innerHTML = ""; + + // add a blank selection + var optionNode = document.createElement("option"); + optionNode.appendChild(document.createTextNode("")); + optionNode.value = ""; + directory.appendChild(optionNode); + + // add new ones + var availableKeys = dojo.storage.getKeys(); + for (var i = 0; i < availableKeys.length; i++) { + var optionNode = document.createElement("option"); + optionNode.appendChild(document.createTextNode(availableKeys[i])); + optionNode.value = availableKeys[i]; + directory.appendChild(optionNode); + } + }, + + _handleLoad: function(key){ + this._printStatus("Loading '" + key + "'..."); + + // get the value + var results = dojo.storage.get(key); + + // set the new Editor widget value + var storageValue = dojo.widget.byId("storageValue"); + storageValue._richText.editNode.innerHTML = results; + storageValue._richText._updateHeight(); + + // print out that we are done + this._printStatus("Loaded '" + key + "'"); + }, + + _printStatus: function(message){ + // remove the old status + var top = dojo.byId("top"); + for (var i = 0; i < top.childNodes.length; i++) { + var currentNode = top.childNodes[i]; + if (currentNode.nodeType == dojo.dom.ELEMENT_NODE && + currentNode.className == "status") { + top.removeChild(currentNode); + } + } + + var status = document.createElement("span"); + status.className = "status"; + status.innerHTML = message; + + top.appendChild(status); + dojo.lfx.fadeOut(status, 2000).play(); + } +}; + +// wait until the storage system is finished loading +if(dojo.storage.manager.isInitialized() == false){ // storage might already be loaded when we get here + dojo.event.connect(dojo.storage.manager, "loaded", Moxie, + Moxie.initialize); +}else{ + dojo.event.connect(dojo, "loaded", Moxie, Moxie.initialize); +}