From: Thierry Parmentelat Date: Tue, 6 Jan 2009 13:59:16 +0000 (+0000) Subject: the misc/ directory also comes with drupal X-Git-Tag: PLEWWW-4.3-1~144 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=2f4401b535c10ffa6292049e228c1d1655cb8c2d;p=plewww.git the misc/ directory also comes with drupal --- diff --git a/misc/degree2decimal.py b/googlemap/degree2decimal.py similarity index 100% rename from misc/degree2decimal.py rename to googlemap/degree2decimal.py diff --git a/misc/google-plc.png b/googlemap/google-plc.png similarity index 100% rename from misc/google-plc.png rename to googlemap/google-plc.png diff --git a/misc/google-ple.png b/googlemap/google-ple.png similarity index 100% rename from misc/google-ple.png rename to googlemap/google-ple.png diff --git a/misc/googlemap.js b/googlemap/googlemap.js similarity index 100% rename from misc/googlemap.js rename to googlemap/googlemap.js diff --git a/misc/arrow-asc.png b/misc/arrow-asc.png deleted file mode 100644 index 2edbb17..0000000 Binary files a/misc/arrow-asc.png and /dev/null differ diff --git a/misc/arrow-desc.png b/misc/arrow-desc.png deleted file mode 100644 index e244494..0000000 Binary files a/misc/arrow-desc.png and /dev/null differ diff --git a/misc/autocomplete.js b/misc/autocomplete.js deleted file mode 100644 index a1d3485..0000000 --- a/misc/autocomplete.js +++ /dev/null @@ -1,276 +0,0 @@ -// $Id: autocomplete.js 144 2007-03-28 07:52:20Z thierry $ - -// Global Killswitch -if (isJsEnabled()) { - addLoadEvent(autocompleteAutoAttach); -} - -/** - * Attaches the autocomplete behaviour to all required fields - */ -function autocompleteAutoAttach() { - var acdb = []; - var inputs = document.getElementsByTagName('input'); - for (i = 0; input = inputs[i]; i++) { - if (input && hasClass(input, 'autocomplete')) { - uri = input.value; - if (!acdb[uri]) { - acdb[uri] = new ACDB(uri); - } - input = $(input.id.substr(0, input.id.length - 13)); - input.setAttribute('autocomplete', 'OFF'); - addSubmitEvent(input.form, autocompleteSubmit); - new jsAC(input, acdb[uri]); - } - } -} - -/** - * Prevents the form from submitting if the suggestions popup is open - */ -function autocompleteSubmit() { - var popup = document.getElementById('autocomplete'); - if (popup) { - popup.owner.hidePopup(); - return false; - } - return true; -} - - -/** - * An AutoComplete object - */ -function jsAC(input, db) { - var ac = this; - this.input = input; - this.db = db; - this.input.onkeydown = function (event) { return ac.onkeydown(this, event); }; - this.input.onkeyup = function (event) { ac.onkeyup(this, event) }; - this.input.onblur = function () { ac.hidePopup(); ac.db.cancel(); }; - this.popup = document.createElement('div'); - this.popup.id = 'autocomplete'; - this.popup.owner = this; -}; - -/** - * Hides the autocomplete suggestions - */ -jsAC.prototype.hidePopup = function (keycode) { - if (this.selected && ((keycode && keycode != 46 && keycode != 8 && keycode != 27) || !keycode)) { - this.input.value = this.selected.autocompleteValue; - } - if (this.popup.parentNode && this.popup.parentNode.tagName) { - removeNode(this.popup); - } - this.selected = false; -} - - -/** - * Handler for the "keydown" event - */ -jsAC.prototype.onkeydown = function (input, e) { - if (!e) { - e = window.event; - } - switch (e.keyCode) { - case 40: // down arrow - this.selectDown(); - return false; - case 38: // up arrow - this.selectUp(); - return false; - default: // all other keys - return true; - } -} - -/** - * Handler for the "keyup" event - */ -jsAC.prototype.onkeyup = function (input, e) { - if (!e) { - e = window.event; - } - switch (e.keyCode) { - case 16: // shift - case 17: // ctrl - case 18: // alt - case 20: // caps lock - case 33: // page up - case 34: // page down - case 35: // end - case 36: // home - case 37: // left arrow - case 38: // up arrow - case 39: // right arrow - case 40: // down arrow - return true; - - case 9: // tab - case 13: // enter - case 27: // esc - this.hidePopup(e.keyCode); - return true; - - default: // all other keys - if (input.value.length > 0) - this.populatePopup(); - else - this.hidePopup(e.keyCode); - return true; - } -} - -/** - * Puts the currently highlighted suggestion into the autocomplete field - */ -jsAC.prototype.select = function (node) { - this.input.value = node.autocompleteValue; -} - -/** - * Highlights the next suggestion - */ -jsAC.prototype.selectDown = function () { - if (this.selected && this.selected.nextSibling) { - this.highlight(this.selected.nextSibling); - } - else { - var lis = this.popup.getElementsByTagName('li'); - if (lis.length > 0) { - this.highlight(lis[0]); - } - } -} - -/** - * Highlights the previous suggestion - */ -jsAC.prototype.selectUp = function () { - if (this.selected && this.selected.previousSibling) { - this.highlight(this.selected.previousSibling); - } -} - -/** - * Highlights a suggestion - */ -jsAC.prototype.highlight = function (node) { - removeClass(this.selected, 'selected'); - addClass(node, 'selected'); - this.selected = node; -} - -/** - * Unhighlights a suggestion - */ -jsAC.prototype.unhighlight = function (node) { - removeClass(node, 'selected'); - this.selected = false; -} - -/** - * Positions the suggestions popup and starts a search - */ -jsAC.prototype.populatePopup = function () { - var ac = this; - var pos = absolutePosition(this.input); - this.selected = false; - this.popup.style.top = (pos.y + this.input.offsetHeight) +'px'; - this.popup.style.left = pos.x +'px'; - this.popup.style.width = (this.input.offsetWidth - 4) +'px'; - this.db.owner = this; - this.db.search(this.input.value); -} - -/** - * Fills the suggestion popup with any matches received - */ -jsAC.prototype.found = function (matches) { - while (this.popup.hasChildNodes()) { - this.popup.removeChild(this.popup.childNodes[0]); - } - if (!this.popup.parentNode || !this.popup.parentNode.tagName) { - document.getElementsByTagName('body')[0].appendChild(this.popup); - } - var ul = document.createElement('ul'); - var ac = this; - - for (key in matches) { - var li = document.createElement('li'); - var div = document.createElement('div'); - div.innerHTML = matches[key]; - li.appendChild(div); - li.autocompleteValue = key; - li.onmousedown = function() { ac.select(this); }; - li.onmouseover = function() { ac.highlight(this); }; - li.onmouseout = function() { ac.unhighlight(this); }; - ul.appendChild(li); - } - - if (ul.childNodes.length > 0) { - this.popup.appendChild(ul); - } - else { - this.hidePopup(); - } - removeClass(this.input, 'throbbing'); -} - -/** - * An AutoComplete DataBase object - */ -function ACDB(uri) { - this.uri = uri; - this.delay = 300; - this.cache = {}; -} - -/** - * Performs a cached and delayed search - */ -ACDB.prototype.search = function(searchString) { - this.searchString = searchString; - if (this.cache[searchString]) { - return this.owner.found(this.cache[searchString]); - } - if (this.timer) { - clearTimeout(this.timer); - } - var db = this; - this.timer = setTimeout(function() { - addClass(db.owner.input, 'throbbing'); - db.transport = HTTPGet(db.uri +'/'+ encodeURIComponent(searchString), db.receive, db); - }, this.delay); -} - -/** - * HTTP callback function. Passes suggestions to the autocomplete object - */ -ACDB.prototype.receive = function(string, xmlhttp, acdb) { - // Note: Safari returns 'undefined' status if the request returns no data. - if (xmlhttp.status != 200 && typeof xmlhttp.status != 'undefined') { - removeClass(acdb.owner.input, 'throbbing'); - return alert('An HTTP error '+ xmlhttp.status +' occured.\n'+ acdb.uri); - } - // Parse back result - var matches = parseJson(string); - if (typeof matches['status'] == 'undefined' || matches['status'] != 0) { - acdb.cache[acdb.searchString] = matches; - acdb.owner.found(matches); - } -} - -/** - * Cancels the current autocomplete request - */ -ACDB.prototype.cancel = function() { - if (this.owner) removeClass(this.owner.input, 'throbbing'); - if (this.timer) clearTimeout(this.timer); - if (this.transport) { - this.transport.onreadystatechange = function() {}; - this.transport.abort(); - } -} diff --git a/misc/blog.png b/misc/blog.png deleted file mode 100644 index 2518905..0000000 Binary files a/misc/blog.png and /dev/null differ diff --git a/misc/collapse.js b/misc/collapse.js deleted file mode 100644 index c797a2c..0000000 --- a/misc/collapse.js +++ /dev/null @@ -1,70 +0,0 @@ -// $Id: collapse.js 144 2007-03-28 07:52:20Z thierry $ - -if (isJsEnabled()) { - addLoadEvent(collapseAutoAttach); -} - -function collapseAutoAttach() { - var fieldsets = document.getElementsByTagName('fieldset'); - var legend, fieldset; - for (var i = 0; fieldset = fieldsets[i]; i++) { - if (!hasClass(fieldset, 'collapsible')) { - continue; - } - legend = fieldset.getElementsByTagName('legend'); - if (legend.length == 0) { - continue; - } - legend = legend[0]; - var a = document.createElement('a'); - a.href = '#'; - a.onclick = function() { - toggleClass(this.parentNode.parentNode, 'collapsed'); - if (!hasClass(this.parentNode.parentNode, 'collapsed')) { - collapseScrollIntoView(this.parentNode.parentNode); - if (typeof textAreaAutoAttach != 'undefined') { - // Add the grippie to a textarea in a collapsed fieldset. - textAreaAutoAttach(null, this.parentNode.parentNode); - } - } - this.blur(); - return false; - }; - a.innerHTML = legend.innerHTML; - while (legend.hasChildNodes()) { - removeNode(legend.childNodes[0]); - } - legend.appendChild(a); - collapseEnsureErrorsVisible(fieldset); - } -} - -function collapseEnsureErrorsVisible(fieldset) { - if (!hasClass(fieldset, 'collapsed')) { - return; - } - var inputs = []; - inputs = inputs.concat(fieldset.getElementsByTagName('input')); - inputs = inputs.concat(fieldset.getElementsByTagName('textarea')); - inputs = inputs.concat(fieldset.getElementsByTagName('select')); - for (var j = 0; j<3; j++) { - for (var i = 0; i < inputs[j].length; i++) { - if (hasClass(inputs[j][i], 'error')) { - return removeClass(fieldset, 'collapsed'); - } - } - } -} - -function collapseScrollIntoView(node) { - var h = self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0; - var offset = self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; - var pos = absolutePosition(node); - if (pos.y + node.scrollHeight > h + offset) { - if (node.scrollHeight > h) { - window.scrollTo(0, pos.y); - } else { - window.scrollTo(0, pos.y + node.scrollHeight - h); - } - } -} diff --git a/misc/drupal.css b/misc/drupal.css deleted file mode 100644 index 03b90f6..0000000 --- a/misc/drupal.css +++ /dev/null @@ -1,676 +0,0 @@ -/* $Id: drupal.css 144 2007-03-28 07:52:20Z thierry $ */ - -/* -** HTML elements -*/ -fieldset { - margin-bottom: 1em; - padding: .5em; -} -form { - margin: 0; - padding: 0; -} -hr { - height: 1px; - border: 1px solid gray; -} -img { - border: 0; -} -table { - border-collapse: collapse; -} -th { - text-align: left; - padding-right: 1em; - border-bottom: 3px solid #ccc; -} -th.active img { - display: inline; -} -tr.even, tr.odd { - background-color: #eee; - border-bottom: 1px solid #ccc; -} -tr.even, tr.odd { - padding: 0.1em 0.6em; -} -td.active { - background-color: #ddd; -} - -/* -** Menu styles -*/ -ul.menu { - list-style: none; - border: none; - text-align:left; -} -ul.menu li { - margin: 0 0 0 0.5em; -} -li.expanded { - list-style-type: circle; - list-style-image: url(menu-expanded.png); - padding: 0.2em 0.5em 0 0; - margin: 0; -} -li.collapsed { - list-style-type: disc; - list-style-image: url(menu-collapsed.png); - padding: 0.2em 0.5em 0 0; - margin: 0; -} -li.leaf { - list-style-type: square; - list-style-image: url(menu-leaf.png); - padding: 0.2em 0.5em 0 0; - margin: 0; -} -li a.active { - color: #000; -} -td.menu-disabled { - background: #ccc; -} - -/* -** Other common styles -*/ -.breadcrumb { - padding-bottom: .5em -} -.block-region { - background-color: #ffff66; - margin-top: 4px; - margin-bottom: 4px; - padding: 3px; -} -.block ul { - margin: 0; - padding: 0 0 0.25em 1em; -} -br.clear { - clear: both; - height: 0; -} -.container-inline div { - display: inline; -} -.error { - color: red; -} -.item-list .icon { - color: #555; - float: right; - padding-left: 0.25em; - clear: right; -} -.item-list .icon a { - color: #000; - text-decoration: none; -} -.item-list .icon a:hover { - color: #000; - text-decoration: none; -} -.item-list .title { - font-weight: bold; -} -.item-list ul { - margin: 0 0 0.75em 0; - padding: 0; -} -.item-list ul li { - margin: 0 0 0.25em 1.5em; - padding: 0; - list-style: disc; -} -.form-item { - margin-top: 1em; - margin-bottom: 1em; -} -tr.odd .form-item, tr.even .form-item { - margin-top: 0; - margin-bottom: 0; - white-space: nowrap; -} -.form-item input.error, .form-item textarea.error { - border: 2px solid red; -} -.form-item .description { - font-size: 0.85em; -} -.form-item label { - display: block; - font-weight: bold; -} -.form-item label.option { - display: inline; - font-weight: normal; -} -.marker, .form-required { - color: #f00; -} -.more-link { - text-align: right; -} -.node-form .form-text { - display: block; - width: 95%; -} -.node-form .standard { - clear: both; -} -.node-form textarea { - display: block; - width: 95%; -} -.node-form .attachments fieldset { - float: none; - display: block; -} -.nowrap { - white-space: nowrap; -} -.ok { - color: #080; -} -#pager { - clear: both; - text-align: center; -} -#pager a, #pager strong.pager-current { - padding: 0.5em; -} -.path { - padding-bottom: 0.7em; - font-size: 1.1em; -} - -/* -** Module specific styles -*/ -#aggregator .feed-source .feed-title { - margin-top: 0; -} -#aggregator .feed-source .feed-image img { - margin-bottom: 0.75em; -} -#aggregator .feed-source .feed-icon { - float: right; - display: block; -} -#aggregator .feed-item { - margin-bottom: 1.5em; -} -#aggregator .feed-item-title { - margin-bottom: 0; - font-size: 1.3em; -} -#aggregator .feed-item-meta, #aggregator .feed-item-body { - margin-bottom: 0.5em; -} -#aggregator .feed-item-categories { - font-size: 0.9em; -} -#aggregator td { - vertical-align: bottom; -} -#aggregator td.categorize-item { - white-space: nowrap; -} -#aggregator .categorize-item .news-item .body { - margin-top: 0; -} -#aggregator .categorize-item h3 { - margin-bottom: 1em; - margin-top: 0; -} -.book-navigation .menu { - border-top: 1px solid #888; - padding: 1em 0 0 3em; -} -.book-navigation .page-links { - border-top: 1px solid #888; - border-bottom: 1px solid #888; - text-align: center; - padding: 0.5em; -} -.book-navigation .page-previous { - text-align: right; -} -.book-navigation .page-up { - margin: 0 4em; -} -.book-navigation .page-next { - text-align: left; -} -.node-unpublished, .comment-unpublished { - background-color: #fff4f4; -} -.preview .node, .preview .comment { - background-color: #ffffea; -} -.archive { - margin: 1em 0 1em 0; -} -.calendar .row-week td a { - display: block; -} -.calendar .row-week td a:hover { - background-color: #888; color: #fff; -} -.calendar a { - text-decoration: none; -} -.calendar a:hover { - text-decoration: none; -} -.calendar table { - border-collapse: collapse; - width: 100%; - border: 1px solid #000; -} -.calendar td, .calendar th { - text-align: center; - border: 1px solid #000; - padding: 1px; - margin: 0; - font-size: 0.8em; -} -.calendar td.day-blank { - border: 0; -} -.tips { - margin-top: 0; - margin-bottom: 0; - padding-top: 0; - padding-bottom: 0; - font-size: 0.9em; -} -#forum .description { - font-size: 0.9em; - margin: 0.5em; -} -#forum td.created, #forum td.posts, #forum td.topics, #forum td.last-reply, #forum td.replies, #forum td.pager { - white-space: nowrap; -} -#forum td.posts, #forum td.topics, #forum td.replies, #forum td.pager { - text-align: center; -} -.forum-topic-navigation { - padding: 1em 0 0 3em; - border-top: 1px solid #888; - border-bottom: 1px solid #888; - text-align: center; - padding: 0.5em; -} -.forum-topic-navigation .topic-previous { - margin-right: 4em; - text-align: right; -} -.forum-topic-navigation .topic-next { - text-align: left; -} -.locale-untranslated { - font-style: normal; - text-decoration: line-through; -} -#node-admin-filter ul { - list-style-type: none; - padding: 0; - margin: 0; - width: 100%; -} -#node-admin-buttons { - float: left; - margin-left: 0.5em; - clear: right; -} -td.revision-current { - background: #ffc; -} -dl.multiselect dd.b, dl.multiselect dd.b .form-item, dl.multiselect dd.b select { - font-family: inherit; - font-size: inherit; - width: 14em; -} -dl.multiselect dd.a, dl.multiselect dd.a .form-item { - width: 8em; -} -dl.multiselect dt, dl.multiselect dd { - float: left; - line-height: 1.75em; - padding: 0; - margin: 0 1em 0 0; -} -dl.multiselect .form-item { - height: 1.75em; - margin: 0; -} -#permissions td.module, #blocks td.region { - font-weight: bold; -} -#permissions td.permission, #blocks td.block, #taxonomy td.term, #taxonomy td.message { - padding-left: 1.5em; -} - -#access-rules .access-type, #access-rules .rule-type { - margin-right: 1em; - float: left; -} -#access-rules .access-type .form-item, #access-rules .rule-type .form-item { - margin-top: 0; -} -#access-rules .mask { - clear: both; -} -.poll .bar { - height: 1em; - margin: 1px 0; - background-color: #ddd; -} -.poll .bar .foreground { - background-color: #000; - height: 1em; - clear: left; - float: left; -} -.poll .links { - text-align: center; -} -.poll .percent { - text-align: right; -} -.poll .total { - text-align: center; -} -.poll .vote-form { - text-align: center; -} -.poll .vote-form .choices { - text-align: left; - margin: 0 auto; - display: table; -} -.profile { - clear: both; - margin: 1em 0 1em 0; -} -.profile .picture { - float: right; - margin: 0 1em 1em 0; -} -.profile dt { - margin: 1em 0 0.2em 0; - font-weight: bold; -} -.profile dd { - margin:0; -} -.node-form .poll-form fieldset { - display: block; -} -img.screenshot { - border: 1px solid #808080; - display: block; - margin: 2px; -} -.search-form { - margin-bottom: 1em; -} -.search-form p { - margin-top: 0; - margin-bottom: 0.2em; - padding-top: 0; - padding-bottom: 0; -} -.search-form input { - margin-top: 0; - margin-bottom: 0; -} -.search-results p { - margin-top: 0; -} -.search-results dt { - font-size: 1.1em; -} -.search-results dd { - margin-bottom: 1em; -} -.search-results .search-info { - font-size: 0.85em; -} -.search-advanced .criterion { - float: left; - margin-right: 2em; -} -.search-advanced .action { - float: left; - clear: left; -} -#tracker td.replies { - text-align: center; -} -#tracker table { - width: 100%; -} -.theme-settings-left { - float: left; - width: 49%; -} -.theme-settings-right { - float: right; - width: 49%; -} -.theme-settings-bottom { - clear: both; -} -#user-login-form { - text-align: center; -} -.more-help-link { - font-size: 0.85em; - text-align: right; -} -table.watchdog-event th { - border-bottom: 1px solid #ccc; -} -tr.watchdog-user { - background: #ffd; -} -tr.watchdog-user .active { - background: #eed; -} -tr.watchdog-content { - background: #ddf; -} -tr.watchdog-content .active { - background: #cce; -} -tr.watchdog-page-not-found, tr.watchdog-access-denied { - background: #dfd; -} -tr.watchdog-page-not-found .active, tr.watchdog-access-denied .active { - background: #cec; -} -tr.watchdog-error { - background: #ffc9c9; -} -tr.watchdog-error .active { - background: #eeb9b9; -} - -/* Tab navigation */ -ul.primary { - border-collapse: collapse; - padding: 0 0 0 1em; - white-space: nowrap; - list-style: none; - margin: 5px; - height: auto; - line-height: normal; - border-bottom: 1px solid #bbb; -} -ul.primary li { - display: inline; -} -ul.primary li a { - background-color: #ddd; - border-color: #bbb; - border-width: 1px; - border-style: solid solid none solid; - height: auto; - margin-right: 0.5em; - padding: 0 1em; - text-decoration: none; -} -ul.primary li.active a { - background-color: #fff; - border: 1px solid #bbb; - border-bottom: #fff 1px solid; -} -ul.primary li a:hover { - background-color: #eee; - border-color: #ccc; - border-bottom-color: #eee; -} -ul.secondary { - border-bottom: 1px solid #bbb; - padding: 0.5em 1em 0.5em 1em; - margin: 5px; -} -ul.secondary li { - display: inline; - padding: 0 1em; - border-right: 1px solid #ccc; -} -ul.secondary a { - padding: 0; - text-decoration: none; -} -ul.secondary a.active { - border-bottom: 4px solid #999; -} - -/* -** Help module -*/ -.help-items { - float: left; - width: 22%; - padding-right: 3%; -} -.help-items-last { - padding-right: 0; -} - -/* -** Autocomplete styles -*/ -/* Suggestion list */ -#autocomplete { - position: absolute; - border: 1px solid; - overflow: hidden; -} -#autocomplete ul { - margin: 0; - padding: 0; - list-style: none; -} -#autocomplete li { - background: #fff; - color: #000; - white-space: pre; - cursor: default; -} -#autocomplete li.selected { - background: #0072b9; - color: #fff; -} -/* Animated throbber */ -html.js input.form-autocomplete { - background-image: url(throbber.gif); - background-repeat: no-repeat; - background-position: 100% 2px; -} -html.js input.throbbing { - background-position: 100% -18px; -} - -/* -** Progressbar styles -*/ -.progress { - font-weight: bold; -} -.progress .bar { - background: #fff url(progress.gif); - border: 1px solid #00375a; - height: 1.5em; - margin-top: 0.2em; -} -.progress .filled { - background: #0072b9; - height: 1em; - border-bottom: 0.5em solid #004a73; - width: 0%; -} -.progress .percentage { - float: right; -} - -/* -** Collapsing fieldsets -*/ -html.js fieldset.collapsed { - border-bottom-width: 0; - border-left-width: 0; - border-right-width: 0; - margin-bottom: 0; -} -html.js fieldset.collapsed * { - display: none; -} -html.js fieldset.collapsed table *, -html.js fieldset.collapsed legend, -html.js fieldset.collapsed legend * { - display: inline; -} -html.js fieldset.collapsible legend a { - padding-left: 15px; - background: url(menu-expanded.png) 5px 50% no-repeat; -} -html.js fieldset.collapsed legend a { - background-image: url(menu-collapsed.png); -} -/* Note: IE-only fix due to '* html' (breaks Konqueror otherwise). */ -* html.js fieldset.collapsible legend a { - display: block; -} - -/* -** Resizable text areas -*/ -.resizable-textarea { - width: 95%; -} -.resizable-textarea .grippie { - height: 14px; - background: #eee url(grippie.png) no-repeat 100% 100%; - border: 1px solid #ddd; - border-top-width: 0; - cursor: s-resize; -} - -/* -** Formatting for welcome page -*/ -#first-time strong { - display: block; - padding: 1.5em 0 .5em; -} diff --git a/misc/drupal.js b/misc/drupal.js deleted file mode 100644 index 9237b26..0000000 --- a/misc/drupal.js +++ /dev/null @@ -1,367 +0,0 @@ -// $Id: drupal.js 144 2007-03-28 07:52:20Z thierry $ - -/** - * Only enable Javascript functionality if all required features are supported. - */ -function isJsEnabled() { - if (typeof document.jsEnabled == 'undefined') { - // Note: ! casts to boolean implicitly. - document.jsEnabled = !( - !document.getElementsByTagName || - !document.createElement || - !document.createTextNode || - !document.documentElement || - !document.getElementById); - } - return document.jsEnabled; -} - -// Global Killswitch on the element -if (isJsEnabled()) { - document.documentElement.className = 'js'; -} - -/** - * Make IE's XMLHTTP object accessible through XMLHttpRequest() - */ -if (typeof XMLHttpRequest == 'undefined') { - XMLHttpRequest = function () { - var msxmls = ['MSXML3', 'MSXML2', 'Microsoft'] - for (var i=0; i < msxmls.length; i++) { - try { - return new ActiveXObject(msxmls[i]+'.XMLHTTP') - } - catch (e) { } - } - throw new Error("No XML component installed!"); - } -} - -/** - * Creates an HTTP GET request and sends the response to the callback function. - * - * Note that dynamic arguments in the URI should be escaped with encodeURIComponent(). - */ -function HTTPGet(uri, callbackFunction, callbackParameter) { - var xmlHttp = new XMLHttpRequest(); - var bAsync = true; - if (!callbackFunction) { - bAsync = false; - } - xmlHttp.open('GET', uri, bAsync); - xmlHttp.send(null); - - if (bAsync) { - if (callbackFunction) { - xmlHttp.onreadystatechange = function() { - if (xmlHttp.readyState == 4) { - callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter); - } - } - } - return xmlHttp; - } - else { - return xmlHttp.responseText; - } -} - -/** - * Creates an HTTP POST request and sends the response to the callback function - * - * Note: passing null or undefined for 'object' makes the request fail in Opera 8. - * Pass an empty string instead. - */ -function HTTPPost(uri, callbackFunction, callbackParameter, object) { - var xmlHttp = new XMLHttpRequest(); - var bAsync = true; - if (!callbackFunction) { - bAsync = false; - } - xmlHttp.open('POST', uri, bAsync); - - var toSend = ''; - if (typeof object == 'object') { - xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); - for (var i in object) { - toSend += (toSend ? '&' : '') + i + '=' + encodeURIComponent(object[i]); - } - } - else { - toSend = object; - } - xmlHttp.send(toSend); - - if (bAsync) { - if (callbackFunction) { - xmlHttp.onreadystatechange = function() { - if (xmlHttp.readyState == 4) { - callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter); - } - } - } - return xmlHttp; - } - else { - return xmlHttp.responseText; - } -} - -/** - * Redirects a button's form submission to a hidden iframe and displays the result - * in a given wrapper. The iframe should contain a call to - * window.parent.iframeHandler() after submission. - */ -function redirectFormButton(uri, button, handler) { - // (Re)create an iframe to target. - createIframe(); - - // Trap the button - button.onmouseover = button.onfocus = function() { - button.onclick = function() { - // Prepare variables for use in anonymous function. - var button = this; - var action = button.form.action; - var target = button.form.target; - - // Redirect form submission - this.form.action = uri; - this.form.target = 'redirect-target'; - - handler.onsubmit(); - - // Set iframe handler for later - window.iframeHandler = function () { - var iframe = $('redirect-target'); - // Restore form submission - button.form.action = action; - button.form.target = target; - - // Get response from iframe body - try { - response = (iframe.contentWindow || iframe.contentDocument || iframe).document.body.innerHTML; - // Firefox 1.0.x hack: Remove (corrupted) control characters - response = response.replace(/[\f\n\r\t]/g, ' '); - if (window.opera) { - // Opera-hack: it returns innerHTML sanitized. - response = response.replace(/"/g, '"'); - } - } - catch (e) { - response = null; - } - - $('redirect-target').onload = null; - $('redirect-target').src = 'about:blank'; - - response = parseJson(response); - // Check response code - if (response.status == 0) { - handler.onerror(response.data); - return; - } - handler.oncomplete(response.data); - } - - return true; - } - } - button.onmouseout = button.onblur = function() { - button.onclick = null; - } -} - -/** - * Adds a function to the window onload event - */ -function addLoadEvent(func) { - var oldOnload = window.onload; - if (typeof window.onload != 'function') { - window.onload = func; - } - else { - window.onload = function() { - oldOnload(); - func(); - } - } -} - -/** - * Adds a function to a given form's submit event - */ -function addSubmitEvent(form, func) { - var oldSubmit = form.onsubmit; - if (typeof oldSubmit != 'function') { - form.onsubmit = func; - } - else { - form.onsubmit = function() { - return oldSubmit() && func(); - } - } -} - -/** - * Retrieves the absolute position of an element on the screen - */ -function absolutePosition(el) { - var sLeft = 0, sTop = 0; - var isDiv = /^div$/i.test(el.tagName); - if (isDiv && el.scrollLeft) { - sLeft = el.scrollLeft; - } - if (isDiv && el.scrollTop) { - sTop = el.scrollTop; - } - var r = { x: el.offsetLeft - sLeft, y: el.offsetTop - sTop }; - if (el.offsetParent) { - var tmp = absolutePosition(el.offsetParent); - r.x += tmp.x; - r.y += tmp.y; - } - return r; -}; - -function dimensions(el) { - return { width: el.offsetWidth, height: el.offsetHeight }; -} - -/** - * Returns true if an element has a specified class name - */ -function hasClass(node, className) { - if (node.className == className) { - return true; - } - var reg = new RegExp('(^| )'+ className +'($| )') - if (reg.test(node.className)) { - return true; - } - return false; -} - -/** - * Adds a class name to an element - */ -function addClass(node, className) { - if (hasClass(node, className)) { - return false; - } - node.className += ' '+ className; - return true; -} - -/** - * Removes a class name from an element - */ -function removeClass(node, className) { - if (!hasClass(node, className)) { - return false; - } - // Replaces words surrounded with whitespace or at a string border with a space. Prevents multiple class names from being glued together. - node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className); - return true; -} - -/** - * Toggles a class name on or off for an element - */ -function toggleClass(node, className) { - if (!removeClass(node, className) && !addClass(node, className)) { - return false; - } - return true; -} - -/** - * Emulate PHP's ereg_replace function in javascript - */ -function eregReplace(search, replace, subject) { - return subject.replace(new RegExp(search,'g'), replace); -} - -/** - * Removes an element from the page - */ -function removeNode(node) { - if (typeof node == 'string') { - node = $(node); - } - if (node && node.parentNode) { - return node.parentNode.removeChild(node); - } - else { - return false; - } -} - -/** - * Prevents an event from propagating. - */ -function stopEvent(event) { - if (event.preventDefault) { - event.preventDefault(); - event.stopPropagation(); - } - else { - event.returnValue = false; - event.cancelBubble = true; - } -} - -/** - * Parse a JSON response. - * - * The result is either the JSON object, or an object with 'status' 0 and 'data' an error message. - */ -function parseJson(data) { - if (data.substring(0,1) != '{') { - return { status: 0, data: data.length ? data : 'Unspecified error' }; - } - return eval('(' + data + ');'); -} - -/** - * Create an invisible iframe for form submissions. - */ -function createIframe() { - // Delete any previous iframe - deleteIframe(); - // Note: some browsers require the literal name/id attributes on the tag, - // some want them set through JS. We do both. - window.iframeHandler = function () {}; - var div = document.createElement('div'); - div.id = 'redirect-holder'; - div.innerHTML = ''; - var iframe = div.firstChild; - with (iframe) { - name = 'redirect-target'; - setAttribute('name', 'redirect-target'); - id = 'redirect-target'; - } - with (iframe.style) { - position = 'absolute'; - height = '1px'; - width = '1px'; - visibility = 'hidden'; - } - document.body.appendChild(div); -} - -/** - * Delete the invisible iframe for form submissions. - */ -function deleteIframe() { - var holder = $('redirect-holder'); - if (holder != null) { - removeNode(holder); - } -} - -/** - * Wrapper around document.getElementById(). - */ -function $(id) { - return document.getElementById(id); -} diff --git a/misc/druplicon.png b/misc/druplicon.png deleted file mode 100644 index 6a77038..0000000 Binary files a/misc/druplicon.png and /dev/null differ diff --git a/misc/favicon.ico b/misc/favicon.ico deleted file mode 100644 index 18e2d52..0000000 Binary files a/misc/favicon.ico and /dev/null differ diff --git a/misc/feed.png b/misc/feed.png deleted file mode 100644 index 1679ab0..0000000 Binary files a/misc/feed.png and /dev/null differ diff --git a/misc/forum-closed.png b/misc/forum-closed.png deleted file mode 100644 index e7b6f5e..0000000 Binary files a/misc/forum-closed.png and /dev/null differ diff --git a/misc/forum-default.png b/misc/forum-default.png deleted file mode 100644 index b3d9cad..0000000 Binary files a/misc/forum-default.png and /dev/null differ diff --git a/misc/forum-hot-new.png b/misc/forum-hot-new.png deleted file mode 100644 index bae2d5c..0000000 Binary files a/misc/forum-hot-new.png and /dev/null differ diff --git a/misc/forum-hot.png b/misc/forum-hot.png deleted file mode 100644 index e3c1a74..0000000 Binary files a/misc/forum-hot.png and /dev/null differ diff --git a/misc/forum-new.png b/misc/forum-new.png deleted file mode 100644 index 9539c39..0000000 Binary files a/misc/forum-new.png and /dev/null differ diff --git a/misc/forum-sticky.png b/misc/forum-sticky.png deleted file mode 100644 index fe96423..0000000 Binary files a/misc/forum-sticky.png and /dev/null differ diff --git a/misc/grippie.png b/misc/grippie.png deleted file mode 100644 index d863dc7..0000000 Binary files a/misc/grippie.png and /dev/null differ diff --git a/misc/maintenance.css b/misc/maintenance.css deleted file mode 100644 index b2bf106..0000000 --- a/misc/maintenance.css +++ /dev/null @@ -1,55 +0,0 @@ -/* $Id: maintenance.css 144 2007-03-28 07:52:20Z thierry $ */ - -body { - background: url(druplicon.png) 4.2em 4em no-repeat #fff; - color: #000; - border: 1px solid #bbb; - margin: 3em; - padding: 1em 1em 1em 128px; -} -h1 { - margin: 1.6em 0 1.1em 0; -} -h1, h2, h3, h4, h5, h6 { - font-family: sans-serif; -} -:link { - color: #0073ba; - font-weight: bold; -} -:visited { - color: #004975; - font-weight: bold; -} - -div.messages { - border: 1px solid #ddd; - padding: 0.4em; - margin-top: 1em; -} - -div.error { - border: 1px solid #daa; -} - -/* Update styles */ -#update-results { - margin-top: 3em; - padding: 0.25em; - border: 1px solid #ccc; - background: #eee; - font-size: smaller; -} -#update-results h2 { - margin-top: 0.25em; -} -#update-results h4 { - margin-bottom: 0.25em; -} -#update-results li.none { - color: #888; - font-style: italic; -} -#update-results li.failure strong { - color: #b63300; -} diff --git a/misc/menu-collapsed.png b/misc/menu-collapsed.png deleted file mode 100644 index 95a214a..0000000 Binary files a/misc/menu-collapsed.png and /dev/null differ diff --git a/misc/menu-expanded.png b/misc/menu-expanded.png deleted file mode 100644 index 46f39ec..0000000 Binary files a/misc/menu-expanded.png and /dev/null differ diff --git a/misc/menu-leaf.png b/misc/menu-leaf.png deleted file mode 100644 index 827ba08..0000000 Binary files a/misc/menu-leaf.png and /dev/null differ diff --git a/misc/powered-black-135x42.png b/misc/powered-black-135x42.png deleted file mode 100644 index 00e18e7..0000000 Binary files a/misc/powered-black-135x42.png and /dev/null differ diff --git a/misc/powered-black-80x15.png b/misc/powered-black-80x15.png deleted file mode 100644 index 2944857..0000000 Binary files a/misc/powered-black-80x15.png and /dev/null differ diff --git a/misc/powered-black-88x31.png b/misc/powered-black-88x31.png deleted file mode 100644 index 24c1b5e..0000000 Binary files a/misc/powered-black-88x31.png and /dev/null differ diff --git a/misc/powered-blue-135x42.png b/misc/powered-blue-135x42.png deleted file mode 100644 index cace802..0000000 Binary files a/misc/powered-blue-135x42.png and /dev/null differ diff --git a/misc/powered-blue-80x15.png b/misc/powered-blue-80x15.png deleted file mode 100644 index c77d851..0000000 Binary files a/misc/powered-blue-80x15.png and /dev/null differ diff --git a/misc/powered-blue-88x31.png b/misc/powered-blue-88x31.png deleted file mode 100644 index 738661c..0000000 Binary files a/misc/powered-blue-88x31.png and /dev/null differ diff --git a/misc/powered-gray-135x42.png b/misc/powered-gray-135x42.png deleted file mode 100644 index 1257741..0000000 Binary files a/misc/powered-gray-135x42.png and /dev/null differ diff --git a/misc/powered-gray-80x15.png b/misc/powered-gray-80x15.png deleted file mode 100644 index 0c9af99..0000000 Binary files a/misc/powered-gray-80x15.png and /dev/null differ diff --git a/misc/powered-gray-88x31.png b/misc/powered-gray-88x31.png deleted file mode 100644 index 668089d..0000000 Binary files a/misc/powered-gray-88x31.png and /dev/null differ diff --git a/misc/print.css b/misc/print.css deleted file mode 100644 index 153772a..0000000 --- a/misc/print.css +++ /dev/null @@ -1,26 +0,0 @@ -/* $Id: print.css 144 2007-03-28 07:52:20Z thierry $ */ - -body { - margin: 1em; - background-color: #fff; -} -th { - text-align: left; - color: #006; - border-bottom: 1px solid #ccc; -} -tr.odd { - background-color: #ddd; -} -tr.even { - background-color: #fff; -} -td { - padding: 5px; -} -#menu { - visibility: hidden; -} -#main { - margin: 1em; -} diff --git a/misc/progress.gif b/misc/progress.gif deleted file mode 100644 index 6d8652e..0000000 Binary files a/misc/progress.gif and /dev/null differ diff --git a/misc/progress.js b/misc/progress.js deleted file mode 100644 index 159ddf2..0000000 --- a/misc/progress.js +++ /dev/null @@ -1,118 +0,0 @@ -// $Id: progress.js 144 2007-03-28 07:52:20Z thierry $ - -/** - * A progressbar object. Initialized with the given id. Must be inserted into - * the DOM afterwards through progressBar.element. - * - * method is the function which will perform the HTTP request to get the - * progress bar state. Either HTTPGet or HTTPPost. - * - * e.g. pb = new progressBar('myProgressBar'); - * some_element.appendChild(pb.element); - */ -function progressBar(id, updateCallback, method, errorCallback) { - var pb = this; - this.id = id; - this.method = method ? method : HTTPGet; - this.updateCallback = updateCallback; - this.errorCallback = errorCallback; - - this.element = document.createElement('div'); - this.element.id = id; - this.element.className = 'progress'; - this.element.innerHTML = '
'+ - '
 
'+ - '
'; -} - -/** - * Set the percentage and status message for the progressbar. - */ -progressBar.prototype.setProgress = function (percentage, message) { - var divs = this.element.getElementsByTagName('div'); - var div; - for (var i = 0; div = divs[i]; ++i) { - if (percentage >= 0) { - if (hasClass(divs[i], 'filled')) { - divs[i].style.width = percentage + '%'; - } - if (hasClass(divs[i], 'percentage')) { - divs[i].innerHTML = percentage + '%'; - } - } - if (hasClass(divs[i], 'message')) { - divs[i].innerHTML = message; - } - } - if (this.updateCallback) { - this.updateCallback(percentage, message, this); - } -} - -/** - * Start monitoring progress via Ajax. - */ -progressBar.prototype.startMonitoring = function (uri, delay) { - this.delay = delay; - this.uri = uri; - this.sendPing(); -} - -/** - * Stop monitoring progress via Ajax. - */ -progressBar.prototype.stopMonitoring = function () { - clearTimeout(this.timer); - // This allows monitoring to be stopped from within the callback - this.uri = null; -} - -/** - * Request progress data from server. - */ -progressBar.prototype.sendPing = function () { - if (this.timer) { - clearTimeout(this.timer); - } - if (this.uri) { - this.method(this.uri, this.receivePing, this, ''); - } -} - -/** - * HTTP callback function. Passes data back to the progressbar and sets a new - * timer for the next ping. - */ -progressBar.prototype.receivePing = function (string, xmlhttp, pb) { - if (xmlhttp.status != 200) { - return pb.displayError('An HTTP error '+ xmlhttp.status +' occured.\n'+ pb.uri); - } - // Parse response - var progress = parseJson(string); - // Display errors - if (progress.status == 0) { - pb.displayError(progress.data); - return; - } - - // Update display - pb.setProgress(progress.percentage, progress.message); - // Schedule next timer - pb.timer = setTimeout(function() { pb.sendPing(); }, pb.delay); -} - -/** - * Display errors on the page. - */ -progressBar.prototype.displayError = function (string) { - var error = document.createElement('div'); - error.className = 'error'; - error.innerHTML = string; - - this.element.style.display = 'none'; - this.element.parentNode.insertBefore(error, this.element); - - if (this.errorCallback) { - this.errorCallback(this); - } -} diff --git a/misc/textarea.js b/misc/textarea.js deleted file mode 100644 index 03b0d61..0000000 --- a/misc/textarea.js +++ /dev/null @@ -1,122 +0,0 @@ -// $Id: textarea.js 144 2007-03-28 07:52:20Z thierry $ - -if (isJsEnabled()) { - addLoadEvent(textAreaAutoAttach); -} - -function textAreaAutoAttach(event, parent) { - if (typeof parent == 'undefined') { - // Attach to all visible textareas. - textareas = document.getElementsByTagName('textarea'); - } - else { - // Attach to all visible textareas inside parent. - textareas = parent.getElementsByTagName('textarea'); - } - var textarea; - for (var i = 0; textarea = textareas[i]; ++i) { - if (hasClass(textarea, 'resizable') && !hasClass(textarea.nextSibling, 'grippie')) { - if (typeof dimensions(textarea).width != 'undefined' && dimensions(textarea).width != 0) { - new textArea(textarea); - } - } - } -} - -function textArea(element) { - var ta = this; - this.element = element; - this.parent = this.element.parentNode; - this.dimensions = dimensions(element); - - // Prepare wrapper - this.wrapper = document.createElement('div'); - this.wrapper.className = 'resizable-textarea'; - this.parent.insertBefore(this.wrapper, this.element); - - // Add grippie and measure it - this.grippie = document.createElement('div'); - this.grippie.className = 'grippie'; - this.wrapper.appendChild(this.grippie); - this.grippie.dimensions = dimensions(this.grippie); - this.grippie.onmousedown = function (e) { ta.beginDrag(e); }; - - // Set wrapper and textarea dimensions - this.wrapper.style.height = this.dimensions.height + this.grippie.dimensions.height + 1 +'px'; - this.element.style.marginBottom = '0px'; - this.element.style.width = '100%'; - this.element.style.height = this.dimensions.height +'px'; - - // Wrap textarea - removeNode(this.element); - this.wrapper.insertBefore(this.element, this.grippie); - - // Measure difference between desired and actual textarea dimensions to account for padding/borders - this.widthOffset = dimensions(this.wrapper).width - this.dimensions.width; - - // Make the grippie line up in various browsers - if (window.opera) { - // Opera - this.grippie.style.marginRight = '4px'; - } - if (document.all && !window.opera) { - // IE - this.grippie.style.width = '100%'; - this.grippie.style.paddingLeft = '2px'; - } - // Mozilla - this.element.style.MozBoxSizing = 'border-box'; - - this.heightOffset = absolutePosition(this.grippie).y - absolutePosition(this.element).y - this.dimensions.height; -} - -textArea.prototype.beginDrag = function (event) { - if (document.isDragging) { - return; - } - document.isDragging = true; - - event = event || window.event; - // Capture mouse - var cp = this; - this.oldMoveHandler = document.onmousemove; - document.onmousemove = function(e) { cp.handleDrag(e); }; - this.oldUpHandler = document.onmouseup; - document.onmouseup = function(e) { cp.endDrag(e); }; - - // Store drag offset from grippie top - var pos = absolutePosition(this.grippie); - this.dragOffset = event.clientY - pos.y; - - // Make transparent - this.element.style.opacity = 0.5; - - // Process - this.handleDrag(event); -} - -textArea.prototype.handleDrag = function (event) { - event = event || window.event; - // Get coordinates relative to text area - var pos = absolutePosition(this.element); - var y = event.clientY - pos.y; - - // Set new height - var height = Math.max(32, y - this.dragOffset - this.heightOffset); - this.wrapper.style.height = height + this.grippie.dimensions.height + 1 + 'px'; - this.element.style.height = height + 'px'; - - // Avoid text selection - stopEvent(event); -} - -textArea.prototype.endDrag = function (event) { - // Uncapture mouse - document.onmousemove = this.oldMoveHandler; - document.onmouseup = this.oldUpHandler; - - // Restore opacity - this.element.style.opacity = 1.0; - document.isDragging = false; -} - diff --git a/misc/throbber.gif b/misc/throbber.gif deleted file mode 100644 index 4352e64..0000000 Binary files a/misc/throbber.gif and /dev/null differ diff --git a/misc/update.js b/misc/update.js deleted file mode 100644 index 5123bb4..0000000 --- a/misc/update.js +++ /dev/null @@ -1,33 +0,0 @@ -// $Id: update.js 144 2007-03-28 07:52:20Z thierry $ - -if (isJsEnabled()) { - addLoadEvent(function() { - if ($('edit-has_js')) { - $('edit-has_js').value = 1; - } - - if ($('progress')) { - // Success: redirect to the summary. - var updateCallback = function (progress, status, pb) { - if (progress == 100) { - pb.stopMonitoring(); - window.location = window.location.href.split('op=')[0] +'op=finished'; - } - } - - // Failure: point out error message and provide link to the summary. - var errorCallback = function (pb) { - var div = document.createElement('p'); - div.className = 'error'; - div.innerHTML = 'An unrecoverable error has occured. You can find the error message below. It is advised to copy it to the clipboard for reference. Please continue to the update summary'; - $('progress').insertBefore(div, $('progress').firstChild); - $('wait').style.display = 'none'; - } - - var progress = new progressBar('updateprogress', updateCallback, HTTPPost, errorCallback); - progress.setProgress(-1, 'Starting updates'); - $('progress').appendChild(progress.element); - progress.startMonitoring('update.php?op=do_update', 0); - } - }); -} diff --git a/misc/upload.js b/misc/upload.js deleted file mode 100644 index aa07f70..0000000 --- a/misc/upload.js +++ /dev/null @@ -1,75 +0,0 @@ -// $Id: upload.js 144 2007-03-28 07:52:20Z thierry $ - -// Global killswitch -if (isJsEnabled()) { - addLoadEvent(uploadAutoAttach); -} - -/** - * Attaches the upload behaviour to the upload form. - */ -function uploadAutoAttach() { - var inputs = document.getElementsByTagName('input'); - for (i = 0; input = inputs[i]; i++) { - if (input && hasClass(input, 'upload')) { - var uri = input.value; - // Extract the button ID based on a substring of the input name: edit[foo][bar] -> foo-bar - var button = input.name.substr(5, input.name.length - 6).replace('][', '-'); - var wrapper = button + '-wrapper'; - var hide = button + '-hide'; - var upload = new jsUpload(uri, button, wrapper, hide); - } - } -} - -/** - * JS upload object. - */ -function jsUpload(uri, button, wrapper, hide) { - this.button = button; - this.wrapper = wrapper; - this.hide = hide; - redirectFormButton(uri, $(button), this); -} - -/** - * Handler for the form redirection submission. - */ -jsUpload.prototype.onsubmit = function () { - var hide = $(this.hide); - // Insert progressbar and stretch to take the same space. - this.progress = new progressBar('uploadprogress'); - this.progress.setProgress(-1, 'Uploading file'); - this.progress.element.style.width = '28em'; - this.progress.element.style.height = hide.offsetHeight +'px'; - hide.parentNode.insertBefore(this.progress.element, hide); - // Hide file form (cannot use display: none, this mysteriously aborts form - // submission in Konqueror) - hide.style.position = 'absolute'; - hide.style.left = '-2000px'; -} - -/** - * Handler for the form redirection completion. - */ -jsUpload.prototype.oncomplete = function (data) { - // Remove progressbar - removeNode(this.progress.element); - this.progress = null; - // Replace form and re-attach behaviour - $(this.wrapper).innerHTML = data; - uploadAutoAttach(); -} - -/** - * Handler for the form redirection error. - */ -jsUpload.prototype.onerror = function (error) { - alert('An error occurred:\n\n'+ error); - // Remove progressbar - removeNode(this.progress.element); - this.progress = null; - // Undo hide - $(this.hide).style.position = 'static'; - $(this.hide).style.left = '0px'; -} diff --git a/misc/watchdog-error.png b/misc/watchdog-error.png deleted file mode 100644 index e2ed440..0000000 Binary files a/misc/watchdog-error.png and /dev/null differ diff --git a/misc/watchdog-warning.png b/misc/watchdog-warning.png deleted file mode 100644 index 816ded5..0000000 Binary files a/misc/watchdog-warning.png and /dev/null differ diff --git a/misc/xml.png b/misc/xml.png deleted file mode 100644 index a7cc689..0000000 Binary files a/misc/xml.png and /dev/null differ