diff --git a/api.php b/api.php
index 2ed1790..eb28ecc 100644
--- a/api.php
+++ b/api.php
@@ -1,5 +1,5 @@
© WebCraft Media 2013'),
- array(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_SYSTEMPATHREL, 'system/'),
+ array(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_SYSTEMPATHREL, 'lib/system/'),
array(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS, array('deDE')),
array(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG, 'deDE'),
array(\SYSTEM\CONFIG\config_ids::SYS_CRON_LOG2SQLITE_PATH, '/home/web/webdir/slingit/slingit/files/log/'));
\ No newline at end of file
diff --git a/index.php b/index.php
index 845de10..29f4a57 100644
--- a/index.php
+++ b/index.php
@@ -1,5 +1,5 @@
-
-
-
- HashMask - Demo
-
-
-
-
-
-
-
-
-
- Login to HashMask Demo
-
-
-
-
-
-
-
-
diff --git a/slingit/lib/hashmask/jquery.hashmask.js b/slingit/lib/hashmask/jquery.hashmask.js
deleted file mode 100644
index b248427..0000000
--- a/slingit/lib/hashmask/jquery.hashmask.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * HashMask - a new approach to password masking security
- *
- * REQUIRES:
- * jquery.sparkline.js
- * a one way hashing method, currently sha1, provided by jquery.sha1.js
- *
- * @author Chris Dary
- * @copyright Copyright (c) 2009 {@link http://arc90.com Arc90 Inc.}
- * @license http://www.opensource.org/licenses/bsd-license.php
-**/
-
-(function($) {
- $.hashmask = {
- settings: {
- hashFunction: $.sha1,
- useColorAsHint: true,
- sparkInterval: 500,
- sparklineOptions: {
- width: '100px',
- height: 'auto',
- lineColor: '#69C',
- spotColor: false,
- minSpotColor: false,
- maxSpotColor: false
- }
- }
- };
-
- $.fn.hashmask = function(settings) {
- /**
- * @var object Contains an associative array of all settings for hashmask.
- **/
- settings = $.extend({}, $.hashmask.settings, settings);
-
- /**
- * Add hashmask hint to an input. The input must be of type password.
- *
- * @param selector string A jquery capable selector, as defined here: http://docs.jquery.com/Selectors
- * @return void
- **/
- return this.each(function() {
- var $sparkline, sparkTimeout, i;
- var $this = $(this);
-
- if(!$this.is('input[type="password"]'))
- {
- throw new Error('HashMask may only be used on inputs of type password.');
- }
-
- $sparkline = $('');
- $sparkline.css({
- position: 'absolute',
- top: $this.offset().top + parseInt($this.css('borderTopWidth'), 10),
- left: $this.offset().left + $this.outerWidth() - parseInt($this.css('borderRightWidth'), 10) - parseInt(settings.sparklineOptions.width, 10),
- width: settings.sparklineOptions.width,
- height: $this.outerHeight()
- });
- $sparkline.click(function() { $this.focus(); });
-
- $this.parents('form').append($sparkline);
-
- $this.keyup(function(e) {
- window.clearTimeout(sparkTimeout);
-
- var inputVal = $this.val();
- if(inputVal === "")
- {
- $sparkline.html("");
- return;
- }
-
- var inputHash = settings.hashFunction($this.val()).substr(0,20);
- var inputHexArr = inputHash.split('');
- var inputDecArr = [];
-
- /* Convert our hex string array into decimal numbers for sparkline consumption */
- for(i=0; i < inputHexArr.length; i++)
- {
- inputDecArr.push(parseInt(inputHexArr[i], 16));
- }
-
- var fillColor;
- if(settings.useColorAsHint)
- {
- fillColor = '#' + inputHash.substr(0,6);
- }
- else
- {
- fillColor = settings.sparklineOptions.fillColor
- }
-
- sparkTimeout = window.setTimeout(function() {
- $sparkline.sparkline(inputDecArr, $.extend( settings.sparklineOptions, {
- height: (settings.sparklineOptions.height == 'auto' ? $this.outerHeight() - parseInt($this.css('borderBottomWidth'), 10) - parseInt($this.css('borderTopWidth'), 10): settings.sparklineOptions.height),
- fillColor: fillColor
- }));
- }, settings.sparkInterval);
-
- });
-
- });
- };
-
-})(jQuery);
diff --git a/slingit/lib/hashmask/jquery.md5.js b/slingit/lib/hashmask/jquery.md5.js
deleted file mode 100644
index bf9bbe9..0000000
--- a/slingit/lib/hashmask/jquery.md5.js
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * jQuery MD5 Plugin 1.2.1
- * https://github.com/blueimp/jQuery-MD5
- *
- * Copyright 2010, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://creativecommons.org/licenses/MIT/
- *
- * Based on
- * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
- * Digest Algorithm, as defined in RFC 1321.
- * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
- * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
- * Distributed under the BSD License
- * See http://pajhome.org.uk/crypt/md5 for more info.
- */
-
-/*jslint bitwise: true */
-/*global unescape, jQuery */
-
-(function ($) {
- 'use strict';
-
- /*
- * Add integers, wrapping at 2^32. This uses 16-bit operations internally
- * to work around bugs in some JS interpreters.
- */
- function safe_add(x, y) {
- var lsw = (x & 0xFFFF) + (y & 0xFFFF),
- msw = (x >> 16) + (y >> 16) + (lsw >> 16);
- return (msw << 16) | (lsw & 0xFFFF);
- }
-
- /*
- * Bitwise rotate a 32-bit number to the left.
- */
- function bit_rol(num, cnt) {
- return (num << cnt) | (num >>> (32 - cnt));
- }
-
- /*
- * These functions implement the four basic operations the algorithm uses.
- */
- function md5_cmn(q, a, b, x, s, t) {
- return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b);
- }
- function md5_ff(a, b, c, d, x, s, t) {
- return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
- }
- function md5_gg(a, b, c, d, x, s, t) {
- return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
- }
- function md5_hh(a, b, c, d, x, s, t) {
- return md5_cmn(b ^ c ^ d, a, b, x, s, t);
- }
- function md5_ii(a, b, c, d, x, s, t) {
- return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
- }
-
- /*
- * Calculate the MD5 of an array of little-endian words, and a bit length.
- */
- function binl_md5(x, len) {
- /* append padding */
- x[len >> 5] |= 0x80 << ((len) % 32);
- x[(((len + 64) >>> 9) << 4) + 14] = len;
-
- var i, olda, oldb, oldc, oldd,
- a = 1732584193,
- b = -271733879,
- c = -1732584194,
- d = 271733878;
-
- for (i = 0; i < x.length; i += 16) {
- olda = a;
- oldb = b;
- oldc = c;
- oldd = d;
-
- a = md5_ff(a, b, c, d, x[i], 7, -680876936);
- d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);
- c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
- b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);
- a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);
- d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
- c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);
- b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);
- a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);
- d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);
- c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);
- b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);
- a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);
- d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);
- c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);
- b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);
-
- a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);
- d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);
- c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);
- b = md5_gg(b, c, d, a, x[i], 20, -373897302);
- a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);
- d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);
- c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);
- b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);
- a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);
- d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);
- c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);
- b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);
- a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);
- d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);
- c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);
- b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);
-
- a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);
- d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);
- c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);
- b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556);
- a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);
- d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);
- c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632);
- b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);
- a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);
- d = md5_hh(d, a, b, c, x[i], 11, -358537222);
- c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979);
- b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);
- a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487);
- d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835);
- c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);
- b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651);
-
- a = md5_ii(a, b, c, d, x[i], 6, -198630844);
- d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);
- c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);
- b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055);
- a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);
- d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);
- c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523);
- b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);
- a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);
- d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744);
- c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);
- b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);
- a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070);
- d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);
- c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);
- b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551);
-
- a = safe_add(a, olda);
- b = safe_add(b, oldb);
- c = safe_add(c, oldc);
- d = safe_add(d, oldd);
- }
- return [a, b, c, d];
- }
-
- /*
- * Convert an array of little-endian words to a string
- */
- function binl2rstr(input) {
- var i,
- output = '';
- for (i = 0; i < input.length * 32; i += 8) {
- output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF);
- }
- return output;
- }
-
- /*
- * Convert a raw string to an array of little-endian words
- * Characters >255 have their high-byte silently ignored.
- */
- function rstr2binl(input) {
- var i,
- output = [];
- output[(input.length >> 2) - 1] = undefined;
- for (i = 0; i < output.length; i += 1) {
- output[i] = 0;
- }
- for (i = 0; i < input.length * 8; i += 8) {
- output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32);
- }
- return output;
- }
-
- /*
- * Calculate the MD5 of a raw string
- */
- function rstr_md5(s) {
- return binl2rstr(binl_md5(rstr2binl(s), s.length * 8));
- }
-
- /*
- * Calculate the HMAC-MD5, of a key and some data (raw strings)
- */
- function rstr_hmac_md5(key, data) {
- var i,
- bkey = rstr2binl(key),
- ipad = [],
- opad = [],
- hash;
- ipad[15] = opad[15] = undefined;
- if (bkey.length > 16) {
- bkey = binl_md5(bkey, key.length * 8);
- }
- for (i = 0; i < 16; i += 1) {
- ipad[i] = bkey[i] ^ 0x36363636;
- opad[i] = bkey[i] ^ 0x5C5C5C5C;
- }
- hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
- return binl2rstr(binl_md5(opad.concat(hash), 512 + 128));
- }
-
- /*
- * Convert a raw string to a hex string
- */
- function rstr2hex(input) {
- var hex_tab = '0123456789abcdef',
- output = '',
- x,
- i;
- for (i = 0; i < input.length; i += 1) {
- x = input.charCodeAt(i);
- output += hex_tab.charAt((x >>> 4) & 0x0F) +
- hex_tab.charAt(x & 0x0F);
- }
- return output;
- }
-
- /*
- * Encode a string as utf-8
- */
- function str2rstr_utf8(input) {
- return unescape(encodeURIComponent(input));
- }
-
- /*
- * Take string arguments and return either raw or hex encoded strings
- */
- function raw_md5(s) {
- return rstr_md5(str2rstr_utf8(s));
- }
- function hex_md5(s) {
- return rstr2hex(raw_md5(s));
- }
- function raw_hmac_md5(k, d) {
- return rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d));
- }
- function hex_hmac_md5(k, d) {
- return rstr2hex(raw_hmac_md5(k, d));
- }
-
- $.md5 = function (string, key, raw) {
- if (!key) {
- if (!raw) {
- return hex_md5(string);
- } else {
- return raw_md5(string);
- }
- }
- if (!raw) {
- return hex_hmac_md5(key, string);
- } else {
- return raw_hmac_md5(key, string);
- }
- };
-
-}(typeof jQuery === 'function' ? jQuery : this));
\ No newline at end of file
diff --git a/slingit/lib/hashmask/jquery.sha1.js b/slingit/lib/hashmask/jquery.sha1.js
deleted file mode 100644
index 40c5725..0000000
--- a/slingit/lib/hashmask/jquery.sha1.js
+++ /dev/null
@@ -1,170 +0,0 @@
-
-/**
- * jQuery SHA1 hash algorithm function
- *
- *
- * Calculate the sha1 hash of a String
- * String $.sha1 ( String str )
- *
- *
- * Calculates the sha1 hash of str using the US Secure Hash Algorithm 1.
- * SHA-1 the Secure Hash Algorithm (SHA) was developed by NIST and is specified in the Secure Hash Standard (SHS, FIPS 180).
- * This script is used to process variable length message into a fixed-length output using the SHA-1 algorithm. It is fully compatible with UTF-8 encoding.
- * If you plan using UTF-8 encoding in your project don't forget to set the page encoding to UTF-8 (Content-Type meta tag).
- * This function orginally get from the WebToolkit and rewrite for using as the jQuery plugin.
- *
- * Example
- * Code
- *
- * $.sha1("I'm Persian.");
- *
- * Result
- *
- * "1d302f9dc925d62fc859055999d2052e274513ed"
- *
- *
- * @alias Muhammad Hussein Fattahizadeh < muhammad [AT] semnanweb [DOT] com >
- * @link http://www.semnanweb.com/jquery-plugin/sha1.html
- * @see http://www.webtoolkit.info/
- * @license http://www.gnu.org/licenses/gpl.html [GNU General Public License]
- * @param {jQuery} {sha1:function(string))
- * @return string
- */
-
-(function($){
-
- var rotateLeft = function(lValue, iShiftBits) {
- return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
- }
-
- var lsbHex = function(value) {
- var string = "";
- var i;
- var vh;
- var vl;
- for(i = 0;i <= 6;i += 2) {
- vh = (value>>>(i * 4 + 4))&0x0f;
- vl = (value>>>(i*4))&0x0f;
- string += vh.toString(16) + vl.toString(16);
- }
- return string;
- };
-
- var cvtHex = function(value) {
- var string = "";
- var i;
- var v;
- for(i = 7;i >= 0;i--) {
- v = (value>>>(i * 4))&0x0f;
- string += v.toString(16);
- }
- return string;
- };
-
- var uTF8Encode = function(string) {
- string = string.replace(/\x0d\x0a/g, "\x0a");
- var output = "";
- for (var n = 0; n < string.length; n++) {
- var c = string.charCodeAt(n);
- if (c < 128) {
- output += String.fromCharCode(c);
- } else if ((c > 127) && (c < 2048)) {
- output += String.fromCharCode((c >> 6) | 192);
- output += String.fromCharCode((c & 63) | 128);
- } else {
- output += String.fromCharCode((c >> 12) | 224);
- output += String.fromCharCode(((c >> 6) & 63) | 128);
- output += String.fromCharCode((c & 63) | 128);
- }
- }
- return output;
- };
-
- $.extend({
- sha1: function(string) {
- var blockstart;
- var i, j;
- var W = new Array(80);
- var H0 = 0x67452301;
- var H1 = 0xEFCDAB89;
- var H2 = 0x98BADCFE;
- var H3 = 0x10325476;
- var H4 = 0xC3D2E1F0;
- var A, B, C, D, E;
- var tempValue;
- string = uTF8Encode(string);
- var stringLength = string.length;
- var wordArray = new Array();
- for(i = 0;i < stringLength - 3;i += 4) {
- j = string.charCodeAt(i)<<24 | string.charCodeAt(i + 1)<<16 | string.charCodeAt(i + 2)<<8 | string.charCodeAt(i + 3);
- wordArray.push(j);
- }
- switch(stringLength % 4) {
- case 0:
- i = 0x080000000;
- break;
- case 1:
- i = string.charCodeAt(stringLength - 1)<<24 | 0x0800000;
- break;
- case 2:
- i = string.charCodeAt(stringLength - 2)<<24 | string.charCodeAt(stringLength - 1)<<16 | 0x08000;
- break;
- case 3:
- i = string.charCodeAt(stringLength - 3)<<24 | string.charCodeAt(stringLength - 2)<<16 | string.charCodeAt(stringLength - 1)<<8 | 0x80;
- break;
- }
- wordArray.push(i);
- while((wordArray.length % 16) != 14 ) wordArray.push(0);
- wordArray.push(stringLength>>>29);
- wordArray.push((stringLength<<3)&0x0ffffffff);
- for(blockstart = 0;blockstart < wordArray.length;blockstart += 16) {
- for(i = 0;i < 16;i++) W[i] = wordArray[blockstart+i];
- for(i = 16;i <= 79;i++) W[i] = rotateLeft(W[i-3] ^ W[i-8] ^ W[i-14] ^ W[i-16], 1);
- A = H0;
- B = H1;
- C = H2;
- D = H3;
- E = H4;
- for(i = 0;i <= 19;i++) {
- tempValue = (rotateLeft(A, 5) + ((B&C) | (~B&D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
- E = D;
- D = C;
- C = rotateLeft(B, 30);
- B = A;
- A = tempValue;
- }
- for(i = 20;i <= 39;i++) {
- tempValue = (rotateLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
- E = D;
- D = C;
- C = rotateLeft(B, 30);
- B = A;
- A = tempValue;
- }
- for(i = 40;i <= 59;i++) {
- tempValue = (rotateLeft(A, 5) + ((B&C) | (B&D) | (C&D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
- E = D;
- D = C;
- C = rotateLeft(B, 30);
- B = A;
- A = tempValue;
- }
- for(i = 60;i <= 79;i++) {
- tempValue = (rotateLeft(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
- E = D;
- D = C;
- C = rotateLeft(B, 30);
- B = A;
- A = tempValue;
- }
- H0 = (H0 + A) & 0x0ffffffff;
- H1 = (H1 + B) & 0x0ffffffff;
- H2 = (H2 + C) & 0x0ffffffff;
- H3 = (H3 + D) & 0x0ffffffff;
- H4 = (H4 + E) & 0x0ffffffff;
- }
- var tempValue = cvtHex(H0) + cvtHex(H1) + cvtHex(H2) + cvtHex(H3) + cvtHex(H4);
- return tempValue.toLowerCase();
- }
- });
-})(jQuery);
\ No newline at end of file
diff --git a/slingit/lib/hashmask/jquery.sparkline.js b/slingit/lib/hashmask/jquery.sparkline.js
deleted file mode 100644
index f0fba50..0000000
--- a/slingit/lib/hashmask/jquery.sparkline.js
+++ /dev/null
@@ -1,936 +0,0 @@
-/**
-*
-* jquery.sparkline.js
-*
-* v1.4.2
-* (c) Splunk, Inc
-* Contact: Gareth Watts (gareth@splunk.com)
-* http://omnipotent.net/jquery.sparkline/
-*
-* Generates inline sparkline charts from data supplied either to the method
-* or inline in HTML
-*
-* Compatible with Internet Explorer 6.0+ and modern browsers equipped with the canvas tag
-* (Firefox 2.0+, Safari, Opera, etc)
-*
-* License: New BSD License
-*
-* Copyright (c) 2009, Splunk Inc.
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without modification,
-* are permitted provided that the following conditions are met:
-*
-* * Redistributions of source code must retain the above copyright notice,
-* this list of conditions and the following disclaimer.
-* * Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following disclaimer in the documentation
-* and/or other materials provided with the distribution.
-* * Neither the name of Splunk Inc nor the names of its contributors may
-* be used to endorse or promote products derived from this software without
-* specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
-* SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*
-*
-* Usage:
-* $(selector).sparkline(values, options)
-*
-* If values is undefined or set to 'html' then the data values are read from the specified tag:
-* Sparkline: 1,4,6,6,8,5,3,5
-* $('.sparkline').sparkline();
-* There must be no spaces in the enclosed data set
-*
-* Otherwise values must be an array of numbers
-* Sparkline: This text replaced if the browser is compatible
-* $('#sparkline1').sparkline([1,4,6,6,8,5,3,5])
-*
-* For line charts, x values can also be specified:
-* Sparkline: 1:1,2.7:4,3.4:6,5:6,6:8,8.7:5,9:3,10:5
-* $('#sparkline1').sparkline([ [1,1], [2.7,4], [3.4,6], [5,6], [6,8], [8.7,5], [9,3], [10,5] ])
-*
-* Supported options:
-* lineColor - Color of the line used for the chart
-* fillColor - Color used to fill in the chart - Set to '' or false for a transparent chart
-* width - Width of the chart - Defaults to 3 times the number of values in pixels
-* height - Height of the chart - Defaults to the height of the containing element
-* chartRangeMin - Specify the minimum value to use for the range of the chart - Defaults to the minimum value supplied
-* chartRangeMax - Specify the maximum value to use for the range of the chart - Defaults to the maximum value supplied
-* composite - If true then don't erase any existing chart attached to the tag, but draw
-* another chart over the top - Note that width and height are ignored if an
-* existing chart is detected.
-*
-* There are 7 types of sparkline, selected by supplying a "type" option of 'line' (default),
-* 'bar', 'tristate', 'bullet', 'discrete', 'pie' or 'box'
-* line - Line chart. Options:
-* spotColor - Set to '' to not end each line in a circular spot
-* minSpotColor - If set, color of spot at minimum value
-* maxSpotColor - If set, color of spot at maximum value
-* spotRadius - Radius in pixels
-* normalRangeMin
-* normalRangeMax - If set draws a filled horizontal bar between these two values marking the "normal"
-* or expected range of values
-* normalRangeColor - Color to use for the above bar
-* defaultPixelsPerValue - Defaults to 3 pixels of width for each value in the chart
-*
-* bar - Bar chart. Options:
-* barColor - Color of bars for postive values
-* negBarColor - Color of bars for negative values
-* barWidth - Width of bars in pixels
-* barSpacing - Gap between bars in pixels
-* zeroAxis - Centers the y-axis around zero if true
-*
-* tristate - Charts values of win (>0), lose (<0) or draw (=0)
-* posBarColor - Color of win values
-* negBarColor - Color of lose values
-* zeroBarColor - Color of draw values
-* barWidth - Width of bars in pixels
-* barSpacing - Gap between bars in pixels
-* colorMap - Optional mappnig of values to colors to override the *BarColor values above
-*
-* discrete - Options:
-* lineHeight - Height of each line in pixels - Defaults to 30% of the graph height
-* thesholdValue - Values less than this value will be drawn using thresholdColor instead of lineColor
-* thresholdColor
-*
-* bullet - Values for bullet graphs msut be in the order: target, performance, range1, range2, range3, ...
-* options:
-* targetColor - The color of the vertical target marker
-* targetWidth - The width of the target marker in pixels
-* performanceColor - The color of the performance measure horizontal bar
-* rangeColors - Colors to use for each qualitative range background color
-*
-* pie - Pie chart. Options:
-* sliceColors - An array of colors to use for pie slices
-* offset - Angle in degrees to offset the first slice - Try -90 or +90
-*
-* box - Box plot. Options:
-* raw - Set to true to supply pre-computed plot points as values
-* values should be: low_outlier, low_whisker, q1, median, q3, high_whisker, high_outlier
-* When set to false you can supply any number of values and the box plot will
-* be computed for you. Default is false.
-* showOutliers - Set to true (default) to display outliers as circles
-* outlierIRQ - Interquartile range used to determine outliers. Default 1.5
-* boxLineColor - Outline color of the box
-* boxFillColor - Fill color for the box
-* whiskerColor - Line color used for whiskers
-* outlierLineColor - Outline color of outlier circles
-* outlierFillColor - Fill color of the outlier circles
-* spotRadius - Radius of outlier circles
-* medianColor - Line color of the median line
-* target - Draw a target cross hair at the supplied value (default undefined)
-*
-*
-*
-* Examples:
-* $('#sparkline1').sparkline(myvalues, { lineColor: '#f00', fillColor: false });
-* $('.barsparks').sparkline('html', { type:'bar', height:'40px', barWidth:5 });
-* $('#tristate').sparkline([1,1,-1,1,0,0,-1], { type:'tristate' }):
-* $('#discrete').sparkline([1,3,4,5,5,3,4,5], { type:'discrete' });
-* $('#bullet').sparkline([10,12,12,9,7], { type:'bullet' });
-* $('#pie').sparkline([1,1,2], { type:'pie' });
-*/
-
-
-(function($) {
-
- // Provide a cross-browser interface to a few simple drawing primitives
- $.fn.simpledraw = function(width, height, use_existing) {
- if (use_existing && this[0].vcanvas) return this[0].vcanvas;
- if (width==undefined) width=$(this).innerWidth();
- if (height==undefined) height=$(this).innerHeight();
- if ($.browser.hasCanvas) {
- return new vcanvas_canvas(width, height, this);
- } else if ($.browser.msie) {
- return new vcanvas_vml(width, height, this);
- } else {
- return false;
- }
- };
-
- var pending = [];
-
- $.fn.sparkline = function(uservalues, options) {
- var options = $.extend({
- type : 'line',
- lineColor : '#00f',
- fillColor : '#cdf',
- defaultPixelsPerValue : 3,
- width : 'auto',
- height : 'auto',
- composite : false
- }, options ? options : {});
-
- return this.each(function() {
- var render = function() {
- var values = (uservalues=='html' || uservalues==undefined) ? $(this).text().split(',') : uservalues;
-
- var width = options.width=='auto' ? values.length*options.defaultPixelsPerValue : options.width;
- if (options.height == 'auto') {
- if (!options.composite || !this.vcanvas) {
- // must be a better way to get the line height
- var tmp = document.createElement('span');
- tmp.innerHTML = 'a';
- $(this).html(tmp);
- height = $(tmp).innerHeight();
- $(tmp).remove();
- }
- } else {
- height = options.height;
- }
-
- $.fn.sparkline[options.type].call(this, values, options, width, height);
- }
- // jQuery 1.3.0 completely changed the meaning of :hidden :-/
- if (($(this).html() && $(this).is(':hidden')) || ($.fn.jquery < "1.3.0" && $(this).parents().is(':hidden'))) {
- pending.push([this, render]);
- } else {
- render.call(this);
- }
- });
- };
-
-
- $.sparkline_display_visible = function() {
- for (var i=pending.length-1; i>=0; i--) {
- var el = pending[i][0];
- if ($(el).is(':visible') && !$(el).parents().is(':hidden')) {
- pending[i][1].call(el);
- pending.splice(i, 1);
- }
- }
- };
-
- $.fn.sparkline.line = function(values, options, width, height) {
- var options = $.extend({
- spotColor : '#f80',
- spotRadius : 1.5,
- minSpotColor : '#f80',
- maxSpotColor : '#f80',
- normalRangeMin : undefined,
- normalRangeMax : undefined,
- normalRangeColor : '#ccc',
- chartRangeMin : undefined,
- chartRangeMax : undefined
- }, options ? options : {});
-
- var xvalues = [], yvalues = [];
- for (i=0; imaxy)
- maxy = options.normalRangeMax;
- }
- if (options.chartRangeMin!=undefined && options.chartRangeMinmaxy) {
- maxy = options.chartRangeMax;
- }
- var rangex = maxx-minx == 0 ? 1 : maxx-minx;
- var rangey = maxy-miny == 0 ? 1 : maxy-miny;
- var vl = yvalues.length-1;
-
- if (vl<1) {
- this.innerHTML = '';
- return;
- }
-
- var target = $(this).simpledraw(width, height, options.composite);
- if (target) {
- var canvas_width = target.pixel_width;
- var canvas_height = target.pixel_height;
- var canvas_top = 0;
- var canvas_left = 0;
-
- if (options.spotRadius && (canvas_width < (options.spotRadius*4) || canvas_height < (options.spotRadius*4))) {
- options.spotRadius = 0;
- }
- if (options.spotRadius) {
- // adjust the canvas size as required so that spots will fit
- if (options.minSpotColor || (options.spotColor && yvalues[vl]==miny))
- canvas_height -= Math.ceil(options.spotRadius);
- if (options.maxSpotColor || (options.spotColor && yvalues[vl]==maxy)) {
- canvas_height -= Math.ceil(options.spotRadius);
- canvas_top += Math.ceil(options.spotRadius);
- }
- if (options.minSpotColor || options.maxSpotColor && (yvalues[0]==miny || yvalues[0]==maxy)) {
- canvas_left += Math.ceil(options.spotRadius);
- canvas_width -= Math.ceil(options.spotRadius);
- }
- if (options.spotColor || (options.minSpotColor || options.maxSpotColor && (yvalues[vl]==miny||yvalues[vl]==maxy)))
- canvas_width -= Math.ceil(options.spotRadius);
- }
-
-
- canvas_height--;
- if (options.normalRangeMin!=undefined) {
- var ytop = canvas_top+Math.round(canvas_height-(canvas_height*((options.normalRangeMax-miny)/rangey)));
- var height = Math.round((canvas_height*(options.normalRangeMax-options.normalRangeMin))/rangey);
- target.drawRect(canvas_left, ytop, canvas_width, height, undefined, options.normalRangeColor);
- }
-
- var path = [ [canvas_left, canvas_top+canvas_height] ];
- for(var i=0; imax) {
- max = options.chartRangeMax;
- }
- if (options.zeroAxis == undefined) options.zeroAxis = min<0;
- var range = max-min == 0 ? 1 : max-min;
-
- var target = $(this).simpledraw(width, height);
- if (target) {
- var canvas_width = target.pixel_width;
- var canvas_height = target.pixel_height;
- var yzero = min<0 && options.zeroAxis ? canvas_height-Math.round(canvas_height * (Math.abs(min)/range))-1 : canvas_height-1;
-
- for(var i=0; i 0) {
- var y = 0;
- var height = half_height-1;
- var color = options.posBarColor;
- } else {
- var y = half_height-1;
- var height = 2;
- var color = options.zeroBarColor;
- }
- if (options.colorMap[values[i]]) {
- color = options.colorMap[values[i]];
- }
- target.drawRect(x, y, options.barWidth-1, height-1, color, color);
- }
- } else {
- // Remove the tag contents if sparklines aren't supported
- this.innerHTML = '';
- }
- };
-
- $.fn.sparkline.discrete = function(values, options, width, height) {
- values = $.map(values, Number);
- var options = $.extend({
- lineHeight: 'auto',
- thresholdColor: undefined,
- thresholdValue : 0,
- chartRangeMax: undefined,
- chartRangeMin: undefined
- }, options);
-
- width = options.width=='auto' ? values.length*2 : width;
- var interval = Math.floor(width / values.length);
-
- var target = $(this).simpledraw(width, height);
- if (target) {
- var canvas_width = target.pixel_width;
- var canvas_height = target.pixel_height;
- var line_height = options.lineHeight == 'auto' ? Math.round(canvas_height * 0.3) : options.lineHeight;
- var pheight = canvas_height - line_height;
- var min = Math.min.apply(Math, values);
- var max = Math.max.apply(Math, values);
- if (options.chartRangeMin!=undefined && options.chartRangeMinmax) {
- max = options.chartRangeMax;
- }
- var range = max-min;
-
- for(var i=0; i1) {
- var canvas_width = target.pixel_width-Math.ceil(options.targetWidth/2);
- var canvas_height = target.pixel_height;
-
- var min = Math.min.apply(Math, values);
- var max = Math.max.apply(Math, values);
- if (options.base == undefined) {
- var min = min < 0 ? min : 0;
- } else {
- min = options.base;
- }
- var range = max-min;
-
- // draw range values
- for(i=2; i1) {
- var canvas_width = target.pixel_width;
- var canvas_height = target.pixel_height;
-
- var radius = Math.floor(Math.min(canvas_width, canvas_height)/2);
- var total = 0;
- for(var i=0; i 0) { // avoid divide by zero
- end = next + (circle*(values[i]/total));
- }
- target.drawPieSlice(radius, radius, radius, start, end, undefined, options.sliceColors[i % options.sliceColors.length]);
- next = end;
- }
- }
- };
-
- function quartile(values, q) {
- if (q==2) {
- var vl2 = Math.floor(values.length/2);
- return values.length % 2 ? values[vl2] : (values[vl2]+values[vl2+1])/2;
- } else {
- var vl4 = Math.floor(values.length/4);
- return values.length % 2 ? (values[vl4*q]+values[vl4*q+1])/2 : values[vl4*q];
- }
- };
-
- $.fn.sparkline.box = function(values, options, width, height) {
- values = $.map(values, Number);
- var options = $.extend({
- raw: false,
- boxLineColor: 'black',
- boxFillColor: '#cdf',
- whiskerColor: 'black',
- outlierLineColor: '#333',
- outlierFillColor: 'white',
- medianColor: 'red',
- showOutliers: true,
- outlierIQR: 1.5,
- spotRadius: 1.5,
- target: undefined,
- targetColor: '#4a2',
- chartRangeMax: undefined,
- chartRangeMin: undefined
- }, options);
-
- width = options.width=='auto' ? '4.0em' : width;
-
- minvalue = options.chartRangeMin==undefined ? Math.min.apply(Math, values) : options.chartRangeMin;
- maxvalue = options.chartRangeMax==undefined ? Math.max.apply(Math, values) : options.chartRangeMax;
- var target = $(this).simpledraw(width, height);
- if (target && values.length>1) {
- var canvas_width = target.pixel_width;
- var canvas_height = target.pixel_height;
- if (options.raw) {
- if (options.showOutliers && values.length>5) {
- var loutlier=values[0], lwhisker=values[1], q1=values[2], q2=values[3], q3=values[4], rwhisker=values[5], routlier=values[6];
- } else {
- var lwhisker=values[0], q1=values[1], q2=values[2], q3=values[3], rwhisker=values[4];
- }
- } else {
- values.sort(function(a, b) { return a-b; });
- var q1 = quartile(values, 1);
- var q2 = quartile(values, 2);
- var q3 = quartile(values, 3);
- var iqr = q3-q1;
- if (options.showOutliers) {
- var lwhisker=undefined, rwhisker=undefined;
- for(var i=0; i q1-(iqr*options.outlierIQR))
- lwhisker = values[i];
- if (values[i] < q3+(iqr*options.outlierIQR))
- rwhisker = values[i];
- }
- var loutlier = values[0];
- var routlier = values[values.length-1];
- } else {
- var lwhisker = values[0];
- var rwhisker = values[values.length-1];
- }
- }
-
- var unitsize = canvas_width / (maxvalue-minvalue+1);
- var canvas_left = 0;
- if (options.showOutliers) {
- canvas_left = Math.ceil(options.spotRadius);
- canvas_width -= 2*Math.ceil(options.spotRadius);
- var unitsize = canvas_width / (maxvalue-minvalue+1);
- if (loutlier < lwhisker)
- target.drawCircle((loutlier-minvalue)*unitsize+canvas_left, canvas_height/2, options.spotRadius, options.outlierLineColor, options.outlierFillColor);
- if (routlier > rwhisker)
- target.drawCircle((routlier-minvalue)*unitsize+canvas_left, canvas_height/2, options.spotRadius, options.outlierLineColor, options.outlierFillColor);
- }
-
- // box
- target.drawRect(
- Math.round((q1-minvalue)*unitsize+canvas_left),
- Math.round(canvas_height*0.1),
- Math.round((q3-q1)*unitsize),
- Math.round(canvas_height*0.8),
- options.boxLineColor,
- options.boxFillColor);
- // left whisker
- target.drawLine(
- Math.round((lwhisker-minvalue)*unitsize+canvas_left),
- Math.round(canvas_height/2),
- Math.round((q1-minvalue)*unitsize+canvas_left),
- Math.round(canvas_height/2),
- options.lineColor);
- target.drawLine(
- Math.round((lwhisker-minvalue)*unitsize+canvas_left),
- Math.round(canvas_height/4),
- Math.round((lwhisker-minvalue)*unitsize+canvas_left),
- Math.round(canvas_height-canvas_height/4),
- options.whiskerColor);
- // right whisker
- target.drawLine(Math.round((rwhisker-minvalue)*unitsize+canvas_left),
- Math.round(canvas_height/2),
- Math.round((q3-minvalue)*unitsize+canvas_left),
- Math.round(canvas_height/2),
- options.lineColor);
- target.drawLine(
- Math.round((rwhisker-minvalue)*unitsize+canvas_left),
- Math.round(canvas_height/4),
- Math.round((rwhisker-minvalue)*unitsize+canvas_left),
- Math.round(canvas_height-canvas_height/4),
- options.whiskerColor);
- // median line
- target.drawLine(
- Math.round((q2-minvalue)*unitsize+canvas_left),
- Math.round(canvas_height*0.1),
- Math.round((q2-minvalue)*unitsize+canvas_left),
- Math.round(canvas_height*0.9),
- options.medianColor);
- if (options.target) {
- var size = Math.ceil(options.spotRadius);
- target.drawLine(
- Math.round((options.target-minvalue)*unitsize+canvas_left),
- Math.round((canvas_height/2)-size),
- Math.round((options.target-minvalue)*unitsize+canvas_left),
- Math.round((canvas_height/2)+size),
- options.targetColor);
- target.drawLine(
- Math.round((options.target-minvalue)*unitsize+canvas_left-size),
- Math.round(canvas_height/2),
- Math.round((options.target-minvalue)*unitsize+canvas_left+size),
- Math.round(canvas_height/2),
- options.targetColor);
- }
- } else {
- // Remove the tag contents if sparklines aren't supported
- this.innerHTML = '';
- }
- };
-
-
- // IE doesn't provide an indexOf method for arrays :-(
- if (!Array.prototype.indexOf) {
- Array.prototype.indexOf = function(entry) {
- for(var i=0; i';
- this.canvas.insertAdjacentHTML('beforeEnd', groupel);
- this.group = $(this.canvas).children()[0];
- },
-
- drawShape : function(path, lineColor, fillColor) {
- var vpath = [];
- for(var i=0; i'
- +' ';
- this.group.insertAdjacentHTML('beforeEnd', vel);
- },
-
- drawCircle : function(x, y, radius, lineColor, fillColor) {
- x -= radius+1;
- y -= radius+1;
- var stroke = lineColor == undefined ? ' stroked="false" ' : ' strokeWeight="1" strokeColor="'+lineColor+'" ';
- var fill = fillColor == undefined ? ' filled="false"' : ' fillColor="'+fillColor+'" filled="true" ';
- var vel = '';
- this.group.insertAdjacentHTML('beforeEnd', vel);
-
- },
-
- drawPieSlice : function(x, y, radius, startAngle, endAngle, lineColor, fillColor) {
- if (startAngle == endAngle) {
- return; // VML seems to have problem when start angle equals end angle.
- }
- if ((endAngle - startAngle) == (2*Math.PI)) {
- startAngle = 0.0; // VML seems to have a problem when drawing a full circle that doesn't start 0
- endAngle = (2*Math.PI);
- }
-
- var startx = x + Math.round(Math.cos(startAngle) * radius);
- var starty = y + Math.round(Math.sin(startAngle) * radius);
- var endx = x + Math.round(Math.cos(endAngle) * radius);
- var endy = y + Math.round(Math.sin(endAngle) * radius);
-
- var vpath = [ x-radius, y-radius, x+radius, y+radius, startx, starty, endx, endy ];
- var stroke = lineColor == undefined ? ' stroked="false" ' : ' strokeWeight="1" strokeColor="'+lineColor+'" ';
- var fill = fillColor == undefined ? ' filled="false"' : ' fillColor="'+fillColor+'" filled="true" ';
- var vel = ''
- +' ';
- this.group.insertAdjacentHTML('beforeEnd', vel);
- },
-
- drawRect : function(x, y, width, height, lineColor, fillColor) {
- return this.drawShape( [ [x, y], [x, y+height], [x+width, y+height], [x+width, y], [x, y] ], lineColor, fillColor);
- }
- });
-
-})(jQuery);
diff --git a/slingit/page/default_page/default_page.php b/slingit/page/default_page/default_page.php
index c59938b..c2f5397 100644
--- a/slingit/page/default_page/default_page.php
+++ b/slingit/page/default_page/default_page.php
@@ -2,8 +2,8 @@
class default_page extends \SYSTEM\PAGE\Page {
private function js(){
return ''.
- ''.
- ''.
+ //''.
+ ''.
//''.
//''.
//''.
@@ -13,10 +13,10 @@ class default_page extends \SYSTEM\PAGE\Page {
}
private function css(){
- return ''.
- ''.
- ''.
- '';
+ return '';
+ //''.
+ //''.
+ //'';
}
public function html(){
diff --git a/slingit/path/PLIB.php b/slingit/path/PLIB.php
index 9639089..f0bb5dd 100644
--- a/slingit/path/PLIB.php
+++ b/slingit/path/PLIB.php
@@ -1,5 +1,5 @@