From 0c076853f3469ed567bd70d2a45e0c97ac1cf2bc Mon Sep 17 00:00:00 2001 From: Andre Lorbach Date: Fri, 22 Feb 2008 14:43:33 +0100 Subject: [PATCH] Added initial collection of files for Version 2 of PhpLogCon. This is a total rewrite, and still lots of code is missing. --- classes/class_template.php | 226 +++++ css/defaults.css | 8 + images/bars/balken_25/balken.ufo | Bin 0 -> 29184 bytes images/bars/bar-middle/green_left_17.png | Bin 0 -> 343 bytes images/bars/bar-middle/green_middle_17.png | Bin 0 -> 150 bytes images/bars/bar-middle/green_right_17.png | Bin 0 -> 353 bytes images/bars/bar-small/blue_left_9.png | Bin 0 -> 184 bytes images/bars/bar-small/blue_middle_9.png | Bin 0 -> 121 bytes images/bars/bar-small/blue_right_9.png | Bin 0 -> 186 bytes images/bars/bar-small/green_left_9.png | Bin 0 -> 183 bytes images/bars/bar-small/green_middle_9.png | Bin 0 -> 121 bytes images/bars/bar-small/green_right_9.png | Bin 0 -> 187 bytes images/bars/bar-small/red_left_17.png | Bin 0 -> 251 bytes images/bars/bar-small/red_left_9.png | Bin 0 -> 183 bytes images/bars/bar-small/red_middle_9.png | Bin 0 -> 122 bytes images/bars/bar-small/red_right_9.png | Bin 0 -> 189 bytes images/bars/bar-small/yellow_left_9.png | Bin 0 -> 193 bytes images/bars/bar-small/yellow_middle_9.png | Bin 0 -> 124 bytes images/bars/bar-small/yellow_right_9.png | Bin 0 -> 203 bytes images/bg_bottom.gif | Bin 0 -> 117 bytes images/icons/Thumbs.db | Bin 0 -> 36352 bytes images/icons/add.png | Bin 0 -> 899 bytes images/icons/alarmclock.png | Bin 0 -> 1009 bytes images/icons/arrow_right_blue.png | Bin 0 -> 707 bytes images/icons/arrow_right_green.png | Bin 0 -> 702 bytes images/icons/businessman_preferences.png | Bin 0 -> 882 bytes images/icons/businessmen.png | Bin 0 -> 875 bytes images/icons/check.png | Bin 0 -> 922 bytes images/icons/date-time.png | Bin 0 -> 915 bytes images/icons/delete.png | Bin 0 -> 947 bytes images/icons/download.png | Bin 0 -> 914 bytes images/icons/edit.png | Bin 0 -> 928 bytes images/icons/exit.png | Bin 0 -> 834 bytes images/icons/folder.png | Bin 0 -> 795 bytes images/icons/folder_closed.png | Bin 0 -> 763 bytes images/icons/garbage_empty.png | Bin 0 -> 956 bytes images/icons/gears_run.png | Bin 0 -> 1005 bytes images/icons/home.png | Bin 0 -> 883 bytes images/icons/line-chart.png | Bin 0 -> 934 bytes images/icons/link.png | Bin 0 -> 847 bytes images/icons/preferences.png | Bin 0 -> 840 bytes images/icons/recycle.png | Bin 0 -> 955 bytes images/icons/redo.png | Bin 0 -> 895 bytes images/icons/selection.png | Bin 0 -> 376 bytes images/icons/selection_delete.png | Bin 0 -> 807 bytes images/icons/server.png | Bin 0 -> 891 bytes images/icons/star_blue.png | Bin 0 -> 877 bytes images/icons/star_green.png | Bin 0 -> 890 bytes images/icons/star_grey.png | Bin 0 -> 877 bytes images/icons/star_red.png | Bin 0 -> 877 bytes images/icons/star_yellow.png | Bin 0 -> 877 bytes images/icons/view.png | Bin 0 -> 844 bytes images/main/Header-Logo.png | Bin 0 -> 64582 bytes include/functions_common.php | 551 ++++++++++++ include/functions_constants.php | 84 ++ include/functions_db.php | 311 +++++++ include/functions_frontendhelpers.php | 80 ++ include/functions_themes.php | 107 +++ index.php | 65 ++ js/admin-menuoptionen.js | 31 + js/common.js | 45 + js/menu_dom.js | 984 +++++++++++++++++++++ js/menu_misc.js | 285 ++++++ js/menu_ns4.js | 678 ++++++++++++++ lang/de/main.php | 12 + lang/en/main.php | 21 + templates/include_footer.html | 36 + templates/include_header.html | 83 ++ templates/include_index_globals.html | 32 + templates/include_menu.html | 12 + templates/index.html | 66 ++ themes/dark/images/bg_bottom.gif | Bin 0 -> 141 bytes themes/dark/images/dither.png | Bin 0 -> 193 bytes themes/dark/main.css | 351 ++++++++ themes/default/images/bg_bottom.gif | Bin 0 -> 117 bytes themes/default/images/dither.png | Bin 0 -> 184 bytes themes/default/main.css | 383 ++++++++ userchange.php | 52 ++ 78 files changed, 4503 insertions(+) create mode 100644 classes/class_template.php create mode 100644 css/defaults.css create mode 100644 images/bars/balken_25/balken.ufo create mode 100644 images/bars/bar-middle/green_left_17.png create mode 100644 images/bars/bar-middle/green_middle_17.png create mode 100644 images/bars/bar-middle/green_right_17.png create mode 100644 images/bars/bar-small/blue_left_9.png create mode 100644 images/bars/bar-small/blue_middle_9.png create mode 100644 images/bars/bar-small/blue_right_9.png create mode 100644 images/bars/bar-small/green_left_9.png create mode 100644 images/bars/bar-small/green_middle_9.png create mode 100644 images/bars/bar-small/green_right_9.png create mode 100644 images/bars/bar-small/red_left_17.png create mode 100644 images/bars/bar-small/red_left_9.png create mode 100644 images/bars/bar-small/red_middle_9.png create mode 100644 images/bars/bar-small/red_right_9.png create mode 100644 images/bars/bar-small/yellow_left_9.png create mode 100644 images/bars/bar-small/yellow_middle_9.png create mode 100644 images/bars/bar-small/yellow_right_9.png create mode 100644 images/bg_bottom.gif create mode 100644 images/icons/Thumbs.db create mode 100644 images/icons/add.png create mode 100644 images/icons/alarmclock.png create mode 100644 images/icons/arrow_right_blue.png create mode 100644 images/icons/arrow_right_green.png create mode 100644 images/icons/businessman_preferences.png create mode 100644 images/icons/businessmen.png create mode 100644 images/icons/check.png create mode 100644 images/icons/date-time.png create mode 100644 images/icons/delete.png create mode 100644 images/icons/download.png create mode 100644 images/icons/edit.png create mode 100644 images/icons/exit.png create mode 100644 images/icons/folder.png create mode 100644 images/icons/folder_closed.png create mode 100644 images/icons/garbage_empty.png create mode 100644 images/icons/gears_run.png create mode 100644 images/icons/home.png create mode 100644 images/icons/line-chart.png create mode 100644 images/icons/link.png create mode 100644 images/icons/preferences.png create mode 100644 images/icons/recycle.png create mode 100644 images/icons/redo.png create mode 100644 images/icons/selection.png create mode 100644 images/icons/selection_delete.png create mode 100644 images/icons/server.png create mode 100644 images/icons/star_blue.png create mode 100644 images/icons/star_green.png create mode 100644 images/icons/star_grey.png create mode 100644 images/icons/star_red.png create mode 100644 images/icons/star_yellow.png create mode 100644 images/icons/view.png create mode 100644 images/main/Header-Logo.png create mode 100644 include/functions_common.php create mode 100644 include/functions_constants.php create mode 100644 include/functions_db.php create mode 100644 include/functions_frontendhelpers.php create mode 100644 include/functions_themes.php create mode 100644 index.php create mode 100644 js/admin-menuoptionen.js create mode 100644 js/common.js create mode 100644 js/menu_dom.js create mode 100644 js/menu_misc.js create mode 100644 js/menu_ns4.js create mode 100644 lang/de/main.php create mode 100644 lang/en/main.php create mode 100644 templates/include_footer.html create mode 100644 templates/include_header.html create mode 100644 templates/include_index_globals.html create mode 100644 templates/include_menu.html create mode 100644 templates/index.html create mode 100644 themes/dark/images/bg_bottom.gif create mode 100644 themes/dark/images/dither.png create mode 100644 themes/dark/main.css create mode 100644 themes/default/images/bg_bottom.gif create mode 100644 themes/default/images/dither.png create mode 100644 themes/default/main.css create mode 100644 userchange.php diff --git a/classes/class_template.php b/classes/class_template.php new file mode 100644 index 0000000..03ef1c5 --- /dev/null +++ b/classes/class_template.php @@ -0,0 +1,226 @@ + www.phplogcon.org <- * + * * + * Use this script at your own risk! * + * ----------------------------------------------------------------- * + * * + * Template Class 1.02 * + * * + * Release Date: 26.08.2001 * + * Author: Philipp von Criegern (philipp@criegern.de) * + * * + * This is Open Source Software. Published 'as is' without * + * any warranty. * + * Feel free to use or edit it. Any comments are welcome! * + * * + * Modify Date: 2006-01-20 * + * by Andre Lorbach * + * * + * All directives are explained within this file * + ********************************************************************* +*/ + +// --- Avoid directly accessing this file! +if ( !defined('IN_PHPLOGCON') ) +{ + die('Hacking attempt'); + exit; +} +// --- + + class Template { + + var $path = ''; + var $filename = ''; + var $extension = ''; + var $template, $vars, $page; + + function Template ($fname = '') { + if ($fname) + $this->filename = $fname; + } + + function set_path ($path) { + $this->path = $path; + } + + function set_extension ($ext) { + $this->extension = $ext; + } + + function set_templatefile ($fname) { + $this->filename = $fname; + } + + function set_template ($template) { + $this->template = $template; + } + + function set_values ($vars) { + $this->vars = $vars; + } + + function add_value ($name, $value) { + $this->vars[$name] = $value; + } + + function add_array ($name, $values) { + if (is_array($values)) + $this->vars[$name][] = $values; + } + + function add_list ($name, $values) { + if (is_array($values)) + foreach ($values as $value) + $this->vars[$name][] = array($name => $value); + } + + function parser ($vars = '', $filename = '') + { +// BEGIN DELTA MOD + global $CFG; + // For ShowPageRenderStats + if ( $CFG['ShowPageRenderStats'] == 1 ) + FinishPageRenderStats( $vars ); +// END DELTA MOD + + if ($filename) + $this->filename = $filename; + if ($vars) + $this->vars = $vars; + if (!isset($this->template)) { + $fname = $this->path . $this->filename . $this->extension; + $this->template = load_file($fname); + } + $this->page = template_parser( $this->template, $this->vars, $this->path, $this->extension ); + + } + + function result () { + return $this->page; + } + + function output () { + echo $this->page; + } + + function create_file ($fname) { + if ($datafile = @fopen($fname, 'w')) { + fputs($datafile, $this->page); + fclose($datafile); + return true; + } else { + return false; + } + } + + } + + function load_file($fname) + { + if (@is_file($fname)) + return join('', file($fname)); + else + { +// BEGIN DELTA MOD + DieWithErrorMsg( "Could not find the template ".$fname.""); +// END DELTA MOD + } + } + + function template_parser($template, $values, $path = '', $ext = '') + { + while (preg_match("", $template, $matches)) + $template = str_replace( "", load_file( $path . $matches[1] . $ext), $template ); + + $template = template_parser_sub($template, $values); + $template = str_replace("\t", " ", $template); + $template = preg_replace("/ +/", " ", $template); + return $template; + } + + function template_parser_sub($template, $values) + { + if (is_array($values)) + { + foreach ($values as $k => $v) + { + if (is_array($v)) + { + $len = strlen($k); + $lp = strpos($template, ""); + if (is_int($lp)) + { + if ($rp = strpos($template, "")) + { + $page = substr($template, 0, $lp); + $iter = substr($template, $lp + 15 + $len, $rp - $lp - $len - 15); + $rowcnt = 0; + $zaehler = 1; + foreach ($v as $subval) + { + $subval['COUNTER'] = $rowcnt%2; + $subval['ODDROW'] = $rowcnt%2; + $subval['ROWCNT'] = $rowcnt++; + $subval['ZAEHLER'] = $zaehler++; + $page .= template_parser_sub($iter, $subval); + } + $template = $page . substr($template, $rp + 13 + $len); + } + } + } + else + { + $template = str_replace('{'.$k.'}', "$v", $template); + } + } + } + + + if (preg_match_all("", $template, $matches)) + { + foreach ($matches[1] as $block) + { + if (isset($values[$block])) + { + $template = str_replace("", "", $template); + $template = str_replace("", "", $template); + } + else if ($blockend = strpos($template, "")) { + $blockbeg = strpos($template, ""); + $template = substr($template, 0, $blockbeg) . substr($template, $blockend + 13 + strlen($block)); + } + } + } +// else + + if (preg_match_all( '', $template, $matches, PREG_SET_ORDER) ) + { +// echo $matches[0][0]; +// exit; + + foreach ($matches as $block) { + $blockname = $block[1]; + $not = $block[2]; + $blockvalue = $block[3]; + if ((@$values[$blockname] == $blockvalue && !$not) || (@$values[$blockname] != $blockvalue && $not)) + { + $template = str_replace( "", "", $template ); + $template = str_replace( "", "", $template ); + } + else if ($blockend = strpos( $template, "")) + { + $blockbeg = strpos($template, ""); + $template = substr($template, 0, $blockbeg) . substr($template, $blockend + 18 + strlen($blockname) + strlen($blockvalue) + strlen($not)); + } + } + } + + + + return $template; + } +?> \ No newline at end of file diff --git a/css/defaults.css b/css/defaults.css new file mode 100644 index 0000000..e3c6f2e --- /dev/null +++ b/css/defaults.css @@ -0,0 +1,8 @@ + +/* Generic Style defintions */ +#FilterOptions +{ + visibility: hidden; + position: relative; + display: none; +} \ No newline at end of file diff --git a/images/bars/balken_25/balken.ufo b/images/bars/balken_25/balken.ufo new file mode 100644 index 0000000000000000000000000000000000000000..daf5caf6c8c46982053a5d4e9addf9ded00fb37d GIT binary patch literal 29184 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 literal 0 HcmV?d00001 diff --git a/images/bars/bar-middle/green_middle_17.png b/images/bars/bar-middle/green_middle_17.png new file mode 100644 index 0000000000000000000000000000000000000000..bd6128ecfbcf244a16270876018f40ce8ab842d1 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^>_9BY!3HAlZVLrcoCO|{#S9GGLLkg|>2BR0prD7R zi(^Q|oTVoXd0PS)4qUKucz5yuyViz=rrCMQiOGr!HD09eFv-`7k>O#rx#Uh%nrkkaX+_`{mnnPBAkEpO5PM6Pg1wlfl!~&t;ucLK6V$N-;kG literal 0 HcmV?d00001 diff --git a/images/bars/bar-middle/green_right_17.png b/images/bars/bar-middle/green_right_17.png new file mode 100644 index 0000000000000000000000000000000000000000..34f1199b87a74d377368b7b1b6eb7c101593794f GIT binary patch literal 353 zcmV-n0iOPeP)2BR0pkS7# zi(^Q|oY1q1T!#u6T0h2r;kuWY_@Gp*yxso9E(u+;{KU@E{5;v@qY^v)L+Afeu6djH9JYOt-;>Dk{6SP2BR0pkR)t zi(^Q|9McmEIhhz`+&;>0?|i@ze&<-i4%vTa8FQMHC0KbMF*HT=hzaueDJV(UH$q36dEaP>dMNiTQSenuaYQ>;>4*NG23C7pZUy$n frG;Gfv$o%&sK4#Zjw{hXdl@`k{an^LB{Ts5D9k@g literal 0 HcmV?d00001 diff --git a/images/bars/bar-small/green_left_9.png b/images/bars/bar-small/green_left_9.png new file mode 100644 index 0000000000000000000000000000000000000000..9e10223e5f46122b06caf2cd35e95b21f7a3a064 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c3!3HEn^LrP7I0YV&#S9GGLLkg|>2BR0pkSt_ zi(^Q|9N)8wT!#u6T0h2r;ktLw;Dc57?!)rOc1h@NyL%{2nCF?|y@N{5J)d}rHR3Dp zYtLVm7gFl1bEIlon2l?PQhi6@5^wSMFMk+v^}ny^oLx{>DB5hnp{~7m_ud;PrreFx d+Sc`$eb*za8F>bbn}C)wc)I$ztaD0e0ste6LP7ul literal 0 HcmV?d00001 diff --git a/images/bars/bar-small/green_middle_9.png b/images/bars/bar-small/green_middle_9.png new file mode 100644 index 0000000000000000000000000000000000000000..3da6d8d3bd6e514f0225894a8df6a5930e232846 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrE!3HEhySY69aSA*liy0WWg+Q3`(%rg0KtXL! z7srr_Il4y-84oBh9N1vtEXEbk!r*h}sLGocaz!mXm);7muQ(#+?em;HR*OGw(u5zz PKy3`3u6{1-oD!M2BR0pkS`2 zi(^Q|9NQBMIhhg}+8(ywb}4Ak&MQ9n;r$15_6?kU1%Ve7_!K&hW(Xd9z@pUj(YQh? zuA-t+a(nE@?(I7)ZqKec9(?D>t;2^pc3X5#T`?`@XxJIo(gzw~z*E%b6uWMF-8o;||k!NNy$=g4;;mjS3lcIr6eqpyP^m}b*$q6Ik6jxD5|{Hz@+r%d7MOGy zyieFKpLo^rQTKPFe<$=m9=oglQ_cQKbH$S=E!NEgV*Jq=<(t9 ylbEx~N_{%(>t#j9z8U(r=dPK3ig9o4vH!K&of(!B)o%kG&fw|l=d#Wzp$P!v=ViA5 literal 0 HcmV?d00001 diff --git a/images/bars/bar-small/red_left_9.png b/images/bars/bar-small/red_left_9.png new file mode 100644 index 0000000000000000000000000000000000000000..b58d68328b7622e1f7d323371b347f829b90538a GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c3!3HEn^LrP7I0YV&#S9GGLLkg|>2BR0pkSt_ zi(^Q|9NUwMTugxst`~*xHdPzc6j%%Ym$N%jVi=XPnR~Xc!3@_s&8}>Qr#7FFkh@bo z|5E7E)rXYUq~B~Q@3`Rfj5FEem)(8MKldkA_2BR0pkThI zi(^Q|9M=;YIS)BVI6UmnQL;E-npfO<^liah<{O-S6O0zLS~Mt_O*2!9NMRB@_-VU` z%F*WU^Y}kc>9*f@WbW-w*Hf+LA63fsn4S4@Wa^8KQ`ed;1YRf3iR~!sSRu3ZNS2iA j+@$!-o=s~^G{x<2C+lz1-}hq)&}s%xS3j3^P62BR0pkT45 zi(^Q|9NSJqu4V@YmgQ%}Kedan|LlAE_o2d)=~K+g{vFbrn=mozi2ag@$`Pj`WR^+X zxTzR2F~D_7caiCq3fy()(0$|MbW8mddZAj%|CmN#XH{^m&D|HoTvh_~2S; p&26#QQk2BR0pkS@1 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 Z{sTHZE)<@5Hy{82002ovPDHLkV1nnJh=~9I literal 0 HcmV?d00001 diff --git a/images/icons/alarmclock.png b/images/icons/alarmclock.png new file mode 100644 index 0000000000000000000000000000000000000000..8838d4f9ff78a10b6a58fa48fb99b05f92c4e6a9 GIT binary patch literal 1009 zcmVWdKcSATl%{L}hv)GB7YRATc;PF*Z6dI3O!9F)%Pc&0Hk_000McNliru z)CUI$8z}f3BIp1B010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00T)$ zL_t(|+D%hwNK{c2{^q?IN1be%(J5!LEQ?W#7FrD=BT}i1QY^3y%A}I&Pen!0`l~2{ zpnVw$+qH$lB0)JLyPv4I&eB67_J?A^;eD_{}24jqSRQ-CE z%YswRMD4}v!0HnZo@73)Z}6I;KP^eKM(R>_@Rg>2) zxeL<>;AaQ$r3G!zyWukdf!Q-8oj(ZqRU@wxfcQB^#2W_SXpkB<^K7xtn;)q&%R;;}1b;|kcVJl-6=iDL(L zqq@X_^4dB@A8=aWL;VNT+<1(EF~bmdXqP4xpoTzYqo0e2HD|%yiRK;+V$+vm6luF| z??DtS%fhWY4{_UZ3tJXU1?&C}DG2!Tc3`a@$qKh3qLyc}4PBjZkF>*T2E0^qw9SJ3 z=Nu5)KjO)QGF+*s#rXMY_~Qk_BNH_f3>b^hV29D1e<0*WZx8gMfDmQ(P!>-gDU_Lm z$`_TGXivttd1>%^NJ!FRc;9dI@f1#467<@3PoN^vENroTeuejn+F^jF4s{V49DY;@ zfhy`H!T{L}7Qp5#XD9!lm0alrGM^x!Jw=u`#EH|hA`I-CJnw)@N`**IKWDMS#zyy zP5s|eigeRa4dJVzWO%a=rAIUJ4pd#e4$s!?5Vts;iEmusiNXBIC0cf_7rRr8!IGKl zQD-#zlov?&ObBX+z5{y4rKT2rdFO216XvT-FRO*zn(5|fO0Hb^eHmTdJTDgL_(dyo za#Bi)i%ZGuS7L{L)X*43Sg5Moq`qJqVHiPCy;Dt=q^|1-J^vHv39;(>uR2E&bShau fB^aUZ6`$}w#>rcYpV>E@00000NkvXXu0mjfW=g)b literal 0 HcmV?d00001 diff --git a/images/icons/arrow_right_blue.png b/images/icons/arrow_right_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..da33a03973d9d8a984f746730744c2c68375dfa8 GIT binary patch literal 707 zcmV;!0zCbRP)WdKcYATc)}MrC3kGB7YRATc;PF*rIkFd!>1F)%P2jj;m&000McNliru z)CUI$8!Z2E=J5ak010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00J9H zL_t(|+MSZ!OH*+e$G_*CZSAGKFeC&~h|P=Tgb1vzyvc4Q5W;Q}y0EK+DCnl!`VagE zx(XzflDx@P5~1zF)a-?b8g7kk&Ar>s&daawnJskWj2`$Le$VfBz7NkE(8-2{onNWb zFLI|xdpQ0YgHvH1U55qg7$Dl`?+=e$d4bT_Fx}%vWh1pSaC@aZ9T(!%oz()Olb3lH zXb;kKTw_m*y?p_{LeFkjV7JMTWC`a6dJyXILx%&8V()9K3lDE1et(vd0x>PE&H6Z< zaE@N+M=Gx&;8fso%5X7|%ON9MYCsn{#xF)ZUiZZGGheqKOH&Uh%M(LsHY+lISMddH zo7=m{RdwXbIx;l_KZt4o3bQdxW)$sKbj=+3<{dJ{r-dy_e_BnH1caF>Hz1gmVHnVa z2~!u)brYHxSG-zF zs#~-7X0W|nZpwc5K-BUTRWml-b*5TjQ8s07zFw~zr_Y~7CHn<$HqzC^%&mD8K4$r} zOg@m^)<}BEC32D|t?2}>E=~*$27PbWQ#+Zt8;hu=lDv+QHL_zhu@&GLIYHd}N8EMo z`HEi4Rg3f2V^9kT-Yt<0Qamt5no5%Gn^h_`K5I`VAEQxZ8}X97BY)~Y+B_kvv{7>A pUsm~V<{(|xuKkbrz`7r1zW{_F(euAr$bSF;002ovPDHLkV1kn*EI$AM literal 0 HcmV?d00001 diff --git a/images/icons/arrow_right_green.png b/images/icons/arrow_right_green.png new file mode 100644 index 0000000000000000000000000000000000000000..0922176448190ed843d1254220c60dfe9c6eaf48 GIT binary patch literal 702 zcmV;v0zv(WP)WdKcYATc)}MrC3kGB7YRATc;PF*rIkFd!>1F)%P2jj;m&000McNliru z)CUI$8!Z2E=J5ak010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00I_C zL_t(|+MScjYZFlv#=p6Dk|t@>NlmbVl-gE`Zd62kEJ_zXKo>zbT^0oYfr85}N;fWC zxUt~Mg}4x^qJmmbi!Q1t^%)g4T6~P)RP!KBn&-^*o57SCG=U!YU1rWX_v4;(&jp&< zWB9mg%~C{Dfh4Zr82b4YXeIPd+jX-qyLV>ucMRhYf5WXrv_`gF?9W|SC)Lp1Eg2lf z2z`-85#3z|&PKDFx;GfM>ktx}u0c5pvCb%#tA3o=KO6~%0_SfTFUD{QSDBU}&WeC^ zWMJ&bahQb#wCO?UQil*klgN}Tl&U$5?Ay~GYWGiFjy^Fkg$vx4BDQn|jDx}P!ND&5 zI_}#_f?f$i2vydW;FAJU%0IZ;RCa7gpN9O`67D=r zl;=(_Oe2Au7p!-5<3u=Z7{M-^XVqMf5?(Z71QCyKN8wuqGxLf3vq|$BOe`{VpUjiR z`jzyMqomL6Dd$h23fX%mGCDf6yL0-{%k;Ym>o(hFGCoV5leF8!x<{907*qoM6N<$g4y*j7ytkO literal 0 HcmV?d00001 diff --git a/images/icons/businessman_preferences.png b/images/icons/businessman_preferences.png new file mode 100644 index 0000000000000000000000000000000000000000..57e987ddee1fff1af667d44779fa02a55263da68 GIT binary patch literal 882 zcmV-&1C9KNP)WdKBPATcx`PH%P~GB7YQATc&NG&4FdHXti7F)%RO1yJn(000McNliru z)CUI$90qHPx!?c*010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00PQM zL_t(|+I>@9NK;`Le$F|YoBMM%r)AFk$sn;L)WR}^MHfMIW71VWw?#KWA{1R0gp^Qr z(+^Qv(M2>Al2DO$F||z8{K>i0(PW$3+1%!S&UQ}UCr6XeK6uV~Iq&;D@B2RQdl+mv zUDwd0FyJ8z?1`*l$``<+)=s=5t|&nU+Z=Ag=)Z%@xfZ-O?Lv-10amL)fl-IEW*zw9 zIXFp3oIv`QK(T45a7C#EyW$6U9uR3L14f^XMq+&@7$S)5NFbzPoS6aYYMXKTTmx2v z9wb5@sK1VqDt{D{kcs~ic)bW%3M)`qQ%|bV!=$nRMgxp4r-rz*x3;@2fhG%|tc_MH zB0&agtE2~_nUKJeo2OY>>~J<6=iBjgdg8MUQ5PxH3&ebo0^?Fg&%9SIJ-x09eYDI^ zlb4Aq_m}zVa!uvW0n_{062LzOB-413x{(BvW3wP3T^%1D&*Sli-~#E9j@K1oT| z8F4Fiu|gMoVKJ#VNoU3bZ9l52EofgTKv^CKy;4f#X8b*EgQ+83lgU!#=+L_j++c}4zJ8{N3-eK2ss&zo_2AMmJnOXM-t&Ga{1fUog9}X`M*OA72m)NaeX^*c z0?|P8p;EKnA5P+6u>l{4!;lukqzw%$MghI!0&Zs_@WfdN0?VMU&5h{~9u+OYZp zU7Y|Cp+p+RyR}eo5_*IZtPt<1LN^ZY)50+o!oqSKM{{|RT&62#ml0xFNz4yM1&q3Q ztfoa2=4au8wHTAS3MAtZylg!IR+3PEAP?4@Z)tfVG`olHAD85PL(^aE0k?CG|K$lq zobGUH*%uP3iu6p#|63fhcXKg8Egd(EFsWp0*5Po_5jqG0kmsr*C?eQTuveb1mOw2p z8n-cjnvr0Rpj)nB(?J6_RyK>yTV67DOAO?{F-AZoO41L10OPM1uO$BwRsaA107*qo IM6N<$f|`SSF8}}l literal 0 HcmV?d00001 diff --git a/images/icons/businessmen.png b/images/icons/businessmen.png new file mode 100644 index 0000000000000000000000000000000000000000..77ba7f00bbe7ac72400fe26a5d66a7c7259cfda2 GIT binary patch literal 875 zcmV-x1C;!UP)WdKBPATcx`PH%P~GB7YQATc&NG&4FdHXti7F)%RO1yJn(000McNliru z)CUI$90qHPx!?c*010qNS#tmY3lRVS3lRZ-WM7d0000DMK}|sb0I`n?{9y$E00P5F zL_t(|+QpMwNK>>bGoygxvjO!>3?(+-+Ju8=l}on=X`&+|L+I< z?@yLKyuFJ07|<4qBDVMwz1Mp&N3Q=6L;{oAld0duw2qdRzMJUC%Edb^izc}e2N?#( z7d#mL#AYI}mgU~@DYbrZ=7A&!(~&n#c1p&;?U_<2wd^4Xf`&*g6P$$5h5@e+S&YgId-o%vA<=nfFyy>zJYr?sD((X+ ziZyt6uN+5j4PtP4Bm64D(w2c5R?}x|IZ+L6dNaGg0z7;~W-lsMU${{R$VsNZ;~2Q# zj*hN3-(SsolSY-l_*(;bE5ujx=aG=;zd8)0cd&E#DkMvk@$8-+EbdK)K z>62$|MMb4Vtd-KBcA7I9ebE>WR~zwuatRMs3SrEm(V%dlth^HO0FMR7YxvwVFzeJX z8Cb@epWjTxHiC+d?z>hy%_VH%SWHz_sFC$&)yP&5VxeK1+}z+_~} zD+=IwUT`{{^TdE#s$@2y0h!jlQ0nv$MFwH7SYV)K?Z-Ozmz3bd`-_ndS}w@ zoidLSV002ovPDHLkV1iMC Bgns}4 literal 0 HcmV?d00001 diff --git a/images/icons/check.png b/images/icons/check.png new file mode 100644 index 0000000000000000000000000000000000000000..3f3110a14ffd8bb80f1bc0c23f28072a988f018c GIT binary patch literal 922 zcmV;L17-Y)P)WdKHUATc!{PH%P~GB7YQATcmHFgQ9gIUp-AF)%RoqGHAX000McNliru z)CUI$92}PEK$-vm010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00Qz! zL_t(|+D%hkNRwd{e!g!%4z@XGYQ#uwZjnhsgQkx1Ux zRp^ZobYl^MBvED(LWXN-{?^oQqMQ43Tl@X~I`8LZZai%7%X!Xw&Uv20;rQnTtT;dq zZ{#~qTJ3IGlDN=8@{bx(rZA6J_=W&Qi3GJs;f~0oXsM8FW8D`!9Q9RaAS49@Qu~PJ zlGq3au)MyvFRq9W@EY$a`Y%CdG+mM0U~*1AYrA8Y_$0j1IrvioLYXk4*#vU*EwS?v%^5%1XxRIiCn8CP-TT%3j6T% z>~q|2=)?GxFG!|!m~8Q&w#=o?c!bFPvqMlMI;2YhMY}E|82NCFbmkNcZa+j^N}$f_ z!jEg)a9Z4l0{I5e|8e2hck+ zNJFJZ*{i`CQvU#0Cmn$JVM;H?R@a1}M2dPM%jovBASQ27*^hC1n#klkg}ojw2V$qF zh0Q3Ikf57wW+>)F18$;Af1V%FpXQBOS%TFFBr^rCG3=9K5eH>jmM{^2gB{ICeWIoR#Dk?^q=ZauSW49^^V9P;>-|!v5|5|vj9$@99Pjm zCUNkWU^7-jP)WdKueATl^0Q)O@1F)%P*-ELF>000McNliru z)CUI$95ka`=wJW<010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00Qet zL_t(|+I5p%NEA^N$N#fCJG-_YYN_A{ic}_6C|XH{WtKgZmJjw)22u1PMK1~wML{Hl z_^uB=M3fXlfl6THL+ct!X&<_Y#qO$zX*sqt`!PGSJGV2nN=RM!afi$K|IfMSp5gGH z)z&s3Fg@Iw>JrY`Qn>u@%ggh#bAcy=FMB$DKHmz3Xhxj*pW=H1g44kbRy7>HSW;7# znOU+!$SEz)NORh&1r7VBKEEH)G)<<^_&*J5Y8tK|sH?g-;^{+SK{g!ecEsYqru;kz zu;hyi0WJ{mO;c#l^p}oXBh_U&=gixT<8}48+H@X%-x6*$ox+!QlgO>8HcXFFTq)t= zD=YWd%F8QyS672}RgEn-H#Zjtd~%VJ03505xP1FQ9^SZu-G@%1VCOC{M(0jP4vDuB zqkLoI{XxHfGDj4L(k+&>Z}amjR!NHLL0LCPR1*q!m0|mdChV&{4YN))|I{F^h>Ik4 z5EhfmwPjC7$EB^cwFfun7p9ijQiQD;S!tHVaStL?g%k$%l9;E=99?+E{R|TyC*PAe zWV{5gC^6VhXHWjko@B1f?M6W@l$Ue)3LCk(e>|ffPm+6589{ zQ9586p|>@#__T*b=Vlo@o6D3jH&b=S+-|QiG`+-K;tWwlSdF|UU5~FnB}*>^oY@c_ z-+`W03{!tMRBGI?=POMCmWe@Pi0~6JL&GN$39POHq8Nu-(+-t(R^JI7CMXdN*5N5= zvN5?(k|v^&Yb_~Hl|v9fjpSivIucehc%B2tagcd4I5kQ^vGpQ1PAwmehJ#&QeRffl zLg8>IVjxL!BovaBNJNgQS}dk0!SL^f(d=(DF-A9!I877~dh#z*ll$7YQT_rkM*P@l pV01H+NJ+Zu|G~J2oUCGf{Q|i_SVecaG*bWo002ovPDHLkV1h1~g#`cr literal 0 HcmV?d00001 diff --git a/images/icons/delete.png b/images/icons/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc7f9b13b1c87d3ed6f55cca3be3e2840180abd GIT binary patch literal 947 zcmV;k15EshP)WdKHUATc!{PH%P~GB7YQATcmHFgQ9gIUp-AF)%RoqGHAX000McNliru z)CUI$95*^ux!M2#010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00Rq2 zL_t(|+D(()Z&P&`$3N$sp03+k3Up=Y!gz@gbwGlE8WS&!n1~rhmVkGfcm)?CH)c2d z0lL&)dx2T2IgA6-WA47un@m zOWyDZW=r^|u3!{%bj)T9<0-FSsdD!z%t!!7U(h+4=9*v-eenR{1v~)|y zb)-BAlGfQE&LP@$&sQ4OG*m07@kdnNIY_W7Ew8!D<9Si+Iy>Se2(p|XIQo?`N|la%`hP|+4xn5)l8+br2$8bf<`50$DUDgh>3vP~N3xl-+~+GGLE zwsBtFi63Z~!&iwP*o6M~*@^OhJ)_*C@2P)ZKn*5P=L{?p&WrQMg4H1t&9m)%^7bkQwx)=9Qo1kn zl78U{mL%=`qL5O~XKlO_EWdKcSATc)}L3L*!GB7YTATcpIG&MRgF(4~2F)%Pb%&Rv5000McNliru z)CUI$9RQp2EtCKN010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00Qbs zL_t(|+I^GDYZFlv#=ptTG?_GyHpy7)qhhs%);AT48$ocPAP5%Rh@vP${{?rhTy*7Q z;S*Fu1*@$K!A;X@OMN9;`v@h94XM>8jm>)|nasm8Ljuu-2fmr%-uwIJ+Qs2+OA@UxD{>9 zUZ8LgX<0>qSwIpC>o)lLy{W0G4=|L~S|*mkuEVGMBm9~3qHqM=!ZCC?df;R_kT2Qs zBVz+A_92_?g2O-A+L+oe6_!6o3Cognn`sc0ADl`h&mj@L2F;KmY4mex4HT^cjVa+* zEC}#%q&%+>=*9s;x=AjR<;+J~S=rvwK8&Mn3ff(}fxI0JvJbuMd2DK8kt`}u*bZDC z+YH{zY$c?F6e49T1GNI1B)d^joVfq(8d&xQR9%Nw(E%HSoWNoye+aGV0XWMA%KDC< zFh?x|=6GjcmTTH0G%6fKu?a4>6RN5~ClebPEG{L%rPt!p2^LJoQ=YhMot;@h#>ya! z%bqsBh*-G{x4Y2-YoY4~T0|cb4Ue!wW}`FT8>&-Q8O=j9R@147rj`)!`e1k1!E!8Z zg9XQN;OOmk32=IxcsV5IBj1x>|B z<-dBN8s?$;=!$ILaNK>Ng>k~W#QoaC&6=Jm~0 ov&H`mYGIbkQ|*^reFxUZA2hx`==56|k^lez07*qoM6N<$g0V7@yZ`_I literal 0 HcmV?d00001 diff --git a/images/icons/edit.png b/images/icons/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..71953b305b8f724a5664019b6c2e9f895334d290 GIT binary patch literal 928 zcmV;R17G}!P)WdKcYAT}URYjhwoFfcP9FfckXFgh?eAS*C2Fffw<8#Vv{00(qQO+^RP z2L}ip0|NSdE&u=k32;bRa{vGe@Bjb`@Bu=sG?)MY00d`2O+f$vv5yP9!^r6N6UrrPJM2e^+-^v+LKdcFfJq z-f~@@5kky!&VRYCnIz1RxW3Y#`~whl|CRv>rS+@^F&uXzEREP zQca#$Jq)m;zAyGmQsji9D5p1VZc@81p4r>xq;Bpy&>k-@TWwLz+VK|nL;||h(z54h z`*y$n)1Vb8W^=H73C&wtn<^DYSZ1}POZ}H{@c4$LRA&718>saO)BK zxoHf13k5QNf&+_C;~1uCLy>^BF&{BQ$D_wTv3=+y&NX!7?x`Uplk1~lV3382zf9uX zH8it=d<9TUADSoQ%C#=++TDSI39MK^jiSor%Lsv0Ci%Wwa%~6EV4Hi8>*CWnxMqnwcBQul6Kx)Ap|2+A9W@bD+KR>oeyVd_@ z;CW7dbY#jJ86L@ujE&Ca7Q2`7xt|qXFZlGi%&=U)h~N>e)dDO`Z8vdxCV7~#gGJWz#UG?$+0000WdKBJAT}UMb!;FqFfcSAF)}(cH99dlAS*C2Ffd>Z;Qs&s00(qQO+^RP z2L}ip2L+e7Hvj+t32;bRa{vGf5dZ)S5dnW>Uy%R+00d`2O+f$vv5yPw$s6lO$bslrqpXtvM79xg}H3w6znu z&XCPYsH&vBf`x_QeIz?fJm)3uGl~R*yU}{0AB~MZq|*{!Zv`3}YT)s>VOheyx1A_k zW58}<%;($Xke1e!``h3wVF<0~r8|i%VEq zT85O8P{<$`Fc;L}bSPDQJxA2yGFs~EarfCP9C+N02W?~2H~~fBU`!IA5=24kuw65m z%s+iFDTIxK2}tTiYil(sD;Xvx7QnfL5Jd)p>~209B_*IRZgu*1Xdfr%vBlbnj_N}Q zhGUow#bC(<48sGbQ>CZKm%tp>Md{Naj?!T>!N+e0&jmIHl+)Fx_}Sob+}quQM8bqH z%PG2@zGYA0Zw5r1cuK6#xu&tdZ%=>A!_oVEQ=1Bl%E+Zm@&0t5+voiFrMT$hz^&_)70I4`FtcY{UsE7`8Ao0=Chq5 zCW*OH2KnAp5amRj{b{Ub8798jSrTc&_@6;>HZG!a)gVRK=@-WE8$mKG#$~=jN&o-= M07*qoM6N<$g24lDEC2ui literal 0 HcmV?d00001 diff --git a/images/icons/folder.png b/images/icons/folder.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2b0421270775088702351ed1fb0b9a306f5829 GIT binary patch literal 795 zcmV+$1LXXPP)WdKBJAT%INa(W;#FfcP9F*!OhI65#jAS*C2FfihJXe$5!00(qQO+^RP z2L}ip9r*P@O#lD@32;bRa{vGf5dZ)S5dnW>Uy%R+00d`2O+f$vv5yPf)e(iM5{m%XFxu+Zs5%UxH zENd8UHUY*)5$_(p#$!rJhtYG%XV45ybb^=~gG2A{5?#VUf~84ZkrWKm^Pp*>GZgM< z2}k1puRBl7?JF?%0$Jh2#eOc{ zuiZ((YAi!j)}j2Fg1%h=90QhRpzrFatF!Grjqvq($V9lEKQ%DI6=t76lNO;$(+Ic4 z5I=n!tSb@I_lv487^`8k(-Fdd(hc;7RS0zqBRl%Y=sKc z(0!%{#mpz>GjQM)FibwLY_8Gcj$c_Nfk?IqTiU~vAT(vlXZJhM8dmz(+$)nc$W7R^ zXtzvI)ASO(E_=WAE%f$AA?0WGIS}M+q}sBn+m@D%y9tvlH%M$7S9Y+Gtz)C0IihIRa_d+g|A2MUY!RzW%lSt+ntXXdREkUdje9qd zpZ|ijm0i19wW~ijk$;=SYNh5*5uFbOVu2_Um7styIeKmc>W?wqMt!M(^qU!XvFMA~ z;*39zb^lLfup@AL{RA8KA!2}yDDj&}6YTCZqUO)C6EyJOIQqdv?LHxIAl%(eKkwjx Z_zPKBIM%A<19JcX002ovPDHLkV1if(VMYJ| literal 0 HcmV?d00001 diff --git a/images/icons/folder_closed.png b/images/icons/folder_closed.png new file mode 100644 index 0000000000000000000000000000000000000000..f9faf487ce39800970b7194ce7b417e273fdfba1 GIT binary patch literal 763 zcmVWdKBPATlu^PH%P~GB7YQATcpIG&MRjH6SZ6F)%Q)s|A<<000McNliru z)CUI$9Ub`fK}`Sv010qNS#tmY3lRVS3lRZ-WM7d0000DMK}|sb0I`n?{9y$E00L7< zL_t(|+Kp37Yg0iK{^q7PO|PaAiHazKS@-~5sE7)J2nARE0sR5G5pkhQ?YeH<2wk}m zH{F#kM5G`-N)5(MtEplhEn=E9kJ}{o-rUFB@yz6=#uxO!ckj$ObH4e`nHh#{SoRTK zwrosHV4-(gFz!$5Z(gm^Q9rNDWAL;2C7(d5y~x7~ig z#i-#RZnU8r4U8m0=z2i)wW)&^!5k=1rW8nrrjJE|8lgc6l*EWJ?9tdIpGRd>X?}2^ z;CBMwwtf+Wb*RE+<3bMzh(I`STU9D)<1YnF5qOn={-X$2f!;bL@_w=c5pWk_u!&~z z)4vsjUL&RgPMHWuft&~*-IhtY4lFv?!^d{v+tTVlf!HDtG_;y)LIs=>V7Jk;Yy{lH z&J-<4`becUD+_fLzxG7aWY%IHZyrAn zOpVDdqa?Re3QFs^cZk=fr0SqnK=z%5Y9;h5^+X|8j^&@c;5IEY37dpMD6mBTs_Zz6 zda?WF72GZsxUP_s(QaQNf_6kE@3vq=&7?bvGtnKF{vshyXc4+m taxi!{TlatHEl83iVLb8=Ckgz=egfFRLx|rtIXwUX002ovPDHLkV1naRM2i3b literal 0 HcmV?d00001 diff --git a/images/icons/garbage_empty.png b/images/icons/garbage_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..12e7371ea747e4884b9c1f4d13d5c75680cd9c72 GIT binary patch literal 956 zcmV;t14I0YP)WdKHUATc>0L}hv)GB7YRATcyLH90yoH6SZ6F)%QmsFr{L000McNliru z)CUI$9U<46J<0$8010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00R_B zL_t(|+HI3bXcJKw$Nw{#BqoimR*QA17I&>8uAm@QTu>0vlT;A&CVKGhMNkkI+(7W+ zhUh`igW_^fEADNvjdZn*sjaC^lV+JLZ)Vi##BB2{de})i`IB=GLvXs$%1d1ADvDBum~Z&8!SdY zzwM|_h%#(mUxT^RJgD*mm6HI!2mh?DsE&)TM%knHp)2gx_G|P=#ho_Z9Usk!r!6V* zI#duX!$SN_3z5`>ux#<)Re!!CL*jizrIJv!ZgY-j*`irqR8%NXBtVt{FHxi~ik5&) zH;h||CO8_~M)2-)dq2IZBZ7)l(0kIR9|4yF*&c7q;~Kx3oP?%?oW}7ht|L5@!^cn_ zvf4F7F>S{K#V|5GtS}Ru>KinxpKvd63aK#AbYNhtk|pKykQXkhLO@U{!_0;|{w+nZ zlN5lX(C7VuNGAmUvHiAM=T zzI@|km|I1*!nYby?|kUN03MvUhk`6Y%L0vqkHIN{Vc9Tr8zW2pOCr9dop@vvH>NkimFf{}PA!Z4_03 zrjdu(Kjk>C);~d7%fsRV1Ju7O+LHR)|JW%w6J}-eUD-+jceR8wdyime??x=BSPD+1 zN8${FzekZwF*1-&E*j($0>I^LRlZ^@=Ucle5Gb3cKtk=*>9C!?&Egn3Ng^==&%=zN z>2i>Uv6*BMC%04@a~Hhc+O0bdHdL+JvaVuo-F*M#s@b~m1Y#Lx{TPU)dOMp#%D0;X z#&EYYg%63aGpN#pf5l78Bo+|0#0;XGaASO`H6luMl*l@wi2?q$WdKueAT%IKVQwHYFfcSAF*!OgI65>iAS*C2FfbHbcz*x@00(qQO+^RP z2L}ipB2JTRZ~y=R32;bRa{vGf5dZ)S5dnW>Uy%R+00d`2O+f$vv5yPNE0(kZ1_OKaLv3k^%Br8AUHTi+x#(Sv@;Z!(#A|Nr;CH~%5v zKdY;2&?t)011^{Ck-@O+N;En@*x6}1iLZDhDc4Z{GiYiuo!+^#?zl>|cz=C;rFLp+ zdO3hvT~wrthC<&bu_X0R1GCxMM$-#N42I%G3`0OXz5rEKrOdi@Ya51#edQj{hfi1* zBmWdxEa%7*C*HAmON2s!9VSy#Im&G2h~2v{ za|%WD7)h$Qii+jOySv{PHa4z=(o${Cs#Tk-wOS>JViJaiMrJ1_oOaZ>>5h(P48tt4 z#A1AeriH5JW}}j2_w;SpPzBeo_kznc4*B_oP*PF={rz9T?+@c~coD_9@(k(O*|{w( zEh`RHR2X4$QUsEuVbi8+;CTVs+nZrwL4rtRR&qLnRB!LVl+}8%Hq2c;W5N6y-9m7xx|xL?RObfXqu2+hh~6 zrl#)uzJ1$D(&-G?Y+kr|^TGqO*>unC4#!B6fJ91!_SQCv*M?Tq9V=^W-PJ1ZJch_! zBxymI=f}pv+R92D==H^L_^^3-7fGPoLg++}HPH7tK&mX;=d9U9t4@JC0%Z`5z9D zAc#7btd)b5@p#^idOUBPg1{$IDNQZ@JfGZd>tt>&YvbT^`QR6yV81%v6TBPpK^i#J zSP=&jC9)}$JCP%tk7$tfh?w2QfEeYCkZ;HkGL9tVX9WDch-|`&azi^f00000NkvXXu0mjfG~>P< literal 0 HcmV?d00001 diff --git a/images/icons/home.png b/images/icons/home.png new file mode 100644 index 0000000000000000000000000000000000000000..46f12212396b15453fe37e399ef2da528315bdcb GIT binary patch literal 883 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 Z><^&TBvLUqey#uj002ovPDHLkV1h%{dUOB) literal 0 HcmV?d00001 diff --git a/images/icons/preferences.png b/images/icons/preferences.png new file mode 100644 index 0000000000000000000000000000000000000000..d889dadfbba7bd38dc9aee2a42ffe46de40ba2d8 GIT binary patch literal 840 zcmV-O1GoH%P)WdKHUATlx_PH%P~GB7YQATcpIH846bIUp-AF)%PRmOixoD#mSWvpK1feK!5m8D(5TQX2kX9`Q+SIab z4+twt!i7d}#DzUJX&K^F_L!i2Q0mNFXU;v3{&Q!{+vC8`nYs7;-}xT@WuR4mHI;M? z?-J5*qm5x428J2taDzx($3@P#^gnE5R;N?v-zN85r?z=26|w-X<|m%+UlXp3a|pxW zNeyWX+^~cEwM&>CeF@ch0n<}6i8GniUDT4IdO`J*TY!R6k@6UW!x+qye#9djWl;y^ zW5aNcbwaJ*jE&1UR#n817bZ$AbyVfH*8)%*aZ#Fh1CxDs@t|cJo~J%wtgaR#r%t1~ z?I`jE0morTvV`RRr6?}u z19%=erxm`|{Fa7jIg5AalBklN?~%~I z0oWf5gr!fKy5pR4SLn*5QvBe>jBt+xOrU7D%2TmL&jP z?D>lUnJDtmq%#q6(9_q4#I2hc=PW}TFV8Y5Tk<|YHH{fMyZfD zsyJX%S({)46EigahA1s9V*yMw^Zm;9?y8eyCMPE;E1RlR6uKl@^kL9$NQ2J1Z0O=3 zahSDSf^M#$+EJSEvcL`64}WR5b38}&s`N3WdKHUAUPmPVQwHYFfcSAFfckXF*-CjAS*C2Ffjd&wX6UD00(qQO+^RP z2L}iq6siQODgXcg32;bRa{vGe@Bjb`@Bu=sG?)MY00d`2O+f$vv5yPpa!Tv=#v4X(U2OAu}zFgqlxjs7Zck* zKz;GSM58`6(Gq=VX{)JeC72lSCm=~d4Jtn@ZefL8V3&1wn4Ouuw`XuAT8$_9Ozz~& z_sluxp2P6IT}22}IPOxFEsS%`oU$VL8{gqqJSDF|$Q<*==14q&mx6a>&xlj>b&{~1UZ{vSQQAK~x-q$Sb~|6oSIKVKO#v)bwfUy(IX3z2SM`b|1)l#i ziq7W2cC=xHhnQSi5)6c845n>k)r!S@q&JqqdHIsWRm2m{Y?k@)=wU_k`5R4+$3#GfrQ)Y1j!r3Q$_8VK!v~vvai#61U++ zJbEN~u&w!VdpJ4;-OQk>rnDMm$aB&sgu*wnV=LB_6*sqZpr>m%Vc52X3JTJXc6nRg zm}|5j6V?*ZROrt~Ds8aWcM|>7&==&3sWO3IP9FcgR@@h(a3hNWq{%TvX#6zWCBBzG zp&FZ2H%DAgBazSn9i03{giDnn>Ce;D#^7#ENt>oUeKGX|`p|>j@T*ciVeYiT6tYZD z8S;&Av&ge)9TO0_YZM9^;PnOa_m*n`RuL@W-dfK#PlM~wqRPVkhxat{nCs2glP$@X z>5=q!Lg?%DR`WW-h>*CGm{4#FuZ%CP<#`3J>O~6+v8*J3nouR%u;vR^!cPA-WMGVK3oKXIi0077y?!;ZF0{M!ZU7Wq!u65FMYv`pRXv{AULqwGX|N zMJSek$y+&bA2I2a@NSgd#1guk4am?wtVB?4QVs;Q1!Cf9vS0ixhG_$aazbYU$8$Y+ zZx@^qdD~fy@bQEEg19QWXoXmAE*#+)F-@2sFVlzb%3MakIwDGhb19qu-^S0GQ&usN d|A`;X+kc#>Oo@9-iMs#*002ovPDHLkV1i9fwpRcE literal 0 HcmV?d00001 diff --git a/images/icons/redo.png b/images/icons/redo.png new file mode 100644 index 0000000000000000000000000000000000000000..3eae59c51c404e5f661ba64da3b2b1596d06e36b GIT binary patch literal 895 zcmV-_1AzRAP)WdKBPATcx`PH%P~GB7YQATl#LGch_eG$1Q5F)%QMP#j1A000McNliru z)CUI$9u%qssww~g010qNS#tmY3lRVS3lRZ-WM7d0000DMK}|sb0I`n?{9y$E00P%Z zL_t(|+KrQINK;`L$Dgw^r<>cHSIn8D8B^Erl4YqxL`4N%#E4;9$Q2!bH` z&s+Pon6juo_Th*o->XWhS3W@&Uw%IzyJ4npZ9qP z_$L1Lt>i_e>#dXLNe<_g!}_7GJbgj;PuLPO`S!iL)0Vs##2LkWd@IcWe_0HA4S zq0Amo)Y0)YIx(lWp`HL-+K!o+V|Ctyc+=GK0F?^dN4$G$q;7+Qd#Uw!`J*58n=m#W3ZV z2O8z6VgU0zo#0%S1=R9U#6+3JxfG;GSE@|}J=M`+)A#n%_oo8gV{QneK?o6J6zOO% zNrjdY&hday7g3V2T8*m8`YmB&_ZJ}#k=StikXPSjwlgZ?lZQxO2yx2BjVdBn4$w7d zafEv>PNU9%eB%ou1<6NpkXeLx$Gsp6Q6oCo&`_Sfr)76xNrl!m`f`ANe0B)GcOkZw zisDUDg~Y`ED02y-6wHbctuW^!;CsZqy7SiR7rbqdA}V3CFv8y)`#%P2wR$q~KLJ0H VDsF_*qTT=i002ovPDHLkV1lt@lLr6* literal 0 HcmV?d00001 diff --git a/images/icons/selection.png b/images/icons/selection.png new file mode 100644 index 0000000000000000000000000000000000000000..c86067c580240fcd6c37f8968d38992f29d3f73c GIT binary patch literal 376 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 www.phplogcon.org <- * + * * + * Use this script at your own risk! * + * ----------------------------------------------------------------- * + * Common needed functions * + * * + * -> * + * * + * All directives are explained within this file * + ********************************************************************* +*/ + +// --- Avoid directly accessing this file! +if ( !defined('IN_PHPLOGCON') ) +{ + die('Hacking attempt'); + exit; +} +// --- + +// --- Basic Includes +include($gl_root_path . 'include/functions_constants.php'); +include($gl_root_path . 'include/functions_themes.php'); +include($gl_root_path . 'include/functions_db.php'); +include($gl_root_path . 'classes/class_template.php'); +// --- + +// --- Define Basic vars +$RUNMODE = RUNMODE_WEBSERVER; +$DEBUGMODE = DEBUG_INFO; + +// --- Disable ARGV setting @webserver! +ini_set( "register_argc_argv", "Off" ); +// --- + +// Default language +$LANG_EN = "en"; // Used for fallback +$LANG = "en"; // Default language + +// Default Template vars +$content['BUILDNUMBER'] = "0.1.101"; +$content['TITLE'] = "PhpLogCon - Release " . $content['BUILDNUMBER']; // Title of the Page +$content['BASEPATH'] = $gl_root_path; +$content['EXTRA_METATAGS'] = ""; +// --- + +function InitBasicPhpLogCon() +{ + // Needed to make global + global $CFG, $gl_root_path, $content; + + // Check RunMode first! + CheckAndSetRunMode(); + + // Get and Set RunTime Informations + InitRuntimeInformations(); + + // Set the default line sep + SetLineBreakVar(); + + // Start the PHP Session + StartPHPSession(); +} + +function InitPhpLogConConfigFile() +{ + // Needed to make global + global $CFG, $gl_root_path, $content; + + if ( file_exists($gl_root_path . 'config.php') && GetFileLength($gl_root_path . 'config.php') > 0 ) + { + // Include the main config + include_once($gl_root_path . 'config.php'); + + // Easier DB Access + define('DB_CONFIG', $CFG['TBPref'] . "config"); + + // For ShowPageRenderStats + if ( $CFG['ShowPageRenderStats'] == 1 ) + { + $content['ShowPageRenderStats'] = "true"; + InitPageRenderStats(); + } + } + else + { + // Check for installscript! + if ( file_exists($content['BASEPATH'] . "install.php") ) + $strinstallmsg = '

' + . '
Click here to Install PhpLogCon!

' + . 'See the Installation Guides for more Details!
' + . 'English Installation Guide | ' + . 'German Installation Guide

' + . 'Also take a look to the Readme for some basics around PhpLogCon!
' + . '
'; + else + $strinstallmsg = ""; + DieWithErrorMsg( 'Error, main configuration file is missing!' . $strinstallmsg ); + } +} + +function GetFileLength($szFileName) +{ + if ( is_file($szFileName) ) + return filesize($szFileName); + else + return 0; +} + +function InitPhpLogCon() +{ + // Needed to make global + global $CFG, $gl_root_path, $content; + + // Init Basics which do not need a database + InitBasicPhpLogCon(); + + // Will init the config file! + InitPhpLogConConfigFile(); + + // Establish DB Connection + if ( $CFG['UseDB'] ) + DB_Connect(); + + // Now load the Page configuration values + InitConfigurationValues(); + + // Now Create Themes List because we haven't the config before! + CreateThemesList(); + + // Create Language List + CreateLanguageList(); + + // --- Enable PHP Debug Mode + InitPhpDebugMode(); + // --- +} + +function InitPhpDebugMode() +{ + global $content; + + // --- Set Global DEBUG Level! + if ( $content['gen_phpdebug'] == "yes" ) + ini_set( "error_reporting", E_ALL ); // ALL PHP MESSAGES! + else + ini_set( "error_reporting", E_ERROR ); // ONLY PHP ERROR'S! + // --- +} + +function CheckAndSetRunMode() +{ + global $RUNMODE; + // Set to command line mode if argv is set! + if ( !isset($_SERVER["GATEWAY_INTERFACE"]) ) + $RUNMODE = RUNMODE_COMMANDLINE; +} + +function InitRuntimeInformations() +{ + global $content; + + // TODO| maybe not needed! +} + +function CreateDebugModes() +{ + global $content; + + $content['DBGMODES'][0]['DisplayName'] = STR_DEBUG_ULTRADEBUG; + if ( $content['parser_debugmode'] == $content['DBGMODES'][0]['DisplayName'] ) { $content['DBGMODES'][0]['selected'] = "selected"; } else { $content['DBGMODES'][0]['selected'] = ""; } + $content['DBGMODES'][1]['DisplayName'] = STR_DEBUG_DEBUG; + if ( $content['parser_debugmode'] == $content['DBGMODES'][1]['DisplayName'] ) { $content['DBGMODES'][1]['selected'] = "selected"; } else { $content['DBGMODES'][1]['selected'] = ""; } + $content['DBGMODES'][2]['DisplayName'] = STR_DEBUG_INFO; + if ( $content['parser_debugmode'] == $content['DBGMODES'][2]['DisplayName'] ) { $content['DBGMODES'][2]['selected'] = "selected"; } else { $content['DBGMODES'][2]['selected'] = ""; } + $content['DBGMODES'][3]['DisplayName'] = STR_DEBUG_WARN; + if ( $content['parser_debugmode'] == $content['DBGMODES'][3]['DisplayName'] ) { $content['DBGMODES'][3]['selected'] = "selected"; } else { $content['DBGMODES'][3]['selected'] = ""; } + $content['DBGMODES'][4]['DisplayName'] = STR_DEBUG_ERROR; + if ( $content['parser_debugmode'] == $content['DBGMODES'][4]['DisplayName'] ) { $content['DBGMODES'][4]['selected'] = "selected"; } else { $content['DBGMODES'][4]['selected'] = ""; } +} + +function InitFrontEndVariables() +{ + global $content; + + $content['MENU_FOLDER_OPEN'] = "image=" . $content['BASEPATH'] . "images/icons/folder_closed.png"; + $content['MENU_FOLDER_CLOSED'] = "overimage=" . $content['BASEPATH'] . "images/icons/folder.png"; + $content['MENU_HOMEPAGE'] = "image=" . $content['BASEPATH'] . "images/icons/home.png"; + $content['MENU_LINK'] = "image=" . $content['BASEPATH'] . "images/icons/link.png"; + $content['MENU_PREFERENCES'] = "image=" . $content['BASEPATH'] . "images/icons/preferences.png"; + $content['MENU_ADMINENTRY'] = "image=" . $content['BASEPATH'] . "images/icons/star_blue.png"; + $content['MENU_ADMINLOGOFF'] = "image=" . $content['BASEPATH'] . "images/icons/exit.png"; + $content['MENU_ADMINUSERS'] = "image=" . $content['BASEPATH'] . "images/icons/businessmen.png"; + $content['MENU_SEARCH'] = "image=" . $content['BASEPATH'] . "images/icons/view.png"; + $content['MENU_SELECTION_DISABLED'] = "image=" . $content['BASEPATH'] . "images/icons/selection.png"; + $content['MENU_SELECTION_ENABLED'] = "image=" . $content['BASEPATH'] . "images/icons/selection_delete.png"; +} + +// Lang Helper for Strings with ONE variable +function GetAndReplaceLangStr( $strlang, $param1 = "", $param2 = "", $param3 = "", $param4 = "", $param5 = "" ) +{ + $strfinal = str_replace ( "%1", $param1, $strlang ); + if ( strlen($param2) > 0 ) + $strfinal = str_replace ( "%1", $param2, $strfinal ); + if ( strlen($param3) > 0 ) + $strfinal = str_replace ( "%1", $param3, $strfinal ); + if ( strlen($param4) > 0 ) + $strfinal = str_replace ( "%1", $param4, $strfinal ); + if ( strlen($param5) > 0 ) + $strfinal = str_replace ( "%1", $param5, $strfinal ); + + // And return + return $strfinal; +} + +function InitConfigurationValues() +{ + global $content, $LANG; + + $result = DB_Query("SELECT * FROM " . STATS_CONFIG); + $rows = DB_GetAllRows($result, true, true); + + // If Database is enabled, try to read from database! + if ( $CFG['UseDB'] ) + { + if ( isset($rows ) ) + { + for($i = 0; $i < count($rows); $i++) + $content[ $rows[$i]['name'] ] = $rows[$i]['value']; + } + // General defaults + // --- Language Handling + if ( !isset($content['gen_lang']) ) { $content['gen_lang'] = "en"; } + if ( VerifyLanguage($content['gen_lang']) ) + $LANG = $content['gen_lang']; + else + { + // Fallback! + $LANG = "en"; + $content['gen_lang'] = "en"; + } + + // --- PHP Debug Mode + if ( !isset($content['gen_phpdebug']) ) { $content['gen_phpdebug'] = "no"; } + // --- + + // Database Version Checker! + if ( $content['database_internalversion'] > $content['database_installedversion'] ) + { + // Database is out of date, we need to upgrade + $content['database_forcedatabaseupdate'] = "yes"; + } + } + + // --- Set Defaults... + // Language Handling + if ( isset($_SESSION['CUSTOM_LANG']) && VerifyLanguage($_SESSION['CUSTOM_LANG']) ) + { + $content['user_lang'] = $_SESSION['CUSTOM_LANG']; + $LANG = $content['user_lang']; + } + else if ( isset($content['gen_lang']) ) + $content['user_lang'] = $content['gen_lang']; + else // Failsave! + $content['user_lang'] = "en"; + + // Theme Handling + if ( !isset($content['web_theme']) ) { $content['web_theme'] = "default"; } + if ( isset($_SESSION['CUSTOM_THEME']) && VerifyTheme($_SESSION['CUSTOM_THEME']) ) + $content['user_theme'] = $_SESSION['CUSTOM_THEME']; + else + $content['user_theme'] = $content['web_theme']; + // --- + + // Init other things which are needed + InitFrontEndVariables(); +} + +function SetDebugModeFromString( $facility ) +{ + global $DEBUGMODE; + + switch ( $facility ) + { + case STR_DEBUG_ULTRADEBUG: + $DEBUGMODE = DEBUG_ULTRADEBUG; + break; + case STR_DEBUG_DEBUG: + $DEBUGMODE = DEBUG_DEBUG; + break; + case STR_DEBUG_INFO: + $DEBUGMODE = DEBUG_INFO; + break; + case STR_DEBUG_WARN: + $DEBUGMODE = DEBUG_WARN; + break; + case STR_DEBUG_ERROR: + $DEBUGMODE = DEBUG_ERROR; + break; + } +} + + +function InitPageRenderStats() +{ + global $gl_starttime, $querycount; + $gl_starttime = microtime_float(); + $querycount = 0; +} + +function FinishPageRenderStats( &$mycontent) +{ + global $gl_starttime, $querycount; + + $endtime = microtime_float(); + $mycontent['PAGERENDERTIME'] = number_format($endtime - $gl_starttime, 4, '.', ''); + $mycontent['TOTALQUERIES'] = $querycount; +} + +function microtime_float() +{ + list($usec, $sec) = explode(" ", microtime()); + return ((float)$usec + (float)$sec); +} + +function SetLineBreakVar() +{ + // Used for some functions + global $RUNMODE, $linesep; + + if ( $RUNMODE == RUNMODE_COMMANDLINE ) + $linesep = "\r\n"; + else if ( $RUNMODE == RUNMODE_WEBSERVER ) + $linesep = "
"; +} + +function CheckUrlOrIP($ip) +{ + $long = ip2long($ip); + if ( $long == -1 ) + return false; + else + return true; +} + +function DieWithErrorMsg( $szerrmsg ) +{ + global $RUNMODE, $content; + if ( $RUNMODE == RUNMODE_COMMANDLINE ) + { + print("\n\n\t\tCritical Error occured\n"); + print("\t\tErrordetails:\t" . $szerrmsg . "\n"); + print("\t\tTerminating now!\n"); + } + else if ( $RUNMODE == RUNMODE_WEBSERVER ) + { + print(""); + print("

Critical Error occured


"); + print("Errordetails:
" . $szerrmsg); + print("
"); + } + exit; +} + +function DieWithFriendlyErrorMsg( $szerrmsg ) +{ + //TODO: Make with template + print(""); + print("

Error occured


"); + print("Errordetails:
" . $szerrmsg); + exit; +} + + +function InitTemplateParser() +{ + global $page, $gl_root_path; + // ----------------------------------------------- + // Create Template Object and set some variables for the templates + // ----------------------------------------------- + $page = new Template(); + $page -> set_path ( $gl_root_path . "templates/" ); +} + +function VerifyLanguage( $mylang ) +{ + global $gl_root_path; + + if ( is_dir( $gl_root_path . 'lang/' . $mylang ) ) + return true; + else + return false; +} + +function IncludeLanguageFile( $langfile ) +{ + global $LANG, $LANG_EN; + + if ( file_exists( $langfile ) ) + include( $langfile ); + else + { + $langfile = str_replace( $LANG, $LANG_EN, $langfile ); + include( $langfile ); + } +} + +function RedirectPage( $newpage ) +{ + header("Location: $newpage"); + exit; +} + +function RedirectResult( $szMsg, $newpage ) +{ + header("Location: result.php?msg=" . urlencode($szMsg) . "&redir=" . urlencode($newpage)); + exit; +} + +// --- BEGIN Usermanagement Function --- +function StartPHPSession() +{ + global $RUNMODE; + if ( $RUNMODE == RUNMODE_WEBSERVER ) + { + // This will start the session + if (session_id() == "") + session_start(); + + if ( !isset($_SESSION['SESSION_STARTED']) ) + $_SESSION['SESSION_STARTED'] = "true"; + } +} + +function CheckForUserLogin( $isloginpage, $isUpgradePage = false ) +{ + global $content; + + if ( isset($_SESSION['SESSION_LOGGEDIN']) ) + { + if ( !$_SESSION['SESSION_LOGGEDIN'] ) + RedirectToUserLogin(); + else + { + $content['SESSION_LOGGEDIN'] = "true"; + $content['SESSION_USERNAME'] = $_SESSION['SESSION_USERNAME']; + } + + // New, Check for database Version and may redirect to updatepage! + if ( isset($content['database_forcedatabaseupdate']) && + $content['database_forcedatabaseupdate'] == "yes" && + $isUpgradePage == false + ) + RedirectToDatabaseUpgrade(); + } + else + { + if ( $isloginpage == false ) + RedirectToUserLogin(); + } + +} + +function CreateUserName( $username, $password, $access_level ) +{ + $md5pass = md5($password); + $result = DB_Query("SELECT username FROM " . STATS_USERS . " WHERE username = '" . $username . "'"); + $rows = DB_GetAllRows($result, true); + if ( isset($rows) ) + { + DieWithFriendlyErrorMsg( "User $username already exists!" ); + + // User not created! + return false; + } + else + { + // Create User + $result = DB_Query("INSERT INTO " . STATS_USERS . " (username, password, access_level) VALUES ('$username', '$md5pass', $access_level)"); + DB_FreeQuery($result); + + // Success + return true; + } +} + +function CheckUserLogin( $username, $password ) +{ + global $content, $CFG; + + // TODO: SessionTime and AccessLevel check + + $md5pass = md5($password); + $sqlselect = "SELECT access_level FROM " . STATS_USERS . " WHERE username = '" . $username . "' and password = '" . $md5pass . "'"; + $result = DB_Query($sqlselect); + $rows = DB_GetAllRows($result, true); + if ( isset($rows) ) + { + $_SESSION['SESSION_LOGGEDIN'] = true; + $_SESSION['SESSION_USERNAME'] = $username; + $_SESSION['SESSION_ACCESSLEVEL'] = $rows[0]['access_level']; + + $content['SESSION_LOGGEDIN'] = "true"; + $content['SESSION_USERNAME'] = $username; + + // Success ! + return true; + } + else + { + if ( $CFG['ShowDebugMsg'] == 1 ) + DieWithFriendlyErrorMsg( "Debug Error: Could not login user '" . $username . "'

Sessionarray
" . var_export($_SESSION, true) . "

SQL Statement: " . $sqlselect ); + + // Default return false + return false; + } +} + +function DoLogOff() +{ + global $content; + + unset( $_SESSION['SESSION_LOGGEDIN'] ); + unset( $_SESSION['SESSION_USERNAME'] ); + unset( $_SESSION['SESSION_ACCESSLEVEL'] ); + + // Redir to Index Page + RedirectPage( "index.php"); +} + +function RedirectToUserLogin() +{ + // TODO Referer + header("Location: login.php?referer=" . $_SERVER['PHP_SELF']); + exit; +} + +function RedirectToDatabaseUpgrade() +{ + // TODO Referer + header("Location: upgrade.php"); // ?referer=" . $_SERVER['PHP_SELF']); + exit; +} +// --- END Usermanagement Function --- + + +?> \ No newline at end of file diff --git a/include/functions_constants.php b/include/functions_constants.php new file mode 100644 index 0000000..f6f41fb --- /dev/null +++ b/include/functions_constants.php @@ -0,0 +1,84 @@ + www.phplogcon.org <- * + * * + * Use this script at your own risk! * + * ----------------------------------------------------------------- * + * Some constants * + * * + * -> Stuff which has to be static and predefined * + * * + * All directives are explained within this file * + ********************************************************************* +*/ + +// --- Avoid directly accessing this file! +if ( !defined('IN_PHPLOGCON') ) +{ + die('Hacking attempt'); + exit; +} +// --- + +// --- Some custom defines +define('RUNMODE_COMMANDLINE', 1); +define('RUNMODE_WEBSERVER', 2); + +define('DEBUG_ULTRADEBUG', 5); +define('DEBUG_DEBUG', 4); +define('DEBUG_INFO', 3); +define('DEBUG_WARN', 2); +define('DEBUG_ERROR', 1); +define('DEBUG_ERROR_WTF', 0); + +define('STR_DEBUG_ULTRADEBUG', "UltraDebug"); +define('STR_DEBUG_DEBUG', "Debug"); +define('STR_DEBUG_INFO', "Information"); +define('STR_DEBUG_WARN', "Warning"); +define('STR_DEBUG_ERROR', "Error"); +define('STR_DEBUG_ERROR_WTF', "WTF OMFG"); + +// Properties we need from the stream class +define('SYSLOG_DATE', 'timereported'); +define('SYSLOG_FACILITY', 'syslogfacility'); +define('SYSLOG_FACILITY_TEXT', 'syslogfacility-text'); +define('SYSLOG_SEVERITY', 'syslogseverity'); +define('SYSLOG_SEVERITY_TEXT','syslogseverity-text'); +define('SYSLOG_HOST', 'FROMHOST'); +define('SYSLOG_SYSLOGTAG', 'syslogtag'); +define('SYSLOG_MESSAGE', 'msg'); +define('SYSLOG_MESSAGETYPE', 'IUT'); + +// MonitorWare InfoUnit Defines +define('IUT_Unknown', '0'); +define('IUT_Syslog', '1'); +define('IUT_Heartbeat', '2'); +define('IUT_NT_EventReport', '3'); +define('IUT_SNMP_Trap', '4'); +define('IUT_File_Monitor', '5'); +define('IUT_PingProbe', '8'); +define('IUT_Port_Probe', '9'); +define('IUT_NTService_Monitor', '10'); +define('IUT_DiskSpace_Monitor', '11'); +define('IUT_DB_Monitor', '12'); +define('IUT_Serial_Monitor', '13'); +define('IUT_CPU_Monitor', '14'); +define('IUT_AliveMonRequest', '16'); +define('IUT_SMTPProbe', '17'); +define('IUT_FTPProbe', '18'); +define('IUT_HTTPProbe', '19'); +define('IUT_POP3Probe', '20'); +define('IUT_IMAPProbe', '21'); +define('IUT_NNTPProbe', '22'); +define('IUT_WEVTMONV2', '23'); +define('IUT_SMTPLISTENER', '24'); +define('IUT_AliveMonECHO', '1999998'); +define('IUT_MIAP_Receiver', '1999999'); +// --- + +// --- + +// --- +?> \ No newline at end of file diff --git a/include/functions_db.php b/include/functions_db.php new file mode 100644 index 0000000..66cfbe8 --- /dev/null +++ b/include/functions_db.php @@ -0,0 +1,311 @@ + www.phplogcon.org <- * + * * + * Use this script at your own risk! * + * ----------------------------------------------------------------- * + * DB Function Helper File * + * * + * -> Needed to establish and maintain the DB connetion * + * * + * All directives are explained within this file * + ********************************************************************* +*/ + +// --- Avoid directly accessing this file! +if ( !defined('IN_PHPLOGCON') ) +{ + die('Hacking attempt'); + exit; +} +// --- + + +$link_id = 0; +$errdesc = ""; +$errno = 0; + +// --- Current Database Version, this is important for automated database Updates! +$content['database_internalversion'] = "1"; // Whenever incremented, a database upgrade is needed +$content['database_installedversion'] = "0"; // 0 is default which means Prior Versioning Database +// --- + +function DB_Connect() +{ + global $link_id, $CFG; + + //TODO: Check variables first + $link_id = mysql_connect($CFG['DBServer'],$CFG['User'],$CFG['Pass']); + if (!$link_id) + DB_PrintError("Link-ID == false, connect to ".$CFG['DBServer']." failed", true); + + // --- Now, check Mysql DB Version! + $strmysqlver = mysql_get_server_info(); + if ( strpos($strmysqlver, "-") !== false ) + { + $sttmp = explode("-", $strmysqlver ); + $szVerInfo = $sttmp[0]; + } + else + $szVerInfo = $strmysqlver; + + $szVerSplit = explode(".", $szVerInfo ); + + //Now check for Major Version + if ( $szVerSplit[0] <= 3 ) + { + //Unfortunatelly MYSQL 3.x is NOT Supported dude! + DieWithFriendlyErrorMsg( "You are running an MySQL 3.x Database Server Version. Unfortunately MySQL 3.x is NOT supported by PhpLogCon due the limited SQL Statement support. If this is a commercial webspace, contact your webhoster in order to upgrade to a higher MySQL Database Version. If this is your own rootserver, consider updating your MySQL Server."); + } + // --- + + $db_selected = mysql_select_db($CFG['DBName'], $link_id); + if(!$db_selected) + DB_PrintError("Cannot use database '" . $CFG['DBName'] . "'", true); + // :D Success connecting to db +} + +function DB_Disconnect() +{ + global $link_id; + mysql_close($link_id); +} + +function DB_Query($query_string, $bProcessError = true, $bCritical = false) +{ + // --- Abort in this case! + if ( $CFG['UseDB'] == false ) + return; + // --- + + global $link_id, $querycount; + $query_id = mysql_query($query_string,$link_id); + if (!$query_id && $bProcessError) + DB_PrintError("Invalid SQL: ".$query_string, $bCritical); + + // For the Stats ;) + $querycount++; + + return $query_id; +} + +function DB_FreeQuery($query_id) +{ + // --- Abort in this case! + if ( $CFG['UseDB'] == false ) + return; + // --- + + if ($query_id != false && $query_id != 1 ) + mysql_free_result($query_id); +} + +function DB_GetRow($query_id) +{ + // --- Abort in this case! + if ( $CFG['UseDB'] == false ) + return; + // --- + + $tmp = mysql_fetch_row($query_id); + $results[] = $tmp; + return $results[0]; +} + +function DB_GetSingleRow($query_id, $bClose) +{ + // --- Abort in this case! + if ( $CFG['UseDB'] == false ) + return; + // --- + + if ($query_id != false && $query_id != 1 ) + { + $row = mysql_fetch_array($query_id, MYSQL_ASSOC); + + if ( $bClose ) + DB_FreeQuery ($query_id); + + if ( isset($row) ) + { + // Return array + return $row; + } + else + return; + } +} + +function DB_GetAllRows($query_id, $bClose) +{ + // --- Abort in this case! + if ( $CFG['UseDB'] == false ) + return; + // --- + + if ($query_id != false && $query_id != 1 ) + { + while ($row = mysql_fetch_array($query_id, MYSQL_ASSOC)) + $var[] = $row; + + if ( $bClose ) + DB_FreeQuery ($query_id); + + if ( isset($var) ) + { + // Return array + return $var; + } + else + return; + } +} + +function DB_GetMysqlStats() +{ + // --- Abort in this case! + if ( $CFG['UseDB'] == false ) + return; + // --- + + global $link_id; + $status = explode(' ', mysql_stat($link_id)); + return $status; +} + +function DB_ReturnSimpleErrorMsg() +{ + // Return Mysql Error + return "Mysql Error " . mysql_errno() . " - Description: " . mysql_error(); +} + +function DB_PrintError($MyErrorMsg, $DieOrNot) +{ + global $n,$HTTP_COOKIE_VARS, $errdesc, $errno, $linesep, $CFG; + + $errdesc = mysql_error(); + $errno = mysql_errno(); + + $errormsg="Database error: $MyErrorMsg $linesep"; + $errormsg.="mysql error: $errdesc $linesep"; + $errormsg.="mysql error number: $errno $linesep"; + $errormsg.="Date: ".date("d.m.Y @ H:i").$linesep; + $errormsg.="Script: ".getenv("REQUEST_URI").$linesep; + $errormsg.="Referer: ".getenv("HTTP_REFERER").$linesep; + + if ($DieOrNot == true) + DieWithErrorMsg( "$linesep" . $errormsg ); + else + echo $errormsg; +} + +function DB_RemoveParserSpecialBadChars($myString) +{ +// DO NOT REPLACD! $returnstr = str_replace("\\","\\\\",$myString); + $returnstr = str_replace("'","\\'",$myString); + return $returnstr; +} + +function DB_RemoveBadChars($myString) +{ + $returnstr = str_replace("\\","\\\\",$myString); + $returnstr = str_replace("'","\\'",$returnstr); + return $returnstr; +} + +function DB_GetRowCount($query) +{ + // --- Abort in this case! + if ( $CFG['UseDB'] == false ) + return; + // --- + + if ($result = mysql_query($query)) + { + $num_rows = mysql_num_rows($result); + mysql_free_result ($result); + } + return $num_rows; +} + +function DB_GetRowCountByResult($myresult) +{ + // --- Abort in this case! + if ( $CFG['UseDB'] == false ) + return; + // --- + + if ($myresult) + return mysql_num_rows($myresult); +} + +function DB_Exec($query) +{ + // --- Abort in this case! + if ( $CFG['UseDB'] == false ) + return; + // --- + + if(mysql_query($query)) + return true; + else + return false; +} + +function WriteConfigValue($szValue) +{ + // --- Abort in this case! + if ( $CFG['UseDB'] == false ) + return; + // --- + + global $content; + + $result = DB_Query("SELECT name FROM " . STATS_CONFIG . " WHERE name = '" . $szValue . "'"); + $rows = DB_GetAllRows($result, true); + if ( !isset($rows) ) + { + // New Entry + $result = DB_Query("INSERT INTO " . STATS_CONFIG . " (name, value) VALUES ( '" . $szValue . "', '" . $content[$szValue] . "')"); + DB_FreeQuery($result); + } + else + { + // Update Entry + $result = DB_Query("UPDATE " . STATS_CONFIG . " SET value = '" . $content[$szValue] . "' WHERE name = '" . $szValue . "'"); + DB_FreeQuery($result); + } +} + +function GetSingleDBEntryOnly( $myqry ) +{ + // --- Abort in this case! + if ( $CFG['UseDB'] == false ) + return; + // --- + + $result = DB_Query( $myqry ); + $row = DB_GetRow($result); + DB_FreeQuery ($query_id); + + if ( isset($row) ) + return $row[0]; + else + return -1; +} + +function GetRowsAffected() +{ + // --- Abort in this case! + if ( $CFG['UseDB'] == false ) + return; + // --- + + return mysql_affected_rows(); +} + + + +?> \ No newline at end of file diff --git a/include/functions_frontendhelpers.php b/include/functions_frontendhelpers.php new file mode 100644 index 0000000..3a8bb3e --- /dev/null +++ b/include/functions_frontendhelpers.php @@ -0,0 +1,80 @@ + www.phplogcon.org <- * + * * + * Use this script at your own risk! * + * ----------------------------------------------------------------- * + * Helperfunctions for the web frontend * + * * + * -> * + * * + * All directives are explained within this file * + ********************************************************************* +*/ + +// --- Avoid directly accessing this file! +if ( !defined('IN_PHPLOGCON') ) +{ + die('Hacking attempt'); + exit; +} +// --- + +function InitFrontEndDefaults() +{ + // To create the current URL + CreateCurrentUrl(); + + // --- BEGIN Main Info Area + + + + // --- END Main Info Area + + // Check if install file still exists + InstallFileReminder(); +} + +function InstallFileReminder() +{ + global $content; + + if ( is_file($content['BASEPATH'] . "install.php") ) + { + // No Servers - display warning! + $content['error_installfilereminder'] = "true"; + } +} + +function CreateCurrentUrl() +{ + global $content; + $content['CURRENTURL'] = $_SERVER['PHP_SELF']; // . "?" . $_SERVER['QUERY_STRING'] + + // Now the query string: + if ( isset($_SERVER['QUERY_STRING']) && strlen($_SERVER['QUERY_STRING']) > 0 ) + { + // Append ? + $content['CURRENTURL'] .= "?"; + + $queries = explode ("&", $_SERVER['QUERY_STRING']); + $counter = 0; + for ( $i = 0; $i < count($queries); $i++ ) + { + if ( strpos($queries[$i], "serverid") === false ) + { + $tmpvars = explode ("=", $queries[$i]); + // 4Server Selector + $content['HIDDENVARS'][$counter]['varname'] = $tmpvars[0]; + $content['HIDDENVARS'][$counter]['varvalue'] = $tmpvars[1]; + + $counter++; + } + } + } +} + + +?> \ No newline at end of file diff --git a/include/functions_themes.php b/include/functions_themes.php new file mode 100644 index 0000000..105c309 --- /dev/null +++ b/include/functions_themes.php @@ -0,0 +1,107 @@ + www.phplogcon.org <- * + * * + * Use this script at your own risk! * + * ----------------------------------------------------------------- * + * Theme specific functions * + * * + * -> * + * * + * All directives are explained within this file * + ********************************************************************* +*/ + +// --- Avoid directly accessing this file! +if ( !defined('IN_PHPLOGCON') ) +{ + die('Hacking attempt'); + exit; +} +// --- + +function CreateLanguageList() +{ + global $gl_root_path, $content; + + $alldirectories = list_directories( $gl_root_path . "lang/"); + for($i = 0; $i < count($alldirectories); $i++) + { + // --- gen_lang + $content['LANGUAGES'][$i]['langcode'] = $alldirectories[$i]; + if ( $content['gen_lang'] == $alldirectories[$i] ) + $content['LANGUAGES'][$i]['selected'] = "selected"; + else + $content['LANGUAGES'][$i]['selected'] = ""; + // --- + + // --- user_lang + $content['USERLANG'][$i]['langcode'] = $alldirectories[$i]; + if ( $content['user_lang'] == $alldirectories[$i] ) + $content['USERLANG'][$i]['is_selected'] = "selected"; + else + $content['USERLANG'][$i]['is_selected'] = ""; + // --- + + } +} + +function CreateThemesList() +{ + global $gl_root_path, $content; + + $alldirectories = list_directories( $gl_root_path . "themes/"); + for($i = 0; $i < count($alldirectories); $i++) + { + // --- web_theme + $content['STYLES'][$i]['StyleName'] = $alldirectories[$i]; + if ( $content['web_theme'] == $alldirectories[$i] ) + $content['STYLES'][$i]['selected'] = "selected"; + else + $content['STYLES'][$i]['selected'] = ""; + // --- + + // --- user_theme + $content['USERSTYLES'][$i]['StyleName'] = $alldirectories[$i]; + if ( $content['user_theme'] == $alldirectories[$i] ) + $content['USERSTYLES'][$i]['is_selected'] = "selected"; + else + $content['USERSTYLES'][$i]['is_selected'] = ""; + // --- + } +} + +function list_directories($directory) +{ + $result = array(); + if (! $directoryHandler = @opendir ($directory)) + DieWithFriendlyErrorMsg( "list_directories: directory \"$directory\" doesn't exist!"); + + while (false !== ($fileName = @readdir ($directoryHandler))) + { + if ( is_dir( $directory . $fileName ) && ( $fileName != "." && $fileName != ".." )) + @array_push ($result, $fileName); + } + + if ( @count ($result) === 0 ) + DieWithFriendlyErrorMsg( "list_directories: no directories in \"$directory\" found!"); + else + { + sort ($result); + return $result; + } +} + +function VerifyTheme( $newtheme ) +{ + global $gl_root_path; + + if ( is_dir( $gl_root_path . "themes/" . $newtheme ) ) + return true; + else + return false; +} + +?> \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..128a5e1 --- /dev/null +++ b/index.php @@ -0,0 +1,65 @@ + www.phplogcon.org <- * + * * + * Use this script at your own risk! * + * ----------------------------------------------------------------- * + * Main Index File * + * * + * -> Loads the main PhpLogCon Site * + * * + * All directives are explained within this file * + ********************************************************************* +*/ + +// *** Default includes and procedures *** // +define('IN_PHPLOGCON', true); +$gl_root_path = './'; +include($gl_root_path . 'include/functions_common.php'); +include($gl_root_path . 'include/functions_frontendhelpers.php'); + +InitPhpLogCon(); +InitFrontEndDefaults(); // Only in WebFrontEnd +// *** *** // + +// --- CONTENT Vars +//if ( isset($content['myserver']) ) +// $content['TITLE'] = "PhpLogCon :: Home :: Server '" . $content['myserver']['Name'] . "'"; // Title of the Page +//else + $content['TITLE'] = "PhpLogCon :: Home"; +// --- + +// --- BEGIN Custom Code + +// DEBUG, create TESTING DATA! +$content['syslogmessages'][0] = array ( SYSLOG_DATE => "Feb 7 17:56:24", SYSLOG_FACILITY => 0, SYSLOG_FACILITY_TEXT => "kernel", SYSLOG_SEVERITY => 5, SYSLOG_SEVERITY_TEXT => "notice", SYSLOG_HOST => "localhost", SYSLOG_SYSLOGTAG => "RSyslogTest", SYSLOG_MESSAGE => "Kernel log daemon terminating.", SYSLOG_MESSAGETYPE => IUT_Syslog, ); +$content['syslogmessages'][1] = array ( SYSLOG_DATE => "Feb 6 18:56:24", SYSLOG_FACILITY => 0, SYSLOG_FACILITY_TEXT => "kernel", SYSLOG_SEVERITY => 5, SYSLOG_SEVERITY_TEXT => "notice", SYSLOG_HOST => "localhost", SYSLOG_SYSLOGTAG => "RSyslogTest", SYSLOG_MESSAGE => "Kernel log daemon terminating.", SYSLOG_MESSAGETYPE => IUT_Syslog, ); + +if ( isset($content['syslogmessages']) && count($content['syslogmessages']) > 0 ) +{ + // This will enable to Main SyslogView + $content['syslogmessagesenabled'] = "true"; + + for($i = 0; $i < count($content['syslogmessages']); $i++) + { + // --- Set CSS Class + if ( $i % 2 == 0 ) + $content['syslogmessages'][$i]['cssclass'] = "line1"; + else + $content['syslogmessages'][$i]['cssclass'] = "line2"; + // --- + } +} +// --- + +// --- Parsen and Output +IncludeLanguageFile( $gl_root_path . '/lang/' . $LANG . '/main.php' ); + +InitTemplateParser(); +$page -> parser($content, "index.html"); +$page -> output(); +// --- + +?> \ No newline at end of file diff --git a/js/admin-menuoptionen.js b/js/admin-menuoptionen.js new file mode 100644 index 0000000..ed54aa8 --- /dev/null +++ b/js/admin-menuoptionen.js @@ -0,0 +1,31 @@ +var navigationsname = 'awmenu10'; // nicht ändern !!!! +var hintergrundfarbe = '#F5F5F5'; // Standardfarbwert = #FFFFFF +var rahmenfarbe = '#999999'; // +var onmouseoverhintergrund = '#E0E0E0'; // Standardfarbwert = #E0E0E0 +var onmouseoverschriftfarbe = '#000099'; // Standardfarbwert = #FF0000 +var menupunktschriftfarbe = '#000033'; // Standardfarbwert = #000000 +var rahmenbreite = 1; // Breite des Rahmens +var schriftart = 'Verdana, Tahoma, Arial'; // Arial, Verdana, Times, Courier, Georgia, Geneva +var bilderpfad = '../images/misc/'; // Bilderpfad +var pfeilrunter = 'transparent.gif'; // Name des -nach-unten Pfeils- +var pfeilrechts = 'transparent.gif'; // Name des -nach-rechts Pfeils- +var verzoegerung = 500; // Untermenu verschwindet nach X Millisekunden +var tabellenausrichtung_x = 1; // 0 = links ; 1 = mitte ; 2 = rechts +var tabellenausrichtung_y = 0; // 0 = oben ; 1 = mitte ; 2 = unten +var h_offset = 0; // Tabellenfeinjustierung (x-achse) +var v_offset = 50; // Tabellenfeinjustierung (y-achse) +var menuausrichtung = 1; // 0 = vertikal ; 1 = horizontal +var schriftgroesse = 12; // Schriftgroesse -> Standard = 8 +var schriftausrichtung = 0; // 0 = links ; 1 = mitte -> HORIZONTAL +var spaltenhoehe = 15; // Spaltenhoehe -> Standard = 15 +var spaltenbreite = 110; // Spaltenbreite -> Standard = 140 +var submenu_offset_x = 0; // Submenu Abstand - X vom Hauptmenu +var submenu_offset_y = 17; // Submenu Abstand - Y vom Hauptmenu +var item_offset_h = 3; // Schriftfeinjustierung (x-achse) +var item_offset_v = 0; // Schriftfeinjustierung (y-achse) +var itemtrenner = 1; // 0 = kein Trenner d ; 1 = Trenner +var fontstyle = "normal"; // normal, bold +var frameausrichtung = 0; // 0 = horizontal ; 1 = vertikal +var mainmenuframename = ''; // Name des Hauptframes (keine Verwendung) +var submenuframename = ''; // Name des Unterframes (keine Verwendung) +var targetframename = ''; // Name des Zielframes (keine Verwendung) diff --git a/js/common.js b/js/common.js new file mode 100644 index 0000000..b9eb2e1 --- /dev/null +++ b/js/common.js @@ -0,0 +1,45 @@ +/* + +Helper Javascript functions + +*/ + +function CheckAlphaPNGImage(ImageName, ImageTrans) +{ + var agt=navigator.userAgent.toLowerCase(); + var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)); + + if (is_ie) + document.images[ImageName].src = ImageTrans; +} + +function NewWindow(Location, WindowName,X_width,Y_height,Option) { + var windowReference; + var Addressbar = "location=NO"; //Default + var OptAddressBar = "AddressBar"; //Default für Adressbar + if (Option == OptAddressBar) { //Falls AdressBar gewünscht wird + Addressbar = "location=YES"; + } + windowReference = window.open(Location,WindowName, + 'toolbar=no,' + Addressbar + ',directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=' + X_width + + ',height=' + Y_height); + if (!windowReference.opener) + windowReference.opener = self; + +} + + +function togglevisibility(ElementName) +{ + var toggle = document. getElementById(ElementName); + if (toggle.style.visibility == "visible") + { + toggle.style.visibility = "hidden"; + toggle.style.display = "none"; + } + else + { + toggle.style.visibility = "visible"; + toggle.style.display = "inline"; + } +} diff --git a/js/menu_dom.js b/js/menu_dom.js new file mode 100644 index 0000000..0135d7b --- /dev/null +++ b/js/menu_dom.js @@ -0,0 +1,984 @@ +/* +Javscript menu +IE & Others Stuff +*/ + +inDragMode=0; +_d.onmousemove=getMouseXY; +_flta="return false"; +if(ie55)_flta="try{if(ap.filters){return 1}}catch(e){}"; +_d.write("<"+"script>function getflta(ap){"+_flta+"}<"+"/script>"); +_mot=0; +gevent=0; +_ifc=0; + + +function $CtI($ti) +{ + clearTimeout($ti) +} + +function getMouseXY(e) +{ + if(ns6) + { + MouseX=e.pageX; + MouseY=e.pageY + } + else + { + MouseX=event.clientX; + MouseY=event.clientY + } + if(!op&&_d.all&&_d.body) + { + MouseX=MouseX+_d.body.scrollLeft; + MouseY=MouseY+_d.body.scrollTop; + + if(IEDtD&&!mac) + { + MouseY=MouseY+_sT; + MouseX=MouseX+_sL; + } + } + if(inDragMode) + { + gm=gmobj(DragLayer); + spos(gm,MouseY-DragY,MouseX-DragX); + return false + } + return _t; +} + +function gmobj(_mtxt) +{ + if(_d.getElementById){return _d.getElementById(_mtxt)}else if(_d.all){return _d.all[_mtxt]} +} + +function spos(_gm,_t,_l,_h,_w) +{ + _px="px"; + if(op){_px=""; + _gs=_gm.style; + if(_w!=_n)_gs.pixelWidth=_w; + if(_h!=_n)_gs.pixelHeight=_h}else{_gs=_gm.style; + if(_w!=_n)_gs.width=_w+_px; + if(_h!=_n)_gs.height=_h+_px}if(_t!=_n)_gs.top=_t+_px; + if(_l!=_n)_gs.left=_l+_px}function gpos(_gm){_h=_gm.offsetHeight; + _w=_gm.offsetWidth; + if(op5){_h=_gm.style.pixelHeight; + _w=_gm.style.pixelWidth}_tgm=_gm; + _t=0; + while(_tgm!=_n){_t+=_tgm.offsetTop; + _tgm=_tgm.offsetParent}_tgm=_gm; + _l=0; + while(_tgm!=_n){_l+=_tgm.offsetLeft; + _tgm=_tgm.offsetParent} + + if(sfri) + { _l-=_d.body.offsetLeft; + _t-=_d.body.offsetTop + } + if(mac&&!mac45){if(_macffs=_d.body.currentStyle.marginTop){_t=_t+parseInt(_macffs)}if(_macffs=_d.body.currentStyle.marginLeft){_l=_l+parseInt(_macffs)}}_gpa=new Array(_t,_l,_h,_w); + return(_gpa) +} + +function applyFilter(_gm,_mnu) +{ + if(getflta(_gm)){if(_gm.style.visibility=="visible")flt=_m[_mnu][16]; + else flt=_m[_mnu][15]; + if(flt){if(_gm.filters[0])_gm.filters[0].stop(); + iedf=""; + iedf="FILTER:"; + flt=flt.split(";"); + for(fx=0; + fx0)fx=999}_gm.style.filter=iedf; + _gm.filters[0].apply()}}}function playFilter(_gm,_mnu){if(getflta(_gm)){if(_gm.style.visibility=="visible")flt=_m[_mnu][15]; + else flt=_m[_mnu][16]; + if(flt)_gm.filters[0].play()} +} + +function menuDisplay(_mnu,_show) +{ + _gmD=gmobj("menu"+_mnu); + if(!_gmD)return; + _m[_mnu][22]=_gmD; + M_hideLayer(_mnu,_show); + if(_show){if(_m[_mnu][21]>-1&&_m[_mnu][21]!=_itemRef){itemOff(_m[_mnu][21]); + _m[_mnu][21]=_itemRef}if(_m[_mnu][7]==0&&_ofMT==1)return; + if(_gmD.style.visibility.toUpperCase()!="VISIBLE"){_SoT(_mnu,1); + applyFilter(_gmD,_mnu); + if(!_m[_mnu][7]&&!_m[_mnu][14]&&ns6)_gmD.style.position="fixed"; + _gmD.style.zIndex=_zi; + _gmD.style.visibility="visible"; + playFilter(_gmD,_mnu); + if(!_m[_mnu][7])_m[_mnu][21]=_itemRef; + _mnuD++}}else{if(_m[_mnu][21]>-1&&_itemRef!=_m[_mnu][21])itemOff(_m[_mnu][21]); + if(_gmD.style.visibility.toUpperCase()=="VISIBLE"){_SoT(_mnu,0); + applyFilter(_gmD,_mnu); + if(!_m[_mnu][14]&&ns6)_gmD.style.position="absolute"; + _gmD.style.visibility="hidden"; + if(mac||konq){_gmD.style.top="-999px"; + _gmD.style.left="-999px"}playFilter(_gmD,_mnu); + _mnuD--}_m[_mnu][21]=-1} +} + +function closeAllMenus() +{ + if(_oldel>-1)itemOff(_oldel); + _oldel=-1; + for(_a=0; + _a<_m.length; + _a++){if(!_m[_a][7]&&!_m[_a][10])menuDisplay(_a,0)}_mnuD=0; + _zi=999; + _itemRef=-1}_lcC=0; + function _lc(_i){_I=_mi[_i]; + _lcC++; + if(_I[62]&&_lcC==1)eval(_I[62]); + if(_I[34]=="disabled")return; + _feat=""; + if(_I[57])_feat=_I[57]; + if(op||_feat||(sfri||ns6||konq||mac45)){_trg=""; + if(_I[35])_trg=_I[35]; + if(_trg)window.open(_I[2],_trg,_feat); + else(location.href=_I[2])}else{_gm=gmobj("lnk"+_i); + _gm.href=_I[2]; + _gm.click()}closeAllMenus(); + if(_lcC==2)_lcC=0; +} + +function getMenuByItem(_gel) +{ + _gel=_mi[_gel][0]; + if(_m[_gel][7])_gel=-1; + return _gel; +} + +function getParentMenuByItem(_gel) +{ + _tm=getMenuByItem(_gel); + if(_tm==-1)return-1; + for(_x=0; + _x<_mi.length; + _x++){if(_mi[_x][3]==_m[_tm][1]){return _mi[_x][0]}} +} + +function getParentItemByItem(_gel) +{ + _tm=getMenuByItem(_gel); + if(_tm==-1)return-1; + for(_x=0; + _x<_mi.length; + _x++){if(_mi[_x][3]==_m[_tm][1]){return _x;}} +} + +function getMenuByName(_mn) +{ + _mn=$tL(_mn); + for(_xg=0;_xg<_m.length;_xg++) + { + if(_mn==_m[_xg][1]) + return _xg; + } +} + +function itemOn(_i) +{ + $CtI(_mot); + _mot=null; + _gmi=gmobj("el"+_i); + if(_gmi.itemOn==1)return; + _gmi.itemOn=1; + _gmt=gmobj("tr"+_i); + var _I=_mi[_i]; + if(_I[34]=="header")return; + if(_gmt){_gmt=gmobj("tr"+_i); + _gs=_gmt.style; + if(_I[53])_gmt.className=_I[53]}else{_gs=_gmi.style}if(_I[2]||_I[3]){_mP=(ns6)?"pointer":"hand"; + if(_I[59])_mP=_I[59]; + _gs.cursor=_mP; + if(_I[29])gmobj("img"+_i).style.cursor=_gs.cursor; + if(_I[24]&&_I[3])gmobj("simg"+_i).style.cursor=_gs.cursor}if(_I[32]&&_I[29]){gmobj("img"+_i).src=_I[32]}if(_I[3]&&_I[24]&&_I[48]){gmobj("simg"+_i).src=_I[48]}if(_I[53])_gmi.className=_I[53]; + if(_I[6])_gs.color=_I[6]; + if(_I[5])_gmi.style.background=_I[5]; + if(_I[47]){_oi="url("+_I[47]+")"; + if(_gmi.style.backgroundImage!=_oi); + _gmi.style.backgroundImage=_oi}if(_I[26])_gs.textDecoration=_I[26]; + if(!mac){if(_I[44])_gs.fontWeight="bold"; + if(_I[45])_gs.fontStyle="italic"}if(_I[42])eval(_I[42]); + if(_I[25]){_gmi.style.border=_I[25]; + if(!_I[9])_gs.padding=_I[11]-parseInt(_gmi.style.borderWidth)+"px";} +} + +function itemOff(_i) +{ + _gmi=gmobj("el"+_i); + if(_gmi.itemOn==0)return; + _gmi.itemOn=0; + _gmt=gmobj("tr"+_i); + var _I=_mi[_i]; + if(_I[32]&&_I[29]){gmobj("img"+_i).src=_I[29]}if(_I[3]&&_I[24]&&_I[48]){gmobj("simg"+_i).src=_I[24]}if(_I[4]&&_I[4]!="none")window.status=""; + if(_i==-1)return; + if(_gmt){_gmt=gmobj("tr"+_i); + _gs=_gmt.style; + if(_I[54])_gmt.className=_I[54]}else{_gs=_gmi.style}if(_I[54])_gmi.className=_I[54]; + if(_I[46])_gmi.style.backgroundImage="url("+_I[46]+")"; + else if(_I[7])_gmi.style.background=_I[7]; + if(_I[8])_gs.color=_I[8]; + if(_I[26])_gs.textDecoration="none"; + if(_I[33])_gs.textDecoration=_I[33]; + if(!mac){if(_I[44]&&(_I[14]=="normal"||!_I[14]))_gs.fontWeight="normal"; + if(_I[45]&&(_I[13]=="normal"||!_I[13]))_gs.fontStyle="normal"}if(!_startM&&_I[43])eval(_I[43]); + if(_I[25]){_gmi.style.border="0px"; + if(!_I[9])_gs.padding=_I[11]+"px"}if(_I[9]){_gmi.style.border=_I[9];} +} + +function closeMenusByArray(_cmnu) +{ + for(_a=0; + _a<_cmnu.length; + _a++)if(_cmnu[_a]!=_mnu)if(!_m[_cmnu[_a]][7])menuDisplay(_cmnu[_a],0); +} + +function getMenusToClose() +{ + _st=-1; + _en=_sm.length; + _mm=_iP; + if(_iP==-1){if(_sm[0]!=_masterMenu)return _sm; + _mm=_masterMenu}for(_b=0; + _b<_sm.length; + _b++){if(_sm[_b]==_mm)_st=_b+1; + if(_sm[_b]==_mnu)_en=_b}if(_st>-1&&_en>-1){_tsm=_sm.slice(_st,_en)}return _tsm}function _cm(){_tar=getMenusToClose(); + closeMenusByArray(_tar); + for(_b=0; + _b<_tar.length; + _b++){if(_tar[_b]!=_mnu)_sm=remove(_sm,_tar[_b]);} +} + +function _getDims() +{ + if(!op&&_d.all){_mc=_d.body; + if(IEDtD&&!mac&&!op7)_mc=_d.documentElement; + if(!_mc)return; + _bH=_mc.clientHeight; + _bW=_mc.clientWidth; + _sT=_mc.scrollTop; + _sL=_mc.scrollLeft}else{_bH=window.innerHeight; + _bW=window.innerWidth; + if(ns6){if(_d.documentElement.offsetWidth!=_bW){_bW=_bW-15}}_sT=self.scrollY; + _sL=self.scrollX; + if(op){_sT=_d.body.scrollTop; + _sL=_d.body.scrollleft}}}function c_openMenu(_i){var _I=_mi[_i]; + if(_I[3]){_oldMC=_I[39]; + _I[39]=0; + _oldMD=_menuOpenDelay; + _menuOpenDelay=0; + _gm=gmobj("menu"+getMenuByName(_I[3])); + if(_gm.style.visibility=="visible"&&_I[40]){menuDisplay(getMenuByName(_I[3]),0); + itemOn(_i)}else{_popi(_i)}_menuOpenDelay=_oldMD; + _I[39]=_oldMC}else{if(_I[2]&&_I[39])eval(_I[2]);} +} + +function getOffsetValue(_ofs) +{ + _ofsv=null; + if(_ofs) + {_ofsv=_ofs;} + if(isNaN(_ofs)&&_ofs.indexOf("offset=")==0) + {_ofsv=parseInt(_ofs.substr(7,99));} + return _ofsv; +} + +function popup() + { + _sm=new Array; + _arg=arguments; + $CtI(_MT); + _MT=null; + $CtI(_oMT); + _oMT=null; + closeAllMenus(); + if(_arg[0]){_ofMT=0; + _mnu=getMenuByName(_arg[0]); + if(ie4)_fixMenu(_mnu); + _tos=0; + if(_arg[2])_tos=_arg[2]; + _los=0; + if(_arg[3])_los=_arg[3]; + _sm[_sm.length]=_mnu; + if(ns6&&!ns60){_los-=_sL; + _tos-=_sT; + _gm=gmobj("menu"+_mnu); + _gp=gpos(_gm); + spos(_gm,_m[_mnu][2]+_tos,_m[_mnu][3]+_los)}if(mac)spos(gmobj("menu"+_mnu),_m[_mnu][2],_m[_mnu][3]); + if(_arg[1]){_gm=gmobj("menu"+_mnu); + if(!_gm)return; + _gp=gpos(_gm); + if(_arg[1]==1){if(MouseY+_gp[2]>(_bH+_sT))_tos=-(MouseY+_gp[2]-_bH)+_sT; + if(MouseX+_gp[3]>(_bW+_sL))_los=-(MouseX+_gp[3]-_bW)+_sL; + if(_m[_mnu][2]){if(isNaN(_m[_mnu][2]))_tos=getOffsetValue(_m[_mnu][2]); + else{_tos=_m[_mnu][2]; + MouseY=0}}if(_m[_mnu][3]){if(isNaN(_m[_mnu][3]))_los=getOffsetValue(_m[_mnu][3]); + else{_los=_m[_mnu][3]; + MouseX=0}}spos(_gm,(MouseY+_tos),(MouseX+_los))}else{_po=gmobj(_arg[1]); + _pp=gpos(_po); + spos(_gm,_pp[0]+_pp[2]+getOffsetValue(_m[_mnu][2])+_tos,_pp[1]+getOffsetValue(_m[_mnu][3])+_los)}}_zi=_zi+100; + if(_m[_mnu][13]=="scroll")_check4Scroll(_mnu); + menuDisplay(_mnu,1); + _m[_mnu][21]=-1;} +} + +function popdown() +{ + _MT=setTimeout("closeAllMenus()",_menuCloseDelay) +} + +function _popi(_i) +{ + var _I=_mi[_i]; + if(!_I)return; + _pMnu=_m[_I[0]]; + $CtI(_MT); + _MT=null; + if(_oldel>-1){gm=0; + if(_I[3]){gm=gmobj("menu"+getMenuByName(_I[3])); + if(gm&&gm.style.visibility.toUpperCase()=="VISIBLE"&&_i==_oldel){itemOn(_i); + return}}if(_oldel!=_i)itemOff(_oldel); + $CtI(_oMT); + _oMT=null}$CtI(_cMT); + _cMT=null; + _mnu=-1; + _itemRef=_i; + if(_I[34]=="disabled")return; + _mopen=_I[3]; + horiz=0; + if(_pMnu[9])horiz=1; + itemOn(_i); + if(!_sm.length){_sm[_sm.length]=_I[0]; + _masterMenu=_I[0]}_iP=getMenuByItem(_i); + if(_iP==-1)_masterMenu=_I[0]; + if(_I[4]!="none"){if(_I[4]!=null)window.status=_I[4]; + else if(_I[2])window.status=_I[2]}_cMT=setTimeout("_cm()",_menuOpenDelay); + if(_I[39]){if(_mopen){_mnu=getMenuByName(_mopen); + _gm=gmobj("menu"+_mnu); + if(_gm.style.visibility.toUpperCase()=="VISIBLE"){$CtI(_cMT); + _cMT=null; + _tsm=_sm[_sm.length-1]; + if(_tsm!=_mnu)menuDisplay(_tsm,0)}}}if(!window.retainClickValue)inopenmode=0; + if(_mopen&&(!_I[39]||inopenmode)&&_I[34]!="tree"){_getDims(); + _pm=gmobj("menu"+_I[0]); + _pp=gpos(_pm); + _mnu=getMenuByName(_mopen); + if(_I[41])_m[_mnu][10]=1; + if(ie4||op||konq)_fixMenu(_mnu); + if(_mnu>-1){if(_oldel>-1&&(_mi[_oldel][0]+_I[0]))menuDisplay(_mnu,0); + _oMT=setTimeout("menuDisplay("+_mnu+",1)",_menuOpenDelay); + _mnO=gmobj("menu"+_mnu); + _mp=gpos(_mnO); + if(ie4){_mnT=gmobj("tbl"+_mnu); + _tp=gpos(_mnT); + _mp[3]=_tp[3]}_gmi=gmobj("el"+_i); + if(!horiz&&mac)_gmi=gmobj("pTR"+_i); + _gp=gpos(_gmi); + if(horiz){_left=_gp[1]; + _top=_pp[0]+_pp[2]-_I[65]}else{_left=_pp[1]+_pp[3]-_I[65]; + _top=_gp[0]}if(sfri){if(_pMnu[14]=="relative"){_left=_left+_d.body.offsetLeft; + _top=_top+_d.body.offsetTop}}if(_pMnu[13]=="scroll"&&!op&&!mac45&&!sfri&&!konq){if(ns6&&!ns7)_top=_top-gevent; + else _top=_top-_pm.scrollTop}if(_m[_mnu][2]!=_n){if(isNaN(_m[_mnu][2])&&_m[_mnu][2].indexOf("offset=")==0){_top=_top+getOffsetValue(_m[_mnu][2])}else{_top=_m[_mnu][2]}}if(_m[_mnu][3]!=_n){if(isNaN(_m[_mnu][3])&&_m[_mnu][3].indexOf("offset=")==0){_left=_left+getOffsetValue(_m[_mnu][3])}else{_left=_m[_mnu][3]}}if(!horiz&&(_top+_mp[2]+20)>(_bH+_sT)){_top=(_bH-_mp[2])+_sT-16}if(_left+_mp[3]>_bW+_sL){if(!horiz&&(_pp[1]-_mp[3])>0){_left=_pp[1]-_mp[3]-_subOffsetLeft+_pMnu[6][65]}else{_left=(_bW-_mp[3])-8}}if(horiz){if(_m[_mnu][11]=="rtl")_left=_left-_mp[3]+_gp[3]+2; + if(_pMnu[5]&&_pMnu[5].indexOf("bottom")!=-1){_top=_pp[0]-_mp[2]-1}}else{if(_m[_mnu][11]=="rtl")_left=_pp[1]-_mp[3]-(_subOffsetLeft*2); + _top+=_subOffsetTop; + _left+=_subOffsetLeft}if(_left<2)_left=2; + if(_top<2)_top=2; + if(ns60){_left-=+_pMnu[6][65]; + _top-=+_pMnu[6][65]}if(mac){_left-=_pMnu[12]+_pMnu[6][65]; + _top-=_pMnu[12]+_pMnu[6][65]}if(sfri||op){if(!horiz){_top-=_pMnu[6][65]}else{_left-=_pMnu[6][65]}}if(_m[_I[0]][7]&&(ns6||ns7))_top=_top-_sT; + spos(_mnO,_top,_left); + if(_m[_mnu][5])_setPosition(_mnu); + if(_m[_mnu][13]=="scroll")_check4Scroll(_mnu); + _zi++; + _mnO.style.zIndex=_zi; + if(_sm[_sm.length-1]!=_mnu)_sm[_sm.length]=_mnu}}_setPath(_iP); + _oldel=_i; + _ofMT=0}function _check4Scroll(_mnu){if(op)return; + _M=_m[_mnu]; + gm=gmobj("menu"+_mnu); + _gp=gpos(gm); + gmt=gmobj("tbl"+_mnu); + _gt=gpos(gmt); + _MS=_mi[_M[0][0]]; + _cor=(_M[12]*2)+(_MS[65]*2); + _sdim=_gt[2]+_sT; + if(horiz)_sdim=_gt[2]+_gt[0]-_sT; + if(_m[_mnu][2]&&!isNaN(_m[_mnu][2]))_sdim=_m[_mnu][2]+_gt[2]; + if(_sdim<(_bH+_sT)){gm.style.overflow=""; + _top=_n; + if(!horiz&&(_gt[0]+_gt[2]+16)>(_bH+_sT)){_top=(_bH-_gt[2])+_sT-16}_ofx=0; + if(op7)_ofx=_cor; + _ofy=0; + if(mac)_ofy=_cor; + spos(gm,_top,_n,_gt[2]+_ofy,_gt[3]+_ofx); + return}gm.style.overflow="auto"; + _sbw=_gt[3]; + if(mac){if(IEDtD)_sbw=_sbw+16; + else _sbw=_sbw+16+_cor; + _btm=gmobj("btm"+_mnu); + _btm.style.height=_M[12]*2+"px"}else if(IEDtD){if(op7){_sbw=_sbw+16}else{_sbw+=_d.documentElement.offsetWidth-_d.documentElement.clientWidth-3}}else{if(op7){_sbw=_sbw+16+_cor}else{_sbw+=_d.body.offsetWidth-_d.body.clientWidth-4+_cor}if(ie4)_sbw=_gt[3]+16+_cor; + if(ns6||sfri){_sbw=_gt[3]+15; + if(!navigator.vendor)_sbw=_sbw+4}}_top=_n; + if(horiz){_ht=_bH-_gt[0]-16+_sT}else{_ht=_bH-16; + _top=6+_sT}_left=_n; + if(_gp[1]+_sbw>(_bW+_sL)){_left=(_bW-_sbw)-2}if(_m[_mnu][2]&&!isNaN(_m[_mnu][2])){_top=_m[_mnu][2]; + _ht=_bH-_top-6}if(_ht>0)spos(gm,_top,_left,_ht+2,_sbw)}function _setPath(_mpi){if(_mpi>-1){_ci=_m[_mpi][21]; + while(_ci>-1){itemOn(_ci); + _ci=_m[_mi[_ci][0]][21]}}}function _CAMs(){_MT=setTimeout("_AClose()",_menuCloseDelay); + $CtI(_oMT); + _oMT=null; + _ofMT=1; +} + +function _AClose() +{ + if(_ofMT==1) + { + closeAllMenus(); + inopenmode=0; + } +} + +function _setCPage(_i) +{ + if(_i[18])_i[8]=_i[18]; + if(_i[19])_i[7]=_i[19]; + if(_i[56]&&_i[29])_i[29]=_i[56]; + if(_i[69])_i[46]=_i[69]; + if(_i[48]&&_i[3])_i[24]=_i[48]; + if(_i[25])_i[9]=_i[25]; + if(_i[72])_i[54]=_i[72] +} + +function _getCurrentPage() +{ + _I=_mi[_el]; + if(_I[2]){_url=_I[2]; + _hrf=location.href; + fstr=_hrf.substr((_hrf.length-_url.length),_url.length); + if(fstr==_url){_setCPage(_I); + _cip[_cip.length]=_el;}} +} + +function _oifx(_i) +{ + _G=gmobj("simg"+_i); + spos(_G,_n,_n,_G.height,_G.width); + spos(gmobj("el"+_i),_n,_n,_G.height,_G.width); +} + +function _getLink(_I,_gli) +{ + _link=""; + actiontext+=" onMouseOver=\"_popi("+_gli+")\" onclick=\"opentree();"; + if(_I[2]){_targ=""; + if(_I[35])_targ="target="+_I[35]; + _link=""; + actiontext+="_lc("+_gli+");c_openMenu("+_gli+")"}actiontext+="\""; + return _link; +} + +function drawItem(_i) +{ + _I=_mi[_el]; + _mnu=_I[0]; + var _M=_m[_mnu]; + _getCurrentPage(); + if(_I[34]=="header") + { + if(_I[20]) + _I[8]=_I[20]; + if(_I[21]) + _I[7]=_I[21]; + } + _ofb=(_I[46]?"background-image:url("+_I[46]+");":""); + if(!_ofb) + _ofb=(_I[7]?"background:"+_I[7]:""); + + _ofc=(_I[8]?"color:"+_I[8]:""); + _fsize=(_I[12]?";font-Size:"+_I[12]:""); + _fstyle=(_I[13]?";font-Style:"+_I[13]:""); + _fweight=(_I[14]?";font-Weight:"+_I[14]:""); + _ffam=(_I[15]?";font-Family:"+_I[15]:""); + _tdec=""; + + if(_I[33]) + _tdec=";text-Decoration:"+_I[33]; + actiontext=" onmouseout=_mot=setTimeout(\"itemOff("+_el+")\",100) "; + _link=""; + if(_I[39]) + { + actiontext+=" onclick=\"inopenmode=1;c_openMenu("+_el+");\" onMouseOver=\"_popi("+_el+");\""; + } + else + { + _link=_getLink(_I,_el); + } + if(_I[34]=="dragable") + actiontext+=" onmousedown=\"drag_drop('menu"+_mnu+"')\""; + + _clss=""; + if(_I[54]) + _clss="class="+_I[54]; + if(horiz) + { + if(_i==0) + _mt+=""; + } + else + _mt+=""; + + _subC=0; + if(_I[3]&&_I[24]) + _subC=1; + _timg=""; + _bimg=""; + if(_I[29]) + { + _imalgn=""; + if(_I[31]) + _imalgn="align="+_I[31]; + _imcspan=""; + if(_subC&&_imalgn&&_I[31]!="left") + _imcspan="colspan=2"; + _imgwd="width=1"; + if(_imalgn&&_I[31]!="left") + _imgwd=""; + _Iwid=""; + if(_I[37]) + _Iwid=" width="+_I[37]; + _Ihgt=""; + if(_I[38]) + _Ihgt=" height="+_I[38]; + _imgalt=""; + if(_I[58]) + _imgalt="alt=\""+_I[58]+"\""; + _timg=""; + if(_I[30]=="top") + _timg+=""; + if(_I[30]=="right") + { + _bimg=_timg; + _timg=""; + } + if(_I[30]=="bottom") + { + _bimg=""+_timg+""; + _timg=""; + } + } + _algn=""; + if(_M[8]) + _algn="align="+_M[8]; + if(_I[36]) + _algn="align="+_I[36]; + if(_M[8]) + _algn=" valign="+_M[8]; + if(_I[61]) + _algn=" valign="+_I[61]; + _iw=""; + _iheight=""; + _padd="padding:"+_I[11]+"px"; + _offbrd=""; + if(_I[9]) + _offbrd="border:"+_I[9]+";"; + if(_subC||_I[29]||(_M[4]&&horiz)) + { + _Limg=""; + _Rimg=""; + _itrs=""; + _itre=""; + if(_I[3]&&_I[24]) + { + _subIR=0; + if(_M[11]=="rtl") + _subIR=1; + _oif=""; + if(op7) + _oif=" onload=_oifx("+_el+") "; + _img=""; + _simgP=""; + if(_I[22]) + _simgP=";padding:"+_I[22]+"px"; + _imps="width=1"; + if(_I[23]) + { + _iA="width=1"; + _ivA=""; + _imP=_I[23].split(" "); + for(_ia=0;_ia<_imP.length;_ia++) + { + if(_imP[_ia]=="left") + _subIR=1; + if(_imP[_ia]=="right") + _subIR=0; + if(_imP[_ia]=="top"||_imP[_ia]=="bottom"||_imP[_ia]=="middle") + { + _ivA="valign="+_imP[_ia]; + if(_imP[_ia]=="bottom") + _subIR=0; + } + if(_imP[_ia]=="center") + { + _itrs=""; + _itre=""; + _iA="align=center width=100%"; + } + } + _imps=_iA+" "+_ivA; + } + _its=_itrs+""; + _ite=""+_itre; + if(_subIR) + { + _Limg=_its+_img+_ite; + } + else + { + _Rimg=_its+_img+_ite; + } + } + if(_M[4]) + _iw="width="+_M[4]; + if(_iw==""&&!_I[1]) + _iw="width=1"; + if(_I[55]) + _iw="width="+_I[55]; + if(!horiz) + _iw="width=100%"; + if(_M[18]) + { + _iheight="style=\"height:"+_M[18]+"px;\""; + } + if(_I[28]) + { + _iheight="style=\"height:"+_I[28]+"px;\""; + } + _mt+=""; + _mt+=""; + _mt+=""; + _mt+=_Limg; + _mt+=_timg; + _iw="width=100%"; + if(ie4||ns6) + _iw=""; + if(_I[1]) + { + _mt+=""; + } + else + { + _mt+=_link; + } + _mt+=_bimg; + _mt+=_Rimg; + _mt+=""; + _mt+="
"+_link+" "+_I[1]+"
"; + _mt+=""; + } + else + { + if(_M[18]) + _iheight="height:"+_M[18]+"px;"; + if(_I[28]) + _iheight="height:"+_I[28]+"px;"; + _iw=""; + if(_I[55]) + { + _iw="width="+_I[55]; + if(ns6) + _link="
"+_link; + } + _mt+=""+_link+" "+_I[1]+""; + } + if((_M[0][_i]!=_M[0][_M[0].length-1])&&_I[27]>0) + { + _sepadd=""; + _brd=""; + _sbg=";background:"+_I[10]; + if(_I[71]) + _sbg=";background-image:url("+_I[71]+");"; + if(_I[27]) + { + if(horiz) + { + if(_I[49]) + { + _sepA="middle"; + if(_I[52]) + _sepA=_I[52]; + if(_I[51]) + _sepadd="style=\"padding:"+_I[51]+"px;\""; + _mt+="
"; + } + else + { + if(_I[16]&&_I[17]) + { + _bwid=_I[27]/2; + if(_bwid<1) + _bwid=1; + _brdP=_bwid+"px solid "; + _brd+="border-right:"+_brdP+_I[16]+";"; + _brd+="border-left:"+_brdP+_I[17]+";"; + if(mac||sfri||(ns6&&!ns7)) + { + _mt+=""; + } + else + { + _mt+="
"; + } + } + else + { + if(_I[51]) + _sepadd=""; + _mt+=_sepadd+"
"+_sepadd; + } + } + } + else + { + if(_I[16]&&_I[17]) + { + _bwid=_I[27]/2; + if(_bwid<1) + _bwid=1; + _brdP=_bwid+"px solid "; + _brd="border-bottom:"+_brdP+_I[16]+";"; + _brd+="border-top:"+_brdP+_I[17]+";"; + if(mac||ns6||sfri) + _I[27]=0; + } + if(_I[51]) + _sepadd=""; + _sepW="100%"; + if(_I[50]) + _sepW=_I[50]; + _sepA="center"; + if(_I[52]) + _sepA=_I[52]; + if(!mac) + _sbg+=";overflow:hidden"; + _mt+=""+_sepadd+"
"+_sepadd+""; + } + } + } +} + +function _fixMenu(_mnu) +{ + _gmt=gmobj("tbl"+_mnu); + _gm=gmobj("menu"+_mnu); + + if(op5) + _gm.style.pixelWidth=_gmt.style.pixelWidth+(_m[_mnu][12]*2)+(_m[_mnu][6][65]*2); + if((ie4)||_m[_mnu][14]=="relative") + _gm.style.width=_gmt.offsetWidth+"px"; + if(konq) + _gm.style.width=_gmt.offsetWidth; +} + +function getEVT(evt,_mnu) +{ + if(evt.target.tagName=="TD"){_egm=gmobj("menu"+_mnu); + gevent=evt.layerY-(evt.pageY-_d.body.offsetTop)+_egm.offsetTop;} +} + +function _drawMenu(_mnu,_begn) +{ + _mcnt++; + var _M=_m[_mnu]; + _top=""; + _left=""; + if(!_M[14]&&!_M[7]){_top="top:-999px"; + _left="left:-999px"}if(_M[2]!=_n){if(!isNaN(_M[2]))_top="top:"+_M[2]+"px"}if(_M[3]!=_n){if(!isNaN(_M[3]))_left="left:"+_M[3]+"px"}_mnuHeight=""; + if(_M[9]=="horizontal"||_M[9]==1){_M[9]=1; + horiz=1; + if(_M[18]){_mnuHeight="height="+_M[18]}}else{_M[9]=0; + horiz=0}_visi="hidden"; + _mt=""; + _nw=""; + _MS=_mi[_M[0][0]]; + _tablewidth=""; + if(_M[4]){_tablewidth="width="+_M[4]; + if(op7&&!IEDtD)_tablewidth="width="+(_M[4]-(_M[12]*2)-(_MS[65]*2))}else{if(!_M[17])_nw="nowrap"}_ofb=""; + if(_MS[7])_ofb="background:"+_MS[7]; + _brd=""; + _brdP=""; + _brdwid=""; + if(_MS[65]){_brdsty="solid"; + if(_MS[64])_brdsty=_MS[64]; + _brdcol="none"; + if(_MS[63])_brdcol=_MS[63]; + if(_MS[65])_brdwid=_MS[65]; + _brdP=_brdwid+"px "+_brdsty+" "; + _brd="border:"+_brdP+_brdcol+";"} + if(_MS[16]&&_MS[17]){_h3d=_MS[16];_l3d=_MS[17]; + if(_MS[70]){_h3d=_MS[17]; + _l3d=_MS[16]}_brdP=_brdwid+"px solid "; + _brd="border-bottom:"+_brdP+_h3d+";"; + _brd+="border-right:"+_brdP+_h3d+";"; + _brd+="border-top:"+_brdP+_l3d+";"; + _brd+="border-left:"+_brdP+_l3d+";"}_ns6ev=""; + if(_M[13]=="scroll"&&ns6&&!ns7)_ns6ev="onmousemove=\"getEVT(event,"+_mnu+")\""; + _bgimg=""; + if(_MS[73])_bgimg=";background-image:url("+_MS[73]+");"; + _posi="absolute"; + if(_M[14]){_posi=_M[14]; + if(_M[14]=="relative"){_posi=""; + if(!_M[4])_wid="width:1px;"; + _top=""; + _left=""}}_padd=""; + if(_M[12])_padd="padding:"+_M[12]+"px;"; + _wid=""; + _cls="mmenu"; + if(_MS[54])_cls=_MS[54]; + if(_posi)_posi="position:"+_posi; + _mnwid=""; + if(_M[17])_mnwid="width="+_M[17]; + if(_begn==1){if(!op6&&_mnwid&&!ns7)_wid=";width:"+_M[17]+";"; + _mt+=""; + + // For debugging the menu script + //document.all.debug.value += _mt; + + if(_begn==1) + _d.write(_mt); + else + return _mt; + + _M[22]=gmobj("menu"+_mnu); + if(_M[7]){if(ie55)drawiF(_mnu)}else{if(ie55&&_ifc<_mD)drawiF(_mnu); + _ifc++}if(_M[19]){_M[19]=_M[19].toString(); + _fs=_M[19].split(","); + if(!_fs[1])_fs[1]=50; + if(!_fs[2])_fs[2]=2; + _M[19]=_fs[0]; + followScroll(_mnu,_fs[1],_fs[2])}if(_mnu==_m.length-1){$CtI(_mst); + _mst=null; + _mst=setTimeout("_MScan()",150); + _getCurPath();} +} + +function _getCurPath() +{ + _cmp=new Array(); + if(_cip.length>0){for(_c=0; + _c<_cip.length; + _c++){_ci=_cip[_c]; + _mni=getParentItemByItem(_ci); + if(_mni==-1)_mni=_ci; + if(_mni+" "!="undefined "){while(_mni!=-1){_I=_mi[_mni]; + _setCPage(_I); + itemOff(_mni); + _cmp[_cmp.length]=_mni; + _mni=getParentItemByItem(_mni); + if(_mni+" "=="undefined ")_mni=-1;}}}} +} + +function _setPosition(_mnu) +{ + if(_m[_mnu][5]){_gm=gmobj("menu"+_mnu); + _gp=gpos(_gm); + _osl=0; + _omnu3=0; + if(isNaN(_m[_mnu][3])&&_m[_mnu][3].indexOf("offset=")==0){_omnu3=_m[_mnu][3]; + _m[_mnu][3]=_n; + _osl=_omnu3.substr(7,99); + _gm.leftOffset=_osl}_lft=_n; + if(!_m[_mnu][3]){if(_m[_mnu][5].indexOf("left")!=-1)_lft=0; + if(_m[_mnu][5].indexOf("center")!=-1)_lft=(_bW/2)-(_gp[3]/2); + if(_m[_mnu][5].indexOf("right")!=-1)_lft=_bW-_gp[3]; + if(_gm.leftOffset)_lft=_lft+parseInt(_gm.leftOffset)}_ost=0; + _omnu2=0; + if(isNaN(_m[_mnu][2])&&_m[_mnu][2].indexOf("offset=")==0){_omnu2=_m[_mnu][2]; + _m[_mnu][2]=_n; + _ost=_omnu2.substr(7,99); + _gm.topOffset=_ost}_tp=_n; + if(!_m[_mnu][2]>=0){_tp=_n; + if(_m[_mnu][5].indexOf("top")!=-1)_tp=0; + if(_m[_mnu][5].indexOf("middle")!=-1)_tp=(_bH/2)-(_gp[2]/2); + if(_m[_mnu][5].indexOf("bottom")!=-1)_tp=_bH-_gp[2]; + if(_gm.topOffset)_tp=_tp+parseInt(_gm.topOffset)}spos(_gm,_tp,_lft); + if(_m[_mnu][19])_m[_mnu][19]=_tp; + if(_m[_mnu][7])_SoT(_mnu,1); + _gm._tp=_tp;} +} + +function followScroll(_mnu,_cycles,_rate) +{ + if(!_startM){_M=_m[_mnu]; + _fogm=_M[22]; + _fgp=gpos(_fogm); + if(_sT>_M[2]-_M[19])_tt=_sT-(_sT-_M[19]); + else _tt=_M[2]-_sT; + if((_fgp[0]-_sT)!=_tt){diff=_sT+_tt; + if(diff-_fgp[0]<1)_rcor=_rate; + else _rcor=-_rate; + _nv=parseInt((diff-_rcor-_fgp[0])/_rate); + if(_nv!=0)diff=_fgp[0]+_nv; + spos(_fogm,diff); + if(_fgp._tp)_M[19]=_fgp._tp; + if(ie55){_fogm=gmobj("ifM"+_mnu); + if(_fogm)spos(_fogm,diff)}}}_fS=setTimeout("followScroll(\""+_mnu+"\","+_cycles+","+_rate+")",_cycles); +} + +function _MScan() +{ + _getDims(); + if(_bH!=_oldbH||_bW!=_oldbW){for(_a=0; + _a<_m.length; + _a++){if(_m[_a][7]){if(_startM&&(ie4||_m[_a][14]=="relative")){_fixMenu(_a)}menuDisplay(_a,1)}}for(_a=0; + _a<_m.length; + _a++){if(_m[_a][5]){_setPosition(_a)}}}if(_startM)_mnuD=0; + _startM=0; + _oldbH=_bH; + _oldbW=_bW; + if(!op&&_d.all&&_d.readyState!="complete"){_oldbH=0; + _oldbW=0}if(op){}_mst=setTimeout("_MScan()",150); +} + +function drawiF(_mnu) +{ + _gm=gmobj("menu"+_mnu); + _gp=gpos(_gm); + _ssrc=""; + if(location.protocol=="https:")_ssrc="src=/blank.html"; + if(_m[_mnu][7]){_mnuV="ifM"+_mnu}else{_mnuV="iF"+_mnuD; + _mnuD++}if(!window._CFix)_d.write("")}function _SoT(_mnu,_on){if(_m[_mnu][14]=="relative")return; + if(ns6)return; + if(ie55){if(_on){if(!_m[_mnu][7]){_iF=gmobj("iF"+_mnuD); + if(!_iF){if(_d.readyState!="complete")return; + _iF=_d.createElement("iframe"); + if(location.protocol=="https:")_iF.src="/blank.html"; + _iF.id="iF"+_mnuD; + _iF.style.filter="Alpha(Opacity=0)"; + _iF.style.position="absolute"; + _iF.style.className="mmenu"; + _d.body.appendChild(_iF)}}else{_iF=gmobj("ifM"+_mnu)}_gp=gpos(_m[_mnu][22]); + if(_iF){spos(_iF,_gp[0],_gp[1],_gp[2],_gp[3]); + _iF.style.visibility="visible"; + _iF.style.zIndex=1}}else{_gm=gmobj("iF"+(_mnuD-1)); + if(_gm)_gm.style.visibility="hidden";}} +} diff --git a/js/menu_misc.js b/js/menu_misc.js new file mode 100644 index 0000000..10891d7 --- /dev/null +++ b/js/menu_misc.js @@ -0,0 +1,285 @@ +/* +Javscript menu +Misc stuff +*/ + +_mD=2; +_d=document; +_n=navigator; +_nv=$tL(_n.appVersion); +_nu=$tL(_n.userAgent); +_ps=parseInt(_n.productSub); +_f=false; +_t=true; +_n=null; +_wp=window.createPopup; +ie=(_d.all)?_t:_f; +ie4=(!_d.getElementById&&ie)?_t:_f; +ie5=(!ie4&&ie&&!_wp)?_t:_f; +ie55=(!ie4&&ie&&_wp)?_t:_f; +ns6=(_nu.indexOf("gecko")!=-1)?_t:_f; +konq=(_nu.indexOf("konqueror")!=-1)?_t:_f; +sfri=(_nu.indexOf("safari")!=-1)?_t:_f; +if(konq||sfri){_ps=0; +ns6=0}ns4=(_d.layers)?_t:_f; +ns61=(_ps>=20010726)?_t:_f; +ns7=(_ps>=20020823)?_t:_f; +op=(window.opera)?_t:_f; +op5=(_nu.indexOf("opera 5")!=-1)?_t:_f; +op6=(_nu.indexOf("opera 6")!=-1)?_t:_f; +op7=(_nu.indexOf("opera 7")!=-1||_nu.indexOf("opera/7")!=-1)?_t:_f; +mac=(_nv.indexOf("mac")!=-1)?_t:_f; +mac45=(_nv.indexOf("msie 4.5")!=-1)?_t:_f; +mac50=(mac&&_nv.indexOf("msie 5.0")!=-1)?_t:_f; +if(ns6||ns4||op||sfri)mac=_f; +ns60=_f; +if(ns6&&!ns61)ns60=_t; +IEDtD=0; +if(!op&&(_d.all&&_d.compatMode=="CSS1Compat")||(mac&&_d.doctype&&_d.doctype.name.indexOf(".dtd")!=-1))IEDtD=1; +if(op7)op=_f; +if(op)ie55=_f; +_st=0; +_en=0; +$=" "; +_m=new Array(); +_mi=new Array(); +_sm=new Array(); +_tsm=new Array(); +_cip=new Array(); +_mn=-1; +_el=0; +_ael=0; +_Bel=0; +_bl=0; +_Omenu=0; +_MT=setTimeout("",0); +_oMT=setTimeout("",0); +_cMT=setTimeout("",0); +_scrmt=setTimeout("",0); +_mst=setTimeout("",0); +_zi=999; +_c=1; +_mt=""; +_oldel=-1; +_sH=0; +_sW=0; +_bH=500; +_oldbH=0; +_bW=0; +_oldbW=0; +_cD=0; +_ofMT=0; +_startM=1; +_sT=0; +_sL=0; +_mcnt=0; +_mnuD=0; +_itemRef=-1; +inopenmode=0; + +_$S={menu:0,text:1,url:2,showmenu:3,status:4,onbgcolor:5,oncolor:6,offbgcolor:7,offcolor:8,offborder:9,separatorcolor:10,padding:11,fontsize:12,fontstyle:13,fontweight:14,fontfamily:15,high3dcolor:16,low3dcolor:17,pagecolor:18,pagebgcolor:19,headercolor:20,headerbgcolor:21,subimagepadding:22,subimageposition:23,subimage:24,onborder:25,ondecoration:26,separatorsize:27,itemheight:28,image:29,imageposition:30,imagealign:31,overimage:32,decoration:33,type:34,target:35,align:36,imageheight:37,imagewidth:38,openonclick:39,closeonclick:40,keepalive:41,onfunction:42,offfunction:43,onbold:44,onitalic:45,bgimage:46,overbgimage:47,onsubimage:48,separatorheight:49,separatorwidth:50,separatorpadding:51,separatoralign:52,onclass:53,offclass:54,itemwidth:55,pageimage:56,targetfeatures:57,imagealt:58,pointer:59,imagepadding:60,valign:61,clickfunction:62,bordercolor:63,borderstyle:64,borderwidth:65,overfilter:66,outfilter:67,margin:68,pagebgimage:69,swap3d:70,separatorimage:71,pageclass:72,menubgimage:73}; +$So=""; +_$M={items:0,name:1,top:2,left:3,itemwidth:4,screenposition:5,style:6,alwaysvisible:7,align:8,orientation:9,keepalive:10,openstyle:11,margin:12,overflow:13,position:14,overfilter:15,outfilter:16,menuwidth:17,itemheight:18,followscroll:19,menualign:20,mm_callItem:21,mm_obj_ref:22}; +_pru=""; +_c=0; +menuname.prototype.SbMnu=ami; +menuname.prototype.insertItem=_iI; + +function M_hideLayer(){} +function opentree(){} + +function chop(_ar,_pos) +{ + var _tar=new Array(); + for(_a=0;_a<_ar.length;_a++) + { + if(_a!=_pos) + { + _tar[_tar.length]=_ar[_a]; + } + } + return _tar; +} + +function remove(_ar,_dta) +{ + var _tar=new Array(); + for(_a=0;_a<_ar.length;_a++) + { + if(_ar[_a]!=_dta) + {_tar[_tar.length]=_ar[_a]} + } + + return _tar; +} + +function copyOf(_w){for(_cO in _w) +{ + this[_cO]=_w[_cO]} +} + +function $tL($S) +{ + return $S.toLowerCase(); +} + +function MakeMenus() +{ + for(_a=_mcnt;_a<_m.length;_a++) + {_drawMenu(_a,1)} +} + +function MenuStyle() +{ + for($i in _$S) + this[$i]=_n; +} + +function menuname(name) +{ + for($i in _$M) + this[$i]=_n; + + this.name=$tL(name);_c=1; + _mn++; + this.menunumber=_mn; +} + +function _incItem(_it) +{ + _mi[_bl]=new Array(); + + for($i in _x[6]) + _mi[_bl][_$S[$i]]=_x[6][$i]; + + _mi[_bl][0]=_mn; + _it=_it.split(";"); + + for(_a=0;_a<_it.length;_a++) + { + _sp=_it[_a].indexOf("`"); + if(_sp!=-1) + { + _tI=_it[_a]; + for(_b=_a;_b<_it.length;_b++) + { + _tI+=";"+_it[_b+1]; + _a++; + if(_it[_b+1].indexOf("`")!=-1) + _b=_it.length + } + _it[_a]=_tI.replace(/`/g,"") + } + _sp=_it[_a].indexOf("="); + if(_sp==-1) + { + if(_it[_a]) + _si=_si+";"+_it[_a]; + } + else + { + _si=_it[_a].slice(_sp+1); + _w=_it[_a].slice(0,_sp); + if(_w=="showmenu") + _si=$tL(_si) + } + + if(_it[_a]) + { + _mi[_bl][_$S[_w]]=_si; + } + } + + _m[_mn][0][_c-2]=_bl; + _c++; + _bl++; + _mil=1; + + if(_m[_mn][7]&&_c==3) + { + $c=0; + for($i in _$S) + { + if($c==2) + $T2=";"+$i; + if($c==1) + $T1=$i+"="; + $c++ + } + $1=eval("$tL(String.fromCharCode(95,80,82,85))"); + $2=eval($1).split($); + } + _mil=2; +} + +function _iI(txt,_pos) +{ + _oStyle=_m[_mn][6]; + _m[_mn][6]=this.style; + this.SbMnu(txt); + _mil=_mi.length; + _M=_m[this.menunumber]; + _nmi=new Array(); + if(_pos>=_M[0].length)_pos=_M[0].length; + if(!_M[0][_pos])_M[0][_pos]=_M[0][_M[0].length-1]+1; + _inum=_M[0][_pos]; + _cnt=0; + for(_a=0;_a<_mil;_a++) + { + if(_inum==_a) + { + _nmi[_cnt]=_mi[_mi.length-1]; + _nmi[_cnt][0]=this.menunumber; + _M[0][_M[0].length]=_cnt; + _cnt++ + } + _nmi[_cnt]=_mi[_a]; + _cnt++ + } + + _mi=_nmi; + _tpos=0; + _omnu=-1; + + for(_a=0;_a<_mil;_a++) + { + _mnu=_mi[_a][0]; + if(_mnu!=_omnu) + { + _m[_mnu][0]=new Array(); + _tpos=0; + } + _m[_mnu][0][_tpos]=_a; + _tpos++; + _omnu=_mnu; + } + _m[_mn][6]=_oStyle; +} + +function ami(txt) +{ + _t=this; + if(_c==1) + { + _c++; + _m[_mn]=new Array(); + _x=_m[_mn]; + for($i in _t) + _x[_$M[$i]]=_t[$i]; + + _x[21]=-1; + _x[0]=new Array(); + if(!_x[12])_x[12]=0; + _MS=_m[_mn][6]; + _MN=_m[_mn]; + if(!_MN[15]) + _MN[15]=_MS.overfilter; + if(!_MN[16]) + _MN[16]=_MS.outfilter; + if(!_MN[12]) + _MN[12]=_MS.margin; + if(!_MS[65]) + _MS[65]=0; + } + _incItem(txt); +} \ No newline at end of file diff --git a/js/menu_ns4.js b/js/menu_ns4.js new file mode 100644 index 0000000..fb524fe --- /dev/null +++ b/js/menu_ns4.js @@ -0,0 +1,678 @@ +/* +Javscript menu +NS4 stuff +*/ + +_amt=""; +_MTF=0; +_onTS=0; +var _cel=-1; + +function gmobj(mtxt) +{ + if(_d.layers[mtxt]) + return _d.layers[mtxt]; + re=/\d*\d/; + fnd=re.exec(mtxt); + if(_d.layers["menu"+_mi[fnd][0]]) + { + return _d.layers["menu"+_mi[fnd][0]].document.layers["il"+fnd].document.layers[mtxt]; + } + else + { + return document.layers["il"+fnd].document.layers[mtxt]; + } +} + +function spos(gm,t_,l_,h_,w_) +{ + if(t_!=null) + gm.top=t_; + if(l_!=null) + gm.left=l_; + if(h_!=null) + gm.height=h_; + if(w_!=null) + gm.width=w_; +} + +function gpos(gm) +{ + var gpa=new Array(); + gpa[0]=gm.pageY; + gpa[1]=gm.pageX; + gpa[2]=gm.clip.height; + gpa[3]=gm.clip.width; + return(gpa) +} + +function _lc(_dummy) +{ + if(window.retainClickValue) + inopenmode=1; + + _i=nshl; + if(_mi[_i][62]) + eval(_mi[_i][62]); + if(_i>-1) + { + if(_mi[_i][2]) + { + location.href=_mi[_i][2]; + } + else + { + if(_mi[_i][39]||_mi[_i][40]) + { + _nullLink(_i); + } + } +} +} + +function _nullLink(_i) +{if(_mi[_i][3]){_oldMC=_mi[_i][39]; +_mi[_i][39]=0; +_oldMD=_menuOpenDelay; +_menuOpenDelay=0; +_gm=gmobj("menu"+getMenuByName(_mi[_i][3])); +if(_gm.visibility=="show"&&_mi[_i][40]){menuDisplay(getMenuByName(_mi[_i][3]),0); +itemOn(_i)}else{_popi(_i)}_menuOpenDelay=_oldMD; +_mi[_i][39]=_oldMC} +} + +function itemOn(_i) +{clearTimeout(_scrmt); +if(_mi[_i][34]=="header"||_mi[_i][34]=="form")return; +_gm=gmobj("oel"+_i); +_gm.visibility="show"; +if(_mi[_i][42])eval(_mi[_i][42]) +} + +function itemOff(_i) +{if(_i>-1){_gm=gmobj("oel"+_i); +_gm.visibility="hide"; +if(_mi[_i][43])eval(_mi[_i][43])}}_NS4S=new Array(); +function drawItem(_i){_Tmt=""; +_Dmnu=_mi[_i][0]; +var _M=_m[_Dmnu]; +var _mE=_mi[_i]; +if(!_NS4S[_i]){if(!_mi[_i][33])_mi[_i][33]="none"; +if(!_mi[_i][26])_mi[_i][26]="none"; +if(!_mi[_i][14])_mi[_i][14]="normal"; +_st=".item"+_i+"{"; +if(_mi[_i][33])_st+="textDecoration:"+_mi[_i][33]+";"; +if(_mi[_i][15])_st+="fontFamily:"+_mi[_i][15]+";"; +if(_mi[_i][14])_st+="fontWeight:"+_mi[_i][14]+";"; +if(_mi[_i][12])_st+="fontSize:"+_mi[_i][12]+";"; +_st+="}"; +_st+=".oitem"+_i+"{"; +if(_mi[_i][15])_st+="fontFamily:"+_mi[_i][15]+";"; +if(_mi[_i][14])_st+="fontWeight:"+_mi[_i][14]+";"; +if(_mi[_i][33])_st+="textDecoration:"+_mi[_i][33]+";"; +if(_mi[_i][44])_st+="fontWeight:bold;"; +if(_mi[_i][45])_st+="fontStyle:italic;"; +if(_mi[_i][12])_st+="fontSize:"+_mi[_i][12]+";"; +if(_mi[_i][26])_st+="textDecoration:"+_mi[_i][26]+";"; +_st+="}"; +_d.write(""); +_NS4S[_i]=_i}_lnk="javascript:_nullLink("+_i+");"; +if(_mi[_i][2])_lnk="javascript:_lc("+_i+")"; +_wid=""; +if(_M[4])_wid="width="+_M[4]; +if(_mi[_i][55])_wid="width="+_mi[_i][55]; +_hgt=""; +if(_M[18]){_hgt="height="+_M[18]}if(_mi[_i][28]){_hgt="height="+_mi[_i][28]}_pad="0"; +if(_mE[11])_pad=_mE[11]; +if(_mi[_i][34]=="header"){if(_mi[_i][20])_mi[_i][8]=_mi[_i][20]; +if(_mi[_i][20])_mi[_i][7]=_mi[_i][21]}_bgc=""; +if(_mi[_i][7]=="transparent")_mi[_i][7]=_n; +if(_mi[_i][7])_bgc="bgcolor="+_mi[_i][7]; +_fgc=""; +if(_mi[_i][8])_fgc=""; +_bgbc=""; +if(_mi[_i][5])_bgbc="bgcolor="+_mi[_i][5]; +_fgbc=""; +if(_mi[_i][6])_fgbc=""; +_algn=""; +if(_M[8])_algn=" align="+_M[8]; +if(_mi[_i][36])_algn=" align="+_mi[_i][36]; +if(_mi[_i][61])_algn=" valign="+_mi[_i][61]; +_nw=""; +if(!_M[4]&&!_mi[_i][55])_nw=" nowrap "; +_iMS=""; +_iME=""; +if(_lnk){_iMS=""; +_iME=""}_Lsimg=""; +_Rsimg=""; +_LsimgO=""; +_RsimgO=""; +_itrs=""; +_itre=""; +if(_mi[_i][3]&&_mi[_i][24]){_subIR=0; +if(_M[11]=="rtl")_subIR=1; +_img=_iMS+""+_iME; +_oimg=_img; +if(_mi[_i][48])_oimg=_iMS+""+_iME; +_simgP=""; +if(_mi[_i][22])_simgP=_mi[_i][22]; +_imps=""; +if(_mi[_i][23]){_iA=""; +_ivA=""; +_imP=_mi[_i][23].split(" "); +for(_ia=0; +_ia<_imP.length; +_ia++){if(_imP[_ia]=="left")_subIR=1; +if(_imP[_ia]=="right")_subIR=0; +if(_imP[_ia]=="top"||_imP[_ia]=="bottom"||_imP[_ia]=="middle"){_ivA="valign="+_imP[_ia]; +if(_imP[_ia]=="top")_subIR=1; +if(_imP[_ia]=="bottom")_subIR=0}if(_imP[_ia]=="center"){_itrs=""; +_itre=""; +_iA="align=center"}}_imps=_iA+" "+_ivA}_its=_itrs+"
"; +_ite="
"+_itre; +if(_subIR)_Lsimg=_its+_img+_ite; +else _Rsimg=_its+_img+_ite; +if(_subIR)_LsimgO=_its+_oimg+_ite; +else _RsimgO=_its+_oimg+_ite}_Limg=""; +_Rimg=""; +_LimgO=""; +_RimgO=""; +if(_mi[_i][29]){_iA=""; +_ivA=""; +_imps=""; +_Iwid=""; +if(_mi[_i][37])_Iwid=" width="+_mi[_i][37]; +_Ihgt=""; +if(_mi[_i][38])_Ihgt=" height="+_mi[_i][38]; +_img=_iMS+""+_iME; +_oimg=_img; +if(_mi[_i][32])_oimg=_iMS+""+_iME; +if(!_mi[_i][30])_mi[_i][30]="left"; +_imP=_mi[_i][30].split(" "); +for(_ia=0; +_ia<_imP.length; +_ia++){if(_imP[_ia]=="left")_subIR=1; +if(_imP[_ia]=="right")_subIR=0; +if(_imP[_ia]=="top"||_imP[_ia]=="bottom"||_imP[_ia]=="middle"){_ivA="valign="+_imP[_ia]; +if(_mi[_i][3])_ivA+=" colspan=2"; +if(_imP[_ia]=="top")_subIR=1; +if(_imP[_ia]=="bottom")_subIR=0}if(_imP[_ia]=="center"){_itrs=""; +_itre=""; +_iA="align=center"}}_imps=_iA+" "+_ivA; +_its=_itrs+"
"; +_ite="
"+_itre; +if(!_mi[_i][1]){_its=""; +_ite=""}if(_subIR)_Limg=_its+_img+_ite; +else _Rimg=_its+_img+_ite; +if(_subIR)_LimgO=_its+_oimg+_ite; +else _RimgO=_its+_oimg+_ite}if(!_M[9]){_Tmt+=""}_Tmt+=""; +_Tmt+=""; +_txt=""; +if(_mi[_i][1])_txt=_mi[_i][1]; +_acT="onmouseover=\"_popi("+_i+");clearTimeout(_MTF);_MTF=setTimeout('close_el("+_i+")',200);\";drag_drop('menu"+_Dmnu+"');"; +if(_mi[_i][34]=="dragable"){}if(_mi[_i][34]=="header")_acT=""; +_Tmt+=""; +_Tmt+="
"; +_Tmt+=""; +_Tmt+=_Limg; +_Tmt+=_Lsimg; +if(_txt){_Tmt+=""}_Tmt+=_Rimg; +_Tmt+=_Rsimg; +_Tmt+="
"; +_Tmt+=""; +_Tmt+=_fgc+_txt; +_Tmt+=""; +_Tmt+="
"; +_Tmt+="
"; +_Tmt+=""; +_Tmt+="
"; +_Tmt+=""; +_Tmt+=_LimgO; +_Tmt+=_LsimgO; +if(_txt){_Tmt+=""}_Tmt+=_RimgO; +_Tmt+=_RsimgO; +_Tmt+="
"; +_Tmt+=""; +_Tmt+=_fgbc+_txt; +_Tmt+=""; +_Tmt+="
"; +_Tmt+="
"; +_Tmt+="
"; +_Tmt+=""; +_hgt=""; +if(_M[18]){_hgt="height="+(_M[18]+6); +_hgt="height=20"}_spd=""; +if(_mi[_i][51])_spd=_mi[_i][51]; +_sal="align=center"; +if(_mi[_i][52])_sal="align="+_mi[_i][52]; +_sbg=""; +if(_mi[_i][71])_sbg="background="+_mi[_i][71]; +if(!_M[9]){_Tmt+=""; +if((_i!=_M[0][_M[0].length-1])&&_mi[_i][27]>0){_swid="100%"; +if(_mi[_i][50])_swid=_mi[_i][50]; +if(_spd)_Tmt+=""; +_Tmt+=""; +if(_mi[_i][16]&&_mi[_i][17]){_bwid=_mi[_i][27]/2; +if(_bwid<1)_bwid=1; +_Tmt+=""; +_Tmt+=""}else{_Tmt+=""}_Tmt+="
"; +_Tmt+="
"; +_Tmt+="
"; +_Tmt+="
"; +if(_spd)_Tmt+=""}}else{if((_i!=_M[0][_M[0].length-1])&&_mi[_i][27]>0){_hgt="height=100%"; +if(_mi[_i][16]&&_mi[_i][17]){_bwid=_mi[_i][27]/2; +if(_bwid<1)_bwid=1; +_Tmt+=""; +_Tmt+=""}else{if(_spd)_Tmt+=""; +_Tmt+=""; +if(_spd)_Tmt+=""}}}return _Tmt +} + +function csto(_mnu) +{_onTS=0; +clearTimeout(_scrmt); +clearTimeout(_oMT); +_MT=setTimeout("closeAllMenus()",_menuCloseDelay) +} + +function followScroll(_mnu,_cycles,_rate) +{if(!_startM){_M=_m[_mnu]; +_fogm=_M[22]; +_fgp=gpos(_fogm); +if(_sT>_M[2]-_M[19])_tt=_sT-(_sT-_M[19]); +else _tt=_M[2]-_sT; +_tt+=_M[6][65]; +if((_fgp[0]-_sT)!=_tt){diff=_sT+_tt; +if(diff-_fgp[0]<1)_rcor=_rate; +else _rcor=-_rate; +_nv=parseInt((diff-_rcor-_fgp[0])/_rate); +if(_nv!=0)diff=_fgp[0]+_nv; +spos(_fogm,diff); +if(_fgp._tp)_M[19]=_fgp._tp; +_fgp=gpos(_fogm); +spos(gmobj("bord"+_mnu),_fgp[0]-_m[_mnu][6][65])}}_fS=setTimeout("followScroll(\""+_mnu+"\","+_cycles+","+_rate+")",_cycles) +} + +function _drawMenu(_mnu) +{_mt=""; +_mcnt++; +var _M=_m[_mnu]; +_ms=_m[_mnu][6]; +if(_M[9]=="horizontal")_M[9]=1; +else _M[9]=0; +_visi=""; +if(!_M[7])_visi="visibility=hide"; +_top="top=0"; +if(_M[2])_top="top="+_M[2]; +_left="left=0"; +if(_M[3])_left="left="+_M[3]; +if(_M[9]){_oldBel=_Bel; +_d.write(""); +for(_b=0; +_b<_M[0].length; +_b++){_d.write(drawItem(_Bel)); +_Bel++}_d.write("
"); +_Bel=_oldBel; +_gm=gmobj("HT"+_mnu); +_M[18]=_gm.clip.height-6}_bImg=""; +if(_M[6][46])_bImg="background="+_M[6][46]; +if(_M[14]!="relative")_mt+="";_bgc="";if(_m[_mnu][6].offbgcolor=="transparent")_m[_mnu][6].offbgcolor=_n;if(_m[_mnu][6].offbgcolor)_bgc="bgcolor="+_m[_mnu][6].offbgcolor;_mrg=0;if(_M[12])_mrg=_M[12];_mt+="";_mt+="";_mt+="
";_mt+="";for(_b=0;_b<_M[0].length;_b++){_mt+=drawItem(_Bel);_Bel++}_mt+="
";_mt+="
";if(_M[14]!="relative")_mt+="
";_amt+=_mt;_d.write(_mt);_M[22]=gmobj("menu"+_mnu);if(_M[19]){_M[19]=_M[19].toString();_fs=_M[19].split(",");if(!_fs[1])_fs[1]=20;if(!_fs[2])_fs[2]=10;_M[19]=_fs[0];followScroll(_mnu,_fs[1],_fs[2])}if(_M[14]!="relative"){_st="";_brdsty="solid";if(_M[6].borderstyle)_brdsty=_M[6].borderstyle;if(_M[6][64])_brdsty=_M[6][64];_brdcol="#000000";if(_M[6].bordercolor)_brdcol=_M[6].bordercolor;if(_M[6][63])_brdcol=_M[6][63];_brdwid="";if(_M[6].borderwidth)_brdwid=_M[6].borderwidth;if(_M[6][65])_brdwid=_M[6][65];_M[6][65]=_brdwid;_st=".menu"+_mnu+"{";_st+="borderStyle:"+_brdsty+";"; +_st+="borderColor:"+_brdcol+";"; +_st+="borderWidth:"+_brdwid+";"; +if(_ms.fontsize)_st+="fontSize:"+2+";"; +_st+="}"; +_d.write(""); +_gm=gmobj("menu"+_mnu); +_d.write("
"); +if(_M[7]){_gm=gmobj("menu"+_mnu); +_gm.zIndex=999; +_gp=gpos(_gm); +spos(_gm,_gp[0]+_M[6][65],_gp[1]+_M[6][65],_gp[2],_gp[3]); +_gmb=gmobj("bord"+_mnu); +_gmb.zIndex=0; +spos(_gmb,_gp[0],_gp[1],_gp[2],_gp[3]); +_gmb.visibility="show"}}else{}if(_m[_mnu][13]=="scroll"){_gm=gmobj("menu"+_mnu); +_gm.fullHeight=_gm.clip.height; +_scs="; +this.bgColor='"+_m[_mnu][6].onbgcolor+"'\" onmouseout=\"csto("+_mnu+"); +this.bgColor='"+_m[_mnu][6].offbgcolor+"'\""; +_scs+=" visibility=hide "+_bgc+" class=menu"+_mnu+">
"; +_sce="
"; +_d.write(""+_sce); +_d.write(""+_sce); +_ts=gmobj("tscroll"+_mnu); +_gm.tsHeight=_ts.clip.height; +_ts=gmobj("bscroll"+_mnu); +_gm.bsHeight=_ts.clip.height} +} + +function getMenuByItem(_gel) +{_gel=_mi[_gel][0]; +if(_m[_gel][7])_gel=-1; +return _gel +} + +function getParentMenuByItem(_gel) +{_tm=getMenuByItem(_gel); +if(_tm==-1)return-1; +for(_x=0; +_x<_mi.length; +_x++){if(_mi[_x][3]==_m[_tm][1]){return _mi[_x][0]}}return-1 +} + +function getParentItemByItem(_gel) +{_tm=getMenuByItem(_gel); +if(_tm==-1)return-1; +for(_x=0; +_x<_mi.length; +_x++){if(_mi[_x][3]==_m[_tm][1]){return _x}}return-1 +} + +function _setPath(_mpi) +{if(_mpi>-1){_ci=_m[_mpi][21]; +while(_ci>-1){itemOn(_ci); +_ci=_m[_mi[_ci][0]][21]}} +} + +function _back2par(_i) +{if(_oldel>-1){if(_i==_m[_mi[_oldel][0]][21]){_popi(_i)}} +} + +function closeMenusByArray(_ar) +{for(_a=0; +_a<_ar.length; +_a++){menuDisplay(_ar[_a],0)} +} + +function cm() +{_tar=getMenusToClose(); +closeMenusByArray(_tar); +for(_b=0; +_b<_tar.length; +_b++){if(_tar[_b]!=_mnu)_sm=remove(_sm,_tar[_b])} +} + +function getMenusToClose() +{_st=-1; +_en=_sm.length; +_mm=_iP; +if(_iP==-1){if(_sm[0]!=_masterMenu)return _sm; +_mm=_masterMenu}for(_b=0; +_b<_sm.length; +_b++){if(_sm[_b]==_mm)_st=_b+1; +if(_sm[_b]==_mnu)_en=_b}if(_st>-1&&_en>-1){_tsm=_sm.slice(_st,_en)}return _tsm +} + +function getMenuByName(_mname) +{_mname=$tL(_mname); +for(_gma=0; +_gma<_m.length; +_gma++){if(_mname==_m[_gma][1]){return _gma}}return-1 +} + +function clearELs(_i) +{_mnu=_mi[_i][0]; +for(_q=0; +_q<_m[_mnu][0].length; +_q++){gmobj("oel"+_m[_mnu][0][_q]).visibility="hide"} +} + +function menuDisplay(_mnu,_show) +{_gm=gmobj("menu"+_mnu); +_gmb=gmobj("bord"+_mnu); +M_hideLayer(_mnu,_show); +for(_q=0; +_q<_m[_mnu][0].length; +_q++){gmobj("oel"+_m[_mnu][0][_q]).visibility="hide"}if(_show){_gm.zIndex=_zi; +_gm.visibility="show"; +_gmb.top=_gm.pageY-_m[_mnu][6][65]; +_gmb.left=_gm.pageX-_m[_mnu][6][65]; +_gmb.zIndex=_zi-1; +_gmb.visibility="show"; +if(_el>-1)_m[_mnu][21]=_el; +if(_m[_mnu][13]=="scroll"){if((_gm.clip.height>_bH)||_gm.nsDoScroll){_gi=gmobj("el"+_el); +_tsm=gmobj("tscroll"+_mnu); +_bsm=gmobj("bscroll"+_mnu); +if(!_gm.scrollTop)_gm.top=_gm.top+_tsm.clip.height-1; +else _gm.top=_gm.scrollTop; +_gm.clip.height=_bH-(_gi.pageY+_gi.clip.height)-19; +_gmb.clip.height=_gm.clip.height; +_tsm.top=_gmb.top; +_tsm.left=_gmb.left; +_tsm.zIndex=_zi+1; +_bsm.left=_gmb.left; +_bsm.top=(_gmb.pageY+_gmb.clip.height)-_tsm.clip.height+_gm.tsHeight; +_tsm.zIndex=_zi+1; +_tsm.visibility="show"; +_bsm.zIndex=_zi+1; +_bsm.visibility="show"; +_gm.nsDoScroll=1}}}else{if(!(_m[_mnu][7])){_gm.visibility="hide"; +_gmb.visibility="hide"; +if(_m[_mnu][13]=="scroll"){_tsm=gmobj("tscroll"+_mnu); +_tsm.visibility="hide"; +_tsm=gmobj("bscroll"+_mnu); +_tsm.visibility="hide"}}} +} + +function forceCloseAllMenus() +{_cmo=gmobj("menu"+_mi[_cel][0]); +if(!_cmo)_cmo=gmobj("oel"+_cel); +for(_a=0; +_a<_m.length; +_a++){if(!_m[_a][7]&&!_m[_a][10])menuDisplay(_a,0)}_zi=999; +_el=-1 +} + +function closeAllMenus() +{_cmo=gmobj("menu"+_mi[_cel][0]); +if(!_cmo)_cmo=gmobj("oel"+_cel); +if(!_onTS&&_cmo&&(MouseX>(_cmo.pageX+_cmo.clip.width)||MouseY>(_cmo.pageY+_cmo.clip.height)||MouseX<_cmo.pageX||MouseY<_cmo.pageY)){inopenmode=0; +for(_ca=0; +_ca<_m.length; +_ca++){if(!_m[_ca][7]&&!_m[_ca][10])menuDisplay(_ca,0); +if(_m[_ca][21]>-1){itemOff(_m[_ca][21]); +_m[_ca][21]=-1}}_zi=999; +_el=-1} +} + +function close_menu() +{if(_el==-1)_MT=setTimeout("closeAllMenus()",_menuCloseDelay) +} + +function close_el(_i) +{if(_mi[_i][43])eval(_mi[_i][43]); +clearELs(_i); +window.status=""; +clearTimeout(_oMT); +_MT=setTimeout("closeAllMenus()",_menuCloseDelay); +_el=-1; +_oldel=_i +} + +function getParentMenuByItem(_gel) +{_gel=_mi[_gel][0]; +if(_m[_gel][7])_gel=-1; +return _gel +} + +function getParentItemByItem(_gel) +{_par=getParentMenuByItem(_gel); +for(_a=0; +_a<_m[_par][0].length; +_a++){if(_gel==_m[_par][0][_a]){return _m[_par][0]}}return false +} + +function getParentsByItem(_gmi) +{ +} + +function lc(_i) +{if(_mi[_i]=="disabled")return; +location.href=_mi[_i][2] +} + +function _is(_mnu,_SCRam) +{_onTS=1; +_cel=_m[_mnu][0][0]; +clearTimeout(_MT); +clearTimeout(_scrmt); +_doScroll(_mnu,_SCRam); +_scrmt=setTimeout("_is("+_mnu+","+_SCRam+")",_scrollDelay) +} + +function _doScroll(_mnu,_SCRam){gm=gmobj("menu"+_mnu); +if(_SCRam<0&&((gm.clip.top+gm.clip.height)>gm.fullHeight+gm.tsHeight+_SCRam))return; +if(_SCRam>0&&gm.clip.top<_SCRam)return; +gm.top=gm.top+_SCRam; +gm.scrollTop=gm.top; +gm.clip.top=gm.clip.top-_SCRam; +gm.clip.height=gm.clip.height-_SCRam +} + +function set_status(_i) +{if(_mi[_i][4]!=null){status=_mi[_i][4]}else{if(_mi[_i][2])status=_mi[_i][2]; +else status=""} +} + +function getOffsetValue(_ofs) +{_ofsv=0; +if(isNaN(_ofs)&&_ofs.indexOf("offset=")==0){_ofsv=parseInt(_ofs.substr(7,99))}return _ofsv +} + +function popup() +{_sm=new Array; +_arg=arguments; +clearTimeout(_MT); +clearTimeout(_oMT); +if(_cel>-1)forceCloseAllMenus(); +if(_arg[0]){_ofMT=0; +_mnu=getMenuByName(_arg[0]); +_cel=_m[_mnu][0][0]; +_tos=0; +if(_arg[2])_tos=_arg[2]; +_los=0; +if(_arg[3])_los=_arg[3]; +_sm[_sm.length]=_mnu; +if(_arg[1]){_gm=gmobj("menu"+_mnu); +_gp=gpos(_gm); +if(_arg[1]==1){if(MouseY+_gp[2]>(_bH)+_sT)_tos=-(MouseY+_gp[2]-_bH)+_sT; +if(MouseX+_gp[3]>(_bW)+_sL)_los=-(MouseX+_gp[3]-_bW)+_sL; +if(_m[_mnu][2]){if(isNaN(_m[_mnu][2]))_tos=getOffsetValue(_m[_mnu][2]); +else{_tos=_m[_mnu][2]; +MouseY=0}}if(_m[_mnu][3]){if(isNaN(_m[_mnu][3]))_los=getOffsetValue(_m[_mnu][3]); +else{_los=_m[_mnu][3]; +MouseX=0}}if(ns6&&!ns60){_los-=_sL; +_tos-=_sT}spos(_gm,MouseY+_tos,MouseX+_los)}else{for(_a=0; +_a<_d.images.length; +_a++){if(_d.images[_a].name==_arg[1])_po=_d.images[_a]}spos(_gm,_po.y+_po.height+getOffsetValue(_m[_mnu][2]),_po.x+getOffsetValue(_m[_mnu][3]))}}menuDisplay(_mnu,1); +_m[_mnu][21]=-1} +} + +function Opopup(_mn,_mp) +{clearTimeout(_MT); +closeAllMenus(); +if(_mn){_mnu=getMenuByName(_mn); +_sm[_sm.length]=_mnu; +menuDisplay(_mnu,1); +_m[_mnu][21]=-1} +} + +function popdown() +{_MT=setTimeout("closeAllMenus()",_menuCloseDelay) +} + +function _popi(_i) +{_cel=_i; +clearTimeout(_MT); +clearTimeout(_cMT); +clearTimeout(_oMT); +if(_mi[_i][34]=="disabled")return; +clearELs(_i); +if(_oldel>-1)clearELs(_oldel); +_mnu=-1; +_el=_i; +_itemRef=_i; +_mopen=_mi[_i][3]; +horiz=0; +if(_m[_mi[_i][0]][9])horiz=1; +itemOn(_i); +if(!_sm.length){_sm[_sm.length]=_mi[_i][0]; +_masterMenu=_mi[_i][0]}_iP=getParentMenuByItem(_el); +if(_iP==-1)_masterMenu=_mi[_i][0]; +set_status(_el); +_cMT=setTimeout("cm()",_menuOpenDelay); +if(_mopen&&(!_mi[_el][39]||inopenmode)){_gel=gmobj("el"+_i); +_gp=gpos(_gel); +_mnu=getMenuByName(_mopen); +if(_mi[_i][41])_m[_mnu][10]=1; +if(_mnu>-1){_gp=gpos(_gel); +_mnO=gmobj("menu"+_mnu); +_mp=gpos(_mnO); +if(horiz){_top=_gp[0]+_gp[2]+1; +_left=_gp[1]; +if(_m[_mnu][11]=="rtl"){_left=_left-(_mp[3]-_gp[3])-_mi[_i][27]}if(_m[_mi[_i][0]][5]=="bottom"){_top=(_gp[0]-_mp[2])}}else{_top=_gp[0]+_subOffsetTop; +_left=_gp[1]+_gp[3]+_subOffsetLeft; +if(_m[_mnu][11]=="rtl"){_left=_gp[1]-_mp[3]-_subOffsetLeft}}if(_left<0)_left=0; +if(_top<0)_top=0; +if(_m[_mnu][2]){if(isNaN(_m[_mnu][2])&&_m[_mnu][2].indexOf("offset=")==0){_os=_m[_mnu][2].substr(7,99); +_top=_top+parseInt(_os)}else{_top=_m[_mnu][2]}}if(_m[_mnu][3]){if(isNaN(_m[_mnu][3])&&_m[_mnu][3].indexOf("offset=")==0){_os=_m[_mnu][3].substr(7,99); +_left=_left+parseInt(_os)}else{_left=_m[_mnu][3]}}if(_left+_mp[3]>_bW+_sL){if(!horiz&&(_gp[1]-_mp[3])>0){_left=_gp[1]-_mp[3]-_subOffsetLeft}else{_left=(_bW-_mp[3])-2}}if(!horiz&&_top+_mp[2]>_bH+_sT){_top=(_bH-_mp[2])-2}if(!horiz){_top=_top-_m[_mnu][6][65]}else{_top--; +_left--}spos(_mnO,_top+_m[_mnu][6][65],_left+_m[_mnu][6][65]); +if(_m[_mnu][5])_setPosition(_mnu); +_zi++; +_mnb=gmobj("bord"+_mnu); +_oMT=setTimeout("menuDisplay("+_mnu+",1)",_menuOpenDelay); +if(_sm[_sm.length-1]!=_mnu)_sm[_sm.length]=_mnu}}_setPath(_iP) +} + +function _setPosition(_mnu) +{if(_m[_mnu][5]){_gm=gmobj("menu"+_mnu); +_gp=gpos(_gm); +_osl=0; +_omnu3=0; +if(isNaN(_m[_mnu][3])&&_m[_mnu][3].indexOf("offset=")==0){_omnu3=_m[_mnu][3]; +_m[_mnu][3]=_n; +_osl=_omnu3.substr(7,99); +_gm.leftOffset=_osl}_lft=_n; +if(!_m[_mnu][3]){if(_m[_mnu][5].indexOf("left")!=-1)_lft=0; +if(_m[_mnu][5].indexOf("center")!=-1)_lft=(_bW/2)-(_gp[3]/2); +if(_m[_mnu][5].indexOf("right")!=-1)_lft=_bW-_gp[3]; +if(_gm.leftOffset)_lft=_lft+parseInt(_gm.leftOffset)}_ost=0; +_omnu2=0; +if(isNaN(_m[_mnu][2])&&_m[_mnu][2].indexOf("offset=")==0){_omnu2=_m[_mnu][2]; +_m[_mnu][2]=_n; +_ost=_omnu2.substr(7,99); +_gm.topOffset=_ost}_tp=_n; +if(!_m[_mnu][2]>=0){_tp=_n; +if(_m[_mnu][5].indexOf("top")!=-1)_tp=0; +if(_m[_mnu][5].indexOf("middle")!=-1)_tp=(_bH/2)-(_gp[2]/2); +if(_m[_mnu][5].indexOf("bottom")!=-1)_tp=_bH-_gp[2]; +if(_gm.topOffset)_tp=_tp+parseInt(_gm.topOffset)}if(_lft<0)_lft=0; +spos(_gm,_tp,_lft); +if(_m[_mnu][19])_m[_mnu][19]=_tp; +if(_tp)_tp=_tp-_m[_mnu][6][65]; +if(_lft)_lft=_lft-_m[_mnu][6][65]; +_sb=gmobj("bord"+_mnu); +spos(_sb,_tp,_lft); +_gm._tp=_tp} +} + +function _MScan() +{_bW=self.innerWidth-16; +_bH=self.innerHeight-17; +_sT=self.pageYOffset; +if(_startM==1){for(_a=0; +_a<_m.length; +_a++){if(_m[_a][5]){_setPosition(_a)}}}else{if((_bH!=_oldbH)&&(_bW!=_oldbW)){location.reload()}}_startM=0; +_oldbH=_bH; +_oldbW=_bW}setInterval("_MScan()",200); + +function getMouseXY(e) +{ + MouseX=e.pageX; + MouseY=e.pageY +} + +_d.captureEvents(Event.MOUSEMOVE); +_d.onmousemove=getMouseXY; diff --git a/lang/de/main.php b/lang/de/main.php new file mode 100644 index 0000000..1537371 --- /dev/null +++ b/lang/de/main.php @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/lang/en/main.php b/lang/en/main.php new file mode 100644 index 0000000..660fade --- /dev/null +++ b/lang/en/main.php @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/templates/include_footer.html b/templates/include_footer.html new file mode 100644 index 0000000..00bfcab --- /dev/null +++ b/templates/include_footer.html @@ -0,0 +1,36 @@ +

+ + + + + + + + + + + +
Created 2008 - By Adiscon GmbH +  PhpLogCon Version {BUILDNUMBER} + +  Partners: + +  RSyslog | +  WinSyslog + + Page rendered in {PAGERENDERTIME} seconds +  | Total DB Queries {TOTALQUERIES} +
+ + + + + + + + + +
+ + + \ No newline at end of file diff --git a/templates/include_header.html b/templates/include_header.html new file mode 100644 index 0000000..ddbd9aa --- /dev/null +++ b/templates/include_header.html @@ -0,0 +1,83 @@ + + + + {TITLE} + {EXTRA_METATAGS} + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + +
 {LN_MAIN_SELECTSTYLE}  + + +
+
+ +
 
+ +
+ + + + + +
 {LN_GEN_LANGUAGE}  + + +
+
+ +
+   +
 
+ + + + + + +
+ + + +
+ + +
+



{LN_ERROR_INSTALLFILEREMINDER}

+
+ diff --git a/templates/include_index_globals.html b/templates/include_index_globals.html new file mode 100644 index 0000000..788b4d9 --- /dev/null +++ b/templates/include_index_globals.html @@ -0,0 +1,32 @@ + + + + +
{LN_GLOBAL_STATS}
+ + + + + +
+
+ + + + + + + + + + + + + + + + + +
{LN_GLOBAL_LASTUPDATE}
{global_lastupdate_TimeFormat}
{DisplayName}
{VALUE_INT}
+
+
diff --git a/templates/include_menu.html b/templates/include_menu.html new file mode 100644 index 0000000..6f8afd7 --- /dev/null +++ b/templates/include_menu.html @@ -0,0 +1,12 @@ + + + + + + + + + + + +
HomeShow EventsShow SysLogTagsUser OptionsDatabase OptionsRefreshHelp 
diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..f9466c0 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,66 @@ + + + + + + + +
Filter Options 
+
+ + + + + + + + +
Filter Options
  + +  
+
+ +
+ + + + + + + +
Recent syslog messages
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
{LN_TOP_NUM}{LN_GRID_DATE}{LN_GRID_FACILITY}{LN_GRID_SEVERITY}{LN_GRID_SYSLOGTAG}{LN_GRID_INFOUNIT}{LN_GRID_HOST}{LN_GRID_MSG}
{ZAEHLER}{timereported}{syslogfacility-text}{syslogseverity-text}{FROMHOST}{syslogtag}{IUT}{msg}
+ + + +
+ + + diff --git a/themes/dark/images/bg_bottom.gif b/themes/dark/images/bg_bottom.gif new file mode 100644 index 0000000000000000000000000000000000000000..76db69ee9840e6807f84173d997217f7280f2b12 GIT binary patch literal 141 zcmZ?wbhEHbOkxmVSj57hY#k_X>LDPd!oa}r|Nnm=2?2^fSr}h1voPp@xFEF*%t0Kx z?))=2<@uW1;`Q0x{}VL&<|fR`ShX(a^}d2Vd?mT}E7rZQdH>(CslY==s{h22qLVpR o^DnF@@md?T{>GZJ({HQxKiE*=qc{8fi!D`W^LF3=z`|e+0HCEg=Kufz literal 0 HcmV?d00001 diff --git a/themes/dark/images/dither.png b/themes/dark/images/dither.png new file mode 100644 index 0000000000000000000000000000000000000000..196b0de96e962167088c6fc8e56d8e07a716e61e GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AoCO|{#S9F5he4R}c>anMprEg( zi(^Q|oVOPi@-i4O9Nw_c{O$kxZwD&4eVUY?-)wwT?*$5Q*n z;8kHBKF8trOQ6A0C9V-Aj-@3T`9%z&IjM;$3c;1dC8@c^Itre7$$BSc?aF|v7(8A5 KT-G@yGywp~d_iXb literal 0 HcmV?d00001 diff --git a/themes/dark/main.css b/themes/dark/main.css new file mode 100644 index 0000000..0dfe43b --- /dev/null +++ b/themes/dark/main.css @@ -0,0 +1,351 @@ +/* Generell Tag Classes */ +BODY +{ + FONT-FAMILY: ARIAL; + FONT-SIZE: 8pt; + BACKGROUND: #000000; + COLOR: #F3F3F1; + + scrollbar-face-color: #475059; + scrollbar-highlight-color: #b8c2cc; + scrollbar-shadow-color: #b8c2cc; + scrollbar-3dlight-color: #000000; + scrollbar-arrow-color: #f2f5ff; + scrollbar-track-color: #262d34; + scrollbar-darkshadow-color: #000000; +} + +TD { font-family: Arial, Helvetica, sans-serif; font-size: 8pt; color: #F3F3F1 } + +/* Link Classes */ +.playerlink { color:#006699; cursor:hand; } +.playerlink:hover { color:#FF0A0C; text-decoration: none; cursor:hand; } + +/* Default Link Classes */ +a:link,a:active,a:visited,a.postlink +{ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-weight:bold; + background-color: transparent; + color:#FFD323; + text-decoration:none; +} +a:hover +{ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-weight:bold; + color:#EF9A00; +} + +img +{ + border: 0px; +} + +/* Title Classes */ +.title +{ + font: bold 11px Verdana, Arial, Helvetica, sans-serif; + BACKGROUND-COLOR: #1C1014; + COLOR: #E5F377; + border: 1px solid; + border-color: #58363E #2C1B1F #2C1B1F #58363E; + height: 20px; + text-align:center; + vertical-align:middle; +} +A.title, A.title:active, A.title:visited +{ + font: bold 11px Verdana, Arial, Helvetica, sans-serif; + COLOR: #dd6900; + TEXT-DECORATION: none; +} +A.title:hover +{ + font: bold 11px Verdana, Arial, Helvetica, sans-serif; + COLOR: #FF0A0C; + TEXT-DECORATION: none; +} + +/* Default Font Classes */ +font +{ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 8pt; +} + +/* Table / Border Classes */ +.table_with_border +{ + background-color:#141618; + border:1px solid; + border-color: #290604 #0E0706 #000000 #290604; +} + +.table_with_border_second +{ + background-color:#19232D; + border:1px solid; + border-color: #050A0F #050A0F #050A0F #050A0F; +} + +.with_border +{ + text-indent:3px; + background-color:#1C2021; + border:1px #050A0F solid; +} + +.with_border_alternate +{ + text-indent:3px; + background-color:#1C2021; + border:1px #07233F ridge; +} + +.mainheader +{ + border:1px solid; + background-color:#1C2021; + border-color: #006699 #07233F #000000 #006699; +} + +.mainfooter +{ + height: 20px; + background-color:#1C2021; + border-top: #050A0F 1px solid; + border-bottom: #050A0F 1px solid; +} + +.imageborder +{ + border:1px solid; + border-color: #050A0F #353A3F #353A3F #050A0F; +} + +/* Cells for listening */ +.line0 +{ + font-size: 8pt; + color: #B9B597; + background-color: #0E161F; +} +.line0:hover +{ + background-color:#3D4751; +} + +.line1 +{ + font-size: 8pt; + color: #B9B597; + background-color: #152331; +} +.line1:hover +{ + background-color:#3D4751; +} + +.line2 +{ + font-size: 8pt; + color: #B9B597; + background-color: #1D3043; +} +.line2:hover +{ + background-color:#3D4751; +} + +.line_alt0 +{ + font-size: 8pt; + color: #000000; + background-color: #AAAAAA; + background-image: url("images/dither.png"); +} +.line_alt0:hover +{ + background-color:#F9F9F9; + background-image: url("images/dither.png"); +} + +.line_alt1 +{ + font-size: 8pt; + color: #000000; + background-color: #DDDDDD; + background-image: url("images/dither.png"); +} +.line_alt1:hover +{ + background-color:#F9F9F9; + background-image: url("images/dither.png"); +} + +/* TOP Menu Classes */ +.topmenu1 +{ + height: 16px; + border:1px ridge; + border-color: #D79993 #290604 #290604 #D79993; + + font: 10px Verdana, Arial, Helvetica, sans-serif; + color: #FFFFFF; + background-color: #38110E; +} +.topmenu1:hover +{ + color: #FFFF99; + background-color: #492D2B; + text-decoration: none; +} +.topmenu1_link, A.topmenu1_link +{ + color: #FFDD22; +} +.topmenu1_link:hover, A.topmenu1_link:hover +{ + color: #FFFF99; + text-decoration: none; +} +.topmenuend +{ + height: 16px; + font: 10px Verdana, Arial, Helvetica, sans-serif; + color: #FFFFFF; + background-color: #290604; +} + +/* Cell Columns */ +.cellmenu1 +{ + height: 15px; + border:1px solid; + border-color: #353A3F #050A0F #050A0F #353A3F; + + text-indent:5px; + font: 10px Verdana, Arial, Helvetica, sans-serif; + color: #FFFCE5; + background-color: #103B65; +} +.cellmenu1:hover +{ + color: #FFFF33; + text-decoration: none; +} +A.cellmenu1_link +{ + color: #FFFF33; + text-decoration: underline; +} +A.cellmenu1_link:hover +{ + color: #FF5500; + text-decoration: none; +} + +.cellmenu2 +{ + height: 16px; + border:1px ridge; + border-color: #7777AA #12161A #12161A #7777AA; + + text-indent:5px; + font: 10px Verdana, Arial, Helvetica, sans-serif; + color: #FFFCE5; + background-color: #053841; +} +.cellmenu2:hover +{ + color: #FFFF33; + text-decoration: none; +} + +/* Usefull Text Classes */ +.ErrorMsg +{ + font: bold 12px Verdana, Arial, Helvetica, sans-serif; + COLOR: #FF2222; + border-top: 1px solid; + border-bottom: 1px solid; + border-color: #58363E; +} +.PriorityEmergency +{ + color: #FFFFFF; + background-color: #ff4444; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityAlert +{ + color: #FFFFFF; + background-color: #dd00dd; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityCrit +{ + color: #FFFFFF; + background-color: #dd9900; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityError +{ + color: #FFFFFF; + background-color: #CC0000; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityWarning +{ + color: #FFFFFF; + background-color: #FFAA00; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityNotice +{ + color: #FFFFFF; + background-color: #66CC33; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityInfo +{ + color: #000000; + background-color: #ABF1FF; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityDebug +{ + color: #FFFFFF; + background-color: #3333ff; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} + +/* Form elements */ +select, input, textarea +{ + background-color: #0B253C; + color:#FFFFFF; + font:bold 10px Verdana,Arial,Helvetica,sans-serif; + border: 1px solid; + border-color: #233B51 #124A7C #124A7C #233B51; +} + + + diff --git a/themes/default/images/bg_bottom.gif b/themes/default/images/bg_bottom.gif new file mode 100644 index 0000000000000000000000000000000000000000..d36b5fa05c6afa1dc26bc369fdda805f8ea8c47b GIT binary patch literal 117 zcmV-*0E+)dNk%w1VPXIf0FeU#v$M0z%*^HG<^TWxA^8LW=mP@)EC2ui0Ac_T0006; zgpaAq?GNJ$wAzca-n{#t3F1hW=82~2%C_eK$MQ_q_KoNI&iDQg3<`(DqVb4KDwoWr X^9hYgr_`$Tip^@b+^+ZgEdT&JjgLFP literal 0 HcmV?d00001 diff --git a/themes/default/images/dither.png b/themes/default/images/dither.png new file mode 100644 index 0000000000000000000000000000000000000000..28ef6d402aad37c5b135fcef0ff09e66db5ca57d GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-&H|6fVg?4j!ywFfJby(BP%z8W z#WAE}&fAL{IS)AS9B_DVALcP}?H}(YJJ>_BSk2FWfA{X(TiL`%{X)W>DooR7c&G^O zIO3wzc|cW7$dg6SaH5A&L1(9nP@}hx$|R1MB&CTi53nkI#~8k8yZD)pd+!2mW$<+M Kb6Mw<&;$UP$2`pd literal 0 HcmV?d00001 diff --git a/themes/default/main.css b/themes/default/main.css new file mode 100644 index 0000000..d8bfbee --- /dev/null +++ b/themes/default/main.css @@ -0,0 +1,383 @@ +/* Generell Tag Classes */ +BODY +{ + BACKGROUND-COLOR: #f9f9f9; + COLOR: #000000; + FONT-FAMILY: ARIAL; + FONT-SIZE: 8pt; + + scrollbar-face-color: #DEE3E7; + scrollbar-highlight-color: #FFFFFF; + scrollbar-shadow-color: #DEE3E7; + scrollbar-3dlight-color: #D1D7DC; + scrollbar-arrow-color: #006699; + scrollbar-track-color: #EFEFEF; + scrollbar-darkshadow-color: #98AAB1 +} + +TD { font-family: Arial, Helvetica, sans-serif; font-size: 8pt; color: #000000 } + +/* Link Classes */ +.playerlink { color:#000000; cursor:hand; } +.playerlink:hover { color:#000099; text-decoration: none; cursor:hand; } + +/* Default Link Classes */ +a:link,a:active,a:visited,a.postlink +{ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-weight:bold; + background-color: transparent; + color:#38140E; + text-decoration:none; +} +a:hover +{ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-weight:bold; + color:#FF0000; +} + +img +{ + border: 0px; +} + +/* Title Classes */ +.title +{ + FONT: bold 11px Verdana, Arial, Helvetica, sans-serif; + BACKGROUND-COLOR: #D2C598; + COLOR: #032D5D; + border: 1px solid; + border-color: #ACBED6 #3B679B #3B679B #ACBED6; + height: 20px; + text-align:center; + vertical-align:middle; +} +A.title, A.title:active, A.title:visited +{ + FONT: bold 11px Verdana, Arial, Helvetica, sans-serif; + COLOR: #ED9D10; + TEXT-DECORATION: none; +} +A.title:hover +{ + FONT: bold 11px Verdana, Arial, Helvetica, sans-serif; + COLOR: #982D00; + TEXT-DECORATION: none; +} + +/* Default Font Classes */ +font +{ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 8pt; +} + +/* Table / Border Classes */ +.table_with_border +{ + background-color:#EEF2F6; + border:1px solid; + border-color: #CCCCCC #000000 #000000 #CCCCCC; +} + +.table_with_border_second +{ + background-color:#D5E0E7; + border:1px solid; + border-color: #CCCCCC #000000 #000000 #CCCCCC; +} + +.with_border +{ + text-indent:3px; + background-color:#CCCCCC; + border:1px #AAAAAA solid; +} + +.with_border_alternate +{ + text-indent:3px; + background-color:#CCCCCC; + border:1px #AAAAAA ridge; +} + +.mainheader +{ + border:1px solid; + background-color:#C7CBD1; + border-color: #44617D #203040 #203040 #44617D; +} + +.mainfooter +{ + height: 20px; + background-color:#DDDDDD; + border-top: #97A8B9 1px solid; + border-bottom: #6592BD 1px solid; +} + +.imageborder +{ + border:1px solid; + border-color: #44617D #203040 #203040 #44617D; +} + +/* Cells for listening */ +.line0 +{ + font-size: 8pt; + color: #000000; + background-color: #DDDDDD; +} +.line0:hover +{ + background-color:#F9F9F9; +} + +.line1 +{ + font-size: 8pt; + color: #000000; + background-color: #EEEEEE; +} +.line1:hover +{ + background-color:#F9F9F9; +} + +.line2 +{ + font-size: 8pt; + color: #000000; + background-color: #F5F5F5; +} +.line2:hover +{ + background-color:#F9F9F9; +} + +.line_alt0 +{ + font-size: 8pt; + color: #000000; + background-color: #AAAAAA; + background-image: url("images/dither.png"); +} +.line_alt0:hover +{ + background-color:#F9F9F9; + background-image: url("images/dither.png"); +} + +.line_alt1 +{ + font-size: 8pt; + color: #000000; + background-color: #DDDDDD; + background-image: url("images/dither.png"); +} +.line_alt1:hover +{ + background-color:#F9F9F9; + background-image: url("images/dither.png"); +} + +/* TOP Menu Classes */ +.topmenu1 +{ + height: 16px; + border:1px ridge; + border-color: #79AABE #09506C #09506C #79AABE; + + font: 10px Verdana, Arial, Helvetica, sans-serif; + color: #FFFFFF; + background-color: #597196; +} +.topmenu1:hover +{ + color: #FFFF99; + background-color: #6A88B8; + text-decoration: none; +} +.topmenu1_link, A.topmenu1_link +{ + color: #FFDD22; +} +.topmenu1_link:hover, A.topmenu1_link:hover +{ + color: #FFFF99; + text-decoration: none; +} +.topmenuend +{ + height: 16px; + font: 10px Verdana, Arial, Helvetica, sans-serif; + color: #FFFFFF; + background-color: #597196; +} +.topmenu2 +{ + height: 16px; + border:1px ridge; + border-color: #79AABE #09506C #09506C #79AABE; + + font: 10px Verdana, Arial, Helvetica, sans-serif; + color: #FFFFFF; + background-color: #597196; +} +.topmenu2:hover +{ + color: #FFFF99; + background-color: #6A88B8; + text-decoration: none; +} +.topmenu2_link, A.topmenu2_link +{ + color: #FFDD22; +} +.topmenu2_link:hover, A.topmenu2_link:hover +{ + color: #FFFF99; + text-decoration: none; +} +.topmenu2end +{ + height: 16px; + font: 10px Verdana, Arial, Helvetica, sans-serif; + color: #FFFFFF; + background-color: #597196; +} + + + +/* Cell Columns */ +.cellmenu1 +{ + height: 16px; + border:1px ridge; + border-color: #79AABE #09506C #09506C #79AABE; + + text-indent:5px; + font: 10px Verdana, Arial, Helvetica, sans-serif; + color: #FFFFFF; + background-color: #6C8E9C; +} +.cellmenu1:hover +{ + color: #FFFF99; + text-decoration: none; +} +A.cellmenu1_link +{ + color: #FFFF55; + text-decoration: underline; +} +A.cellmenu1_link:hover +{ + color: #FFBB55; + text-decoration: none; +} + +.cellmenu2 +{ + height: 15px; + border:1px inset; + border-color: #79AABE #09506C #09506C #79AABE; + + text-indent:5px; + font: 10px Verdana, Arial, Helvetica, sans-serif; + color: #393327; + background-color: #B8D4E0; +} +.cellmenu2:hover +{ + color: #A31D32; + text-decoration: none; +} + +/* Usefull Text Classes */ +.ErrorMsg +{ + font: bold 12px Verdana, Arial, Helvetica, sans-serif; + COLOR: #FF0000; + border-top: 1px solid; + border-bottom: 1px solid; + border-color: #58363E; +} +.PriorityEmergency +{ + color: #FFFFFF; + background-color: #ff4444; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityAlert +{ + color: #FFFFFF; + background-color: #dd00dd; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityCrit +{ + color: #FFFFFF; + background-color: #dd9900; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityError +{ + color: #FFFFFF; + background-color: #CC0000; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityWarning +{ + color: #FFFFFF; + background-color: #FFAA00; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityNotice +{ + color: #FFFFFF; + background-color: #66CC33; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityInfo +{ + color: #000000; + background-color: #ABF1FF; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} +.PriorityDebug +{ + color: #FFFFFF; + background-color: #3333ff; + border-top: black 1px solid; + border-bottom: black 1px solid; + border-right: gray 1px solid; +} + +/* Form elements */ +select, input, textarea +{ + background-color: #E8E7E2; + color:#000000; + font:bold 10px Verdana,Arial,Helvetica,sans-serif; + border: 1px solid; + border-color: #233B51 #124A7C #124A7C #233B51; +} + diff --git a/userchange.php b/userchange.php new file mode 100644 index 0000000..73a03e5 --- /dev/null +++ b/userchange.php @@ -0,0 +1,52 @@ + www.phplogcon.org <- * + * * + * Use this script at your own risk! * + * ----------------------------------------------------------------- * + * Main Index File * + * * + * -> Loads the main PhpLogCon Site * + * * + * All directives are explained within this file * + ********************************************************************* +*/ + +// *** Default includes and procedures *** // +define('IN_PHPLOGCON', true); +$gl_root_path = './'; +include($gl_root_path . 'include/functions_common.php'); +include($gl_root_path . 'include/functions_frontendhelpers.php'); + +InitPhpLogCon(); +InitFrontEndDefaults(); // Only in WebFrontEnd +// *** *** // + +// --- BEGIN Custom Code +if ( isset($_SERVER['HTTP_REFERER']) ) + $szRedir = $_SERVER['HTTP_REFERER']; +else + $szRedir = "index.php"; // Default + + +if ( isset($_GET['op']) ) +{ + if ( $_GET['op'] == "changestyle" ) + { + if ( VerifyTheme($_GET['stylename']) ) + $_SESSION['CUSTOM_THEME'] = $_GET['stylename']; + } + + if ( $_GET['op'] == "changelang" ) + { + if ( VerifyLanguage($_GET['langcode']) ) + $_SESSION['CUSTOM_LANG'] = $_GET['langcode']; + } +} + +// Final redirect +RedirectPage( $szRedir ); +// --- +?> \ No newline at end of file