[REMOVED] mmcFE Theme dropped from project

This fixes #874 once merged.

It will require a couple of tests by other users to ensure that
MPOS is not affected (via hard-linked URLs for example).
This commit is contained in:
Sebastian Grewe 2013-12-03 10:00:15 +01:00
parent e66975c77d
commit 34a083fa1c
165 changed files with 0 additions and 5687 deletions

View File

@ -1,149 +0,0 @@
/* Some resets for compatibility with existing CSS */
.date_selector, .date_selector * {
width: auto;
height: auto;
border: none;
background: none;
margin: 0;
padding: 0;
text-align: left;
text-decoration: none;
}
.date_selector {
background: #fbfbfb;
border: 1px solid #ccc;
padding: 10px;
margin: 0;
margin-top: -1px;
position: absolute;
z-index: 100000;
display: none;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
box-shadow: 0 0 5px #aaa;
-moz-box-shadow: 0 0 5px #aaa;
-webkit-box-shadow: 0 0 5px #aaa;
}
.date_selector_ieframe {
position: absolute;
z-index: 99999;
display: none;
}
.date_selector .nav {
width: 17.5em; /* 7 * 2.5em */
}
.date_selector .nav p { clear: none; }
.date_selector .month_nav, .date_selector .year_nav {
margin: 0 0 3px 0;
padding: 0;
display: block;
position: relative;
text-align: center;
}
.date_selector .month_nav {
float: left;
width: 55%;
}
.date_selector .year_nav {
float: right;
width: 42%;
margin-right: -8px; /* Compensates for cell borders */
}
.date_selector .month_name, .date_selector .year_name {
font-weight: bold;
line-height: 20px;
}
.date_selector .button {
display: block;
position: absolute;
top: 0;
width: 18px;
height: 18px;
line-height: 16px;
font-weight: bold;
color: #008ee8;
text-align: center;
font-size: 12px;
overflow: hidden;
border: 1px solid #ccc;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
}
.date_selector .button:hover, .date_selector .button.hover {
background: #ed9c35;
color: #fff;
cursor: pointer;
border-color: #d77011;
}
.date_selector .prev {
left: 0;
}
.date_selector .next {
right: 0;
}
.date_selector table {
border-spacing: 0;
border-collapse: collapse;
clear: both;
margin: 0;
}
.date_selector th, .date_selector td {
width: 2.5em;
height: 2em;
padding: 0 !important;
text-align: center !important;
color: #666;
font-weight: normal;
}
.date_selector th {
font-size: 11px;
}
.date_selector td {
border: 1px solid #ccc;
line-height: 2em;
text-align: center;
white-space: nowrap;
color: #008ee8;
background: #fff;
}
.date_selector td.today {
background: #eee;
}
.date_selector td.unselected_month {
color: #ccc;
}
.date_selector td.selectable_day {
cursor: pointer;
}
.date_selector td.selected {
background: #008ee8;
color: #fff;
font-weight: bold;
}
.date_selector td.selectable_day:hover, .date_selector td.selectable_day.hover {
background: #ec8526;
color: #fff;
}

View File

@ -1,83 +0,0 @@
#facebox .b { background:url(../images/b.png); }
#facebox .tl { background:url(../images/tl.png); }
#facebox .tr { background:url(../images/tr.png); }
#facebox .bl { background:url(../images/bl.png); }
#facebox .br { background:url(../images/br.png); }
#facebox {
position: absolute;
top: 0;
left: 0;
z-index: 100;
text-align: left;
}
#facebox .popup {
position: relative;
}
#facebox table {
border-collapse: collapse;
}
#facebox td {
border-bottom: 0;
padding: 0;
}
#facebox .body {
padding: 10px;
background: #fff;
width: auto !important;
width: 400px;
min-width: 400px;
}
#facebox .loading {
text-align: center;
}
#facebox .image {
text-align: center;
}
#facebox img {
border: 0;
margin: 0;
}
#facebox .footer {
border-top: 1px solid #DDDDDD;
padding-top: 5px;
margin-top: 10px;
text-align: right;
}
#facebox .tl, #facebox .tr, #facebox .bl, #facebox .br {
height: 10px;
width: 10px;
overflow: hidden;
padding: 0;
}
#facebox_overlay {
position: fixed;
top: 0px;
left: 0px;
height:100%;
width:100%;
}
.facebox_hide {
z-index:-100;
}
.facebox_overlayBG {
background-color: #000;
z-index: 99;
}
* html #facebox_overlay { /* ie6 hack */
position: absolute;
height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
}

View File

@ -1,39 +0,0 @@
.block { padding-bottom: 0 !important; }
.block form input.file { height: 19px; }
.block .visualize { margin-top: 30px; }
.block .visualize ul.visualize-key .visualize-key-color { margin-top: -2px; }
.block .block_content .imglist { padding-bottom: 20px; }
.block .block_content .imglist li img { top: 1px; }
.block .paggination.right,
.block .tableactions { padding-bottom: 0; }
.block,
*html .block .block_head,
*html .block .block_content,
*html .block .block_content form input,
*html .block .message,
*html .block .paggination,
*html .block .tableactions,
*html .block .block_content .imglist {
zoom: 1;
}
*html .wrapper { width:expression(document.body.clientWidth < 1024 ? "960px" : "90%" ); }
*html .bendl, *html .bendr { font-size: 1px; }
*html .block .block_content .imglist li { margin: 13px 24px 13px 3px; }
*html .block form .cmf-skinned-select { background: none; border: 0; padding: 0; }
*html #header #nav li:hover li a, #header #nav li.iehover li a { background: none; }
/* Navigation 2nd level */
*html #header #nav ul li { background: #1c1c1c; }
*html #header #nav ul li.iehover { background: #000; }
/* Navigation 3rd level */
*html #header #nav li.iehover li.iehover li a { background: #1c1c1c; }
*html #header #nav li.iehover li.iehover li a:hover,
*html #header #nav li.iehover li.iehover li.iehover a { background: #000; }
/* Navigation 4th level */
*html #header #nav li.iehover li.iehover li.iehover li a { background: #1c1c1c; }
*html #header #nav li.iehover li.iehover li.iehover li a:hover { background: #000; }

View File

@ -1,56 +0,0 @@
div.wysiwyg { border: 1px solid #bbb; padding: 0; background-color: #fefefe; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; width: 99.5% !important; }
div.wysiwyg * { margin: 0; padding: 0; outline: none; }
div.wysiwyg ul.panel { border-bottom: 1px solid #cccccc; background: #fafafa; float: left; width: 99.1%; padding: 5px; margin: 0; -webkit-border-top-left-radius: 3px; -webkit-border-top-right-radius: 3px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; }
div.wysiwyg ul.panel li { list-style-type: none; float: left; padding: 0; margin: 2px 2px 2px 0; background: none; height: 19px; overflow: hidden; }
div.wysiwyg ul.panel li.separator { height: 18px; margin: 3px 4px 0; border-left: 1px solid #cccccc; }
div.wysiwyg ul.panel li a { text-indent: -5000px; opacity: 0.85; filter:alpha(opacity=85); display: block; width: 16px; height: 16px; background: url('../images/../images/jquery.wysiwyg.gif') no-repeat -64px -80px; border: 0; cursor: pointer; padding: 0; margin: 1px; border: 1px solid #fafafa; }
div.wysiwyg ul.panel li a:hover, div.wysiwyg ul.panel li a.active { opacity: 1.00; filter:alpha(opacity=100); }
div.wysiwyg ul.panel li a.active { border: 1px solid #ddd; background-color: #fff; padding: 0; }
div.wysiwyg ul.panel li a.bold { background-position: 0 -17px; }
div.wysiwyg ul.panel li a.italic { background-position: -16px -17px; }
div.wysiwyg ul.panel li a.strikeThrough { background-position: -32px -17px; }
div.wysiwyg ul.panel li a.underline { background-position: -48px -16px; }
div.wysiwyg ul.panel li a.justifyLeft { background-position: 0 0; }
div.wysiwyg ul.panel li a.justifyCenter { background-position: -16px 0; }
div.wysiwyg ul.panel li a.justifyRight { background-position: -32px 0; }
div.wysiwyg ul.panel li a.justifyFull { background-position: -48px 0; }
div.wysiwyg ul.panel li a.indent { background-position: -64px 0; }
div.wysiwyg ul.panel li a.outdent { background-position: -80px 0; }
div.wysiwyg ul.panel li a.subscript { background-position: -64px -16px; }
div.wysiwyg ul.panel li a.superscript { background-position: -80px -16px; }
div.wysiwyg ul.panel li a.undo { background-position: 0 -63px; }
div.wysiwyg ul.panel li a.redo { background-position: -16px -65px; }
div.wysiwyg ul.panel li a.insertOrderedList { background-position: -32px -48px; }
div.wysiwyg ul.panel li a.insertUnorderedList { background-position: -16px -48px; }
div.wysiwyg ul.panel li a.insertHorizontalRule { background-position: 0 -48px; }
div.wysiwyg ul.panel li a.h1 { background-position: 0 -32px; }
div.wysiwyg ul.panel li a.h2 { background-position: -16px -32px; }
div.wysiwyg ul.panel li a.h3 { background-position: -32px -32px; }
div.wysiwyg ul.panel li a.h4 { background-position: -48px -32px; }
div.wysiwyg ul.panel li a.h5 { background-position: -64px -32px; }
div.wysiwyg ul.panel li a.h6 { background-position: -80px -32px; }
div.wysiwyg ul.panel li a.cut { background-position: -32px -64px; }
div.wysiwyg ul.panel li a.copy { background-position: -48px -64px; }
div.wysiwyg ul.panel li a.paste { background-position: -64px -64px; }
div.wysiwyg ul.panel li a.increaseFontSize { background-position: -16px -80px; }
div.wysiwyg ul.panel li a.decreaseFontSize { background-position: -32px -80px; }
div.wysiwyg ul.panel li a.createLink { background-position: -80px -48px; }
div.wysiwyg ul.panel li a.insertImage { background-position: -80px -80px; }
div.wysiwyg ul.panel li a.html { background-position: -47px -46px; }
div.wysiwyg ul.panel li a.removeFormat { background-position: -80px -64px; }
div.wysiwyg ul.panel li a.empty { background-position: -64px -80px; }
div.wysiwyg iframe { border: 0; clear: left; margin: 0; width: 100% !important; }

View File

@ -1,162 +0,0 @@
a:active,a:link,a:visited{
color:#000;
}
a:hover{
color:#000;
}
/*-----End of Defaults------*/
a.menu:active,a.menu:link,a.menu:visited{
color:#FFF;
font-weight:bold;
font-size:.975em;
text-align:center;
text-decoration: none;
}
a.menu:hover{
color:#aaa;
font-weight:bold;
font-size:.975em;
text-align:center;
text-decoration: none;
}
#siteinfo {
font-family: Verdana, Arial, sans-serif;
font-size: 20px;
font-weight: bold;
color: #000;
margin:5px;
margin-top:5px;
width:auto;
float:left;
}
.slogan {
font-family: Verdana, Arial, sans-serif;
font-size: 10px;
font-weight: bold;
color: #aA9A9A;
margin-left:12px;
margin-top:12px;
}
#ministats {
font-family: Verdana, Arial, sans-serif;
font-size: 10px;
font-weight: bold;
color: #000;
position:absolute;
right:5px;
top:22px;
float:right;
}
#ministats li {
font-size: 11px;
font-weight: bold;
color: #000;
}
#loginForm{
position:relative;
top:.5em;
left:.5em;
}
#lostPassForm{
position:relative;
top:0;
left: .5em;
}
#userInfo{
float: left;
background-color:#DDD;
width:15em;
height: 100%;
padding:.5em;
}
/*-----Text-----*/
span.goodMessage{
position:relative;
color:green;
font-weight:bold;
font-size:1em;
top:-5px;
}
span.returnMessage{
position:relative;
color:orange;
font-weight:bold;
font-size:1em;
top:-15px;
}
#content {
height:auto;
border-style: solid solid solid solid;
border-width:1px 1px 1px 1px;
border-color:BBC3D3;
white-space: normal;
padding: 1em;
margin-top:5px;
margin-left: 18.2em;
background-color: #FFF;
}
#stats_section {
border-style: solid solid solid solid;
border-width:1px 1px 1px 1px;
border-color:BBC3D3;
margin-bottom:10px;
background-color:#F8F8F9;
width: auto;
font-size:.9em;
height:auto;
padding:.5em;
padding-bottom:1.25em;
}
#generic_infobox {
border-style: solid solid solid solid;
border-width:1px 1px 1px 1px;
border-color:BBC3D3;
margin-bottom:5px;
background-color:#F8F8F9;
font-size:.9em;
width:98%;
height:auto;
padding:.5em;
padding-bottom:1.25em;
}
#search_infobox {
background-color:#F8F8F9;
line-height:10px;
overflow:none;
display: none;
}
.search_results {
display: inherit;
}
.tooltip {
display:none;
background:transparent url(site_assets/mmcFE/images/black_arrow.png);
font-size:11px;
height:70px;
width:160px;
padding:25px;
color:#fff;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,47 +0,0 @@
/*plugin styles*/
.block .visualize { border: 1px solid #bbb; position: relative; background: #fbfbfb; margin: 20px auto 40px auto; z-index: 1; }
.block .visualize canvas { position: absolute; }
.block .visualize ul, .block .visualize ul li { margin: 0; padding: 0; background: none; }
.block .visualize-bar { border-top: 0; }
/*table title, key elements*/
.block .visualize .visualize-info { padding: 0 0 2px 8px; background: #fafafa; border: 1px solid #aaa; position: absolute; top: -15px; right: 10px; font-size: 11px; }
.block .visualize .visualize-title { display: block; color: #333; margin-bottom: 3px; }
.block .visualize ul.visualize-key { list-style: none; }
.block .visualize ul.visualize-key li { list-style: none; float: left; margin-right: 10px; padding-left: 10px; position: relative;}
.block .visualize ul.visualize-key .visualize-key-color { width: 6px; height: 6px; left: 0; position: absolute; top: 50%; margin-top: -3px; font-size: 6px; }
.block .visualize ul.visualize-key .visualize-key-label { color: #333; }
/*pie labels*/
.visualize-pie .visualize-labels { list-style: none; }
.visualize-pie .visualize-label-pos, .visualize-pie .visualize-label { position: absolute; margin: 0; padding:0; }
.visualize-pie .visualize-label { display: block; color: #fff; font-weight: bold; font-size: 1em; }
.visualize-pie-outside .visualize-label { color: #000; font-weight: normal; }
/*line,bar, area labels*/
.block .visualize-labels-x,.visualize-labels-y { position: absolute; left: 0; top: 0; list-style: none; }
.block .visualize-labels-x li, .visualize-labels-y li { position: absolute; bottom: 0; }
.block .visualize-labels-x li span.label, .visualize-labels-y li span.label { position: absolute; color: #555; }
.block .visualize-labels-x li span.line, .visualize-labels-y li span.line { position: absolute; border: 0 solid #ccc; }
.block .visualize-labels-x li { height: 100%; font-size: 10px; }
.block .visualize-labels-x li span.label { top: 100%; margin-top: 15px; left:-10; -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); }
.block .visualize-labels-x li span.line { border-left-width: 1px; height: 100%; display: block; }
.block .visualize-labels-x li span.line { border: 0;} /*hide vertical lines on area, line, bar*/
.block .visualize-labels-y li { width: 100%; font-size: 11px; line-height: normal; }
.block .visualize-labels-y li span.label { right: 100%; margin-right: 5px; display: block; width: 100px; text-align: right; }
.block .visualize-labels-y li span.line { border-top-width: 1px; width: 100%; }
.block .visualize-bar .visualize-labels-x li span.label { width: 100%; text-align: center; }
/*tooltips*/
.block .visualize .chart_tooltip {
padding: 6px 7px;
background: #000;
background: url(../images/mbg.png) 0 0 repeat;
margin: 3px 4px 0;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
color: #ddd;
font-size: 10px;
line-height: normal;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 905 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 905 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 857 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 979 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 570 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 737 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 745 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 871 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 869 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 595 B

View File

@ -1,159 +0,0 @@
$(function () {
// CSS tweaks
$('#header #nav li:last').addClass('nobg');
$('.block_head ul').each(function () {
$('li:first', this).addClass('nobg');
});
$('.block form input[type=file]').addClass('file');
// Web stats
$('table.stats').each(function () {
if ($(this).attr('rel')) {
var statsType = $(this).attr('rel');
} else {
var statsType = 'area';
}
// hack to statically set width as something is broken with div width calculation - anni
var chart_width = $(document).width() - 400;
if (statsType == 'line' || statsType == 'pie') {
$(this).hide().visualize({
type: statsType,
// 'bar', 'area', 'pie', 'line'
width: chart_width,
height: '240px',
colors: ['#6fb9e8', '#ec8526', '#9dc453', '#ddd74c'],
lineDots: 'double',
interaction: true,
multiHover: 5,
tooltip: true,
tooltiphtml: function (data) {
var html = '';
for (var i = 0; i < data.point.length; i++) {
html += '<p class="chart_tooltip"><strong>' + data.point[i].value + '</strong> ' + data.point[i].yLabels[0] + '</p>';
}
return html;
}
});
} else {
$(this).hide().visualize({
// 'bar', 'area', 'pie', 'line'
width: chart_width,
type: statsType,
height: '240px',
colors: ['#6fb9e8', '#ec8526', '#9dc453', '#ddd74c']
});
}
});
// Sort table
$("table.sortable").tablesorter({
headers: {
0: {
//sorter: false
},
5: {
//sorter: false
}
},
// Disabled on the 1st and 6th columns
widgets: ['zebra']
});
$("table.pagesort")
.tablesorter({ widgets: ['zebra'] })
.tablesorterPager({ positionFixed: false, container: $("#pager") });
$("table.pagesort2")
.tablesorter({ widgets: ['zebra'] })
.tablesorterPager({ positionFixed: false, container: $("#pager2") });
$("table.pagesort4")
.tablesorter({ widgets: ['zebra'] })
.tablesorterPager({ positionFixed: false, container: $("#pager3") });
$('.block table tr th.header').css('cursor', 'pointer');
// Check / uncheck all checkboxes
$('.check_all').click(function () {
$(this).parents('form').find('input:checkbox').attr('checked', $(this).is(':checked'));
});
// Messages
$('.block .message').hide().append('<span class="close" title="Dismiss"></span>').fadeIn('slow');
$('.block .message .close').hover(
function () {
$(this).addClass('hover');
}, function () {
$(this).removeClass('hover');
});
$('.block .message .close').click(function () {
$(this).parent().fadeOut('slow', function () {
$(this).remove();
});
});
// Tabs
$(".tab_content").hide();
$("ul.tabs li:first-child").addClass("active").show();
$(".block").find(".tab_content:first").show();
$("ul.tabs li").click(function () {
$(this).parent().find('li').removeClass("active");
$(this).addClass("active");
$(this).parents('.block').find(".tab_content").hide();
var activeTab = $(this).find("a").attr("href");
$(activeTab).show();
// refresh visualize for IE
$(activeTab).find('.visualize').trigger('visualizeRefresh');
return false;
});
// Sidebar Tabs
$(".sidebar_content").hide();
if (window.location.hash && window.location.hash.match('sb')) {
$("ul.sidemenu li a[href=" + window.location.hash + "]").parent().addClass("active").show();
$(".block .sidebar_content#" + window.location.hash).show();
} else {
$("ul.sidemenu li:first-child").addClass("active").show();
$(".block .sidebar_content:first").show();
}
$("ul.sidemenu li").click(function () {
var activeTab = $(this).find("a").attr("href");
window.location.hash = activeTab;
$(this).parent().find('li').removeClass("active");
$(this).addClass("active");
$(this).parents('.block').find(".sidebar_content").hide();
$(activeTab).show();
return false;
});
// Block search
$('.block .block_head form .text').bind('click', function () {
$(this).attr('value', '');
});
// Navigation dropdown fix for IE6
if (jQuery.browser.version.substr(0, 1) < 7) {
$('#header #nav li').hover(
function () {
$(this).addClass('iehover');
}, function () {
$(this).removeClass('iehover');
});
}
});

View File

@ -1,36 +0,0 @@
// Copyright 2006 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
document.createElement("canvas").getContext||(function(){var s=Math,j=s.round,F=s.sin,G=s.cos,V=s.abs,W=s.sqrt,k=10,v=k/2;function X(){return this.context_||(this.context_=new H(this))}var L=Array.prototype.slice;function Y(b,a){var c=L.call(arguments,2);return function(){return b.apply(a,c.concat(L.call(arguments)))}}var M={init:function(b){if(/MSIE/.test(navigator.userAgent)&&!window.opera){var a=b||document;a.createElement("canvas");a.attachEvent("onreadystatechange",Y(this.init_,this,a))}},init_:function(b){b.namespaces.g_vml_||
b.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml","#default#VML");b.namespaces.g_o_||b.namespaces.add("g_o_","urn:schemas-microsoft-com:office:office","#default#VML");if(!b.styleSheets.ex_canvas_){var a=b.createStyleSheet();a.owningElement.id="ex_canvas_";a.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\:*{behavior:url(#default#VML)}g_o_\\:*{behavior:url(#default#VML)}"}var c=b.getElementsByTagName("canvas"),d=0;for(;d<c.length;d++)this.initElement(c[d])},
initElement:function(b){if(!b.getContext){b.getContext=X;b.innerHTML="";b.attachEvent("onpropertychange",Z);b.attachEvent("onresize",$);var a=b.attributes;if(a.width&&a.width.specified)b.style.width=a.width.nodeValue+"px";else b.width=b.clientWidth;if(a.height&&a.height.specified)b.style.height=a.height.nodeValue+"px";else b.height=b.clientHeight}return b}};function Z(b){var a=b.srcElement;switch(b.propertyName){case "width":a.style.width=a.attributes.width.nodeValue+"px";a.getContext().clearRect();
break;case "height":a.style.height=a.attributes.height.nodeValue+"px";a.getContext().clearRect();break}}function $(b){var a=b.srcElement;if(a.firstChild){a.firstChild.style.width=a.clientWidth+"px";a.firstChild.style.height=a.clientHeight+"px"}}M.init();var N=[],B=0;for(;B<16;B++){var C=0;for(;C<16;C++)N[B*16+C]=B.toString(16)+C.toString(16)}function I(){return[[1,0,0],[0,1,0],[0,0,1]]}function y(b,a){var c=I(),d=0;for(;d<3;d++){var f=0;for(;f<3;f++){var h=0,g=0;for(;g<3;g++)h+=b[d][g]*a[g][f];c[d][f]=
h}}return c}function O(b,a){a.fillStyle=b.fillStyle;a.lineCap=b.lineCap;a.lineJoin=b.lineJoin;a.lineWidth=b.lineWidth;a.miterLimit=b.miterLimit;a.shadowBlur=b.shadowBlur;a.shadowColor=b.shadowColor;a.shadowOffsetX=b.shadowOffsetX;a.shadowOffsetY=b.shadowOffsetY;a.strokeStyle=b.strokeStyle;a.globalAlpha=b.globalAlpha;a.arcScaleX_=b.arcScaleX_;a.arcScaleY_=b.arcScaleY_;a.lineScale_=b.lineScale_}function P(b){var a,c=1;b=String(b);if(b.substring(0,3)=="rgb"){var d=b.indexOf("(",3),f=b.indexOf(")",d+
1),h=b.substring(d+1,f).split(",");a="#";var g=0;for(;g<3;g++)a+=N[Number(h[g])];if(h.length==4&&b.substr(3,1)=="a")c=h[3]}else a=b;return{color:a,alpha:c}}function aa(b){switch(b){case "butt":return"flat";case "round":return"round";case "square":default:return"square"}}function H(b){this.m_=I();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.fillStyle=this.strokeStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=k*1;this.globalAlpha=1;this.canvas=b;
var a=b.ownerDocument.createElement("div");a.style.width=b.clientWidth+"px";a.style.height=b.clientHeight+"px";a.style.overflow="hidden";a.style.position="absolute";b.appendChild(a);this.element_=a;this.lineScale_=this.arcScaleY_=this.arcScaleX_=1}var i=H.prototype;i.clearRect=function(){this.element_.innerHTML=""};i.beginPath=function(){this.currentPath_=[]};i.moveTo=function(b,a){var c=this.getCoords_(b,a);this.currentPath_.push({type:"moveTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};
i.lineTo=function(b,a){var c=this.getCoords_(b,a);this.currentPath_.push({type:"lineTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};i.bezierCurveTo=function(b,a,c,d,f,h){var g=this.getCoords_(f,h),l=this.getCoords_(b,a),e=this.getCoords_(c,d);Q(this,l,e,g)};function Q(b,a,c,d){b.currentPath_.push({type:"bezierCurveTo",cp1x:a.x,cp1y:a.y,cp2x:c.x,cp2y:c.y,x:d.x,y:d.y});b.currentX_=d.x;b.currentY_=d.y}i.quadraticCurveTo=function(b,a,c,d){var f=this.getCoords_(b,a),h=this.getCoords_(c,d),g={x:this.currentX_+
0.6666666666666666*(f.x-this.currentX_),y:this.currentY_+0.6666666666666666*(f.y-this.currentY_)};Q(this,g,{x:g.x+(h.x-this.currentX_)/3,y:g.y+(h.y-this.currentY_)/3},h)};i.arc=function(b,a,c,d,f,h){c*=k;var g=h?"at":"wa",l=b+G(d)*c-v,e=a+F(d)*c-v,m=b+G(f)*c-v,r=a+F(f)*c-v;if(l==m&&!h)l+=0.125;var n=this.getCoords_(b,a),o=this.getCoords_(l,e),q=this.getCoords_(m,r);this.currentPath_.push({type:g,x:n.x,y:n.y,radius:c,xStart:o.x,yStart:o.y,xEnd:q.x,yEnd:q.y})};i.rect=function(b,a,c,d){this.moveTo(b,
a);this.lineTo(b+c,a);this.lineTo(b+c,a+d);this.lineTo(b,a+d);this.closePath()};i.strokeRect=function(b,a,c,d){var f=this.currentPath_;this.beginPath();this.moveTo(b,a);this.lineTo(b+c,a);this.lineTo(b+c,a+d);this.lineTo(b,a+d);this.closePath();this.stroke();this.currentPath_=f};i.fillRect=function(b,a,c,d){var f=this.currentPath_;this.beginPath();this.moveTo(b,a);this.lineTo(b+c,a);this.lineTo(b+c,a+d);this.lineTo(b,a+d);this.closePath();this.fill();this.currentPath_=f};i.createLinearGradient=function(b,
a,c,d){var f=new D("gradient");f.x0_=b;f.y0_=a;f.x1_=c;f.y1_=d;return f};i.createRadialGradient=function(b,a,c,d,f,h){var g=new D("gradientradial");g.x0_=b;g.y0_=a;g.r0_=c;g.x1_=d;g.y1_=f;g.r1_=h;return g};i.drawImage=function(b){var a,c,d,f,h,g,l,e,m=b.runtimeStyle.width,r=b.runtimeStyle.height;b.runtimeStyle.width="auto";b.runtimeStyle.height="auto";var n=b.width,o=b.height;b.runtimeStyle.width=m;b.runtimeStyle.height=r;if(arguments.length==3){a=arguments[1];c=arguments[2];h=g=0;l=d=n;e=f=o}else if(arguments.length==
5){a=arguments[1];c=arguments[2];d=arguments[3];f=arguments[4];h=g=0;l=n;e=o}else if(arguments.length==9){h=arguments[1];g=arguments[2];l=arguments[3];e=arguments[4];a=arguments[5];c=arguments[6];d=arguments[7];f=arguments[8]}else throw Error("Invalid number of arguments");var q=this.getCoords_(a,c),t=[];t.push(" <g_vml_:group",' coordsize="',k*10,",",k*10,'"',' coordorigin="0,0"',' style="width:',10,"px;height:",10,"px;position:absolute;");if(this.m_[0][0]!=1||this.m_[0][1]){var E=[];E.push("M11=",
this.m_[0][0],",","M12=",this.m_[1][0],",","M21=",this.m_[0][1],",","M22=",this.m_[1][1],",","Dx=",j(q.x/k),",","Dy=",j(q.y/k),"");var p=q,z=this.getCoords_(a+d,c),w=this.getCoords_(a,c+f),x=this.getCoords_(a+d,c+f);p.x=s.max(p.x,z.x,w.x,x.x);p.y=s.max(p.y,z.y,w.y,x.y);t.push("padding:0 ",j(p.x/k),"px ",j(p.y/k),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",E.join(""),", sizingmethod='clip');")}else t.push("top:",j(q.y/k),"px;left:",j(q.x/k),"px;");t.push(' ">','<g_vml_:image src="',b.src,
'"',' style="width:',k*d,"px;"," height:",k*f,'px;"',' cropleft="',h/n,'"',' croptop="',g/o,'"',' cropright="',(n-h-l)/n,'"',' cropbottom="',(o-g-e)/o,'"'," />","</g_vml_:group>");this.element_.insertAdjacentHTML("BeforeEnd",t.join(""))};i.stroke=function(b){var a=[],c=P(b?this.fillStyle:this.strokeStyle),d=c.color,f=c.alpha*this.globalAlpha;a.push("<g_vml_:shape",' filled="',!!b,'"',' style="position:absolute;width:',10,"px;height:",10,'px;"',' coordorigin="0 0" coordsize="',k*10," ",k*10,'"',' stroked="',
!b,'"',' path="');var h={x:null,y:null},g={x:null,y:null},l=0;for(;l<this.currentPath_.length;l++){var e=this.currentPath_[l];switch(e.type){case "moveTo":a.push(" m ",j(e.x),",",j(e.y));break;case "lineTo":a.push(" l ",j(e.x),",",j(e.y));break;case "close":a.push(" x ");e=null;break;case "bezierCurveTo":a.push(" c ",j(e.cp1x),",",j(e.cp1y),",",j(e.cp2x),",",j(e.cp2y),",",j(e.x),",",j(e.y));break;case "at":case "wa":a.push(" ",e.type," ",j(e.x-this.arcScaleX_*e.radius),",",j(e.y-this.arcScaleY_*e.radius),
" ",j(e.x+this.arcScaleX_*e.radius),",",j(e.y+this.arcScaleY_*e.radius)," ",j(e.xStart),",",j(e.yStart)," ",j(e.xEnd),",",j(e.yEnd));break}if(e){if(h.x==null||e.x<h.x)h.x=e.x;if(g.x==null||e.x>g.x)g.x=e.x;if(h.y==null||e.y<h.y)h.y=e.y;if(g.y==null||e.y>g.y)g.y=e.y}}a.push(' ">');if(b)if(typeof this.fillStyle=="object"){var m=this.fillStyle,r=0,n={x:0,y:0},o=0,q=1;if(m.type_=="gradient"){var t=m.x1_/this.arcScaleX_,E=m.y1_/this.arcScaleY_,p=this.getCoords_(m.x0_/this.arcScaleX_,m.y0_/this.arcScaleY_),
z=this.getCoords_(t,E);r=Math.atan2(z.x-p.x,z.y-p.y)*180/Math.PI;if(r<0)r+=360;if(r<1.0E-6)r=0}else{var p=this.getCoords_(m.x0_,m.y0_),w=g.x-h.x,x=g.y-h.y;n={x:(p.x-h.x)/w,y:(p.y-h.y)/x};w/=this.arcScaleX_*k;x/=this.arcScaleY_*k;var R=s.max(w,x);o=2*m.r0_/R;q=2*m.r1_/R-o}var u=m.colors_;u.sort(function(ba,ca){return ba.offset-ca.offset});var J=u.length,da=u[0].color,ea=u[J-1].color,fa=u[0].alpha*this.globalAlpha,ga=u[J-1].alpha*this.globalAlpha,S=[],l=0;for(;l<J;l++){var T=u[l];S.push(T.offset*q+
o+" "+T.color)}a.push('<g_vml_:fill type="',m.type_,'"',' method="none" focus="100%"',' color="',da,'"',' color2="',ea,'"',' colors="',S.join(","),'"',' opacity="',ga,'"',' g_o_:opacity2="',fa,'"',' angle="',r,'"',' focusposition="',n.x,",",n.y,'" />')}else a.push('<g_vml_:fill color="',d,'" opacity="',f,'" />');else{var K=this.lineScale_*this.lineWidth;if(K<1)f*=K;a.push("<g_vml_:stroke",' opacity="',f,'"',' joinstyle="',this.lineJoin,'"',' miterlimit="',this.miterLimit,'"',' endcap="',aa(this.lineCap),
'"',' weight="',K,'px"',' color="',d,'" />')}a.push("</g_vml_:shape>");this.element_.insertAdjacentHTML("beforeEnd",a.join(""))};i.fill=function(){this.stroke(true)};i.closePath=function(){this.currentPath_.push({type:"close"})};i.getCoords_=function(b,a){var c=this.m_;return{x:k*(b*c[0][0]+a*c[1][0]+c[2][0])-v,y:k*(b*c[0][1]+a*c[1][1]+c[2][1])-v}};i.save=function(){var b={};O(this,b);this.aStack_.push(b);this.mStack_.push(this.m_);this.m_=y(I(),this.m_)};i.restore=function(){O(this.aStack_.pop(),
this);this.m_=this.mStack_.pop()};function ha(b){var a=0;for(;a<3;a++){var c=0;for(;c<2;c++)if(!isFinite(b[a][c])||isNaN(b[a][c]))return false}return true}function A(b,a,c){if(!!ha(a)){b.m_=a;if(c)b.lineScale_=W(V(a[0][0]*a[1][1]-a[0][1]*a[1][0]))}}i.translate=function(b,a){A(this,y([[1,0,0],[0,1,0],[b,a,1]],this.m_),false)};i.rotate=function(b){var a=G(b),c=F(b);A(this,y([[a,c,0],[-c,a,0],[0,0,1]],this.m_),false)};i.scale=function(b,a){this.arcScaleX_*=b;this.arcScaleY_*=a;A(this,y([[b,0,0],[0,a,
0],[0,0,1]],this.m_),true)};i.transform=function(b,a,c,d,f,h){A(this,y([[b,a,0],[c,d,0],[f,h,1]],this.m_),true)};i.setTransform=function(b,a,c,d,f,h){A(this,[[b,a,0],[c,d,0],[f,h,1]],true)};i.clip=function(){};i.arcTo=function(){};i.createPattern=function(){return new U};function D(b){this.type_=b;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}D.prototype.addColorStop=function(b,a){a=P(a);this.colors_.push({offset:b,color:a.color,alpha:a.alpha})};function U(){}G_vmlCanvasManager=
M;CanvasRenderingContext2D=H;CanvasGradient=D;CanvasPattern=U})();

File diff suppressed because one or more lines are too long

View File

@ -1,49 +0,0 @@
(function( jQuery, window, undefined ) {
"use strict";
var matched, browser;
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();
var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];
var platform_match = /(ipad)/.exec( ua ) ||
/(iphone)/.exec( ua ) ||
/(android)/.exec( ua ) ||
[];
return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0",
platform: platform_match[0] || ""
};
};
matched = jQuery.uaMatch( window.navigator.userAgent );
browser = {};
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
}
if ( matched.platform) {
browser[ matched.platform ] = true
}
// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}
jQuery.browser = browser;
})( jQuery, window );

View File

@ -1,28 +0,0 @@
(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=0;this.dataCache=null;this.dataList=[]}function q(a,c){if(void 0==a.length)throw Error(a.length+"/"+c);for(var d=0;d<a.length&&0==a[d];)d++;this.num=Array(a.length-d+c);for(var b=0;b<a.length-d;b++)this.num[b]=a[b+d]}function p(a,c){this.totalCount=a;this.dataCount=c}function t(){this.buffer=[];this.length=0}u.prototype={getLength:function(){return this.data.length},
write:function(a){for(var c=0;c<this.data.length;c++)a.put(this.data.charCodeAt(c),8)}};o.prototype={addData:function(a){this.dataList.push(new u(a));this.dataCache=null},isDark:function(a,c){if(0>a||this.moduleCount<=a||0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var a=1,a=1;40>a;a++){for(var c=p.getRSBlocks(a,this.errorCorrectLevel),d=new t,b=0,e=0;e<c.length;e++)b+=c[e].dataCount;
for(e=0;e<this.dataList.length;e++)c=this.dataList[e],d.put(c.mode,4),d.put(c.getLength(),j.getLengthInBits(c.mode,a)),c.write(d);if(d.getLengthInBits()<=8*b)break}this.typeNumber=a}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17;this.modules=Array(this.moduleCount);for(var d=0;d<this.moduleCount;d++){this.modules[d]=Array(this.moduleCount);for(var b=0;b<this.moduleCount;b++)this.modules[d][b]=null}this.setupPositionProbePattern(0,0);this.setupPositionProbePattern(this.moduleCount-
7,0);this.setupPositionProbePattern(0,this.moduleCount-7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(a,c);7<=this.typeNumber&&this.setupTypeNumber(a);null==this.dataCache&&(this.dataCache=o.createData(this.typeNumber,this.errorCorrectLevel,this.dataList));this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,c){for(var d=-1;7>=d;d++)if(!(-1>=a+d||this.moduleCount<=a+d))for(var b=-1;7>=b;b++)-1>=c+b||this.moduleCount<=c+b||(this.modules[a+d][c+b]=
0<=d&&6>=d&&(0==b||6==b)||0<=b&&6>=b&&(0==d||6==d)||2<=d&&4>=d&&2<=b&&4>=b?!0:!1)},getBestMaskPattern:function(){for(var a=0,c=0,d=0;8>d;d++){this.makeImpl(!0,d);var b=j.getLostPoint(this);if(0==d||a>b)a=b,c=d}return c},createMovieClip:function(a,c,d){a=a.createEmptyMovieClip(c,d);this.make();for(c=0;c<this.modules.length;c++)for(var d=1*c,b=0;b<this.modules[c].length;b++){var e=1*b;this.modules[c][b]&&(a.beginFill(0,100),a.moveTo(e,d),a.lineTo(e+1,d),a.lineTo(e+1,d+1),a.lineTo(e,d+1),a.endFill())}return a},
setupTimingPattern:function(){for(var a=8;a<this.moduleCount-8;a++)null==this.modules[a][6]&&(this.modules[a][6]=0==a%2);for(a=8;a<this.moduleCount-8;a++)null==this.modules[6][a]&&(this.modules[6][a]=0==a%2)},setupPositionAdjustPattern:function(){for(var a=j.getPatternPosition(this.typeNumber),c=0;c<a.length;c++)for(var d=0;d<a.length;d++){var b=a[c],e=a[d];if(null==this.modules[b][e])for(var f=-2;2>=f;f++)for(var i=-2;2>=i;i++)this.modules[b+f][e+i]=-2==f||2==f||-2==i||2==i||0==f&&0==i?!0:!1}},setupTypeNumber:function(a){for(var c=
j.getBCHTypeNumber(this.typeNumber),d=0;18>d;d++){var b=!a&&1==(c>>d&1);this.modules[Math.floor(d/3)][d%3+this.moduleCount-8-3]=b}for(d=0;18>d;d++)b=!a&&1==(c>>d&1),this.modules[d%3+this.moduleCount-8-3][Math.floor(d/3)]=b},setupTypeInfo:function(a,c){for(var d=j.getBCHTypeInfo(this.errorCorrectLevel<<3|c),b=0;15>b;b++){var e=!a&&1==(d>>b&1);6>b?this.modules[b][8]=e:8>b?this.modules[b+1][8]=e:this.modules[this.moduleCount-15+b][8]=e}for(b=0;15>b;b++)e=!a&&1==(d>>b&1),8>b?this.modules[8][this.moduleCount-
b-1]=e:9>b?this.modules[8][15-b-1+1]=e:this.modules[8][15-b-1]=e;this.modules[this.moduleCount-8][8]=!a},mapData:function(a,c){for(var d=-1,b=this.moduleCount-1,e=7,f=0,i=this.moduleCount-1;0<i;i-=2)for(6==i&&i--;;){for(var g=0;2>g;g++)if(null==this.modules[b][i-g]){var n=!1;f<a.length&&(n=1==(a[f]>>>e&1));j.getMask(c,b,i-g)&&(n=!n);this.modules[b][i-g]=n;e--; -1==e&&(f++,e=7)}b+=d;if(0>b||this.moduleCount<=b){b-=d;d=-d;break}}}};o.PAD0=236;o.PAD1=17;o.createData=function(a,c,d){for(var c=p.getRSBlocks(a,
c),b=new t,e=0;e<d.length;e++){var f=d[e];b.put(f.mode,4);b.put(f.getLength(),j.getLengthInBits(f.mode,a));f.write(b)}for(e=a=0;e<c.length;e++)a+=c[e].dataCount;if(b.getLengthInBits()>8*a)throw Error("code length overflow. ("+b.getLengthInBits()+">"+8*a+")");for(b.getLengthInBits()+4<=8*a&&b.put(0,4);0!=b.getLengthInBits()%8;)b.putBit(!1);for(;!(b.getLengthInBits()>=8*a);){b.put(o.PAD0,8);if(b.getLengthInBits()>=8*a)break;b.put(o.PAD1,8)}return o.createBytes(b,c)};o.createBytes=function(a,c){for(var d=
0,b=0,e=0,f=Array(c.length),i=Array(c.length),g=0;g<c.length;g++){var n=c[g].dataCount,h=c[g].totalCount-n,b=Math.max(b,n),e=Math.max(e,h);f[g]=Array(n);for(var k=0;k<f[g].length;k++)f[g][k]=255&a.buffer[k+d];d+=n;k=j.getErrorCorrectPolynomial(h);n=(new q(f[g],k.getLength()-1)).mod(k);i[g]=Array(k.getLength()-1);for(k=0;k<i[g].length;k++)h=k+n.getLength()-i[g].length,i[g][k]=0<=h?n.get(h):0}for(k=g=0;k<c.length;k++)g+=c[k].totalCount;d=Array(g);for(k=n=0;k<b;k++)for(g=0;g<c.length;g++)k<f[g].length&&
(d[n++]=f[g][k]);for(k=0;k<e;k++)for(g=0;g<c.length;g++)k<i[g].length&&(d[n++]=i[g][k]);return d};s=4;for(var j={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,
78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(a){for(var c=a<<10;0<=j.getBCHDigit(c)-j.getBCHDigit(j.G15);)c^=j.G15<<j.getBCHDigit(c)-j.getBCHDigit(j.G15);return(a<<10|c)^j.G15_MASK},getBCHTypeNumber:function(a){for(var c=a<<12;0<=j.getBCHDigit(c)-
j.getBCHDigit(j.G18);)c^=j.G18<<j.getBCHDigit(c)-j.getBCHDigit(j.G18);return a<<12|c},getBCHDigit:function(a){for(var c=0;0!=a;)c++,a>>>=1;return c},getPatternPosition:function(a){return j.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,c,d){switch(a){case 0:return 0==(c+d)%2;case 1:return 0==c%2;case 2:return 0==d%3;case 3:return 0==(c+d)%3;case 4:return 0==(Math.floor(c/2)+Math.floor(d/3))%2;case 5:return 0==c*d%2+c*d%3;case 6:return 0==(c*d%2+c*d%3)%2;case 7:return 0==(c*d%3+(c+d)%2)%2;default:throw Error("bad maskPattern:"+
a);}},getErrorCorrectPolynomial:function(a){for(var c=new q([1],0),d=0;d<a;d++)c=c.multiply(new q([1,l.gexp(d)],0));return c},getLengthInBits:function(a,c){if(1<=c&&10>c)switch(a){case 1:return 10;case 2:return 9;case s:return 8;case 8:return 8;default:throw Error("mode:"+a);}else if(27>c)switch(a){case 1:return 12;case 2:return 11;case s:return 16;case 8:return 10;default:throw Error("mode:"+a);}else if(41>c)switch(a){case 1:return 14;case 2:return 13;case s:return 16;case 8:return 12;default:throw Error("mode:"+
a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),d=0,b=0;b<c;b++)for(var e=0;e<c;e++){for(var f=0,i=a.isDark(b,e),g=-1;1>=g;g++)if(!(0>b+g||c<=b+g))for(var h=-1;1>=h;h++)0>e+h||c<=e+h||0==g&&0==h||i==a.isDark(b+g,e+h)&&f++;5<f&&(d+=3+f-5)}for(b=0;b<c-1;b++)for(e=0;e<c-1;e++)if(f=0,a.isDark(b,e)&&f++,a.isDark(b+1,e)&&f++,a.isDark(b,e+1)&&f++,a.isDark(b+1,e+1)&&f++,0==f||4==f)d+=3;for(b=0;b<c;b++)for(e=0;e<c-6;e++)a.isDark(b,e)&&!a.isDark(b,e+1)&&a.isDark(b,e+
2)&&a.isDark(b,e+3)&&a.isDark(b,e+4)&&!a.isDark(b,e+5)&&a.isDark(b,e+6)&&(d+=40);for(e=0;e<c;e++)for(b=0;b<c-6;b++)a.isDark(b,e)&&!a.isDark(b+1,e)&&a.isDark(b+2,e)&&a.isDark(b+3,e)&&a.isDark(b+4,e)&&!a.isDark(b+5,e)&&a.isDark(b+6,e)&&(d+=40);for(e=f=0;e<c;e++)for(b=0;b<c;b++)a.isDark(b,e)&&f++;a=Math.abs(100*f/c/c-50)/5;return d+10*a}},l={glog:function(a){if(1>a)throw Error("glog("+a+")");return l.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;256<=a;)a-=255;return l.EXP_TABLE[a]},EXP_TABLE:Array(256),
LOG_TABLE:Array(256)},m=0;8>m;m++)l.EXP_TABLE[m]=1<<m;for(m=8;256>m;m++)l.EXP_TABLE[m]=l.EXP_TABLE[m-4]^l.EXP_TABLE[m-5]^l.EXP_TABLE[m-6]^l.EXP_TABLE[m-8];for(m=0;255>m;m++)l.LOG_TABLE[l.EXP_TABLE[m]]=m;q.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-1),d=0;d<this.getLength();d++)for(var b=0;b<a.getLength();b++)c[d+b]^=l.gexp(l.glog(this.get(d))+l.glog(a.get(b)));return new q(c,0)},mod:function(a){if(0>
this.getLength()-a.getLength())return this;for(var c=l.glog(this.get(0))-l.glog(a.get(0)),d=Array(this.getLength()),b=0;b<this.getLength();b++)d[b]=this.get(b);for(b=0;b<a.getLength();b++)d[b]^=l.gexp(l.glog(a.get(b))+c);return(new q(d,0)).mod(a)}};p.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],
[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,
116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,
43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,
3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,
55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,
45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];p.getRSBlocks=function(a,c){var d=p.getRsBlockTable(a,c);if(void 0==d)throw Error("bad rs block @ typeNumber:"+a+"/errorCorrectLevel:"+c);for(var b=d.length/3,e=[],f=0;f<b;f++)for(var h=d[3*f+0],g=d[3*f+1],j=d[3*f+2],l=0;l<h;l++)e.push(new p(g,j));return e};p.getRsBlockTable=function(a,c){switch(c){case 1:return p.RS_BLOCK_TABLE[4*(a-1)+0];case 0:return p.RS_BLOCK_TABLE[4*(a-1)+1];case 3:return p.RS_BLOCK_TABLE[4*
(a-1)+2];case 2:return p.RS_BLOCK_TABLE[4*(a-1)+3]}};t.prototype={get:function(a){return 1==(this.buffer[Math.floor(a/8)]>>>7-a%8&1)},put:function(a,c){for(var d=0;d<c;d++)this.putBit(1==(a>>>c-d-1&1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/8);this.buffer.length<=c&&this.buffer.push(0);a&&(this.buffer[c]|=128>>>this.length%8);this.length++}};"string"===typeof h&&(h={text:h});h=r.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,
correctLevel:2,background:"#ffffff",foreground:"#000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=0;f<a.getModuleCount();f++)for(var i=0;i<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+1)*b)-Math.floor(i*b),
j=Math.ceil((f+1)*b)-Math.floor(f*b);d.fillRect(Math.round(i*b),Math.round(f*e),g,j)}}else{a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();c=r("<table></table>").css("width",h.width+"px").css("height",h.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",h.background);d=h.width/a.getModuleCount();b=h.height/a.getModuleCount();for(e=0;e<a.getModuleCount();e++){f=r("<tr></tr>").css("height",b+"px").appendTo(c);for(i=0;i<a.getModuleCount();i++)r("<td></td>").css("width",
d+"px").css("background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;jQuery(a).appendTo(this)})}})(jQuery);

File diff suppressed because one or more lines are too long

View File

@ -1,184 +0,0 @@
(function($) {
$.extend({
tablesorterPager: new function() {
function updatePageDisplay(c) {
var s = $(c.cssPageDisplay,c.container).val((c.page+1) + c.seperator + c.totalPages);
}
function setPageSize(table,size) {
var c = table.config;
c.size = size;
c.totalPages = Math.ceil(c.totalRows / c.size);
c.pagerPositionSet = false;
moveToPage(table);
fixPosition(table);
}
function fixPosition(table) {
var c = table.config;
if(!c.pagerPositionSet && c.positionFixed) {
var c = table.config, o = $(table);
if(o.offset) {
c.container.css({
top: o.offset().top + o.height() + 'px',
position: 'absolute'
});
}
c.pagerPositionSet = true;
}
}
function moveToFirstPage(table) {
var c = table.config;
c.page = 0;
moveToPage(table);
}
function moveToLastPage(table) {
var c = table.config;
c.page = (c.totalPages-1);
moveToPage(table);
}
function moveToNextPage(table) {
var c = table.config;
c.page++;
if(c.page >= (c.totalPages-1)) {
c.page = (c.totalPages-1);
}
moveToPage(table);
}
function moveToPrevPage(table) {
var c = table.config;
c.page--;
if(c.page <= 0) {
c.page = 0;
}
moveToPage(table);
}
function moveToPage(table) {
var c = table.config;
if(c.page < 0 || c.page > (c.totalPages-1)) {
c.page = 0;
}
renderTable(table,c.rowsCopy);
}
function renderTable(table,rows) {
var c = table.config;
var l = rows.length;
var s = (c.page * c.size);
var e = (s + c.size);
if(e > rows.length ) {
e = rows.length;
}
var tableBody = $(table.tBodies[0]);
// clear the table body
$.tablesorter.clearTableBody(table);
for(var i = s; i < e; i++) {
//tableBody.append(rows[i]);
var o = rows[i];
var l = o.length;
for(var j=0; j < l; j++) {
tableBody[0].appendChild(o[j]);
}
}
fixPosition(table,tableBody);
$(table).trigger("applyWidgets");
if( c.page >= c.totalPages ) {
moveToLastPage(table);
}
updatePageDisplay(c);
}
this.appender = function(table,rows) {
var c = table.config;
c.rowsCopy = rows;
c.totalRows = rows.length;
c.totalPages = Math.ceil(c.totalRows / c.size);
renderTable(table,rows);
};
this.defaults = {
size: 10,
offset: 0,
page: 0,
totalRows: 0,
totalPages: 0,
container: null,
cssNext: '.next',
cssPrev: '.prev',
cssFirst: '.first',
cssLast: '.last',
cssPageDisplay: '.pagedisplay',
cssPageSize: '.pagesize',
seperator: "/",
positionFixed: true,
appender: this.appender
};
this.construct = function(settings) {
return this.each(function() {
config = $.extend(this.config, $.tablesorterPager.defaults, settings);
var table = this, pager = config.container;
$(this).trigger("appendCache");
config.size = parseInt($(".pagesize",pager).val());
$(config.cssFirst,pager).click(function() {
moveToFirstPage(table);
return false;
});
$(config.cssNext,pager).click(function() {
moveToNextPage(table);
return false;
});
$(config.cssPrev,pager).click(function() {
moveToPrevPage(table);
return false;
});
$(config.cssLast,pager).click(function() {
moveToLastPage(table);
return false;
});
$(config.cssPageSize,pager).change(function() {
setPageSize(table,parseInt($(this).val()));
return false;
});
});
};
}
});
// extend plugin scope
$.fn.extend({
tablesorterPager: $.tablesorterPager.construct
});
})(jQuery);

View File

@ -1,106 +0,0 @@
/**
* --------------------------------------------------------------------
* Tooltip plugin for the jQuery-Plugin "Visualize"
* Tolltip by Iraê Carvalho, irae@irae.pro.br, http://irae.pro.br/en/
* Copyright (c) 2010 Iraê Carvalho
* Dual licensed under the MIT (filamentgroup.com/examples/mit-license.txt) and GPL (filamentgroup.com/examples/gpl-license.txt) licenses.
*
* Visualize plugin by Scott Jehl, scott@filamentgroup.com
* Copyright (c) 2009 Filament Group, http://www.filamentgroup.com
*
* --------------------------------------------------------------------
*/
(function($){
$.visualizePlugins.push(function visualizeTooltip(options,tableData) {
//configuration
var o = $.extend({
tooltip: false,
tooltipalign: 'auto', // also available 'left' and 'right'
tooltipvalign: 'top',
tooltipclass: 'visualize-tooltip',
tooltiphtml: function(data){
if(options.multiHover) {
var html='';
for(var i=0;i<data.point.length;i++){
html += '<p>'+data.point[i].value+' - '+data.point[i].yLabels[0]+'</p>';
}
return html;
} else {
return '<p>'+data.point.value+' - '+data.point.yLabels[0]+'</p>';
}
},
delay:false
},options);
// don't go any further if we are not to show anything
if(!o.tooltip) {return;}
var self = $(this),
canvasContain = self.next(),
scroller = canvasContain.find('.visualize-scroller'),
scrollerW = scroller.width(),
tracker = canvasContain.find('.visualize-interaction-tracker');
// IE needs background color and opacity white or the tracker stays behind the tooltip
tracker.css({
backgroundColor:'white',
opacity:0,
zIndex:100
});
var tooltip = $('<div class="'+o.tooltipclass+'"/>').css({
position:'absolute',
display:'none',
zIndex:90
})
.insertAfter(scroller.find('canvas'));
var usescroll = true;
if( typeof(G_vmlCanvasManager) != 'undefined' ){
scroller.css({'position':'absolute'});
tracker.css({marginTop:'-'+(o.height)+'px'});
}
self.bind('vizualizeOver',function visualizeTooltipOver(e,data){
if(data.canvasContain.get(0) != canvasContain.get(0)) {return;} // for multiple graphs originated from same table
if(o.multiHover) {
var p = data.point[0].canvasCords;
} else {
var p = data.point.canvasCords;
}
var left,right,top,clasRem,clasAd,bottom,x=Math.round(p[0]+data.tableData.zeroLocX),y=Math.round(p[1]+data.tableData.zeroLocY);
if(o.tooltipalign == 'left' || ( o.tooltipalign=='auto' && x-scroller.scrollLeft()<=scrollerW/2 ) ) {
if($.browser.msie && ($.browser.version == 7 || $.browser.version == 6) ) {usescroll=false;} else {usescroll=true;}
left = (x-(usescroll?scroller.scrollLeft():0))+'px';
right = '';
clasAdd="tooltipleft";
clasRem="tooltipright";
} else {
if($.browser.msie && $.browser.version == 7) {usescroll=false;} else {usescroll=true;}
left = '';
right = (Math.abs(x-o.width)- (o.width-(usescroll?scroller.scrollLeft():0)-scrollerW) )+'px';
clasAdd="tooltipright";
clasRem="tooltipleft";
}
tooltip
.addClass(clasAdd)
.removeClass(clasRem)
.html(o.tooltiphtml(data))
.css({
display:'block',
top: y+'px',
left: left,
right: right
});
});
self.bind('vizualizeOut',function visualizeTooltipOut(e,data){
tooltip.css({display:'none'});
});
});
})(jQuery);

View File

@ -1,795 +0,0 @@
/**
* --------------------------------------------------------------------
* jQuery-Plugin "visualize"
* by Scott Jehl, scott@filamentgroup.com
* http://www.filamentgroup.com
* Copyright (c) 2009 Filament Group
* Dual licensed under the MIT (filamentgroup.com/examples/mit-license.txt) and GPL (filamentgroup.com/examples/gpl-license.txt) licenses.
*
* --------------------------------------------------------------------
*/
(function($) {
$.fn.visualize = function(options, container){
return $(this).each(function(){
//configuration
var o = $.extend({
type: 'bar', //also available: area, pie, line
width: $(this).width(), //height of canvas - defaults to table height
height: $(this).height(), //height of canvas - defaults to table height
appendTitle: true, //table caption text is added to chart
title: null, //grabs from table caption if null
appendKey: true, //color key is added to chart
colors: ['#be1e2d','#666699','#92d5ea','#ee8310','#8d10ee','#5a3b16','#26a4ed','#f45a90','#e9e744'],
textColors: [], //corresponds with colors array. null/undefined items will fall back to CSS
parseDirection: 'x', //which direction to parse the table data
pieMargin: 10, //pie charts only - spacing around pie
pieLabelsAsPercent: true,
pieLabelPos: 'inside',
lineWeight: 4, //for line and area - stroke weight
lineDots: false, //also available: 'single', 'double'
dotInnerColor: "#ffffff", // only used for lineDots:'double'
lineMargin: (options.lineDots?15:0), //for line and area - spacing around lines
barGroupMargin: 10,
chartId: '',
xLabelParser: null, // function to parse labels as values
valueParser: null, // function to parse values. must return a Number
chartId: '',
chartClass: '',
barMargin: 1, //space around bars in bar chart (added to both sides of bar)
yLabelInterval: 30, //distance between y labels
interaction: false // only used for lineDots != false -- triggers mouseover and mouseout on original table
},options);
//reset width, height to numbers
o.width = parseFloat(o.width);
o.height = parseFloat(o.height);
// reset padding if graph is not lines
if(o.type != 'line' && o.type != 'area' ) {
o.lineMargin = 0;
}
var self = $(this);
// scrape data from html table
var tableData = {};
var colors = o.colors;
var textColors = o.textColors;
var parseLabels = function(direction){
var labels = [];
if(direction == 'x'){
self.find('thead tr').each(function(i){
$(this).find('th').each(function(j){
if(!labels[j]) {
labels[j] = [];
}
labels[j][i] = $(this).text()
})
});
}
else {
self.find('tbody tr').each(function(i){
$(this).find('th').each(function(j) {
if(!labels[i]) {
labels[i] = [];
}
labels[i][j] = $(this).text()
});
});
}
return labels;
};
var fnParse = o.valueParser || parseFloat;
var dataGroups = tableData.dataGroups = [];
if(o.parseDirection == 'x'){
self.find('tbody tr').each(function(i,tr){
dataGroups[i] = {};
dataGroups[i].points = [];
dataGroups[i].color = colors[i];
if(textColors[i]){ dataGroups[i].textColor = textColors[i]; }
$(tr).find('td').each(function(j,td){
dataGroups[i].points.push( {
value: fnParse($(td).text()),
elem: td,
tableCords: [i,j]
} );
});
});
} else {
var cols = self.find('tbody tr:eq(0) td').size();
for(var i=0; i<cols; i++){
dataGroups[i] = {};
dataGroups[i].points = [];
dataGroups[i].color = colors[i];
if(textColors[i]){ dataGroups[i].textColor = textColors[i]; }
self.find('tbody tr').each(function(j){
dataGroups[i].points.push( {
value: $(this).find('td').eq(i).text()*1,
elem: this,
tableCords: [i,j]
} );
});
};
}
var allItems = tableData.allItems = [];
$(dataGroups).each(function(i,row){
var count = 0;
$.each(row.points,function(j,point){
allItems.push(point);
count += point.value;
});
row.groupTotal = count;
});
tableData.dataSum = 0;
tableData.topValue = 0;
tableData.bottomValue = Infinity;
$.each(allItems,function(i,item){
tableData.dataSum += fnParse(item.value);
if(fnParse(item.value,10)>tableData.topValue) {
tableData.topValue = fnParse(item.value,10);
}
if(item.value<tableData.bottomValue) {
tableData.bottomValue = fnParse(item.value);
}
});
var dataSum = tableData.dataSum;
var topValue = tableData.topValue;
var bottomValue = tableData.bottomValue;
var xAllLabels = tableData.xAllLabels = parseLabels(o.parseDirection);
var yAllLabels = tableData.yAllLabels = parseLabels(o.parseDirection==='x'?'y':'x');
var xLabels = tableData.xLabels = [];
$.each(tableData.xAllLabels,function(i,labels) {
tableData.xLabels.push(labels[0]);
});
var totalYRange = tableData.totalYRange = tableData.topValue - tableData.bottomValue;
var zeroLocX = tableData.zeroLocX = 0;
if($.isFunction(o.xLabelParser)) {
var xTopValue = null;
var xBottomValue = null;
$.each(xLabels,function(i,label) {
label = xLabels[i] = o.xLabelParser(label);
if(i === 0) {
xTopValue = label;
xBottomValue = label;
}
if(label>xTopValue) {
xTopValue = label;
}
if(label<xBottomValue) {
xBottomValue = label;
}
});
var totalXRange = tableData.totalXRange = xTopValue - xBottomValue;
var xScale = tableData.xScale = (o.width -2*o.lineMargin) / totalXRange;
var marginDiffX = 0;
if(o.lineMargin) {
var marginDiffX = -2*xScale-o.lineMargin;
}
zeroLocX = tableData.zeroLocX = xBottomValue + o.lineMargin;
tableData.xBottomValue = xBottomValue;
tableData.xTopValue = xTopValue;
tableData.totalXRange = totalXRange;
}
var yScale = tableData.yScale = (o.height - 2*o.lineMargin) / totalYRange;
var zeroLocY = tableData.zeroLocY = (o.height-2*o.lineMargin) * (tableData.topValue/tableData.totalYRange) + o.lineMargin;
var yLabels = tableData.yLabels = [];
var numLabels = Math.floor((o.height - 2*o.lineMargin) / 30);
var loopInterval = tableData.totalYRange / numLabels; //fix provided from lab
loopInterval = Math.round(parseFloat(loopInterval)/5)*5;
loopInterval = Math.max(loopInterval, 1);
// var start =
for(var j=Math.round(parseInt(tableData.bottomValue)/5)*5; j<=tableData.topValue+loopInterval; j+=loopInterval){
yLabels.push(j);
}
if(yLabels[yLabels.length-1] > tableData.topValue+loopInterval) {
yLabels.pop();
} else if (yLabels[yLabels.length-1] <= tableData.topValue-10) {
yLabels.push(tableData.topValue);
}
// populate some data
$.each(dataGroups,function(i,row){
row.yLabels = tableData.yAllLabels[i];
$.each(row.points, function(j,point){
point.zeroLocY = tableData.zeroLocY;
point.zeroLocX = tableData.zeroLocX;
point.xLabels = tableData.xAllLabels[j];
point.yLabels = tableData.yAllLabels[i];
point.color = row.color;
});
});
try{console.log(tableData);}catch(e){}
var charts = {};
charts.pie = {
interactionPoints: dataGroups,
setup: function() {
charts.pie.draw(true);
},
draw: function(drawHtml){
var centerx = Math.round(canvas.width()/2);
var centery = Math.round(canvas.height()/2);
var radius = centery - o.pieMargin;
var counter = 0.0;
if(drawHtml) {
canvasContain.addClass('visualize-pie');
if(o.pieLabelPos == 'outside'){ canvasContain.addClass('visualize-pie-outside'); }
var toRad = function(integer){ return (Math.PI/180)*integer; };
var labels = $('<ul class="visualize-labels"></ul>')
.insertAfter(canvas);
}
//draw the pie pieces
$.each(dataGroups, function(i,row){
var fraction = row.groupTotal / dataSum;
if (fraction <= 0 || isNaN(fraction))
return;
ctx.beginPath();
ctx.moveTo(centerx, centery);
ctx.arc(centerx, centery, radius,
counter * Math.PI * 2 - Math.PI * 0.5,
(counter + fraction) * Math.PI * 2 - Math.PI * 0.5,
false);
ctx.lineTo(centerx, centery);
ctx.closePath();
ctx.fillStyle = dataGroups[i].color;
ctx.fill();
// draw labels
if(drawHtml) {
var sliceMiddle = (counter + fraction/2);
var distance = o.pieLabelPos == 'inside' ? radius/1.5 : radius + radius / 5;
var labelx = Math.round(centerx + Math.sin(sliceMiddle * Math.PI * 2) * (distance));
var labely = Math.round(centery - Math.cos(sliceMiddle * Math.PI * 2) * (distance));
var leftRight = (labelx > centerx) ? 'right' : 'left';
var topBottom = (labely > centery) ? 'bottom' : 'top';
var percentage = parseFloat((fraction*100).toFixed(2));
// interaction variables
row.canvasCords = [labelx,labely];
row.zeroLocY = tableData.zeroLocY = 0; // related to zeroLocY and plugin API
row.zeroLocX = tableData.zeroLocX = 0; // related to zeroLocX and plugin API
row.value = row.groupTotal;
if(percentage){
var labelval = (o.pieLabelsAsPercent) ? percentage + '%' : row.groupTotal;
var labeltext = $('<span class="visualize-label">' + labelval +'</span>')
.css(leftRight, 0)
.css(topBottom, 0);
if(labeltext)
var label = $('<li class="visualize-label-pos"></li>')
.appendTo(labels)
.css({left: labelx, top: labely})
.append(labeltext);
labeltext
.css('font-size', radius / 8)
.css('margin-'+leftRight, -labeltext.width()/2)
.css('margin-'+topBottom, -labeltext.outerHeight()/2);
if(dataGroups[i].textColor){ labeltext.css('color', dataGroups[i].textColor); }
}
}
counter+=fraction;
});
}
};
(function(){
var xInterval;
var drawPoint = function (ctx,x,y,color,size) {
ctx.moveTo(x,y);
ctx.beginPath();
ctx.arc(x,y,size/2,0,2*Math.PI,false);
ctx.closePath();
ctx.fillStyle = color;
ctx.fill();
};
charts.line = {
interactionPoints: allItems,
setup: function(area){
if(area){ canvasContain.addClass('visualize-area'); }
else{ canvasContain.addClass('visualize-line'); }
//write X labels
var xlabelsUL = $('<ul class="visualize-labels-x"></ul>')
.width(canvas.width())
.height(canvas.height())
.insertBefore(canvas);
if(!o.customXLabels) {
xInterval = (canvas.width() - 2*o.lineMargin) / (xLabels.length -1);
$.each(xLabels, function(i){
var thisLi = $('<li><span>'+this+'</span></li>')
.prepend('<span class="line" />')
.css('left', o.lineMargin + xInterval * i)
.appendTo(xlabelsUL);
var label = thisLi.find('span:not(.line)');
var leftOffset = label.width()/-2;
if(i == 0){ leftOffset = 0; }
else if(i== xLabels.length-1){ leftOffset = -label.width(); }
label
.css('margin-left', leftOffset)
.addClass('label');
});
} else {
o.customXLabels(tableData,xlabelsUL);
}
//write Y labels
var liBottom = (canvas.height() - 2*o.lineMargin) / (yLabels.length-1);
var ylabelsUL = $('<ul class="visualize-labels-y"></ul>')
.width(canvas.width())
.height(canvas.height())
// .css('margin-top',-o.lineMargin)
.insertBefore(scroller);
$.each(yLabels, function(i){
var value = Math.floor(this);
var posB = (value-bottomValue)*yScale + o.lineMargin;
if(posB >= o.height-1 || posB < 0) {
return;
}
var thisLi = $('<li><span>'+value+'</span></li>')
.css('bottom', posB);
if(Math.abs(posB) < o.height-1) {
thisLi.prepend('<span class="line" />');
}
thisLi.prependTo(ylabelsUL);
var label = thisLi.find('span:not(.line)');
var topOffset = label.height()/-2;
if(!o.lineMargin) {
if(i == 0){ topOffset = -label.height(); }
else if(i== yLabels.length-1){ topOffset = 0; }
}
label
.css('margin-top', topOffset)
.addClass('label');
});
//start from the bottom left
ctx.translate(zeroLocX,zeroLocY);
charts.line.draw(area);
},
draw: function(area) {
// prevent drawing on top of previous draw
ctx.clearRect(-zeroLocX,-zeroLocY,o.width,o.height);
// Calculate each point properties before hand
var integer;
$.each(dataGroups,function(i,row){
integer = o.lineMargin; // the current offset
$.each(row.points, function(j,point){
if(o.xLabelParser) {
point.canvasCords = [(xLabels[j]-zeroLocX)*xScale - xBottomValue,-(point.value*yScale)];
} else {
point.canvasCords = [integer,-(point.value*yScale)];
}
if(o.lineDots) {
point.dotSize = o.dotSize||o.lineWeight*Math.PI;
point.dotInnerSize = o.dotInnerSize||o.lineWeight*Math.PI/2;
if(o.lineDots == 'double') {
point.innerColor = o.dotInnerColor;
}
}
integer+=xInterval;
});
});
// fire custom event so we can enable rich interaction
self.trigger('vizualizeBeforeDraw',{options:o,table:self,canvasContain:canvasContain,tableData:tableData});
// draw lines and areas
$.each(dataGroups,function(h){
// Draw lines
ctx.beginPath();
ctx.lineWidth = o.lineWeight;
ctx.lineJoin = 'round';
$.each(this.points, function(g){
var loc = this.canvasCords;
if(g == 0) {
ctx.moveTo(loc[0],loc[1]);
}
ctx.lineTo(loc[0],loc[1]);
});
ctx.strokeStyle = this.color;
ctx.stroke();
// Draw fills
if(area){
var integer = this.points[this.points.length-1].canvasCords[0];
if (isFinite(integer))
ctx.lineTo(integer,0);
ctx.lineTo(o.lineMargin,0);
ctx.closePath();
ctx.fillStyle = this.color;
ctx.globalAlpha = .3;
ctx.fill();
ctx.globalAlpha = 1.0;
}
else {ctx.closePath();}
});
// draw points
if(o.lineDots) {
$.each(dataGroups,function(h){
$.each(this.points, function(g){
drawPoint(ctx,this.canvasCords[0],this.canvasCords[1],this.color,this.dotSize);
if(o.lineDots === 'double') {
drawPoint(ctx,this.canvasCords[0],this.canvasCords[1],this.innerColor,this.dotInnerSize);
}
});
});
}
}
};
})();
charts.area = {
setup: function() {
charts.line.setup(true);
},
draw: charts.line.draw
};
(function(){
var horizontal,bottomLabels;
charts.bar = {
setup:function(){
/**
* We can draw horizontal or vertical bars depending on the
* value of the 'barDirection' option (which may be 'vertical' or
* 'horizontal').
*/
horizontal = (o.barDirection == 'horizontal');
canvasContain.addClass('visualize-bar');
/**
* Write labels along the bottom of the chart. If we're drawing
* horizontal bars, these will be the yLabels, otherwise they
* will be the xLabels. The positioning also varies slightly:
* yLabels are values, hence they will span the whole width of
* the canvas, whereas xLabels are supposed to line up with the
* bars.
*/
bottomLabels = horizontal ? yLabels : xLabels;
var xInterval = canvas.width() / (bottomLabels.length - (horizontal ? 1 : 0));
var xlabelsUL = $('<ul class="visualize-labels-x"></ul>')
.width(canvas.width())
.height(canvas.height())
.insertBefore(canvas);
$.each(bottomLabels, function(i){
var thisLi = $('<li><span class="label">'+this+'</span></li>')
.prepend('<span class="line" />')
.css('left', xInterval * i)
.width(xInterval)
.appendTo(xlabelsUL);
if (horizontal) {
var label = thisLi.find('span.label');
label.css("margin-left", -label.width() / 2);
}
});
/**
* Write labels along the left of the chart. Follows the same idea
* as the bottom labels.
*/
var leftLabels = horizontal ? xLabels : yLabels;
var liBottom = canvas.height() / (leftLabels.length - (horizontal ? 0 : 1));
var ylabelsUL = $('<ul class="visualize-labels-y"></ul>')
.width(canvas.width())
.height(canvas.height())
.insertBefore(canvas);
$.each(leftLabels, function(i){
var thisLi = $('<li><span>'+this+'</span></li>').prependTo(ylabelsUL);
var label = thisLi.find('span:not(.line)').addClass('label');
if (horizontal) {
/**
* For left labels, we want to vertically align the text
* to the middle of its container, but we don't know how
* many lines of text we will have, since the labels could
* be very long.
*
* So we set a min-height of liBottom, and a max-height
* of liBottom + 1, so we can then check the label's actual
* height to determine if it spans one line or more lines.
*/
label.css({
'min-height': liBottom,
'max-height': liBottom + 1,
'vertical-align': 'middle'
});
thisLi.css({'top': liBottom * i, 'min-height': liBottom});
var r = label[0].getClientRects()[0];
if (r.bottom - r.top == liBottom) {
/* This means we have only one line of text; hence
* we can centre the text vertically by setting the line-height,
* as described at:
* http://www.ampsoft.net/webdesign-l/vertical-aligned-nav-list.html
*
* (Although firefox has .height on the rectangle, IE doesn't,
* so we use r.bottom - r.top rather than r.height.)
*/
label.css('line-height', parseInt(liBottom) + 'px');
}
else {
/*
* If there is more than one line of text, then we shouldn't
* touch the line height, but we should make sure the text
* doesn't overflow the container.
*/
label.css("overflow", "hidden");
}
}
else {
thisLi.css('bottom', liBottom * i).prepend('<span class="line" />');
label.css('margin-top', -label.height() / 2)
}
});
charts.bar.draw();
},
draw: function() {
// Draw bars
if (horizontal) {
// for horizontal, keep the same code, but rotate everything 90 degrees
// clockwise.
ctx.rotate(Math.PI / 2);
}
else {
// for vertical, translate to the top left corner.
ctx.translate(0, zeroLocY);
}
// Don't attempt to draw anything if all the values are zero,
// otherwise we will get weird exceptions from the canvas methods.
if (totalYRange <= 0)
return;
var yScale = (horizontal ? canvas.width() : canvas.height()) / totalYRange;
var barWidth = horizontal ? (canvas.height() / xLabels.length) : (canvas.width() / (bottomLabels.length));
var linewidth = (barWidth - o.barGroupMargin*2) / dataGroups.length;
for(var h=0; h<dataGroups.length; h++){
ctx.beginPath();
var strokeWidth = linewidth - (o.barMargin*2);
ctx.lineWidth = strokeWidth;
var points = dataGroups[h].points;
var integer = 0;
for(var i=0; i<points.length; i++){
// If the last value is zero, IE will go nuts and not draw anything,
// so don't try to draw zero values at all.
if (points[i].value != 0) {
var xVal = (integer-o.barGroupMargin)+(h*linewidth)+linewidth/2;
xVal += o.barGroupMargin*2;
ctx.moveTo(xVal, 0);
ctx.lineTo(xVal, Math.round(-points[i].value*yScale));
}
integer+=barWidth;
}
ctx.strokeStyle = dataGroups[h].color;
ctx.stroke();
ctx.closePath();
}
}
};
})();
//create new canvas, set w&h attrs (not inline styles)
var canvasNode = document.createElement("canvas");
var canvas = $(canvasNode)
.attr({
'height': o.height,
'width': o.width
});
//get title for chart
var title = o.title || self.find('caption').text();
//create canvas wrapper div, set inline w&h, append
var canvasContain = (container || $('<div '+(o.chartId?'id="'+o.chartId+'" ':'')+'class="visualize '+o.chartClass+'" role="img" aria-label="Chart representing data from the table: '+ title +'" />'))
.height(o.height)
.width(o.width);
var scroller = $('<div class="visualize-scroller"></div>')
.appendTo(canvasContain)
.append(canvas);
//title/key container
if(o.appendTitle || o.appendKey){
var infoContain = $('<div class="visualize-info"></div>')
.appendTo(canvasContain);
}
//append title
if(o.appendTitle){
$('<div class="visualize-title">'+ title +'</div>').appendTo(infoContain);
}
//append key
if(o.appendKey){
var newKey = $('<ul class="visualize-key"></ul>');
$.each(yAllLabels, function(i,label){
$('<li><span class="visualize-key-color" style="background: '+dataGroups[i].color+'"></span><span class="visualize-key-label">'+ label +'</span></li>')
.appendTo(newKey);
});
newKey.appendTo(infoContain);
};
// init interaction
if(o.interaction) {
// sets the canvas to track interaction
// IE needs one div on top of the canvas since the VML shapes prevent mousemove from triggering correctly.
// Pie charts needs tracker because labels goes on top of the canvas and also messes up with mousemove
var tracker = $('<div class="visualize-interaction-tracker"/>')
.css({
'height': o.height + 'px',
'width': o.width + 'px',
'position':'relative',
'z-index': 200
})
.insertAfter(canvas);
var triggerInteraction = function(overOut,data) {
var data = $.extend({
canvasContain:canvasContain,
tableData:tableData
},data);
self.trigger('vizualize'+overOut,data);
};
var over=false, last=false, started=false;
tracker.mousemove(function(e){
var x,y,x1,y1,data,dist,i,current,selector,zLabel,elem,color,minDist,found,ev=e.originalEvent;
// get mouse position relative to the tracker/canvas
x = ev.layerX || ev.offsetX || 0;
y = ev.layerY || ev.offsetY || 0;
found = false;
minDist = started?30000:(o.type=='pie'?(Math.round(canvas.height()/2)-o.pieMargin)/3:o.lineWeight*4);
// iterate datagroups to find points with matching
$.each(charts[o.type].interactionPoints,function(i,current){
x1 = current.canvasCords[0] + zeroLocX;
y1 = current.canvasCords[1] + (o.type=="pie"?0:zeroLocY);
dist = Math.sqrt( (x1 - x)*(x1 - x) + (y1 - y)*(y1 - y) );
if(dist < minDist) {
found = current;
minDist = dist;
}
});
if(o.multiHover && found) {
x = found.canvasCords[0] + zeroLocX;
y = found.canvasCords[1] + (o.type=="pie"?0:zeroLocY);
found = [found];
$.each(charts[o.type].interactionPoints,function(i,current){
if(current == found[0]) {return;}
x1 = current.canvasCords[0] + zeroLocX;
y1 = current.canvasCords[1] + zeroLocY;
dist = Math.sqrt( (x1 - x)*(x1 - x) + (y1 - y)*(y1 - y) );
if(dist <= o.multiHover) {
found.push(current);
}
});
}
// trigger over and out only when state changes, instead of on every mousemove
over = found;
if(over != last) {
if(over) {
if(last) {
triggerInteraction('Out',{point:last});
}
triggerInteraction('Over',{point:over});
last = over;
}
if(last && !over) {
triggerInteraction('Out',{point:last});
last=false;
}
started=true;
}
});
tracker.mouseleave(function(){
triggerInteraction('Out',{
point:last,
mouseOutGraph:true
});
over = (last = false);
});
}
//append new canvas to page
if(!container){canvasContain.insertAfter(this); }
if( typeof(G_vmlCanvasManager) != 'undefined' ){ G_vmlCanvasManager.init(); G_vmlCanvasManager.initElement(canvas[0]); }
//set up the drawing board
var ctx = canvas[0].getContext('2d');
// Scroll graphs
scroller.scrollLeft(o.width-scroller.width());
// init plugins
$.each($.visualizePlugins,function(i,plugin){
plugin.call(self,o,tableData);
});
//create chart
charts[o.type].setup();
if(!container){
//add event for updating
self.bind('visualizeRefresh', function(){
self.visualize(o, $(this).empty());
});
//add event for redraw
self.bind('visualizeRedraw', function(){
charts[o.type].draw();
});
}
}).next(); //returns canvas(es)
};
// create array for plugins. if you wish to make a plugin,
// just push your init funcion into this array
$.visualizePlugins = [];
})(jQuery);

View File

@ -1,96 +0,0 @@
/**
* Grid theme for Highcharts JS
* @author Torstein Hønsi
*/
Highcharts.theme = {
colors: ['#058DC7', '#50B432', '#ED561B', '#DDDF00', '#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4'],
chart: {
//backgroundColor: {
// linearGradient: [80, 250, 0, 0],
// stops: [
// [0, 'rgb(255, 255, 255)'],
// [1, 'rgb(240, 240, 255)']
// ]
//},
borderWidth: 0,
plotBackgroundColor: 'rgba(255, 255, 255, .9)',
plotShadow: true,
plotBorderWidth: 1
},
title: {
style: {
color: '#000',
font: 'bold 16px "Trebuchet MS", Verdana, sans-serif'
}
},
subtitle: {
style: {
color: '#666666',
font: 'bold 12px "Trebuchet MS", Verdana, sans-serif'
}
},
xAxis: {
gridLineWidth: 0,
lineColor: '#000',
tickColor: '#000',
labels: {
style: {
color: '#000',
font: '11px Trebuchet MS, Verdana, sans-serif'
}
},
title: {
style: {
color: '#333',
fontWeight: 'bold',
fontSize: '12px',
fontFamily: 'Trebuchet MS, Verdana, sans-serif'
}
}
},
yAxis: {
minorTickInterval: 'auto',
lineColor: '#000',
lineWidth: 1,
tickWidth: 1,
tickColor: '#000',
labels: {
style: {
color: '#000',
font: '11px Trebuchet MS, Verdana, sans-serif'
}
},
title: {
style: {
color: '#333',
fontWeight: 'bold',
fontSize: '12px',
fontFamily: 'Trebuchet MS, Verdana, sans-serif'
}
}
},
legend: {
itemStyle: {
font: '9pt Trebuchet MS, Verdana, sans-serif',
color: 'black'
},
itemHoverStyle: {
color: '#039'
},
itemHiddenStyle: {
color: 'gray'
}
},
labels: {
style: {
color: '#99b'
}
}
};
// Apply the theme
var highchartsOptions = Highcharts.setOptions(Highcharts.theme);

View File

@ -1,97 +0,0 @@
/*
--------------------------------------------------------------------------
Code for link-hover text boxes
By Nicolas Hoening (Web Site: http://nicolashoening.de)
--------------------------------------------------------------------------
*/
// create the popup box - remember to give it some width in your styling
document.write('<div id="popup" style="position:abolute; z-index:200;"></div>');
var minMarginToBorder = 15; // set how much minimal space there should be to
// the next border (horizontally)
var ready = false; // we are ready when the mouse is being caught
$(document).ready(function(){
$('#popup').hide();
// set dynamic coords when the mouse moves
$(document).mousemove(function(e){
var x,y;
x = $(document).scrollLeft() + e.clientX;
y = $(document).scrollTop() + e.clientY;
x += 10; // important: if the popup is where the mouse is, the hoverOver/hoverOut events flicker
var x_y = nudge(x,y); // avoids edge overflow
// remember: the popup is still hidden
$('#popup').css('top', x_y[1] + 'px');
$('#popup').css('left', x_y[0] + 'px');
ready = true;
});
});
// avoid edge overflow
function nudge(x,y)
{
var win = $(window);
// When the mouse is too far on the right, put window to the left
var xtreme =$(document).scrollLeft() + win.width() - $('#popup').width() - minMarginToBorder;
if(x > xtreme) {
x -= $('#popup').width() + minMarginToBorder + 20;
}
x = max(x, 0)
// When the mouse is too close to the bottom, move it up.
// I estimate the lines that fit in the width, assuming (a little pessimisticly)
// a char width of 15 pixels and a line height of 20 (That should work for most cases)
// Unfortunately, I cannot read margin and padding to get even better values,
// since JS can only read what is set before itself, apparently. This works quite well
// with a padding of 5px.
est_lines = parseInt($('#popup').html().length / (parseInt($('#popup').width())/15) );
est_lines_to_decide = max(est_lines, 2);
if((y + parseInt(est_lines_to_decide * 20)) > (win.height() + $(document).scrollTop())) {
y -= parseInt(est_lines * 20) + 20;
}
return [ x, y ];
}
// write content and display
function popup(planet_name)
{
if (ready) {
$.ajax({
url: 'index.php?page=api&action=starmap&planetname='+planet_name,
cache: true,
success: function(data) {
$('#popup').html(data).show();
}
});
}
}
// make content box invisible
function kill()
{
$('#popup').hide();
}
function max(a,b){
if (a>b) return a;
else return b;
}
$(document).ready(function(){
$("div#panel").hide();
$("#toggle").click(function(){
$("#panel").slideToggle("slow");
$(this).toggleClass("active");
return false;
});
});

View File

@ -1,3 +0,0 @@
{include file="global/block_header.tpl" BLOCK_HEADER="API Reference"}
<p>Please head over to the <a href="https://github.com/TheSerapher/php-mpos/wiki/API-Reference">official documentation</a> to learn about the API featured in <b>MPOS</b>.</p>
{include file="global/block_footer.tpl"}

View File

@ -1,27 +0,0 @@
{include file="global/block_header.tpl" BLOCK_HEADER="Pool Donors"}
<center>
{include file="global/pagination.tpl"}
<table width="500px" class="pagesort">
<thead>
<tr>
<th>Name</th>
<th class="center">%</th>
<th class="right">{$GLOBAL.config.currency} Total</th>
</tr>
</thead>
<tbody>
{section name=donor loop=$DONORS}
<tr>
<td>{if $DONORS[donor].is_anonymous|default:"0" == 1 && $GLOBAL.userdata.is_admin|default:"0" == 0}anonymous{else}{$DONORS[donor].username}{/if}</td>
<td class="center">{$DONORS[donor].donate_percent}</td>
<td class="right">{$DONORS[donor].donation|number_format:"2"}</td>
</tr>
{sectionelse}
<tr>
<td class="center" colspan="3">No confirmed donations yet, please be patient!</td>
</tr>
{/section}
</tbody>
</table>
</center>
{include file="global/block_footer.tpl"}

View File

@ -1,35 +0,0 @@
<div class="block" style="clear:none;">
<div class="block_head">
<div class="bheadl"></div>
<div class="bheadr"></div>
<h2>ThePool Collective</h2>
</div>
<div class="block_content" style="padding:10px;">
<p>After mining in other pools I have decided to setup my own pool, mostly for educational reason. I was curious how pools work, what is needed to get them started and what tools can be used to run them.</p>
<p>Lots of digging finally revealed that the following tools were required to run a Litecoin pool:</p>
<ul>
<li><a href="https://github.com/litecoin-project/litecoin">Litecoin</a>
<ol><li>Provides litecoind, used to synchronize blocks and offer the API the pool connects to</ol>
<li><a href="https://github.com/ArtForz/pushpool/tree/tenebrix">Pushpool 0.5.1-tenebrix</a>, a modified version of Pushpool supporting changed target difficulties (2^22 in this pool)</li>
<ol><li>Provides the API each worker (client miner) authenticates and connects to</ol>
<li><a href="https://github.com/Greedi/mmcFE">mmcFE</a> modified by Greedi & g2x3k with adjustments for this pool (proper hashrate for 2^22 difficulty)</li>
<ol><li>The Webinterface merging SQL and API information into a cohesive interface for user and worker management</ol>
</ul>
<p>
The hardest part was finding all the information needed and applying it to a new setup.
Many tools exist and even those three took a while to get them to work.
Especially the difficulty adjustment would not have been possible (for me) if it wasn't
for the pushpool tenebrix branch allowing a custom target bit and reducing difficulty per share.
More adjustments in the PHP code were necessary to reflect those changes and, at least
close enough, properly display hashrates on the pool site. It is running well right now but
please keen in mind that <b>neither the code nor functionaliy are supported</b>.
I am not responsible for lost coins due to a pool crash or other malfunctions which
could be caused by by code or the tools used in this implementation.
</p>
</div>
<div class="bendl"></div>
<div class="bendr"></div>
</div>
</div>

View File

@ -1 +0,0 @@
No action specified

View File

@ -1,53 +0,0 @@
{include file="global/block_header.tpl" BLOCK_HEADER="Account Details"}
<form action="{$smarty.server.PHP_SELF}" method="post">
<input type="hidden" name="page" value="{$smarty.request.page|escape}">
<input type="hidden" name="action" value="{$smarty.request.action|escape}">
<input type="hidden" name="do" value="updateAccount">
<table>
<tbody><tr><td>Username: </td><td>{$GLOBAL.userdata.username|escape}</td></tr>
<tr><td>User Id: </td><td>{$GLOBAL.userdata.id}</td></tr>
{if !$GLOBAL.website.api.disabled}<tr><td>API Key: </td><td><a href="{$smarty.server.PHP_SELF}?page=api&action=getuserstatus&api_key={$GLOBAL.userdata.api_key}&id={$GLOBAL.userdata.id}">{$GLOBAL.userdata.api_key}</a></td></tr>{/if}
<tr><td>E-Mail: </td><td><input type="text" name="email" value="{nocache}{$GLOBAL.userdata.email|escape}{/nocache}" size="20"></td></tr>
<tr><td>Payment Address: </td><td><input type="text" name="paymentAddress" value="{nocache}{$smarty.request.paymentAddress|default:$GLOBAL.userdata.coin_address|escape}{nocache}" size="40"></td></tr>
<tr><td>Donation %: </td><td><input type="text" name="donatePercent" value="{nocache}{$smarty.request.donatePercent|default:$GLOBAL.userdata.donate_percent|escape}{nocache}" size="4"><font size="1"> [donation amount in percent (example: 0.5)]</font></td></tr>
<tr><td>Automatic Payout Threshold: </td><td valign="top"><input type="text" name="payoutThreshold" value="{$smarty.request.payoutThreshold|default:$GLOBAL.userdata.ap_threshold|escape}" size="5" maxlength="5"> <font size="1">[{$GLOBAL.config.ap_threshold.min}-{$GLOBAL.config.ap_threshold.max} {$GLOBAL.config.currency}. Set to '0' for no auto payout]</font></td></tr>
<tr><td>Anonymous Account <span id='tt'><img src='{$PATH}/images/questionmark.png' height='15px' width='15px' title='Will hide your username on the website for others. Only admins can still get your user information.'></span>:</td><td>
<input type="hidden" name="is_anonymous" value="0" />
<input type="checkbox" name="is_anonymous" value="1" id="is_anonymous" {if $GLOBAL.userdata.is_anonymous}checked{/if} />
<label for="is_anonymous"></label>
</td></tr>
<tr><td>4 digit PIN: </td><td><input type="password" name="authPin" size="4" maxlength="4"><font size="1"> [The 4 digit PIN you chose when registering]</font></td></tr>
</tbody></table>
<input type="submit" class="submit long" value="Update Settings"></form>
{include file="global/block_footer.tpl"}
{if !$GLOBAL.disable_mp}
{include file="global/block_header.tpl" BLOCK_HEADER="Cash Out"}
<ul><li><font color="">Please note: a {$GLOBAL.config.txfee} {$GLOBAL.config.currency} transaction will apply when processing "On-Demand" manual payments</font></li></ul>
<form action="{$smarty.server.PHP_SELF}" method="post">
<input type="hidden" name="page" value="{$smarty.request.page|escape}">
<input type="hidden" name="action" value="{$smarty.request.action|escape}">
<input type="hidden" name="do" value="cashOut">
<table>
<tbody><tr><td>Account Balance: &nbsp;&nbsp;&nbsp;</td><td>{nocache}{$GLOBAL.userdata.balance.confirmed|escape}{/nocache} {$GLOBAL.config.currency}</td></tr>
<tr><td>Payout to: </td><td><h6>{nocache}{$GLOBAL.userdata.coin_address|escape}{/nocache}</h6></td></tr>
<tr><td>4 digit PIN: </td><td><input type="password" name="authPin" size="4" maxlength="4"></td></tr>
</tbody></table>
<input type="submit" class="submit mid" value="Cash Out"></form>
{include file="global/block_footer.tpl"}
{/if}
{include file="global/block_header.tpl" BLOCK_HEADER="Change Password"}
<ul><li><font color="">Note: You will be redirected to login on successful completion of a password change</font></li></ul>
<form action="{$smarty.server.PHP_SELF}" method="post"><input type="hidden" name="act" value="updatePassword">
<input type="hidden" name="page" value="{$smarty.request.page|escape}">
<input type="hidden" name="action" value="{$smarty.request.action|escape}">
<input type="hidden" name="do" value="updatePassword">
<table>
<tbody><tr><td>Current Password: </td><td><input type="password" name="currentPassword"></td></tr>
<tr><td>New Password: </td><td><input type="password" name="newPassword"></td></tr>
<tr><td>New Password Repeat: </td><td><input type="password" name="newPassword2"></td></tr>
<tr><td>4 digit PIN: </td><td><input type="password" name="authPin" size="4" maxlength="4"></td></tr>
</tbody></table>
<input type="submit" class="submit long" value="Change Password"></form>
{include file="global/block_footer.tpl"}

View File

@ -1,43 +0,0 @@
{include file="global/block_header.tpl" ALIGN="left" BLOCK_HEADER="Invitations"}
<form action="{$smarty.server.PHP_SELF}" method="POST">
<input type="hidden" name="page" value="{$smarty.request.page}">
<input type="hidden" name="action" value="{$smarty.request.action}">
<input type="hidden" name="do" value="sendInvitation">
<table>
<tr>
<td>E-Mail</td>
<td><input type="text" name="data[email]" value="{$smarty.request.data.email|escape|default:""}" size="30" /></td>
</tr>
<tr>
<td>Message</td>
<td><textarea name="data[message]">{$smarty.request.data.message|escape|default:"Please accept my invitation to this awesome pool."}</textarea></td>
</tr>
<tr>
<td colspan="2" class="center">
<input type="submit" class="submit small" value="Send">
</td>
</tr>
</table>
</form>
{include file="global/block_footer.tpl"}
{include file="global/block_header.tpl" ALIGN="right" BLOCK_HEADER="Past Invitations"}
<table width="100%">
<thead style="font-size:13px;">
<tr>
<th>E-Mail</th>
<th class="center">Sent</th>
<th class="center">Activated</th>
</tr>
</thead>
<tbody>
{section name=invite loop=$INVITATIONS}
<tr>
<td>{$INVITATIONS[invite].email}</td>
<td class="center">{$INVITATIONS[invite].time|date_format:"%d/%m/%Y %H:%M:%S"}</td>
<td class="center"><img src="{$PATH}/images/{if $INVITATIONS[invite].is_activated}success{else}error{/if}.gif" /></td>
</tr>
{/section}
<tbody>
</table>
{include file="global/block_footer.tpl"}

View File

@ -1,84 +0,0 @@
{include file="global/block_header.tpl" ALIGN="left" BLOCK_HEADER="Notification Settings"}
<form action="{$smarty.server.PHP_SELF}" method="POST">
<input type="hidden" name="page" value="{$smarty.request.page}">
<input type="hidden" name="action" value="{$smarty.request.action}">
<input type="hidden" name="do" value="save">
<table width="100%">
<tr>
<th class="left">Type</th>
<th class="center">Active</th>
</tr>
<tr>
<td class="left">IDLE Worker</td>
<td class="center">
<input type="hidden" name="data[idle_worker]" value="0" />
<input type="checkbox" name="data[idle_worker]" id="data[idle_worker]" value="1"{nocache}{if $SETTINGS['idle_worker']}checked{/if}{/nocache} />
<label for="data[idle_worker]"></label>
</td>
</tr>
<tr>
<td class="left">New Blocks</td>
<td class="center">
<input type="hidden" name="data[new_block]" value="0" />
<input type="checkbox" name="data[new_block]" id="data[new_block]" value="1"{nocache}{if $SETTINGS['new_block']}checked{/if}{/nocache} />
<label for="data[new_block]"></label>
</td>
</tr>
<tr>
<td class="left">Auto Payout</td>
<td class="center">
<input type="hidden" name="data[auto_payout]" value="0" />
<input type="checkbox" name="data[auto_payout]" id="data[auto_payout]" value="1"{nocache}{if $SETTINGS['auto_payout']}checked{/if}{/nocache} />
<label for="data[auto_payout]"></label>
</td>
</tr>
<tr>
<td class="left">Manual Payout</td>
<td class="center">
<input type="hidden" name="data[manual_payout]" value="0" />
<input type="checkbox" name="data[manual_payout]" id="data[manual_payout]" value="1"{nocache}{if $SETTINGS['manual_payout']}checked{/if}{/nocache} />
<label for="data[manual_payout]"></label>
</td>
</tr>
<tr>
<td colspan="2" class="center">
<input type="submit" class="submit small" value="Update">
</td>
</tr>
</table>
</form>
{include file="global/block_footer.tpl"}
{include file="global/block_header.tpl" ALIGN="right" BLOCK_HEADER="Notification History"}
<center>
{include file="global/pagination.tpl"}
<table width="100%" class="pagesort">
<thead style="font-size:13px;">
<tr>
<th class="center" style="cursor: pointer;">ID</th>
<th class="center" style="cursor: pointer;">Time</th>
<th class="center" style="cursor: pointer;">Type</th>
<th class="center" style="cursor: pointer;">Active</th>
</tr>
</thead>
<tbody style="font-size:12px;">
{section notification $NOTIFICATIONS}
<tr class="{cycle values="odd,even"}">
<td class="center">{$NOTIFICATIONS[notification].id}</td>
<td class="center">{$NOTIFICATIONS[notification].time}</td>
<td class="center">
{if $NOTIFICATIONS[notification].type == new_block}New Block
{else if $NOTIFICATIONS[notification].type == auto_payout}Auto Payout
{else if $NOTIFICATIONS[notification].type == idle_worker}IDLE Worker
{else if $NOTIFICATIONS[notification].type == manual_payout}Manual Payout
{/if}
</td>
<td class="center">
<img src="{$PATH}/images/{if $NOTIFICATIONS[notification].active}success{else}error{/if}.gif" />
</td>
</tr>
{/section}
</tbody>
</table>
</center>
{include file="global/block_footer.tpl"}

View File

@ -1,22 +0,0 @@
{if !$GLOBAL.website.api.disabled}
{include file="global/block_header.tpl" BLOCK_HEADER="API String"}
<p>This code will allow you to import the full API string into your mobile application.</p>
<script type="text/javascript" src="{$PATH}/js/jquery.qrcode.min.js"></script>
<script type="text/javascript">
{literal}
//Wrap it within $(document).ready() to invoke the function after DOM loads.
$(document).ready(function(){
$('#qrcodeholder').qrcode({
text : "{/literal}|http{if $smarty.server.HTTPS eq '1'}s{/if}://{$smarty.server.SERVER_NAME}{$smarty.server.PHP_SELF}?page=api|{$GLOBAL.userdata.api_key}|{$GLOBAL.userdata.id}|{literal}",
render : "canvas", // 'canvas' or 'table'. Default value is 'canvas'
background : "#ffffff",
foreground : "#000000",
width : 250,
height: 250
});
});
{/literal}
</script>
<div id="qrcodeholder"></div>
{include file="global/block_footer.tpl"}
{/if}

View File

@ -1,112 +0,0 @@
{include file="global/block_header.tpl" BLOCK_HEADER="Transaction Summary"}
<table>
<thead>
<tr>
{foreach $SUMMARY as $type=>$total}
<th>{$type}</th>
{/foreach}
</tr>
</thead>
<tbody>
<tr>
{foreach $SUMMARY as $type=>$total}
<td class="right">{$total}</td>
{/foreach}
</tr>
</tbody>
</table>
{include file="global/block_footer.tpl"}
{include file="global/block_header.tpl" ALIGN="left" BLOCK_STYLE="width: 23%" BLOCK_HEADER="Transaction Filter"}
<form action="{$smarty.server.PHP_SELF}">
<input type="hidden" name="page" value="{$smarty.request.page}" />
<input type="hidden" name="action" value="{$smarty.request.action}" />
<table cellpadding="1" cellspacing="1" width="100%">
<tbody>
<tr>
<td class="left">
{if $COUNTTRANSACTIONS / $LIMIT > 1}
{if $smarty.request.start|default:"0" > 0}
<a href="{$smarty.server.PHP_SELF}?page={$smarty.request.page}&action={$smarty.request.action}&start={$smarty.request.start|default:"0" - $LIMIT}{if $FILTERS|default:""}{$FILTERS}{/if}"><img src="{$PATH}/images/prev.png" /></a>
{else}
<img src="{$PATH}/images/prev.png" />
{/if}
{/if}
</td>
<td class="right">
{if $COUNTTRANSACTIONS / $LIMIT > 1}
{if $COUNTTRANSACTIONS - $smarty.request.start|default:"0" - $LIMIT > 0}
<a href="{$smarty.server.PHP_SELF}?page={$smarty.request.page}&action={$smarty.request.action}&start={$smarty.request.start|default:"0" + $LIMIT}{if $FILTERS|default:""}{$FILTERS}{/if}"><img src="{$PATH}/images/next.png" /></a>
{else}
<img src="{$PATH}/images/next.png" />
{/if}
{/if}
</td>
</tr>
<tr>
<td class="left">Type</td>
<td class="right">{html_options name="filter[type]" options=$TRANSACTIONTYPES selected=$smarty.request.filter.type|default:""}</td>
</tr>
<tr>
<td class="left">Status</td>
<td class="right">{html_options name="filter[status]" options=$TXSTATUS selected=$smarty.request.filter.status|default:""}</td>
</tr>
<tr>
<td class="center" colspan="2"><input type="submit" class="submit small" value="Filter"></td>
</tr>
</tbody>
</table>
</form>
{include file="global/block_footer.tpl"}
{include file="global/block_header.tpl" ALIGN="right" BLOCK_STYLE="width: 75%" BLOCK_HEADER="Transaction History"}
<div class="block_content" style="clear:;">
<center>
<table cellpadding="1" cellspacing="1" width="100%">
<thead style="font-size:13px;">
<tr>
<th class="header" style="cursor: pointer;">TX #</th>
<th class="header" style="cursor: pointer;">Account</th>
<th class="header" style="cursor: pointer;">Date</th>
<th class="header" style="cursor: pointer;">TX Type</th>
<th class="header" style="cursor: pointer;">Status</th>
<th class="header" style="cursor: pointer;">Payment Address</th>
<th class="header" style="cursor: pointer;">Block #</th>
<th class="header" style="cursor: pointer;">Amount</th>
</tr>
</thead>
<tbody style="font-size:12px;">
{section transaction $TRANSACTIONS}
<tr class="{cycle values="odd,even"}">
<td>{$TRANSACTIONS[transaction].id}</td>
<td>{$TRANSACTIONS[transaction].username}</td>
<td>{$TRANSACTIONS[transaction].timestamp}</td>
<td>{$TRANSACTIONS[transaction].type}</td>
<td>
{if $TRANSACTIONS[transaction].type == 'Credit_PPS' OR
$TRANSACTIONS[transaction].type == 'Fee_PPS' OR
$TRANSACTIONS[transaction].type == 'Donation_PPS' OR
$TRANSACTIONS[transaction].type == 'Debit_MP' OR
$TRANSACTIONS[transaction].type == 'Debit_AP' OR
$TRANSACTIONS[transaction].type == 'TXFee' OR
$TRANSACTIONS[transaction].confirmations >= $GLOBAL.confirmations
}<font color="green">Confirmed</font>
{else if $TRANSACTIONS[transaction].confirmations == -1}<font color="red">Orphaned</font>
{else}<font color="orange">Unconfirmed</font>{/if}
<font size="1px">({$TRANSACTIONS[transaction].confirmations|default:"n/a"})</font>
</td>
<td>{$TRANSACTIONS[transaction].coin_address}</td>
<td>{if $TRANSACTIONS[transaction].height == 0}n/a{else}{if $GLOBAL.website.blockexplorer.url}<a href="{$GLOBAL.website.blockexplorer.url}{$TRANSACTIONS[transaction].blockhash}">{$TRANSACTIONS[transaction].height}</a>{else}{$TRANSACTIONS[transaction].height}{/if}{/if}</td>
<td><font color="{if $TRANSACTIONS[transaction].type == 'Credit' or $TRANSACTIONS[transaction].type == 'Credit_PPS' or $TRANSACTIONS[transaction].type == 'Bonus'}green{else}red{/if}">{$TRANSACTIONS[transaction].amount|number_format:"8"}</td>
</tr>
{/section}
</tbody>
</table>
<p>
<font color="" size="1">
<b>Credit_AP</b> = Auto Threshold Payment, <b>Credit_MP</b> = Manual Payment, <b>Donation</b> = Donation, <b>Fee</b> = Pool Fees (if applicable)
</font>
</p>
</center>
</div>
{include file="global/block_footer.tpl"}

View File

@ -1,54 +0,0 @@
{include file="global/block_header.tpl" BLOCK_HEADER="My Workers"}
<center>
<form action="{$smarty.server.PHP_SELF}" method="post">
<input type="hidden" name="page" value="{$smarty.request.page}">
<input type="hidden" name="action" value="{$smarty.request.action}">
<input type="hidden" name="do" value="update">
<table border="0" cellpadding="3" cellspacing="3">
<tbody>
<tr>
<th>Worker Name</th>
<th>Password</th>
<th class="center">Active</th>
{if $GLOBAL.config.disable_notifications != 1}<th class="center">Monitor</th>{/if}
<th class="right">Khash/s</th>
<th class="right">Difficulty</th>
<th>Action</th>
</tr>
{nocache}
{section worker $WORKERS}
{assign var="username" value="."|escape|explode:$WORKERS[worker].username:2}
<tr>
<td{if $WORKERS[worker].hashrate > 0} style="color: orange"{/if}>{$username.0|escape}.<input name="data[{$WORKERS[worker].id}][username]" value="{$username.1|escape}" size="10" required/></td>
<td><input type="text" name="data[{$WORKERS[worker].id}][password]" value="{$WORKERS[worker].password|escape}" size="10" required></td>
<td class="center"><img src="{$PATH}/images/{if $WORKERS[worker].hashrate > 0}success{else}error{/if}.gif" /></td>
{if $GLOBAL.config.disable_notifications != 1}
<td class="center">
<input type="checkbox" name="data[{$WORKERS[worker].id}][monitor]" value="1" id="data[{$WORKERS[worker].id}][monitor]" {if $WORKERS[worker].monitor}checked{/if} />
<label for="data[{$WORKERS[worker].id}][monitor]"></label>
</td>
{/if}
<td class="right">{$WORKERS[worker].hashrate|number_format}</td>
<td class="right">{$WORKERS[worker].difficulty|number_format:"2"}</td>
<td align="right"><a href="{$smarty.server.PHP_SELF}?page={$smarty.request.page|escape}&action={$smarty.request.action|escape}&do=delete&id={$WORKERS[worker].id|escape}"><button style="padding:5px" type="button">Delete</button></a></td>
</tr>
{/section}
{/nocache}
</tbody>
</table>
<input type="submit" value="Update Workers" style="padding:5px">
</form>
</center>
<br/>
<br/>
<center>
<h2>Add a New Worker</h2>
<form action="{$smarty.server.PHP_SELF}" method="post">
<input type="hidden" name="page" value="{$smarty.request.page}">
<input type="hidden" name="action" value="{$smarty.request.action}">
<input type="hidden" name="do" value="add">
{$smarty.session.USERDATA.username}.<input type="text" name="username" value="user" size="10" maxlength="20" required> · <input type="text" name="password" value="password" size="10" maxlength="20" required>&nbsp;<input type="submit" value="Add New Worker" style="padding:5px;">
</form>
</center>
{include file="global/block_footer.tpl"}

View File

@ -1,3 +0,0 @@
{include file="global/block_header.tpl" BLOCK_HEADER="Admin Panel"}
<p>Welcome to the admin panel. Please select an option from the drop-down menu.</p>
{include file="global/block_footer.tpl"}

Some files were not shown because too many files have changed in this diff Show More