diff --git a/phpgwapi/templates/idots2/about.tpl b/phpgwapi/templates/idots2/about.tpl new file mode 100755 index 0000000000..9a6c7d2ef3 --- /dev/null +++ b/phpgwapi/templates/idots2/about.tpl @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ eGroupWare +
 
{phpgw_version}
{phpgw_message}
spacer
spacer
+ +{phpgw_app_about} + +
diff --git a/phpgwapi/templates/idots2/add_shortcut.php b/phpgwapi/templates/idots2/add_shortcut.php new file mode 100755 index 0000000000..a27667c69c --- /dev/null +++ b/phpgwapi/templates/idots2/add_shortcut.php @@ -0,0 +1,146 @@ + * + * -------------------------------------------- * + * This program is free software; you can redistribute it and/or modify it * + * under the terms of the GNU General Public License as published by the * + * Free Software Foundation; either version 2 of the License, or (at your * + * option) any later version. * + \**************************************************************************/ + + $phpgw_info = array(); + $GLOBALS['phpgw_info']['flags'] = Array( + 'currentapp' => 'home', + ); + + include('../../../header.inc.php'); + + + $GLOBALS['idots_tpl'] = createobject('phpgwapi.Template',PHPGW_TEMPLATE_DIR); + + + $GLOBALS['idots_tpl']->set_file( + array( + 'add_shortcut' => 'add_shortcut.tpl' + ) + ); + + $GLOBALS['idots_tpl']->set_block('add_shortcut','formposted','formposted'); + + + /* + **If a form is posted + ** + */ + if(isset($_POST['submit']) && $_POST['submit'] == lang("Add")) + { + $GLOBALS['phpgw']->preferences->read_repository(); + $app_data = $GLOBALS['phpgw_info']['navbar'][$_POST['select']]; + + if(!empty($app_data['name'])) + { + $shortcut_data = Array( + 'title'=> $app_data['name'], + 'icon'=> $app_data['icon'], + 'link'=> $app_data['url'], + 'top'=> $_POST['hitTop'], + 'left'=> $_POST['hitLeft'], + 'type'=> 'app' + ); + + $name = $app_data['name']; + $title = $app_data['title']; + $url = $app_data['url']; + $img = $app_data['icon']; + $type = 'arr'; + $shortcut = $app_data['name']; + + $GLOBALS['phpgw']->preferences->change('phpgwapi',$shortcut,$shortcut_data); + $GLOBALS['phpgw']->preferences->save_repository(True); + } + + $var['title'] = $title; + $var['url'] = $url; + $var['img'] = $img; + $var['type'] = $type; + $var['hitTop']= $_POST['hitTop']; + $var['hitLeft']= $_POST['hitLeft']; + + + $GLOBALS['idots_tpl']->set_var($var); + $GLOBALS['idots_tpl']->pfp('out','formposted'); + + } + else + { + + $GLOBALS['idots_tpl']->set_block('add_shortcut','jscript','jscript'); + $GLOBALS['idots_tpl']->set_block('add_shortcut','css','css'); + + $GLOBALS['idots_tpl']->set_block('add_shortcut','selstart','selstart'); + + $GLOBALS['idots_tpl']->set_block('add_shortcut','shortcut','shortcut'); + + $GLOBALS['idots_tpl']->set_block('add_shortcut','img','img'); + + $GLOBALS['idots_tpl']->set_block('add_shortcut','selend','selend'); + + $var['appNames'] = ""; + $var['appUrls'] = ""; + $first = true; + foreach($GLOBALS['phpgw_info']['navbar'] as $app => $app_data) + { + + if($first == true) + { + $var['appNames'] .= $app_data['name']; + $var['appUrls'] .= $app_data['icon']; + $starturl = $app_data['icon']; + $first = false; + } + else + { + $var['appNames'] .= ",".$app_data['name']; + $var['appUrls'] .= ",".$app_data['icon']; + } + + } + + $GLOBALS['idots_tpl']->set_var($var); + + $GLOBALS['idots_tpl']->pfp('out','jscript'); + $GLOBALS['idots_tpl']->pfp('out','css'); + + $var["selName"] = lang("Application"); + $GLOBALS['idots_tpl']->set_var($var); + $GLOBALS['idots_tpl']->pfp('out','selstart'); + foreach($GLOBALS['phpgw_info']['navbar'] as $app => $app_data) + { + $found = false; + foreach($GLOBALS['phpgw_info']['user']['preferences']['phpgwapi'] as $shortcut=> $shortcut_data) + { + if($shortcut_data['title'] == $app_data['title']) + { + $found = true; + } + } + if($found ==false) + { + $var['item'] = lang($app_data['title']); + $var['name'] = $app_data['name']; + $GLOBALS['idots_tpl']->set_var($var); + $GLOBALS['idots_tpl']->pfp('out','shortcut'); + } + } + + $var["buttonName"]=lang("Add"); + $GLOBALS['idots_tpl']->set_var($var); + $GLOBALS['idots_tpl']->pfp('out','selend'); + $var['starturl'] = $starturl; + $GLOBALS['idots_tpl']->set_var($var); + $GLOBALS['idots_tpl']->pfp('out','img'); + } + +?> diff --git a/phpgwapi/templates/idots2/add_shortcut.tpl b/phpgwapi/templates/idots2/add_shortcut.tpl new file mode 100755 index 0000000000..71cd50f8a2 --- /dev/null +++ b/phpgwapi/templates/idots2/add_shortcut.tpl @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +


+ +
+ + + diff --git a/phpgwapi/templates/idots2/css.tpl b/phpgwapi/templates/idots2/css.tpl new file mode 100755 index 0000000000..50b1baaf0e --- /dev/null +++ b/phpgwapi/templates/idots2/css.tpl @@ -0,0 +1,9 @@ + +{css_file} diff --git a/phpgwapi/templates/idots2/css/idots2.css b/phpgwapi/templates/idots2/css/idots2.css new file mode 100755 index 0000000000..8168244f21 --- /dev/null +++ b/phpgwapi/templates/idots2/css/idots2.css @@ -0,0 +1,322 @@ +/* +StyleSheet coding standards: + +1. use lowercase if possible + +2. format styles like this: + +body +{ + font-size: 12px; + font-family: Verdana, Arial, Helvetica, sans-serif +} + +3. existing html elements on top of the document, then all self defined .classes and at last all self defined #id's. + +4. close every property with ; also the last one. +*/ + + +form +{ + margin:0px; + padding:0px; +} + +img +{ + border-width:0px; + border-style:none; + /*filter:progid:DXImageTransform.Microsoft.AlphaImageLoader; +*/ +} + +a:link,a:visited +{ + cursor:pointer; + color: #006699; + text-decoration: none; +} + +/* +a:visited +{ + color: #006699; + text-decoration: none; +} +*/ +a:hover,a:active +{ + cursor:pointer; + color: #ff9933; + text-decoration: underline; +} +/* +a:active +{ + color: #006699; + text-decoration: underline; +} +*/ +input,button +{ + font-size: 12px; + color: #006699; + font-family: Arial, Helvetica, sans-serif; + border: 1px #bbbbbb solid; +} + +input[type=submit],input[type=button],input[type=reset],button +{ + margin:1px; + padding:1px; + cursor: pointer; + cursor: hand; +} + +input[type=image] +{ + cursor: pointer; + cursor: hand; + border: 0px #bbbbbb none; +} +select +{ + font-size: 11px; + color: #006699; + font-family: Arial, Helvetica, sans-serif; + border: 1px #bbbbbb solid; +} + +td +{ + +/* global tags should never be defined here [ndee]*/ + font-size: 11px; +/* removed text-align:left; [ndee]*/ + /* padding-top:1px; + padding-bottom:1px;*/ +} + + +a.appTitles,.appTitles +{ + font-size: 10px; + height:18px; + padding-top:2px; + padding-bottom:2px; +} + +.greyLine +{ + margin:1px; + border-top-color:#7e7e7e; + border-top-width:1px; + border-top-style:solid; + height:1px; +} + +#divStatusBar +{ + background-color:white; + height:15px; + padding-left:10px; + margin-top: 13px; + /* margin-bottom: 2px;*/ +} + +/*#divSubContainer +{ +} +*/ +#tdSidebox +{ + width:170px; + background-color:white; + overflow:visible; +} + + +#tdAppbox +{ + background-color:white; + padding-left:5px; + width: 100%; +} +#divSideboxContainer +{ + position:relative; + width:150px; + top:0px; + left:0px; + background-color:white; + border-width:1px; + border-style:solid; + z-index:40; +} + +#divAppboxHeader +{ + /*width:100%;*/ + background-image:url(../images/appbox-header-background.png); + background-repeat: repeat-x; + height:36px; + line-height:28px; + text-align:center; + /* padding-top:7px;*/ + padding-bottom:0px; + font-size:14px; + font-weight:bold; + color:#666666; + border-top-color:#9c9c9c; + border-top-width:1px; + border-top-style:solid; + border-left-color:#9c9c9c; + border-left-width:1px; + border-left-style:solid; + border-right-color:#9c9c9c; + border-right-width:1px; + border-right-style:solid; +} + +#divAppbox +{ +/* width:100%;*/ + background-color:#f7f7f7; + margin-top:30px; + padding:0; + border: 1px solid #9c9c9c; + +} + +#fmStatusBar +{ + margin-left:4px; + margin-bottom:3px; + font-size: 10px; +/* font-family: Verdana, Arial, Helvetica, sans-serif;*/ + + +} + + +.fmButton +{ + background-image:url(../images/buttonbackground.png); + width:28px; + height:28px; + background-repeat: no-repeat; +} + +#fmLocation +{ + position:relative; + /*background-image:url(../images/buttonbackgroundscaled.png); + background-repeat: repeat-x;*/ + /*margin-left:4px;*/ + margin-bottom:3px; + height:27px; + +} + +#fmMenu +{ + position:relative; +} +#fmFileWindow +{ + background-color:#ffffff; + margin-left:4px; + padding:5px; + position:relative; + border-right: #cccccc 1px solid; + border-top: #9c9c9c 2px solid; + border-left: #9c9c9c 2px solid; + border-bottom: #cccccc 1px solid +} + +#admin_info +{ + position:relative; + text-align:right; +} + +#divGenTime +{ + bottom:14px; + font-size: 9px; + color: #ff0000; + text-align:center; + width:99%; +} + +#divPoweredBy +{ + bottom:14px; + font-size: 9px; + color: #000; + text-align:center; + width:99%; +} + +#nav{ + padding: 0; + background-color: #F00; + list-style: none; + height: 26px; + width:100%; + position: fixed; + margin:0; + background-color: #CCC; + top:0; + left:0; + background-image:url('../images/back_menubar.png'); + z-index: 50; + border-bottom: 1px solid #9c9c9c; +} + +#nav a { + text-decoration:none; + margin: 2px; + padding-left: 3px; + padding-right: 3px; +} +#nav a.activated { + background-color:#EEE; + border: 1px solid #000; + margin: 1px; +} + +#nav a:hover { + background-color:#EEE; + border: 1px solid #000; + margin: 1px; +} + +#nav ul { + padding-top: 2px; + background-color:#FFF; + border: 1px solid #000; + display:none; + margin-left: 1px; + padding-left: 0px; + position: absolute; +} +#nav li +{ + padding: 0; + padding-top: 2px; + padding-bottom: 2px; + margin: 0; + + list-style: none; + float:left; + height: 18px; +} +#nav li li +{ + clear:both; + margin-right:2px; +} + + diff --git a/phpgwapi/templates/idots2/css/idots2_page.css b/phpgwapi/templates/idots2/css/idots2_page.css new file mode 100755 index 0000000000..8fef76f79a --- /dev/null +++ b/phpgwapi/templates/idots2/css/idots2_page.css @@ -0,0 +1,481 @@ + +body, html{ + + scrollbar-3dlight-color : #000000; + scrollbar-arrow-color : #000000; + scrollbar-base-color : #000000; + scrollbar-darkshadow-color : #000000; + scrollbar-face-color : #C6C6C6; + scrollbar-highlight-color : #C6C6C6; + scrollbar-shadow-color : #000000; + scrollbar-track-color : #e0e0e0; + top: 0; + left: 0; + margin: 0; + padding: 0; + background-color: #C6C6C6; + font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none; color: #000000; + font-size: 11px; +} + +.xF_button { background-color: #638494; border: 1px solid #000000; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none; color: #ffffff; font-size: 11px;} +.xF_submit { background-color: #638494; border: 1px solid #000000; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none; font-size: 11px;} +.xF_text { background-color: #FFFFFF; border: 1px solid #000000; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none; font-size: 11px;} +.xF_textarea { background-color: #FFFFFF; border: 1px solid #000000; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none; font-size: 11px;} +.xF_select { background-color: #FFFFFF; border: 1px solid #000000; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none; font-size: 11px;} +.xF_title {color: #000000; font-size: 12px; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none;} +.xF_a_button:link, .xF_a_button:visited, .xF_a_button:hover, .xF_a_button:active { font-family: Verdana, Arial, sans-serif; font-size: 11px; font-weight: normal; color:#FFFFFF; text-decoration:underline } + + + +a:link, a:visited, a:hover, a:active { font-family: Verdana, Arial, sans-serif; font-size: 11px; font-weight: normal; color:#000000; text-decoration:underline } +TD {color: #000000; font-size: 11px; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none;} + +#nav{ + padding: 0; + list-style: none; + height: 26px; + width:100%; + position: fixed; + margin:0; + background-color: #FFF; + top:0; + left:0; + background-image:url('../images/back_menubar.png'); + z-index: 900; + border-bottom: 1px solid #9c9c9c; +} + +#nav a { + text-decoration:none; + margin: 2px; + padding-left: 3px; + padding-right: 3px; +} +#nav a.activated { + background-color:#EEE; + border: 1px solid #000; + margin: 1px; +} + +#nav a:hover { + background-color:#EEE; + border: 1px solid #000; + margin: 1px; +} + +#nav ul { + padding-top: 2px; + background-color:#FFF; + border: 1px solid #000; + display:none; + margin-left: 1px; + padding-left: 0px; + position: absolute; + z-index: 900; +} +#nav li +{ + padding: 0; + padding-top: 2px; + padding-bottom: 2px; + margin: 0; + + list-style: none; + float:left; + height: 18px; +} +#nav li li +{ + clear:both; + margin-right:2px; +} + +form +{ + margin:0px; + padding:0px; +} + +img +{ + border-width:0px; + border-style:none; + /*filter:progid:DXImageTransform.Microsoft.AlphaImageLoader; +*/ +} + +a:link,a:visited +{ + cursor:pointer; + color: #006699; + text-decoration: none; +} +a:hover,a:active +{ + cursor:pointer; + color: #ff9933; + text-decoration: underline; +} +/* +a:active +{ + color: #006699; + text-decoration: underline; +} +*/ +input,button +{ + font-size: 12px; + color: #006699; + font-family: Arial, Helvetica, sans-serif; + border: 1px #bbbbbb solid; +} + +input[type=submit],input[type=button],input[type=reset],button +{ + margin:1px; + padding:1px; + cursor: pointer; + cursor: hand; +} + +input[type=image] +{ + cursor: pointer; + cursor: hand; + border: 0px #bbbbbb none; +} +select +{ + font-size: 11px; + color: #006699; + font-family: Arial, Helvetica, sans-serif; + border: 1px #bbbbbb solid; +} + +td +{ + +/* global tags should never be defined here [ndee]*/ + font-size: 11px; +/* removed text-align:left; [ndee]*/ + /* padding-top:1px; + padding-bottom:1px;*/ +} + +.divLoginbox +{ + position:relative; + width: 300px; + border-right: #9c9c9c 1px solid; + border-top: #9c9c9c 1px solid; + border-left: #9c9c9c 1px solid; + border-bottom: #9c9c9c 1px solid +} + +.divLoginboxHeader +{ + text-align:center; + background-color:#dddddd; + padding-top:2px; + font-size:11px; + font-weight:bold; + color:#FFFFFF; +} +.divSidebox +{ + position:relative; + width: 147px; + border-right: #9c9c9c 1px solid; + border-top: #9c9c9c 1px solid; + border-left: #9c9c9c 1px solid; + border-bottom: #9c9c9c 1px solid +} + +.divSideboxHeader +{ + text-align:center; + padding-top:2px; + font-size:10px; + color:#666666; +} + +a.divSideboxEntry, .divSideboxEntry +{ + text-align:left; + height:16px; + background-color:#eeeeee; +} + +a.appTitles,.appTitles +{ + font-size: 10px; + height:18px; + padding-top:2px; + padding-bottom:2px; +} + +a.textSidebox +{ + font-size: 10px; + border-top: #aaaaaa 0px none; +} + +.textSidebox +{ + font-size: 10px; + height:18px; + padding-top:2px; + padding-bottom:2px; + border-top: #aaaaaa 1px solid; + +} + +.sideboxSpace +{ + height:9px; +} + +.greyLine +{ + margin:1px; + border-top-color:#7e7e7e; + border-top-width:1px; + border-top-style:solid; + height:1px; +} + +.prefSection +{ + font-weight:bold; + font-size:16px; + line-height:40px; +} + +.extraIconsRow +{ + border-top-color:#dddddd; + border-top-width:1px; + border-top-style:solid; + padding:2px; +} + +#extraIcons +{ +/* position:absolute; + z-index:13; + right:10px; + top:113px; + visibility:hidden;*/ +/* background-image:url(../images/alpha-white.png);*/ + background-color:#eeeeee; + border-width:1px; + border-color:#7e7e7e; + border-style:solid; +} + + + + + +#divLogo +{ + position:absolute; + left:20px; + top:5px; + z-index:51; +} + +#divAppIconBar +{ + background-color:white; + border-top-color:#9c9c9c; + border-top-width:1px; + border-top-style:solid; + background-image: url(../images/background-icon-bar.png); + background-repeat: repeat-x +} + +#divAppTextBar +{ + background-color:white; +} + +#divStatusBar +{ + background-color:white; + height:15px; + padding-left:10px; + margin-top: 13px; + /* margin-bottom: 2px;*/ +} + +/*#divSubContainer +{ +} +*/ +#tdSidebox +{ + width:170px; + background-color:white; + overflow:visible; +} + + +#tdAppbox +{ + background-color:white; + padding-left:5px; + width: 100%; +} +#divSideboxContainer +{ + position:relative; + width:150px; + top:0px; + left:0px; + background-color:white; + border-width:1px; + border-style:solid; + z-index:40; +} + +#divAppboxHeader +{ + /*width:100%;*/ + background-image:url(../images/appbox-header-background.png); + background-repeat: repeat-x; + height:36px; + line-height:28px; + text-align:center; + /* padding-top:7px;*/ + padding-bottom:0px; + font-size:14px; + font-weight:bold; + color:#666666; + border-top-color:#9c9c9c; + border-top-width:1px; + border-top-style:solid; + border-left-color:#9c9c9c; + border-left-width:1px; + border-left-style:solid; + border-right-color:#9c9c9c; + border-right-width:1px; + border-right-style:solid; +} + +#divAppbox +{ +/* width:100%;*/ + background-color:#f7f7f7; + margin-top:50px; + _margin-top: 0; + padding:0; + border: 1px solid #9c9c9c; + +} + +#fmStatusBar +{ + margin-left:4px; + margin-bottom:3px; + font-size: 10px; +/* font-family: Verdana, Arial, Helvetica, sans-serif;*/ + + +} + + +.fmButton +{ + background-image:url(../images/buttonbackground.png); + width:28px; + height:28px; + background-repeat: no-repeat; +} + +#fmLocation +{ + position:relative; + /*background-image:url(../images/buttonbackgroundscaled.png); + background-repeat: repeat-x;*/ + /*margin-left:4px;*/ + margin-bottom:3px; + height:27px; + +} + +#fmMenu +{ + position:relative; +} +#fmFileWindow +{ + background-color:#ffffff; + margin-left:4px; + padding:5px; + position:relative; + border-right: #cccccc 1px solid; + border-top: #9c9c9c 2px solid; + border-left: #9c9c9c 2px solid; + border-bottom: #cccccc 1px solid +} + +#admin_info +{ + position:relative; + text-align:right; +} + +#divGenTime +{ + bottom:14px; + font-size: 9px; + color: #ff0000; + text-align:center; + width:99%; +} + +#divPoweredBy +{ + bottom:14px; + font-size: 9px; + color: #000; + text-align:center; + width:99%; +} + +.toolbar +{ + background-color: #e5e5e5; + display: block; + position: fixed; + top: 26px; + left: 0; + padding: 0; + width: 100%; + height: 26px; + z-index: 49; + border-bottom: 1px solid #9c9c9c; +} +.toolbar a +{ + background-color: #e5e5e5; + display: block; + float: left; + width: 30px; + height: 20px; + padding: 0; + margin-top: 2px; + margin-bottom: 1px; + margin-left: 2px; + margin-right: 2px; + text-align: center; + background-position: center center; + background-repeat: no-repeat; + border: 1px solid #e5e5e5; + +} + + diff --git a/phpgwapi/templates/idots2/css/idots2_skin.css b/phpgwapi/templates/idots2/css/idots2_skin.css new file mode 100755 index 0000000000..b6d04c9233 --- /dev/null +++ b/phpgwapi/templates/idots2/css/idots2_skin.css @@ -0,0 +1,328 @@ +html, body { + scrollbar-3dlight-color : #000000; + scrollbar-arrow-color : #000000; + scrollbar-base-color : #000000; + scrollbar-darkshadow-color : #000000; + scrollbar-face-color : #C6C6C6; + scrollbar-highlight-color : #C6C6C6; + scrollbar-shadow-color : #000000; + scrollbar-track-color : #e0e0e0; + font-family: Verdana, Arial, sans-serif, Helvetica; + font-style: normal; + text-decoration: none; + font-size: 11px; + height: 100%; + width: 100%; + overflow: hidden; + top: 0; + left: 0; + margin: 0; + padding: 0; +} + +div.xDT_clsCBE +{ + position:absolute; visibility:hidden; top: 0px; left: 0px; + width:100%; height:100%; clip:rect(0,100%,100%,0); overflow: hidden; + color: #000000; margin:0px; + padding-bottom: 2px; + _padding-bottom: 50px; +} + +#xdesktop +{ + margin: 0; + padding: 0; + overflow: hidden; +} + + + +.xF_button { background-color: #638494; border: 1px solid #000000; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none; color: #ffffff; font-size: 11px;} +.xF_submit { background-color: #638494; border: 1px solid #000000; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none; font-size: 11px;} +.xF_text { background-color: #FFFFFF; border: 1px solid #000000; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none; font-size: 11px;} +.xF_textarea { background-color: #FFFFFF; border: 1px solid #000000; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none; font-size: 11px;} +.xF_select { background-color: #FFFFFF; border: 1px solid #000000; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none; font-size: 11px;} +.xF_title {color: #000000; font-size: 12px; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none;} +.xF_a_button:link, .xF_a_button:visited, .xF_a_button:hover, .xF_a_button:active { font-family: Verdana, Arial, sans-serif; font-size: 11px; font-weight: normal; color:#FFFFFF; text-decoration:underline } + +a:link, a:visited, a:hover, a:active { font-family: Verdana, Arial, sans-serif; font-size: 11px; font-weight: normal; color:#000000; text-decoration:underline } +TD {color: #000000; font-size: 11px; font-family: Verdana, Arial, sans-serif, Helvetica; font-style: normal; text-decoration: none;} + +.posabs {position: absolute } +.xDT_moveWindow { + font-family: Verdana, Arial, sans-serif, Helvetica; + text-decoration: none; + background-color: transparent; + color: #000000; + font-size: 10px; + border: 1px #000 solid; + +} +img { + border: none; +} + +img#backstretched { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top:0; + padding: 0; + margin: 0; + z-index: 1; +} + +#launchmenu ul +{ + display: block; + list-style-type: none; + float: left; + margin: 0; + margin-left: -1px; + width: 235px; + padding: 0; + border: 1px solid #7e7e7e; + background-color: #FFF; +} +#launchmenu ul li +{ + display: block; + width: 240px; + margin-right: 2px; + margin-left: 2px; + padding: 0; + clear: both; + float: left; + vertical-align: middle; +} + +#launchmenu ul li img +{ + display: block; + float: left; + width: 20px; + height: 20px; + margin: 1px; + margin-right: 10px; +} +#launchmenu ul li a +{ + display: block; + font-size: 16px; + margin: 2px; + text-decoration: none; + overflow: hidden; + height: 20px; +} +#launchmenu ul li a:hover +{ + display: block; + border: 1px solid #A24533; + margin: 1px; + padding-right: 3px; + + +} +#launchmenu ul li.programs +{ + background-color: #F00; + background-image: url('../js/x-desktop/xDT/skins/IDOTS2/menu_back.png'); + margin: 0; + width: 235px; + padding-left: 10px; + height: 23px; + padding-top: 2px; + padding-bottom: 2px; + border-bottom: 1px solid #7e7e7e; + +} +#launchmenu ul li.programs img +{ + width: 9px; + height: 23px; + margin: 0; +} +#launchmenu ul li.programs span +{ + background-image: url('../js/x-desktop/xDT/skins/IDOTS2/btn_white_middle.png'); + padding-left: 10px; + +} + +#launchinfo { + float: left; + background: #CCC; + width: 15px; + height: 100%; + display: hidden; +} +#tasks { + margin-top: 2px; +} +img.taskbegin { + float: left; + margin: 0; + margin-left: 0; +} +a.taskNode { + display:block; + width: 150px; + height: 23px; + float: left; + margin: 0; + margin-left: 20px; + text-align: center; + color: #000; + font-weight: 900; +} + +a.taskNode span { + float: left; + background-image: url('../js/x-desktop/xDT/skins/IDOTS2/btn_white_middle.png'); + height: 21px; + margin: 0px; + padding: 0px; + padding-top: 2px; +} +a.taskNode2 { + display:block; + width: 150px; + height: 23px; + float: left; + + margin: 0; + margin-left: 20px; + text-align: center; + color: #000; + font-weight: 900; +} +a.taskNode2 span { + float: left; + background-image: url('../js/x-desktop/xDT/skins/IDOTS2/btn_orange_middle.png'); + height: 21px; + padding-top: 2px; +} +img.taskend { + float: left; + margin: 0; + + clear: none; +} + +img.titleleft +{ + float: left; + height: 23px; + display: block; + clear: none; + margin-left: 10px; +} +span.titlemiddle +{ + float: left; + background-image: url('../js/x-desktop/xDT/skins/IDOTS2/btn_white_middle.png'); + height: 19px; + padding: 0; + padding-top: 4px; + text-align: center; + color: #000; + font-weight: 900; + display: block; + clear: none; +} +img.titleright +{ + float: left; + height: 23px; + display: block; + clear: none; +} + +ul#context, ul#context2 +{ + position: absolute; + /*height: 100px; + width: 100px;*/ + background-color: #FFF; + top: 10px; + left: 10px; + z-index: 100; + list-style: none; + padding: 0; + padding-right: 10px; + _padding-right: 0; + border: 1px solid #7e7e7e; + _width:125px; +} +#context li, #context2 li +{ + height: 100%; + width: 100%; +} +#context a, #context2 a +{ + border: 1px solid transparent; + background-color: #FFF; + margin-top: 2px; + margin-bottom: 2px; + margin-left: 2px; + margin-right: 2px; + height: 100%; + width: 100%; + padding: 2px; + color: #006699; + cursor:pointer; + display: block; + text-decoration: none; +} +#context a:hover, #context2 a:hover +{ + border: 1px solid #7e7e7e; + margin-top: 2px; + background-color: #EEE; + margin-bottom: 2px; + text-decoration:none; + color: #FF9933; + font-family: Verdana, sans-serif; +} + +#tiled, #centered, #stretched +{ + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 1; +} +#centered +{ + background-position: center center; + background-repeat: no-repeat; +} + +div.shortcut +{ + display: block; + position: absolute; + z-index: 3; + text-decoration:none; + text-align: center; + padding-top: 32px; + _padding-top: inherit; +} +div.shortcut span.iex { + width: 32px; + height: 32px; + display: block; +} + +div.shortcut span.title +{ + clear: left; + display: block; + background-color: #FFF; + +} \ No newline at end of file diff --git a/phpgwapi/templates/idots2/css/taskbar_down.css b/phpgwapi/templates/idots2/css/taskbar_down.css new file mode 100755 index 0000000000..1f7c3cfd21 --- /dev/null +++ b/phpgwapi/templates/idots2/css/taskbar_down.css @@ -0,0 +1,114 @@ +div#taskbar { + border-top: 2px solid #000; + color: #D4D4D4; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 30px; + z-index: 9999; + background-image: url('../js/x-desktop/xDT/skins/IDOTS2/menu_back.png'); + padding-top: 2px; + +} +div#tb { + + float:left; + margin-top: 0; + margin-left: 5px; + font-size: 14px; + font-weight: 900; + cursor: pointer; + width: 23px; + height: 22px; +} +img#launch { + margin-top: 0; + margin-left: 4px; + cursor: pointer; + vertical-align: bottom; + display: block; + float: left; + clear: none; + width: 66px; + height: 22px; +} + +div#clock { + float: right; + margin-top: 0; + margin-right: 2px; + width: 190px; + padding-left: 3px; + padding-right: 3px; + padding-top: 6px; + color: #000; + background-image: url('../js/x-desktop/xDT/skins/IDOTS2/back_clock.png'); + font-size: 11px; + height: 20px; + font-weight: 900; + + cursor: pointer; + text-align: center; +} +a#warning { + display: none; + position: absolute; + bottom: 2px; + right: 210px; + z-index: 99999; +} +a.noclock#warning { + right: 10px; +} +ul#notify { + position: absolute; + display: none; + background: #FFF; + bottom: 24px; + right: 50px; + border: 1px solid #000; + z-index: 111111; + padding-left: 15px; +} +ul#notify li { + padding: 2px; + +} + + + +div#clock span { + font-size: 15px; +} + +img#xdesktoplogo +{ + position:absolute; + right:5px; + top:5px; + z-index: 2; + height: 60px; + width:160px; +} + +img#egroupwarelogo +{ + position:absolute; + left:5px; + top:5px; + z-index: 2; + height: 114px; + width: 190px; +} +#launchmenu +{ + position: absolute; + bottom: 34px; + _bottom: 32px; + margin: 0; + left: 0; + z-index: 111111; + overflow: hidden; + +} diff --git a/phpgwapi/templates/idots2/css/taskbar_top.css b/phpgwapi/templates/idots2/css/taskbar_top.css new file mode 100755 index 0000000000..3d3932616f --- /dev/null +++ b/phpgwapi/templates/idots2/css/taskbar_top.css @@ -0,0 +1,98 @@ +div#taskbar { + background-color: #CCC; + border: 1px solid #000; + color: #D4D4D4; + height: 24px; + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 9999; +} +div#tb { + border: 1px solid #000; + width: 25px; + height: 18px; + position:absolute; + float:left; + background-color: #FFF; + margin-top: 2px; + margin-left: 115px; + font-size: 14px; + font-weight: 900; + cursor: pointer; + +} +div#launch { + border: 1px solid #000; + width: 100px; + height: 18px; + float:left; + background-color: #AAA; + margin-top: 2px; + margin-left: 4px; + font-size: 14px; + font-weight: 900; + cursor: pointer; + +} +div#launch img { + width: 16px; + float: left; + height: 16px; + height:100%; + border: none; + margin-top: 2px; + +} + +img#bgimg { + position: absolute; + width: 100%; + left: 0; + top:0; +} +div#clock { + float: right; + margin-top: 2px; + margin-right: 5px; + width: auto; + padding-left: 3px; + padding-right: 3px; + color: #000; + background-color: #E5E5E5; + font-size: 14px; + height: 18px; + font-weight: 900; + border: 1px solid #000; + cursor: pointer; +} + +img#xdesktoplogo +{ + position:absolute; + right:5px; + top:50px; + z-index:1; +} + +img#egroupwarelogo +{ + position:absolute; + left:5px; + top:50px; + z-index:1; + +} +#launchmenu +{ + position: absolute; + top: 25px; + bottom: 0; + margin: 0; + left: 0; + margin-top: 5px; + z-index: 111111; + overflow: auto; + +} diff --git a/phpgwapi/templates/idots2/doc/CHANGELOG b/phpgwapi/templates/idots2/doc/CHANGELOG new file mode 100755 index 0000000000..8aa53942b4 --- /dev/null +++ b/phpgwapi/templates/idots2/doc/CHANGELOG @@ -0,0 +1,16 @@ +Fri Apr 18 01:51:00 CEST 2003 +- resize icons to 32x32 +- renamed css file for better compatibility +- removed unneccesary files in calender and email template directory +- merged changed from Ralf Becker +- remade the logo +- changed gif to png where possible (create_tabs in class.common.inc.php only uses gifs!!!) +- moved tree to 0.9.16 branch + +Wed Apr 16 23:07:54 CEST 2003 +- Get app titles from new array without using the lang() call +- Moved 'Homelink' from navbar to sidebox +- Use preference setting 'icons', 'icons and text' +- sidebox menu's can be hooked now (see template hook-files in phpgwapi/templates/idots/doc/hook_templates/ +- replaces correct gimpsource file for navbar icons: phpgwapi/templates/idots/source/navbar.xcf +- additional information in the README diff --git a/phpgwapi/templates/idots2/doc/License b/phpgwapi/templates/idots2/doc/License new file mode 100755 index 0000000000..b15dec4b77 --- /dev/null +++ b/phpgwapi/templates/idots2/doc/License @@ -0,0 +1,281 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + diff --git a/phpgwapi/templates/idots2/doc/README b/phpgwapi/templates/idots2/doc/README new file mode 100755 index 0000000000..39145e3a12 --- /dev/null +++ b/phpgwapi/templates/idots2/doc/README @@ -0,0 +1,51 @@ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + IDOTS2 TEMPLATE SET FOR eGroupWare + http://www.idots2.org + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Idots2 is based on the x-desktop project. +(http://www.x-desktop.org) + +The theme is based on the Retro skin for Windowsblind +made by Tim Dagger (http://www.essorant.com). + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +++ Hooks ++ + +Applications can hook into the following items: + +Please do not hook into them at this moment, it is still in +development. + +- Toolbar +- Menu + +++ License ++ + +The Idots2 template set is published under the GPL license. +See the License file. + + + +++ Copyright ++ + +- Lingewoud B.V. http://www.lingewoud.nl +- Edo van Bruggen edovanbruggen[at]raketnet.nl +- Rob van Kraanen rvkraanen[at]gmail.com + + + +++ Special thanks to ++ + +- Pim Snel/ Lingewoud B.V. for providing this oppurtunity + and sponsoring. +- Avans Hogeschool Den Bosch (Netherlands) +- Tim Dagger for letting us use the skin. +- Coffee ;) + + + + diff --git a/phpgwapi/templates/idots2/doc/TODO b/phpgwapi/templates/idots2/doc/TODO new file mode 100755 index 0000000000..5e6b81b3e7 --- /dev/null +++ b/phpgwapi/templates/idots2/doc/TODO @@ -0,0 +1 @@ +A lot ;) \ No newline at end of file diff --git a/phpgwapi/templates/idots2/footer.tpl b/phpgwapi/templates/idots2/footer.tpl new file mode 100755 index 0000000000..83245052a4 --- /dev/null +++ b/phpgwapi/templates/idots2/footer.tpl @@ -0,0 +1,4 @@ + + + + diff --git a/phpgwapi/templates/idots2/head.inc.php b/phpgwapi/templates/idots2/head.inc.php new file mode 100755 index 0000000000..d6e36223f8 --- /dev/null +++ b/phpgwapi/templates/idots2/head.inc.php @@ -0,0 +1,104 @@ +'; + $theme_css .= ''; + + $cbe_core = ''; + $cbe_event = ''; + $cbe_slide = ''; + $skin_idots2 = ''; + $x_core = ''; + $x_events = ''; + $x_shortcuts = ''; + $xdesktop .= $theme_css . $cbe_core . $cbe_event . $cbe_slide . $skin_idots2 . $x_core . $x_events . $x_shortcuts; + + + } + else + { + //Just a normal page + $bodyheader = ' id="xpage"'; + $menu_js = ''; + $theme_css = ''; + + $xdesktop = $theme_css . $menu_js; + } + + + /* + ** Create/use the template + */ + $tpl = CreateObject('phpgwapi.Template',PHPGW_TEMPLATE_DIR); + $tpl->set_unknowns('remove'); + $tpl->set_file(array('_head' => 'head.tpl')); + $tpl->set_block('_head','head'); + + if ($GLOBALS['phpgw_info']['flags']['app_header']) + { + $app = $GLOBALS['phpgw_info']['flags']['app_header']; + } + else + { + $app = $GLOBALS['phpgw_info']['flags']['currentapp']; + $app = isset($GLOBALS['phpgw_info']['apps'][$app]) ? $GLOBALS['phpgw_info']['apps'][$app]['title'] : lang($app); + } + if($GLOBALS['phpgw_info']['flags']['currentapp']=='eGroupWare') + { + $app = ""; + + } + $var = Array( + 'img_icon' => PHPGW_IMAGES_DIR . '/favicon.ico', + 'img_shortcut' => PHPGW_IMAGES_DIR . '/favicon.ico', + 'slider_effects'=> $slider_effects, + 'simple_show_hide'=> $simple_show_hide, + 'lang_code' => $lang_code, + 'charset' => $GLOBALS['phpgw']->translation->charset(), + 'font_family' => $GLOBALS['phpgw_info']['theme']['font'], + 'website_title' => $GLOBALS['phpgw_info']['server']['site_title']. ($app ? " [$app]" : ''), + 'body_tags' => $bodyheader .' '. $GLOBALS['phpgw']->common->get_body_attribs(), + 'xdesktop' => $xdesktop, + 'css' => $GLOBALS['phpgw']->common->get_css(), + 'bckGrnd' => $bckGrnd, + 'java_script' => $GLOBALS['phpgw']->common->get_java_script(), + ); + $tpl->set_var($var); + $tpl->pfp('out','head'); + unset($tpl); +?> diff --git a/phpgwapi/templates/idots2/head.tpl b/phpgwapi/templates/idots2/head.tpl new file mode 100755 index 0000000000..d71962634f --- /dev/null +++ b/phpgwapi/templates/idots2/head.tpl @@ -0,0 +1,32 @@ + + + + + {website_title} + + + + + + + + + + + {slider_effects} + {simple_show_hide} + {css} + {pngfix} + {xdesktop} + {java_script} + + + + + + + + diff --git a/phpgwapi/templates/idots2/hook_settings.inc.php b/phpgwapi/templates/idots2/hook_settings.inc.php new file mode 100755 index 0000000000..aafe5cbe54 --- /dev/null +++ b/phpgwapi/templates/idots2/hook_settings.inc.php @@ -0,0 +1,157 @@ + * + * This program is free software; you can redistribute it and/or modify it * + * under the terms of the GNU General Public License as published by the * + * Free Software Foundation; either version 2 of the License, or (at your * + * option) any later version. * + \**************************************************************************/ + + + create_section('Preferences for the idots2 template set'); + + $clock_show = array( + 'yes' => lang('yes'), + 'no' => lang('no') + ); + + create_select_box( + 'Show clock?', + 'clock_show', + $clock_show, + 'Would you like to display a clock on the right corner in the taskbar?' + ); + + $clock_min = array( + 'minute' => lang('minute'), + 'second' => lang('second') + ); + + create_select_box( + 'Update the clock per minute or per second', + 'clock_min', + $clock_min, + 'If the clock is enabled would you like it to update it every second or every minute?' + ); + + $files = Array(); + $dir = '../phpgwapi/templates/idots2/images/backgrounds'; + + $dh = opendir($dir); + $files['none'] = "none"; + while (false !== ($filename = readdir($dh))) + { + if(strlen($filename) > 3) + { + $files[$filename] = $filename; + } + } + closedir($dh); + + create_select_box( + 'Choose a background image.', + 'files', + $files, + 'If there are some images in the background folder you can choose the one you would like to see.' + ); + + $bckStyle = array( + 'centered' => lang('centered'), + 'tiled' => lang('tiled'), + 'stretched' => lang('stretched') + ); + + create_select_box( + 'Choose a background style.', + 'bckStyle', + $bckStyle, + 'What style would you like the image to have?' + ); + + create_input_box( + 'Choose a background color', + 'bgcolor', + 'What color should all the blank space on the desktop have', + '#FFFFFF', + 7, + 7, + '', + false + ); + + $showLogo = array( + 'yes' => lang('yes'), + 'no' => lang('no') + ); + + create_select_box( + 'Show logo\'s on the desktop.', + 'showLogo', + $showLogo, + 'Show the logo\'s of eGroupware and x-desktop on the desktop.' + ); + create_input_box( + 'Choose a background color for the icons', + 'bgcolor_icons', + '', + '#FFFFFF', + 7, + 7, + '', + false + ); + + $back_icons = array( + 'yes' => lang('yes'), + 'no' => lang('no') + ); + + create_select_box( + 'Transparant bg for the icons?', + 'back_icons', + $back_icons, + '' + ); + create_input_box( + 'Choose a text color for the icons', + 'textcolor_icons', + '', + '#FFFFFF', + 7, + 7, + '', + false + ); + + create_check_box( + 'Show page generation time?', + 'show_generation_time', + 'Would you like to display the page generation time at the bottom of every window?' + ); + + create_input_box( + 'Default width for the windows', + 'scrWidth', + 'Select the default width for the application windows', + '', + '', + '', + '', + false + ); + + create_input_box( + 'Default height for the windows', + 'scrHeight', + 'Select the default height for the application windows', + '', + '', + '', + '', + false + ); + + diff --git a/phpgwapi/templates/idots2/images/alpha-white.png b/phpgwapi/templates/idots2/images/alpha-white.png new file mode 100755 index 0000000000..4d8b4fcb84 Binary files /dev/null and b/phpgwapi/templates/idots2/images/alpha-white.png differ diff --git a/phpgwapi/templates/idots2/images/appbox-header-background.png b/phpgwapi/templates/idots2/images/appbox-header-background.png new file mode 100755 index 0000000000..7bd5d16294 Binary files /dev/null and b/phpgwapi/templates/idots2/images/appbox-header-background.png differ diff --git a/phpgwapi/templates/idots2/images/back_menubar.png b/phpgwapi/templates/idots2/images/back_menubar.png new file mode 100755 index 0000000000..8e6393b02f Binary files /dev/null and b/phpgwapi/templates/idots2/images/back_menubar.png differ diff --git a/phpgwapi/templates/idots2/images/background-icon-bar.png b/phpgwapi/templates/idots2/images/background-icon-bar.png new file mode 100755 index 0000000000..b601e56b39 Binary files /dev/null and b/phpgwapi/templates/idots2/images/background-icon-bar.png differ diff --git a/phpgwapi/templates/idots2/images/backgrounds/Spyker Golden Gate Bridge.jpg b/phpgwapi/templates/idots2/images/backgrounds/Spyker Golden Gate Bridge.jpg new file mode 100755 index 0000000000..af463b0d21 Binary files /dev/null and b/phpgwapi/templates/idots2/images/backgrounds/Spyker Golden Gate Bridge.jpg differ diff --git a/phpgwapi/templates/idots2/images/backgrounds/achtergrond.png b/phpgwapi/templates/idots2/images/backgrounds/achtergrond.png new file mode 100755 index 0000000000..554754ed59 Binary files /dev/null and b/phpgwapi/templates/idots2/images/backgrounds/achtergrond.png differ diff --git a/phpgwapi/templates/idots2/images/backgrounds/edo2.png b/phpgwapi/templates/idots2/images/backgrounds/edo2.png new file mode 100644 index 0000000000..d80c1ca282 Binary files /dev/null and b/phpgwapi/templates/idots2/images/backgrounds/edo2.png differ diff --git a/phpgwapi/templates/idots2/images/backgrounds/edos.png b/phpgwapi/templates/idots2/images/backgrounds/edos.png new file mode 100644 index 0000000000..f39628e291 Binary files /dev/null and b/phpgwapi/templates/idots2/images/backgrounds/edos.png differ diff --git a/phpgwapi/templates/idots2/images/backgrounds/logo_lingewoud.png b/phpgwapi/templates/idots2/images/backgrounds/logo_lingewoud.png new file mode 100755 index 0000000000..e8d0c8d0d9 Binary files /dev/null and b/phpgwapi/templates/idots2/images/backgrounds/logo_lingewoud.png differ diff --git a/phpgwapi/templates/idots2/images/backgrounds/wallpaper_retroblue_1280.jpg b/phpgwapi/templates/idots2/images/backgrounds/wallpaper_retroblue_1280.jpg new file mode 100755 index 0000000000..1910a7ed03 Binary files /dev/null and b/phpgwapi/templates/idots2/images/backgrounds/wallpaper_retroblue_1280.jpg differ diff --git a/phpgwapi/templates/idots2/images/backgrounds/wallpaper_retrogreen_1280.jpg b/phpgwapi/templates/idots2/images/backgrounds/wallpaper_retrogreen_1280.jpg new file mode 100755 index 0000000000..a9895b62af Binary files /dev/null and b/phpgwapi/templates/idots2/images/backgrounds/wallpaper_retrogreen_1280.jpg differ diff --git a/phpgwapi/templates/idots2/images/backgrounds/wallpaper_retrored_1280.jpg b/phpgwapi/templates/idots2/images/backgrounds/wallpaper_retrored_1280.jpg new file mode 100755 index 0000000000..7594e03f73 Binary files /dev/null and b/phpgwapi/templates/idots2/images/backgrounds/wallpaper_retrored_1280.jpg differ diff --git a/phpgwapi/templates/idots2/images/backgrounds/wallpaper_retrowhite_1280.jpg b/phpgwapi/templates/idots2/images/backgrounds/wallpaper_retrowhite_1280.jpg new file mode 100755 index 0000000000..ac6e66776e Binary files /dev/null and b/phpgwapi/templates/idots2/images/backgrounds/wallpaper_retrowhite_1280.jpg differ diff --git a/phpgwapi/templates/idots2/images/body-background.png b/phpgwapi/templates/idots2/images/body-background.png new file mode 100755 index 0000000000..02db2b402c Binary files /dev/null and b/phpgwapi/templates/idots2/images/body-background.png differ diff --git a/phpgwapi/templates/idots2/images/browse.png b/phpgwapi/templates/idots2/images/browse.png new file mode 100755 index 0000000000..0ac606c957 Binary files /dev/null and b/phpgwapi/templates/idots2/images/browse.png differ diff --git a/phpgwapi/templates/idots2/images/buttonbackground.png b/phpgwapi/templates/idots2/images/buttonbackground.png new file mode 100755 index 0000000000..35da4fc325 Binary files /dev/null and b/phpgwapi/templates/idots2/images/buttonbackground.png differ diff --git a/phpgwapi/templates/idots2/images/buttonbackgroundleft.png b/phpgwapi/templates/idots2/images/buttonbackgroundleft.png new file mode 100755 index 0000000000..cc83b382c4 Binary files /dev/null and b/phpgwapi/templates/idots2/images/buttonbackgroundleft.png differ diff --git a/phpgwapi/templates/idots2/images/buttonbackgroundright.png b/phpgwapi/templates/idots2/images/buttonbackgroundright.png new file mode 100755 index 0000000000..b9a44fbddf Binary files /dev/null and b/phpgwapi/templates/idots2/images/buttonbackgroundright.png differ diff --git a/phpgwapi/templates/idots2/images/buttonbackgroundscaled.png b/phpgwapi/templates/idots2/images/buttonbackgroundscaled.png new file mode 100755 index 0000000000..b86ea71288 Binary files /dev/null and b/phpgwapi/templates/idots2/images/buttonbackgroundscaled.png differ diff --git a/phpgwapi/templates/idots2/images/buttonseparator.png b/phpgwapi/templates/idots2/images/buttonseparator.png new file mode 100755 index 0000000000..cc25211d95 Binary files /dev/null and b/phpgwapi/templates/idots2/images/buttonseparator.png differ diff --git a/phpgwapi/templates/idots2/images/close.png b/phpgwapi/templates/idots2/images/close.png new file mode 100755 index 0000000000..2415dfc78b Binary files /dev/null and b/phpgwapi/templates/idots2/images/close.png differ diff --git a/phpgwapi/templates/idots2/images/configure.png b/phpgwapi/templates/idots2/images/configure.png new file mode 100755 index 0000000000..95bd319ce1 Binary files /dev/null and b/phpgwapi/templates/idots2/images/configure.png differ diff --git a/phpgwapi/templates/idots2/images/configure_toolbars.png b/phpgwapi/templates/idots2/images/configure_toolbars.png new file mode 100755 index 0000000000..653479bf0b Binary files /dev/null and b/phpgwapi/templates/idots2/images/configure_toolbars.png differ diff --git a/phpgwapi/templates/idots2/images/copy.gif b/phpgwapi/templates/idots2/images/copy.gif new file mode 100755 index 0000000000..b511230555 Binary files /dev/null and b/phpgwapi/templates/idots2/images/copy.gif differ diff --git a/phpgwapi/templates/idots2/images/delete.png b/phpgwapi/templates/idots2/images/delete.png new file mode 100755 index 0000000000..6d0d29d760 Binary files /dev/null and b/phpgwapi/templates/idots2/images/delete.png differ diff --git a/phpgwapi/templates/idots2/images/down.png b/phpgwapi/templates/idots2/images/down.png new file mode 100755 index 0000000000..bad2281a4e Binary files /dev/null and b/phpgwapi/templates/idots2/images/down.png differ diff --git a/phpgwapi/templates/idots2/images/down2.png b/phpgwapi/templates/idots2/images/down2.png new file mode 100755 index 0000000000..d9d386fcc4 Binary files /dev/null and b/phpgwapi/templates/idots2/images/down2.png differ diff --git a/phpgwapi/templates/idots2/images/dragarea.png b/phpgwapi/templates/idots2/images/dragarea.png new file mode 100755 index 0000000000..c2d558156d Binary files /dev/null and b/phpgwapi/templates/idots2/images/dragarea.png differ diff --git a/phpgwapi/templates/idots2/images/dragarea_left.png b/phpgwapi/templates/idots2/images/dragarea_left.png new file mode 100755 index 0000000000..067cc7b7b8 Binary files /dev/null and b/phpgwapi/templates/idots2/images/dragarea_left.png differ diff --git a/phpgwapi/templates/idots2/images/dragarea_right.png b/phpgwapi/templates/idots2/images/dragarea_right.png new file mode 100755 index 0000000000..1a6f3a151e Binary files /dev/null and b/phpgwapi/templates/idots2/images/dragarea_right.png differ diff --git a/phpgwapi/templates/idots2/images/edit.png b/phpgwapi/templates/idots2/images/edit.png new file mode 100755 index 0000000000..a8b69f73fe Binary files /dev/null and b/phpgwapi/templates/idots2/images/edit.png differ diff --git a/phpgwapi/templates/idots2/images/extra_icons.png b/phpgwapi/templates/idots2/images/extra_icons.png new file mode 100755 index 0000000000..3b2208b660 Binary files /dev/null and b/phpgwapi/templates/idots2/images/extra_icons.png differ diff --git a/phpgwapi/templates/idots2/images/favicon.ico b/phpgwapi/templates/idots2/images/favicon.ico new file mode 100755 index 0000000000..2fe0b2cb0a Binary files /dev/null and b/phpgwapi/templates/idots2/images/favicon.ico differ diff --git a/phpgwapi/templates/idots2/images/fileopen.png b/phpgwapi/templates/idots2/images/fileopen.png new file mode 100755 index 0000000000..037c2da98d Binary files /dev/null and b/phpgwapi/templates/idots2/images/fileopen.png differ diff --git a/phpgwapi/templates/idots2/images/first-gray.png b/phpgwapi/templates/idots2/images/first-gray.png new file mode 100755 index 0000000000..bd7c353c78 Binary files /dev/null and b/phpgwapi/templates/idots2/images/first-gray.png differ diff --git a/phpgwapi/templates/idots2/images/first-grey.png b/phpgwapi/templates/idots2/images/first-grey.png new file mode 100755 index 0000000000..85dc51ece7 Binary files /dev/null and b/phpgwapi/templates/idots2/images/first-grey.png differ diff --git a/phpgwapi/templates/idots2/images/first.png b/phpgwapi/templates/idots2/images/first.png new file mode 100755 index 0000000000..d4f0bd8ecd Binary files /dev/null and b/phpgwapi/templates/idots2/images/first.png differ diff --git a/phpgwapi/templates/idots2/images/foldertree/base.gif b/phpgwapi/templates/idots2/images/foldertree/base.gif new file mode 100755 index 0000000000..9ac0b117b0 Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/base.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/cd.gif b/phpgwapi/templates/idots2/images/foldertree/cd.gif new file mode 100755 index 0000000000..7503819404 Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/cd.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/empty.gif b/phpgwapi/templates/idots2/images/foldertree/empty.gif new file mode 100755 index 0000000000..b5cf52378f Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/empty.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/felamimail_sm.png b/phpgwapi/templates/idots2/images/foldertree/felamimail_sm.png new file mode 100755 index 0000000000..7e6f3eaffa Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/felamimail_sm.png differ diff --git a/phpgwapi/templates/idots2/images/foldertree/folder.gif b/phpgwapi/templates/idots2/images/foldertree/folder.gif new file mode 100755 index 0000000000..eb129763dc Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/folder.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/folderopen.gif b/phpgwapi/templates/idots2/images/foldertree/folderopen.gif new file mode 100755 index 0000000000..c5c31102d5 Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/folderopen.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/globe.gif b/phpgwapi/templates/idots2/images/foldertree/globe.gif new file mode 100755 index 0000000000..57123d0e69 Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/globe.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/imgfolder.gif b/phpgwapi/templates/idots2/images/foldertree/imgfolder.gif new file mode 100755 index 0000000000..e6d880347f Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/imgfolder.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/join.gif b/phpgwapi/templates/idots2/images/foldertree/join.gif new file mode 100755 index 0000000000..34dd47610a Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/join.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/joinbottom.gif b/phpgwapi/templates/idots2/images/foldertree/joinbottom.gif new file mode 100755 index 0000000000..48b81c80a9 Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/joinbottom.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/line.gif b/phpgwapi/templates/idots2/images/foldertree/line.gif new file mode 100755 index 0000000000..1a259eea00 Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/line.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/minus.gif b/phpgwapi/templates/idots2/images/foldertree/minus.gif new file mode 100755 index 0000000000..3d212a97ae Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/minus.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/minusbottom.gif b/phpgwapi/templates/idots2/images/foldertree/minusbottom.gif new file mode 100755 index 0000000000..dc3198be27 Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/minusbottom.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/musicfolder.gif b/phpgwapi/templates/idots2/images/foldertree/musicfolder.gif new file mode 100755 index 0000000000..f620789feb Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/musicfolder.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/nolines_minus.gif b/phpgwapi/templates/idots2/images/foldertree/nolines_minus.gif new file mode 100755 index 0000000000..2592ac20f3 Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/nolines_minus.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/nolines_plus.gif b/phpgwapi/templates/idots2/images/foldertree/nolines_plus.gif new file mode 100755 index 0000000000..f258ce211a Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/nolines_plus.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/page.gif b/phpgwapi/templates/idots2/images/foldertree/page.gif new file mode 100755 index 0000000000..42d7318c5d Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/page.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/plus.gif b/phpgwapi/templates/idots2/images/foldertree/plus.gif new file mode 100755 index 0000000000..b2c997233b Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/plus.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/plusbottom.gif b/phpgwapi/templates/idots2/images/foldertree/plusbottom.gif new file mode 100755 index 0000000000..b5671d891a Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/plusbottom.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/question.gif b/phpgwapi/templates/idots2/images/foldertree/question.gif new file mode 100755 index 0000000000..dd4e685078 Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/question.gif differ diff --git a/phpgwapi/templates/idots2/images/foldertree/trash.gif b/phpgwapi/templates/idots2/images/foldertree/trash.gif new file mode 100755 index 0000000000..cfa0f000e1 Binary files /dev/null and b/phpgwapi/templates/idots2/images/foldertree/trash.gif differ diff --git a/phpgwapi/templates/idots2/images/grey-pixel.png b/phpgwapi/templates/idots2/images/grey-pixel.png new file mode 100755 index 0000000000..7a56a8ccb5 Binary files /dev/null and b/phpgwapi/templates/idots2/images/grey-pixel.png differ diff --git a/phpgwapi/templates/idots2/images/groupevent.png b/phpgwapi/templates/idots2/images/groupevent.png new file mode 100755 index 0000000000..31b6f33991 Binary files /dev/null and b/phpgwapi/templates/idots2/images/groupevent.png differ diff --git a/phpgwapi/templates/idots2/images/icon_mini_login.gif b/phpgwapi/templates/idots2/images/icon_mini_login.gif new file mode 100755 index 0000000000..30b309b26c Binary files /dev/null and b/phpgwapi/templates/idots2/images/icon_mini_login.gif differ diff --git a/phpgwapi/templates/idots2/images/icon_mini_search.gif b/phpgwapi/templates/idots2/images/icon_mini_search.gif new file mode 100755 index 0000000000..1295e9f1db Binary files /dev/null and b/phpgwapi/templates/idots2/images/icon_mini_search.gif differ diff --git a/phpgwapi/templates/idots2/images/index.desktop b/phpgwapi/templates/idots2/images/index.desktop new file mode 100755 index 0000000000..f549928745 --- /dev/null +++ b/phpgwapi/templates/idots2/images/index.desktop @@ -0,0 +1,175 @@ +[KDE Icon Theme] +Name=Crystal SVG beta1 +Comment=Icon Theme by Everaldo (www.everaldo.com) +DisplayDepth=32 + +Inherits=hicolor + +Example=folder +LinkOverlay=link +LockOverlay=lockoverlay +ZipOverlay=zip +DesktopDefault=48 +DesktopSizes=16,32,48,64,128 +ToolbarDefault=22 +ToolbarSizes=16,22,32,48 +MainToolbarDefault=22 +MainToolbarSizes=16,22,32,48 +SmallDefault=16 +SmallSizes=16 +PanelDefault=32 +PanelSizes=16,32,48,64,128 +Directories=16x16/actions,22x22/actions,32x32/actions,48x48/actions,64x64/actions,128x128/actions,16x16/apps,32x32/apps,48x48/apps,64x64/apps,128x128/apps,16x16/devices,32x32/devices,48x48/devices,64x64/devices,128x128/devices,16x16/filesystems,32x32/filesystems,48x48/filesystems,64x64/filesystems,128x128/filesystems,16x16/mimetypes,32x32/mimetypes,48x48/mimetypes,64x64/mimetypes,128x128/mimetypes,,48x48/devices,48x48/filesystems,48x48/mimetypes,64x64/filesystems,64x64/mimetypes,64x64/devices,64x64/apps,64x64/actions,128x128/mimetypes,128x128/filesystems,128x128/apps,128x128/devices,128x128/actions +[16x16/actions] +Size=16 +Context=Actions +Type=Threshold +[22x22/actions] +Size=22 +Context=Actions +Type=Threshold +[32x32/actions] +Size=32 +Context=Actions +Type=Threshold +[48x48/actions] +Size=48 +Context=Actions +Type=Threshold +[64x64/actions] +Size=64 +Context=Actions +Type=Threshold +[128x128/actions] +Size=128 +Context=Actions +Type=Threshold +[16x16/apps] +Size=16 +Context=Applications +Type=Threshold +[32x32/apps] +Size=32 +Context=Applications +Type=Threshold +[48x48/apps] +Size=48 +Context=Applications +Type=Threshold +[64x64/apps] +Size=64 +Context=Applications +Type=Threshold +[128x128/apps] +Size=128 +Context=Applications +Type=Threshold +[16x16/devices] +Size=16 +Context=Devices +Type=Threshold +[32x32/devices] +Size=32 +Context=Devices +Type=Threshold +[48x48/devices] +Size=48 +Context=Devices +Type=Threshold +[64x64/devices] +Size=64 +Context=Devices +Type=Threshold +[128x128/devices] +Size=128 +Context=Devices +Type=Threshold +[16x16/filesystems] +Size=16 +Context=FileSystems +Type=Threshold +[32x32/filesystems] +Size=32 +Context=FileSystems +Type=Threshold +[48x48/filesystems] +Size=48 +Context=FileSystems +Type=Threshold +[64x64/filesystems] +Size=64 +Context=FileSystems +Type=Threshold +[128x128/filesystems] +Size=128 +Context=FileSystems +Type=Threshold +[16x16/mimetypes] +Size=16 +Context=MimeTypes +Type=Threshold +[32x32/mimetypes] +Size=32 +Context=MimeTypes +Type=Threshold +[48x48/mimetypes] +Size=48 +Context=MimeTypes +Type=Threshold +[64x64/mimetypes] +Size=64 +Context=MimeTypes +Type=Threshold +[128x128/mimetypes] +Size=128 +Context=MimeTypes +Type=Threshold +[48x48/apps] +Size=48 +Context=Applications +Type=Threshold +[48x48/devices] +Size=48 +Context=Devices +Type=Threshold +[48x48/filesystems] +Size=48 +Context=FileSystems +Type=Threshold +[48x48/mimetypes] +Size=48 +Context=MimeTypes +Type=Threshold +[64x64/apps] +Size=64 +Context=Applications +Type=Threshold +[64x64/devices] +Size=64 +Context=Devices +Type=Threshold +[64x64/filesystems] +Size=64 +Context=FileSystems +Type=Threshold +[64x64/mimetypes] +Size=64 +Context=MimeTypes +Type=Threshold + +[128x128/apps] +Size=128 +Context=Applications +Type=Threshold +[128x128/devices] +Size=128 +Context=Devices +Type=Threshold +[128x128/filesystems] +Size=128 +Context=FileSystems +Type=Threshold +[128x128/mimetypes] +Size=128 +Context=MimeTypes +Type=Threshold diff --git a/phpgwapi/templates/idots2/images/kdm/pinguim-root3.png b/phpgwapi/templates/idots2/images/kdm/pinguim-root3.png new file mode 100755 index 0000000000..97d18b80c3 Binary files /dev/null and b/phpgwapi/templates/idots2/images/kdm/pinguim-root3.png differ diff --git a/phpgwapi/templates/idots2/images/kdm/pinguim-user.png b/phpgwapi/templates/idots2/images/kdm/pinguim-user.png new file mode 100755 index 0000000000..847a48243a Binary files /dev/null and b/phpgwapi/templates/idots2/images/kdm/pinguim-user.png differ diff --git a/phpgwapi/templates/idots2/images/kdm/pinguim-user2.png b/phpgwapi/templates/idots2/images/kdm/pinguim-user2.png new file mode 100755 index 0000000000..9a0c351d5e Binary files /dev/null and b/phpgwapi/templates/idots2/images/kdm/pinguim-user2.png differ diff --git a/phpgwapi/templates/idots2/images/last-grey.png b/phpgwapi/templates/idots2/images/last-grey.png new file mode 100755 index 0000000000..63ec9439ff Binary files /dev/null and b/phpgwapi/templates/idots2/images/last-grey.png differ diff --git a/phpgwapi/templates/idots2/images/last.png b/phpgwapi/templates/idots2/images/last.png new file mode 100755 index 0000000000..41c9bdcf3b Binary files /dev/null and b/phpgwapi/templates/idots2/images/last.png differ diff --git a/phpgwapi/templates/idots2/images/last2.png b/phpgwapi/templates/idots2/images/last2.png new file mode 100755 index 0000000000..f52e28a9d2 Binary files /dev/null and b/phpgwapi/templates/idots2/images/last2.png differ diff --git a/phpgwapi/templates/idots2/images/left-grey.png b/phpgwapi/templates/idots2/images/left-grey.png new file mode 100755 index 0000000000..48bde94970 Binary files /dev/null and b/phpgwapi/templates/idots2/images/left-grey.png differ diff --git a/phpgwapi/templates/idots2/images/left.png b/phpgwapi/templates/idots2/images/left.png new file mode 100755 index 0000000000..fab1be0338 Binary files /dev/null and b/phpgwapi/templates/idots2/images/left.png differ diff --git a/phpgwapi/templates/idots2/images/login-background.jpg b/phpgwapi/templates/idots2/images/login-background.jpg new file mode 100755 index 0000000000..d9d1cdf670 Binary files /dev/null and b/phpgwapi/templates/idots2/images/login-background.jpg differ diff --git a/phpgwapi/templates/idots2/images/login-background.png b/phpgwapi/templates/idots2/images/login-background.png new file mode 100755 index 0000000000..2f55cc5537 Binary files /dev/null and b/phpgwapi/templates/idots2/images/login-background.png differ diff --git a/phpgwapi/templates/idots2/images/logo-idots.gif b/phpgwapi/templates/idots2/images/logo-idots.gif new file mode 100755 index 0000000000..32b8a40ac4 Binary files /dev/null and b/phpgwapi/templates/idots2/images/logo-idots.gif differ diff --git a/phpgwapi/templates/idots2/images/logo-idots.png b/phpgwapi/templates/idots2/images/logo-idots.png new file mode 100755 index 0000000000..c81b8cf2a4 Binary files /dev/null and b/phpgwapi/templates/idots2/images/logo-idots.png differ diff --git a/phpgwapi/templates/idots2/images/logo-setup.png b/phpgwapi/templates/idots2/images/logo-setup.png new file mode 100755 index 0000000000..ad403894a2 Binary files /dev/null and b/phpgwapi/templates/idots2/images/logo-setup.png differ diff --git a/phpgwapi/templates/idots2/images/logo.png b/phpgwapi/templates/idots2/images/logo.png new file mode 100755 index 0000000000..ad403894a2 Binary files /dev/null and b/phpgwapi/templates/idots2/images/logo.png differ diff --git a/phpgwapi/templates/idots2/images/menu_back.png b/phpgwapi/templates/idots2/images/menu_back.png new file mode 100755 index 0000000000..a1e37821f2 Binary files /dev/null and b/phpgwapi/templates/idots2/images/menu_back.png differ diff --git a/phpgwapi/templates/idots2/images/move.gif b/phpgwapi/templates/idots2/images/move.gif new file mode 100755 index 0000000000..860dc1f607 Binary files /dev/null and b/phpgwapi/templates/idots2/images/move.gif differ diff --git a/phpgwapi/templates/idots2/images/new.png b/phpgwapi/templates/idots2/images/new.png new file mode 100755 index 0000000000..3434c3da87 Binary files /dev/null and b/phpgwapi/templates/idots2/images/new.png differ diff --git a/phpgwapi/templates/idots2/images/nonav.png b/phpgwapi/templates/idots2/images/nonav.png new file mode 100755 index 0000000000..5602de8617 Binary files /dev/null and b/phpgwapi/templates/idots2/images/nonav.png differ diff --git a/phpgwapi/templates/idots2/images/orange-ball.png b/phpgwapi/templates/idots2/images/orange-ball.png new file mode 100755 index 0000000000..e7e6518ff4 Binary files /dev/null and b/phpgwapi/templates/idots2/images/orange-ball.png differ diff --git a/phpgwapi/templates/idots2/images/password.png b/phpgwapi/templates/idots2/images/password.png new file mode 100755 index 0000000000..2144538119 Binary files /dev/null and b/phpgwapi/templates/idots2/images/password.png differ diff --git a/phpgwapi/templates/idots2/images/right-grey.png b/phpgwapi/templates/idots2/images/right-grey.png new file mode 100755 index 0000000000..9991869ccd Binary files /dev/null and b/phpgwapi/templates/idots2/images/right-grey.png differ diff --git a/phpgwapi/templates/idots2/images/right.png b/phpgwapi/templates/idots2/images/right.png new file mode 100755 index 0000000000..dccf069aa2 Binary files /dev/null and b/phpgwapi/templates/idots2/images/right.png differ diff --git a/phpgwapi/templates/idots2/images/sidebox-header-background.png b/phpgwapi/templates/idots2/images/sidebox-header-background.png new file mode 100755 index 0000000000..b9d5eafbae Binary files /dev/null and b/phpgwapi/templates/idots2/images/sidebox-header-background.png differ diff --git a/phpgwapi/templates/idots2/images/spacer.gif b/phpgwapi/templates/idots2/images/spacer.gif new file mode 100755 index 0000000000..fc2560981e Binary files /dev/null and b/phpgwapi/templates/idots2/images/spacer.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-bg0.gif b/phpgwapi/templates/idots2/images/tabs-bg0.gif new file mode 100755 index 0000000000..99ac54563e Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-bg0.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-bg0.png b/phpgwapi/templates/idots2/images/tabs-bg0.png new file mode 100755 index 0000000000..0f11da5309 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-bg0.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-bg1.gif b/phpgwapi/templates/idots2/images/tabs-bg1.gif new file mode 100755 index 0000000000..5391aa8c0c Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-bg1.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-bg1.png b/phpgwapi/templates/idots2/images/tabs-bg1.png new file mode 100755 index 0000000000..821792a79d Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-bg1.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-end0.gif b/phpgwapi/templates/idots2/images/tabs-end0.gif new file mode 100755 index 0000000000..1f4cc71483 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-end0.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-end0.png b/phpgwapi/templates/idots2/images/tabs-end0.png new file mode 100755 index 0000000000..fd98c8ef57 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-end0.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-end1.gif b/phpgwapi/templates/idots2/images/tabs-end1.gif new file mode 100755 index 0000000000..896bb2817a Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-end1.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-end1.png b/phpgwapi/templates/idots2/images/tabs-end1.png new file mode 100755 index 0000000000..eb07a51db6 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-end1.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-ext.gif b/phpgwapi/templates/idots2/images/tabs-ext.gif new file mode 100755 index 0000000000..dcc8490d96 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-ext.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-ext.png b/phpgwapi/templates/idots2/images/tabs-ext.png new file mode 100755 index 0000000000..a79169ddc0 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-ext.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-l0.gif b/phpgwapi/templates/idots2/images/tabs-l0.gif new file mode 100755 index 0000000000..736f558afe Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-l0.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-l0.png b/phpgwapi/templates/idots2/images/tabs-l0.png new file mode 100755 index 0000000000..80ef977bc2 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-l0.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-l1.gif b/phpgwapi/templates/idots2/images/tabs-l1.gif new file mode 100755 index 0000000000..44043ec23f Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-l1.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-l1.png b/phpgwapi/templates/idots2/images/tabs-l1.png new file mode 100755 index 0000000000..f00de3de3e Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-l1.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-r0.gif b/phpgwapi/templates/idots2/images/tabs-r0.gif new file mode 100755 index 0000000000..050a5ab987 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-r0.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-r0.png b/phpgwapi/templates/idots2/images/tabs-r0.png new file mode 100755 index 0000000000..e9e6595091 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-r0.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-r1.gif b/phpgwapi/templates/idots2/images/tabs-r1.gif new file mode 100755 index 0000000000..9f16c2e1d6 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-r1.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-r1.png b/phpgwapi/templates/idots2/images/tabs-r1.png new file mode 100755 index 0000000000..ba4480e295 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-r1.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-sepl.gif b/phpgwapi/templates/idots2/images/tabs-sepl.gif new file mode 100755 index 0000000000..e9462064ae Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-sepl.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-sepl.png b/phpgwapi/templates/idots2/images/tabs-sepl.png new file mode 100755 index 0000000000..8906c79e25 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-sepl.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-sepm.gif b/phpgwapi/templates/idots2/images/tabs-sepm.gif new file mode 100755 index 0000000000..4088991bdf Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-sepm.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-sepm.png b/phpgwapi/templates/idots2/images/tabs-sepm.png new file mode 100755 index 0000000000..8230e2e982 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-sepm.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-sepr.gif b/phpgwapi/templates/idots2/images/tabs-sepr.gif new file mode 100755 index 0000000000..407351a32f Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-sepr.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-sepr.png b/phpgwapi/templates/idots2/images/tabs-sepr.png new file mode 100755 index 0000000000..6930f5bb79 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-sepr.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-start0.gif b/phpgwapi/templates/idots2/images/tabs-start0.gif new file mode 100755 index 0000000000..6cdb2b8b8c Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-start0.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-start0.png b/phpgwapi/templates/idots2/images/tabs-start0.png new file mode 100755 index 0000000000..94f946c4df Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-start0.png differ diff --git a/phpgwapi/templates/idots2/images/tabs-start1.gif b/phpgwapi/templates/idots2/images/tabs-start1.gif new file mode 100755 index 0000000000..bcd7a9d849 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-start1.gif differ diff --git a/phpgwapi/templates/idots2/images/tabs-start1.png b/phpgwapi/templates/idots2/images/tabs-start1.png new file mode 100755 index 0000000000..4bc6fc5a12 Binary files /dev/null and b/phpgwapi/templates/idots2/images/tabs-start1.png differ diff --git a/phpgwapi/templates/idots2/images/thumbnail.png b/phpgwapi/templates/idots2/images/thumbnail.png new file mode 100755 index 0000000000..a8c7195769 Binary files /dev/null and b/phpgwapi/templates/idots2/images/thumbnail.png differ diff --git a/phpgwapi/templates/idots2/images/up.png b/phpgwapi/templates/idots2/images/up.png new file mode 100755 index 0000000000..20da24d9bb Binary files /dev/null and b/phpgwapi/templates/idots2/images/up.png differ diff --git a/phpgwapi/templates/idots2/images/up2.png b/phpgwapi/templates/idots2/images/up2.png new file mode 100755 index 0000000000..617e30d7a4 Binary files /dev/null and b/phpgwapi/templates/idots2/images/up2.png differ diff --git a/phpgwapi/templates/idots2/images/valid-html401.png b/phpgwapi/templates/idots2/images/valid-html401.png new file mode 100755 index 0000000000..3855210c6c Binary files /dev/null and b/phpgwapi/templates/idots2/images/valid-html401.png differ diff --git a/phpgwapi/templates/idots2/images/valid-xhtml11.png b/phpgwapi/templates/idots2/images/valid-xhtml11.png new file mode 100755 index 0000000000..2c63d93f88 Binary files /dev/null and b/phpgwapi/templates/idots2/images/valid-xhtml11.png differ diff --git a/phpgwapi/templates/idots2/images/vcss.png b/phpgwapi/templates/idots2/images/vcss.png new file mode 100755 index 0000000000..020c75a73a Binary files /dev/null and b/phpgwapi/templates/idots2/images/vcss.png differ diff --git a/phpgwapi/templates/idots2/images/view.png b/phpgwapi/templates/idots2/images/view.png new file mode 100755 index 0000000000..593a56634b Binary files /dev/null and b/phpgwapi/templates/idots2/images/view.png differ diff --git a/phpgwapi/templates/idots2/js/menu.js b/phpgwapi/templates/idots2/js/menu.js new file mode 100755 index 0000000000..d4b5c57a47 --- /dev/null +++ b/phpgwapi/templates/idots2/js/menu.js @@ -0,0 +1,204 @@ +// If x-desktop is not loaded go somewhere else +if(!(window.parent && window.parent.xDT)) +{ + document.location = '../index.php?cd=yes'; +} + +var curmenu; +/* +* document.onclick +* +* Checks the position of the mouse, if it is clicked outside the menu, the menu will close +* +* @param e mouseEvent +* +*/ +document.onclick = function(e) +{ + if (!e) var e = window.event; + var el = (e.target) ? e.target : e.srcElement; + showObjects(); + if(el.id != "launch" && parent.document.getElementById('divMain')) + { + parent.document.getElementById('divMain').style.display = "none"; + } + + if(curmenu != undefined) { + for(i=0;i=thisX + iClipLeft && iLeft <=thisX + this.width() - iClipRight && iTop >=thisY + iClipTop && iTop <=thisY + this.height() - iClipBottom );} +function _cbeMoveTo(x_cr, y_mar, outside, xEndL){if (isFinite(x_cr)){this.left(x_cr); this.top(y_mar);}else{this.cardinalPosition(x_cr, y_mar, outside); this.left(this.x); this.top(this.y);}if (xEndL) cbeEval(xEndL, this);} +function _cbeMoveBy(uDX, uDY, xEndL){if (uDX){this.left(this.left() + uDX);} if (uDY){this.top(this.top() + uDY);} if (xEndL){cbeEval(xEndL, this);}} +//function _domLeft(iX){if (arguments.length){if (! ("" + iX).match(/^\d+/) ) iX=0; this.ele.style.left=iX + "px";} else{iX=parseInt(this.ele.style.left); if (isNaN(iX)) iX=0;}return iX;} +function _domLeft(iX){if (arguments.length){this.ele.style.left=iX + "px";} else{iX=parseInt(this.ele.style.left); if (isNaN(iX)) iX=0;}return iX;} +function _ieLeft(iX){if (arguments.length){this.ele.style.pixelLeft=iX;} else{iX=this.ele.style.pixelLeft;} return iX;} +function _nnLeft(iX){if (arguments.length){this.ele.left=iX;} else{iX=this.ele.left;} return iX;} +function _domTop(iY){if (arguments.length){this.ele.style.top=(iY && iY != "") ? iY + "px" : 0 + "px";} else{iY=parseInt(this.ele.style.top); if (isNaN(iY)) iY=0;}return iY;} +function _ieTop(iY){if (arguments.length){this.ele.style.pixelTop=iY;} else{iY=this.ele.style.pixelTop;} return iY;} +function _nnTop(iY){if (arguments.length){this.ele.top=iY;} else{iY=this.ele.top;} return iY;} +function _nnOffsetLeft(){var ol=this.ele.pageX - this.parentElement.pageX; if (isNaN(ol)){ol=this.ele.pageX;} return ol;} +function _nnOffsetTop(){var ot=this.ele.pageY - this.parentElement.pageY; if (isNaN(ot)){ot=this.ele.pageY;} return ot;} +function _ieOffsetLeft(){var x=this.ele.offsetLeft, parent=this.ele.offsetParent; while(parent && !parent.cbe){x +=parent.offsetLeft; parent=parent.offsetParent;}return x;} +function _ieOffsetTop(){var y=this.ele.offsetTop, parent=this.ele.offsetParent; while(parent && !parent.cbe){y +=parent.offsetTop; parent=parent.offsetParent;}return y;} +function _nnPageX(){return this.ele.pageX;} +function _nnPageY(){return this.ele.pageY;} +function _cbePageX(){var x=this.offsetLeft(), parent=this.parentNode; if (parent){while(parent.index > 1){x +=parent.offsetLeft(); parent=parent.parentNode;}} return x;} +function _cbePageY(){var y=this.offsetTop(), parent=this.parentNode; if (parent){while(parent.index > 1){y +=parent.offsetTop(); parent=parent.parentNode;}} return y;} +function _cbeSizeTo(uW, uH){this.width(uW); this.height(uH);} +function _cbeSizeBy(iDW, iDH){this.width(this.width() + iDW); this.height(this.height() + iDH);} +function _cbeResizeTo(uW, uH, xEndListener){this.sizeTo(uW, uH); this.clip('auto'); cbeEval(xEndListener, this);} +function _cbeResizeBy(iDW, iDH, xEndListener){this.sizeBy(iDW, iDH); this.clip('auto'); cbeEval(xEndListener, this);} +function _domWidth(uW){if (arguments.length){uW=Math.round(uW); _domSetWidth(this.ele, uW);}return this.ele.offsetWidth;} +function _ieWidth(uW){if (arguments.length){uW=Math.round(uW); this.ele.style.pixelWidth=uW;}return this.ele.style.pixelWidth;} +function _nnWidth(uW){if (arguments.length){this.w=Math.round(uW); this.ele.clip.right=this.w;}return this.w;} +function _domHeight(uH){if (arguments.length){uH=Math.round(uH); _domSetHeight(this.ele, uH);}return this.ele.offsetHeight;} +function _ieHeight(uH){if (arguments.length){uH=Math.round(uH); this.ele.style.pixelHeight=uH;}return this.ele.style.pixelHeight;} +function _nnHeight(uH){if (arguments.length){this.h=Math.round(uH); this.ele.clip.bottom=this.h;}return this.h;} +function _domSetWidth(ele,uW){ + if (uW < 0) return; + var pl=0,pr=0,bl=0,br=0; + if (_def(document.defaultView) && _def(document.defaultView.getComputedStyle)){// gecko and standard + pl=parseInt(document.defaultView.getComputedStyle(ele, "").getPropertyValue("padding-left")); + pr=parseInt(document.defaultView.getComputedStyle(ele, "").getPropertyValue("padding-right")); + bl=parseInt(document.defaultView.getComputedStyle(ele, "").getPropertyValue("border-left-width")); + br=parseInt(document.defaultView.getComputedStyle(ele, "").getPropertyValue("border-right-width")); + } + else if (_def(ele.currentStyle, document.compatMode)){ + if (document.compatMode=="CSS1Compat"){// ie6up in css1compat mode + pl=parseInt(ele.currentStyle.paddingLeft); + pr=parseInt(ele.currentStyle.paddingRight); + bl=parseInt(ele.currentStyle.borderLeftWidth); + br=parseInt(ele.currentStyle.borderRightWidth); + } + } + if (isNaN(pl)) pl=0; if (isNaN(pr)) pr=0; if (isNaN(bl)) bl=0; if (isNaN(br)) br=0; + var cssW=uW-(pl+pr+bl+br); + if (isNaN(cssW) || cssW < 0) return; + ele.style.width=cssW + "px"; +} +function _domSetHeight(ele,uH){ + if (uH < 0) return; + var pt=0,pb=0,bt=0,bb=0; + if (_def(document.defaultView) && _def(document.defaultView.getComputedStyle)){ + pt=parseInt(document.defaultView.getComputedStyle(ele, "").getPropertyValue("padding-top")); + pb=parseInt(document.defaultView.getComputedStyle(ele, "").getPropertyValue("padding-bottom")); + bt=parseInt(document.defaultView.getComputedStyle(ele, "").getPropertyValue("border-top-width")); + bb=parseInt(document.defaultView.getComputedStyle(ele, "").getPropertyValue("border-bottom-width")); + } + else if (_def(ele.currentStyle, document.compatMode)){ + if (document.compatMode=="CSS1Compat"){ + pt=parseInt(ele.currentStyle.paddingTop); + pb=parseInt(ele.currentStyle.paddingBottom); + bt=parseInt(ele.currentStyle.borderTopWidth); + bb=parseInt(ele.currentStyle.borderBottomWidth); + } + } + if (isNaN(pt)) pt=0; if (isNaN(pb)) pb=0; if (isNaN(bt)) bt=0; if (isNaN(bb)) bb=0; + var cssH=uH-(pt+pb+bt+bb); + if (isNaN(cssH) || cssH < 0) return; + ele.style.height=cssH + "px"; +} +function _cbeScrollLeft(){return this.ele.scrollLeft;} +function _cbeScrollTop(){return this.ele.scrollTop;} +function _cbeShow(){this.visibility(1);} +function _cbeHide(){this.visibility(0);} +function _domVisibility(vis){if (arguments.length){if (vis){this.ele.style.visibility='inherit';} else{this.ele.style.visibility='hidden';}}else return (this.ele.style.visibility=='visible' || this.ele.style.visibility=='inherit' || this.ele.style.visibility=='');} +function _nnVisibility(vis){if (arguments.length){if (vis){this.ele.visibility='inherit';} else{this.ele.visibility='hide';}}else return (this.ele.visibility=='show' || this.ele.visibility=='inherit' || this.ele.visibility=='');} +function _domZIndex(uZ){if (arguments.length){this.ele.style.zIndex=uZ;} else{uZ=parseInt(this.ele.style.zIndex); if (isNaN(uZ)) uZ=0;}return uZ;} +function _nnZIndex(uZ){if (arguments.length) this.ele.zIndex=uZ; return this.ele.zIndex;} +function _domBackground(sColor, sImage){if (arguments.length){if (!sColor){sColor='transparent';} this.ele.style.backgroundColor=sColor; if (arguments.length==2){ (sImage != "") ? this.ele.style.backgroundImage="url(" + sImage + ")" : this.ele.style.backgroundImage = "" }}else return this.ele.style.backgroundColor;} +function _nnBackground(sColor, sImage){if (arguments.length){if (sColor=='transparent'){sColor=null;} this.ele.bgColor=sColor; if (arguments.length==2){this.ele.background.src=sImage || null;}}else{var bg=this.ele.bgColor; if (window.cbeUtilJsLoaded){bg=cbeHexString(bg,6,'#');} return bg;}} +function _domColor(newColor){if (arguments.length){this.ele.style.color=newColor;}else return this.ele.style.color;} +function _domClip(iTop, iRight, iBottom, iLeft){if (arguments.length==4){var clipRect="rect(" + iTop + "px " + iRight + "px " + iBottom + "px " + iLeft + "px" + ")"; this.ele.style.clip=clipRect;}else{this.clip(0, this.ele.offsetWidth, this.ele.offsetHeight, 0);}} +function _nnClip(iTop, iRight, iBottom, iLeft){if (arguments.length==4){this.ele.clip.top=iTop; this.ele.clip.right=iRight; this.ele.clip.bottom=iBottom; this.ele.clip.left=iLeft;}else{this.clip(0, this.width(), this.height(), 0);}} +function _ieInnerHtml(sHtml){if (arguments.length){this.ele.innerHTML=sHtml;}else return this.ele.innerHTML;} +function _nnInnerHtml(sHtml){if (arguments.length){if (sHtml==""){sHtml=" ";} this.ele.document.open(); this.ele.document.write(sHtml); this.ele.document.close();}else return "";} +CrossBrowserElement.prototype.cardinalPosition=function(cp, margin, outside){ + if (typeof(cp) !='string'){window.status='cardinalPosition() error: cp=' + cp + ', id=' + this.id; return;} + var x=this.left(), y=this.top(), w=this.width(), h=this.height(); + var pw=this.parentNode.width(), ph=this.parentNode.height(); + var sx=this.parentNode.scrollLeft(), sy=this.parentNode.scrollTop(); + var right=sx + pw, bottom=sy + ph; + var cenLeft=sx + Math.floor((pw-w)/2), cenTop=sy + Math.floor((ph-h)/2); + if (!margin) margin=0; + else{ + if (outside) margin=-margin; + sx +=margin; sy +=margin; right -=margin; bottom -=margin; + } + switch (cp.toLowerCase()){ + case 'n': x=cenLeft; if (outside) y=sy - h; else y=sy; break; + case 'ne': if (outside){x=right; y=sy - h;}else{x=right - w; y=sy;}break; + case 'e': y=cenTop; if (outside) x=right; else x=right - w; break; + case 'se': if (outside){x=right; y=bottom;}else{x=right - w; y=bottom - h}break; + case 's': x=cenLeft; if (outside) y=sy - h; else y=bottom - h; break; + case 'sw': if (outside){x=sx - w; y=bottom;}else{x=sx; y=bottom - h;}break; + case 'w': y=cenTop; if (outside) x=sx - w; else x=sx; break; + case 'nw': if (outside){x=sx - w; y=sy - h;}else{x=sx; y=sy;}break; + case 'cen': case 'center': x=cenLeft; y=cenTop; break; + case 'cenh': x=cenLeft; break; + case 'cenv': y=cenTop; break; + } + this.x=x; this.y=y; +} +function cbeInnerWidth(){ + var w=0; + if (is.opera5or6){w=window.innerWidth;} + else if (is.ie && document.documentElement && document.documentElement.clientWidth) w=document.documentElement.clientWidth; // ie6 compat mode + else if (document.body && document.body.clientWidth) w=document.body.clientWidth; // ie4up and gecko + else if (_def(window.innerWidth,window.innerHeight,document.height)){// nn4 + w=window.innerWidth; + if (document.height > window.innerHeight) w -=16; + } + return w; +} +function cbeInnerHeight(){ + var h=0; + if (is.opera5or6){h=window.innerHeight;} + else if (is.ie && document.documentElement && document.documentElement.clientHeight) h=document.documentElement.clientHeight; + else if (document.body && document.body.clientHeight) h=document.body.clientHeight; + else if (_def(window.innerWidth,window.innerHeight,document.width)){ + h=window.innerHeight; + if (document.width > window.innerWidth) h -=16; + } + return h; +} +function cbePageXOffset(){ + var offset=0; + if (_def(window.pageXOffset)) offset=window.pageXOffset; // gecko, nn4, opera + else if (document.documentElement && document.documentElement.scrollLeft) offset=document.documentElement.scrollLeft; // ie6 compat mode + else if (document.body && _def(document.body.scrollLeft)) offset=document.body.scrollLeft; // ie4up + return offset; +} +function cbePageYOffset(){ + var offset=0; + if (_def(window.pageYOffset)) offset=window.pageYOffset; + else if (document.documentElement && document.documentElement.scrollTop) offset=document.documentElement.scrollTop; + else if (document.body && _def(document.body.scrollTop)) offset=document.body.scrollTop; + return offset; +} +function cbeEval(exp, arg1, arg2, arg3, arg4, arg5, arg6){ + if (typeof(exp)=="function") exp(arg1, arg2, arg3, arg4, arg5, arg6); + else if (typeof(exp)=="object" && typeof(arg1)=="function") { + exp._cbeEval_ = arg1; + exp._cbeEval_(arg2, arg3, arg4, arg5, arg6); + } + else if (typeof(exp)=="string") eval(exp); +} +function ClientSnifferJr(){ + this.ua=navigator.userAgent.toLowerCase(); + this.major=parseInt(navigator.appVersion); + this.minor=parseFloat(navigator.appVersion); + if (document.addEventListener && document.removeEventListener) this.dom2events=true; + if (document.getElementById) this.dom1getbyid=true; + if (window.opera){ + this.opera=true; + this.opera5=(this.ua.indexOf("opera 5") !=-1 || this.ua.indexOf("opera/5") !=-1); + this.opera6=(this.ua.indexOf("opera 6") !=-1 || this.ua.indexOf("opera/6") !=-1); + this.opera5or6=this.opera5 || this.opera6; + this.opera7=(this.ua.indexOf("opera 7") !=-1 || this.ua.indexOf("opera/7") !=-1); + return; + } + this.konq=this.ua.indexOf('konqueror') !=-1; + this.ie=this.ua.indexOf('msie') !=-1; + if (this.ie){ + this.ie3=this.major < 4; + this.ie4=(this.major==4 && this.ua.indexOf('msie 5')==-1 && this.ua.indexOf('msie 6')==-1); + this.ie4up=this.major >=4; + this.ie5=(this.major==4 && this.ua.indexOf('msie 5.0') !=-1); + this.ie5up=!this.ie3 && !this.ie4; + this.ie6=(this.major==4 && this.ua.indexOf('msie 6.0') !=-1); + this.ie6up=(!this.ie3 && !this.ie4 && !this.ie5 && this.ua.indexOf("msie 5.5")==-1); + return; + } + this.hotjava=this.ua.indexOf('hotjava') !=-1; + this.webtv=this.ua.indexOf('webtv') !=-1; + this.aol=this.ua.indexOf('aol') !=-1; + if (this.hotjava || this.webtv || this.aol) return; + // Gecko, NN4, and NS6 + this.gecko=this.ua.indexOf('gecko') !=-1; + this.nav=(this.ua.indexOf('mozilla') !=-1 && this.ua.indexOf('spoofer')==-1 && this.ua.indexOf('compatible')==-1); + if (this.nav){ + this.nav4=this.major==4; + this.nav4up=this.major >=4; + this.nav5up=this.major >=5; + this.nav6=this.major==5; + this.nav6up=this.nav5up; + } +} +window.is=new ClientSnifferJr(); +// End cbe_core.js diff --git a/phpgwapi/templates/idots2/js/x-desktop/cbe_event.js b/phpgwapi/templates/idots2/js/x-desktop/cbe_event.js new file mode 100755 index 0000000000..c188a907ee --- /dev/null +++ b/phpgwapi/templates/idots2/js/x-desktop/cbe_event.js @@ -0,0 +1,403 @@ +/* cbe_event.js $Revision$ + * CBE v4.19, Cross-Browser DHTML API from Cross-Browser.com + * Copyright (c) 2002 Michael Foster (mike@cross-browser.com) + * Distributed under the terms of the GNU LGPL from gnu.org +*/ +function cbeELReg(eventType, eventListener, eventCapture, listenerObject) { // event listener registration object constructor + this.type = eventType; this.listener = eventListener; this.capture = eventCapture; this.obj = listenerObject; +} +function CrossBrowserEvent(e) { // Object constructor + // from DOM2 Interface Event + this.type = ""; + this.target = null; + this.currentTarget = null; + this.eventPhase = 0; + this.bubbles = true; + this.cancelable = true; + this.timeStamp = 0; + this.AT_TARGET = 1; this.BUBBLING_PHASE = 2; this.CAPTURING_PHASE = 3; // eventPhase masks + // from DOM2 Interface MouseEvent : UIEvent + this.screenX = 0; + this.screenY = 0; + this.clientX = 0; + this.clientY = 0; + this.ctrlKey = false; + this.shiftKey = false; + this.altKey = false; + this.metaKey = false; + this.button = 3; // 3 == undefined + this.relatedTarget = null; + this.LEFT = 0; this.MIDDLE = 1; this.RIGHT = 2; // button masks + // from IE4 Object Model + this.keyCode = 0; + this.offsetX = 0; + this.offsetY = 0; + // from NN4 Object Model + this.pageX = 0; + this.pageY = 0; + // CBE + this.stopPropagationFlag = false; + this.preventDefaultFlag = false; + this.cbeTarget = window.cbe; + this.cbeCurrentTarget = window.cbe; + + if (!e) return; + + if (e.type) { this.type = e.type; } + if (e.target) { this.target = e.target; } + else if (e.srcElement) { this.target = e.srcElement; } + if (e.currentTarget) { this.currentTarget = e.currentTarget; } + else if (e.toElement) { this.currentTarget = e.toElement; } + if (e.eventPhase) { this.eventPhase = e.eventPhase; } + if (e.bubbles) { this.bubbles = e.bubbles; } + if (e.cancelable) { this.cancelable = e.cancelable; } + if (e.timeStamp) { this.timeStamp = e.timeStamp; } + + if (e.screenX) { this.screenX = e.screenX; } + if (e.screenY) { this.screenY = e.screenY; } + if (is.opera5or6) { this.clientX = e.clientX - document.cbe.scrollLeft(); } + else if (e.clientX) { this.clientX = e.clientX; } + else if (e.pageX) { this.clientX = e.pageX - document.cbe.scrollLeft(); } + if (is.opera5or6) { this.clientY = e.clientY - document.cbe.scrollLeft(); } + else if (e.clientY) { this.clientY = e.clientY; } + else if (e.pageY) { this.clientY = e.pageY - document.cbe.scrollLeft(); } + if (is.opera5or6) { this.ctrlKey = e.type=='mousemove' ? e.shiftKey : e.ctrlKey; } + else if (_def(e.ctrlKey)) { this.ctrlKey = e.ctrlKey; } + else if (_def(e.modifiers) && window.Event) { this.ctrlKey = (e.modifiers & window.Event.CONTROL_MASK) != 0; } + if (is.opera5or6) { this.shiftKey = e.type=='mousemove' ? e.ctrlKey : e.shiftKey; } + else if (_def(e.shiftKey)) { this.shiftKey = e.shiftKey; } + else if (_def(e.modifiers) && window.Event) { this.shiftKey = (e.modifiers & Event.SHIFT_MASK) != 0; } + if (e.altKey) { this.altKey = e.altKey; } + else if (_def(e.modifiers) && window.Event) { this.altKey = (e.modifiers & Event.ALT_MASK) != 0; } + if (e.metaKey) { this.metaKey = e.metaKey; } + + // button (?) + if (is.ie) { + if (this.type.indexOf('mouse') != -1) { + if (e.button == 1) this.button = this.LEFT; + else if (e.button == 4) this.button = this.MIDDLE; + else if (e.button == 2) this.button = this.RIGHT; + } + else if (this.type == 'click') this.button = this.LEFT; + else this.button = 4; // non-mouse event + } + else if (_def(e.button)) { // standard + if (this.type.indexOf('mouse') != -1) { this.button = e.button; if (this.button < 0 || this.button > 2) {this.button = 3;} } + else if (this.type == 'click') this.button = this.LEFT; + else this.button = 4; // non-mouse event + } + else if (_def(e.which)) { + if (document.layers) { // nn4 + if (this.type.indexOf('mouse') != -1) { this.button = e.which - 1; if (this.button < 0 || this.button > 2) {this.button = 3;} } + else if (this.type == 'click') this.button = this.LEFT; + else this.button = 4; // non-mouse event + } + else { // opera5or6 + if ((e.type == 'click' && e.which == 0) || ((e.type == 'mousedown' || e.type == 'mouseup') && e.which == 1)) {this.button = this.LEFT;} + } + } + + if (e.relatedTarget) { this.relatedTarget = e.relatedTarget; } + else if (e.fromElement) { this.relatedTarget = e.fromElement; } // ? may need to be toElement in some cases ? + if (_def(e.which)) { this.keyCode = e.which; } + else if (_def(e.keyCode)) { this.keyCode = e.keyCode; } + var calcOfs = false; + if (_def(e.layerX,e.layerY)) { this.offsetX = e.layerX; this.offsetY = e.layerY; } + else calcOfs = true; // calculate it below + if (is.opera5or6) { this.pageX = e.clientX; this.pageY = e.clientY; } + else if (_def(e.pageX,e.pageY)) { this.pageX = e.pageX; this.pageY = e.pageY; } + else { + this.pageX = this.clientX + document.cbe.scrollLeft(); + this.pageY = this.clientY + document.cbe.scrollTop(); + } + + // Find the CBE event target + if (document.layers) { + this.cbeTarget = cbeGetNodeFromPoint(this.pageX, this.pageY); + // NN4 note: mouseout works only if mouseover and mouseout are both added to the same object + if (this.type == 'mouseover') cbeMOT = this.cbeTarget; + else if (this.type == 'mouseout') this.cbeTarget = cbeMOT || document.cbe; + } + else { var target = this.target; while (!target.cbe) {target = cbeGetParentElement(target);} this.cbeTarget = target.cbe; } + this.cbeCurrentTarget = this.cbeTarget; + if (calcOfs) { this.offsetX = this.pageX - this.cbeTarget.pageX(); this.offsetY = this.pageY - this.cbeTarget.pageY(); } +} + +CrossBrowserElement.prototype.addEventListener = function(eventType, eventListener, useCapture, listenerObject) { + if (!useCapture) useCapture = false; + eventType = eventType.toLowerCase(); + if ( + (eventType.indexOf('mouse') != -1) + || eventType == 'click' + || (eventType.indexOf('key') != -1) +/* || (eventType.indexOf('resize') != -1 && !is.nav4 && !is.opera) + || (eventType.indexOf('scroll') != -1 && !is.nav && !is.opera) */ + ) { + var add=true; + for (var i=0; i < this.listeners.length; ++i) { if (eventType == this.listeners[i].type) {add=false; break;} } + if (add) { + cbeNativeAddEventListener(this.ele, eventType, cbePropagateEvent, false); + } + this.listeners[this.listeners.length] = new cbeELReg(eventType, eventListener, useCapture, listenerObject); + return; + } + switch(eventType) { + case 'slidestart': this.onslidestart = eventListener; return; + case 'slide': this.onslide = eventListener; return; + case 'slideend': this.onslideend = eventListener; return; + case 'dragstart': this.ondragstart = eventListener; return; + case 'drag': + this.ondragCapture = useCapture; + this.ondrag = eventListener; + this.addEventListener('mousedown', cbeDragStartEvent, useCapture); + return; + case 'dragend': this.ondragend = eventListener; return; + case 'dragresize': if (window.cbeUtilJsLoaded) cbeAddDragResizeListener(this); return; + case 'scroll': + if (is.nav || is.opera) { + window.cbeOldScrollTop = cbePageYOffset(); + window.cbeOnScrollListener = eventListener; + cbeScrollEvent(); + return; + } + break; + case 'resize': + if (is.nav4 || is.opera) { + window.cbeOldWidth = cbeInnerWidth(); + window.cbeOldHeight = cbeInnerHeight(); + window.cbeOnResizeListener = eventListener; + cbeResizeEvent(); + return; + } + break; + } // end switch + cbeNativeAddEventListener(this.ele, eventType, eventListener, useCapture); +} +function cbeNativeAddEventListener(ele, eventType, eventListener, useCapture) { + if (!useCapture) useCapture = false; + eventType = eventType.toLowerCase(); + var eh = "ele.on" + eventType + "=eventListener"; + if (ele.addEventListener) { + ele.addEventListener(eventType, eventListener, useCapture); + } + else if (ele.captureEvents) { +// if (useCapture || (eventType.indexOf('mousemove')!=-1)) // ??? + ele.captureEvents(eval("Event." + eventType.toUpperCase())); + eval(eh); + } + else { eval(eh); } +} +function cbeNativeRemoveEventListener(ele, eventType, eventListener, useCapture) { + if (!useCapture) useCapture = false; + eventType = eventType.toLowerCase(); + var eh = "ele.on" + eventType + "=null"; + if (ele.removeEventListener) { + ele.removeEventListener(eventType, eventListener, useCapture); + } + else if (ele.releaseEvents) { +// if (useCapture || (eventType.indexOf('mousemove')!=-1)) // ??? + ele.releaseEvents(eval("Event." + eventType.toUpperCase())); + eval(eh); + } + else { eval(eh); } +} +CrossBrowserElement.prototype.removeEventListener = function(eventType, eventListener, useCapture) { + eventType = eventType.toLowerCase(); + if (!useCapture) useCapture = false; + if ((eventType.indexOf('mouse') != -1) || eventType == 'click' || (eventType.indexOf('key') != -1)) { + var i; + for (i = 0; i < this.listeners.length; ++i) { + if (this.listeners[i].type == eventType && this.listeners[i].listener == eventListener && this.listeners[i].capture == useCapture) { + if (this.listeners.splice) this.listeners.splice(i, 1); + else this.listeners[i].type = "*"; + break; + } + } + var remove=true; + for (i = 0; i < this.listeners.length; ++i) { if (eventType == this.listeners[i].type) { remove = false; break; } } + if (remove) cbeNativeRemoveEventListener(this.ele, eventType, cbePropagateEvent, false); + return; + } + switch(eventType) { + case 'slidestart': this.onslidestart = null; return; + case 'slide': this.onslide = null; return; + case 'slideend': this.onslideend = null; return; + case 'dragstart': this.ondragstart = null; return; + case 'drag': + this.removeEventListener('mousedown', cbeDragStartEvent, this.ondragCapture); + this.ondrag = null; + return; + case 'dragend': this.ondragend = null; return; + case 'dragresize': if (window.cbeUtilJsLoaded) cbeRemoveDragResizeListener(this); return; + case 'scroll': + if (is.nav || is.opera) { + window.cbeOnScrollListener = null; + return; + } + break; + case 'resize': + if (is.nav4 || is.opera) { + window.cbeOnResizeListener = null; + return; + } + break; + } // end switch + cbeNativeRemoveEventListener(this.ele, eventType, eventListener, useCapture); +} +CrossBrowserEvent.prototype.stopPropagation = function() { this.stopPropagationFlag = true; } +CrossBrowserEvent.prototype.preventDefault = function() { this.preventDefaultFlag = true; } +CrossBrowserElement.prototype.dispatchEvent= function(e) { + var dispatch; + e.cbeCurrentTarget = this; + for (var i=0; i < this.listeners.length; ++i) { + dispatch = false; + if (e.type == this.listeners[i].type) { + if (e.eventPhase == e.CAPTURING_PHASE) { + if (this.listeners[i].capture) dispatch = true; + } + else if (!this.listeners[i].capture) dispatch = true; + } + if (dispatch) { + if (this.listeners[i].obj) cbeEval(this.listeners[i].obj, this.listeners[i].listener, e); + else cbeEval(this.listeners[i].listener, e); + } + } +} +function cbePropagateEvent(evt) { + var i=0, e=null, a=new Array(); + if (evt) e = new CrossBrowserEvent(evt); + else if (window.event) e = new CrossBrowserEvent(window.event); + else return; + // Create an array of EventTargets, following the parent chain up (does not include cbeTarget) + var node = e.cbeTarget.parentNode; + while(node) { + a[i++] = node; + node = node.parentNode; + } + // The capturing phase + e.eventPhase = e.CAPTURING_PHASE; + for (i = a.length-1; i>=0; --i) { + a[i].dispatchEvent(e); + if (e.stopPropagationFlag) break; + } + // The at-target phase + if (!e.stopPropagationFlag) { + e.eventPhase = e.AT_TARGET; + e.cbeTarget.dispatchEvent(e); + // The bubbling phase + if (!e.stopPropagationFlag && e.bubbles) { + e.eventPhase = e.BUBBLING_PHASE; + for (i = 0; i < a.length; ++i) { + a[i].dispatchEvent(e); + if (e.stopPropagationFlag) break; + } + } + } + // Don't allow native bubbling + if (is.ie) window.event.cancelBubble = true; + else if (is.gecko) evt.stopPropagation(); + // Allow listener to cancel default action + if (e.cancelable && e.preventDefaultFlag) { + if (is.gecko || is.opera) evt.preventDefault(); + return false; + } + else return true; +} +function cbeGetNodeFromPoint(x, y) { + var hn /* highNode */, hz=0 /* highZ */, cn /* currentNode */, cz /* currentZ */; + hn = document.cbe; + while (hn.firstChild && hz >= 0) { + hz = -1; + cn = hn.firstChild; + while (cn) { + if (cn.contains(x, y)) { + cz = cn.zIndex(); + if (cz >= hz) { + hn = cn; + hz = cz; + } + } + cn = cn.nextSibling; + } + } + return hn; +} +function cbeScrollEvent() { + if (!window.cbeOnScrollListener) { return; } + if (cbePageYOffset() != window.cbeOldScrollTop) { + cbeEval(window.cbeOnScrollListener); + window.cbeOldScrollTop = cbePageYOffset(); + } + setTimeout("cbeScrollEvent()", 250); +} +function cbeResizeEvent() { + if (!window.cbeOnResizeListener) { return; } + var dw = window.cbeOldWidth - cbeInnerWidth(); + var dh = window.cbeOldHeight - cbeInnerHeight(); + if (dw != 0 || dh != 0) { + if (window.cbeOnResizeListener) cbeEval(window.cbeOnResizeListener, dw, dh); + window.cbeOldWidth = cbeInnerWidth(); + window.cbeOldHeight = cbeInnerHeight(); + } + setTimeout("cbeResizeEvent()", 250); +} +function cbeDefaultResizeListener() { + if (is.opera) location.replace(location.href); + else history.go(0); +} +var cbeDragObj, cbeDragTarget, cbeDragPhase; +function cbeDragStartEvent(e) { + if (is.opera) { var tn = e.target.tagName.toLowerCase(); if (tn == 'a') return; } + else if (is.nav4) { if (e.target.href) return; } + cbeDragObj = e.cbeCurrentTarget; + cbeDragTarget = e.cbeTarget; + if (cbeDragTarget.id == cbeDragObj.id) cbeDragPhase = e.AT_TARGET; + else if (cbeDragObj.ondragCapture) cbeDragPhase = e.CAPTURING_PHASE; + else cbeDragPhase = e.BUBBLING_PHASE; + if (cbeDragObj) { + if (cbeDragObj.ondragstart) { e.type = 'dragstart'; cbeEval(cbeDragObj.ondragstart, e); e.type = 'mousedown'; } + cbeDragObj.x = e.pageX; + cbeDragObj.y = e.pageY; + document.cbe.addEventListener('mousemove', cbeDragEvent, cbeDragObj.ondragCapture); + document.cbe.addEventListener('mouseup', cbeDragEndEvent, false); + } + e.stopPropagation(); + e.preventDefault(); +} +function cbeDragEndEvent(e) { + document.cbe.removeEventListener('mousemove', cbeDragEvent, cbeDragObj.ondragCapture); + document.cbe.removeEventListener('mouseup', cbeDragEndEvent, false); + if (cbeDragObj.ondragend) { + e.type = 'dragend'; + e.cbeCurrentTarget = cbeDragObj; + e.cbeTarget = cbeDragTarget; + cbeEval(cbeDragObj.ondragend, e); + e.type = 'mouseup'; + } + //e.stopPropagation(); + e.preventDefault(); +} +function cbeDragEvent(e) { + if (cbeDragObj) { + e.dx = e.pageX - cbeDragObj.x; + e.dy = e.pageY - cbeDragObj.y; + cbeDragObj.x = e.pageX; + cbeDragObj.y = e.pageY; + e.type = 'drag'; + e.cbeTarget = cbeDragTarget; + e.cbeCurrentTarget = cbeDragObj; + e.eventPhase = cbeDragPhase; + if (cbeDragObj.ondrag) cbeEval(cbeDragObj.ondrag, e); + else cbeDragObj.moveBy(e.dx,e.dy); + e.type = 'mousemove'; + } + //e.stopPropagation(); + e.preventDefault(); +} +var cbeEventPhase = new Array('', 'AT_TARGET', 'BUBBLING_PHASE', 'CAPTURING_PHASE'); +var cbeButton = new Array('LEFT', 'MIDDLE', 'RIGHT', 'undefined', 'non-mouse event'); +CrossBrowserElement.prototype.ondragstart = null; +CrossBrowserElement.prototype.ondrag = null; +CrossBrowserElement.prototype.ondragend = null; +var cbeEventJsLoaded = true; +// End cbe_event.js diff --git a/phpgwapi/templates/idots2/js/x-desktop/cbe_slide.js b/phpgwapi/templates/idots2/js/x-desktop/cbe_slide.js new file mode 100755 index 0000000000..7eced21511 --- /dev/null +++ b/phpgwapi/templates/idots2/js/x-desktop/cbe_slide.js @@ -0,0 +1,163 @@ +/* cbe_slide.js $Revision$ + * CBE v4.19, Cross-Browser DHTML API from Cross-Browser.com + * Copyright (c) 2002 Michael Foster (mike@cross-browser.com) + * Distributed under the terms of the GNU LGPL from gnu.org +*/ +CrossBrowserElement.prototype.slideBy = function(dX, dY, totalTime, endListener) { + var targetX, targetY; + dX = parseInt(dX); dY = parseInt(dY); targetX = this.left() + dX; targetY = this.top() + dY; + this.slideTo(targetX, targetY, totalTime, endListener) +} +CrossBrowserElement.prototype.slideTo = function(x, y, totalTime, endListener) { + if (this.onslidestart) cbeEval(this.onslidestart, this); + this.xTarget = parseInt(x); this.yTarget = parseInt(y); + this.slideTime = parseInt(totalTime); + if (isNaN(this.xTarget)) { + var outside=false; + if (isNaN(this.yTarget)) { y = 0; outside = true; } + this.cardinalPosition(x, y, outside); this.xTarget = this.x; this.yTarget = this.y; + } + if (endListener && window.cbeEventJsLoaded) { this.autoRemoveListener = true; this.addEventListener('slideend', endListener); } + this.stop = false; + this.yA = this.yTarget - this.top(); this.xA = this.xTarget - this.left(); // A = distance + this.B = Math.PI / (2 * this.slideTime); // B = period + this.yD = this.top(); this.xD = this.left(); // D = initial position + if (this.slideRate == cbeSlideRateLinear) { this.B = 1/this.slideTime; } + else if (this.slideRate == cbeSlideRateCosine) { + this.yA = -this.yA; this.xA = -this.xA; this.yD = this.yTarget; this.xD = this.xTarget; + } + var d = new Date(); this.C = d.getTime(); + if (!this.moving) this.slide(); +} +CrossBrowserElement.prototype.slide = function() { + var now, s, t, newY, newX; + now = new Date(); + t = now.getTime() - this.C; + if (this.stop) { this.moving = false; } + else if (t < this.slideTime) { + setTimeout("window.cbeAll["+this.index+"].slide()", this.timeout); + if (this.slideRate == cbeSlideRateLinear) s = this.B * t; + else if (this.slideRate == cbeSlideRateSine) s = Math.sin(this.B * t); + else s = Math.cos(this.B * t); // this.slideRate == cbeSlideRateCosine + newX = Math.round(this.xA * s + this.xD); + newY = Math.round(this.yA * s + this.yD); + if (this.onslide) cbeEval(this.onslide, this, newX, newY, t); + this.moveTo(newX, newY); + this.moving = true; + } + else { + this.moveTo(this.xTarget, this.yTarget); + this.moving = false; + if (this.onslideend) { + var tmp = this.onslideend; + if (this.autoRemoveListener && window.cbeEventJsLoaded) { + this.autoRemoveListener = false; + this.removeEventListener('slideend'); + } + cbeEval(tmp, this); + } + } +} +CrossBrowserElement.prototype.ellipse = function(xRadius, yRadius, radiusInc, totalTime, startAngle, stopAngle, endListener) { + if (this.onslidestart) cbeEval(this.onslidestart, this); + this.stop = false; + this.xA = parseInt(xRadius); + this.yA = parseInt(yRadius); + this.radiusInc = parseInt(radiusInc); + this.slideTime = parseInt(totalTime); + startAngle = cbeRadians(parseFloat(startAngle)); + stopAngle = cbeRadians(parseFloat(stopAngle)); + if (endListener && window.cbeEventJsLoaded) { + this.autoRemoveListener = true; + this.addEventListener('slideend', endListener); + } + var startTime = (startAngle * this.slideTime) / (stopAngle - startAngle); + this.stopTime = this.slideTime + startTime; + this.B = (stopAngle - startAngle) / this.slideTime; + this.xD = this.left() - Math.round(this.xA * Math.cos(this.B * startTime)); // center point + this.yD = this.top() - Math.round(this.yA * Math.sin(this.B * startTime)); + this.xTarget = Math.round(this.xA * Math.cos(this.B * this.stopTime) + this.xD); // end point + this.yTarget = Math.round(this.yA * Math.sin(this.B * this.stopTime) + this.yD); + var d = new Date(); + this.C = d.getTime() - startTime; + if (!this.moving) this.ellipse1(); +} +CrossBrowserElement.prototype.ellipse1 = function() { + var now, t, newY, newX; + now = new Date(); + t = now.getTime() - this.C; + if (this.stop) { this.moving = false; } + else if (t < this.stopTime) { + setTimeout("window.cbeAll["+this.index+"].ellipse1()", this.timeout); + if (this.radiusInc) { + this.xA += this.radiusInc; + this.yA += this.radiusInc; + } + newX = Math.round(this.xA * Math.cos(this.B * t) + this.xD); + newY = Math.round(this.yA * Math.sin(this.B * t) + this.yD); + if (this.onslide) cbeEval(this.onslide, this, newX, newY, t); + this.moveTo(newX, newY); + this.moving = true; + } + else { + if (this.radiusInc) { + this.xTarget = Math.round(this.xA * Math.cos(this.B * this.slideTime) + this.xD); + this.yTarget = Math.round(this.yA * Math.sin(this.B * this.slideTime) + this.yD); + } + this.moveTo(this.xTarget, this.yTarget); + this.moving = false; + if (this.onslideend) { + var tmp = this.onslideend; + if (this.autoRemoveListener && window.cbeEventJsLoaded) { + this.autoRemoveListener = false; + this.removeEventListener('slideend'); + } + cbeEval(tmp, this); + } + } +} +CrossBrowserElement.prototype.stopSlide = function() { this.stop = true; } +CrossBrowserElement.prototype.startSequence = function(uIndex) { + if (!this.moving) { + if (!uIndex) this.seqIndex = 0; + else this.seqIndex = uIndex; + this.addEventListener('slideEnd', cbeSlideSequence); + cbeSlideSequence(this); + } +} +CrossBrowserElement.prototype.stopSequence = function() { + this.stop=true; + this.removeEventListener('slideEnd', cbeSlideSequence); +} +function cbeSlideSequence(cbe) { + var + pw = cbe.parentNode.width(), + ph = cbe.parentNode.height(), + w = cbe.width(), + h = cbe.height(); + if (cbe.seqIndex >= cbe.sequence.length) cbe.seqIndex = 0; + eval('cbe.'+cbe.sequence[cbe.seqIndex++]); +} +var cbeSlideRateLinear=0, cbeSlideRateSine=1, cbeSlideRateCosine=2; +CrossBrowserElement.prototype.slideRate = cbeSlideRateSine; +CrossBrowserElement.prototype.seqIndex = 0; +CrossBrowserElement.prototype.radiusInc = 0; +CrossBrowserElement.prototype.t = 0; +CrossBrowserElement.prototype.xTarget = 0; +CrossBrowserElement.prototype.yTarget = 0; +CrossBrowserElement.prototype.slideTime = 1000; +CrossBrowserElement.prototype.xA = 0; +CrossBrowserElement.prototype.yA = 0; +CrossBrowserElement.prototype.xD = 0; +CrossBrowserElement.prototype.yD = 0; +CrossBrowserElement.prototype.B = 0; +CrossBrowserElement.prototype.C = 0; +CrossBrowserElement.prototype.moving = false; +CrossBrowserElement.prototype.stop = true; +CrossBrowserElement.prototype.timeout = 35; +CrossBrowserElement.prototype.autoRemoveListener = false; +CrossBrowserElement.prototype.onslidestart = null; +CrossBrowserElement.prototype.onslide = null; +CrossBrowserElement.prototype.onslideend = null; +var cbeSlideJsLoaded = true; +// End cbe_slide.js diff --git a/phpgwapi/templates/idots2/js/x-desktop/events.js b/phpgwapi/templates/idots2/js/x-desktop/events.js new file mode 100755 index 0000000000..98e02eeed2 --- /dev/null +++ b/phpgwapi/templates/idots2/js/x-desktop/events.js @@ -0,0 +1,650 @@ +function createPos(mObj, mX, mY) +{ + mX = Math.round(mX); + mY = Math.round(mY); + wHeight = Math.round(getWindowHeight()); + wWidth = Math.round(getWindowWidth()); + if( mX + mObj.clientWidth > wWidth) + { + if(mX > wWidth) + { + mObj.style.left = wWidth - mObj.clientWidth + "px"; + } + else + { + mObj.style.left = mX - mObj.clientWidth + "px"; + } + } + else + { + mObj.style.left = mX + "px"; + } + if( mY + mObj.clientHeight > wHeight - 23) + { + if(mY > wHeight - 30) + { + mObj.style.top = wHeight - 30 + "px"; + } + else + { + mObj.style.top = mY - mObj.clientHeight + "px"; + } + } + else + { + mObj.style.top = mY + "px"; + } +} + +function getWindowWidth() { + var myWidth = 0; + if( typeof( window.innerWidth ) == 'number' ) + { + //Non-IE + myWidth = window.innerWidth; + } + else + if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) + { + //IE 6+ in 'standards compliant mode' + myWidth = document.documentElement.clientWidth; + } + else + if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) + { + //IE 4 compatible + myWidth = document.body.clientWidth; + } + return myWidth; +} + +function getWindowHeight() { + var myHeight = 0; + if( typeof( window.innerWidth ) == 'number' ) + { + //Non-IE + myHeight = window.innerHeight; + } + else + if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) + { + //IE 6+ in 'standards compliant mode' + myHeight = document.documentElement.clientHeight; + } + else + if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) + { + //IE 4 compatible + myHeight = document.body.clientHeight; + } + return myHeight; +} + + +function openX(idotsname, url) +{ + if(scrHeight =="") + { + scrHeight = 400; + } + if(scrWidth == "") + { + scrWidth = 600; + } + + if(document.getElementById('context')) + { + document.getElementById('context').style.display = "none"; + } + + if(document.getElementById('launchmenu')) + { + document.getElementById('launchmenu').style.display = "none"; + } + + idotsW = "xD" + new Date().getUTCMilliseconds(); + xDT.addWindow(idotsW, idotsname, scrWidth, scrHeight, 'center', 'IDOTS2'); + xDT.url(idotsW, url); + xDT.show(idotsW); + correctPNG(); +} + +function findPosX(obj) +{ + var curleft = 0; + if (obj.offsetParent) + { + while (obj.offsetParent) + { + curleft += obj.offsetLeft; + obj = obj.offsetParent; + } + } + if (obj.offsetLeft) + { + curleft += obj.offsetLeft; + } + return curleft; +} + +function findPosY(obj) +{ + var curtop = 0; + if (obj.offsetParent) + { + while (obj.offsetParent) + { + curtop += obj.offsetTop; + obj = obj.offsetParent; + } + } + if (obj.offsetTop) + curtop += obj.offsetTop; + return curtop; +} + + +function correctPNG() // correctly handle PNG transparency in Win IE 5.5 or higher. +{ + if (document.all) + { + var detect = navigator.userAgent.toLowerCase(); + place = detect.indexOf("msie") + 1; + + if(place) + { + for(var i=0; i 0) { + notify = document.getElementById("notify"); + + removeAllChilds(notify); + + for(i = 0; i < response.getElementsByTagName('title').length; i++) + { + title = response.getElementsByTagName('title')[i].firstChild.data; + url = response.getElementsByTagName('url')[i].firstChild.data; + message = response.getElementsByTagName('message')[i].firstChild.data; + a = document.createElement("a"); + a.href = "javascript:openX('" + title + "', '" + url + "');warning();"; + a.innerHTML = message; + + li = document.createElement("li"); + li.appendChild(a); + notify.appendChild(li); + + + } + document.getElementById('warning').style.display = "block"; + } + + else + { + if(document.getElementById('warning')) + { + document.getElementById('warning').style.display = "none"; + } + } + } + } + } +} + +function warning() +{ + notify = document.getElementById('notify'); + if(notify.style.display == "none" || notify.style.display == "") + { + notify.style.display = "block"; + } + else + { + notify.style.display = "none"; + } +} + +function removeAllChilds(obj) +{ + while(obj.hasChildNodes() == true) + { + obj.removeChild(obj.firstChild); + } + +} + +document.onmousedown = function(e) + //document.onclick = function(e) +{ + if (!e) var e = window.event; + var source = (e.target) ? e.target : e.srcElement; + // alert(source.parentNode.parentNode.tagName); + // alert(source.parentNode.className); + if(source.nodeName =="SPAN") + { + source = source.parentNode; + } + //test = document.getElementById('context2'); + //alert(test.id); + if(source.parentNode && source.parentNode.parentNode) + { + if(source.parentNode.parentNode.id != "context") + { + if(document.getElementById('context') && source.className !="shortcut") + { + ul.style.display = "none"; + } + if(document.getElementById('context')) + { + if(e.button != 2) + ul.style.display = "none"; + } + } + if(source.parentNode.parentNode.parentNode.id !="launchmenu") + { + if(source.id != "launch") + { + document.getElementById('launchmenu').style.display = "none"; + } + } + } + + + +} +window.onresize = function(e) { + launchSize(true); + links = document.getElementsByTagName('a'); + for(i = 0; i < links.length; i++) + { + + if(links[i].className == "shortcut") + { + mObj = links[i]; + mX = findPosX(mObj); + mY = findPosY(mObj); + createPos(mObj, mX, mY) + } + } +} + +var launchInit = false; + +function launchSize(forceResize) +{ + if(document.all) { + launchSizeIE(forceResize); + } + else { + launchSizeAll(forceResize); + } +} + +function launchSizeAll(forceResize) +{ + var iconpath = xDT.resPath() + 'skins/IDOTS2'; + if(forceResize || !launchInit) + { + launchInit = true; + + div = document.getElementById('launchmenu'); + + listItems = new Array(); + x = 0; + for(i = 0; i < div.childNodes.length; i++) + { + if(div.childNodes[i].tagName == "UL") + { + ul = div.childNodes[i]; + for(j = 0; j < ul.childNodes.length; j++) + { + if(ul.childNodes[j].nodeName == "LI" && ul.childNodes[j].className != "programs") + { + listItems[x] = ul.childNodes[j].cloneNode(true); + x++; + } + } + } + } + + + + totItems = listItems.length; + taskHeight = document.getElementById('taskbar').clientHeight; + + divHeight = getWindowHeight()-taskHeight; + + document.getElementById('launchinfo').style.height = divHeight + "px"; + + maxItems = Math.floor((divHeight / 25)-1); + + margin = divHeight % 25; + if(maxItems >= totItems) + { + margin += (maxItems - totItems) * 25; + } + + document.getElementById('launchmenu').style.top = (margin)+ "px"; + + info = document.getElementById("launchinfo").cloneNode(true); + div.innerHTML = ""; + div.appendChild(info); + newUl = new Array(); + ulCount = 0; + newUl[ulCount] = document.createElement("UL"); + + html = ''+programs+''; + + + programs = document.createElement("LI"); + + programs.innerHTML = html; + programs.className = "programs"; + + newUl[ulCount].appendChild(programs); + + if(maxItems >= totItems) { + newUl[ulCount].style.marginRight = "5px"; + } + + programs2 = programs.cloneNode(false); + + for(i = 0; i < totItems; i++) { + newUl[ulCount].appendChild(listItems[i]); + if(i+1 >= (maxItems * (ulCount+1))) + { + newUl[ulCount].style.height = "100%"; + div.appendChild(newUl[ulCount]); + ulCount++; + + newUl[ulCount] = document.createElement("UL"); + newUl[ulCount].appendChild(programs2.cloneNode(true)); + } + } + if(newUl[ulCount].childNodes.length > 1) + { + div.appendChild(newUl[ulCount]); + } + correctPNG(); + + + } + +} + +function launchSizeIE(forceResize) { + var iconpath = xDT.resPath() + 'skins/IDOTS2'; + if(forceResize || !launchInit) + { + + launchInit = true; + + div = document.getElementById('launchmenu'); + + listItems = new Array(); + x = 0; + for(i = 0; i < div.childNodes.length; i++) + { + + if(div.childNodes[i].tagName == "UL") + { + ul = div.childNodes[i]; + for(j = 0; j < ul.childNodes.length; j++) + { + if(ul.childNodes[j].nodeName == "LI" && ul.childNodes[j].className != "programs") + { + listItems[x] = ul.childNodes[j].cloneNode(true); + x++; + } + } + } + } + + + totItems = listItems.length; + taskHeight = document.getElementById('taskbar').clientHeight; + divHeight = getWindowHeight()-(taskHeight); + + + + maxItems = Math.floor((divHeight / 23)-1); + + margin = divHeight % 23; + if(maxItems >= totItems) + { + margin += (maxItems - totItems) * 23; + } + + document.getElementById('launchmenu').style.bottom = taskHeight + "px"; + + + info = document.getElementById("launchinfo").cloneNode(true); + + div.innerHTML = ""; + + div.appendChild(info); + newUl = new Array(); + ulCount = 0; + newUl[ulCount] = document.createElement("UL"); + html = ''+programs+''; + + + program = document.createElement("LI"); + + program.innerHTML = html; + program.className = "programs"; + + newUl[ulCount].appendChild(program); + + if(maxItems >= totItems) { + //newUl[ulCount].style.marginRight = "5px"; + } + + programs2 = program.cloneNode(false); + + for(i = 0; i < totItems; i++) { + newUl[ulCount].appendChild(listItems[i]); + if(i+2 >= (maxItems * (ulCount+1))) + { + newUl[ulCount].style.height = "100%"; + div.appendChild(newUl[ulCount]); + ulCount++; + + newUl[ulCount] = document.createElement("UL"); + newUl[ulCount].appendChild(programs2.cloneNode(true)); + } + } + if(newUl[ulCount].childNodes.length > 1) + { + div.appendChild(newUl[ulCount]); + } + if(document.all) + { + info.style.height = div.clientHeight + "px"; + } + correctPNG(); + + + } + +} + + +function displayLaunch() +{ + el = document.getElementById('launchmenu'); + if(el.style.display == "block") + { + el.style.display = "none"; + } + else + { + el.style.display = "block"; + launchSize(false); + } +} + +function sdt() +{ + if(sd == true) + { + sd = false; + xDT.minimizeAllWindows(); + } + else + { + xDT.restoreAllWindows(); + sd = true; + } +} + +function makeTime() { + clock_d = new Date(); + clock_day = clock_d.getDay(); + clock_mon = clock_d.getMonth(); + clock_date = clock_d.getDate(); + clock_year = clock_d.getYear(); + clock_hr = clock_d.getHours(); + clock_min = clock_d.getMinutes(); + clock_sec = clock_d.getSeconds(); + + if(clock_year<1000){clock_year=("" + (clock_year+11900)).substring(1,5);} + else{clock_year=("" + (clock_year+10000)).substring(1,5);} + + + + + clock_zmon=new Array(); + clock_zmon=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; + + if(document.getElementById('clock')!= null) + { + if(clock_set == 'minute') + { + if(clock_sec > 30) + { + clock_min = clock_min + 1; + } + if(clock_min <= 9) + { + clock_min="0"+clock_min + } + if(clock_sec <= 9) + { + clock_sec="0"+clock_sec + } + document.getElementById('clock').innerHTML = "" + clock_zmon[clock_mon] + " "+ clock_date + ", " + clock_year + " / " + clock_hr + ":" + clock_min + " "; + } + else + { + if(clock_min <= 9) + { + clock_min="0"+clock_min + } + if(clock_sec <= 9) + { + clock_sec="0"+clock_sec + } + document.getElementById('clock').innerHTML = "" + clock_zmon[clock_mon] + " "+ clock_date + ", " + clock_year + " / " + clock_hr + ":" + clock_min + ":" + clock_sec + " "; + } + } + + if(clock_set == 'minute') + { + setTimeout("makeTime()", 60000); + } + else + { + setTimeout("makeTime()", 1000); + } +} \ No newline at end of file diff --git a/phpgwapi/templates/idots2/js/x-desktop/shortcuts.js b/phpgwapi/templates/idots2/js/x-desktop/shortcuts.js new file mode 100755 index 0000000000..a755c99d5e --- /dev/null +++ b/phpgwapi/templates/idots2/js/x-desktop/shortcuts.js @@ -0,0 +1,358 @@ +var LastClick; +var strXmlUrl; +document.onselectstart = function() +{ + return false; +} + +function showShortcuts(appTitles, appUrls, appImgs, appTop, appLeft, appType, appName, xmlUrl) +{ + strXmlUrl = xmlUrl; + var aTitle = appTitles.split(','); + var aUrl = appUrls.split(','); + var aImg = appImgs.split(','); + var aTop = appTop.split(','); + var aLeft = appLeft.split(','); + var aType = appType.split(','); + var aName = appName.split(','); + + for(i=0;i 500) + { + mouseUp(this.id,e); + } + else + { + mObj = document.getElementById(this.id); + if(mObj.tagName == "IMG" || mObj.tagName == "SPAN") + { + mObj = mObj.parentNode; + } + source = mObj.src; + mObj.onmousemove = ""; + for(i = 0; i < mObj.childNodes.length; i++) + { + if(mObj.childNodes[i].tagName == "SPAN") + { + Title = mObj.childNodes[i].innerHTML; + } + } + openX(Title,source); + } + } + mocuob = null; + } +} + + + +function mousedown(e) +{ + + + if (!e) var e = window.event; + var source = (e.target) ? e.target : e.srcElement; + + if(e.button != 2) + { + LastClick = new Date().getTime(); + //return false; + if (!e) var e = window.event; + var source = (e.target) ? e.target : e.srcElement; + if(source.tagName == "SPAN") { + source = source.parentNode; + } + source.onmousemove = mouseDrag; + } + else + { + if (!e) var e = window.event; + var source = (e.target) ? e.target : e.srcElement; + if(source.tagName == "SPAN") { + source = source.parentNode; + } + createContext(false, source.id ,e.clientX, e.clientY); + } + mocuob = source; +} +function createContext(add, url,x,y) +{ + + if(!document.getElementById('context')) + { + ul = document.createElement('ul'); + } + else + { + removeAllChilds(ul); + } + li = document.createElement('li'); + a = document.createElement('a'); + if(add == true) + { + a.href = "javascript:openShort('"+titleAdd+"','"+url+"','"+y+"','"+x+"');"; + a.innerHTML = titleAdd; + } + else + { + a.href = "javascript:remShort('"+url+"');"; + a.innerHTML = titleRem; + } + li.appendChild(a); + ul.appendChild(li); + + li2 = document.createElement('li'); + a2 = document.createElement('a'); + a2.innerHTML = titlePref; + a2.href="javascript:openX('"+titlePref+"','"+url_pref+"');"; + li2.appendChild(a2); + ul.appendChild(li2); + + li3 = document.createElement('li'); + a3 = document.createElement('a'); + a3.innerHTML = titleAbout; + a3.href="javascript:openX('"+titleAbout+"','about.php');"; + li3.appendChild(a3); + ul.appendChild(li3); + + ul.id = "context"; + ul.style.display = "block"; + document.body.appendChild(ul); + createPos(ul, x, y); + +} + +var hitTop; +var hitLeft; +function openShort(title, url, top, left) +{ + hitTop = top; + hitLeft = left; + //openX(title,url); + if(document.getElementById('context')) + { + document.getElementById('context').style.display = "none"; + } + + if(document.getElementById('launchmenu')) + { + document.getElementById('launchmenu').style.display = "none"; + } + + xDT.addWindow('short', title, 320, 200, 'center', 'IDOTS2'); + xDT.url('short', url); + xDT.show('short'); + correctPNG(); + +} + + +function remShort(id) +{ + mObj = document.getElementById(id); + if (mObj.tagName == "SPAN") + { + id = mObj.parentNode.id; + } + + strXmlRemUrl2 = strXmlRemUrl + "?id="; + strXmlRemUrl2 = strXmlRemUrl2 + id; + if (window.XMLHttpRequest) + { + req = new XMLHttpRequest(); + req.open("GET", strXmlRemUrl2, true); + req.send(null); + + } + else + { + if (window.ActiveXObject) + { + req = new ActiveXObject("Microsoft.XMLHTTP"); + if (req) + { + req.open("GET", strXmlRemUrl2, true); + req.send(); + } + } + } + shortcut = document.getElementById(id); + shortcut.parentNode.removeChild(shortcut); + con = document.getElementById("context"); + con.parentNode.removeChild(con); +} + +function mouseDrag(e) +{ + + if (!e) var e = window.event; + var source = (e.target) ? e.target : e.srcElement; + if(source.tagName == "SPAN" || source.tagName == "span") + { + source = source.parentNode; + } + + if(mocuob == source) + { + if( e.clientY > ((source.clientHeight / 2) + 5) && e.clientY < getWindowHeight()-((source.clientHeight / 2)+35) ) + { + source.style.top = e.clientY - (source.clientHeight / 2) + "px"; + } + if(e.clientX > ((source.clientWidth /2) + 5) && e.clientX < getWindowWidth()- (source.clientWidth /2)) + { + source.style.left = e.clientX - (source.clientWidth /2) + "px"; + } + LastClick = 0; + } +} + + +function mouseUp(id,e) +{ + mObj = document.getElementById(id); + y = e.clientY + mObj.clientHeight; + x = e.clientX + mObj.clientWidth; + y2 = findPosY(mObj); + x2 = findPosX(mObj); + mObj.onmousemove = ""; + strXmlUrl2 = strXmlUrl + "?id="; + strXmlUrl2 = strXmlUrl2 + id; + strXmlUrl2 = strXmlUrl2 + "&top="; + strXmlUrl2 = strXmlUrl2 + y2; + strXmlUrl2 = strXmlUrl2 + "&left="; + strXmlUrl2 = strXmlUrl2 + x2; + createPos(mObj, x2,y2); + if (window.XMLHttpRequest) + { + req = new XMLHttpRequest(); + req.open("GET", strXmlUrl2, true); + req.send(null); + // req.onreadystatechange = test9; + } + else + { + if (window.ActiveXObject) + { + req = new ActiveXObject("Microsoft.XMLHTTP"); + if (req) + { + req.open("GET", strXmlUrl2, true); + req.send(); + } + } + } +} + + + +document.oncontextmenu = function(e) +{ + if (!e) var e = window.event; + var source = (e.target) ? e.target : e.srcElement; + if(source.nodeName =="SPAN"|| source.nodeName == "span") + { + source = source.parentNode; + } + if(document.getElementById('context') && source.className !="shortcut") + { + ul.style.display = "none"; + } + if(source.id != "launch") + { + document.getElementById('launchmenu').style.display = "none"; + } + if (source.className != "shortcut" && source.parentNode.className != "shortcut") + { + createContext(true, addShorcutUrl,e.clientX,e.clientY); + } + e.cancelBubble = true; + if(e.stopPropagation) + { + e.stopPropagation(); + } + return false; + +} diff --git a/phpgwapi/templates/idots2/js/x-desktop/x-desktop_core.js b/phpgwapi/templates/idots2/js/x-desktop/x-desktop_core.js new file mode 100755 index 0000000000..633dfab49a --- /dev/null +++ b/phpgwapi/templates/idots2/js/x-desktop/x-desktop_core.js @@ -0,0 +1,886 @@ +/*============================================================== + x-desktop_core.js - release 1 $ + x-Desktop CrossBrowserDesktop Library from www.x-desktop.org + Copyright (c) 2003-2004 Tobias Schulze (webmaster@x-desktop.org) & Lars Gehrmann + Distributed under the terms of the GNU GPL from gnu.org + see attached license.html or visit http://www.x-desktop.org +================================================================*/ +/* ============ */ +/* Enumerations */ +/* ============ */ +function xDesktopVariables() { + var xDTwList = new Array(); + var xDTwName = new Array(); + var xDTTaskbars = new Array(); + var xDTSkins = new Array(new Array("DEFAULT")); + var xDTmain = ""; var maxwin = 0; var xDTsyswin = 15; + var xDTdragZ = 0; + var xDTnoevent = false; + this.lastWindow = function _lastWindow(mwin) {if (mwin) maxwin = mwin; return maxwin } + this.setWindowHandle = _setWindowHandle; this.wHandle = _wHandle; this.wName = _wName; this.setStartup = _setStartup; this.Startup = _Startup; + this.wLength = function _wLength() { return xDTwList.length } + this.window = function _window(windowName) {if (xDTwName[windowName] != null) return xDTwList[xDTwName[windowName]]["cbe"]; else return null } + this.windowalert = function _windowalert(windowName) {if (xDTwName[windowName] != null) return xDTwList[xDTwName[windowName]]["cbe"]; else {alert("Unknown window: " + windowName + " !"); return xDTwList[xDTsyswin-1]["cbe"] } } + this.windowalert2 = function _windowalert(windowName) {if (xDTwName[windowName] != null) return xDTwList[xDTwName[windowName]]["innercbe"]; else {alert("Unknown innercbe: " + windowName + " !");return xDTwList[xDTsyswin-1]["innercbe"] } } + this.property = _property; this.newWindow = _newWindow; this.getWindowIndex = _getWindowIndex; this.getAllWindows = _getAllWindows; + this.getAllUserWindows = _getAllUserWindows; this.getAllWindowProperties = _getAllWindowProperties; this.deleteWindowProperties = _deleteWindowProperties; + this.xDTTaskbar = function _taskbars(wSkin) { xDTTaskbars[wSkin](); } + this.xDTdrag = function _xDTdrag() {++xDTdragZ; return xDTdragZ } + this.addSkin = _addSkin; this.skin = _skin; this.noevent = _noevent; + this.marginTop = function _marginTop(sk) {return xDTSkins[sk]["mTop"] } + this.marginBottom = function _marginBottom(sk) {return xDTSkins[sk]["mBottom"] } + this.syswin = xDTsyswin; + function _noevent(ev) {if (ev == true || ev == false) xDTnoevent = ev; return xDTnoevent } + function _deleteWindowProperties(idx) { + if (idx < xDTsyswin) return; + var tmp = xDTwList[idx]["cbe"]; // save cbe window handle; + xDTwName[xDTwList[idx]["wName"]] = null; // delete windowName + _setWindowHandle(idx); // initialize + xDTwList[idx]["cbe"] = tmp; // restore previous cbe window handle + } + function _setWindowHandle(idx) { + xDTwList[idx] = new Array("cbe","innercbe","wName","wTitle","wWidthOrg","wWidth","wHeightOrg","wHeight","wPos","wX","wY","wSkin","wIcon","wUrl","wScroll","wHtml","zIndex","wIndex","wStat","fClose","wVisible","fResize","fMove"); // create this window properties + var w = xDTwList[idx].join(',').split(","); + for (var i in w) xDTwList[idx][w[i]] = ""; + if (idx == 0) { xDTwList[idx]["wName"] = "dDesktop"; xDTwName["dDesktop"] = idx } + else if (idx == 1) { xDTwList[idx]["wName"] = "dTaskbar"; xDTwName["dTaskbar"] = idx } + else if (idx == 2) { xDTwList[idx]["wName"] = "dMove"; xDTwName["dMove"] = idx } // Move window (instead of real window....) + else if (idx == 3) { xDTwList[idx]["wName"] = "dMessage"; xDTwName["dMessage"] = idx } // System Message window + else if (idx == 4) { xDTwList[idx]["wName"] = "dSound"; xDTwName["dSound"] = idx } // System Sound window + else if (idx == 5) { xDTwList[idx]["wName"] = "dUser"; xDTwName["dUser"] = idx } // User Messages like alert etc... + else if (idx == 9) { xDTwList[idx]["wName"] = "dDummy"; xDTwName["dDummy"] = idx } // Dummy window + else if (idx == 10) { xDTwList[idx]["wName"] = "dCustom1"; xDTwName["dCustom1"] = idx } // dCustom1 + else if (idx == 11) { xDTwList[idx]["wName"] = "dCustom2"; xDTwName["dCustom2"] = idx } // dCustom2 + else if (idx == 12) { xDTwList[idx]["wName"] = "dCustom3"; xDTwName["dCustom3"] = idx } // dCustom3 + else if (idx == 13) { xDTwList[idx]["wName"] = "dCustom4"; xDTwName["dCustom4"] = idx } // dCustom4 + else if (idx == 14) { xDTwList[idx]["wName"] = "dCustom5"; xDTwName["dCustom5"] = idx } // dCustom5 + else xDTwList[idx]["wName"] = ""; + xDTwList[idx]["wIndex"] = idx; + } + function wName(idx) {if (idx < xDTwList.length) return xDTwList[idx]["wName"]; else return -1 } + function _wHandle(idx,param,val) {xDTwList[idx][param] = val; return val } + function _wName(idx) {if (idx < xDTwList.length) return xDTwList[idx]["wName"]; else return -1 } + function _setStartup(func) { xDTmain = func } + function _Startup() { xDTmain() } + function _getWindowIndex(windowName) { return xDTwName[windowName] } + function _property(windowName,wProp,wVal) { + if (xDTwName[windowName] == null) return xDTwName[windowName]; + if (wProp) { + if (wVal == 0 || (wVal && wVal != '') ) xDTwList[xDTwName[windowName]][wProp] = wVal; + return xDTwList[xDTwName[windowName]][wProp]; + } + return ""; + } + function _newWindow(windowName) { + //if (xDTwName[windowName]) {alert("Window " + windowName + " does exists already !"); return 0 } + if (xDTwName[windowName]) return "_WTHERE_"; //OK, window will be reused + for (var i=xDTsyswin;i<=maxwin;i++) { + if (xDTwList[i]["wName"] == "") { + if (windowName == "w") windowName += i; + xDTwList[i]["wName"] = windowName; + xDTwName[windowName] = i; + return windowName; + } + } + alert("Cannot create window " + windowName + ". Out of space. Increase maxwin !"); + return 0; + } + function _getAllWindows(sk) {var str = ""; for(var i in xDTwName) {if (sk) {if (xDTwName[i] < sk) continue };if (str != "") str += "/"; str += i; } return str; } + function _getAllUserWindows() {for(i=xDTsyswin;i<=maxwin;i++) {if (xDTwList[i]["wName"] != "") return xDTwList[i]["wName"] } return 0 } + function _getAllWindowProperties(windowName) { + if (xDTwName[windowName] != 0 && (xDTwName[windowName] == "" || xDTwName[windowName] == null) ) return ""; + return xDTwList[xDTwName[windowName]].join(","); + } + function _addSkin(wskin,mTop,mBottom) { + var _func = eval( "skin_" + wskin); + if ( typeof _func == "function") xDTSkins[wskin] = _func; + else alert("skin_" + wskin + " function missing or invalid / not loaded"); + + var skin_taskbar = eval("taskbar_" + wskin); + if ( typeof skin_taskbar != "function") { + skin_taskbar = eval( "taskbar_DEFAULT"); + } + xDTTaskbars[wskin] = skin_taskbar; + + (mTop && mTop >= 0) ? xDTSkins[wskin]["mTop"] = mTop : xDTSkins[wskin]["mTop"] = 0; + (mBottom && mBottom >= 0) ? xDTSkins[wskin]["mBottom"] = mBottom : xDTSkins[wskin]["mBottom"] = 0; + } + function _skin(wskin,wName) { + if (typeof xDTSkins[wskin] == "function") return xDTSkins[wskin](wName); + if (typeof eval("skin_" + wskin) == "function") {_addSkin(wskin,0,0); return xDTSkins[wskin](wName) } + alert("Skin " + wskin + " is not available ! Using skin_DEFAULT() instead ...."); + return xDTSkins["DEFAULT"](wName); + } + for (i=0;i2) { + addEventListener('dragStart',dStartListener,false); + addEventListener('drag',dListener,false); + addEventListener('dragEnd',dEndListener,false); + } + } + } +} +function windowOnunload() { + //xDTwin = null; +} +/* ========================*/ +/* The xDesktop Object */ +/* ========================*/ +function xDesktop(respath,sdt,maxwin,_fmain) { // resourcepath, startupdesktop,maximumwindows,startup function + var p_zIndex = 10; // z-index of window + var p_respath = './xDT/'; // (root) path for resources + var p_desktop = 'DEFAULT'; // default Desktop style + var p_tbBgColor = 'transparent'; // default Taskbar Background Color + var p_tbColor = '#000000'; // default Taskbar Foreground Color + var p_tbBoColor = '#000000'; // default Taskbar Border Color + var p_taskbar = false; var p_lastpopup = ""; // default number of window elements + var p_hidedesktop = false; // hide Desktop when moving windows + var p_language = ""; // default Language (none = english) + var p_version_major = "1.5 Development Release"; // Major Release + var p_version_minor = "0"; // Minor Release + var p_message = ""; // Message for alert/confirm etc.. and push button status + var p_cOK = ""; var p_cCancel = ""; // confirm OK/Cancel push button assigned functions + var p_caldate = ""; // calender date target field + var p_lastdt = ""; // last desktop skin + var p_sysmessage = ""; // current systemmessage + var p_scw = 0; // screen width (0 <=1024,1 <=1280,2 >1280) + var p_useautopopup = 0; // use autopopup + var p_autopop = 1; // do auto popup + var p_dateformat = 0; // dateformat 0=european , 1 = us + var p_data = new Array(); // data array for global use + var p_syswin = 15; // internal sys windows same as xDTsyswin + SetScreen(); + if (! maxwin || maxwin < 20 || maxwin > 500) maxwin = 50; + xDTwin.lastWindow(maxwin); // default number of window elements + if (typeof(respath) == 'string' && respath.length > 1) p_respath = respath; + if (typeof(sdt) == 'string' && sdt.length > 1) p_desktop = sdt; + var p_lError = new Array(0,""); var p_windowList = new Array(); var p_Debug = 1; var p_maxwin = maxwin; + this.lastError = _lastError; this.window = new _window; this.desktop = new _desktop; this.resPath = _respath; this.taskbar = _taskbar; this.sysMessage = _sysMessage; + this.maxWindow = _maxWindow; this.addWindow = _addWindow; this.deleteWindow = this.closeWindow = _closeWindow; this.moveWindow = _moveWindow; this.resizeWindow = _resizeWindow; + this.refreshWindow = _refreshWindow; this.positionWindow = _positionWindow; this.positionAllWindows = _positionAllWindows; this.popupWindow = _popupWindow; + this.innerWindows = _innerWindows; this.maximizeWindow = _maximizeWindow; this.minimizeWindow = _minimizeWindow; this.minimizeAllWindows = _minimizeAllWindows; this.deleteAllWindows = this.closeAllWindows = _closeAllWindows; + this.restoreAllWindows = _restoreAllWindows; this.arrangeAllWindows = _arrangeAllWindows; this.frameName = _frameName; this.show = _show; this.hide = _hide; + this.cbe = _cbe; this.prop = _property; this.url = _url; this.html = _html; this.taskbarColor = _taskbarColor; this.taskbarStatus = _taskbarStatus; this.version = _version; + this.addSkin = _addSkin; this.setSkin = _setSkin; this.dSkin =_dSkin; this.playSound = _playSound; this.hideDesktop = _hideDesktop; this.checkUpdate = _checkUpdate; + this.alert = _alert; this.confirm = _confirm; this.quit = _quit; this.language = _language; this.docs = _docs; this.home = _home; this.preloadImages = _preloadImages; + this.calendar = _calendar; this.autoPopupWindow = _autoPopupWindow; this.autoPopup = _autoPopup; this.dateFormat = _dateFormat; + this.wName = _wName; + //this.data = _data; + /*==================================*/ + /* -- Auto init stuff ------------- */ + /*==================================*/ + for (var i=0;i<=maxwin;i++) { + document.write('
'); + } + /*==================================*/ + /* -- Object Methods for public use */ + /*==================================*/ + function _dateFormat(df) { if (typeof(df) == 'undefined') return p_dateformat; else if (typeof(df) == 'string') df = parseInt(df); df ? p_dateformat = 1 : p_dateformat = 0; return p_dateformat } + function _minimizeWindow(wName) { if (wName) { _property(wName,"wStat","min"); _hide(wName); _taskbar() } } + function _language(lang) {if (lang && lang.length) p_language = lang; return p_language } + function _version() {var str = ""; p_version_major.match(/^([0-9.]+)\s+(.+)$/) ? str = RegExp.$1 + "." + p_version_minor + " (" + RegExp.$2 + ")" : str = p_version_major + " " + p_version_minor; return str } + function _hideDesktop(stat) { stat ? p_hidedesktop = true : p_hidedesktop = false; return p_hidedesktop } + function _show(wName) {if (! xDTwin.window(wName)) return; _property(wName,"wVisible",true); _cbe(wName).show(); return true} + function _hide(wName) {if (! xDTwin.window(wName)) return; _property(wName,"wVisible",false); _cbe(wName).hide(); return true} + function _popupWindow(wName) {if (_property(wName,"wIndex") < p_syswin) return; if (! xDTwin.window(wName) || wName == p_lastpopup) return wName; _cbe(wName).zIndex(xDTwin.xDTdrag()); _property(wName,"zIndex",_cbe(wName).zIndex()); _show(wName); _property(wName,"wStat","OK"); p_lastpopup = wName; return wName } + function _autoPopupWindow(wName) {if (p_useautopopup && p_autopop) _popupWindow(wName) } + function _autoPopup(onoff) {if (_autoPopup.arguments.length == 0) return p_useautopopup; (onoff) ? p_useautopopup = 1 : p_useautopopup = 0; return p_useautopopup } + function _frameName(wName) {if (! xDTwin.window(wName)) return ""; if (_property(wName,"wUrl") != "") return "xDTiF_" + wName; return "" } + function _taskbarStatus() {return p_taskbar } + function _taskbarColor(bg,c,b) {if (bg) p_tbBgColor = bg; if (c) p_tbColor = c; if (b) p_tbBoColor = b; _taskbar() } + function _closeWindow(wName,wC) {if (xDTwin.window(wName) && (DeleteWindowFunction(wName,wC) || wC == "KILL" )) {_hide(wName); if (typeof(_property(wName,"innercbe")) == "object") _property(wName,"innercbe").innerHtml(""); xDTwin.deleteWindowProperties(xDTwin.getWindowIndex(wName)); _taskbar() } } + function _addWindow(wName,wTitle,wWidth,wHeight,wPos,wSkin) { + p_zIndex++; + if (wName && !wName.match(/^[a-zA-Z][a-zA-Z0-9]+$/) ) {alert('Invalid window name: ' + wName); return 0 } + if (!wName) wName = "w"; + var wNsave = wName; + if (! wName.match(/^(dMessage|dUser|dSound|dCustom\d+)$/) ) wName = xDTwin.newWindow(wName); + if (wName == "_WTHERE_") {_property(wNsave,"wStat","OK"); _taskbar(wNsave); return wNsave } + if (!wName) return 0; + _cbe(wName).background('transparent'); + if (!wSkin) wSkin = _dSkin(); + _property(wName,"wSkin",wSkin); // default window style + SetScreen(); + wWidth = ChooseSize(wWidth); + wHeight = ChooseSize(wHeight); + (wWidth > 0 && wWidth <= 10000) ? wWidth = wWidth : wWidth = 300; + (wHeight > 0 && wHeight <= 10000) ? wHeight = wHeight : wHeight = 200; + _property(wName,"wWidth",wWidth); // default window width + _property(wName,"wHeight",wHeight); // default window height + _property(wName,"wWidthOrg",_property(wName,"wWidth")); // save Org width Value + _property(wName,"wHeightOrg",_property(wName,"wHeight")); // save Org height Values + _cbe(wName).resizeTo(wWidth,wHeight); + if (!wPos) wPos = "center"; + SetWindowPos(wName,wPos); // default window pos + if (!wTitle) wTitle = " "; + _property(wName,"wTitle",wTitle); // default Title + p_zIndex = xDTwin.xDTdrag(); + _property(wName,"zIndex",p_zIndex); + _setSkin(wName,wSkin); + _cbe(wName).zIndex(p_zIndex); + _taskbar(); + return wName; + } + function _resizeWindow(wName,wWidth,wHeight,wPos) { + if (! xDTwin.window(wName)) return; + SetScreen(); + wWidth = ChooseSize(wWidth); + wHeight = ChooseSize(wHeight); + if (wWidth > 0 && wWidth <= 10000) _property(wName,"wWidth",wWidth); + if (wHeight > 0 && wHeight <= 10000) _property(wName,"wHeight",wHeight); + _cbe(wName).resizeTo(_property(wName,"wWidth"),_property(wName,"wHeight")); + if (!wPos) wPos = _property(wName,"wPos"); + SetWindowPos(wName,wPos); + } + function _maximizeWindow(wName) { + if (_property(wName,"wIndex") < p_syswin) return; + var tb = 0; if (_taskbarStatus()) tb = _property("dTaskbar","wHeight") + 1; + if (_property(wName,"wStat") == "MAX") { + _cbe(wName).moveTo(_property(wName,"wX"),_property(wName,"wY")); + _cbe(wName).resizeTo(_property(wName,"wWidth"),_property(wName,"wHeight")); + _property(wName,"wStat","OK"); + return; + } + _property(wName,"wStat","MAX"); + _cbe(wName).moveTo(0,xDTwin.marginTop(_dSkin())); + _cbe(wName).resizeTo(document.cbe.width() - 1,document.cbe.height() - tb - xDTwin.marginBottom(_dSkin()) - xDTwin.marginTop(_dSkin()) - 1); + _cbe(wName).zIndex(xDTwin.xDTdrag()); + _property(wName,"zIndex",_cbe(wName).zIndex()); + } + function _positionWindow(wName) { + var wSkin = _dSkin(); + var wX = _property(wName,"wX"); // left + var wY = _property(wName,"wY"); // top + var mT = xDTwin.marginTop(wSkin); + var tb = 0; if (_taskbarStatus()) tb = _property("dTaskbar","wHeight") + 1; + var fB = document.cbe.height() - (_cbe(wName).height() + xDTwin.marginBottom(wSkin) + tb); + if (_cbe(wName).left() < 0) _cbe(wName).moveTo(0,_cbe(wName).top()); + if ( (_cbe(wName).left() + _cbe(wName).width()) > document.cbe.width()) _cbe(wName).moveTo(document.cbe.width() - _cbe(wName).width(),_cbe(wName).top()); + if ( wY <= mT) _cbe(wName).moveTo(wX,mT); if ( wY > fB ) _cbe(wName).moveTo(wX,fB); + if (_cbe(wName).left() < 0) _cbe(wName).moveTo(0,_cbe(wName).top()); + if ( (_cbe(wName).left() + _cbe(wName).width()) > document.cbe.width()) _cbe(wName).moveTo(document.cbe.width() - _cbe(wName).width(),_cbe(wName).top()); + _property(wName,"wX",_cbe(wName).left()); _property(wName,"wY",_cbe(wName).top()); + } + function _positionAllWindows() { + if (xDTwin.getAllWindows(p_syswin) != 0) { + var uw = xDTwin.getAllWindows(p_syswin).split('/'); + for (var w in uw) _positionWindow(uw[w]); + _positionWindow("dMessage"); + _positionWindow("dUser"); + } + } + function _innerWindows(wName,stat) { + if (xDTwin.getAllWindows(p_syswin) != 0) { + var uw = xDTwin.getAllWindows(p_syswin).split('/'); + if (uw) uw.push("dMessage"); + if (stat == "hide" && p_hidedesktop) _hide("dDesktop"); + else if (stat == "show" && p_hidedesktop) _show("dDesktop"); + for (var w in uw) { + if (uw[w] == wName) continue; + if (_property(uw[w],"innercbe")) { + if (stat == "hide") _property(uw[w],"innercbe").hide(); + else if (stat == "show") _property(uw[w],"innercbe").show(); + } + } + } + } + function _setSkin(wName,wSkin) { + _cbe(wName).innerHtml( xDTwin.skin(wSkin,wName) ); + var ele = ""; + if (ele = document.getElementById(wName + 'iTD')) { + var cbe = new CrossBrowserElement(); + cbeBindElement(cbe,ele); + document.cbe.appendNode(cbe); + _property(wName,"innercbe",cbe); + } + } + function _url(wName,wUrl,wScroll) { + if (! xDTwin.property(wName,"wName") ) {alert("Unknown window name: " + wName + " !"); return } + if (wUrl) xDTwin.property(wName,"wUrl",wUrl); + wUrl = xDTwin.property(wName,"wUrl",wUrl); // maybe some existing url + if (wScroll == 'no' || wScroll == 0 || wScroll == false) wScroll = 'no'; else wScroll = 'auto'; + xDTwin.property(wName,"wScroll",wScroll); /*allowtransparency="true" style="background-color: transparent"*/ + _property(wName,"innercbe").innerHtml('