summaryrefslogtreecommitdiff
path: root/html/javascript
diff options
context:
space:
mode:
authoranbr <vdr07@deltab.de>2011-10-08 07:43:51 +0200
committeranbr <vdr07@deltab.de>2011-10-08 07:43:51 +0200
commit85d4bfa04ce28b5ec3eb0054306c43bc59c55128 (patch)
treed7878021068d70e2a4ab3044beb5f770a57fc980 /html/javascript
parenta71b70567ed73853367d972a95d2a346b2f93989 (diff)
downloadxxv-85d4bfa04ce28b5ec3eb0054306c43bc59c55128.tar.gz
xxv-85d4bfa04ce28b5ec3eb0054306c43bc59c55128.tar.bz2
Merge skins into common directory
Diffstat (limited to 'html/javascript')
-rw-r--r--html/javascript/XHConn.js41
-rw-r--r--html/javascript/global.js173
-rw-r--r--html/javascript/helptip.js240
-rw-r--r--html/javascript/records.js26
-rw-r--r--html/javascript/tabpane.js368
-rw-r--r--html/javascript/tooltip.js210
-rw-r--r--html/javascript/xtree.js541
7 files changed, 0 insertions, 1599 deletions
diff --git a/html/javascript/XHConn.js b/html/javascript/XHConn.js
deleted file mode 100644
index 537b555..0000000
--- a/html/javascript/XHConn.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/** XHRequest based on **
- ** XHConn - Simple XMLHTTP Interface - bfults@gmail.com - 2005-04-08 **
- ** Code licensed under Creative Commons Attribution-ShareAlike License **
- ** http://creativecommons.org/licenses/by-sa/2.0/ **/
-
-function XHRequest()
-{
- var xmlhttp, bComplete = false;
- try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
- catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
- catch (e) { try { xmlhttp = new XMLHttpRequest(); }
- catch (e) { xmlhttp = false; }}}
- if (!xmlhttp)
- return null;
-
- this.connect = function(sRequest, fnDone, sData)
- {
- if (!xmlhttp) return false;
- bComplete = false;
-
- try {
- xmlhttp.open("GET", sRequest, true);
- xmlhttp.onreadystatechange = function()
- {
- if (xmlhttp.readyState == 4 && !bComplete)
- {
- bComplete = true;
- fnDone(xmlhttp, sData);
- }
- };
- xmlhttp.send(null);
- } catch(z) { alert(z); return false; }
- return true;
- };
- return this;
-}
-
-var ajaxconn = new XHRequest();
-
-if (!ajaxconn)
- alert("XMLHTTP not available. Try a newer/better browser.");
diff --git a/html/javascript/global.js b/html/javascript/global.js
deleted file mode 100644
index 8572445..0000000
--- a/html/javascript/global.js
+++ /dev/null
@@ -1,173 +0,0 @@
-// To status frame und dann refresh der seite
-function tostatus(url) {
- myoldurl = location.href;
- location.href = url;
-}
-
-// Redirect
-function redirect(url, wait, par) {
- if(! wait) {
- wait = 0.1;
- }
- if(par) {
- window.setTimeout(par + '.location.href = "' + url + '"', wait * 1000);
- } else {
- window.setTimeout('location.href = "' + url + '"', wait * 1000);
- }
-}
-
-// Program choose
-function di(wert, url) {
- location.href = url + wert;
-}
-
-// Question bevor delete
-function sure(form, text, url, id) {
- id = (id) ? id : '';
- var erg = confirm(text);
- var refe = encodeURIComponent(form.referer.value);
- if(erg == true) {
- var callurl = url + id + '&referer=' + refe;
- location.href = callurl;
- }
-}
-
-function Delete(question,warn,cmd,form) {
-// test on checked Boxes
- ok = new Array;
- txt = new Array;
- x = 0;
- for(var i=0;i<form.length;++i) {
- var id;
- if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
- id = form.elements[i].value;
- ok.push(id);
- txt.push(form.elements[i].name);
- form.elements[i].checked = 0;
- x += 1;
- }
- }
- if(x > 0) {
- if(confirm(question + '\n' + txt.join("\n"))) {
- tostatus('?cmd=' + cmd + '&data=' + ok.join('_'));
- }
- } else {
- alert(warn);
- }
-}
-
-function Toggle(warn,form) {
-// test on checked Boxes
- ok = new Array;
- txt = new Array;
- x = 0;
- for(var i=0;i<form.length;++i) {
- var id;
- if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
- id = form.elements[i].value;
- ok.push(id);
- txt.push(form.elements[i].name);
- form.elements[i].checked = 0;
- x += 1;
- }
- }
- if(x > 0) {
- tostatus('?cmd=ttoggle&data=' + ok.join('_'));
- } else {
- alert(warn);
- }
-}
-
-function selAll(form, type) {
-// check all Boxes
- for(var i=0;i<form.length;++i) {
- if(form.elements[i].type == 'checkbox') {
- form.elements[i].checked = type;
- }
- }
-}
-
-function selSwitch(form, search) {
-// switch Boxes with search in name on or off
- for(var i=0;i<form.length;++i) {
- if(form.elements[i].type == 'checkbox' && form.elements[i].name == search) {
- if(form.elements[i].checked) {
- form.elements[i].checked = 0;
- } else {
- form.elements[i].checked = 1;
- }
- }
- }
-}
-
-function reverse(form) {
-// check all Boxes
- for(var i=0;i<form.length;++i) {
- if(form.elements[i].type == 'checkbox') {
- if(form.elements[i].checked) {
- form.elements[i].checked = 0;
- } else {
- form.elements[i].checked = 1;
- }
- }
- }
-}
-
-function Play(warnmsg,form) {
-// test on checked Boxes
- ok = new Array;
- x = 0;
- for(var i=0;i<form.length;++i) {
- var id;
- if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
- id = form.elements[i].value;
- ok.push(id);
- x += 1;
- }
- }
- if(x > 0) {
- var url = '?cmd=mplaylist&data=' + ok.join('_');
- location.href = url;
- } else {
- alert(warnmsg);
- }
-}
-
-/* -------------------- Widget Routines --------------- */
-
-/*
-- An AjaxCall to check for right values in HTML Widget
-checkValue(inputObject, msgId, perlCall, wrongMessage, goodMessage);
-checkValue(this, 'id<?% param.count %?>', 'getip', 'host: %s is not exists!', 'ip address is %s')
-*/
-function checkValue (valobj, msgname, cmd, wrongMsg, goodMsg) {
-
- var fnWhenDone = function (oXML, sData) {
- var val = sData[0];
- var msg = sData[1];
- var wrongMsg = sData[2];
- var goodMsg = sData[3];
-
- var o = eval("("+oXML.responseText+")");
- if(o && o.data && typeof(o.data) == 'string'
- && o.success && o.success == true) {
- msg.className = 'good';
- msg.innerHTML = goodMsg.replace('%s', o.data);
- } else {
- msg.className = 'error';
- msg.innerHTML = wrongMsg.replace('%s', o.data);
- }
- };
-
- var inputvalue = valobj.value;
- var msgobj = document.getElementById(msgname);
- msgobj.innerHTML = 'Check value ...';
-
- if(inputvalue) {
- var url = "?cmd=checkvalue&data=" + cmd + ":" + inputvalue + "&ajax=json";
- var aconn = new XHRequest();
- if(!aconn)
- return false;
- return aconn.connect(url, fnWhenDone, [valobj, msgobj, wrongMsg, goodMsg]);
- }
-}
diff --git a/html/javascript/helptip.js b/html/javascript/helptip.js
deleted file mode 100644
index 6c129d4..0000000
--- a/html/javascript/helptip.js
+++ /dev/null
@@ -1,240 +0,0 @@
-/*----------------------------------------------------------------------------\
-| Help Tip 1.12 |
-|-----------------------------------------------------------------------------|
-| Created by Erik Arvidsson |
-| (http://webfx.eae.net/contact.html#erik) |
-| For WebFX (http://webfx.eae.net/) |
-|-----------------------------------------------------------------------------|
-| A tool tip like script that can be used for context help |
-|-----------------------------------------------------------------------------|
-| Copyright (c) 1999 - 2002 Erik Arvidsson |
-|-----------------------------------------------------------------------------|
-| This software is provided "as is", without warranty of any kind, express or |
-| implied, including but not limited to the warranties of merchantability, |
-| fitness for a particular purpose and noninfringement. In no event shall the |
-| authors or copyright holders be liable for any claim, damages or other |
-| liability, whether in an action of contract, tort or otherwise, arising |
-| from, out of or in connection with the software or the use or other |
-| dealings in the software. |
-| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
-| This software is available under the three different licenses mentioned |
-| below. To use this software you must chose, and qualify, for one of those. |
-| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
-| The WebFX Non-Commercial License http://webfx.eae.net/license.html |
-| Permits anyone the right to use the software in a non-commercial context |
-| free of charge. |
-| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
-| The WebFX Commercial license http://webfx.eae.net/commercial.html |
-| Permits the license holder the right to use the software in a commercial |
-| context. Such license must be specifically obtained, however it's valid for |
-| any number of implementations of the licensed software. |
-| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
-| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt |
-| Permits anyone the right to use and modify the software without limitations |
-| as long as proper credits are given and the original and modified source |
-| code are included. Requires that the final product, software derivate from |
-| the original source or any software utilizing a GPL component, such as |
-| this, is also licensed under the GPL license. |
-|-----------------------------------------------------------------------------|
-| 2002-09-27 | |
-| 2001-11-25 | Added a resize to the tooltip if the document width is too |
-| | small. |
-| 2002-05-19 | IE50 did not recognise the JS keyword undefined so the test |
-| | for scroll support was updated to be IE50 friendly. |
-| 2002-07-06 | Added flag to hide selects for IE |
-| 2002-10-04 | (1.1) Restructured and made code more IE garbage collector |
-| | friendly. This solved the most nasty memory leaks. Also added |
-| | support for hiding the tooltip if ESC is pressed. |
-| 2002-10-18 | Fixed verrical position in case of scrolled document. |
-| 2002-12-02 | Mozilla bug workaround related to mousedown and move. |
-|-----------------------------------------------------------------------------|
-| Dependencies: helptip.css (To set up the CSS of the help-tooltip class) |
-|-----------------------------------------------------------------------------|
-| Usage: |
-| |
-| <script type="text/javascript" src="helptip.js">< /script> |
-| <link type="text/css" rel="StyleSheet" href="helptip.css" /> |
-| |
-| <a class="helpLink" href="?" onclick="showHelp(event, 'String to show'); |
-| return false">Help</a> |
-|-----------------------------------------------------------------------------|
-| Created 2001-09-27 | All changes are in the log above. | Updated 2002-12-02 |
-\----------------------------------------------------------------------------*/
-
-function showHelpTip(e, sHtml, bHideSelects) {
-
- // find anchor element
- var el = e.target || e.srcElement;
- while (el.tagName != "A")
- el = el.parentNode;
-
- // is there already a tooltip? If so, remove it
- if (el._helpTip) {
- helpTipHandler.hideHelpTip(el);
- }
-
- helpTipHandler.hideSelects = Boolean(bHideSelects);
-
- // create element and insert last into the body
- helpTipHandler.createHelpTip(el, sHtml);
-
- // position tooltip
- helpTipHandler.positionToolTip(e);
-
- // add a listener to the blur event.
- // When blurred remove tooltip and restore anchor
- el.onblur = helpTipHandler.anchorBlur;
- el.onkeydown = helpTipHandler.anchorKeyDown;
-}
-
-var helpTipHandler = {
- hideSelects: false,
-
- helpTip: null,
-
- showSelects: function (bVisible) {
- if (!this.hideSelects) return;
- // only IE actually do something in here
- var selects = [];
- if (document.all)
- selects = document.all.tags("SELECT");
- var l = selects.length;
- for (var i = 0; i < l; i++)
- selects[i].runtimeStyle.visibility = bVisible ? "" : "hidden";
- },
-
- create: function () {
- var d = document.createElement("DIV");
- d.className = "help-tooltip";
- d.onmousedown = this.helpTipMouseDown;
- d.onmouseup = this.helpTipMouseUp;
- document.body.appendChild(d);
- this.helpTip = d;
- },
-
- createHelpTip: function (el, sHtml) {
- if (this.helpTip == null) {
- this.create();
- }
-
- var d = this.helpTip;
- d.innerHTML = sHtml;
- d._boundAnchor = el;
- el._helpTip = d;
- return d;
- },
-
- // Allow clicks on A elements inside tooltip
- helpTipMouseDown: function (e) {
- var d = this;
- var el = d._boundAnchor;
- if (!e) e = event;
- var t = e.target || e.srcElement;
- while (t.tagName != "A" && t != d)
- t = t.parentNode;
- if (t == d) return;
-
- el._onblur = el.onblur;
- el.onblur = null;
- },
-
- helpTipMouseUp: function () {
- var d = this;
- var el = d._boundAnchor;
- el.onblur = el._onblur;
- el._onblur = null;
- el.focus();
- },
-
- anchorBlur: function (e) {
- var el = this;
- helpTipHandler.hideHelpTip(el);
- },
-
- anchorKeyDown: function (e) {
- if (!e) e = window.event
- if (e.keyCode == 27) { // ESC
- helpTipHandler.hideHelpTip(this);
- }
- },
-
- removeHelpTip: function (d) {
- d._boundAnchor = null;
- d.style.filter = "none";
- d.innerHTML = "";
- d.onmousedown = null;
- d.onmouseup = null;
- d.parentNode.removeChild(d);
- //d.style.display = "none";
- },
-
- hideHelpTip: function (el) {
- var d = el._helpTip;
- /* Mozilla (1.2+) starts a selection session when moved
- and this destroys the mouse events until reloaded
- d.style.top = -el.offsetHeight - 100 + "px";
- */
-
- d.style.visibility = "hidden";
- //d._boundAnchor = null;
-
- el.onblur = null;
- el._onblur = null;
- el._helpTip = null;
- el.onkeydown = null;
-
- this.showSelects(true);
- },
-
- positionToolTip: function (e) {
- this.showSelects(false);
- var scroll = this.getScroll();
- var d = this.helpTip;
-
- // width
- if (d.offsetWidth >= scroll.width)
- d.style.width = scroll.width - 10 + "px";
- else
- d.style.width = "";
-
- // left
- if (e.clientX > scroll.width - d.offsetWidth)
- d.style.left = scroll.width - d.offsetWidth + scroll.left + "px";
- else
- d.style.left = e.clientX - 2 + scroll.left + "px";
-
- // top
- if (e.clientY + d.offsetHeight + 18 < scroll.height)
- d.style.top = e.clientY + 18 + scroll.top + "px";
- else if (e.clientY - d.offsetHeight > 0)
- d.style.top = e.clientY + scroll.top - d.offsetHeight + "px";
- else
- d.style.top = scroll.top + 5 + "px";
-
- d.style.visibility = "visible";
- },
-
- // returns the scroll left and top for the browser viewport.
- getScroll: function () {
- if (document.all && typeof document.body.scrollTop != "undefined") { // IE model
- var ieBox = document.compatMode != "CSS1Compat";
- var cont = ieBox ? document.body : document.documentElement;
- return {
- left: cont.scrollLeft,
- top: cont.scrollTop,
- width: cont.clientWidth,
- height: cont.clientHeight
- };
- }
- else {
- return {
- left: window.pageXOffset,
- top: window.pageYOffset,
- width: window.innerWidth,
- height: window.innerHeight
- };
- }
-
- }
-
-}; \ No newline at end of file
diff --git a/html/javascript/records.js b/html/javascript/records.js
deleted file mode 100644
index c3e8faa..0000000
--- a/html/javascript/records.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Search for epgevents and check for future programming
-function checkrecord (name) {
- var fnWhenDone = function (oXML, sData) {
- if(oXML.responseText != 'ok') {
- var text = oXML.responseText.split(':');
- document.getElementById(sData).src = 'images/record_red.png';
- document.getElementById(sData).title = '<?% gettext('When you want this timer save then has him a conflict with timer: ') %?>' + text[0];
- document.getElementById(sData).className = 'problem';
- } else {
- document.getElementById(sData).src = 'images/record_green.png';
- document.getElementById(sData).className = 'noproblem';
- }
- };
-
- var tags = document.getElementsByName('recordlink');
- for (var i = 0; i < tags.length; i++) {
- var epgid = tags[i].id;
- var url = "?cmd=conflict&data=" + epgid + "&ajax=text";
- var aconn = new XHRequest();
- if(!aconn)
- return false;
- aconn.connect(url, fnWhenDone, epgid);
- }
-}
-
-window.onLoad = window.setTimeout("checkrecord('recordlink')", 1000);
diff --git a/html/javascript/tabpane.js b/html/javascript/tabpane.js
deleted file mode 100644
index 04b1550..0000000
--- a/html/javascript/tabpane.js
+++ /dev/null
@@ -1,368 +0,0 @@
-/*----------------------------------------------------------------------------\
-| Tab Pane 1.02 |
-|-----------------------------------------------------------------------------|
-| Created by Erik Arvidsson |
-| (http://webfx.eae.net/contact.html#erik) |
-| For WebFX (http://webfx.eae.net/) |
-|-----------------------------------------------------------------------------|
-| Copyright (c) 1998 - 2003 Erik Arvidsson |
-|-----------------------------------------------------------------------------|
-| This software is provided "as is", without warranty of any kind, express or |
-| implied, including but not limited to the warranties of merchantability, |
-| fitness for a particular purpose and noninfringement. In no event shall the |
-| authors or copyright holders be liable for any claim, damages or other |
-| liability, whether in an action of contract, tort or otherwise, arising |
-| from, out of or in connection with the software or the use or other |
-| dealings in the software. |
-| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
-| This software is available under the three different licenses mentioned |
-| below. To use this software you must chose, and qualify, for one of those. |
-| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
-| The WebFX Non-Commercial License http://webfx.eae.net/license.html |
-| Permits anyone the right to use the software in a non-commercial context |
-| free of charge. |
-| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
-| The WebFX Commercial license http://webfx.eae.net/commercial.html |
-| Permits the license holder the right to use the software in a commercial |
-| context. Such license must be specifically obtained, however it's valid for |
-| any number of implementations of the licensed software. |
-| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
-| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt |
-| Permits anyone the right to use and modify the software without limitations |
-| as long as proper credits are given and the original and modified source |
-| code are included. Requires that the final product, software derivate from |
-| the original source or any software utilizing a GPL component, such as |
-| this, is also licensed under the GPL license. |
-|-----------------------------------------------------------------------------|
-| 2002-01-?? | First working version |
-| 2002-02-17 | Cleaned up for 1.0 public version |
-| 2003-02-18 | Changed from javascript uri for anchors to return false |
-| 2003-03-03 | Added dispose methods to release IE memory |
-|-----------------------------------------------------------------------------|
-| Dependencies: *.css a css file to define the layout |
-|-----------------------------------------------------------------------------|
-| Created 2002-01-?? | All changes are in the log above. | Updated 2003-03-03 |
-\----------------------------------------------------------------------------*/
-
-// This function is used to define if the browser supports the needed
-// features
-function hasSupport() {
-
- if (typeof hasSupport.support != "undefined")
- return hasSupport.support;
-
- var ie55 = /msie 5\.[56789]/i.test( navigator.userAgent );
-
- hasSupport.support = ( typeof document.implementation != "undefined" &&
- document.implementation.hasFeature( "html", "1.0" ) || ie55 )
-
- // IE55 has a serious DOM1 bug... Patch it!
- if ( ie55 ) {
- document._getElementsByTagName = document.getElementsByTagName;
- document.getElementsByTagName = function ( sTagName ) {
- if ( sTagName == "*" )
- return document.all;
- else
- return document._getElementsByTagName( sTagName );
- };
- }
-
- return hasSupport.support;
-}
-
-///////////////////////////////////////////////////////////////////////////////////
-// The constructor for tab panes
-//
-// el : HTMLElement The html element used to represent the tab pane
-// bUseCookie : Boolean Optional. Default is true. Used to determine whether to us
-// persistance using cookies or not
-//
-function WebFXTabPane( el, bUseCookie ) {
- if ( !hasSupport() || el == null ) return;
-
- this.element = el;
- this.element.tabPane = this;
- this.pages = [];
- this.selectedIndex = null;
- this.useCookie = bUseCookie != null ? bUseCookie : true;
-
- // add class name tag to class name
- this.element.className = this.classNameTag + " " + this.element.className;
-
- // add tab row
- this.tabRow = document.createElement( "div" );
- this.tabRow.className = "tab-row";
- el.insertBefore( this.tabRow, el.firstChild );
-
- var tabIndex = 0;
- if ( this.useCookie ) {
- tabIndex = Number( WebFXTabPane.getCookie( "webfxtab_" + this.element.id ) );
- if ( isNaN( tabIndex ) )
- tabIndex = 0;
- }
- this.selectedIndex = tabIndex;
-
- // loop through child nodes and add them
- var cs = el.childNodes;
- var n;
- for (var i = 0; i < cs.length; i++) {
- if (cs[i].nodeType == 1 && cs[i].className == "tab-page") {
- this.addTabPage( cs[i] );
- }
- }
-}
-
-WebFXTabPane.prototype.classNameTag = "dynamic-tab-pane-control";
-
-WebFXTabPane.prototype.setSelectedIndex = function ( n ) {
- if (this.selectedIndex != n) {
- if (this.selectedIndex != null && this.pages[ this.selectedIndex ] != null )
- this.pages[ this.selectedIndex ].hide();
- this.selectedIndex = n;
- this.pages[ this.selectedIndex ].show();
-
- if ( this.useCookie )
- WebFXTabPane.setCookie( "webfxtab_" + this.element.id, n ); // session cookie
- }
-};
-
-WebFXTabPane.prototype.getSelectedIndex = function () {
- return this.selectedIndex;
-};
-
-WebFXTabPane.prototype.addTabPage = function ( oElement ) {
- if ( !hasSupport() ) return;
-
- if ( oElement.tabPage == this ) // already added
- return oElement.tabPage;
-
- var n = this.pages.length;
- var tp = this.pages[n] = new WebFXTabPage( oElement, this, n );
- tp.tabPane = this;
-
- // move the tab out of the box
- this.tabRow.appendChild( tp.tab );
-
- if ( n == this.selectedIndex )
- tp.show();
- else
- tp.hide();
-
- return tp;
-};
-
-WebFXTabPane.prototype.dispose = function () {
- this.element.tabPane = null;
- this.element = null;
- this.tabRow = null;
-
- for (var i = 0; i < this.pages.length; i++) {
- this.pages[i].dispose();
- this.pages[i] = null;
- }
- this.pages = null;
-};
-
-
-
-// Cookie handling
-WebFXTabPane.setCookie = function ( sName, sValue, nDays ) {
- var expires = "";
- if ( nDays ) {
- var d = new Date();
- d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 );
- expires = "; expires=" + d.toGMTString();
- }
-
- document.cookie = sName + "=" + sValue + expires + "; path=/";
-};
-
-WebFXTabPane.getCookie = function (sName) {
- var re = new RegExp( "(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)" );
- var res = re.exec( document.cookie );
- return res != null ? res[3] : null;
-};
-
-WebFXTabPane.removeCookie = function ( name ) {
- setCookie( name, "", -1 );
-};
-
-
-
-
-
-
-
-
-///////////////////////////////////////////////////////////////////////////////////
-// The constructor for tab pages. This one should not be used.
-// Use WebFXTabPage.addTabPage instead
-//
-// el : HTMLElement The html element used to represent the tab pane
-// tabPane : WebFXTabPane The parent tab pane
-// nindex : Number The index of the page in the parent pane page array
-//
-function WebFXTabPage( el, tabPane, nIndex ) {
- if ( !hasSupport() || el == null ) return;
-
- this.element = el;
- this.element.tabPage = this;
- this.index = nIndex;
-
- var cs = el.childNodes;
- for (var i = 0; i < cs.length; i++) {
- if (cs[i].nodeType == 1 && cs[i].className == "tab") {
- this.tab = cs[i];
- break;
- }
- }
-
- // insert a tag around content to support keyboard navigation
-
-
- var a = document.createElement( "A" );
- this.aElement = a;
- a.href = "#";
- a.onclick = function () { return false; };
- while ( this.tab.hasChildNodes() )
- a.appendChild( this.tab.firstChild );
- this.tab.appendChild( a );
-
-
- // hook up events, using DOM0
- var oThis = this;
- this.tab.onclick = function () { oThis.select(); };
- this.tab.onmouseover = function () { WebFXTabPage.tabOver( oThis ); };
- this.tab.onmouseout = function () { WebFXTabPage.tabOut( oThis ); };
-}
-
-WebFXTabPage.prototype.show = function () {
- var el = this.tab;
- var s = el.className + " selected";
- s = s.replace(/ +/g, " ");
- el.className = s;
-
- this.element.style.display = "block";
-};
-
-WebFXTabPage.prototype.hide = function () {
- var el = this.tab;
- var s = el.className;
- s = s.replace(/ selected/g, "");
- el.className = s;
-
- this.element.style.display = "none";
-};
-
-WebFXTabPage.prototype.select = function () {
- this.tabPane.setSelectedIndex( this.index );
-};
-
-WebFXTabPage.prototype.dispose = function () {
- this.aElement.onclick = null;
- this.aElement = null;
- this.element.tabPage = null;
- this.tab.onclick = null;
- this.tab.onmouseover = null;
- this.tab.onmouseout = null;
- this.tab = null;
- this.tabPane = null;
- this.element = null;
-};
-
-WebFXTabPage.tabOver = function ( tabpage ) {
- var el = tabpage.tab;
- var s = el.className + " hover";
- s = s.replace(/ +/g, " ");
- el.className = s;
-};
-
-WebFXTabPage.tabOut = function ( tabpage ) {
- var el = tabpage.tab;
- var s = el.className;
- s = s.replace(/ hover/g, "");
- el.className = s;
-};
-
-
-// This function initializes all uninitialized tab panes and tab pages
-function setupAllTabs() {
- if ( !hasSupport() ) return;
-
- var all = document.getElementsByTagName( "*" );
- var l = all.length;
- var tabPaneRe = /tab\-pane/;
- var tabPageRe = /tab\-page/;
- var cn, el;
- var parentTabPane;
-
- for ( var i = 0; i < l; i++ ) {
- el = all[i]
- cn = el.className;
-
- // no className
- if ( cn == "" ) continue;
-
- // uninitiated tab pane
- if ( tabPaneRe.test( cn ) && !el.tabPane )
- new WebFXTabPane( el );
-
- // unitiated tab page wit a valid tab pane parent
- else if ( tabPageRe.test( cn ) && !el.tabPage &&
- tabPaneRe.test( el.parentNode.className ) ) {
- el.parentNode.tabPane.addTabPage( el );
- }
- }
-}
-
-function disposeAllTabs() {
- if ( !hasSupport() ) return;
-
- var all = document.getElementsByTagName( "*" );
- var l = all.length;
- var tabPaneRe = /tab\-pane/;
- var cn, el;
- var tabPanes = [];
-
- for ( var i = 0; i < l; i++ ) {
- el = all[i]
- cn = el.className;
-
- // no className
- if ( cn == "" ) continue;
-
- // tab pane
- if ( tabPaneRe.test( cn ) && el.tabPane )
- tabPanes[tabPanes.length] = el.tabPane;
- }
-
- for (var i = tabPanes.length - 1; i >= 0; i--) {
- tabPanes[i].dispose();
- tabPanes[i] = null;
- }
-}
-
-
-// initialization hook up
-
-// DOM2
-if ( typeof window.addEventListener != "undefined" )
- window.addEventListener( "load", setupAllTabs, false );
-
-// IE
-else if ( typeof window.attachEvent != "undefined" ) {
- window.attachEvent( "onload", setupAllTabs );
- window.attachEvent( "onunload", disposeAllTabs );
-}
-
-else {
- if ( window.onload != null ) {
- var oldOnload = window.onload;
- window.onload = function ( e ) {
- oldOnload( e );
- setupAllTabs();
- };
- }
- else
- window.onload = setupAllTabs;
-} \ No newline at end of file
diff --git a/html/javascript/tooltip.js b/html/javascript/tooltip.js
deleted file mode 100644
index f66f4e8..0000000
--- a/html/javascript/tooltip.js
+++ /dev/null
@@ -1,210 +0,0 @@
-var ttp_content;
-ttp_content = "";
-
-var ttp_timer;
-var ttp_x = -1;
-var ttp_y = -1;
-var ttp_visable = 0;
-var ttp_offset_x = 0;
-var ttp_x_start = -1;
-var ttp_y_start = -1;
-var ttp_active = 1;
-var ttp_inside = 0;
-
-var ie5=document.all&&document.getElementById;
-var ns6=document.getElementById&&!document.all;
-var opera =window.opera;
-var dom=(!opera && document.compatMode && document.compatMode!="BackCompat");
-
-function iecompattest(){
- return dom ? document.documentElement : document.body
-}
-
-function getScrollingPosition() {
- var x = 0, y = 0;
- if( ns6 || typeof( window.pageYOffset ) == 'number' ) {
- y = window.pageYOffset;
- x = window.pageXOffset;
- } else {
- y = iecompattest().scrollTop;
- x = iecompattest().scrollLeft;
- }
- return [ x, y ];
-}
-
-function WindowSize () {
- var width = 0, height = 0;
- if( ns6 || typeof( window.innerWidth ) == 'number' ) {
- width = window.innerWidth;
- height = window.innerHeight;
- } else {
- width = iecompattest().clientWidth;
- height = iecompattest().clientHeight;
- }
- return [ width, height ];
-}
-
-function ttp_update_pos(){
- var Size = WindowSize();
-
- var x = ttp_x + ttp_offset_x;
- var y = ttp_y;
-
- var ele = document.getElementById('TOOLTIP');
- var scrPos = getScrollingPosition();
-
- if(x + 500 > Size[0] + scrPos[0]) {
- x = Size[0] - 500;
- }
- if(y + 150 > Size[1] + scrPos[1]) {
- y = Size[1] - (y - 10);
- ele.style.top = '';
- if(ie5&&!opera) {
- ele.style.removeAttribute('top');
- y += scrPos[1];
- }
- ele.style.bottom = y + "px";
- } else {
- ele.style.bottom = '';
- if(ie5&&!opera) {
- ele.style.removeAttribute('bottom');
- }
- ele.style.top = (y + 20) + "px";
- }
- ele.style.left = x + "px";
-}
-
-var ttp_ie = document.all?true:false;
-if (!ttp_ie) document.captureEvents(Event.MOUSEMOVE)
-document.onmousemove = ttp_onmousemove;
-
-function ttp_onmousemove(e) {
-if (ttp_ie) {
- ttp_x = event.clientX + document.body.scrollLeft;
- ttp_y = event.clientY + document.body.scrollTop;
-} else {
- ttp_x = e.pageX;
- ttp_y = e.pageY;
-}
-if (ttp_x < 0) {ttp_x = 0;}
-if (ttp_y < 0) {ttp_y = 0;}
-if(ttp_visable) {
- if(Math.abs(ttp_x_start - ttp_x) > 200
- || Math.abs(ttp_y_start - ttp_y) > 200) {
- ttp_make_invisable();
- }
- ttp_update_pos();
- }
-}
-
-
-function ttp_update_content(title, description){
- var utitle = unescape(title);
- ttp_content = '<div id="ttwindow"><p class="topic">';
- ttp_content += utitle.substr(0,50);
- if (utitle.length > 50) {ttp_content += '...';}
- ttp_content += '</p><p class="description">'
- if(description == 'WAIT') {
- ttp_content += '<img src="images/repeat.png" alt="" />'; /* TODO => wait.gif */
- } else {
- ttp_content += unescape(description);
- }
- ttp_content += '</p></div>';
-}
-
-function ttp_make_visable(title, description){
- ttp_update_pos();
- ttp_update_content(title, description);
- var ele = document.getElementById('TOOLTIP');
- ele.innerHTML = ttp_content;
- ele.style.visibility = "visible";
-}
-
-function ttp_make_invisable(){
- var ele = document.getElementById('TOOLTIP');
-
- if(ttp_visable || ele.style.visibility == "visible") {
- clearTimeout(ttp_timer);
- ele.style.visibility = "hidden";
- }
- ttp_visable = 0;
- ttp_inside = 0;
-}
-
-function ttp_enable(enable){
- ttp_make_invisable();
- ttp_active = enable
-}
-
-function ttp_make_req_visable(title, eventid, x, y){
-
- if(!eventid || eventid<=0 || ttp_inside==0
- || Math.abs(x - ttp_x) > 200
- || Math.abs(y - ttp_y) > 200) {
- clearTimeout(ttp_timer);
- ttp_inside = 0;
- return false;
- }
-
- ttp_x_start = ttp_x;
- ttp_y_start = ttp_y;
- ttp_make_visable(title,'WAIT');
-
- var fnWhenDone = function (oXML, sData) {
-
- var description = eval('(' + oXML.responseText + ')');
-
- var content;
- if(description && description.data && typeof(description.data) == 'string'){
- content = description.data.replace(/\r\n/g,'<br />');
- } else {
- content = '...';
- }
-
- ttp_make_visable(title,content);
- };
-
- var url = "?cmd=edescription&data=" + eventid + "&ajax=json";
- var aconn = new XHRequest();
- if(!aconn)
- return false;
- return aconn.connect(url, fnWhenDone, eventid);
-}
-
-
-function ttpreq(self, title, eventid, offset_x){
- if(ttp_active) {
- self.onmouseout=function(){ ttp_make_invisable(); };
- if(eventid && ttp_x != -1 && ttp_y != -1){
- ttp_offset_x = offset_x;
- ttp_inside = 1;
- ttp_timer = setTimeout("ttp_make_req_visable('"+escape(title)+"', '"+eventid+"', '"+ttp_x+"', '"+ttp_y+"')", 750);
- }
- }
-}
-
-function ttp_make_direct_visable(title, description, x, y){
-
- if(ttp_inside==0
- || Math.abs(x - ttp_x) > 200
- || Math.abs(y - ttp_y) > 200) {
- clearTimeout(ttp_timer);
- ttp_inside = 0;
- return false;
- }
-
- ttp_x_start = ttp_x;
- ttp_y_start = ttp_y;
- ttp_make_visable(title,description);
-}
-
-function ttp(self, title, description, offset_x){
- if(ttp_active) {
- self.onmouseout=function(){ ttp_make_invisable(); };
- if(description && ttp_x != -1 && ttp_y != -1){
- ttp_offset_x = offset_x;
- ttp_inside = 1;
- ttp_timer = setTimeout("ttp_make_direct_visable('"+escape(title)+"', '"+escape(description)+"')", 750);
- }
- }
-}
diff --git a/html/javascript/xtree.js b/html/javascript/xtree.js
deleted file mode 100644
index 58d2d95..0000000
--- a/html/javascript/xtree.js
+++ /dev/null
@@ -1,541 +0,0 @@
-/*----------------------------------------------------------------------------\
-| Cross Browser Tree Widget 1.17 |
-|-----------------------------------------------------------------------------|
-| Created by Emil A Eklund |
-| (http://webfx.eae.net/contact.html#emil) |
-| For WebFX (http://webfx.eae.net/) |
-|-----------------------------------------------------------------------------|
-| An object based tree widget, emulating the one found in microsoft windows, |
-| with persistence using cookies. Works in IE 5+, Mozilla and konqueror 3. |
-|-----------------------------------------------------------------------------|
-| Copyright (c) 1999 - 2002 Emil A Eklund |
-|-----------------------------------------------------------------------------|
-| This software is provided "as is", without warranty of any kind, express or |
-| implied, including but not limited to the warranties of merchantability, |
-| fitness for a particular purpose and noninfringement. In no event shall the |
-| authors or copyright holders be liable for any claim, damages or other |
-| liability, whether in an action of contract, tort or otherwise, arising |
-| from, out of or in connection with the software or the use or other |
-| dealings in the software. |
-| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
-| This software is available under the three different licenses mentioned |
-| below. To use this software you must chose, and qualify, for one of those. |
-| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
-| The WebFX Non-Commercial License http://webfx.eae.net/license.html |
-| Permits anyone the right to use the software in a non-commercial context |
-| free of charge. |
-| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
-| The WebFX Commercial license http://webfx.eae.net/commercial.html |
-| Permits the license holder the right to use the software in a commercial |
-| context. Such license must be specifically obtained, however it's valid for |
-| any number of implementations of the licensed software. |
-| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
-| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt |
-| Permits anyone the right to use and modify the software without limitations |
-| as long as proper credits are given and the original and modified source |
-| code are included. Requires that the final product, software derivate from |
-| the original source or any software utilizing a GPL component, such as |
-| this, is also licensed under the GPL license. |
-|-----------------------------------------------------------------------------|
-| Dependencies: xtree.css (To set up the CSS of the tree classes) |
-|-----------------------------------------------------------------------------|
-| 2001-01-10 | Original Version Posted. |
-| 2001-03-18 | Added getSelected and get/setBehavior that can make it behave |
-| | more like windows explorer, check usage for more information. |
-| 2001-09-23 | Version 1.1 - New features included keyboard navigation (ie) |
-| | and the ability to add and remove nodes dynamically and some |
-| | other small tweaks and fixes. |
-| 2002-01-27 | Version 1.11 - Bug fixes and improved mozilla support. |
-| 2002-06-11 | Version 1.12 - Fixed a bug that prevented the indentation line |
-| | from updating correctly under some circumstances. This bug |
-| | happened when removing the last item in a subtree and items in |
-| | siblings to the remove subtree where not correctly updated. |
-| 2002-06-13 | Fixed a few minor bugs cased by the 1.12 bug-fix. |
-| 2002-08-20 | Added usePersistence flag to allow disable of cookies. |
-| 2002-10-23 | (1.14) Fixed a plus icon issue |
-| 2002-10-29 | (1.15) Last changes broke more than they fixed. This version |
-| | is based on 1.13 and fixes the bugs 1.14 fixed withou breaking |
-| | lots of other things. |
-| 2003-02-15 | The selected node can now be made visible even when the tree |
-| | control loses focus. It uses a new class declaration in the |
-| | css file '.webfx-tree-item a.selected-inactive', by default it |
-| | puts a light-gray rectangle around the selected node. |
-| 2003-03-16 | Adding target support after lots of lobbying... |
-|-----------------------------------------------------------------------------|
-| Created 2000-12-11 | All changes are in the log above. | Updated 2003-03-16 |
-\----------------------------------------------------------------------------*/
-
-var webFXTreeConfig = {
- rootIcon : 'images/foldericon.png',
- openRootIcon : 'images/openfoldericon.png',
- folderIcon : 'images/foldericon.png',
- openFolderIcon : 'images/openfoldericon.png',
- fileIcon : 'images/file.png',
- iIcon : 'images/I.png',
- lIcon : 'images/L.png',
- lMinusIcon : 'images/Lminus.png',
- lPlusIcon : 'images/Lplus.png',
- tIcon : 'images/T.png',
- tMinusIcon : 'images/Tminus.png',
- tPlusIcon : 'images/Tplus.png',
- blankIcon : 'images/blank.png',
- defaultText : 'Tree Item',
- defaultAction : 'javascript:void(0);',
- defaultBehavior : 'classic',
- usePersistence : true
-};
-
-var webFXTreeHandler = {
- idCounter : 0,
- idPrefix : "webfx-tree-object-",
- all : {},
- behavior : null,
- selected : null,
- onSelect : null, /* should be part of tree, not handler */
- getId : function() { return this.idPrefix + this.idCounter++; },
- toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
- select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
- focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
- blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
- keydown : function (oItem, e) { return this.all[oItem.id].keydown(e.keyCode); },
- cookies : new WebFXCookie(),
- insertHTMLBeforeEnd : function (oElement, sHTML) {
- if (oElement.insertAdjacentHTML != null) {
- oElement.insertAdjacentHTML("BeforeEnd", sHTML)
- return;
- }
- var df; // DocumentFragment
- var r = oElement.ownerDocument.createRange();
- r.selectNodeContents(oElement);
- r.collapse(false);
- df = r.createContextualFragment(sHTML);
- oElement.appendChild(df);
- }
-};
-
-/*
- * WebFXCookie class
- */
-
-function WebFXCookie() {
- if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
-}
-
-WebFXCookie.prototype.setCookie = function (key, value) {
- document.cookie = key + "=" + escape(value);
-}
-
-WebFXCookie.prototype.getCookie = function (key) {
- if (this.cookies) {
- var start = this.cookies.indexOf(' ' + key + '=');
- if (start == -1) { return null; }
- var end = this.cookies.indexOf(";", start);
- if (end == -1) { end = this.cookies.length; }
- end -= start;
- var cookie = this.cookies.substr(start,end);
- return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
- }
- else { return null; }
-}
-
-/*
- * WebFXTreeAbstractNode class
- */
-
-function WebFXTreeAbstractNode(sText, sAction) {
- this.childNodes = [];
- this.id = webFXTreeHandler.getId();
- this.text = sText || webFXTreeConfig.defaultText;
- this.action = sAction || webFXTreeConfig.defaultAction;
- this._last = false;
- webFXTreeHandler.all[this.id] = this;
-}
-
-/*
- * To speed thing up if you're adding multiple nodes at once (after load)
- * use the bNoIdent parameter to prevent automatic re-indentation and call
- * the obj.ident() method manually once all nodes has been added.
- */
-
-WebFXTreeAbstractNode.prototype.add = function (node, bNoIdent) {
- node.parentNode = this;
- this.childNodes[this.childNodes.length] = node;
- var root = this;
- if (this.childNodes.length >= 2) {
- this.childNodes[this.childNodes.length - 2]._last = false;
- }
- while (root.parentNode) { root = root.parentNode; }
- if (root.rendered) {
- if (this.childNodes.length >= 2) {
- document.getElementById(this.childNodes[this.childNodes.length - 2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?((this.childNodes[this.childNodes.length -2].open)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tPlusIcon):webFXTreeConfig.tIcon);
- this.childNodes[this.childNodes.length - 2].plusIcon = webFXTreeConfig.tPlusIcon;
- this.childNodes[this.childNodes.length - 2].minusIcon = webFXTreeConfig.tMinusIcon;
- this.childNodes[this.childNodes.length - 2]._last = false;
- }
- this._last = true;
- var foo = this;
- while (foo.parentNode) {
- for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
- if (foo.id == foo.parentNode.childNodes[i].id) { break; }
- }
- if (i == foo.parentNode.childNodes.length - 1) { foo.parentNode._last = true; }
- else { foo.parentNode._last = false; }
- foo = foo.parentNode;
- }
- webFXTreeHandler.insertHTMLBeforeEnd(document.getElementById(this.id + '-cont'), node.toString());
- if ((!this.folder) && (!this.openIcon)) {
- this.icon = webFXTreeConfig.folderIcon;
- this.openIcon = webFXTreeConfig.openFolderIcon;
- }
- if (!this.folder) { this.folder = true; this.collapse(true); }
- if (!bNoIdent) { this.indent(); }
- }
- return node;
-}
-
-WebFXTreeAbstractNode.prototype.toggle = function() {
- if (this.folder) {
- if (this.open) { this.collapse(); }
- else { this.expand(); }
-} }
-
-WebFXTreeAbstractNode.prototype.select = function() {
- document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.deSelect = function() {
- document.getElementById(this.id + '-anchor').className = '';
- webFXTreeHandler.selected = null;
-}
-
-WebFXTreeAbstractNode.prototype.focus = function() {
- if ((webFXTreeHandler.selected) && (webFXTreeHandler.selected != this)) { webFXTreeHandler.selected.deSelect(); }
- webFXTreeHandler.selected = this;
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
- document.getElementById(this.id + '-anchor').className = 'selected';
- document.getElementById(this.id + '-anchor').focus();
- if (webFXTreeHandler.onSelect) { webFXTreeHandler.onSelect(this); }
-}
-
-WebFXTreeAbstractNode.prototype.blur = function() {
- if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
- document.getElementById(this.id + '-anchor').className = 'selected-inactive';
-}
-
-WebFXTreeAbstractNode.prototype.doExpand = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
- this.open = true;
- if (webFXTreeConfig.usePersistence) {
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
-} }
-
-WebFXTreeAbstractNode.prototype.doCollapse = function() {
- if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
- if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
- this.open = false;
- if (webFXTreeConfig.usePersistence) {
- webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
-} }
-
-WebFXTreeAbstractNode.prototype.expandAll = function() {
- this.expandChildren();
- if ((this.folder) && (!this.open)) { this.expand(); }
-}
-
-WebFXTreeAbstractNode.prototype.expandChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].expandAll();
-} }
-
-WebFXTreeAbstractNode.prototype.collapseAll = function() {
- this.collapseChildren();
- if ((this.folder) && (this.open)) { this.collapse(true); }
-}
-
-WebFXTreeAbstractNode.prototype.collapseChildren = function() {
- for (var i = 0; i < this.childNodes.length; i++) {
- this.childNodes[i].collapseAll();
-} }
-
-WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level, nodesLeft) {
- /*
- * Since we only want to modify items one level below ourself,
- * and since the rightmost indentation position is occupied by
- * the plus icon we set this to -2
- */
- if (lvl == null) { lvl = -2; }
- var state = 0;
- for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
- state = this.childNodes[i].indent(lvl + 1, del, last, level);
- if (state) { return; }
- }
- if (del) {
- if ((level >= this._level) && (document.getElementById(this.id + '-plus'))) {
- if (this.folder) {
- document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
- this.plusIcon = webFXTreeConfig.lPlusIcon;
- this.minusIcon = webFXTreeConfig.lMinusIcon;
- }
- else if (nodesLeft) { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
- return 1;
- } }
- var foo = document.getElementById(this.id + '-indent-' + lvl);
- if (foo) {
- if ((foo._last) || ((del) && (last))) { foo.src = webFXTreeConfig.blankIcon; }
- else { foo.src = webFXTreeConfig.iIcon; }
- }
- return 0;
-}
-
-/*
- * WebFXTree class
- */
-
-function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- this.icon = sIcon || webFXTreeConfig.rootIcon;
- this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
- /* Defaults to open */
- if (webFXTreeConfig.usePersistence) {
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
- } else { this.open = true; }
- this.folder = true;
- this.rendered = false;
- this.onSelect = null;
- if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
-}
-
-WebFXTree.prototype = new WebFXTreeAbstractNode;
-
-WebFXTree.prototype.setBehavior = function (sBehavior) {
- webFXTreeHandler.behavior = sBehavior;
-};
-
-WebFXTree.prototype.getBehavior = function (sBehavior) {
- return webFXTreeHandler.behavior;
-};
-
-WebFXTree.prototype.getSelected = function() {
- if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
- else { return null; }
-}
-
-WebFXTree.prototype.remove = function() { }
-
-WebFXTree.prototype.expand = function() {
- this.doExpand();
-}
-
-WebFXTree.prototype.collapse = function(b) {
- if (!b) { this.focus(); }
- this.doCollapse();
-}
-
-WebFXTree.prototype.getFirst = function() {
- return null;
-}
-
-WebFXTree.prototype.getLast = function() {
- return null;
-}
-
-WebFXTree.prototype.getNextSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.getPreviousSibling = function() {
- return null;
-}
-
-WebFXTree.prototype.keydown = function(key) {
- if (key == 39) {
- if (!this.open) { this.expand(); }
- else if (this.childNodes.length) { this.childNodes[0].select(); }
- return false;
- }
- if (key == 37) { this.collapse(); return false; }
- if ((key == 40) && (this.open) && (this.childNodes.length)) { this.childNodes[0].select(); return false; }
- return true;
-}
-
-WebFXTree.prototype.toString = function() {
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this, event)\">" +
- "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\">" +
- "<a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
- (this.target ? " target=\"" + this.target + "\"" : "") +
- ">" + this.text + "</a></div>" +
- "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- var sb = [];
- for (var i = 0; i < this.childNodes.length; i++) {
- sb[i] = this.childNodes[i].toString(i, this.childNodes.length);
- }
- this.rendered = true;
- return str + sb.join("") + "</div>";
-};
-
-/*
- * WebFXTreeItem class
- */
-
-function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
- this.base = WebFXTreeAbstractNode;
- this.base(sText, sAction);
- /* Defaults to close */
- if (webFXTreeConfig.usePersistence) {
- this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
- } else { this.open = false; }
- if (sIcon) { this.icon = sIcon; }
- if (sOpenIcon) { this.openIcon = sOpenIcon; }
- if (eParent) { eParent.add(this); }
-}
-
-WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
-
-WebFXTreeItem.prototype.remove = function() {
- var iconSrc = document.getElementById(this.id + '-plus').src;
- var parentNode = this.parentNode;
- var prevSibling = this.getPreviousSibling(true);
- var nextSibling = this.getNextSibling(true);
- var folder = this.parentNode.folder;
- var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
- this.getPreviousSibling().focus();
- this._remove();
- if (parentNode.childNodes.length == 0) {
- document.getElementById(parentNode.id + '-cont').style.display = 'none';
- parentNode.doCollapse();
- parentNode.folder = false;
- parentNode.open = false;
- }
- if (!nextSibling || last) { parentNode.indent(null, true, last, this._level, parentNode.childNodes.length); }
- if ((prevSibling == parentNode) && !(parentNode.childNodes.length)) {
- prevSibling.folder = false;
- prevSibling.open = false;
- iconSrc = document.getElementById(prevSibling.id + '-plus').src;
- iconSrc = iconSrc.replace('minus', '').replace('plus', '');
- document.getElementById(prevSibling.id + '-plus').src = iconSrc;
- document.getElementById(prevSibling.id + '-icon').src = webFXTreeConfig.fileIcon;
- }
- if (document.getElementById(prevSibling.id + '-plus')) {
- if (parentNode == prevSibling.parentNode) {
- iconSrc = iconSrc.replace('minus', '').replace('plus', '');
- document.getElementById(prevSibling.id + '-plus').src = iconSrc;
-} } }
-
-WebFXTreeItem.prototype._remove = function() {
- for (var i = this.childNodes.length - 1; i >= 0; i--) {
- this.childNodes[i]._remove();
- }
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) {
- for (var j = i; j < this.parentNode.childNodes.length; j++) {
- this.parentNode.childNodes[j] = this.parentNode.childNodes[j+1];
- }
- this.parentNode.childNodes.length -= 1;
- if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
- break;
- } }
- webFXTreeHandler.all[this.id] = null;
- var tmp = document.getElementById(this.id);
- if (tmp) { tmp.parentNode.removeChild(tmp); }
- tmp = document.getElementById(this.id + '-cont');
- if (tmp) { tmp.parentNode.removeChild(tmp); }
-}
-
-WebFXTreeItem.prototype.expand = function() {
- this.doExpand();
- document.getElementById(this.id + '-plus').src = this.minusIcon;
-}
-
-WebFXTreeItem.prototype.collapse = function(b) {
- if (!b) { this.focus(); }
- this.doCollapse();
- document.getElementById(this.id + '-plus').src = this.plusIcon;
-}
-
-WebFXTreeItem.prototype.getFirst = function() {
- return this.childNodes[0];
-}
-
-WebFXTreeItem.prototype.getLast = function() {
- if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
- else { return this.childNodes[this.childNodes.length - 1]; }
-}
-
-WebFXTreeItem.prototype.getNextSibling = function() {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
- else { return this.parentNode.childNodes[i]; }
-}
-
-WebFXTreeItem.prototype.getPreviousSibling = function(b) {
- for (var i = 0; i < this.parentNode.childNodes.length; i++) {
- if (this == this.parentNode.childNodes[i]) { break; }
- }
- if (i == 0) { return this.parentNode; }
- else {
- if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
- else { return this.parentNode.childNodes[i]; }
-} }
-
-WebFXTreeItem.prototype.keydown = function(key) {
- if ((key == 39) && (this.folder)) {
- if (!this.open) { this.expand(); }
- else { this.getFirst().select(); }
- return false;
- }
- else if (key == 37) {
- if (this.open) { this.collapse(); }
- else { this.parentNode.select(); }
- return false;
- }
- else if (key == 40) {
- if (this.open) { this.getFirst().select(); }
- else {
- var sib = this.getNextSibling();
- if (sib) { sib.select(); }
- }
- return false;
- }
- else if (key == 38) { this.getPreviousSibling().select(); return false; }
- return true;
-}
-
-WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
- var foo = this.parentNode;
- var indent = '';
- if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
- var i = 0;
- while (foo.parentNode) {
- foo = foo.parentNode;
- indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
- i++;
- }
- this._level = i;
- if (this.childNodes.length) { this.folder = 1; }
- else { this.open = false; }
- if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
- if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
- if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
- }
- else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
- var label = this.text.replace(/</g, '&lt;').replace(/>/g, '&gt;');
- var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this, event)\">" +
- indent +
- "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">" +
- "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\">" +
- "<a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
- (this.target ? " target=\"" + this.target + "\"" : "") +
- ">" + label + "</a></div>" +
- "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
- var sb = [];
- for (var i = 0; i < this.childNodes.length; i++) {
- sb[i] = this.childNodes[i].toString(i,this.childNodes.length);
- }
- this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
- this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
- return str + sb.join("") + "</div>";
-} \ No newline at end of file