Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla4/ |
| [Home] [System Details] [Kill Me] |
PK.o�[%iJ���assets/css/component.cssnu�[���/**
* @version $Id: component.css 14401 2010-01-26 14:10:00Z louis $
* @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights
reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
/**
* Joomla! 1.5 Admin template main css file
*
* @author Andy Miller <andy.miller@joomla.org>
* @package Joomla
* @since 1.5
* @version 1.0
*/
/* -- General styles ------------------------------ */
div.message {
text-align: center;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
padding: 3px;
border: 1px solid #e0e0e0;
margin-bottom: 10px;
font-weight: bold;
color: #333;
/*letter-spacing: .1em;*/ /* letter spacing doesn't work for all
languages */
}
.helpIndex {
border: 0px;
width: 100%;
height: 100%;
padding: 0px 0px 0px 0px;
overflow: auto;
}
.helpFrame {
border-left: 0px solid #222;
border-right: none;
border-top: none;
border-bottom: none;
width: 100%;
height: 800px;
padding: 0px 5px 0px 10px;
}
#treecellhelp {
width: 25%;
display: block;
position: relative;
float: left;
margin: 0;
padding: 2px;
overflow: hidden;
}
#datacellhelp {
width: 73%;
display: block;
float: left;
margin: 0;
padding: 2px 0px 0px 0px;
}
PK/o�[eO�tuuassets/css/dump.cssnu�[���/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
.dumpContainer {
font-size:14px;
}
.dumpType {
font-size: smaller;
color: gray
}
.dumpString {
font-size: smaller;
color: gray
}
.dumpSource {
font-size: smaller;
}
.dumpCollapseAll, .dumpExpandAll, .dumpRefresh, .dumpClose, .dumpLock,
.dumpLocked {
background-repeat: no-repeat;
padding-left: 20px;
padding-right: 16px;
color:#000;
font-family:arial;
font-size:0.8em;
}
.dumpCollapseAll {
background-image: url(../images/collapseall.png);
}
.dumpExpandAll {
background-image: url(../images/expandall.png);
}
.dumpRefresh {
background-image: url(../images/refresh.png);
}
.dumpClose {
background-image: url(../images/close.png);
}
.dumpLock {
background-image: url(../images/unlocked.png);
}
.dumpLocked {
background-image: url(../images/locked.png);
display: none;
}
/* Tooltips */
.tool-tip {
float: left;
background: #ffc;
border: 1px solid #D4D5AA;
padding: 5px;
max-width: 200px;
}
.tool-title {
padding: 0;
margin: 0;
font-size: 100%;
font-weight: bold;
margin-top: -15px;
padding-top: 15px;
padding-bottom: 5px;
background: url(../../_system/images/selector-arrow.png) no-repeat;
}
.tool-text {
font-size: 100%;
margin: 0;
}
PK/o�[!5����!assets/css/folder-tree-static.cssnu�[���
.dhtmlgoodies_tree{
margin:0px;
padding:0px;
}
.dhtmlgoodies_tree ul{ /* Sub menu groups */
margin-left:20px; /* Left spacing */
padding-left:0px;
display:none; /* Initially hide sub nodes */
}
.dhtmlgoodies_tree li{ /* Nodes */
list-style-type:none;
vertical-align:middle;
}
.dhtmlgoodies_tree li a{ /* Node links */
color:#000;
text-decoration:none;
font-family:arial;
font-size:0.8em;
padding-left:2px;
}PK/o�[�c.�<�<assets/css/general.cssnu�[���/**
* @version $Id: general.css 14401 2010-01-26 14:10:00Z louis $
* @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights
reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
/**
* Joomla! 1.5 Admin template main css file
*
* @author Andy Miller <andy.miller@joomla.org>
* @package Joomla
* @since 1.5
* @version 1.0
*/
/* -- General styles ------------------------------ */
body {
margin: 10px; padding: 0;
background: #fff;
padding-bottom: 1px;
font-size: 11px;
}
body, td, th { font-family: Arial, Helvetica, sans-serif; }
html, body { height: 95%; }
#minwidth { min-width: 960px; }
.clr { clear: both; overflow:hidden; height: 0; }
a, img { padding: 0; margin: 0; }
img { border: 0 none; }
form { margin: 0; padding: 0; }
h1 {
margin: 0; padding-bottom: 8px;
color: #0B55C4; font-size: 20px; font-weight: bold;
}
h3 {
font-size: 13px;
}
a:link { color: #0B55C4; text-decoration: none; }
a:visited { color: #0B55C4; text-decoration: none; }
a:hover { text-decoration: underline; }
fieldset {
margin-bottom: 10px;
border: 1px #ccc solid;
padding: 5px;
text-align: left;
}
fieldset p { margin: 10px 0px; }
legend {
color: #0B55C4;
font-size: 12px;
font-weight: bold;
}
input, select { font-size: 10px; border: 1px solid silver; }
textarea { font-size: 11px; border: 1px solid silver; }
button { font-size: 10px; }
input.disabled { background-color: #F0F0F0; }
input.button { cursor: pointer; }
input:focus,
select:focus,
textarea:focus { background-color: #ffd }
/* -- overall styles ------------------------------ */
#border-top.h_green { background:
url(../images/h_green/j_header_middle.png) repeat-x; }
#border-top.h_green div { background:
url(../images/h_green/j_header_right.png) 100% 0 no-repeat; }
#border-top.h_green div div { background:
url(../images/h_green/j_header_left.png) no-repeat; height: 54px; }
#border-top.h_teal { background:
url(../images/h_teal/j_header_middle.png) repeat-x; }
#border-top.h_teal div { background:
url(../images/h_teal/j_header_right.png) 100% 0 no-repeat; }
#border-top.h_teal div div { background:
url(../images/h_teal/j_header_left.png) no-repeat; height: 54px; }
#border-top.h_cherry { background:
url(../images/h_cherry/j_header_middle.png) repeat-x; }
#border-top.h_cherry div { background:
url(../images/h_cherry/j_header_right.png) 100% 0 no-repeat; }
#border-top.h_cherry div div { background:
url(../images/h_cherry/j_header_left.png) no-repeat; height: 54px; }
#border-top .title {
font-size: 22px; font-weight: bold; color: #fff; line-height: 44px;
padding-left: 180px;
}
#border-top .version {
display: block; float: right;
color: #fff;
padding: 25px 5px 0 0;
}
#border-bottom { background: url(../images/j_bottom.png) repeat-x; }
#border-bottom div { background: url(../images/j_corner_br.png) 100% 0
no-repeat; }
#border-bottom div div { background: url(../images/j_corner_bl.png)
no-repeat; height: 11px; }
#footer .copyright { margin: 10px; text-align: center; }
#header-box { border: 1px solid #ccc; background: #f0f0f0; }
#content-box {
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
}
#content-box .padding { padding: 10px 10px 0 10px; }
#toolbar-box { background: #fbfbfb; margin-bottom: 10px; }
#submenu-box { background: #f6f6f6; margin-bottom: 10px; }
#submenu-box .padding { padding: 0px;}
/* -- status layout */
#module-status { float: right; }
#module-status span { display: block; float: left; line-height: 16px;
padding: 4px 10px 0 22px; margin-bottom: 5px; }
#module-status { background: url(../images/mini_icon.png) 3px 5px
no-repeat; }
.legacy-mode{ color: #c00;}
#module-status .preview { background:
url(../images/menu/icon-16-media.png) 3px 3px no-repeat; }
#module-status .unread-messages,
#module-status .no-unread-messages { background:
url(../images/menu/icon-16-messages.png) 3px 3px no-repeat; }
#module-status .unread-messages a { font-weight: bold; }
#module-status .loggedin-users { background:
url(../images/menu/icon-16-user.png) 3px 3px no-repeat; }
#module-status .logout { background:
url(../images/menu/icon-16-logout.png) 3px 3px no-repeat; }
/* -- various styles -- */
span.note {
display: block;
background: #ffd;
padding: 5px;
color: #666;
}
/** overlib **/
.ol-foreground {
background-color: #ffe;
}
.ol-background {
background-color: #6db03c;
}
.ol-textfont {
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
color: #666;
}
.ol-captionfont {
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
color: #fff;
font-weight: bold;
}
.ol-captionfont a {
color: #0b5fc6;
text-decoration: none;
}
.ol-closefont {}
/** toolbar **/
div.header {
font-size: 22px; font-weight: bold; color: #0B55C4; line-height: 48px;
padding-left: 55px;
background-repeat: no-repeat;
margin-left: 10px;
}
div.header span { color: #666; }
div.configuration {
font-size: 14px; font-weight: bold; color: #0B55C4; line-height: 16px;
padding-left: 30px;
margin-left: 10px;
background-image: url(../images/menu/icon-16-config.png);
background-repeat: no-repeat;
}
div.toolbar { float: right; text-align: right; padding: 0; }
table.toolbar { border-collapse: collapse; padding: 0; margin: 0; }
table.toolbar td { padding: 1px 1px 1px 4px; text-align: center; color:
#666; height: 48px; }
table.toolbar td.spacer { width: 10px; }
table.toolbar td.divider { border-right: 1px solid #eee; width: 5px; }
table.toolbar span { float: none; width: 32px; height: 32px; margin: 0
auto; display: block; }
table.toolbar a {
display: block; float: left;
white-space: nowrap;
border: 1px solid #fbfbfb;
padding: 1px 5px;
cursor: pointer;
}
table.toolbar a:hover {
border-left: 1px solid #eee;
border-top: 1px solid #eee;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
text-decoration: none;
color: #0B55C4;
}
/** for massmail component **/
td#mm_pane { width: 90%; }
input#mm_subject { width: 200px; }
textarea#mm_message { width: 100%; }
/* pane-sliders */
.pane-sliders .title {
margin: 0;
padding: 2px;
color: #666;
cursor: pointer;
}
.pane-sliders .panel { border: 1px solid #ccc; margin-bottom: 3px;}
.pane-sliders .panel h3 { background: #f6f6f6; color: #666}
.pane-sliders .content { background: #f6f6f6; }
.pane-sliders .adminlist { border: 0 none; }
.pane-sliders .adminlist td { border: 0 none; }
.jpane-toggler span { background: transparent
url(../images/j_arrow.png) 5px 50% no-repeat; padding-left: 20px;}
.jpane-toggler-down span { background: transparent
url(../images/j_arrow_down.png) 5px 50% no-repeat; padding-left: 20px;}
.jpane-toggler-down { border-bottom: 1px solid #ccc; }
/* tabs */
dl.tabs {
float: left;
margin: 10px 0 -1px 0;
z-index: 50;
}
dl.tabs dt {
float: left;
padding: 4px 10px;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
border-top: 1px solid #ccc;
margin-left: 3px;
background: #f0f0f0;
color: #666;
}
dl.tabs dt.open {
background: #F9F9F9;
border-bottom: 1px solid #F9F9F9;
z-index: 100;
color: #000;
}
div.current {
clear: both;
border: 1px solid #ccc;
padding: 10px 10px;
}
div.current dd {
padding: 0;
margin: 0;
}
/** cpanel settings **/
#cpanel div.icon {
text-align: center;
margin-right: 5px;
float: left;
margin-bottom: 5px;
}
#cpanel div.icon a {
display: block;
float: left;
border: 1px solid #f0f0f0;
height: 97px;
width: 108px;
color: #666;
vertical-align: middle;
text-decoration: none;
}
#cpanel div.icon a:hover {
border-left: 1px solid #eee;
border-top: 1px solid #eee;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
background: #f9f9f9;
color: #0B55C4;
}
#cpanel img { padding: 10px 0; margin: 0 auto; }
#cpanel span { display: block; text-align: center; }
/* standard form style table */
div.col { float: left; }
div.width-45 { width: 45%; }
div.width-55 { width: 55%; }
div.width-50 { width: 50%; }
div.width-70 { width: 70%; }
div.width-30 { width: 30%; }
div.width-60 { width: 60%; }
div.width-40 { width: 40%; }
table.admintable td { padding: 3px; }
table.admintable td.key,
table.admintable td.paramlist_key {
background-color: #f6f6f6;
text-align: right;
width: 140px;
color: #666;
font-weight: bold;
border-bottom: 1px solid #e9e9e9;
border-right: 1px solid #e9e9e9;
}
table.paramlist td.paramlist_description {
background-color: #f6f6f6;
text-align: left;
width: 170px;
color: #333;
font-weight: normal;
border-bottom: 1px solid #e9e9e9;
border-right: 1px solid #e9e9e9;
}
table.admintable td.key.vtop { vertical-align: top; }
table.adminform {
background-color: #f9f9f9;
border: solid 1px #d5d5d5;
width: 100%;
border-collapse: collapse;
margin: 8px 0 10px 0;
margin-bottom: 15px;
width: 100%;
}
table.adminform.nospace { margin-bottom: 0; }
table.adminform tr.row0 { background-color: #f9f9f9; }
table.adminform tr.row1 { background-color: #eeeeee; }
table.adminform th {
font-size: 11px;
padding: 6px 2px 4px 4px;
text-align: left;
height: 25px;
color: #000;
background-repeat: repeat;
}
table.adminform td { padding: 3px; text-align: left; }
table.adminform td.filter{
text-align: left;
}
table.adminform td.helpMenu{
text-align: right;
}
fieldset.adminform { border: 1px solid #ccc; margin: 0 10px 10px 10px; }
/** Table styles **/
table.adminlist {
width: 100%;
border-spacing: 1px;
background-color: #e7e7e7;
color: #666;
}
table.adminlist td,
table.adminlist th { padding: 4px; }
table.adminlist thead th {
text-align: center;
background: #f0f0f0;
color: #666;
border-bottom: 1px solid #999;
border-left: 1px solid #fff;
}
table.adminlist thead a:hover { text-decoration: none; }
table.adminlist thead th img { vertical-align: middle; }
table.adminlist tbody th { font-weight: bold; }
table.adminlist tbody tr { background-color: #fff; text-align: left; }
table.adminlist tbody tr.row1 { background: #f9f9f9; border-top: 1px solid
#fff; }
table.adminlist tbody tr.row0:hover td,
table.adminlist tbody tr.row1:hover td { background-color: #ffd ; }
table.adminlist tbody tr td { height: 25px; background: #fff; border:
1px solid #fff; }
table.adminlist tbody tr.row1 td { background: #f9f9f9; border-top: 1px
solid #FFF; }
table.adminlist tfoot tr { text-align: center; color: #333; }
table.adminlist tfoot td,
table.adminlist tfoot th { background-color: #f3f3f3; border-top: 1px solid
#999; text-align: center; }
table.adminlist td.order { text-align: center; white-space: nowrap; }
table.adminlist td.order span { float: left; display: block; width: 20px;
text-align: center; }
table.adminlist .pagination { display:table; padding:0; margin:0 auto; }
.pagination div.limit {
float: left;
height: 22px;
line-height: 22px;
margin: 0 10px;
}
/** stu nicholls solution for centering divs **/
.container {clear:both; text-decoration:none;}
* html .container {display:inline-block;}
/** table solution for global config **/
table.noshow { width: 100%; border-collapse: collapse; padding: 0;
margin: 0; }
table.noshow tr { vertical-align: top; }
table.noshow td { }
table.noshow fieldset { margin: 15px 7px 7px 7px; }
#editor-xtd-buttons { padding: 5px; }
/* -- buttons -> STILL NEED CLEANUP*/
.button1,
.button1 div{
height: 1%;
float: right;
}
.button2-left,
.button2-right,
.button2-left div,
.button2-right div {
float: left;
}
.button1 { background: url(../images/j_button1_left.png) no-repeat;
white-space: nowrap; padding-left: 10px; margin-left: 5px;}
.button1 .next { background: url(../images/j_button1_next.png) 100% 0
no-repeat; }
.button1 a {
display: block;
height: 26px;
float: left;
line-height: 26px;
font-size: 12px;
font-weight: bold;
color: #333;
cursor: pointer;
padding: 0 30px 0 6px;
}
.button1 a:hover { text-decoration: none; color: #0B55C4; }
.button2-left a,
.button2-right a,
.button2-left span,
.button2-right span {
display: block;
height: 22px;
float: left;
line-height: 22px;
font-size: 11px;
color: #333;
cursor: pointer;
}
.button2-left span,
.button2-right span { cursor: default; color: #999; }
.button2-left .page a,
.button2-right .page a,
.button2-left .page span,
.button2-right .page span,
.button2-left .blank a,
.button2-right .blank a,
.button2-left .blank span,
.button2-right .blank span { padding: 0 6px; }
.page span,
.blank span {
color: #000;
font-weight: bold;
}
.button2-left a:hover,
.button2-right a:hover { text-decoration: none; color: #0B55C4; }
.button2-left a,
.button2-left span { padding: 0 24px 0 6px; }
.button2-right a,
.button2-right span { padding: 0 6px 0 24px; }
.button2-left { background: url(../images/j_button2_left.png) no-repeat;
float: left; margin-left: 5px; }
.button2-right { background: url(../images/j_button2_right.png) 100% 0
no-repeat; float: left; margin-left: 5px; }
.button2-right .prev { background: url(../images/j_button2_prev.png)
no-repeat; }
.button2-right.off .prev { background:
url(../images/j_button2_prev_off.png) no-repeat; }
.button2-right .start { background: url(../images/j_button2_first.png)
no-repeat; }
.button2-right.off .start { background:
url(../images/j_button2_first_off.png) no-repeat; }
.button2-left .page,
.button2-left .blank { background: url(../images/j_button2_right_cap.png)
100% 0 no-repeat; }
.button2-left .next { background: url(../images/j_button2_next.png) 100% 0
no-repeat; }
.button2-left.off .next { background: url(../images/j_button2_next_off.png)
100% 0 no-repeat; }
.button2-left .end { background: url(../images/j_button2_last.png) 100% 0
no-repeat; }
.button2-left.off .end { background: url(../images/j_button2_last_off.png)
100% 0 no-repeat; }
.button2-left .image { background: url(../images/j_button2_image.png)
100% 0 no-repeat; }
.button2-left .readmore { background:
url(../images/j_button2_readmore.png) 100% 0 no-repeat; }
.button2-left .pagebreak { background:
url(../images/j_button2_pagebreak.png) 100% 0 no-repeat; }
.button2-left .blank { background: url(../images/j_button2_blank.png)
100% 0 no-repeat; }
/* Tooltips */
.tool-tip {
float: left;
background: #ffc;
border: 1px solid #D4D5AA;
padding: 5px;
max-width: 200px;
z-index: 50;
}
.tool-title {
padding: 0;
margin: 0;
font-size: 100%;
font-weight: bold;
margin-top: -15px;
padding-top: 15px;
padding-bottom: 5px;
background: url(../images/selector-arrow.png) no-repeat;
}
.tool-text {
font-size: 100%;
margin: 0;
}
/* Calendar */
a img.calendar {
width: 16px;
height: 16px;
margin-left: 3px;
background: url(../images/calendar.png) no-repeat;
cursor: pointer;
vertical-align: middle;
}
/* System Standard Messages */
#system-message dd.message ul { background: #C3D2E5
url(../images/notice-info.png) 4px center no-repeat;}
/* System Error Messages */
#system-message dd.error ul { color: #c00; background: #E6C0C0
url(../images/notice-alert.png) 4px top no-repeat; border-top: 3px solid
#DE7A7B; border-bottom: 3px solid #DE7A7B;}
/* System Notice Messages */
#system-message dd.notice ul { color: #c00; background: #EFE7B8
url(../images/notice-note.png) 4px top no-repeat; border-top: 3px solid
#F0DC7E; border-bottom: 3px solid
#F0DC7E;}PK/o�[LnO��assets/images/array.gifnu�[���GIF89a�
0(
@80P@@PP@`PP``Pp`Ppp`Hj�Ww�e��f��t��{���p`�xp��p��������������������������������������������������������ӿ����������������������������������������!��,�uH���&�ap`�7n�x��DC2j�`��Ǐ'0��#"
1\�HQ��%%�@ ��
#8���d-T���<k�th��`��
$B���'�^Ź��:&��u�4,�C"�v��A�!����1��;PK/o�[��/���assets/images/boolean.gifnu�[���GIF89a�``cffieetllpll|rrvxx|tt�~~�{{���.�7+�/'�2+�E�W�co�pl�in�s��+�>�Z<�G�I�I�Y�_J�]V�Z]�GJ�[@�mS�k]�vG�ci�fm�{p�yp�kvɔ|ؖ~�v��c��������������������������������������������ǵ�ʓĜ����ǧ�Чʙ�ҥ��Ե����������������������������������������������������������������������������������������������������������!��,��H��A�k|�h$H�K(4a���("��1jve
�
<B
�̱�6hn P�`� L�������p�
R�fH�d�/RF� X�X��p����#�@'%:p
AE��hh�D��
�����S2lP���[��ŗ'&�<��y`@;PK/o�[9y���assets/images/cancel_f2.pngnu�[����PNG
IHDR D���+tEXtCreation TimeMon 2 Aug 2004 15:07:00
-0000��n>tIME�
bя pHYs��~�gAMA���aIPLTE�����ֽ�έ����������Όs{{JJsJJss{����kk�91�!�1�)�))����BB�1�1�9�)kBB�����ƌss�9)�R!�9�)�����ΌRR�B)��J�{B�B�)kcc������sBJ{{{Ɯ��Z1��R��k��{�Z!�B�J�)!kck�{{�11�!�)�)ƥ��cB��s�����k�R!�J�1{11{���������)�cc�k�Ƅ�ƌ�R�9k9B�)!�9�!����RR����1�)�B�!cRZ�ZJ�Ό��J�)�)!�������sZ�k1�c)�Z)�!�����֥{{ތc��{��s��Z�c1�)�RR�ZR�k��c�)�ss��R�s9�9�B9�������J!�1�JJ����9�Zc�9)�1!����BB�Z1�B!kBJ�������1)��Z��BkZZ�ZZ�9!��c�)!����B)�Jƭ��ZB�9s99�cZ�c�sJ�ZB��{��k�RB�ks����)�������cJ�c�kJ�B����ZR����kJ�����������J�BB�JB�sB�J�9!�kk����J9�1)�{�����B!�91��Ƶss�9)�kkn?@�tRNS@��f�IDATx�}SW�`m)4"Zh�
�օ���MB�b'�B�
A�4U��jUW@����[Ľ~��KD�xOsN�w��{��?��gѯ�aL|��z;�
}7������~��3щ�o�%8��
�%��^6u�
�D���R�M�|�Lv7���O���{�s�#8����*��� �C�Á��֮GnE�1 �=A�`G}� ����;M�����KP,}���W�1~����߸)>9�:�
�%h���H�
DQ���O:1�'��W����)З$IE�e ǝȀ'.�SS��>��J~��K�j���Hc;y�WE\r�!�O��,�|�h/.���ǎ�H�-:y�Sr8T�-DOMҠG2��C4�A̵�a�>/��hu������I �F���B���{�ZG#���G8.��P�,�\��{�����Q�`��{\v۱S����0Ô�pА��cض��=�M7A�����X��M��
����rPԲ�@���؈�m�]�0!7�4|e��rW�I�k�h�K���$好��@Mм,y��:ż�����x��dz��d4M-���C�(��3N�`�Ϝ5[=3g�ɚ[��m̘ZT���i�%���RSz�hܓ�'O��
�%4���?���m��M3�����i��:���΄P!��IEND�B`�PK/o�[�_I�LLassets/images/close.pngnu�[����PNG
IHDR(-SsBIT��O��PLTE����も�RR�::����
夤����((����tt����%%��66���붶�oo����
䒒�CC����cc�������??�{{�))����33�mm��HH����\\�rr�����22�;;�����LL�99�**������##��{{�))�MM�88�ff�ssta�`<tRNS�������������������������������������������������������������b pHYs��~�tEXtSoftwareMacromedia
Fireworks 8�h�x�IDAT�]ω�0`PT���k���)�(
*�`���i��K�S�_)�Hf����;��z7�(����,�S�Ns^�("%��Z�"�LD��^]_ �䲩=]˛�@��6g��=;`J1]����)�|hjƖX����A��.3�t�<6D��QQ�#裣��?���_L�@������oIEND�B`�PK/o�[��q���assets/images/collapseall.pngnu�[����PNG
IHDR
r��|tIME�7��� pHYs��gAMA���a�IDATx�c\���"���#�f���5\��f�1�/YKP��/��hϘ`�A�������&&F241փ�Iط�ⷛ��k�����7욞���<."��q�L���J��
���yy�X��
�i�!���IEND�B`�PK/o�[(�q���assets/images/content.pngnu�[����PNG
IHDR�agAMA��7��tEXtSoftwareAdobe
ImageReadyq�e<IDATx�b�m�KX���ϯ����a���/�o��@��_���3�������?���`����~�b�3Pb����'��_>��O�F���210��~2��Do�
!�ߪ<�@�?������߁�7(
�@�
�4� hʭ�,��EM�?C�P�P�/�
N��,,L�L�P����c`����������!���
�X�j������=��?|Â��9���_���+#33А��𗁙��A^Zh��ba
�����1���`����1�}��� ���
���������AZB��@,!�8C�C��/Qs���e��W�O�>
��?Xݟ?@!��t@�0@%�]�����?'���L`1
EE%�M
������Q���o0
�X`&����t#Á{�rss�1H�b�!��a��;�U���S�ݺ��0���=,v��9�7o�@��l�?���0���
��
_q�10���,�g���<�DP�����/�@�0��误�<��m�{��?�
U1����ALX�@������k@���-l��~���`nn�`�����
̿`C��� N�LH���
&���i����@�@I^�t�T��L�̌IJ���?O����0�����_@��r�_��
�D�/(�3@�c``&��>�
FX4�r2�W��zIEND�B`�PK/o�[~����$assets/images/dhtmlgoodies_minus.gifnu�[���GIF89a
����������������������������������������������0H`���!�,
B`%�di�(���$@4�<�ё�R����d��
��01�P�j-z��d�%
�hYj�^�;PK0o�[�!J���#assets/images/dhtmlgoodies_plus.gifnu�[���GIF89a
������������װ�����������������������������������0H`���!�,
E`%�di�(���А��4�<RHd�(�H@�(����d"SA!Ba&IS`�$��R��
L�aҠɖ���w;PK0o�[���mmassets/images/double.gifnu�[���GIF89a�```���!��,JH��0xP
��\(@�@�V$h1��#f�p�@�G:,�Ҥ��9j�yq&˃i�,(Rdɟ;PK0o�[
�}>assets/images/expandall.pngnu�[����PNG
IHDR
r��|tIME�(>�C pHYs��gAMA���a�IDATx�c\���"���(#�fN65\�w�f�1�-^CP�/��h���A�3���#�Np5
�AC#��˟�b,蚘�8 ]C��w5
�D�������[�Ch���.��;�p����#�#h0Ř@I�<`� ÿw�b��
y���1�e��
�+�e�F�IEND�B`�PK0o�[�,Vkqqassets/images/float.gifnu�[���GIF89a��
H��������!��,NH� A08pa�
F�(p�Æ
%2�X��Ń=.$@���D9@��)Q�����5i�ܙS��
�;PK0o�[��*yyassets/images/integer.gifnu�[���GIF89a�v��8��W���˽����̣������������!��,VH�
A08paC
F�(p�Æ
%
T@
�Ńp��CH��Ƞ��,.\@&E�k�� ��Ε7t���E�H�;PK0o�["�8�!!assets/images/locked.pngnu�[����PNG
IHDR(-StIME�6&��� pHYs
�
�B�4�gAMA���a�PLTE����iT�T#�S�L�D�fQyH������
�� �� ���zy;{G��������{@�����W��,�����l!��5��!��
�^��*��f��9��@�z"᷂ϘJСLզM˙D�X�UɘEΚG�˻���ÿ������~�������ȷ��̿����ۇ����������焅������������������햖������᪪�?�,/tRNS@��f�IDATx�=���0EѨX *��{�E�����@�K���
Fo�����d6�c0�>���یv@ؕ0t�?�£���Ϟ�Z!X�v��cؒ�:��ә>_,W��Z�7S��p�o<hw��z}�z��E�
X�j�(c\(�d�R��(?�+��r���(bI���@"�
�t}U�O�3��IEND�B`�PK0o�[�^�x))assets/images/message.gifnu�[����PNG
IHDR(-SsBIT��O��PLTEa����3��j����i��5p�������V��^�N����s�{�������ރ��O�ǫ�����W�����Jt�D��]����i��a�s�����,g�Ar�������^��Q��e��p�����J����چ��\��<��_����!f�k����ތ�����k��e��YH�6tRNS�����������������������������������������������������oI�� pHYs��~�tEXtSoftwareMacromedia
Fireworks
8�h�x�IDAT�]���0� ���10'F�h|�WsH��i�]��+�t��֞W�r����u@�f��I�k�= ��-���(I
�}:�8W� �s�i
9皱�ian��
(�,ȃ��j��.u0��`��ْ�x<
e�C==j��G7C(s�Kt��w���~͋h�u*;~���#|�xIEND�B`�PK0o�[�ZG��assets/images/method.gifnu�[���GIF89a�#�$�%�)�
,�
/�0�4�5�;�P�6R�8a�Jd�Mh�Rl�Wq�\{�h�m��n��o��s�ށ��፟④㕦䙭桰����������������������������!��,lUH����*\Ȱa�4��`�|P�@�0�
C@�b
L��AA 0�� �x0�@��$�YpU0�!D*88��!��;PK0o�[�M]<<assets/images/methods.gifnu�[���GIF89a�A�P��p�0�P��`�0������𠐈p0(
��� �p`�� �����p�x �@�@�
@80�`�������ӿ�p �0PP@��
����xp��ppp`������ ���
``P`PP���АP@@�P�0И
���p`P�������`��p��������
���������!�A,��A�����2;����;@@'?�A?��>���<�<�895+!A�� �:1�>��5:76#3A� 8���$*A��6(.����A49���-A
,/0%&<0 aC|
D��`aA�#��t);PK0o�[�G�kkassets/images/null.gifnu�[���GIF89a���������!��,HH�
A08@��.d�bʼn+>T��!ď
j�Q�ȏ%��($ˌ.7���r�̌2�ɳ���;PK0o�[�M]<<assets/images/object.gifnu�[���GIF89a�A�P��p�0�P��`�0������𠐈p0(
��� �p`�� �����p�x �@�@�
@80�`�������ӿ�p �0PP@��
����xp��ppp`������ ���
``P`PP���АP@@�P�0И
���p`P�������`��p��������
���������!�A,��A�����2;����;@@'?�A?��>���<�<�895+!A�� �:1�>��5:76#3A� 8���$*A��6(.����A49���-A
,/0%&<0 aC|
D��`aA�#��t);PK0o�[�M]<<assets/images/properties.gifnu�[���GIF89a�A�P��p�0�P��`�0������𠐈p0(
��� �p`�� �����p�x �@�@�
@80�`�������ӿ�p �0PP@��
����xp��ppp`������ ���
``P`PP���АP@@�P�0И
���p`P�������`��p��������
���������!�A,��A�����2;����;@@'?�A?��>���<�<�895+!A�� �:1�>��5:76#3A� 8���$*A��6(.����A49���-A
,/0%&<0 aC|
D��`aA�#��t);PK0o�[Uv���assets/images/refresh.pngnu�[����PNG
IHDR�asRGB���gAMA���a
cHRMz&�����u0�`:�p��Q< pHYs���iTStIME�)�NIDAT8O��yH�a�_Gs���9����yΦs9��yF:�y-�<��**)�NE��Q�)�0�%TR�(�4�6�Ҋ4�J�o?X�_/��<���)?��N���ⱥ��+s�q��Tl����~��}�Y�v�w��̒
�MmT�ds���J�J�F��)��mS0.w8��P=
f�x3î�Q�B
���X
�Jºw��[
?EC���
�$l~1�wO�m��W��"ie����}FN�(Qe;�=�|�2�eήF@�nV��(�=���y��,���eE��M&�e���c�L|�n�k8�Ҹs9}�����}gF���NB�X�Fɡ�p������:���EǗB��#b'd��!m���0�j�s�R��b�9���PY3ă��6�_������A1Tcx���Ŵ��7#�n��͘�3�H��f��wE_�
�:��9�3ćS�)<���\N*��J�i�J�F3���w�����j����I!� q
i�.�ώ=&��fC6�ŞID�M���7*n@Qsf1��I8�X�F�ђ�k�i�A/Km�!�f�Z�1a^��jV���d���ϥ<l-��tHk��X\��a��=�W7���r�fUs�df���v�X�P�n�k�Q�z��
��U8��&i�{-{)�߇���|My�~/��'FP��Ɓ�݈�w�j�1�2d~��a�C��
ĈXn��h��U�vȇ�P>����
'�y��6�?��mi[ҍ��2Ro=O �u�пk::W`�IEND�B`�PK0o�[�դTggassets/images/resource.gifnu�[���GIF89a����!��,DH�
�08p�C� �H�bA�
'^�Hq�Ŏ=��#I�
IZl�*M�D)0cƈ8sF;PK0o�[�!��||assets/images/string.gifnu�[���GIF89a�/T�W{�d��m��r��~�Á�������ږ�ǖ�Ք�ܟ�ٸ��ت���������������!��,Y-H�
A08paC
F�(p�Æ
%2�X��ŃT��G�$X�Р�F(0������K>� ��G�H=n\�T`@;PK1o�[�=�^^assets/images/unlocked.pngnu�[����PNG
IHDR(-StIME�8��� pHYs���iTSgAMA���a�PLTE����iT�T#�U�S�S�R�Q�P�O�M�L�K�D�fQyH��%����
��
�� ������������zy;{G������������
�� ����������{>{H��������������
���� ������{?|L��&��������������|A�Z��,���������������N�p#��:��!��#��#��"���b��*��j��Z��Z��X��U��W��R�|#�Ю�~��較仄���S��c��a˝f�ճ����������������������ׁ���������������������������膆���������Ź�������⨨���������������ȉ����飣���㜜����������������������◗������������������ޘ�������ͪ����ȵ�Ǻ������N��IDATx�c`�E��,]�d�
(�1s��9s��_�*��?a��S�N��7����w0tvu����kj�t}CcX����D��WT���srAt^~A!���OHHLJNNIMK��
���G�AdTtL,P���?��C��.�n@�����������������wPut
h��������[d����UT��54����B�"�b��R�2@F&fV6vN.n^>>fb_d`IEND�B`�PK1o�[�J&��assets/js/dump.jsnu�[���/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
function dumpLockWindow()
{
$('dumpRefresh').remove();
$('dumpLock').remove();
$('dumpLocked').setStyle('display',
'inline');
window.name='dumpLock' + new Date().getTime(); // Make a new
unique name for the window
}
PK1o�[�@�&,&,assets/js/folder-tree-static.jsnu�[��� /************************************************************************************************************
(C) www.dhtmlgoodies.com, October 2005
Update log:
December, 19th, 2005 - Version 1.1: Added support for several trees on a
page
January, 25th, 2006 - Version 1.2: Added onclick event to text nodes.
February, 3rd 2006 - Dynamic load nodes by use of Ajax
This is a script from www.dhtmlgoodies.com. You will find this and a lot
of other scripts at our website.
Terms of use:
You are free to use this script as long as the copyright message is kept
intact. However, you may not
redistribute, sell or repost it without our permission.
Thank you!
www.dhtmlgoodies.com
Alf Magne Kalleland
************************************************************************************************************/
var idOfFolderTrees =
['dhtmlgoodies_tree','dhtmlgoodies_tree2'];
//var imageFolder = '/assets/images/'; // Path to images
var folderImage = 'dhtmlgoodies_folder.gif';
var plusImage = 'dhtmlgoodies_plus.gif';
var minusImage = 'dhtmlgoodies_minus.gif';
var initExpandedNodes = ''; // Cookie - initially expanded
nodes;
var useAjaxToLoadNodesDynamically = false;
var ajaxRequestFile = 'writeNodes.php';
var contextMenuActive = false; // Set to false if you don't want to
be able to delete and add new nodes dynamically
var ajaxObjectArray = new Array();
var treeUlCounter = 0;
var nodeId = 1;
/*
These cookie functions are downloaded from
http://www.mach5.com/support/analyzer/manual/html/General/CookiesJavaScript.htm
*/
function Get_Cookie(name) {
var start = document.cookie.indexOf(name+"=");
var len = start+name.length+1;
if ((!start) && (name !=
document.cookie.substring(0,name.length))) return null;
if (start == -1) return null;
var end = document.cookie.indexOf(";",len);
if (end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(len,end));
}
// This function has been slightly modified
function Set_Cookie(name,value,expires,path,domain,secure) {
expires = expires * 60*60*24*1000;
var today = new Date();
var expires_date = new Date( today.getTime() + (expires) );
var cookieString = name + "=" +escape(value) +
( (expires) ? ";expires=" + expires_date.toGMTString() :
"") +
( (path) ? ";path=" + path : "") +
( (domain) ? ";domain=" + domain : "") +
( (secure) ? ";secure" : "");
document.cookie = cookieString;
}
function expandAll(treeId)
{
var menuItems =
document.getElementById(treeId).getElementsByTagName('LI');
for(var no=0;no<menuItems.length;no++){
var subItems = menuItems[no].getElementsByTagName('UL');
if(subItems.length>0 &&
subItems[0].style.display!='block'){
showHideNode(false,menuItems[no].id.replace(/[^0-9]/g,''));
}
}
}
function collapseAll(treeId)
{
var menuItems =
document.getElementById(treeId).getElementsByTagName('LI');
for(var no=0;no<menuItems.length;no++){
var subItems = menuItems[no].getElementsByTagName('UL');
if(subItems.length>0 &&
subItems[0].style.display=='block'){
showHideNode(false,menuItems[no].id.replace(/[^0-9]/g,''));
}
}
}
function getNodeDataFromServer(ajaxIndex,ulId,parentId)
{
document.getElementById(ulId).innerHTML =
ajaxObjectArray[ajaxIndex].response;
ajaxObjectArray[ajaxIndex] = false;
parseSubItems(ulId,parentId);
}
function parseSubItems(ulId,parentId)
{
if(initExpandedNodes){
var nodes = initExpandedNodes.split(',');
}
var branchObj = document.getElementById(ulId);
var menuItems = branchObj.getElementsByTagName('LI'); // Get an
array of all menu items
for(var no=0;no<menuItems.length;no++){
var imgs = menuItems[no].getElementsByTagName('IMG');
if(imgs.length>0)continue;
nodeId++;
var subItems = menuItems[no].getElementsByTagName('UL');
var img = document.createElement('IMG');
img.src = imageFolder + plusImage;
img.onclick = showHideNode;
if(subItems.length==0)img.style.visibility='hidden';else{
subItems[0].id = 'tree_ul_' + treeUlCounter;
treeUlCounter++;
}
var aTag = menuItems[no].getElementsByTagName('A')[0];
aTag.onclick = showHideNode;
if(contextMenuActive)aTag.oncontextmenu = showContextMenu;
menuItems[no].insertBefore(img,aTag);
menuItems[no].id = 'dhtmlgoodies_treeNode' + nodeId;
var folderImg = document.createElement('IMG');
if(menuItems[no].className){
folderImg.src = imageFolder + menuItems[no].className;
}else{
folderImg.src = imageFolder + folderImage;
}
menuItems[no].insertBefore(folderImg,aTag);
var tmpParentId = menuItems[no].getAttribute('parentId');
if(!tmpParentId)tmpParentId = menuItems[no].tmpParentId;
if(tmpParentId &&
nodes[tmpParentId])showHideNode(false,nodes[no]);
}
}
function showHideNode(e,inputId)
{
if(inputId){
if(!document.getElementById('dhtmlgoodies_treeNode'+inputId))return;
thisNode =
document.getElementById('dhtmlgoodies_treeNode'+inputId).getElementsByTagName('IMG')[0];
}else {
thisNode = this;
if(this.tagName=='A')thisNode =
this.parentNode.getElementsByTagName('IMG')[0];
}
if(thisNode.style.visibility=='hidden')return;
var parentNode = thisNode.parentNode;
inputId = parentNode.id.replace(/[^0-9]/g,'');
if(thisNode.src.indexOf(plusImage)>=0){
thisNode.src = thisNode.src.replace(plusImage,minusImage);
var ul = parentNode.getElementsByTagName('UL')[0];
ul.style.display='block';
if(!initExpandedNodes)initExpandedNodes = ',';
if(initExpandedNodes.indexOf(',' + inputId +
',')<0) initExpandedNodes = initExpandedNodes + inputId +
',';
if(useAjaxToLoadNodesDynamically){ // Using AJAX/XMLHTTP to get data
from the server
var firstLi = ul.getElementsByTagName('LI')[0];
var parentId = firstLi.getAttribute('parentId');
if(!parentId)parentId = firstLi.parentId;
if(parentId){
ajaxObjectArray[ajaxObjectArray.length] = new sack();
var ajaxIndex = ajaxObjectArray.length-1;
ajaxObjectArray[ajaxIndex].requestFile = ajaxRequestFile +
'?parentId=' + parentId;
ajaxObjectArray[ajaxIndex].onCompletion = function() {
getNodeDataFromServer(ajaxIndex,ul.id,parentId); }; // Specify function
that will be executed after file has been found
ajaxObjectArray[ajaxIndex].runAJAX(); // Execute AJAX function
}
}
}else{
thisNode.src = thisNode.src.replace(minusImage,plusImage);
parentNode.getElementsByTagName('UL')[0].style.display='none';
initExpandedNodes = initExpandedNodes.replace(',' +
inputId,'');
}
Set_Cookie('dhtmlgoodies_expandedNodes',initExpandedNodes,500);
return false;
}
var okToCreateSubNode = true;
function addNewNode(e)
{
if(!okToCreateSubNode)return;
setTimeout('okToCreateSubNode=true',200);
contextMenuObj.style.display='none';
okToCreateSubNode = false;
source = contextMenuSource;
while(source.tagName.toLowerCase()!='li')source =
source.parentNode;
/*
if (e.target) source = e.target;
else if (e.srcElement) source = e.srcElement;
if (source.nodeType == 3) // defeat Safari bug
source = source.parentNode; */
//while(source.tagName.toLowerCase()!='li')source =
source.parentNode;
var nameOfNewNode = prompt('Name of new node');
if(!nameOfNewNode)return;
uls = source.getElementsByTagName('UL');
if(uls.length==0){
var ul = document.createElement('UL');
source.appendChild(ul);
}else{
ul = uls[0];
ul.style.display='block';
}
var img = source.getElementsByTagName('IMG');
img[0].style.visibility='visible';
var li = document.createElement('LI');
li.className='dhtmlgoodies_sheet.gif';
var a = document.createElement('A');
a.href = '#';
a.innerHTML = nameOfNewNode;
li.appendChild(a);
ul.id = 'newNode' + Math.round(Math.random()*1000000);
ul.appendChild(li);
parseSubItems(ul.id);
saveNewNode(nameOfNewNode,source.getElementsByTagName('A')[0].id);
}
/* Save a new node */
function saveNewNode(nodeText,parentId)
{
self.status = 'Ready to save node ' + nodeText + ' which
is a sub item of ' + parentId;
// Use an ajax method here to save this new node. example below:
/*
ajaxObjectArray[ajaxObjectArray.length] = new sack();
var ajaxIndex = ajaxObjectArray.length-1;
ajaxObjectArray[ajaxIndex].requestFile = ajaxRequestFile +
'?newNode=' + nodeText + '&parendId=' + parentId
ajaxObjectArray[ajaxIndex].onCompletion = function() { self.status =
'New node has been saved'; }; // Specify function that will be
executed after file has been found
ajaxObjectArray[ajaxIndex].runAJAX(); // Execute AJAX function
*/
}
function deleteNode()
{
if(!okToCreateSubNode)return;
setTimeout('okToCreateSubNode=true',200);
contextMenuObj.style.display='none';
source = contextMenuSource;
if(!confirm('Click OK to delete the node ' +
source.innerHTML))return;
okToCreateSubNode = false;
var parentLi = source.parentNode.parentNode.parentNode;
while(source.tagName.toLowerCase()!='li')source =
source.parentNode;
var lis = source.parentNode.getElementsByTagName('LI');
source.parentNode.removeChild(source);
if(lis.length==0)parentLi.getElementsByTagName('IMG')[0].style.visibility='hidden';
deleteNodeOnServer(source.id);
}
function deleteNodeOnServer(nodeId)
{
self.status = 'Ready to delete node' + nodeId;
// Use an ajax method here to save this new node. example below:
/*
ajaxObjectArray[ajaxObjectArray.length] = new sack();
var ajaxIndex = ajaxObjectArray.length-1;
ajaxObjectArray[ajaxIndex].requestFile = ajaxRequestFile +
'?deleteNodeId=' + nodeId
ajaxObjectArray[ajaxIndex].onCompletion = function() { self.status =
'Node has been deleted successfully'; }; // Specify function that
will be executed after file has been found
ajaxObjectArray[ajaxIndex].runAJAX(); // Execute AJAX function
*/
}
function initTree()
{
for(var
treeCounter=0;treeCounter<idOfFolderTrees.length;treeCounter++){
var dhtmlgoodies_tree =
document.getElementById(idOfFolderTrees[treeCounter]);
var menuItems =
dhtmlgoodies_tree.getElementsByTagName('LI'); // Get an array of
all menu items
for(var no=0;no<menuItems.length;no++){
nodeId++;
var subItems = menuItems[no].getElementsByTagName('UL');
var img = document.createElement('IMG');
img.src = imageFolder + plusImage;
img.onclick = showHideNode;
if(subItems.length==0)img.style.visibility='hidden';else{
subItems[0].id = 'tree_ul_' + treeUlCounter;
treeUlCounter++;
}
var aTag = menuItems[no].getElementsByTagName('A')[0];
if(contextMenuActive)aTag.oncontextmenu = showContextMenu;
aTag.onclick = showHideNode;
menuItems[no].insertBefore(img,aTag);
if(!menuItems[no].id)menuItems[no].id =
'dhtmlgoodies_treeNode' + nodeId;
var folderImg = document.createElement('IMG');
if(menuItems[no].className){
folderImg.src = imageFolder + menuItems[no].className;
}else{
folderImg.src = imageFolder + folderImage;
}
menuItems[no].insertBefore(folderImg,aTag);
}
}
initExpandedNodes = Get_Cookie('dhtmlgoodies_expandedNodes');
if(initExpandedNodes){
var nodes = initExpandedNodes.split(',');
for(var no=0;no<nodes.length;no++){
if(nodes[no])showHideNode(false,nodes[no]);
}
}
}
window.onload =
initTree;PK1o�[l���-<-<assets/js/joomla.javascript.jsnu�[���//
<?php !! This fools phpdocumentor into parsing this file
/**
* @version $Id: joomla.javascript.js 14401 2010-01-26 14:10:00Z louis $
* @package Joomla
* @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights
reserved.
* @license GNU/GPL
* Joomla! is Free Software
*/
/**
* Overlib Styling Declarations to allow CSS class override of styles
*
*/
var ol_fgclass='ol-foreground';
var ol_bgclass='ol-background';
var ol_textfontclass='ol-textfont';
var ol_captionfontclass='ol-captionfont';
var ol_closefontclass='ol-closefont';
// general utility for browsing a named array or object
function xshow(o) {
s = '';
for(e in o) {s += e+'='+o[e]+'\n';}
alert( s );
}
/**
* Writes a dynamically generated list
* @param string The parameters to insert into the <select> tag
* @param array A javascript array of list options in the form
[key,value,text]
* @param string The key to display for the initial state of the list
* @param string The original key that was selected
* @param string The original item value that was selected
*/
function writeDynaList( selectParams, source, key, orig_key, orig_val ) {
var html = '\n <select ' + selectParams + '>';
var i = 0;
for (x in source) {
if (source[x][0] == key) {
var selected = '';
if ((orig_key == key && orig_val == source[x][1]) || (i == 0
&& orig_key != key)) {
selected = 'selected="selected"';
}
html += '\n <option
value="'+source[x][1]+'"
'+selected+'>'+source[x][2]+'</option>';
}
i++;
}
html += '\n </select>';
document.writeln( html );
}
/**
* Changes a dynamically generated list
* @param string The name of the list to change
* @param array A javascript array of list options in the form
[key,value,text]
* @param string The key to display
* @param string The original key that was selected
* @param string The original item value that was selected
*/
function changeDynaList( listname, source, key, orig_key, orig_val ) {
var list = eval( 'document.adminForm.' + listname );
// empty the list
for (i in list.options.length) {
list.options[i] = null;
}
i = 0;
for (x in source) {
if (source[x][0] == key) {
opt = new Option();
opt.value = source[x][1];
opt.text = source[x][2];
if ((orig_key == key && orig_val == opt.value) || i == 0) {
opt.selected = true;
}
list.options[i++] = opt;
}
}
list.length = i;
}
/**
* Adds a select item(s) from one list to another
*/
function addSelectedToList( frmName, srcListName, tgtListName ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );
var tgtList = eval( 'form.' + tgtListName );
var srcLen = srcList.length;
var tgtLen = tgtList.length;
var tgt = "x";
//build array of target items
for (var i=tgtLen-1; i > -1; i--) {
tgt += "," + tgtList.options[i].value + ","
}
//Pull selected resources and add them to list
//for (var i=srcLen-1; i > -1; i--) {
for (var i=0; i < srcLen; i++) {
if (srcList.options[i].selected && tgt.indexOf( "," +
srcList.options[i].value + "," ) == -1) {
opt = new Option( srcList.options[i].text, srcList.options[i].value );
tgtList.options[tgtList.length] = opt;
}
}
}
function delSelectedFromList( frmName, srcListName ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );
var srcLen = srcList.length;
for (var i=srcLen-1; i > -1; i--) {
if (srcList.options[i].selected) {
srcList.options[i] = null;
}
}
}
function moveInList( frmName, srcListName, index, to) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );
var total = srcList.options.length-1;
if (index == -1) {
return false;
}
if (to == +1 && index == total) {
return false;
}
if (to == -1 && index == 0) {
return false;
}
var items = new Array;
var values = new Array;
for (i=total; i >= 0; i--) {
items[i] = srcList.options[i].text;
values[i] = srcList.options[i].value;
}
for (i = total; i >= 0; i--) {
if (index == i) {
srcList.options[i + to] = new Option(items[i],values[i], 0, 1);
srcList.options[i] = new Option(items[i+to], values[i+to]);
i--;
} else {
srcList.options[i] = new Option(items[i], values[i]);
}
}
srcList.focus();
return true;
}
function getSelectedOption( frmName, srcListName ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );
i = srcList.selectedIndex;
if (i != null && i > -1) {
return srcList.options[i];
} else {
return null;
}
}
function setSelectedValue( frmName, srcListName, value ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );
var srcLen = srcList.length;
for (var i=0; i < srcLen; i++) {
srcList.options[i].selected = false;
if (srcList.options[i].value == value) {
srcList.options[i].selected = true;
}
}
}
function getSelectedRadio( frmName, srcGroupName ) {
var form = eval( 'document.' + frmName );
var srcGroup = eval( 'form.' + srcGroupName );
return radioGetCheckedValue( srcGroup );
}
// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function radioGetCheckedValue(radioObj) {
if (!radioObj) {
return '';
}
var n = radioObj.length;
if (n == undefined) {
if (radioObj.checked) {
return radioObj.value;
} else {
return '';
}
}
for (var i = 0; i < n; i++) {
if(radioObj[i].checked) {
return radioObj[i].value;
}
}
return '';
}
function getSelectedValue( frmName, srcListName ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );
i = srcList.selectedIndex;
if (i != null && i > -1) {
return srcList.options[i].value;
} else {
return null;
}
}
function getSelectedText( frmName, srcListName ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );
i = srcList.selectedIndex;
if (i != null && i > -1) {
return srcList.options[i].text;
} else {
return null;
}
}
function chgSelectedValue( frmName, srcListName, value ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );
i = srcList.selectedIndex;
if (i != null && i > -1) {
srcList.options[i].value = value;
return true;
} else {
return false;
}
}
/**
* Toggles the check state of a group of boxes
*
* Checkboxes must have an id attribute in the form cb0, cb1...
* @param The number of box to 'check'
* @param An alternative field name
*/
function checkAll( n, fldName ) {
if (!fldName) {
fldName = 'cb';
}
var f = document.adminForm;
var c = f.toggle.checked;
var n2 = 0;
for (i=0; i < n; i++) {
cb = eval( 'f.' + fldName + '' + i );
if (cb) {
cb.checked = c;
n2++;
}
}
if (c) {
document.adminForm.boxchecked.value = n2;
} else {
document.adminForm.boxchecked.value = 0;
}
}
function listItemTask( id, task ) {
var f = document.adminForm;
cb = eval( 'f.' + id );
if (cb) {
for (i = 0; true; i++) {
cbx = eval('f.cb'+i);
if (!cbx) break;
cbx.checked = false;
} // for
cb.checked = true;
f.boxchecked.value = 1;
submitbutton(task);
}
return false;
}
function hideMainMenu() {
if (document.adminForm.hidemainmenu) {
document.adminForm.hidemainmenu.value=1;
}
}
function isChecked(isitchecked){
if (isitchecked == true){
document.adminForm.boxchecked.value++;
}
else {
document.adminForm.boxchecked.value--;
}
}
/**
* Default function. Usually would be overriden by the component
*/
function submitbutton(pressbutton) {
submitform(pressbutton);
}
/**
* Submit the admin form
*/
function submitform(pressbutton){
if (pressbutton) {
document.adminForm.task.value=pressbutton;
}
if (typeof document.adminForm.onsubmit == "function") {
document.adminForm.onsubmit();
}
document.adminForm.submit();
}
/**
* Submit the control panel admin form
*/
function submitcpform(sectionid, id){
document.adminForm.sectionid.value=sectionid;
document.adminForm.id.value=id;
submitbutton("edit");
}
/**
* Getting radio button that is selected.
*/
function getSelected(allbuttons){
for (i=0;i<allbuttons.length;i++) {
if (allbuttons[i].checked) {
return allbuttons[i].value
}
}
return null;
}
// JS Calendar
var calendar = null; // remember the calendar object so that we reuse
// it and avoid creating another
// This function gets called when an end-user clicks on some date
function selected(cal, date) {
cal.sel.value = date; // just update the value of the input field
}
// And this gets called when the end-user clicks on the _selected_ date,
// or clicks the "Close" (X) button. It just hides the calendar
without
// destroying it.
function closeHandler(cal) {
cal.hide(); // hide the calendar
// don't check mousedown on document anymore (used to be able to hide
the
// calendar when someone clicks outside it, see the showCalendar
function).
Calendar.removeEvent(document, "mousedown", checkCalendar);
}
// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown. If the click was outside the open
// calendar this function closes it.
function checkCalendar(ev) {
var el = Calendar.is_ie ? Calendar.getElement(ev) :
Calendar.getTargetElement(ev);
for (; el != null; el = el.parentNode)
// FIXME: allow end-user to click some link without closing the
// calendar. Good to see real-time stylesheet change :)
if (el == calendar.element || el.tagName == "A") break;
if (el == null) {
// calls closeHandler which should hide the calendar.
calendar.callCloseHandler(); Calendar.stopEvent(ev);
}
}
// This function shows the calendar under the element having the given id.
// It takes care of catching "mousedown" signals on document and
hiding the
// calendar if the click was outside.
function showCalendar(id, dateFormat) {
var el = document.getElementById(id);
if (calendar != null) {
// we already have one created, so just update it.
calendar.hide(); // hide the existing calendar
calendar.parseDate(el.value); // set it to a new date
} else {
// first-time call, create the calendar
var cal = new Calendar(true, null, selected, closeHandler);
calendar = cal; // remember the calendar in the global
cal.setRange(1900, 2070); // min/max year allowed
if ( dateFormat ) // optional date format
{
cal.setDateFormat(dateFormat);
}
calendar.create(); // create a popup calendar
calendar.parseDate(el.value); // set it to a new date
}
calendar.sel = el; // inform it about the input field in use
calendar.showAtElement(el); // show the calendar next to the input field
// catch mousedown on the document
Calendar.addEvent(document, "mousedown", checkCalendar);
return false;
}
/**
* Pops up a new window in the middle of the screen
*/
function popupWindow(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;
winprops =
'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
win = window.open(mypage, myname, winprops)
if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}
// LTrim(string) : Returns a copy of a string without leading spaces.
function ltrim(str)
{
var whitespace = new String(" \t\n\r");
var s = new String(str);
if (whitespace.indexOf(s.charAt(0)) != -1) {
var j=0, i = s.length;
while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
j++;
s = s.substring(j, i);
}
return s;
}
//RTrim(string) : Returns a copy of a string without trailing spaces.
function rtrim(str)
{
var whitespace = new String(" \t\n\r");
var s = new String(str);
if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
var i = s.length - 1; // Get length of string
while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
i--;
s = s.substring(0, i+1);
}
return s;
}
// Trim(string) : Returns a copy of a string without leading or trailing
spaces
function trim(str) {
return rtrim(ltrim(str));
}
function mosDHTML(){
this.ver=navigator.appVersion
this.agent=navigator.userAgent
this.dom=document.getElementById?1:0
this.opera5=this.agent.indexOf("Opera 5")<-1
this.ie5=(this.ver.indexOf("MSIE 5")<-1 && this.dom
&& !this.opera5)?1:0;
this.ie6=(this.ver.indexOf("MSIE 6")<-1 && this.dom
&& !this.opera5)?1:0;
this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
this.ie=this.ie4||this.ie5||this.ie6
this.mac=this.agent.indexOf("Mac")<-1
this.ns6=(this.dom && parseInt(this.ver) <= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5);
this.activeTab = '';
this.onTabStyle = 'ontab';
this.offTabStyle = 'offtab';
this.setElemStyle = function(elem,style) {
document.getElementById(elem).className = style;
}
this.showElem = function(id) {
if ((elem = document.getElementById(id))) {
elem.style.visibility = 'visible';
elem.style.display = 'block';
}
}
this.hideElem = function(id) {
if ((elem = document.getElementById(id))) {
elem.style.visibility = 'hidden';
elem.style.display = 'none';
}
}
this.cycleTab = function(name) {
if (this.activeTab) {
this.setElemStyle( this.activeTab, this.offTabStyle );
page = this.activeTab.replace( 'tab', 'page' );
this.hideElem(page);
}
this.setElemStyle( name, this.onTabStyle );
this.activeTab = name;
page = this.activeTab.replace( 'tab', 'page' );
this.showElem(page);
}
return this;
}
var dhtml = new mosDHTML();
// needed for Table Column ordering
function tableOrdering( order, dir, task ) {
var form = document.adminForm;
form.filter_order.value = order;
form.filter_order_Dir.value = dir;
submitform( task );
}
function saveorder( n, task ) {
checkAll_button( n, task );
}
//needed by saveorder function
function checkAll_button( n, task ) {
if (!task ) {
task = 'saveorder';
}
for ( var j = 0; j <= n; j++ ) {
box = eval( "document.adminForm.cb" + j );
if ( box ) {
if ( box.checked == false ) {
box.checked = true;
}
} else {
alert("You cannot change the order of items, as an item in the list
is `Checked Out`");
return;
}
}
submitform(task);
}
/**
* @param object A form element
* @param string The name of the element to find
*/
function getElementByName( f, name ) {
if (f.elements) {
for (i=0, n=f.elements.length; i < n; i++) {
if (f.elements[i].name == name) {
return f.elements[i];
}
}
}
return null;
}
function go2( pressbutton, menu, id ) {
var form = document.adminForm;
if (form.imagelist && form.images) {
// assemble the images back into one field
var temp = new Array;
for (var i=0, n=form.imagelist.options.length; i < n; i++) {
temp[i] = form.imagelist.options[i].value;
}
form.images.value = temp.join( '\n' );
}
if (pressbutton == 'go2menu') {
form.menu.value = menu;
submitform( pressbutton );
return;
}
if (pressbutton == 'go2menuitem') {
form.menu.value = menu;
form.menuid.value = id;
submitform( pressbutton );
return;
}
}
/**
* Verifies if the string is in a valid email format
* @param string
* @return boolean
*/
function isEmail( text )
{
var pattern = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
var regex = new RegExp( pattern );
return regex.test( text );
}PK1o�[����"�"assets/js/mootools.jsnu�[���//MooTools,
My Object Oriented Javascript Tools. Copyright (c) 2006 Valerio Proietti,
<http://mad4milk.net>, MIT Style License.
var MooTools={version:'1.12'};function
$defined(obj){return(obj!=undefined);};function
$type(obj){if(!$defined(obj))return
false;if(obj.htmlElement)return'element';var type=typeof
obj;if(type=='object'&&obj.nodeName){switch(obj.nodeType){case
1:return'element';case
3:return(/\S/).test(obj.nodeValue)?'textnode':'whitespace';}}
if(type=='object'||type=='function'){switch(obj.constructor){case
Array:return'array';case RegExp:return'regexp';case
Class:return'class';}
if(typeof
obj.length=='number'){if(obj.item)return'collection';if(obj.callee)return'arguments';}}
return type;};function $merge(){var mix={};for(var
i=0;i<arguments.length;i++){for(var property in arguments[i]){var
ap=arguments[i][property];var
mp=mix[property];if(mp&&$type(ap)=='object'&&$type(mp)=='object')mix[property]=$merge(mp,ap);else
mix[property]=ap;}}
return mix;};var $extend=function(){var
args=arguments;if(!args[1])args=[this,args[0]];for(var property in
args[1])args[0][property]=args[1][property];return args[0];};var
$native=function(){for(var
i=0,l=arguments.length;i<l;i++){arguments[i].extend=function(props){for(var
prop in
props){if(!this.prototype[prop])this.prototype[prop]=props[prop];if(!this[prop])this[prop]=$native.generic(prop);}};}};$native.generic=function(prop){return
function(bind){return
this.prototype[prop].apply(bind,Array.prototype.slice.call(arguments,1));};};$native(Function,Array,String,Number);function
$chk(obj){return!!(obj||obj===0);};function $pick(obj,picked){return
$defined(obj)?obj:picked;};function $random(min,max){return
Math.floor(Math.random()*(max-min+1)+min);};function $time(){return new
Date().getTime();};function
$clear(timer){clearTimeout(timer);clearInterval(timer);return null;};var
Abstract=function(obj){obj=obj||{};obj.extend=$extend;return obj;};var
Window=new Abstract(window);var Document=new
Abstract(document);document.head=document.getElementsByTagName('head')[0];window.xpath=!!(document.evaluate);if(window.ActiveXObject)window.ie=window[window.XMLHttpRequest?'ie7':'ie6']=true;else
if(document.childNodes&&!document.all&&!navigator.taintEnabled)window.webkit=window[window.xpath?'webkit420':'webkit419']=true;else
if(document.getBoxObjectFor!=null||window.mozInnerScreenX!=null)window.gecko=true;window.khtml=window.webkit;Object.extend=$extend;if(typeof
HTMLElement=='undefined'){var
HTMLElement=function(){};if(window.webkit)document.createElement("iframe");HTMLElement.prototype=(window.webkit)?window["[[DOMElement.prototype]]"]:{};}
HTMLElement.prototype.htmlElement=function(){};if(window.ie6)try{document.execCommand("BackgroundImageCache",false,true);}catch(e){};var
Class=function(properties){var
klass=function(){return(arguments[0]!==null&&this.initialize&&$type(this.initialize)=='function')?this.initialize.apply(this,arguments):this;};$extend(klass,this);klass.prototype=properties;klass.constructor=Class;return
klass;};Class.empty=function(){};Class.prototype={extend:function(properties){var
proto=new this(null);for(var property in properties){var
pp=proto[property];proto[property]=Class.Merge(pp,properties[property]);}
return new Class(proto);},implement:function(){for(var
i=0,l=arguments.length;i<l;i++)$extend(this.prototype,arguments[i]);}};Class.Merge=function(previous,current){if(previous&&previous!=current){var
type=$type(current);if(type!=$type(previous))return
current;switch(type){case'function':var
merged=function(){this.parent=arguments.callee.parent;return
current.apply(this,arguments);};merged.parent=previous;return
merged;case'object':return $merge(previous,current);}}
return current;};var Chain=new
Class({chain:function(fn){this.chains=this.chains||[];this.chains.push(fn);return
this;},callChain:function(){if(this.chains&&this.chains.length)this.chains.shift().delay(10,this);},clearChain:function(){this.chains=[];}});var
Events=new
Class({addEvent:function(type,fn){if(fn!=Class.empty){this.$events=this.$events||{};this.$events[type]=this.$events[type]||[];this.$events[type].include(fn);}
return
this;},fireEvent:function(type,args,delay){if(this.$events&&this.$events[type]){this.$events[type].each(function(fn){fn.create({'bind':this,'delay':delay,'arguments':args})();},this);}
return
this;},removeEvent:function(type,fn){if(this.$events&&this.$events[type])this.$events[type].remove(fn);return
this;}});var Options=new
Class({setOptions:function(){this.options=$merge.apply(null,[this.options].extend(arguments));if(this.addEvent){for(var
option in
this.options){if($type(this.options[option]=='function')&&(/^on[A-Z]/).test(option))this.addEvent(option,this.options[option]);}}
return this;}});Array.extend({forEach:function(fn,bind){for(var
i=0,j=this.length;i<j;i++)fn.call(bind,this[i],i,this);},filter:function(fn,bind){var
results=[];for(var
i=0,j=this.length;i<j;i++){if(fn.call(bind,this[i],i,this))results.push(this[i]);}
return results;},map:function(fn,bind){var results=[];for(var
i=0,j=this.length;i<j;i++)results[i]=fn.call(bind,this[i],i,this);return
results;},every:function(fn,bind){for(var
i=0,j=this.length;i<j;i++){if(!fn.call(bind,this[i],i,this))return
false;}
return true;},some:function(fn,bind){for(var
i=0,j=this.length;i<j;i++){if(fn.call(bind,this[i],i,this))return true;}
return false;},indexOf:function(item,from){var len=this.length;for(var
i=(from<0)?Math.max(0,len+from):from||0;i<len;i++){if(this[i]===item)return
i;}
return-1;},copy:function(start,length){start=start||0;if(start<0)start=this.length+start;length=length||(this.length-start);var
newArray=[];for(var i=0;i<length;i++)newArray[i]=this[start++];return
newArray;},remove:function(item){var i=0;var
len=this.length;while(i<len){if(this[i]===item){this.splice(i,1);len--;}else{i++;}}
return this;},contains:function(item,from){return
this.indexOf(item,from)!=-1;},associate:function(keys){var
obj={},length=Math.min(this.length,keys.length);for(var
i=0;i<length;i++)obj[keys[i]]=this[i];return
obj;},extend:function(array){for(var
i=0,j=array.length;i<j;i++)this.push(array[i]);return
this;},merge:function(array){for(var
i=0,l=array.length;i<l;i++)this.include(array[i]);return
this;},include:function(item){if(!this.contains(item))this.push(item);return
this;},getRandom:function(){return
this[$random(0,this.length-1)]||null;},getLast:function(){return
this[this.length-1]||null;}});Array.prototype.each=Array.prototype.forEach;Array.each=Array.forEach;function
$A(array){return Array.copy(array);};function
$each(iterable,fn,bind){if(iterable&&typeof
iterable.length=='number'&&$type(iterable)!='object'){Array.forEach(iterable,fn,bind);}else{for(var
name in
iterable)fn.call(bind||iterable,iterable[name],name);}};Array.prototype.test=Array.prototype.contains;String.extend({test:function(regex,params){return(($type(regex)=='string')?new
RegExp(regex,params):regex).test(this);},toInt:function(){return
parseInt(this,10);},toFloat:function(){return
parseFloat(this);},camelCase:function(){return
this.replace(/-\D/g,function(match){return
match.charAt(1).toUpperCase();});},hyphenate:function(){return
this.replace(/\w[A-Z]/g,function(match){return(match.charAt(0)+'-'+match.charAt(1).toLowerCase());});},capitalize:function(){return
this.replace(/\b[a-z]/g,function(match){return
match.toUpperCase();});},trim:function(){return
this.replace(/^\s+|\s+$/g,'');},clean:function(){return
this.replace(/\s{2,}/g,' ').trim();},rgbToHex:function(array){var
rgb=this.match(/\d{1,3}/g);return(rgb)?rgb.rgbToHex(array):false;},hexToRgb:function(array){var
hex=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(hex)?hex.slice(1).hexToRgb(array):false;},contains:function(string,s){return(s)?(s+this+s).indexOf(s+string+s)>-1:this.indexOf(string)>-1;},escapeRegExp:function(){return
this.replace(/([.*+?^${}()|[\]\/\\])/g,'\\$1');}});Array.extend({rgbToHex:function(array){if(this.length<3)return
false;if(this.length==4&&this[3]==0&&!array)return'transparent';var
hex=[];for(var i=0;i<3;i++){var
bit=(this[i]-0).toString(16);hex.push((bit.length==1)?'0'+bit:bit);}
return
array?hex:'#'+hex.join('');},hexToRgb:function(array){if(this.length!=3)return
false;var rgb=[];for(var
i=0;i<3;i++){rgb.push(parseInt((this[i].length==1)?this[i]+this[i]:this[i],16));}
return
array?rgb:'rgb('+rgb.join(',')+')';}});Function.extend({create:function(options){var
fn=this;options=$merge({'bind':fn,'event':false,'arguments':null,'delay':false,'periodical':false,'attempt':false},options);if($chk(options.arguments)&&$type(options.arguments)!='array')options.arguments=[options.arguments];return
function(event){var
args;if(options.event){event=event||window.event;args=[(options.event===true)?event:new
options.event(event)];if(options.arguments)args.extend(options.arguments);}
else args=options.arguments||arguments;var returns=function(){return
fn.apply($pick(options.bind,fn),args);};if(options.delay)return
setTimeout(returns,options.delay);if(options.periodical)return
setInterval(returns,options.periodical);if(options.attempt)try{return
returns();}catch(err){return false;};return
returns();};},pass:function(args,bind){return
this.create({'arguments':args,'bind':bind});},attempt:function(args,bind){return
this.create({'arguments':args,'bind':bind,'attempt':true})();},bind:function(bind,args){return
this.create({'bind':bind,'arguments':args});},bindAsEventListener:function(bind,args){return
this.create({'bind':bind,'event':true,'arguments':args});},delay:function(delay,bind,args){return
this.create({'delay':delay,'bind':bind,'arguments':args})();},periodical:function(interval,bind,args){return
this.create({'periodical':interval,'bind':bind,'arguments':args})();}});Number.extend({toInt:function(){return
parseInt(this);},toFloat:function(){return
parseFloat(this);},limit:function(min,max){return
Math.min(max,Math.max(min,this));},round:function(precision){precision=Math.pow(10,precision||0);return
Math.round(this*precision)/precision;},times:function(fn){for(var
i=0;i<this;i++)fn(i);}});var Element=new
Class({initialize:function(el,props){if($type(el)=='string'){if(window.ie&&props&&(props.name||props.type)){var
name=(props.name)?'
name="'+props.name+'"':'';var
type=(props.type)?'
type="'+props.type+'"':'';delete
props.name;delete
props.type;el='<'+el+name+type+'>';}
el=document.createElement(el);}
el=$(el);return(!props||!el)?el:el.set(props);}});var Elements=new
Class({initialize:function(elements){return(elements)?$extend(elements,this):this;}});Elements.extend=function(props){for(var
prop in
props){this.prototype[prop]=props[prop];this[prop]=$native.generic(prop);}};function
$(el){if(!el)return null;if(el.htmlElement)return
Garbage.collect(el);if([window,document].contains(el))return el;var
type=$type(el);if(type=='string'){el=document.getElementById(el);type=(el)?'element':false;}
if(type!='element')return null;if(el.htmlElement)return
Garbage.collect(el);if(['object','embed'].contains(el.tagName.toLowerCase()))return
el;$extend(el,Element.prototype);el.htmlElement=function(){};return
Garbage.collect(el);};document.getElementsBySelector=document.getElementsByTagName;function
$$(){var elements=[];for(var i=0,j=arguments.length;i<j;i++){var
selector=arguments[i];switch($type(selector)){case'element':elements.push(selector);case'boolean':break;case
false:break;case'string':selector=document.getElementsBySelector(selector,true);default:elements.extend(selector);}}
return $$.unique(elements);};$$.unique=function(array){var
elements=[];for(var
i=0,l=array.length;i<l;i++){if(array[i].$included)continue;var
element=$(array[i]);if(element&&!element.$included){element.$included=true;elements.push(element);}}
for(var n=0,d=elements.length;n<d;n++)elements[n].$included=null;return
new Elements(elements);};Elements.Multi=function(property){return
function(){var args=arguments;var items=[];var elements=true;for(var
i=0,j=this.length,returns;i<j;i++){returns=this[i][property].apply(this[i],args);if($type(returns)!='element')elements=false;items.push(returns);};return(elements)?$$.unique(items):items;};};Element.extend=function(properties){for(var
property in
properties){HTMLElement.prototype[property]=properties[property];Element.prototype[property]=properties[property];Element[property]=$native.generic(property);var
elementsProperty=(Array.prototype[property])?property+'Elements':property;Elements.prototype[elementsProperty]=Elements.Multi(property);}};Element.extend({set:function(props){for(var
prop in props){var
val=props[prop];switch(prop){case'styles':this.setStyles(val);break;case'events':if(this.addEvents)this.addEvents(val);break;case'properties':this.setProperties(val);break;default:this.setProperty(prop,val);}}
return
this;},inject:function(el,where){el=$(el);switch(where){case'before':el.parentNode.insertBefore(this,el);break;case'after':var
next=el.getNext();if(!next)el.parentNode.appendChild(this);else
el.parentNode.insertBefore(this,next);break;case'top':var
first=el.firstChild;if(first){el.insertBefore(this,first);break;}
default:el.appendChild(this);}
return this;},injectBefore:function(el){return
this.inject(el,'before');},injectAfter:function(el){return
this.inject(el,'after');},injectInside:function(el){return
this.inject(el,'bottom');},injectTop:function(el){return
this.inject(el,'top');},adopt:function(){var
elements=[];$each(arguments,function(argument){elements=elements.concat(argument);});$$(elements).inject(this);return
this;},remove:function(){return
this.parentNode.removeChild(this);},clone:function(contents){var
el=$(this.cloneNode(contents!==false));if(!el.$events)return
el;el.$events={};for(var type in
this.$events)el.$events[type]={'keys':$A(this.$events[type].keys),'values':$A(this.$events[type].values)};return
el.removeEvents();},replaceWith:function(el){el=$(el);this.parentNode.replaceChild(el,this);return
el;},appendText:function(text){this.appendChild(document.createTextNode(text));return
this;},hasClass:function(className){return
this.className.contains(className,'
');},addClass:function(className){if(!this.hasClass(className))this.className=(this.className+'
'+className).clean();return
this;},removeClass:function(className){this.className=this.className.replace(new
RegExp('(^|\\s)'+className+'(?:\\s|$)'),'$1').clean();return
this;},toggleClass:function(className){return
this.hasClass(className)?this.removeClass(className):this.addClass(className);},setStyle:function(property,value){switch(property){case'opacity':return
this.setOpacity(parseFloat(value));case'float':property=(window.ie)?'styleFloat':'cssFloat';}
property=property.camelCase();switch($type(value)){case'number':if(!['zIndex','zoom'].contains(property))value+='px';break;case'array':value='rgb('+value.join(',')+')';}
this.style[property]=value;return
this;},setStyles:function(source){switch($type(source)){case'object':Element.setMany(this,'setStyle',source);break;case'string':this.style.cssText=source;}
return
this;},setOpacity:function(opacity){if(opacity==0){if(this.style.visibility!="hidden")this.style.visibility="hidden";}else{if(this.style.visibility!="visible")this.style.visibility="visible";}
if(!this.currentStyle||!this.currentStyle.hasLayout)this.style.zoom=1;if(window.ie)this.style.filter=(opacity==1)?'':"alpha(opacity="+opacity*100+")";this.style.opacity=this.$tmp.opacity=opacity;return
this;},getStyle:function(property){property=property.camelCase();var
result=this.style[property];if(!$chk(result)){if(property=='opacity')return
this.$tmp.opacity;result=[];for(var style in
Element.Styles){if(property==style){Element.Styles[style].each(function(s){var
style=this.getStyle(s);result.push(parseInt(style)?style:'0px');},this);if(property=='border'){var
every=result.every(function(bit){return(bit==result[0]);});return(every)?result[0]:false;}
return result.join(' ');}}
if(property.contains('border')){if(Element.Styles.border.contains(property)){return['Width','Style','Color'].map(function(p){return
this.getStyle(property+p);},this).join(' ');}else
if(Element.borderShort.contains(property)){return['Top','Right','Bottom','Left'].map(function(p){return
this.getStyle('border'+p+property.replace('border',''));},this).join('
');}}
if(document.defaultView)result=document.defaultView.getComputedStyle(this,null).getPropertyValue(property.hyphenate());else
if(this.currentStyle)result=this.currentStyle[property];}
if(window.ie)result=Element.fixStyle(property,result,this);if(result&&property.test(/color/i)&&result.contains('rgb')){return
result.split('rgb').splice(1,4).map(function(color){return
color.rgbToHex();}).join(' ');}
return result;},getStyles:function(){return
Element.getMany(this,'getStyle',arguments);},walk:function(brother,start){brother+='Sibling';var
el=(start)?this[start]:this[brother];while(el&&$type(el)!='element')el=el[brother];return
$(el);},getPrevious:function(){return
this.walk('previous');},getNext:function(){return
this.walk('next');},getFirst:function(){return
this.walk('next','firstChild');},getLast:function(){return
this.walk('previous','lastChild');},getParent:function(){return
$(this.parentNode);},getChildren:function(){return
$$(this.childNodes);},hasChild:function(el){return!!$A(this.getElementsByTagName('*')).contains(el);},getProperty:function(property){var
index=Element.Properties[property];if(index)return this[index];var
flag=Element.PropertiesIFlag[property]||0;if(!window.ie||flag)return
this.getAttribute(property,flag);var
node=this.attributes[property];return(node)?node.nodeValue:null;},removeProperty:function(property){var
index=Element.Properties[property];if(index)this[index]='';else
this.removeAttribute(property);return
this;},getProperties:function(){return
Element.getMany(this,'getProperty',arguments);},setProperty:function(property,value){var
index=Element.Properties[property];if(index)this[index]=value;else
this.setAttribute(property,value);return
this;},setProperties:function(source){return
Element.setMany(this,'setProperty',source);},setHTML:function(){this.innerHTML=$A(arguments).join('');return
this;},setText:function(text){var
tag=this.getTag();if(['style','script'].contains(tag)){if(window.ie){if(tag=='style')this.styleSheet.cssText=text;else
if(tag=='script')this.setProperty('text',text);return
this;}else{this.removeChild(this.firstChild);return
this.appendText(text);}}
this[$defined(this.innerText)?'innerText':'textContent']=text;return
this;},getText:function(){var
tag=this.getTag();if(['style','script'].contains(tag)){if(window.ie){if(tag=='style')return
this.styleSheet.cssText;else if(tag=='script')return
this.getProperty('text');}else{return this.innerHTML;}}
return($pick(this.innerText,this.textContent));},getTag:function(){return
this.tagName.toLowerCase();},empty:function(){Garbage.trash(this.getElementsByTagName('*'));return
this.setHTML('');}});Element.fixStyle=function(property,result,element){if($chk(parseInt(result)))return
result;if(['height','width'].contains(property)){var
values=(property=='width')?['left','right']:['top','bottom'];var
size=0;values.each(function(value){size+=element.getStyle('border-'+value+'-width').toInt()+element.getStyle('padding-'+value).toInt();});return
element['offset'+property.capitalize()]-size+'px';}else
if(property.test(/border(.+)Width|margin|padding/)){return'0px';}
return
result;};Element.Styles={'border':[],'padding':[],'margin':[]};['Top','Right','Bottom','Left'].each(function(direction){for(var
style in
Element.Styles)Element.Styles[style].push(style+direction);});Element.borderShort=['borderWidth','borderStyle','borderColor'];Element.getMany=function(el,method,keys){var
result={};$each(keys,function(key){result[key]=el[method](key);});return
result;};Element.setMany=function(el,method,pairs){for(var key in
pairs)el[method](key,pairs[key]);return el;};Element.Properties=new
Abstract({'class':'className','for':'htmlFor','colspan':'colSpan','rowspan':'rowSpan','accesskey':'accessKey','tabindex':'tabIndex','maxlength':'maxLength','readonly':'readOnly','frameborder':'frameBorder','value':'value','disabled':'disabled','checked':'checked','multiple':'multiple','selected':'selected'});Element.PropertiesIFlag={'href':2,'src':2};Element.Methods={Listeners:{addListener:function(type,fn){if(this.addEventListener)this.addEventListener(type,fn,false);else
this.attachEvent('on'+type,fn);return
this;},removeListener:function(type,fn){if(this.removeEventListener)this.removeEventListener(type,fn,false);else
this.detachEvent('on'+type,fn);return
this;}}};window.extend(Element.Methods.Listeners);document.extend(Element.Methods.Listeners);Element.extend(Element.Methods.Listeners);var
Garbage={elements:[],collect:function(el){if(!el.$tmp){Garbage.elements.push(el);el.$tmp={'opacity':1};}
return el;},trash:function(elements){for(var
i=0,j=elements.length,el;i<j;i++){if(!(el=elements[i])||!el.$tmp)continue;if(el.$events)el.fireEvent('trash').removeEvents();for(var
p in el.$tmp)el.$tmp[p]=null;for(var d in
Element.prototype)el[d]=null;Garbage.elements[Garbage.elements.indexOf(el)]=null;el.htmlElement=el.$tmp=el=null;}
Garbage.elements.remove(null);},empty:function(){Garbage.collect(window);Garbage.collect(document);Garbage.trash(Garbage.elements);}};window.addListener('beforeunload',function(){window.addListener('unload',Garbage.empty);if(window.ie)window.addListener('unload',CollectGarbage);});var
Event=new
Class({initialize:function(event){if(event&&event.$extended)return
event;this.$extended=true;event=event||window.event;this.event=event;this.type=event.type;this.target=event.target||event.srcElement;if(this.target.nodeType==3)this.target=this.target.parentNode;this.shift=event.shiftKey;this.control=event.ctrlKey;this.alt=event.altKey;this.meta=event.metaKey;if(['DOMMouseScroll','mousewheel'].contains(this.type)){this.wheel=(event.wheelDelta)?event.wheelDelta/120:-(event.detail||0)/3;}else
if(this.type.contains('key')){this.code=event.which||event.keyCode;for(var
name in Event.keys){if(Event.keys[name]==this.code){this.key=name;break;}}
if(this.type=='keydown'){var
fKey=this.code-111;if(fKey>0&&fKey<13)this.key='f'+fKey;}
this.key=this.key||String.fromCharCode(this.code).toLowerCase();}else
if(this.type.test(/(click|mouse|menu)/)){this.page={'x':event.pageX||event.clientX+document.documentElement.scrollLeft,'y':event.pageY||event.clientY+document.documentElement.scrollTop};this.client={'x':event.pageX?event.pageX-window.pageXOffset:event.clientX,'y':event.pageY?event.pageY-window.pageYOffset:event.clientY};this.rightClick=(event.which==3)||(event.button==2);switch(this.type){case'mouseover':this.relatedTarget=event.relatedTarget||event.fromElement;break;case'mouseout':this.relatedTarget=event.relatedTarget||event.toElement;}
this.fixRelatedTarget();}
return this;},stop:function(){return
this.stopPropagation().preventDefault();},stopPropagation:function(){if(this.event.stopPropagation)this.event.stopPropagation();else
this.event.cancelBubble=true;return
this;},preventDefault:function(){if(this.event.preventDefault)this.event.preventDefault();else
this.event.returnValue=false;return
this;}});Event.fix={relatedTarget:function(){if(this.relatedTarget&&this.relatedTarget.nodeType==3)this.relatedTarget=this.relatedTarget.parentNode;},relatedTargetGecko:function(){try{Event.fix.relatedTarget.call(this);}catch(e){this.relatedTarget=this.target;}}};Event.prototype.fixRelatedTarget=(window.gecko)?Event.fix.relatedTargetGecko:Event.fix.relatedTarget;Event.keys=new
Abstract({'enter':13,'up':38,'down':40,'left':37,'right':39,'esc':27,'space':32,'backspace':8,'tab':9,'delete':46});Element.Methods.Events={addEvent:function(type,fn){this.$events=this.$events||{};this.$events[type]=this.$events[type]||{'keys':[],'values':[]};if(this.$events[type].keys.contains(fn))return
this;this.$events[type].keys.push(fn);var realType=type;var
custom=Element.Events[type];if(custom){if(custom.add)custom.add.call(this,fn);if(custom.map)fn=custom.map;if(custom.type)realType=custom.type;}
if(!this.addEventListener)fn=fn.create({'bind':this,'event':true});this.$events[type].values.push(fn);return(Element.NativeEvents.contains(realType))?this.addListener(realType,fn):this;},removeEvent:function(type,fn){if(!this.$events||!this.$events[type])return
this;var pos=this.$events[type].keys.indexOf(fn);if(pos==-1)return this;var
key=this.$events[type].keys.splice(pos,1)[0];var
value=this.$events[type].values.splice(pos,1)[0];var
custom=Element.Events[type];if(custom){if(custom.remove)custom.remove.call(this,fn);if(custom.type)type=custom.type;}
return(Element.NativeEvents.contains(type))?this.removeListener(type,value):this;},addEvents:function(source){return
Element.setMany(this,'addEvent',source);},removeEvents:function(type){if(!this.$events)return
this;if(!type){for(var evType in
this.$events)this.removeEvents(evType);this.$events=null;}else
if(this.$events[type]){this.$events[type].keys.each(function(fn){this.removeEvent(type,fn);},this);this.$events[type]=null;}
return
this;},fireEvent:function(type,args,delay){if(this.$events&&this.$events[type]){this.$events[type].keys.each(function(fn){fn.create({'bind':this,'delay':delay,'arguments':args})();},this);}
return this;},cloneEvents:function(from,type){if(!from.$events)return
this;if(!type){for(var evType in
from.$events)this.cloneEvents(from,evType);}else
if(from.$events[type]){from.$events[type].keys.each(function(fn){this.addEvent(type,fn);},this);}
return
this;}};window.extend(Element.Methods.Events);document.extend(Element.Methods.Events);Element.extend(Element.Methods.Events);Element.Events=new
Abstract({'mouseenter':{type:'mouseover',map:function(event){event=new
Event(event);if(event.relatedTarget!=this&&!this.hasChild(event.relatedTarget))this.fireEvent('mouseenter',event);}},'mouseleave':{type:'mouseout',map:function(event){event=new
Event(event);if(event.relatedTarget!=this&&!this.hasChild(event.relatedTarget))this.fireEvent('mouseleave',event);}},'mousewheel':{type:(window.gecko)?'DOMMouseScroll':'mousewheel'}});Element.NativeEvents=['click','dblclick','mouseup','mousedown','mousewheel','DOMMouseScroll','mouseover','mouseout','mousemove','keydown','keypress','keyup','load','unload','beforeunload','resize','move','focus','blur','change','submit','reset','select','error','abort','contextmenu','scroll'];Function.extend({bindWithEvent:function(bind,args){return
this.create({'bind':bind,'arguments':args,'event':Event});}});Elements.extend({filterByTag:function(tag){return
new
Elements(this.filter(function(el){return(Element.getTag(el)==tag);}));},filterByClass:function(className,nocash){var
elements=this.filter(function(el){return(el.className&&el.className.contains(className,'
'));});return(nocash)?elements:new
Elements(elements);},filterById:function(id,nocash){var
elements=this.filter(function(el){return(el.id==id);});return(nocash)?elements:new
Elements(elements);},filterByAttribute:function(name,operator,value,nocash){var
elements=this.filter(function(el){var
current=Element.getProperty(el,name);if(!current)return
false;if(!operator)return
true;switch(operator){case'=':return(current==value);case'*=':return(current.contains(value));case'^=':return(current.substr(0,value.length)==value);case'$=':return(current.substr(current.length-value.length)==value);case'!=':return(current!=value);case'~=':return
current.contains(value,' ');}
return false;});return(nocash)?elements:new Elements(elements);}});function
$E(selector,filter){return($(filter)||document).getElement(selector);};function
$ES(selector,filter){return($(filter)||document).getElementsBySelector(selector);};$$.shared={'regexp':/^(\w*|\*)(?:#([\w-]+)|\.([\w-]+))?(?:\[(\w+)(?:([!*^$]?=)["']?([^"'\]]*)["']?)?])?$/,'xpath':{getParam:function(items,context,param,i){var
temp=[context.namespaceURI?'xhtml:':'',param[1]];if(param[2])temp.push('[@id="',param[2],'"]');if(param[3])temp.push('[contains(concat("
", @class, " "), " ',param[3],'
")]');if(param[4]){if(param[5]&¶m[6]){switch(param[5]){case'*=':temp.push('[contains(@',param[4],',
"',param[6],'")]');break;case'^=':temp.push('[starts-with(@',param[4],',
"',param[6],'")]');break;case'$=':temp.push('[substring(@',param[4],',
string-length(@',param[4],') - ',param[6].length,' + 1)
=
"',param[6],'"]');break;case'=':temp.push('[@',param[4],'="',param[6],'"]');break;case'!=':temp.push('[@',param[4],'!="',param[6],'"]');}}else{temp.push('[@',param[4],']');}}
items.push(temp.join(''));return
items;},getItems:function(items,context,nocash){var elements=[];var
xpath=document.evaluate('.//'+items.join('//'),context,$$.shared.resolver,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(var
i=0,j=xpath.snapshotLength;i<j;i++)elements.push(xpath.snapshotItem(i));return(nocash)?elements:new
Elements(elements.map($));}},'normal':{getParam:function(items,context,param,i){if(i==0){if(param[2]){var
el=context.getElementById(param[2]);if(!el||((param[1]!='*')&&(Element.getTag(el)!=param[1])))return
false;items=[el];}else{items=$A(context.getElementsByTagName(param[1]));}}else{items=$$.shared.getElementsByTagName(items,param[1]);if(param[2])items=Elements.filterById(items,param[2],true);}
if(param[3])items=Elements.filterByClass(items,param[3],true);if(param[4])items=Elements.filterByAttribute(items,param[4],param[5],param[6],true);return
items;},getItems:function(items,context,nocash){return(nocash)?items:$$.unique(items);}},resolver:function(prefix){return(prefix=='xhtml')?'http://www.w3.org/1999/xhtml':false;},getElementsByTagName:function(context,tagName){var
found=[];for(var
i=0,j=context.length;i<j;i++)found.extend(context[i].getElementsByTagName(tagName));return
found;}};$$.shared.method=(window.xpath)?'xpath':'normal';Element.Methods.Dom={getElements:function(selector,nocash){var
items=[];selector=selector.trim().split(' ');for(var
i=0,j=selector.length;i<j;i++){var sel=selector[i];var
param=sel.match($$.shared.regexp);if(!param)break;param[1]=param[1]||'*';var
temp=$$.shared[$$.shared.method].getParam(items,this,param,i);if(!temp)break;items=temp;}
return
$$.shared[$$.shared.method].getItems(items,this,nocash);},getElement:function(selector){return
$(this.getElements(selector,true)[0]||false);},getElementsBySelector:function(selector,nocash){var
elements=[];selector=selector.split(',');for(var
i=0,j=selector.length;i<j;i++)elements=elements.concat(this.getElements(selector[i],true));return(nocash)?elements:$$.unique(elements);}};Element.extend({getElementById:function(id){var
el=document.getElementById(id);if(!el)return false;for(var
parent=el.parentNode;parent!=this;parent=parent.parentNode){if(!parent)return
false;}
return el;},getElementsByClassName:function(className){return
this.getElements('.'+className);}});document.extend(Element.Methods.Dom);Element.extend(Element.Methods.Dom);Element.extend({getValue:function(){switch(this.getTag()){case'select':var
values=[];$each(this.options,function(option){if(option.selected)values.push($pick(option.value,option.text));});return(this.multiple)?values:values[0];case'input':if(!(this.checked&&['checkbox','radio'].contains(this.type))&&!['hidden','text','password'].contains(this.type))break;case'textarea':return
this.value;}
return false;},getFormElements:function(){return
$$(this.getElementsByTagName('input'),this.getElementsByTagName('select'),this.getElementsByTagName('textarea'));},toQueryString:function(){var
queryString=[];this.getFormElements().each(function(el){var
name=el.name;var
value=el.getValue();if(value===false||!name||el.disabled)return;var
qs=function(val){queryString.push(name+'='+encodeURIComponent(val));};if($type(value)=='array')value.each(qs);else
qs(value);});return
queryString.join('&');}});Element.extend({scrollTo:function(x,y){this.scrollLeft=x;this.scrollTop=y;},getSize:function(){return{'scroll':{'x':this.scrollLeft,'y':this.scrollTop},'size':{'x':this.offsetWidth,'y':this.offsetHeight},'scrollSize':{'x':this.scrollWidth,'y':this.scrollHeight}};},getPosition:function(overflown){overflown=overflown||[];var
el=this,left=0,top=0;do{left+=el.offsetLeft||0;top+=el.offsetTop||0;el=el.offsetParent;}while(el);overflown.each(function(element){left-=element.scrollLeft||0;top-=element.scrollTop||0;});return{'x':left,'y':top};},getTop:function(overflown){return
this.getPosition(overflown).y;},getLeft:function(overflown){return
this.getPosition(overflown).x;},getCoordinates:function(overflown){var
position=this.getPosition(overflown);var
obj={'width':this.offsetWidth,'height':this.offsetHeight,'left':position.x,'top':position.y};obj.right=obj.left+obj.width;obj.bottom=obj.top+obj.height;return
obj;}});Element.Events.domready={add:function(fn){if(window.loaded){fn.call(this);return;}
var
domReady=function(){if(window.loaded)return;window.loaded=true;window.timer=$clear(window.timer);this.fireEvent('domready');}.bind(this);if(document.readyState&&window.webkit){window.timer=function(){if(['loaded','complete'].contains(document.readyState))domReady();}.periodical(50);}else
if(document.readyState&&window.ie){if(!$('ie_ready')){var
src=(window.location.protocol=='https:')?'://0':'javascript:void(0)';document.write('<script
id="ie_ready" defer
src="'+src+'"><\/script>');$('ie_ready').onreadystatechange=function(){if(this.readyState=='complete')domReady();};}}else{window.addListener("load",domReady);document.addListener("DOMContentLoaded",domReady);}}};window.onDomReady=function(fn){return
this.addEvent('domready',fn);};window.extend({getWidth:function(){if(this.webkit419)return
this.innerWidth;if(this.opera)return document.body.clientWidth;return
document.documentElement.clientWidth;},getHeight:function(){if(this.webkit419)return
this.innerHeight;if(this.opera)return document.body.clientHeight;return
document.documentElement.clientHeight;},getScrollWidth:function(){if(this.ie)return
Math.max(document.documentElement.offsetWidth,document.documentElement.scrollWidth);if(this.webkit)return
document.body.scrollWidth;return
document.documentElement.scrollWidth;},getScrollHeight:function(){if(this.ie)return
Math.max(document.documentElement.offsetHeight,document.documentElement.scrollHeight);if(this.webkit)return
document.body.scrollHeight;return
document.documentElement.scrollHeight;},getScrollLeft:function(){return
this.pageXOffset||document.documentElement.scrollLeft;},getScrollTop:function(){return
this.pageYOffset||document.documentElement.scrollTop;},getSize:function(){return{'size':{'x':this.getWidth(),'y':this.getHeight()},'scrollSize':{'x':this.getScrollWidth(),'y':this.getScrollHeight()},'scroll':{'x':this.getScrollLeft(),'y':this.getScrollTop()}};},getPosition:function(){return{'x':0,'y':0};}});var
Fx={};Fx.Base=new
Class({options:{onStart:Class.empty,onComplete:Class.empty,onCancel:Class.empty,transition:function(p){return-(Math.cos(Math.PI*p)-1)/2;},duration:500,unit:'px',wait:true,fps:50},initialize:function(options){this.element=this.element||null;this.setOptions(options);if(this.options.initialize)this.options.initialize.call(this);},step:function(){var
time=$time();if(time<this.time+this.options.duration){this.delta=this.options.transition((time-this.time)/this.options.duration);this.setNow();this.increase();}else{this.stop(true);this.set(this.to);this.fireEvent('onComplete',this.element,10);this.callChain();}},set:function(to){this.now=to;this.increase();return
this;},setNow:function(){this.now=this.compute(this.from,this.to);},compute:function(from,to){return(to-from)*this.delta+from;},start:function(from,to){if(!this.options.wait)this.stop();else
if(this.timer)return
this;this.from=from;this.to=to;this.change=this.to-this.from;this.time=$time();this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);this.fireEvent('onStart',this.element);return
this;},stop:function(end){if(!this.timer)return
this;this.timer=$clear(this.timer);if(!end)this.fireEvent('onCancel',this.element);return
this;},custom:function(from,to){return
this.start(from,to);},clearTimer:function(end){return
this.stop(end);}});Fx.Base.implement(new Chain,new Events,new
Options);Fx.CSS={select:function(property,to){if(property.test(/color/i))return
this.Color;var
type=$type(to);if((type=='array')||(type=='string'&&to.contains('
')))return this.Multi;return
this.Single;},parse:function(el,property,fromTo){if(!fromTo.push)fromTo=[fromTo];var
from=fromTo[0],to=fromTo[1];if(!$chk(to)){to=from;from=el.getStyle(property);}
var
css=this.select(property,to);return{'from':css.parse(from),'to':css.parse(to),'css':css};}};Fx.CSS.Single={parse:function(value){return
parseFloat(value);},getNow:function(from,to,fx){return
fx.compute(from,to);},getValue:function(value,unit,property){if(unit=='px'&&property!='opacity')value=Math.round(value);return
value+unit;}};Fx.CSS.Multi={parse:function(value){return
value.push?value:value.split(' ').map(function(v){return
parseFloat(v);});},getNow:function(from,to,fx){var now=[];for(var
i=0;i<from.length;i++)now[i]=fx.compute(from[i],to[i]);return
now;},getValue:function(value,unit,property){if(unit=='px'&&property!='opacity')value=value.map(Math.round);return
value.join(unit+'
')+unit;}};Fx.CSS.Color={parse:function(value){return
value.push?value:value.hexToRgb(true);},getNow:function(from,to,fx){var
now=[];for(var
i=0;i<from.length;i++)now[i]=Math.round(fx.compute(from[i],to[i]));return
now;},getValue:function(value){return'rgb('+value.join(',')+')';}};Fx.Style=Fx.Base.extend({initialize:function(el,property,options){this.element=$(el);this.property=property;this.parent(options);},hide:function(){return
this.set(0);},setNow:function(){this.now=this.css.getNow(this.from,this.to,this);},set:function(to){this.css=Fx.CSS.select(this.property,to);return
this.parent(this.css.parse(to));},start:function(from,to){if(this.timer&&this.options.wait)return
this;var
parsed=Fx.CSS.parse(this.element,this.property,[from,to]);this.css=parsed.css;return
this.parent(parsed.from,parsed.to);},increase:function(){this.element.setStyle(this.property,this.css.getValue(this.now,this.options.unit,this.property));}});Element.extend({effect:function(property,options){return
new
Fx.Style(this,property,options);}});Fx.Styles=Fx.Base.extend({initialize:function(el,options){this.element=$(el);this.parent(options);},setNow:function(){for(var
p in
this.from)this.now[p]=this.css[p].getNow(this.from[p],this.to[p],this);},set:function(to){var
parsed={};this.css={};for(var p in
to){this.css[p]=Fx.CSS.select(p,to[p]);parsed[p]=this.css[p].parse(to[p]);}
return
this.parent(parsed);},start:function(obj){if(this.timer&&this.options.wait)return
this;this.now={};this.css={};var from={},to={};for(var p in obj){var
parsed=Fx.CSS.parse(this.element,p,obj[p]);from[p]=parsed.from;to[p]=parsed.to;this.css[p]=parsed.css;}
return this.parent(from,to);},increase:function(){for(var p in
this.now)this.element.setStyle(p,this.css[p].getValue(this.now[p],this.options.unit,p));}});Element.extend({effects:function(options){return
new
Fx.Styles(this,options);}});Fx.Elements=Fx.Base.extend({initialize:function(elements,options){this.elements=$$(elements);this.parent(options);},setNow:function(){for(var
i in this.from){var
iFrom=this.from[i],iTo=this.to[i],iCss=this.css[i],iNow=this.now[i]={};for(var
p in
iFrom)iNow[p]=iCss[p].getNow(iFrom[p],iTo[p],this);}},set:function(to){var
parsed={};this.css={};for(var i in to){var
iTo=to[i],iCss=this.css[i]={},iParsed=parsed[i]={};for(var p in
iTo){iCss[p]=Fx.CSS.select(p,iTo[p]);iParsed[p]=iCss[p].parse(iTo[p]);}}
return
this.parent(parsed);},start:function(obj){if(this.timer&&this.options.wait)return
this;this.now={};this.css={};var from={},to={};for(var i in obj){var
iProps=obj[i],iFrom=from[i]={},iTo=to[i]={},iCss=this.css[i]={};for(var p
in iProps){var
parsed=Fx.CSS.parse(this.elements[i],p,iProps[p]);iFrom[p]=parsed.from;iTo[p]=parsed.to;iCss[p]=parsed.css;}}
return this.parent(from,to);},increase:function(){for(var i in
this.now){var iNow=this.now[i],iCss=this.css[i];for(var p in
iNow)this.elements[i].setStyle(p,iCss[p].getValue(iNow[p],this.options.unit,p));}}});Fx.Scroll=Fx.Base.extend({options:{overflown:[],offset:{'x':0,'y':0},wheelStops:true},initialize:function(element,options){this.now=[];this.element=$(element);this.bound={'stop':this.stop.bind(this,false)};this.parent(options);if(this.options.wheelStops){this.addEvent('onStart',function(){document.addEvent('mousewheel',this.bound.stop);}.bind(this));this.addEvent('onComplete',function(){document.removeEvent('mousewheel',this.bound.stop);}.bind(this));}},setNow:function(){for(var
i=0;i<2;i++)this.now[i]=this.compute(this.from[i],this.to[i]);},scrollTo:function(x,y){if(this.timer&&this.options.wait)return
this;var el=this.element.getSize();var
values={'x':x,'y':y};for(var z in el.size){var
max=el.scrollSize[z]-el.size[z];if($chk(values[z]))values[z]=($type(values[z])=='number')?values[z].limit(0,max):max;else
values[z]=el.scroll[z];values[z]+=this.options.offset[z];}
return
this.start([el.scroll.x,el.scroll.y],[values.x,values.y]);},toTop:function(){return
this.scrollTo(false,0);},toBottom:function(){return
this.scrollTo(false,'full');},toLeft:function(){return
this.scrollTo(0,false);},toRight:function(){return
this.scrollTo('full',false);},toElement:function(el){var
parent=this.element.getPosition(this.options.overflown);var
target=$(el).getPosition(this.options.overflown);return
this.scrollTo(target.x-parent.x,target.y-parent.y);},increase:function(){this.element.scrollTo(this.now[0],this.now[1]);}});Fx.Slide=Fx.Base.extend({options:{mode:'vertical'},initialize:function(el,options){this.element=$(el);this.wrapper=new
Element('div',{'styles':$extend(this.element.getStyles('margin'),{'overflow':'hidden'})}).injectAfter(this.element).adopt(this.element);this.element.setStyle('margin',0);this.setOptions(options);this.now=[];this.parent(this.options);this.open=true;this.addEvent('onComplete',function(){this.open=(this.now[0]===0);});if(window.webkit419)this.addEvent('onComplete',function(){if(this.open)this.element.remove().inject(this.wrapper);});},setNow:function(){for(var
i=0;i<2;i++)this.now[i]=this.compute(this.from[i],this.to[i]);},vertical:function(){this.margin='margin-top';this.layout='height';this.offset=this.element.offsetHeight;},horizontal:function(){this.margin='margin-left';this.layout='width';this.offset=this.element.offsetWidth;},slideIn:function(mode){this[mode||this.options.mode]();return
this.start([this.element.getStyle(this.margin).toInt(),this.wrapper.getStyle(this.layout).toInt()],[0,this.offset]);},slideOut:function(mode){this[mode||this.options.mode]();return
this.start([this.element.getStyle(this.margin).toInt(),this.wrapper.getStyle(this.layout).toInt()],[-this.offset,0]);},hide:function(mode){this[mode||this.options.mode]();this.open=false;return
this.set([-this.offset,0]);},show:function(mode){this[mode||this.options.mode]();this.open=true;return
this.set([0,this.offset]);},toggle:function(mode){if(this.wrapper.offsetHeight==0||this.wrapper.offsetWidth==0)return
this.slideIn(mode);return
this.slideOut(mode);},increase:function(){this.element.setStyle(this.margin,this.now[0]+this.options.unit);this.wrapper.setStyle(this.layout,this.now[1]+this.options.unit);}});Fx.Transition=function(transition,params){params=params||[];if($type(params)!='array')params=[params];return
$extend(transition,{easeIn:function(pos){return
transition(pos,params);},easeOut:function(pos){return
1-transition(1-pos,params);},easeInOut:function(pos){return(pos<=0.5)?transition(2*pos,params)/2:(2-transition(2*(1-pos),params))/2;}});};Fx.Transitions=new
Abstract({linear:function(p){return
p;}});Fx.Transitions.extend=function(transitions){for(var transition in
transitions){Fx.Transitions[transition]=new
Fx.Transition(transitions[transition]);Fx.Transitions.compat(transition);}};Fx.Transitions.compat=function(transition){['In','Out','InOut'].each(function(easeType){Fx.Transitions[transition.toLowerCase()+easeType]=Fx.Transitions[transition]['ease'+easeType];});};Fx.Transitions.extend({Pow:function(p,x){return
Math.pow(p,x[0]||6);},Expo:function(p){return
Math.pow(2,8*(p-1));},Circ:function(p){return
1-Math.sin(Math.acos(p));},Sine:function(p){return
1-Math.sin((1-p)*Math.PI/2);},Back:function(p,x){x=x[0]||1.618;return
Math.pow(p,2)*((x+1)*p-x);},Bounce:function(p){var value;for(var
a=0,b=1;1;a+=b,b/=2){if(p>=(7-4*a)/11){value=-Math.pow((11-6*a-11*p)/4,2)+b*b;break;}}
return value;},Elastic:function(p,x){return
Math.pow(2,10*--p)*Math.cos(20*p*Math.PI*(x[0]||1)/3);}});['Quad','Cubic','Quart','Quint'].each(function(transition,i){Fx.Transitions[transition]=new
Fx.Transition(function(p){return
Math.pow(p,[i+2]);});Fx.Transitions.compat(transition);});var
Drag={};Drag.Base=new
Class({options:{handle:false,unit:'px',onStart:Class.empty,onBeforeStart:Class.empty,onComplete:Class.empty,onSnap:Class.empty,onDrag:Class.empty,limit:false,modifiers:{x:'left',y:'top'},grid:false,snap:6},initialize:function(el,options){this.setOptions(options);this.element=$(el);this.handle=$(this.options.handle)||this.element;this.mouse={'now':{},'pos':{}};this.value={'start':{},'now':{}};this.bound={'start':this.start.bindWithEvent(this),'check':this.check.bindWithEvent(this),'drag':this.drag.bindWithEvent(this),'stop':this.stop.bind(this)};this.attach();if(this.options.initialize)this.options.initialize.call(this);},attach:function(){this.handle.addEvent('mousedown',this.bound.start);return
this;},detach:function(){this.handle.removeEvent('mousedown',this.bound.start);return
this;},start:function(event){this.fireEvent('onBeforeStart',this.element);this.mouse.start=event.page;var
limit=this.options.limit;this.limit={'x':[],'y':[]};for(var
z in
this.options.modifiers){if(!this.options.modifiers[z])continue;this.value.now[z]=this.element.getStyle(this.options.modifiers[z]).toInt();this.mouse.pos[z]=event.page[z]-this.value.now[z];if(limit&&limit[z]){for(var
i=0;i<2;i++){if($chk(limit[z][i]))this.limit[z][i]=($type(limit[z][i])=='function')?limit[z][i]():limit[z][i];}}}
if($type(this.options.grid)=='number')this.options.grid={'x':this.options.grid,'y':this.options.grid};document.addListener('mousemove',this.bound.check);document.addListener('mouseup',this.bound.stop);this.fireEvent('onStart',this.element);event.stop();},check:function(event){var
distance=Math.round(Math.sqrt(Math.pow(event.page.x-this.mouse.start.x,2)+Math.pow(event.page.y-this.mouse.start.y,2)));if(distance>this.options.snap){document.removeListener('mousemove',this.bound.check);document.addListener('mousemove',this.bound.drag);this.drag(event);this.fireEvent('onSnap',this.element);}
event.stop();},drag:function(event){this.out=false;this.mouse.now=event.page;for(var
z in
this.options.modifiers){if(!this.options.modifiers[z])continue;this.value.now[z]=this.mouse.now[z]-this.mouse.pos[z];if(this.limit[z]){if($chk(this.limit[z][1])&&(this.value.now[z]>this.limit[z][1])){this.value.now[z]=this.limit[z][1];this.out=true;}else
if($chk(this.limit[z][0])&&(this.value.now[z]<this.limit[z][0])){this.value.now[z]=this.limit[z][0];this.out=true;}}
if(this.options.grid[z])this.value.now[z]-=(this.value.now[z]%this.options.grid[z]);this.element.setStyle(this.options.modifiers[z],this.value.now[z]+this.options.unit);}
this.fireEvent('onDrag',this.element);event.stop();},stop:function(){document.removeListener('mousemove',this.bound.check);document.removeListener('mousemove',this.bound.drag);document.removeListener('mouseup',this.bound.stop);this.fireEvent('onComplete',this.element);}});Drag.Base.implement(new
Events,new Options);Element.extend({makeResizable:function(options){return
new
Drag.Base(this,$merge({modifiers:{x:'width',y:'height'}},options));}});Drag.Move=Drag.Base.extend({options:{droppables:[],container:false,overflown:[]},initialize:function(el,options){this.setOptions(options);this.element=$(el);this.droppables=$$(this.options.droppables);this.container=$(this.options.container);this.position={'element':this.element.getStyle('position'),'container':false};if(this.container)this.position.container=this.container.getStyle('position');if(!['relative','absolute','fixed'].contains(this.position.element))this.position.element='absolute';var
top=this.element.getStyle('top').toInt();var
left=this.element.getStyle('left').toInt();if(this.position.element=='absolute'&&!['relative','absolute','fixed'].contains(this.position.container)){top=$chk(top)?top:this.element.getTop(this.options.overflown);left=$chk(left)?left:this.element.getLeft(this.options.overflown);}else{top=$chk(top)?top:0;left=$chk(left)?left:0;}
this.element.setStyles({'top':top,'left':left,'position':this.position.element});this.parent(this.element);},start:function(event){this.overed=null;if(this.container){var
cont=this.container.getCoordinates();var
el=this.element.getCoordinates();if(this.position.element=='absolute'&&!['relative','absolute','fixed'].contains(this.position.container)){this.options.limit={'x':[cont.left,cont.right-el.width],'y':[cont.top,cont.bottom-el.height]};}else{this.options.limit={'y':[0,cont.height-el.height],'x':[0,cont.width-el.width]};}}
this.parent(event);},drag:function(event){this.parent(event);var
overed=this.out?false:this.droppables.filter(this.checkAgainst,this).getLast();if(this.overed!=overed){if(this.overed)this.overed.fireEvent('leave',[this.element,this]);this.overed=overed?overed.fireEvent('over',[this.element,this]):null;}
return
this;},checkAgainst:function(el){el=el.getCoordinates(this.options.overflown);var
now=this.mouse.now;return(now.x>el.left&&now.x<el.right&&now.y<el.bottom&&now.y>el.top);},stop:function(){if(this.overed&&!this.out)this.overed.fireEvent('drop',[this.element,this]);else
this.element.fireEvent('emptydrop',this);this.parent();return
this;}});Element.extend({makeDraggable:function(options){return new
Drag.Move(this,options);}});var XHR=new
Class({options:{method:'post',async:true,onRequest:Class.empty,onSuccess:Class.empty,onFailure:Class.empty,urlEncoded:true,encoding:'utf-8',autoCancel:false,headers:{}},setTransport:function(){this.transport=(window.XMLHttpRequest)?new
XMLHttpRequest():(window.ie?new
ActiveXObject('Microsoft.XMLHTTP'):false);return
this;},initialize:function(options){this.setTransport().setOptions(options);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers={};if(this.options.urlEncoded&&this.options.method=='post'){var
encoding=(this.options.encoding)?';
charset='+this.options.encoding:'';this.setHeader('Content-type','application/x-www-form-urlencoded'+encoding);}
if(this.options.initialize)this.options.initialize.call(this);},onStateChange:function(){if(this.transport.readyState!=4||!this.running)return;this.running=false;var
status=0;try{status=this.transport.status;}catch(e){};if(this.options.isSuccess.call(this,status))this.onSuccess();else
this.onFailure();this.transport.onreadystatechange=Class.empty;},isSuccess:function(status){return((status>=200)&&(status<300));},onSuccess:function(){this.response={'text':this.transport.responseText,'xml':this.transport.responseXML};this.fireEvent('onSuccess',[this.response.text,this.response.xml]);this.callChain();},onFailure:function(){this.fireEvent('onFailure',this.transport);},setHeader:function(name,value){this.headers[name]=value;return
this;},send:function(url,data){if(this.options.autoCancel)this.cancel();else
if(this.running)return
this;this.running=true;if(data&&this.options.method=='get'){url=url+(url.contains('?')?'&':'?')+data;data=null;}
this.transport.open(this.options.method.toUpperCase(),url,this.options.async);this.transport.onreadystatechange=this.onStateChange.bind(this);if((this.options.method=='post')&&this.transport.overrideMimeType)this.setHeader('Connection','close');$extend(this.headers,this.options.headers);for(var
type in
this.headers)try{this.transport.setRequestHeader(type,this.headers[type]);}catch(e){};this.fireEvent('onRequest');this.transport.send($pick(data,null));return
this;},cancel:function(){if(!this.running)return
this;this.running=false;this.transport.abort();this.transport.onreadystatechange=Class.empty;this.setTransport();this.fireEvent('onCancel');return
this;}});XHR.implement(new Chain,new Events,new Options);var
Ajax=XHR.extend({options:{data:null,update:null,onComplete:Class.empty,evalScripts:false,evalResponse:false},initialize:function(url,options){this.addEvent('onSuccess',this.onComplete);this.setOptions(options);this.options.data=this.options.data||this.options.postBody;if(!['post','get'].contains(this.options.method)){this._method='_method='+this.options.method;this.options.method='post';}
this.parent();this.setHeader('X-Requested-With','XMLHttpRequest');this.setHeader('Accept','text/javascript,
text/html, application/xml, text/xml,
*/*');this.url=url;},onComplete:function(){if(this.options.update)$(this.options.update).empty().setHTML(this.response.text);if(this.options.evalScripts||this.options.evalResponse)this.evalScripts();this.fireEvent('onComplete',[this.response.text,this.response.xml],20);},request:function(data){data=data||this.options.data;switch($type(data)){case'element':data=$(data).toQueryString();break;case'object':data=Object.toQueryString(data);}
if(this._method)data=(data)?[this._method,data].join('&'):this._method;return
this.send(this.url,data);},evalScripts:function(){var
script,scripts;if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader('Content-type')))scripts=this.response.text;else{scripts=[];var
regexp=/<script[^>]*>([\s\S]*?)<\/script>/gi;while((script=regexp.exec(this.response.text)))scripts.push(script[1]);scripts=scripts.join('\n');}
if(scripts)(window.execScript)?window.execScript(scripts):window.setTimeout(scripts,0);},getHeader:function(name){try{return
this.transport.getResponseHeader(name);}catch(e){};return
null;}});Object.toQueryString=function(source){var queryString=[];for(var
property in
source)queryString.push(encodeURIComponent(property)+'='+encodeURIComponent(source[property]));return
queryString.join('&');};Element.extend({send:function(options){return
new
Ajax(this.getProperty('action'),$merge({data:this.toQueryString()},options,{method:'post'})).request();}});var
Cookie=new
Abstract({options:{domain:false,path:false,duration:false,secure:false},set:function(key,value,options){options=$merge(this.options,options);value=encodeURIComponent(value);if(options.domain)value+=';
domain='+options.domain;if(options.path)value+=';
path='+options.path;if(options.duration){var date=new
Date();date.setTime(date.getTime()+options.duration*24*60*60*1000);value+=';
expires='+date.toGMTString();}
if(options.secure)value+=';
secure';document.cookie=key+'='+value;return
$extend(options,{'key':key,'value':value});},get:function(key){var
value=document.cookie.match('(?:^|;)\\s*'+key.escapeRegExp()+'=([^;]*)');return
value?decodeURIComponent(value[1]):false;},remove:function(cookie,options){if($type(cookie)=='object')this.set(cookie.key,'',$merge(cookie,{duration:-1}));else
this.set(cookie,'',$merge(options,{duration:-1}));}});var
Json={toString:function(obj){switch($type(obj)){case'string':return'"'+obj.replace(/(["\\])/g,'\\$1')+'"';case'array':return'['+obj.map(Json.toString).join(',')+']';case'object':var
string=[];for(var property in
obj)string.push(Json.toString(property)+':'+Json.toString(obj[property]));return'{'+string.join(',')+'}';case'number':if(isFinite(obj))break;case
false:return'null';}
return
String(obj);},evaluate:function(str,secure){return(($type(str)!='string')||(secure&&!str.test(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u
\n\r\t])+?$/)))?null:eval('('+str+')');}};Json.Remote=XHR.extend({initialize:function(url,options){this.url=url;this.addEvent('onSuccess',this.onComplete);this.parent(options);this.setHeader('X-Request','JSON');},send:function(obj){return
this.parent(this.url,'json='+Json.toString(obj));},onComplete:function(){this.fireEvent('onComplete',[Json.evaluate(this.response.text,this.options.secure)]);}});var
Asset=new
Abstract({javascript:function(source,properties){properties=$merge({'onload':Class.empty},properties);var
script=new
Element('script',{'src':source}).addEvents({'load':properties.onload,'readystatechange':function(){if(this.readyState=='complete')this.fireEvent('load');}});delete
properties.onload;return
script.setProperties(properties).inject(document.head);},css:function(source,properties){return
new
Element('link',$merge({'rel':'stylesheet','media':'screen','type':'text/css','href':source},properties)).inject(document.head);},image:function(source,properties){properties=$merge({'onload':Class.empty,'onabort':Class.empty,'onerror':Class.empty},properties);var
image=new Image();image.src=source;var element=new
Element('img',{'src':source});['load','abort','error'].each(function(type){var
event=properties['on'+type];delete
properties['on'+type];element.addEvent(type,function(){this.removeEvent(type,arguments.callee);event.call(this);});});if(image.width&&image.height)element.fireEvent('load',element,1);return
element.setProperties(properties);},images:function(sources,options){options=$merge({onComplete:Class.empty,onProgress:Class.empty},options);if(!sources.push)sources=[sources];var
images=[];var counter=0;sources.each(function(source){var img=new
Asset.image(source,{'onload':function(){options.onProgress.call(this,counter);counter++;if(counter==sources.length)options.onComplete();}});images.push(img);});return
new Elements(images);}});var Hash=new
Class({length:0,initialize:function(object){this.obj=object||{};this.setLength();},get:function(key){return(this.hasKey(key))?this.obj[key]:null;},hasKey:function(key){return(key
in
this.obj);},set:function(key,value){if(!this.hasKey(key))this.length++;this.obj[key]=value;return
this;},setLength:function(){this.length=0;for(var p in
this.obj)this.length++;return
this;},remove:function(key){if(this.hasKey(key)){delete
this.obj[key];this.length--;}
return
this;},each:function(fn,bind){$each(this.obj,fn,bind);},extend:function(obj){$extend(this.obj,obj);return
this.setLength();},merge:function(){this.obj=$merge.apply(null,[this.obj].extend(arguments));return
this.setLength();},empty:function(){this.obj={};this.length=0;return
this;},keys:function(){var keys=[];for(var property in
this.obj)keys.push(property);return keys;},values:function(){var
values=[];for(var property in
this.obj)values.push(this.obj[property]);return values;}});function
$H(obj){return new
Hash(obj);};Hash.Cookie=Hash.extend({initialize:function(name,options){this.name=name;this.options=$extend({'autoSave':true},options||{});this.load();},save:function(){if(this.length==0){Cookie.remove(this.name,this.options);return
true;}
var str=Json.toString(this.obj);if(str.length>4096)return
false;Cookie.set(this.name,str,this.options);return
true;},load:function(){this.obj=Json.evaluate(Cookie.get(this.name),true)||{};this.setLength();}});Hash.Cookie.Methods={};['extend','set','merge','empty','remove'].each(function(method){Hash.Cookie.Methods[method]=function(){Hash.prototype[method].apply(this,arguments);if(this.options.autoSave)this.save();return
this;};});Hash.Cookie.implement(Hash.Cookie.Methods);var Color=new
Class({initialize:function(color,type){type=type||(color.push?'rgb':'hex');var
rgb,hsb;switch(type){case'rgb':rgb=color;hsb=rgb.rgbToHsb();break;case'hsb':rgb=color.hsbToRgb();hsb=color;break;default:rgb=color.hexToRgb(true);hsb=rgb.rgbToHsb();}
rgb.hsb=hsb;rgb.hex=rgb.rgbToHex();return
$extend(rgb,Color.prototype);},mix:function(){var colors=$A(arguments);var
alpha=($type(colors[colors.length-1])=='number')?colors.pop():50;var
rgb=this.copy();colors.each(function(color){color=new Color(color);for(var
i=0;i<3;i++)rgb[i]=Math.round((rgb[i]/100*(100-alpha))+(color[i]/100*alpha));});return
new Color(rgb,'rgb');},invert:function(){return new
Color(this.map(function(value){return
255-value;}));},setHue:function(value){return new
Color([value,this.hsb[1],this.hsb[2]],'hsb');},setSaturation:function(percent){return
new
Color([this.hsb[0],percent,this.hsb[2]],'hsb');},setBrightness:function(percent){return
new Color([this.hsb[0],this.hsb[1],percent],'hsb');}});function
$RGB(r,g,b){return new Color([r,g,b],'rgb');};function
$HSB(h,s,b){return new
Color([h,s,b],'hsb');};Array.extend({rgbToHsb:function(){var
red=this[0],green=this[1],blue=this[2];var hue,saturation,brightness;var
max=Math.max(red,green,blue),min=Math.min(red,green,blue);var
delta=max-min;brightness=max/255;saturation=(max!=0)?delta/max:0;if(saturation==0){hue=0;}else{var
rr=(max-red)/delta;var gr=(max-green)/delta;var
br=(max-blue)/delta;if(red==max)hue=br-gr;else
if(green==max)hue=2+rr-br;else hue=4+gr-rr;hue/=6;if(hue<0)hue++;}
return[Math.round(hue*360),Math.round(saturation*100),Math.round(brightness*100)];},hsbToRgb:function(){var
br=Math.round(this[2]/100*255);if(this[1]==0){return[br,br,br];}else{var
hue=this[0]%360;var f=hue%60;var
p=Math.round((this[2]*(100-this[1]))/10000*255);var
q=Math.round((this[2]*(6000-this[1]*f))/600000*255);var
t=Math.round((this[2]*(6000-this[1]*(60-f)))/600000*255);switch(Math.floor(hue/60)){case
0:return[br,t,p];case 1:return[q,br,p];case 2:return[p,br,t];case
3:return[p,q,br];case 4:return[t,p,br];case 5:return[br,p,q];}}
return false;}});var Scroller=new
Class({options:{area:20,velocity:1,onChange:function(x,y){this.element.scrollTo(x,y);}},initialize:function(element,options){this.setOptions(options);this.element=$(element);this.mousemover=([window,document].contains(element))?$(document.body):this.element;},start:function(){this.coord=this.getCoords.bindWithEvent(this);this.mousemover.addListener('mousemove',this.coord);},stop:function(){this.mousemover.removeListener('mousemove',this.coord);this.timer=$clear(this.timer);},getCoords:function(event){this.page=(this.element==window)?event.client:event.page;if(!this.timer)this.timer=this.scroll.periodical(50,this);},scroll:function(){var
el=this.element.getSize();var pos=this.element.getPosition();var
change={'x':0,'y':0};for(var z in
this.page){if(this.page[z]<(this.options.area+pos[z])&&el.scroll[z]!=0)
change[z]=(this.page[z]-this.options.area-pos[z])*this.options.velocity;else
if(this.page[z]+this.options.area>(el.size[z]+pos[z])&&el.scroll[z]+el.size[z]!=el.scrollSize[z])
change[z]=(this.page[z]-el.size[z]+this.options.area-pos[z])*this.options.velocity;}
if(change.y||change.x)this.fireEvent('onChange',[el.scroll.x+change.x,el.scroll.y+change.y]);}});Scroller.implement(new
Events,new Options);var Slider=new
Class({options:{onChange:Class.empty,onComplete:Class.empty,onTick:function(pos){this.knob.setStyle(this.p,pos);},mode:'horizontal',steps:100,offset:0},initialize:function(el,knob,options){this.element=$(el);this.knob=$(knob);this.setOptions(options);this.previousChange=-1;this.previousEnd=-1;this.step=-1;this.element.addEvent('mousedown',this.clickedElement.bindWithEvent(this));var
mod,offset;switch(this.options.mode){case'horizontal':this.z='x';this.p='left';mod={'x':'left','y':false};offset='offsetWidth';break;case'vertical':this.z='y';this.p='top';mod={'x':false,'y':'top'};offset='offsetHeight';}
this.max=this.element[offset]-this.knob[offset]+(this.options.offset*2);this.half=this.knob[offset]/2;this.getPos=this.element['get'+this.p.capitalize()].bind(this.element);this.knob.setStyle('position','relative').setStyle(this.p,-this.options.offset);var
lim={};lim[this.z]=[-this.options.offset,this.max-this.options.offset];this.drag=new
Drag.Base(this.knob,{limit:lim,modifiers:mod,snap:0,onStart:function(){this.draggedKnob();}.bind(this),onDrag:function(){this.draggedKnob();}.bind(this),onComplete:function(){this.draggedKnob();this.end();}.bind(this)});if(this.options.initialize)this.options.initialize.call(this);},set:function(step){this.step=step.limit(0,this.options.steps);this.checkStep();this.end();this.fireEvent('onTick',this.toPosition(this.step));return
this;},clickedElement:function(event){var
position=event.page[this.z]-this.getPos()-this.half;position=position.limit(-this.options.offset,this.max-this.options.offset);this.step=this.toStep(position);this.checkStep();this.end();this.fireEvent('onTick',position);},draggedKnob:function(){this.step=this.toStep(this.drag.value.now[this.z]);this.checkStep();},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;this.fireEvent('onChange',this.step);}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent('onComplete',this.step+'');}},toStep:function(position){return
Math.round((position+this.options.offset)/this.max*this.options.steps);},toPosition:function(step){return
this.max*step/this.options.steps;}});Slider.implement(new
Events);Slider.implement(new Options);var
SmoothScroll=Fx.Scroll.extend({initialize:function(options){this.parent(window,options);this.links=(this.options.links)?$$(this.options.links):$$(document.links);var
location=window.location.href.match(/^[^#]*/)[0]+'#';this.links.each(function(link){if(link.href.indexOf(location)!=0)return;var
anchor=link.href.substr(location.length);if(anchor&&$(anchor))this.useLink(link,anchor);},this);if(!window.webkit419)this.addEvent('onComplete',function(){window.location.hash=this.anchor;});},useLink:function(link,anchor){link.addEvent('click',function(event){this.anchor=anchor;this.toElement(anchor);event.stop();}.bindWithEvent(this));}});var
Sortables=new
Class({options:{handles:false,onStart:Class.empty,onComplete:Class.empty,ghost:true,snap:3,onDragStart:function(element,ghost){ghost.setStyle('opacity',0.7);element.setStyle('opacity',0.7);},onDragComplete:function(element,ghost){element.setStyle('opacity',1);ghost.remove();this.trash.remove();}},initialize:function(list,options){this.setOptions(options);this.list=$(list);this.elements=this.list.getChildren();this.handles=(this.options.handles)?$$(this.options.handles):this.elements;this.bound={'start':[],'moveGhost':this.moveGhost.bindWithEvent(this)};for(var
i=0,l=this.handles.length;i<l;i++){this.bound.start[i]=this.start.bindWithEvent(this,this.elements[i]);}
this.attach();if(this.options.initialize)this.options.initialize.call(this);this.bound.move=this.move.bindWithEvent(this);this.bound.end=this.end.bind(this);},attach:function(){this.handles.each(function(handle,i){handle.addEvent('mousedown',this.bound.start[i]);},this);},detach:function(){this.handles.each(function(handle,i){handle.removeEvent('mousedown',this.bound.start[i]);},this);},start:function(event,el){this.active=el;this.coordinates=this.list.getCoordinates();if(this.options.ghost){var
position=el.getPosition();this.offset=event.page.y-position.y;this.trash=new
Element('div').inject(document.body);this.ghost=el.clone().inject(this.trash).setStyles({'position':'absolute','left':position.x,'top':event.page.y-this.offset});document.addListener('mousemove',this.bound.moveGhost);this.fireEvent('onDragStart',[el,this.ghost]);}
document.addListener('mousemove',this.bound.move);document.addListener('mouseup',this.bound.end);this.fireEvent('onStart',el);event.stop();},moveGhost:function(event){var
value=event.page.y-this.offset;value=value.limit(this.coordinates.top,this.coordinates.bottom-this.ghost.offsetHeight);this.ghost.setStyle('top',value);event.stop();},move:function(event){var
now=event.page.y;this.previous=this.previous||now;var
up=((this.previous-now)>0);var prev=this.active.getPrevious();var
next=this.active.getNext();if(prev&&up&&now<prev.getCoordinates().bottom)this.active.injectBefore(prev);if(next&&!up&&now>next.getCoordinates().top)this.active.injectAfter(next);this.previous=now;},serialize:function(converter){return
this.list.getChildren().map(converter||function(el){return
this.elements.indexOf(el);},this);},end:function(){this.previous=null;document.removeListener('mousemove',this.bound.move);document.removeListener('mouseup',this.bound.end);if(this.options.ghost){document.removeListener('mousemove',this.bound.moveGhost);this.fireEvent('onDragComplete',[this.active,this.ghost]);}
this.fireEvent('onComplete',this.active);}});Sortables.implement(new
Events,new Options);var Tips=new
Class({options:{onShow:function(tip){tip.setStyle('visibility','visible');},onHide:function(tip){tip.setStyle('visibility','hidden');},maxTitleChars:30,showDelay:100,hideDelay:100,className:'tool',offsets:{'x':16,'y':16},fixed:false},initialize:function(elements,options){this.setOptions(options);this.toolTip=new
Element('div',{'class':this.options.className+'-tip','styles':{'position':'absolute','top':'0','left':'0','visibility':'hidden'}}).inject(document.body);this.wrapper=new
Element('div').inject(this.toolTip);$$(elements).each(this.build,this);if(this.options.initialize)this.options.initialize.call(this);},build:function(el){el.$tmp.myTitle=(el.href&&el.getTag()=='a')?el.href.replace('http://',''):(el.rel||false);if(el.title){var
dual=el.title.split('::');if(dual.length>1){el.$tmp.myTitle=dual[0].trim();el.$tmp.myText=dual[1].trim();}else{el.$tmp.myText=el.title;}
el.removeAttribute('title');}else{el.$tmp.myText=false;}
if(el.$tmp.myTitle&&el.$tmp.myTitle.length>this.options.maxTitleChars)el.$tmp.myTitle=el.$tmp.myTitle.substr(0,this.options.maxTitleChars-1)+"…";el.addEvent('mouseenter',function(event){this.start(el);if(!this.options.fixed)this.locate(event);else
this.position(el);}.bind(this));if(!this.options.fixed)el.addEvent('mousemove',this.locate.bindWithEvent(this));var
end=this.end.bind(this);el.addEvent('mouseleave',end);el.addEvent('trash',end);},start:function(el){this.wrapper.empty();if(el.$tmp.myTitle){this.title=new
Element('span').inject(new
Element('div',{'class':this.options.className+'-title'}).inject(this.wrapper)).setHTML(el.$tmp.myTitle);}
if(el.$tmp.myText){this.text=new Element('span').inject(new
Element('div',{'class':this.options.className+'-text'}).inject(this.wrapper)).setHTML(el.$tmp.myText);}
$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this);},end:function(event){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this);},position:function(element){var
pos=element.getPosition();this.toolTip.setStyles({'left':pos.x+this.options.offsets.x,'top':pos.y+this.options.offsets.y});},locate:function(event){var
win={'x':window.getWidth(),'y':window.getHeight()};var
scroll={'x':window.getScrollLeft(),'y':window.getScrollTop()};var
tip={'x':this.toolTip.offsetWidth,'y':this.toolTip.offsetHeight};var
prop={'x':'left','y':'top'};for(var
z in prop){var
pos=event.page[z]+this.options.offsets[z];if((pos+tip[z]-scroll[z])>win[z])pos=event.page[z]-this.options.offsets[z]-tip[z];this.toolTip.setStyle(prop[z],pos);};},show:function(){if(this.options.timeout)this.timer=this.hide.delay(this.options.timeout,this);this.fireEvent('onShow',[this.toolTip]);},hide:function(){this.fireEvent('onHide',[this.toolTip]);}});Tips.implement(new
Events,new Options);var Group=new
Class({initialize:function(){this.instances=$A(arguments);this.events={};this.checker={};},addEvent:function(type,fn){this.checker[type]=this.checker[type]||{};this.events[type]=this.events[type]||[];if(this.events[type].contains(fn))return
false;else
this.events[type].push(fn);this.instances.each(function(instance,i){instance.addEvent(type,this.check.bind(this,[type,instance,i]));},this);return
this;},check:function(type,instance,i){this.checker[type][i]=true;var
every=this.instances.every(function(current,j){return
this.checker[type][j]||false;},this);if(!every)return;this.checker[type]={};this.events[type].each(function(event){event.call(this,this.instances,instance);},this);}});var
Accordion=Fx.Elements.extend({options:{onActive:Class.empty,onBackground:Class.empty,display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var
options,togglers,elements,container;$each(arguments,function(argument,i){switch($type(argument)){case'object':options=argument;break;case'element':container=$(argument);break;default:var
temp=$$(argument);if(!togglers)togglers=temp;else
elements=temp;}});this.togglers=togglers||[];this.elements=elements||[];this.container=$(container);this.setOptions(options);this.previous=-1;if(this.options.alwaysHide)this.options.wait=true;if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show;}
if(this.options.start){this.options.display=false;this.options.show=false;}
this.effects={};if(this.options.opacity)this.effects.opacity='fullOpacity';if(this.options.width)this.effects.width=this.options.fixedWidth?'fullWidth':'offsetWidth';if(this.options.height)this.effects.height=this.options.fixedHeight?'fullHeight':'scrollHeight';for(var
i=0,l=this.togglers.length;i<l;i++)this.addSection(this.togglers[i],this.elements[i]);this.elements.each(function(el,i){if(this.options.show===i){this.fireEvent('onActive',[this.togglers[i],el]);}else{for(var
fx in
this.effects)el.setStyle(fx,0);}},this);this.parent(this.elements);if($chk(this.options.display))this.display(this.options.display);},addSection:function(toggler,element,pos){toggler=$(toggler);element=$(element);var
test=this.togglers.contains(toggler);var
len=this.togglers.length;this.togglers.include(toggler);this.elements.include(element);if(len&&(!test||pos)){pos=$pick(pos,len-1);toggler.injectBefore(this.togglers[pos]);element.injectAfter(toggler);}else
if(this.container&&!test){toggler.inject(this.container);element.inject(this.container);}
var
idx=this.togglers.indexOf(toggler);toggler.addEvent('click',this.display.bind(this,idx));if(this.options.height)element.setStyles({'padding-top':0,'border-top':'none','padding-bottom':0,'border-bottom':'none'});if(this.options.width)element.setStyles({'padding-left':0,'border-left':'none','padding-right':0,'border-right':'none'});element.fullOpacity=1;if(this.options.fixedWidth)element.fullWidth=this.options.fixedWidth;if(this.options.fixedHeight)element.fullHeight=this.options.fixedHeight;element.setStyle('overflow','hidden');if(!test){for(var
fx in this.effects)element.setStyle(fx,0);}
return
this;},display:function(index){index=($type(index)=='element')?this.elements.indexOf(index):index;if((this.timer&&this.options.wait)||(index===this.previous&&!this.options.alwaysHide))return
this;this.previous=index;var
obj={};this.elements.each(function(el,i){obj[i]={};var
hide=(i!=index)||(this.options.alwaysHide&&(el.offsetHeight>0));this.fireEvent(hide?'onBackground':'onActive',[this.togglers[i],el]);for(var
fx in this.effects)obj[i][fx]=hide?0:el[this.effects[fx]];},this);return
this.start(obj);},showThisHideOpen:function(index){return
this.display(index);}});Fx.Accordion=Accordion;PK1o�[��q���
config.xmlnu�[���<?xml version="1.0"
encoding="utf-8"?>
<config>
<fieldset name="component">
<field name="popupwidth" type="text"
default="500" maxlength="5"
label="Popup width" description="The width of the popup
window" />
<field name="popupheight" type="text"
default="500" maxlength="5"
label="Popup height" description="The height of the popup
window" />
<field name="autopopup" type="radio"
default="1" label="Auto Popup"
description="Automatically show popup window when new items are
dumped.">
<option value="0">No</option>
<option value="1">Yes</option>
</field>
<field name="@spacer" type="spacer"
default="" label=""
description="" />
<field name="maxdepth" type="text"
default="5" maxlength="2"
label="Maximum recursion depth"
description="The number of levels that should be dumped for arrays
and objects. Min=1, max=20" />
<field name="trimstrings" type="radio"
default="1" label="Trim Strings"
description="Trim long strings.">
<option value="0">No</option>
<option value="1">Yes</option>
</field>
<field name="maxstrlength" type="text"
default="150"
label="Maximum String Length" description="Long strings
will be trimmed to this number of characters." />
<field name="showOrigin" type="radio"
default="1"
label="Show origin of call" description="Show the file,
line and method from where dump was called.">
<option value="0">No</option>
<option value="1">Yes</option>
</field>
</fieldset>
</config>
PK1o�[�"[���controller.phpnu�[���<?php
/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
class DumpController extends JControllerLegacy
{
function display($cachable = false, $urlparams = false)
{
$mainframe = JFactory::getApplication();
$option = JRequest::getCmd('option');
$Itemid = JRequest::getInt('Itemid');
// we need to add these paths so the component can work in both site and
administrator
$this->addViewPath(JPATH_COMPONENT_ADMINISTRATOR .
'/views');
$this->addModelPath(JPATH_COMPONENT_ADMINISTRATOR .
'/models');
$document = JFactory::getDocument();
// specify the type of the view (raw for dump tree in Frontend, html for
admin comp)
if ($mainframe->isSite())
{
// specify the RAW format for the JDump Frontend menu link
$viewType = "raw";
}
else
{
$viewType = $document->getType();
}
// get some vars
$viewName = JRequest::getCmd('view', 'about');
$viewLayout = JRequest::getCmd('layout', 'default');
// get the view & set the layout
$view = $this->getView($viewName, $viewType);
$view->setLayout($viewLayout);
// Get/Create the model
if ($model = $this->getModel($viewName))
{
// Push the model into the view (as default)
$view->setModel($model, true);
}
// Display the view
$view->display();
}
}
PK2o�[���defines.phpnu�[���<?php
/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
$mainframe = JFactory::getApplication(); $option =
JRequest::getCmd('option');
$phpversion = explode('.', phpversion());
define('DUMP_VERSION', '%%VERSION%%');
define('DUMP_URL', JURI::root() .
'administrator/components/com_dump/');
PK2o�[���dump.phpnu�[���<?php
/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
// use JPATH_COMPONENT_ADMINISTRATOR so we can use this in both site and
administrator
// Defines
require_once(JPATH_COMPONENT_ADMINISTRATOR . '/defines.php');
// Require the base controller
require_once(JPATH_COMPONENT_ADMINISTRATOR . '/controller.php');
// Require specific controller if requested
if ($controller = JRequest::getCmd('controller'))
{
require_once (JPATH_COMPONENT_ADMINISTRATOR . '/controllers/' .
$controller . '.php');
}
// Create the controller
$classname = 'DumpController'.$controller;
$controller = new $classname();
// Perform the Request task
$controller->execute(JRequest::getCmd('task'));
$controller->redirect();
PK2o�[�0y00dump.xmlnu�[���<?xml
version="1.0" encoding="utf-8"?>
<extension version="3.0" type="component"
method="upgrade">
<name>Dump</name>
<author>Mathias Verraes</author>
<creationDate>%%TODAY%%</creationDate>
<copyright>(c) Mathias Verraes 2006 - 2012</copyright>
<license>GNU/GPL</license>
<authorEmail></authorEmail>
<authorUrl>https://github.com/mathiasverraes/jdump</authorUrl>
<version>%%VERSION%%</version>
<description>J!Dump -- Advanced print_r and var_dump replacer with
DHTML tree display.</description>
<files folder="components/com_dump">
<filename>dump.php</filename>
<folder>views</folder>
</files>
<administration>
<files folder="administrator/components/com_dump">
<filename>config.xml</filename>
<filename>controller.php</filename>
<filename>defines.php</filename>
<filename>dump.php</filename>
<filename>helper.php</filename>
<filename>node.php</filename>
<filename>sysinfo.php</filename>
<folder>assets</folder>
<folder>models</folder>
<folder>views</folder>
</files>
<menu>J!Dump</menu>
</administration>
</extension>
PK2o�[�b��?
?
helper.phpnu�[���<?php
/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
class DumpHelper extends JObject {
static function showPopup()
{
$mainframe = JFactory::getApplication(); $option =
JRequest::getCmd('option');
jimport('joomla.application.helper');
$client =
JApplicationHelper::getClientInfo($mainframe->getClientID());
// settings from config.xml
$dumpConfig = JComponentHelper::getParams( 'com_dump' );
$w = $dumpConfig->get('popupwidth', 500);
$h = $dumpConfig->get('popupheight', 500);
// build the url
$url =
JURI::base(true).'/index.php?option=com_dump&view=tree&format=raw';
/* @TODO remove this and implement this in a later version using JRoute
// only add Itemid in Site
if ( $mainframe->isSite() ) {
$url .= '&Itemid=' . DumpHelper::getComponentItemid(
'com_dump' );
}
*/
// create the javascript
// We can't use $document, because it's already rendered
$nl = "\n";
$script = $nl. '<!-- J!Dump -->' .$nl.
'<script type="text/javascript">' .$nl.
'// <!--' .$nl.
'window.open( "'.$url.'",
"dump_'.$client->name.'",
"height='.$h.',width='.$w.',toolbar=0,status=0,menubar=0,scrollbars=1,resizable=1");'
.$nl.
'// -->' .$nl.
'</script>' .$nl.
'<!-- / J!Dump -->';
// add the code to the header (thanks jenscski)
// JResponse::appendBody( $script );
$body = JResponse::getBody();
$body = str_replace('</head>',
$script.'</head>', $body);
JResponse::setBody($body);
}
/* @TODO remove this and implement this in a later version using JRoute
function getComponentItemid( $option ) {
jimport('joomla.application.menu');
$menu = JMenu::getInstance();
$components = $menu->getItems( 'type', 'component'
);
$attribs['option'] = '';
foreach( $components as $component ) {
$str = str_replace( 'index.php?', '',
$component->link );
parse_str( $str, $attribs );
if( $attribs['option'] == $option ){
return $component->id;
}
}
// if no Itemid is found (because there's no menuitem for $option),
return current
return $GLOBALS['Itemid'];
}
*/
static function getSourceFunction(&$trace)
{
$function = '';
for ($i=1, $n=count($trace); $i<$n; $i++)
{
$func = $trace[$i]['function'];
if ($func!='include' &&
$func!='include_once' && $func!='require'
&& $func!='require_once')
{
if (!empty($trace[$i]['type']) &&
!empty(@$trace[$i]['class']))
$function = $trace[$i]['class'].'<br
/> '.$trace[$i]['type'].' '.$func.'()';
else
$function = $func;
}
if ($function) break;
}
return "Function: $function<br />";
}
static function getSourcePath(&$trace)
{
$path = 'File: '.str_replace(JPATH_BASE.'/',
'', $trace[0]['file'])
. '<br />'
. 'Line: '.$trace[0]['line']
. '<br />';
return $path;
}
static function & getMaxDepth()
{
static $maxdepth = null;
if (!$maxdepth)
{
$dumpConfig = JComponentHelper::getParams('com_dump');
$maxdepth = intval($dumpConfig->get('maxdepth',
5));
if( $maxdepth > 20 ) $maxdepth = 20;
if( $maxdepth < 1 ) $maxdepth = 1;
}
return $maxdepth;
}
}
PK2o�[�?��??models/tree.phpnu�[���<?php
/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
class DumpModelTree extends JModelLegacy
{
var $_nodes = array();
function __construct()
{
$mainframe = JFactory::getApplication(); $option =
JRequest::getCmd('option');
//get the userstate
$this->_nodes = $mainframe->getUserState('dump.nodes');
if (!is_array($this->_nodes))
{
$this->_nodes = array();
}
// and clear it
$mainframe->setUserState('dump.nodes', array());
parent::__construct();
}
function & getNodes()
{
return $this->_nodes;
}
function countDumps()
{
return count( $this->_nodes ) ;
}
}
PK2o�[o�x-node.phpnu�[���<?php
/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
class DumpNode
{
static function & getNode($var, $name, $type = null, $level = 0,
$source = null)
{
$node['name'] = $name;
$node['type'] = strtolower($type ? $type : gettype( $var
));
$node['children'] = array();
$node['level'] = $level;
$node['source'] = $source;
// expand the var according to type
switch ($node['type'])
{
case 'backtrace': // Skip source when backtrace, and change to
array
$node['source'] = null;
$node['type'] = 'array';
case 'array':
if ($level >= DumpHelper::getMaxDepth())
{
$node['children'][] = DumpNode::getNode('Maximum depth
reached', null, 'message');
}
else
{
ksort($var);
foreach ($var as $key => $value)
{
$node['children'][] = DumpNode::getNode($value, $key, null,
$level + 1);
}
}
break;
case 'object':
if ($level >= DumpHelper::getMaxDepth())
{
$node['children'][] = DumpNode::getNode('Maximum depth
reached', null, 'message');
}
else
{
$object_vars = get_object_vars($var) ;
$methods = get_class_methods($var) ;
if (count($object_vars))
{
$node['children'][] = DumpNode::getNode($var,
'Properties', 'properties', $level);
}
if (count($methods))
{
$node['children'][] = DumpNode::getNode($var,
'Methods', 'methods', $level);
}
}
$node['classname'] = get_class($var);
break;
case 'properties':
$object_vars = get_object_vars($var);
ksort($object_vars);
foreach ($object_vars as $key => $value)
{
$node['children'][] = DumpNode::getNode($value, $key, null,
$level + 1);
}
break;
case 'methods':
$methods = get_class_methods($var);
sort($methods);
foreach ($methods as $value)
{
$node['children'][] = DumpNode::getNode(null, $value,
'method');
}
break;
case 'string':
jimport('joomla.application.component.helper');
// settings from config.xml
$dumpConfig = JComponentHelper::getParams('com_dump');
$trimstrings = $dumpConfig->get('trimstrings', 1);
$maxstrlength = $dumpConfig->get('maxstrlength', 150);
//original string length
$length = JString::strlen($var);
// trim string if needed
if ($trimstrings AND $length > $maxstrlength)
{
$var = JString::substr($var, 0, $maxstrlength) . '...';
$node['length'] = $length;
}
$node['value'] = $var;
break;
default:
$node['value'] = & $var;
break;
}
return $node;
}
}
PK2o�[���#��sysinfo.phpnu�[���<?php
/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.utilities.array' );
class DumpSysinfo extends JObject
{
var $data = array();
function __construct()
{
// execute all methods that start with '_load'
foreach (get_class_methods($this) as $method) {
if ('_load' == substr($method, 0, 5)) {
$this->$method();
}
}
$this->sort( $this->data );
}
function _loadConfig()
{
$jconf = new JConfig();
$jconf->password = '*******';
$jconf->ftp_pass = '*******';
$jconf->secret = '*******';
$this->data['Joomla Configuration'] =
JArrayHelper::fromObject($jconf);
}
function _loadVersions()
{
$version = new JVersion();
$this->data['Versions']['Joomla!'] =
$version->getLongVersion();
$this->data['Versions']['J!Dump'] = DUMP_VERSION;
$this->data['Versions']['PHP'] =
phpversion();
$this->data['Versions']['Apache'] =
function_exists('apache_get_version') ? apache_get_version() :
'unknown';
$this->data['Versions']['Zend Engine'] =
zend_version();
}
function _loadEnvironment()
{
$this->data['Environment']['_SERVER'] =
$_SERVER;
$this->data['Environment']['_GET'] = $_GET;
$this->data['Environment']['_POST'] = $_POST;
$this->data['Environment']['_COOKIE'] =
$_COOKIE;
$this->data['Environment']['_FILES'] = $_FILES;
$this->data['Environment']['_ENV'] = $_ENV;
$this->data['Environment']['_REQUEST'] =
$_REQUEST;
}
// recursive natural key sort
function sort(&$array)
{
uksort($array, 'strnatcasecmp'); // this will do natural key
sorting (A=a)
foreach (array_keys($array) as $k)
{
if ('array' == gettype($array[$k]))
{
$this->sort($array[$k]);
}
}
}
}
PK2o�[q-ʮ��views/about/tmpl/default.phpnu�[���<?php
/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<style>
div.jdump {width:550px;margin:0px auto;}
.jdump p, .jdump li { font-size: 14px;margin: 10px;}
.jdump code { font-size: 14px; color: white; background-color:black;
margin-bottom: 26px;margin-left:15px; padding: 5px;}
div.box {padding:10px; margin:10px;border-radius: 32px;-moz-border-radius:
32px;-webkit-border-radius: 32px;}
div.orange {background-color: #FC8F30;}
div.blue {background-color: #70ace4;}
div.green {background-color: #7fb01d;}
</style>
<div class="jdump">
<div class="box orange">
<p>Advanced print_r and var_dump replacer with object tree
display.</p>
<p>The J!Dump project is now officially hosted on <a
href="https://github.com/mathiasverraes/jdump">https://github.com/mathiasverraes/jdump</a></p>
<p><a
href="http://extensions.joomla.org/extensions/miscellaneous/development/1509">Vote
for this extension at the JED</a></p>
</div>
<div class="box blue">
<h2>Features</h2>
<p>This utility makes life easy for developers and template
designers. You use it to see what's inside a variable, an array or
an
object. Instead of using print_r() or var_dump(), you can now use
dump(). This will open a popup window with a nice expandable DHTML tree,
showing the contents of the variable. It will even show a list of
available methods for each object. You have to see it to believe it! You
can use dump() in your extensions, in the core, in libraries and even in
templates.</p>
</div>
<div class="box green">
<h2>Installation</h2>
<p>Install both the component and the plugin. Make sure the plugin
is published. But you probably figured that out already.</p>
<p>If you don't want the dump popup window to appear
automatically,
you can disable it in the configuration. To display the dump window
manually:</p>
<ul>
<li>Administrator: Go to Components -> J!Dump and click
Popup.</li>
<li>Site: Make a new menu item for J!Dump. Set it to 'Open in
New
Window'</li>
</ul>
</div>
<div class="box orange">
<p>Want updates? Follow <a
href="http://twitter.com/mathiasverraes">@mathiasverraes</a>
on Twitter and be the first to know.</p>
</div>
<div class="box blue">
<h2>Using J!Dump</h2>
<p>Anywhere in your code, type:</p>
<code>dump($variable, 'Variable Name');</code>
<p>Simple huh? 'Variable Name' is optional and can be
anything you
like. If you use a lot of dumps, you'll want to use some descriptive
names.</p>
<h2>Shortcuts</h2>
<code>dumpSysinfo();</code>
<p>Displays a whole bunch of system information.</p>
<code>dumpTemplate($this);</code>
<p>Use inside a template's index.php to dump the
parameters.</p>
<code>dumpMessage('Your message');</code>
<p>Displays a custom message. Very handy to check if a function or
a
loop is executed etc...</p>
<code>dumpTrace();</code>
<p>Displays the backtrace.</p>
</div>
<div class="box green">
<h2>Notes</h2>
<ul>
<li>This component is only meant to be used on development test
sites, NOT in live or production environments. If you must use it on a
live site, don't do stupid things like dump($password) !</li>
<li>You can't use dump() in system plugins that are run
before the
J!Dump plugin is run, so it is best to use ordering in the plugin
manager to put J!Dump upfront.</li>
</ul>
</div>
<div class="box orange">
<h2>Contributors</h2>
<ul>
<li><a
href="http://twitter.com/mathiasverraes">Mathias
Verraes</a> (Lead)</li>
<li><a
href="http://community.joomla.org/august-2008/author/70-jens-christian-skibakk.html">Jens-Christian
Skibakk</a></li>
<li><a
href="http://www.alltogetherasawhole.org/profile/TomFuller">Tom
Fuller</a></li>
</ul>
<p>Thanks to everybody who provided patches.</p>
</div>
<div class="box blue">
<h2>Bugs</h2>
<p>Found some bugs? <a
href="https://github.com/mathiasverraes/jdump/issues">To
the
Bugmobile!</a> Be a <a
href="http://stephenjungels.com/jungels.net/articles/diff-patch-ten-minutes.html">good
boy or girl</a> and add a patch yourself :-) Ideas and feature
requests are welcome as well.</p>
</div>
<div class="box green">
<h2>Credits</h2>
<p>This component includes Folder Tree Static by Alf Magne
Kalleland. It is released under LGPL and can be found at
http://www.dhtmlgoodies.com/</p>
</div>
</div>PK2o�[{����views/about/view.html.phpnu�[���<?php
/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
class DumpViewAbout extends JViewLegacy
{
function display($tpl = null)
{
$mainframe = JFactory::getApplication(); $option =
JRequest::getCmd('option');
// Toolbar
JToolBarHelper::title( 'J!Dump v' . DUMP_VERSION );
$bar = JToolBar::getInstance('toolbar');
$bar->appendButton( 'Popup', 'default',
'Popup',
"index.php?option=com_dump&view=tree&format=raw&closebutton=0"
);
JToolBarHelper::preferences( 'com_dump', '300' );
parent::display($tpl);
}
}
PK2o�[m���views/tree/tmpl/default.phpnu�[���<?php
/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en-gb" lang="en-gb" dir="ltr" >
<head>
<meta http-equiv="content-type" content="text/html;
charset=utf-8" />
<title>J!Dump - <?php echo
$this->application?></title>
<link href="<?php echo
DUMP_URL?>assets/css/general.css" rel="stylesheet"
type="text/css" />
<link href="<?php echo
DUMP_URL?>assets/css/component.css" rel="stylesheet"
type="text/css" />
<link rel="stylesheet" href="<?php echo
DUMP_URL?>assets/css/folder-tree-static.css"
type="text/css" />
<link rel="stylesheet" href="<?php echo
DUMP_URL?>assets/css/dump.css" type="text/css" />
<script type="text/javascript" src="<?php echo
DUMP_URL?>assets/js/mootools.js"></script>
<script type="text/javascript" src="<?php echo
DUMP_URL?>assets/js/joomla.javascript.js"></script>
<script type="text/javascript" src="<?php echo
DUMP_URL?>assets/js/folder-tree-static.js"></script>
<script type="text/javascript" src="<?php echo
DUMP_URL?>assets/js/dump.js"></script>
<script type="text/javascript">
window.addEvent('domready', function(){ var JTooltips = new
Tips($$('.hasTip'), { maxTitleChars: 50, fixed: false}); });
var imageFolder = '<?php echo DUMP_URL?>assets/images/';
</script>
</head>
<body class="contentpane">
<fieldset class="dumpContainer">
<legend>Application: <?php echo
$this->application?></legend>
<br />
<a href="#" onclick="return false;"
id="dumpLocked" class="dumpLocked">Window is
locked</a>
<a href="#" onclick="dumpLockWindow();return false;"
id="dumpLock" class="dumpLock">Lock Window</a>
<a href="#" onclick="window.location.reload( true
);return false;" id="dumpRefresh"
class="dumpRefresh">Refresh</a>
<?php if( $this->closebutton ) {
?><a href="#" onclick="window.close();return
false;" class="dumpClose">Close Window</a><?php
} ?>
<?php if( $this->tree=='' ) {
?><br /><br />No dumped variables found.<br
/><?php
} else {
?><a href="#"
onclick="expandAll('dhtmlgoodies_tree');return false;"
class="dumpExpandAll">Expand all</a>
<a href="#"
onclick="collapseAll('dhtmlgoodies_tree');return
false;" class="dumpCollapseAll">Collapse
all</a><br /><br />
<ul id="dhtmlgoodies_tree"
class="dhtmlgoodies_tree"><?php
echo $this->tree
?></ul><?php
}?>
<br />
<a href='https://github.com/mathiasverraes/jdump'
target='_blank'
style='margin-right:10px;font-size:10px'>J!Dump v<?php echo
$this->version?></a>
</fieldset>
</body>
</html>PK3o�[x4�݈�views/tree/view.raw.phpnu�[���<?php
/**
* J!Dump
* @version $Id$
* @package jdump
* @copyright Copyright (C) 2006-2011 Mathias Verraes. All rights
reserved.
* @license GNU/GPL
* @link https://github.com/mathiasverraes/jdump
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
JHTML::_('behavior.tooltip');
class DumpViewTree extends JViewLegacy
{
function display($tpl = null)
{
$mainframe = JFactory::getApplication(); $option =
JRequest::getCmd('option');
// we need to add these paths so the component can work in both site and
administrator
$this->addTemplatePath( dirname(__FILE__) . '/tmpl' );
// client information (site, administrator, ... )
jimport( 'joomla.application.helper' );
$client =
JApplicationHelper::getClientInfo($mainframe->getClientID());
// make sure we only show the component
JRequest::setVar( 'tmpl', 'component' );
// render tree and assign to template
$tree = $this->renderTree();
$this->assignRef('tree', $tree );
$this->assignRef( 'application', $client->name );
$this->assign( 'version', DUMP_VERSION );
$this->assign( 'closebutton', JRequest::getInt(
'closebutton', 1 ) );
parent::display($tpl);
}
function & renderTree() {
$mainframe = JFactory::getApplication(); $option =
JRequest::getCmd('option');
$output = '';
// get the nodes from the model
$nodes = $this->get('nodes');
// render the nodes to <ul><li...
foreach ( $nodes as $node ) {
$output .= $this->renderNode( $node );
}
return $output;
}
function renderNode( & $node ) {
switch ( $node['type'] ) {
case 'object':
case 'array':
return $this->renderObjArray( $node );
break;
case 'integer':
case 'float':
case 'double':
return $this->renderNumber( $node );
break;
case 'string':
return $this->renderString( $node );
break;
case 'null':
case 'resource':
return $this->renderNull( $node );
break;
case 'boolean':
return $this->renderBoolean( $node );
break;
case 'method':
return $this->renderMethod( $node );
break;
case 'methods':
case 'properties':
return $this->renderMethProp( $node );
break;
case 'message':
return $this->renderMessage( $node );
break;
default:
return $this->renderObjArray( $node );
break;
}
}
function renderObjArray( & $node ) {
global $node_id;
$children = count( $node['children'] );
$output = '';
$output .= '<li class="' . $node['type'] .
'.gif">';
$output .= '<a href="#" id="a' . ++$node_id .
'">' ;
$output .= '<span class="dumpType"> [';
$output .= ( isset( $node['classname'] ) ?
$node['classname'] . ' ' : '' );
$output .= $node['type'];
$output .= ']</span> ';
$output .= $node['name'];
$output .= $this->renderSource( $node );
$output .= $children ? '' : ' =
<i>(empty)</i>';
$output .= '</a>';
if ( $children ) {
$output .= '<ul>';
foreach( $node['children'] as $child ) {
$output .= $this->renderNode( $child );
}
$output .= '</ul>';
}
$output .= '</li>';
return $output;
}
function renderNull( & $node ) {
global $node_id;
$output = '';
$output .= '<li class="' . $node['type'] .
'.gif">';
$output .= '<a href="#" id="node_' .
++$node_id . '">' ;
$output .= '<span class="dumpType"> ['.
$node['type'] . ']</span> ';
$output .= $node['name'];
$output .= $this->renderSource( $node );
$output .= '</a>';
$output .= '</li>';
return $output;
}
function renderNumber( & $node ) {
global $node_id;
$output = '';
$output .= '<li class="' . $node['type'] .
'.gif">';
$output .= '<a href="#" id="node_' .
++$node_id . '">' ;
$output .= '<span class="dumpType"> ['.
$node['type'] . ']</span> ';
$output .= $node['name'];
$output .= ' = ' . $node['value'];
$output .= $this->renderSource( $node );
$output .= '</a>';
$output .= '</li>';
return $output;
}
function renderBoolean( & $node ) {
global $node_id;
$output = '';
$output .= '<li class="' . $node['type'] .
'.gif">';
$output .= '<a href="#" id="node_' .
++$node_id . '">' ;
$output .= '<span class="dumpType"> ['.
$node['type'] . ']</span> ';
$output .= $node['name'];
$output .= $this->renderSource( $node );
$output .= ' = ' . ( $node['value'] ?
'TRUE' : 'FALSE' );
$output .= $this->renderSource( $node );
$output .= '</a>';
$output .= '</li>';
return $output;
}
function renderString( & $node ) {
global $node_id;
$output = '';
$output .= '<li class="' . $node['type'] .
'.gif">';
$output .= '<a href="#" id="node_' .
++$node_id . '">' ;
$output .= '<span class="dumpType"> ['.
$node['type'] . ']</span> ';
$output .= $node['name'];
$output .= ' = "' . nl2br(htmlspecialchars(
$node['value'] , ENT_QUOTES ) ). '"';
if ( isset($node['length']) ) { $output .= ' <span
class="dumpString">(Length =
'.intval($node['length']).')</span>'; }
$output .= $this->renderSource( $node );
$output .= '</a>';
$output .= '</li>';
return $output;
}
function renderMessage( & $node ) {
global $node_id;
$output = '';
$output .= '<li class="' . $node['type'] .
'.gif">';
$output .= '<a href="#" id="node_' .
++$node_id . '">' ;
$output .=
'<i>'.$node['value'].'</i>';
$output .= $this->renderSource( $node );
$output .= '</a>';
$output .= '</li>';
return $output;
}
function renderMethod( & $node ) {
global $node_id;
$output = '';
$output .= '<li class="' . $node['type'] .
'.gif">';
$output .= '<a href="#" id="node_' .
++$node_id . '">' . $node['name'] .
'</a>';
$output .= '</li>';
return $output;
}
function renderMethProp( & $node ) {
global $node_id;
$output = '';
$output .= '<li class="' . $node['type'] .
'.gif">';
$output .= '<a href="#" id="node_' .
++$node_id . '">' . $node['name'] .
'</a>';
if ( count( $node['children'] ) ) {
$output .= '<ul>';
foreach( $node['children'] as $child ) {
$output .= $this->renderNode( $child );
}
$output .= '</ul>';
}
$output .= '</li>';
return $output;
}
function & renderSource( & $node ) {
$mainframe = JFactory::getApplication(); $option =
JRequest::getCmd('option');
$params = JComponentHelper::getParams('com_dump');
$output = '';
if ($node['source'] &&
$params->get('showOrigin', 1))
{
// next line doesn't work - bug in J?
//$output .= JCommonHTML::ToolTip($node['source'],
'Source');
$tooltip = '<span
class="tool-title">Source</span><br />';
$tooltip .= '<span class="tool-text">' .
$node['source'] . '</span>';
$tooltip = htmlspecialchars($tooltip);
$output .= ' <span class="hasTip"
width="600px" title="'.$tooltip.'"><img
src="'.DUMP_URL.'assets/images/content.png"
alt="Tooltip" border="0" width="12"
height="12" /></span>';
}
return $output;
}
}
PK.o�[%iJ���assets/css/component.cssnu�[���PK/o�[eO�tuu)assets/css/dump.cssnu�[���PK/o�[!5����!�assets/css/folder-tree-static.cssnu�[���PK/o�[�c.�<�<�
assets/css/general.cssnu�[���PK/o�[LnO��Kassets/images/array.gifnu�[���PK/o�[��/���Oassets/images/boolean.gifnu�[���PK/o�[9y���=Sassets/images/cancel_f2.pngnu�[���PK/o�[�_I�LL9Yassets/images/close.pngnu�[���PK/o�[��q����[assets/images/collapseall.pngnu�[���PK/o�[(�q���]assets/images/content.pngnu�[���PK/o�[~����$�`assets/images/dhtmlgoodies_minus.gifnu�[���PK0o�[�!J���#bassets/images/dhtmlgoodies_plus.gifnu�[���PK0o�[���mmcassets/images/double.gifnu�[���PK0o�[
�}>�fassets/images/expandall.pngnu�[���PK0o�[�,Vkqq8hassets/images/float.gifnu�[���PK0o�[��*yy�kassets/images/integer.gifnu�[���PK0o�["�8�!!�oassets/images/locked.pngnu�[���PK0o�[�^�x))rassets/images/message.gifnu�[���PK0o�[�ZG���tassets/images/method.gifnu�[���PK0o�[�M]<<dxassets/images/methods.gifnu�[���PK0o�[�G�kk�zassets/images/null.gifnu�[���PK0o�[�M]<<�~assets/images/object.gifnu�[���PK0o�[�M]<<�assets/images/properties.gifnu�[���PK0o�[Uv�����assets/images/refresh.pngnu�[���PK0o�[�դTgg��assets/images/resource.gifnu�[���PK0o�[�!��||P�assets/images/string.gifnu�[���PK1o�[�=�^^�assets/images/unlocked.pngnu�[���PK1o�[�J&����assets/js/dump.jsnu�[���PK1o�[�@�&,&,assets/js/folder-tree-static.jsnu�[���PK1o�[l���-<-<7�assets/js/joomla.javascript.jsnu�[���PK1o�[����"�"��assets/js/mootools.jsnu�[���PK1o�[��q���
�
config.xmlnu�[���PK1o�[�"[����&controller.phpnu�[���PK2o�[����,defines.phpnu�[���PK2o�[���/dump.phpnu�[���PK2o�[�0y00�2dump.xmlnu�[���PK2o�[�b��?
?
U7helper.phpnu�[���PK2o�[�?��??�Dmodels/tree.phpnu�[���PK2o�[o�x-LHnode.phpnu�[���PK2o�[���#���Ssysinfo.phpnu�[���PK2o�[q-ʮ��y[views/about/tmpl/default.phpnu�[���PK2o�[{�����mviews/about/view.html.phpnu�[���PK2o�[m����pviews/tree/tmpl/default.phpnu�[���PK3o�[x4�݈�#|views/tree/view.raw.phpnu�[���PK,,��