Commit 9b53af65 authored by Christophe Dumez's avatar Christophe Dumez

- Changed bt version

- use cool window for caption

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@6841 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 6335f676
...@@ -61,10 +61,12 @@ ...@@ -61,10 +61,12 @@
<tal:block metal:fill-slot="main">\n <tal:block metal:fill-slot="main">\n
\n \n
<link rel="STYLESHEET" type="text/css" href="css/dhtmlXTree.css">\n <link rel="STYLESHEET" type="text/css" href="css/dhtmlXTree.css">\n
<link rel="STYLESHEET" type="text/css" href="css/movableMenu.css">\n
\n \n
<script src="js/dhtmlXCommon.js"></script>\n <script src="js/dhtmlXCommon.js"></script>\n
<script src="js/dhtmlXTree.js"></script>\n <script src="js/dhtmlXTree.js"></script>\n
<script src="js/menuico.js"></script>\n <script src="js/menuico.js"></script>\n
<script src="js/movableMenu.js"></script>\n
\n \n
<!-- Form Hidden : Selected files -->\n <!-- Form Hidden : Selected files -->\n
<input type=\'hidden\' name=\'removed\' value=\'\'>\n <input type=\'hidden\' name=\'removed\' value=\'\'>\n
...@@ -117,21 +119,40 @@ here/BusinessTemplate_doCreateJavaScriptStatus">javascript here</tal:js><br>\n ...@@ -117,21 +119,40 @@ here/BusinessTemplate_doCreateJavaScriptStatus">javascript here</tal:js><br>\n
\t\t\tstyle="width:98%; height:98%;background-color:#f5f5f5;border :1px solid Silver;overflow:auto;">\n \t\t\tstyle="width:98%; height:98%;background-color:#f5f5f5;border :1px solid Silver;overflow:auto;">\n
\t\t</div>\n \t\t</div>\n
\t\t</td>\n \t\t</td>\n
<td style="vertical-align: top; text-align: left;" width="6%" height="300" id="caption">\n
<table style="background-color:#ffffff;"><tr><td><b><font color=\'black\' size="1">Caption:</font></b></td></tr>\n
<tr><td style="background-color:#000000;"> </td></tr>\n
<tr><td><font color="green" size="1">Added</font></td></tr>\n
<tr><td><font color="orange" size="1">Modified</font></td></tr>\n
<tr><td><font color="red" size="1">Deleted</font></td></tr>\n
<tr><td><font color="grey" size="1">Conflicted</font></td></tr></table>\n
<br><br>\n
</td>\n
\t</tr>\n \t</tr>\n
</table>\n </table>\n
\n \n
<div id="captionWindow" class="window" style="right:20px;left:auto;top:140px;width:120px;background-color:#dae6e6;border-color:#EBF8F8 #C0CACA #C0CACA #C0CACA;">\n
<div class="titleBar" style="background-color:#dae6e6;color:black;">\n
<span class="titleBarText">Caption -- SVN</span>\n
<img class="titleBarButtons" alt="" src="imgs/altbuttons.gif" longdesc="imgs/altbuttonslow.gif" usemap="#sampleMap3" />\n
<map id="sampleMap3" name="sampleMap3">\n
<area shape="rect" coords="0,0,15,13" href="" alt="" title="Minimize" onclick="this.parentWindow.minimize();return false;" />\n
<area shape="rect" coords="16,0,31,13" href="" alt="" title="Restore" onclick="this.parentWindow.restore();return false;" />\n
<area shape="rect" coords="34,0,49,13" href="" alt="" title="Close" onclick="this.parentWindow.close();return false;" />\n
</map>\n
</div>\n
<div class="clientArea" style="height:100px; background-color:#FFFDFD;color:#806040;border-color:#C0CACA #C0CACA #C0CACA #C0CACA;scrollbar-base-color:#dae6e6;">\n
<b><font color=\'black\'><center>Caption</center></font></b><hr>\n
<p><font color="green">Added files</font><br />\n
<font color="orange">Modified files</font><br />\n
<font color="red">Removed files</font><br />\n
<font color="grey">conflicted files</font><br />\n
</p>\n
</div>\n
</div>\n
\n
<script>\n
winInit();\n
if (winList[\'captionWindow\']){\n
winList[\'captionWindow\'].open();\n
}\n
</script>\n
\n
<script>\n <script>\n
// Menu Customization\n // Menu Customization\n
var MenuToolBar=new CreateToolBarMenu(\'#dae6e6\', \'#FFFFFF\', \'#B1BBBB\', \'#6699FF\', \'font-family:verdana;font-size:11px;color:black;font-weight:bold\', 16, 16)\n var MenuToolBar=new CreateToolBarMenu(\'#dae6e6\', \'#FFFFFF\', \'#B1BBBB\', \'#6699FF\', \'font-family:verdana;font-size:11px;color:black;font-weight:bold\', 16, 16)\n
MenuToolBar.Add(\'imgs/captionoff.png\', \'imgs/captionon.png\', \'Show Caption\', \'#\', "winList[\'captionWindow\'].open();");\n
MenuToolBar.Add(\'imgs/expandoff.png\', \'imgs/expandon.png\', \'Expand / Collapse\', \'#\', \'expandCollapse();\');\n MenuToolBar.Add(\'imgs/expandoff.png\', \'imgs/expandon.png\', \'Expand / Collapse\', \'#\', \'expandCollapse();\');\n
MenuToolBar.Add(\'imgs/diffoff.png\', \'imgs/diffon.png\', \'View Diff\', \'#\', \'viewDiff(0,document.main_form);\');\n MenuToolBar.Add(\'imgs/diffoff.png\', \'imgs/diffon.png\', \'View Diff\', \'#\', \'viewDiff(0,document.main_form);\');\n
MenuToolBar.Add(\'imgs/execoff.png\', \'imgs/execon.png\', \'Commit Changes\', \'#\', \'commit(0,document.main_form);\');\n MenuToolBar.Add(\'imgs/execoff.png\', \'imgs/execon.png\', \'Commit Changes\', \'#\', \'commit(0,document.main_form);\');\n
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>OFS.Image</string>
<string>File</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts45609984.6</string> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>movableMenu.css</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/css</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string>.lastLine {\n
padding-left: 6em;\n
}\n
\n
.window {\n
background-color: #dae6e6;\n
border-color: #f0f0f0 #606060 #404040 #d0d0d0;\n
border-style: solid;\n
border-width: 2px;\n
margin: 0px;\n
padding: 2px;\n
position: absolute;\n
text-align: left;\n
visibility: hidden;\n
}\n
\n
.titleBar {\n
background-color: #008080;\n
cursor: default;\n
color: #ffffff;\n
font-family: "MS Sans Serif", "Arial", "Helvetica", sans-serif;\n
font-size: 8pt;\n
font-weight: bold;\n
margin: 0px;\n
padding: 2px 2px 2px .5em;\n
text-align: right;\n
white-space: nowrap;\n
}\n
\n
.titleBarText {\n
float: left;\n
overflow: hidden;\n
text-align: left;\n
}\n
\n
.titleBarButtons {\n
border-style: none;\n
border-width: 0px;\n
vertical-align: middle;\n
width: 50px;\n
height: 14px;\n
}\n
\n
.clientArea {\n
background-color: #ffffff;\n
border-color: #404040 #e0e0e0 #f0f0f0 #505050;\n
border-style: solid;\n
border-width: 2px;\n
color: #000000;\n
font-family: "Arial", "Helvetica", sans-serif;\n
font-size: 10pt;\n
margin: 2px 0px 0px 0px;\n
overflow: auto;\n
padding: .5em;\n
}\n
</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <long>1022</long> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>OFS.Image</string>
<string>Image</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>altbuttons.gif</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/gif</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="base64">R0lGODlhMgAOAKU3ACpaWi9lVjBmUjBoWTltWztvXztxX2+TgWSYiWWZimiaimiai3yYh36YiHGd
kIGZiombjoudkIyekIKkmJWllpaml5mnmZm3q566r6K+saO/sabAs6rEtrDIubXLvLfNvbrOvsDS
wMPTwcjVw8rWxM3XxdHZx9bbydzdzebgzOfhzejjzunm0enm0+ro1Ovq1+zq2O7t3PDt4PHu4/Lv
5PLv5vTx6v///////////////////////////////////yH5BAEAAD8ALAAAAAAyAA4AAAb+QFuN
RpsZj0dZLGSrEZFQWSz0+9lqNBoUKYuFarCXa0wmt1akSQ32KrtbK9KkWoO93OXWijShvVgrKoKD
giklHQ40LywrhIQpJR0OVTQvLCuOgyklHQ40LisoJ6MAAaMnJSAbCzQuKyinAAGnJSAbC1U0LisA
AQOnJwABAyAbCzMuKicmJgAEDQ3MIx8aCDMuKifMJgIM2yMfGghVMy4qJwcQDcwABA0jHxoIMy4q
JyYABA8VFQ8mIx80IJjhQsWJbQMibBvxQQOCKjNcqDhh4gGFBwUKPDAx4oMGBDNcqDgBgMCDChYs
VHgw4oMGBDNcqDixbUCEbSM+aEBQZYb+CxUnmD2gIEECsxEfNCCY4ULFiW0SKmwb8UEDghkuVJwA
EGCAgaIGBoz4oAFBlRkuVJxgVkBCSmYjPmhAMMOFihPbDEjYNuKDBgQzXKg4YeIABAn8JJgY8UED
giozXKg4YQJAAQkpJZgY8UEDghkuVJzYNiDCthEfNCCY4ULFCWYPKqRkNuKDBgRVZrhQcQIAgQfM
JFB4MOKDBgQzWqQoMaL5gAjNR4jwkAHBjBYpSkR/UCG6CA8ZEFSZ0SIFAAIPoo94QOGBhwwIZKwo
AeKD/fv2PXDAgEDGihIg4IefBxxggEAVMqxQAggC3ucBBxggEAMJHWygwYUYXpgBBhdAKBADCR1s
kGGGGWBwgQJVxEBCBxuMiGEGGFygQAgTOJAAAjjmqKMCCIQwgQMJ6CgkAgogUEUIEziQwJA6KoBA
EAA7</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>14</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>801</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>50</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>OFS.Image</string>
<string>Image</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>altbuttonslow.gif</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/gif</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="base64">R0lGODlhMgAOAPcAAAICAg0NDQ4ODg8PDxkZGRsbGx0dHVJSUlNTU1RUVFZWVldXV15eXmJiYmRk
ZGZmZm5ubm9vb3BwcHJycnx8fH5+foCAgIuLi5CQkJaWlpeXl5qamp+fn6ampqurq66urrGxsbe3
t7i4uLu7u729vb6+vsDAwMPDw8fHx83Nzc7Ozs/Pz9LS0tTU1NXV1djY2NnZ2d3d3eHh4eTk5OXl
5ebm5urq6pCQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADcALAAAAAAyAA4A
QAj+AG3UoEFjhsGDB2XECCGQIMKHCkPcuNGw4MOEC2e4UHHChEcDEzyaGPFBAwKNHE0sgDChQoWQ
JE1ORNkRQIEJFizALHlyY0cTAAg4cOAxZs+UHgU0EGl0ps+VRIEKNRqDRIcNGrJqzZrhxoUFVa9u
3dr168SwWMdy9bqAxgsWK1TInSs3RYkODNzCpUvXLt6JeuPyrXuXAc2gDyrkrPDAKE2RAyQw5ekU
6QMKE0KO5Dmjhd0RoCODHiHCQ4aTnkuMTjy69OmZnhGPHnH5gWkENWC8cMG7d+8WK0hEyL3bt2/g
wicSN348eAQaLlagOEEdQADqJ0qA2KAAunTs1rGNa+cOOLr1AdhPnN+u4DFilw82m3zsMfJkmTce
1y5QIL5jnyK1dN9R6gUwAEgTGDBAU/kBaMJNORXFmYMm2CfhfA4mFqF8CFSmHgHxmTABBY3xJMMK
2n2g4ooqesDBDQicmCKLK7oI40QygkBjjS8iEEIEDCSAwJBEFrnAAT8GWeSSCBw5UZJCMknkkQEB
ADs=</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>14</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <long>1199</long> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>50</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>OFS.Image</string>
<string>Image</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>captionoff.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="base64">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAA
CxEAAAsRAX9kX5EAAAAHdElNRQfWBBUJIB1jpycLAAAAHXRFWHRDb21tZW50AENyZWF0ZWQgd2l0
aCBUaGUgR0lNUO9kJW4AAAGCSURBVCjPPdE9SJRxAMfxz/95nkufu+siIt+GohCCXgijJaeTwBZb
IpeEIJpra6mhKag1cCoIiYgiIirHwMgxKnAIUREN8w1LOR2y8/4NHv2235fv9g2ae3Htc9+By9s5
qY1np98MvdrlARY77j8/Xu2305TrRs09fXi1eZcO3vzyKc7G6TgfN+PPOB1n4mx8HW9MQMrf0fPn
ymo2HVaWm7SlpiK2naqOj2SPL/3oiVbAlJNmLMtEdPpefd+ZTVS7960KaFjxTUOCujVzakauhNux
Igo44axWqWG/LKojODKZrdhGkPgoumjblIZUoiFyLIt+CxJBsAASqYaGREMmaZ9OBUEilYKCgkwm
s0dhPim8DTIFuVwrgqKSohaZVGk0uXB3v6KykpIWBCVlJblcx9bQvaR3s+tWRVHRUb3W1QzKleT2
WhxoXwjw6OX6YMWOKIga2GPNRt+DsWYsngysv+tSkKKublmt787Y/5ow2/31+lJ/+Qx/xts+9Awf
Wt3l/wCn4YFXIpKi1wAAAABJRU5ErkJggg==</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>538</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>OFS.Image</string>
<string>Image</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>captionon.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="base64">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBI
WXMAAAsRAAALEQF/ZF+RAAAAB3RJTUUH0woJFhclOeocGQAAAB10RVh0Q29tbWVudABDcmVhdGVk
IHdpdGggVGhlIEdJTVDvZCVuAAADDElEQVR42mWTTWhcZRiFn+/vzp07M8mkScykRo1NjKRaU6vW
VlAnSguVulDThS6kRYRuAkXrwpWrbBQJCCKIXRQRS7RS1GA2xWC1uCitRYUUWkOmTTohfzNNJpm5
c+/3uUgTWj2rl8Ph8HI4R/AffDEyfuTsxdn+3JbkQC2MkgBKKxbL1a+e3bHlzNE39n17p15sHDdu
zueOffTj14/1duUH9vVh4/Au42okOPXTZSanCl+eHj785gavAG4UF1oHPxwbOzKQ3/vczg7iOCJh
NFtbU1gHYT1GK3iytx3lZ/tMbvfAxO9nPts0KNhHR1964am9TSnN0nKd0kpIzwNZsukEKd9w6coc
tyoxpeWQ5oxHjdQ9XTuez186991J/fGJsVf/nBGPC+e4PrcKgENw+eoiex5p5e9/FijMVVBKg3MA
dObSXJzI5L8ZPd8uXn731Cc93d2D6YRcT0QIYutwgFESay1SSgCiKKa4sMZEocTSSkhQu35cp1P+
YHm1zlLFIoTEAXt6W9m/K0fga7QUvPP5BYpLdaaKy9SjGOkcCMmDPV1v68L8Kpn6GlasfyClZOS3
GWIERw9soxrGXLhWInIKtEZLibMO5xyhkA/rEMF0uQ5SIKQEIUAIrtzcyAOcUkjhgbU4a8FZsA7h
KWSuLXO1bjSxVMRSYZUGrUGpzaIYT6M9gzAGYTRSa1zCkFZxQTbL6HurBFIbPGNI+x6Nvkc6oTer
lvU1jYFHOjB4Ce+2EdybcKPy8Is9H3Q1RGQCj2zK0BQYsoFH6raBFJANDE2pdb7B16SShu0trnLs
9aeHZP6Z7StPtPBeW8bRmPRoDDz6Oht4bXcLc+U1yishx195iCZfkE16NCdqbAuWEYW/Dubamqc3
tzB04peRayvJQw2ZRmxskS5CivXuxNYRIzAJn8X5IpXScv/poQPjd40JYPjkzweny/KH9q33oYyH
VgpwRJGlHtWYn50hvFXsH37/0Pj/1riBycnJ7nN/zL41NVvdn0kHuwCqtdqvHa3mbH5n7tOO+zvn
7tT/CxVVH2++pqsXAAAAAElFTkSuQmCC</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>16</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>936</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>16</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>OFS.Image</string>
<string>File</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts45611277.21</string> </value>
</item>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>movableMenu.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string>//*****************************************************************************\n
// Do not remove this notice.\n
//\n
// Copyright 2001 by Mike Hall.\n
// See http://www.brainjar.com for terms of use.\n
//*****************************************************************************\n
\n
// Determine browser and version.\n
\n
function Browser() {\n
\n
var ua, s, i;\n
\n
this.isIE = false; // Internet Explorer\n
this.isNS = false; // Netscape\n
this.version = null;\n
\n
ua = navigator.userAgent;\n
\n
s = "MSIE";\n
if ((i = ua.indexOf(s)) \076= 0) {\n
this.isIE = true;\n
this.version = parseFloat(ua.substr(i + s.length));\n
return;\n
}\n
\n
s = "Netscape6/";\n
if ((i = ua.indexOf(s)) \076= 0) {\n
this.isNS = true;\n
this.version = parseFloat(ua.substr(i + s.length));\n
return;\n
}\n
\n
// Treat any other "Gecko" browser as NS 6.1.\n
\n
s = "Gecko";\n
if ((i = ua.indexOf(s)) \076= 0) {\n
this.isNS = true;\n
this.version = 6.1;\n
return;\n
}\n
}\n
\n
var browser = new Browser();\n
\n
//=============================================================================\n
// Window Object\n
//=============================================================================\n
\n
function Window(el) {\n
\n
var i, mapList, mapName;\n
\n
// Get window components.\n
\n
this.frame = el;\n
this.titleBar = winFindByClassName(el, "titleBar");\n
this.titleBarText = winFindByClassName(el, "titleBarText");\n
this.titleBarButtons = winFindByClassName(el, "titleBarButtons");\n
this.clientArea = winFindByClassName(el, "clientArea");\n
\n
// Find matching button image map.\n
\n
mapName = this.titleBarButtons.useMap.substr(1);\n
mapList = document.getElementsByTagName("MAP");\n
for (i = 0; i \074 mapList.length; i++)\n
if (mapList[i].name == mapName)\n
this.titleBarMap = mapList[i];\n
\n
// Save colors.\n
\n
this.activeFrameBackgroundColor = this.frame.style.backgroundColor;\n
this.activeFrameBorderColor = this.frame.style.borderColor;\n
this.activeTitleBarColor = this.titleBar.style.backgroundColor;\n
this.activeTitleTextColor = this.titleBar.style.color;\n
this.activeClientAreaBorderColor = this.clientArea.style.borderColor;\n
if (browser.isIE)\n
this.activeClientAreaScrollbarColor = this.clientArea.style.scrollbarBaseColor;\n
\n
// Save images.\n
\n
this.activeButtonsImage = this.titleBarButtons.src;\n
this.inactiveButtonsImage = this.titleBarButtons.longDesc;\n
\n
// Set flags.\n
\n
this.isOpen = false;\n
this.isMinimized = false;\n
\n
// Set methods.\n
\n
this.open = winOpen;\n
this.close = winClose;\n
this.minimize = winMinimize;\n
this.restore = winRestore;\n
this.makeActive = winMakeActive;\n
\n
// Set up event handling.\n
\n
this.frame.parentWindow = this;\n
this.frame.onmousemove = winResizeCursorSet;\n
this.frame.onmouseout = winResizeCursorRestore;\n
this.frame.onmousedown = winResizeDragStart;\n
\n
this.titleBar.parentWindow = this;\n
this.titleBar.onmousedown = winMoveDragStart;\n
\n
this.clientArea.parentWindow = this;\n
this.clientArea.onclick = winClientAreaClick;\n
\n
for (i = 0; i \074 this.titleBarMap.childNodes.length; i++)\n
if (this.titleBarMap.childNodes[i].tagName == "AREA")\n
this.titleBarMap.childNodes[i].parentWindow = this;\n
\n
// Calculate the minimum width and height values for resizing\n
// and fix any initial display problems.\n
\n
var initLt, initWd, w, dw;\n
\n
// Save the inital frame width and position, then reposition\n
// the window.\n
\n
initLt = this.frame.style.left;\n
initWd = parseInt(this.frame.style.width);\n
this.frame.style.right = -this.titleBarText.offsetWidth + "px";\n
\n
// For IE, start calculating the value to use when setting\n
// the client area width based on the frame width.\n
\n
if (browser.isIE) {\n
this.titleBarText.style.display = "none";\n
w = this.clientArea.offsetWidth;\n
this.widthDiff = this.frame.offsetWidth - w;\n
this.clientArea.style.width = w + "px";\n
dw = this.clientArea.offsetWidth - w;\n
w -= dw; \n
this.widthDiff += dw;\n
this.titleBarText.style.display = "";\n
}\n
\n
// Find the difference between the frame\'s style and offset\n
// widths. For IE, adjust the client area/frame width\n
// difference accordingly.\n
\n
w = this.frame.offsetWidth;\n
this.frame.style.width = "140px";\n
dw = this.frame.offsetWidth - w;\n
w -= dw;\n
this.frame.style.width = "140px";\n
if (browser.isIE)\n
this.widthDiff -= dw;\n
\n
// Find the minimum width for resize.\n
\n
this.isOpen = true; // Flag as open so minimize call will work.\n
this.minimize();\n
// Get the minimum width.\n
if (browser.isNS \046\046 browser.version \076= 1.2)\n
// For later versions of Gecko.\n
this.minimumWidth = this.frame.offsetWidth;\n
else\n
// For all others.\n
this.minimumWidth = this.frame.offsetWidth - dw;\n
\n
// Find the frame width at which or below the title bar text will\n
// need to be clipped.\n
\n
this.titleBarText.style.width = "";\n
this.clipTextMinimumWidth = this.frame.offsetWidth - dw;\n
\n
// Set the minimum height.\n
\n
this.minimumHeight = 1;\n
\n
// Restore window. For IE, set client area width.\n
\n
this.restore();\n
this.isOpen = false; // Reset flag.\n
initWd = Math.max(initWd, this.minimumWidth);\n
this.frame.style.width = "140px";\n
if (browser.isIE)\n
this.clientArea.style.width = (initWd - this.widthDiff) + "px";\n
\n
// Clip the title bar text if needed.\n
\n
if (this.clipTextMinimumWidth \076= this.minimumWidth)\n
this.titleBarText.style.width = (winCtrl.minimizedTextWidth + initWd - this.minimumWidth) + "px";\n
\n
// Restore the window to its original position.\n
\n
this.frame.style.right = "20px";\n
}\n
\n
//=============================================================================\n
// Window Methods\n
//=============================================================================\n
\n
function winOpen() {\n
\n
if (this.isOpen)\n
return;\n
\n
// Restore the window and make it visible.\n
\n
this.makeActive();\n
this.isOpen = true;\n
if (this.isMinimized)\n
this.restore();\n
this.frame.style.visibility = "visible";\n
}\n
\n
function winClose() {\n
\n
// Hide the window.\n
\n
this.frame.style.visibility = "hidden";\n
this.isOpen = false;\n
}\n
\n
function winMinimize() {\n
\n
if (!this.isOpen || this.isMinimized)\n
return;\n
\n
this.makeActive();\n
\n
// Save current frame and title bar text widths.\n
\n
this.restoreFrameWidth = this.frame.style.width;\n
this.restoreTextWidth = this.titleBarText.style.width;\n
\n
// Disable client area display.\n
\n
this.clientArea.style.display = "none";\n
\n
// Minimize frame and title bar text widths.\n
\n
if (this.minimumWidth)\n
this.frame.style.width = this.minimumWidth + "px";\n
else\n
this.frame.style.width = "";\n
this.titleBarText.style.width = winCtrl.minimizedTextWidth + "px";\n
\n
this.isMinimized = true;\n
}\n
\n
function winRestore() {\n
\n
if (!this.isOpen || !this.isMinimized)\n
return;\n
\n
this.makeActive();\n
\n
// Enable client area display.\n
\n
this.clientArea.style.display = "";\n
\n
// Restore frame and title bar text widths.\n
\n
this.frame.style.width = this.restoreFrameWidth;\n
this.titleBarText.style.width = this.restoreTextWidth;\n
\n
this.isMinimized = false;\n
}\n
\n
function winMakeActive() {\n
\n
if (winCtrl.active == this)\n
return;\n
\n
// Inactivate the currently active window.\n
\n
if (winCtrl.active) {\n
winCtrl.active.frame.style.backgroundColor = winCtrl.inactiveFrameBackgroundColor;\n
winCtrl.active.frame.style.borderColor = winCtrl.inactiveFrameBorderColor;\n
winCtrl.active.titleBar.style.backgroundColor = winCtrl.inactiveTitleBarColor;\n
winCtrl.active.titleBar.style.color = winCtrl.inactiveTitleTextColor;\n
winCtrl.active.clientArea.style.borderColor = winCtrl.inactiveClientAreaBorderColor;\n
if (browser.isIE)\n
winCtrl.active.clientArea.style.scrollbarBaseColor = winCtrl.inactiveClientAreaScrollbarColor;\n
if (browser.isNS \046\046 browser.version \074 6.1)\n
winCtrl.active.clientArea.style.overflow = "hidden";\n
if (winCtrl.active.inactiveButtonsImage)\n
winCtrl.active.titleBarButtons.src = winCtrl.active.inactiveButtonsImage;\n
}\n
\n
// Activate this window.\n
\n
this.frame.style.backgroundColor = this.activeFrameBackgroundColor;\n
this.frame.style.borderColor = this.activeFrameBorderColor;\n
this.titleBar.style.backgroundColor = this.activeTitleBarColor;\n
this.titleBar.style.color = this.activeTitleTextColor;\n
this.clientArea.style.borderColor = this.activeClientAreaBorderColor;\n
if (browser.isIE)\n
this.clientArea.style.scrollbarBaseColor = this.activeClientAreaScrollbarColor;\n
if (browser.isNS \046\046 browser.version \074 6.1)\n
this.clientArea.style.overflow = "auto";\n
if (this.inactiveButtonsImage)\n
this.titleBarButtons.src = this.activeButtonsImage;\n
this.frame.style.zIndex = ++winCtrl.maxzIndex;\n
winCtrl.active = this;\n
}\n
\n
//=============================================================================\n
// Event handlers.\n
//=============================================================================\n
\n
function winClientAreaClick(event) {\n
\n
// Make this window the active one.\n
\n
this.parentWindow.makeActive();\n
}\n
\n
//-----------------------------------------------------------------------------\n
// Window dragging.\n
//-----------------------------------------------------------------------------\n
\n
function winMoveDragStart(event) {\n
\n
var target;\n
var x, y;\n
\n
if (browser.isIE)\n
target = window.event.srcElement.tagName;\n
if (browser.isNS)\n
target = event.target.tagName;\n
\n
if (target == "AREA")\n
return;\n
\n
this.parentWindow.makeActive();\n
\n
// Get cursor offset from window frame.\n
\n
if (browser.isIE) {\n
x = window.event.x;\n
y = window.event.y;\n
}\n
if (browser.isNS) {\n
x = event.pageX;\n
y = event.pageY;\n
}\n
winCtrl.xOffset = winCtrl.active.frame.offsetLeft - x;\n
winCtrl.yOffset = winCtrl.active.frame.offsetTop - y;\n
\n
// Set document to capture mousemove and mouseup events.\n
\n
if (browser.isIE) {\n
document.onmousemove = winMoveDragGo;\n
document.onmouseup = winMoveDragStop;\n
}\n
if (browser.isNS) {\n
document.addEventListener("mousemove", winMoveDragGo, true);\n
document.addEventListener("mouseup", winMoveDragStop, true);\n
event.preventDefault();\n
}\n
\n
winCtrl.inMoveDrag = true;\n
}\n
\n
function winMoveDragGo(event) {\n
\n
var x, y;\n
\n
if (!winCtrl.inMoveDrag)\n
return;\n
\n
// Get cursor position.\n
\n
if (browser.isIE) {\n
x = window.event.x;\n
y = window.event.y;\n
window.event.cancelBubble = true;\n
window.event.returnValue = false;\n
}\n
if (browser.isNS) {\n
x = event.pageX;\n
y = event.pageY;\n
event.preventDefault();\n
}\n
\n
// Move window frame based on offset from cursor.\n
\n
winCtrl.active.frame.style.left = (x + winCtrl.xOffset) + "px";\n
winCtrl.active.frame.style.top = (y + winCtrl.yOffset) + "px";\n
}\n
\n
function winMoveDragStop(event) {\n
\n
winCtrl.inMoveDrag = false;\n
\n
// Remove mousemove and mouseup event captures on document.\n
\n
if (browser.isIE) {\n
document.onmousemove = null;\n
document.onmouseup = null;\n
}\n
if (browser.isNS) {\n
document.removeEventListener("mousemove", winMoveDragGo, true);\n
document.removeEventListener("mouseup", winMoveDragStop, true);\n
}\n
}\n
\n
//-----------------------------------------------------------------------------\n
// Window resizing.\n
//-----------------------------------------------------------------------------\n
\n
function winResizeCursorSet(event) {\n
\n
var target;\n
var xOff, yOff;\n
\n
if (this.parentWindow.isMinimized || winCtrl.inResizeDrag)\n
return;\n
\n
// If not on window frame, restore cursor and exit.\n
\n
if (browser.isIE)\n
target = window.event.srcElement;\n
if (browser.isNS)\n
target = event.target;\n
if (target != this.parentWindow.frame)\n
return;\n
\n
// Find resize direction.\n
\n
if (browser.isIE) {\n
xOff = window.event.offsetX;\n
yOff = window.event.offsetY;\n
}\n
if (browser.isNS) {\n
xOff = event.layerX;\n
yOff = event.layerY;\n
}\n
winCtrl.resizeDirection = ""\n
if (yOff \074= winCtrl.resizeCornerSize)\n
winCtrl.resizeDirection += "n";\n
else if (yOff \076= this.parentWindow.frame.offsetHeight - winCtrl.resizeCornerSize)\n
winCtrl.resizeDirection += "s";\n
if (xOff \074= winCtrl.resizeCornerSize)\n
winCtrl.resizeDirection += "w";\n
else if (xOff \076= this.parentWindow.frame.offsetWidth - winCtrl.resizeCornerSize)\n
winCtrl.resizeDirection += "e";\n
\n
// If not on window edge, restore cursor and exit.\n
\n
if (winCtrl.resizeDirection == "") {\n
this.onmouseout(event);\n
return;\n
}\n
\n
// Change cursor.\n
\n
if (browser.isIE)\n
document.body.style.cursor = winCtrl.resizeDirection + "-resize";\n
if (browser.isNS)\n
this.parentWindow.frame.style.cursor = winCtrl.resizeDirection + "-resize";\n
}\n
\n
function winResizeCursorRestore(event) {\n
\n
if (winCtrl.inResizeDrag)\n
return;\n
\n
// Restore cursor.\n
\n
if (browser.isIE)\n
document.body.style.cursor = "";\n
if (browser.isNS)\n
this.parentWindow.frame.style.cursor = "";\n
}\n
\n
function winResizeDragStart(event) {\n
\n
var target;\n
\n
// Make sure the event is on the window frame.\n
\n
if (browser.isIE)\n
target = window.event.srcElement;\n
if (browser.isNS)\n
target = event.target;\n
if (target != this.parentWindow.frame)\n
return;\n
\n
this.parentWindow.makeActive();\n
\n
if (this.parentWindow.isMinimized)\n
return;\n
\n
// Save cursor position.\n
\n
if (browser.isIE) {\n
winCtrl.xPosition = window.event.x;\n
winCtrl.yPosition = window.event.y;\n
}\n
if (browser.isNS) {\n
winCtrl.xPosition = event.pageX;\n
winCtrl.yPosition = event.pageY;\n
}\n
\n
// Save window frame position and current window size.\n
\n
winCtrl.oldLeft = parseInt(this.parentWindow.frame.style.left, 10);\n
winCtrl.oldTop = parseInt(this.parentWindow.frame.style.top, 10);\n
winCtrl.oldWidth = parseInt(this.parentWindow.frame.style.width, 10);\n
winCtrl.oldHeight = parseInt(this.parentWindow.clientArea.style.height, 10);\n
\n
// Set document to capture mousemove and mouseup events.\n
\n
if (browser.isIE) {\n
document.onmousemove = winResizeDragGo;\n
document.onmouseup = winResizeDragStop;\n
}\n
if (browser.isNS) {\n
document.addEventListener("mousemove", winResizeDragGo, true);\n
document.addEventListener("mouseup" , winResizeDragStop, true);\n
event.preventDefault();\n
}\n
\n
winCtrl.inResizeDrag = true;\n
}\n
\n
function winResizeDragGo(event) {\n
\n
var north, south, east, west;\n
var dx, dy;\n
var w, h;\n
\n
if (!winCtrl.inResizeDrag)\n
return;\n
\n
// Set direction flags based on original resize direction.\n
\n
north = false;\n
south = false;\n
east = false;\n
west = false;\n
if (winCtrl.resizeDirection.charAt(0) == "n")\n
north = true;\n
if (winCtrl.resizeDirection.charAt(0) == "s")\n
south = true;\n
if (winCtrl.resizeDirection.charAt(0) == "e" || winCtrl.resizeDirection.charAt(1) == "e")\n
east = true;\n
if (winCtrl.resizeDirection.charAt(0) == "w" || winCtrl.resizeDirection.charAt(1) == "w")\n
west = true;\n
\n
// Find change in cursor position.\n
\n
if (browser.isIE) {\n
dx = window.event.x - winCtrl.xPosition;\n
dy = window.event.y - winCtrl.yPosition;\n
}\n
if (browser.isNS) {\n
dx = event.pageX - winCtrl.xPosition;\n
dy = event.pageY - winCtrl.yPosition;\n
}\n
\n
// If resizing north or west, reverse corresponding amount.\n
\n
if (west)\n
dx = -dx;\n
if (north)\n
dy = -dy;\n
\n
// Check new size.\n
\n
w = winCtrl.oldWidth + dx;\n
h = winCtrl.oldHeight + dy;\n
if (w \074= winCtrl.active.minimumWidth) {\n
w = winCtrl.active.minimumWidth;\n
dx = w - winCtrl.oldWidth;\n
}\n
if (h \074= winCtrl.active.minimumHeight) {\n
h = winCtrl.active.minimumHeight;\n
dy = h - winCtrl.oldHeight;\n
}\n
\n
// Resize the window. For IE, keep client area and frame widths in synch.\n
\n
if (east || west) {\n
winCtrl.active.frame.style.width = w + "px";\n
if (browser.isIE)\n
winCtrl.active.clientArea.style.width = (w - winCtrl.active.widthDiff) + "px";\n
}\n
if (north || south)\n
winCtrl.active.clientArea.style.height = h + "px";\n
\n
// Clip the title bar text, if necessary.\n
\n
if (east || west) {\n
if (w \074 winCtrl.active.clipTextMinimumWidth)\n
winCtrl.active.titleBarText.style.width = (winCtrl.minimizedTextWidth + w - winCtrl.active.minimumWidth) + "px";\n
else\n
winCtrl.active.titleBarText.style.width = "";\n
}\n
\n
// For a north or west resize, move the window.\n
\n
if (west)\n
winCtrl.active.frame.style.left = (winCtrl.oldLeft - dx) + "px";\n
if (north)\n
winCtrl.active.frame.style.top = (winCtrl.oldTop - dy) + "px";\n
\n
if (browser.isIE) {\n
window.event.cancelBubble = true;\n
window.event.returnValue = false;\n
}\n
if (browser.isNS)\n
event.preventDefault();\n
}\n
\n
function winResizeDragStop(event) {\n
\n
winCtrl.inResizeDrag = false;\n
\n
// Remove mousemove and mouseup event captures on document.\n
\n
if (browser.isIE) {\n
document.onmousemove = null;\n
document.onmouseup = null;\n
}\n
if (browser.isNS) {\n
document.removeEventListener("mousemove", winResizeDragGo, true);\n
document.removeEventListener("mouseup" , winResizeDragStop, true);\n
}\n
}\n
\n
//=============================================================================\n
// Utility functions.\n
//=============================================================================\n
\n
function winFindByClassName(el, className) {\n
\n
var i, tmp;\n
\n
if (el.className == className)\n
return el;\n
\n
// Search for a descendant element assigned the given class.\n
\n
for (i = 0; i \074 el.childNodes.length; i++) {\n
tmp = winFindByClassName(el.childNodes[i], className);\n
if (tmp != null)\n
return tmp;\n
}\n
\n
return null;\n
}\n
\n
//=============================================================================\n
// Initialization code.\n
//=============================================================================\n
\n
var winList = new Array();\n
var winCtrl = new Object();\n
\n
function winInit() {\n
\n
var elList;\n
\n
// Initialize window control object.\n
\n
winCtrl.maxzIndex = 0;\n
winCtrl.resizeCornerSize = 16;\n
winCtrl.minimizedTextWidth = 100;\n
winCtrl.inactiveFrameBackgroundColor = "#c0c0c0";\n
winCtrl.inactiveFrameBorderColor = "#f0f0f0 #505050 #404040 #e0e0e0";\n
winCtrl.inactiveTitleBarColor = "#808080";\n
winCtrl.inactiveTitleTextColor = "#c0c0c0";\n
winCtrl.inactiveClientAreaBorderColor = "#404040 #e0e0e0 #f0f0f0 #505050";\n
winCtrl.inactiveClientAreaScrollbarColor = "";\n
winCtrl.inMoveDrag = false;\n
winCtrl.inResizeDrag = false;\n
\n
// Initialize windows and build list.\n
\n
elList = document.getElementsByTagName("DIV");\n
for (var i = 0; i \074 elList.length; i++)\n
if (elList[i].className == "window")\n
winList[elList[i].id] = new Window(elList[i]);\n
}\n
// run initialization code after page loads.\n
//window.onload = winInit;\n
\n
//]]\076</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>18649</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
0.1 0.2
\ No newline at end of file \ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment