default to a session cookie instead of setting an explicit timeout, weird timezone...
[freeside.git] / httemplate / elements / qlib / label.js
1 /**\r
2  * QLIB 1.0 Text Label\r
3  * Copyright (C) 2002 2003, Quazzle.com Serge Dolgov\r
4  * This program is free software; you can redistribute it and/or\r
5  * modify it under the terms of the GNU General Public License\r
6  * as published by the Free Software Foundation; either version 2\r
7  * of the License, or (at your option) any later version.\r
8  * http://qlib.quazzle.com\r
9  */\r
10 \r
11 function QLabel_set_ie(value) {\r
12     this.label.innerText = (this.value = value) || "\xA0";\r
13 }\r
14 \r
15 function QLabel_set_dom2(value) {\r
16     with (this.label) {\r
17         replaceChild(this.document.createTextNode((this.value = value) || "\xA0"), firstChild);\r
18     }\r
19 }\r
20 \r
21 function QLabel_set_ns4(value) {\r
22     this.value = value || "";\r
23     with (this) {\r
24         document.open();\r
25         document.write('<div class="qlabel">' + (clickable ? '<a href="#" title="' + tooltip + '" onClick="return ' +\r
26             name + '.doEvent()" onMouseOut="window.top.status=\'\'" onMouseOver="window.top.status=' + name +\r
27             '.tooltip;return true">' + value + '</a>' : value) + '</div>');\r
28         document.close();\r
29     }\r
30 }\r
31 \r
32 function QLabel_doEvent() {\r
33     this.onClick(this.value, this.tag);\r
34     return false;\r
35 }\r
36 \r
37 function QLabel(parent, name, value, clickable, tooltip) {\r
38     this.init(parent, name);\r
39     this.value = value || "";\r
40     this.clickable = clickable || false;\r
41     this.tooltip = tooltip || "";\r
42     this.doEvent = QLabel_doEvent;\r
43     this.onClick = QControl.event;\r
44     with (this) {\r
45         if (document.getElementById || document.all) {\r
46             document.write(clickable ? '<div class="qlabel" unselectable="on"><a id="' + id + '" href="#" title="' +\r
47                 tooltip + '" onClick="return ' + name + '.doEvent()" onMouseOver="window.top.status=' + name +\r
48                 '.tooltip;return true" onMouseOut="window.top.status=\'\'" hidefocus="true" unselectable="on">' +\r
49                 (value || '&nbsp;') + '</a></div>' : '<div id="' + id + '" class="qlabel" unselectable="on">' +\r
50                 (value || '&nbsp;') + '</div>');\r
51             this.label = document.getElementById ? document.getElementById(id) :\r
52                 (document.all.item ? document.all.item(id) : document.all[id]);\r
53             this.set = (label && (label.innerText ? QLabel_set_ie :\r
54                 (label.replaceChild && QLabel_set_dom2))) || QControl.nop;\r
55         } else if (document.layers) {\r
56             var suffix = "";\r
57             for (var j=value.length; j<QLabel.TEXTQUOTA; j++) suffix += " &nbsp;";\r
58             document.write('<div><ilayer id="i' + id + '"><layer id="' + id + '"><div class="qlabel">' +\r
59                 (clickable ? '<a href="#" title="' + tooltip + '" onClick="return ' + name +\r
60                 '.doEvent()" onMouseOver="window.top.status=' + name +\r
61                 '.tooltip;return true" onMouseOut="window.top.status=\'\'">' + value + suffix + '</a>' :\r
62                 value + suffix) + '</div></layer></ilayer></div>');\r
63             this.label = (this.label = document.layers["i" + id]) && label.document.layers[id];\r
64             this.document = label && label.document;\r
65             this.set = (label && document) ? QLabel_set_ns4 : QControl.nop;\r
66         } else {\r
67             document.write("Object is not supported");\r
68         }\r
69     }\r
70 }\r
71 QLabel.prototype = new QControl();\r
72 QLabel.TEXTQUOTA = 50;\r