mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Removed unused files from include directory
This commit is contained in:
@@ -1,50 +0,0 @@
|
||||
CSS FILES
|
||||
*****************************
|
||||
in einzubindender Reihenfolge
|
||||
Alle CSS Files im Ordner trunk/skin
|
||||
|
||||
jquery.css
|
||||
->autocomplete
|
||||
->datepicker
|
||||
|
||||
tabelsort.css
|
||||
->tablesort
|
||||
|
||||
fhcomplete.css
|
||||
|
||||
wawi/cis/fas.css
|
||||
|
||||
|
||||
JS FILES
|
||||
*****************************
|
||||
in einzubindender Reihenfolge
|
||||
Alle JS Files im Ordner trunk/include/js
|
||||
|
||||
|
||||
|
||||
// DEPRECATED NICHT MEHR VERWENDEN!
|
||||
jquery.js
|
||||
->autocomplete (Plugin Version)
|
||||
->datepicker
|
||||
->tablesorter
|
||||
->Deutsches Schema fuer datepicker
|
||||
|
||||
|
||||
|
||||
jquery1.9.min.js
|
||||
-> jqueryUI (autocomplete, datepicker, etc)
|
||||
-> Deutsches Schema für datepicker
|
||||
-> tablesorter
|
||||
|
||||
|
||||
Tablesorter
|
||||
**************
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[2,1]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,828 +0,0 @@
|
||||
/*
|
||||
* BarCode Coder Library (BCC Library)
|
||||
* BCCL Version 1.0
|
||||
*
|
||||
* Porting : Jquery barcode plugin
|
||||
* Version : 1.3.3
|
||||
*
|
||||
* Date : October 17 2009
|
||||
* Author : DEMONTE Jean-Baptiste (firejocker)
|
||||
* Contact : jbdemonte @ gmail.com
|
||||
* Web site: http://barcode-coder.com/
|
||||
* dual licence : http://www.cecill.info/licences/Licence_CeCILL_V2-fr.html
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* Managed :
|
||||
*
|
||||
* standard 2 of 5 (std25)
|
||||
* interleaved 2 of 5 (int25)
|
||||
* ean 8 (ean8)
|
||||
* ean 13 (ean13)
|
||||
* code 11 (code11)
|
||||
* code 39 (code39)
|
||||
* code 93 (code93)
|
||||
* code 128 (code128)
|
||||
* codabar (codabar)
|
||||
* msi (msi)
|
||||
*
|
||||
* Output :
|
||||
*
|
||||
* CSS (compatible with any browser) - To print, you must set the option in your browser "print background image"
|
||||
* SVG inline (not compatible with IE)
|
||||
* BMP inline (not compatible with IE)
|
||||
*
|
||||
*
|
||||
* 1.1 - 2009/05/26
|
||||
* -> std25 fixed
|
||||
*
|
||||
* 1.2 - 2009/09/10
|
||||
* parseInt replaced by intval (nb: parseInt("09") => 0)
|
||||
* code128 fixed (C Table analyse)
|
||||
* Thanks to Vadim for the bug reporting
|
||||
* 1.3 - 2009/09/26
|
||||
* add bmp and svg image renderer
|
||||
* 1.3.2 - 2009/10/03
|
||||
* manage int and string formated values for barcode width/height
|
||||
* 1.3.3 - 2009/10/17
|
||||
* no wait document is ready to add plugin
|
||||
*
|
||||
*/
|
||||
|
||||
$.barcode = {
|
||||
settings:{
|
||||
barWidth: 1,
|
||||
barHeight: 50,
|
||||
showHRI: true,
|
||||
marginHRI: 5,
|
||||
bgColor: "#FFFFFF",
|
||||
color: "#000000",
|
||||
fontSize: "10px",
|
||||
output: "css"
|
||||
},
|
||||
intval: function(val){
|
||||
var type = typeof( val );
|
||||
if (type == 'string'){
|
||||
val = val.replace(/[^0-9-.]/g, "");
|
||||
val = parseInt(val * 1, 10);
|
||||
if (isNaN(val) || !isFinite(val)){
|
||||
return 0;
|
||||
} else{
|
||||
return val;
|
||||
}
|
||||
} else if (type == 'number' && isFinite(val) ){
|
||||
return Math.floor(val);
|
||||
} else{
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
i25: { // std25 int25
|
||||
encoding: [ "NNWWN", "WNNNW", "NWNNW", "WWNNN", "NNWNW",
|
||||
"WNWNN", "NWWNN", "NNNWW", "WNNWN","NWNWN"],
|
||||
compute: function(code, crc, type){
|
||||
if (! crc) {
|
||||
if (code.length % 2 != 0) code = '0' + code;
|
||||
} else {
|
||||
if ( (type == "int25") && (code.length % 2 == 0) ) code = '0' + code;
|
||||
var odd = true, v, sum = 0;
|
||||
for(var i=code.length-1; i>-1; i--){
|
||||
v = $.barcode.intval(code.charAt(i));
|
||||
if (isNaN(v)) return("");
|
||||
sum += odd ? 3 * v : v;
|
||||
odd = ! odd;
|
||||
}
|
||||
code += ((10 - sum % 10) % 10).toString();
|
||||
}
|
||||
return(code);
|
||||
},
|
||||
getDigit: function(code, crc, type){
|
||||
code = this.compute(code, crc, type);
|
||||
if (code == "") return("");
|
||||
result = "";
|
||||
|
||||
var i, j;
|
||||
if (type == "int25") {
|
||||
// Interleaved 2 of 5
|
||||
|
||||
// start
|
||||
result += "1010";
|
||||
|
||||
// digits + CRC
|
||||
var c1, c2;
|
||||
for(i=0; i<code.length / 2; i++){
|
||||
c1 = code.charAt(2*i);
|
||||
c2 = code.charAt(2*i+1);
|
||||
for(j=0; j<5; j++){
|
||||
result += '1';
|
||||
if (this.encoding[c1].charAt(j) == 'W') result += '1';
|
||||
result += '0';
|
||||
if (this.encoding[c2].charAt(j) == 'W') result += '0';
|
||||
}
|
||||
}
|
||||
// stop
|
||||
result += "1101";
|
||||
} else if (type == "std25") {
|
||||
// Standard 2 of 5 is a numeric-only barcode that has been in use a long time.
|
||||
// Unlike Interleaved 2 of 5, all of the information is encoded in the bars; the spaces are fixed width and are used only to separate the bars.
|
||||
// The code is self-checking and does not include a checksum.
|
||||
|
||||
// start
|
||||
result += "11011010";
|
||||
|
||||
// digits + CRC
|
||||
var c;
|
||||
for(i=0; i<code.length; i++){
|
||||
c = code.charAt(i);
|
||||
for(j=0; j<5; j++){
|
||||
result += '1';
|
||||
if (this.encoding[c].charAt(j) == 'W') result += "11";
|
||||
result += '0';
|
||||
}
|
||||
}
|
||||
// stop
|
||||
result += "11010110";
|
||||
}
|
||||
return(result);
|
||||
}
|
||||
},
|
||||
ean: {
|
||||
encoding: [ ["0001101", "0100111", "1110010"],
|
||||
["0011001", "0110011", "1100110"],
|
||||
["0010011", "0011011", "1101100"],
|
||||
["0111101", "0100001", "1000010"],
|
||||
["0100011", "0011101", "1011100"],
|
||||
["0110001", "0111001", "1001110"],
|
||||
["0101111", "0000101", "1010000"],
|
||||
["0111011", "0010001", "1000100"],
|
||||
["0110111", "0001001", "1001000"],
|
||||
["0001011", "0010111", "1110100"] ],
|
||||
first: ["000000","001011","001101","001110","010011","011001","011100","010101","010110","011010"],
|
||||
getDigit: function(code, type){
|
||||
// Check len (12 for ean13, 7 for ean8)
|
||||
var len = type == "ean8" ? 7 : 12;
|
||||
code = code.substring(0, len);
|
||||
if (code.length != len) return("");
|
||||
// Check each digit is numeric
|
||||
var c;
|
||||
for(var i=0; i<code.length; i++){
|
||||
c = code.charAt(i);
|
||||
if ( (c < '0') || (c > '9') ){
|
||||
return("");
|
||||
}
|
||||
}
|
||||
// get checksum
|
||||
code = this.compute(code, type);
|
||||
|
||||
// process analyse
|
||||
var result = "101"; // start
|
||||
|
||||
if (type == "ean8"){
|
||||
|
||||
// process left part
|
||||
for(var i=0; i<4; i++){
|
||||
result += this.encoding[$.barcode.intval(code.charAt(i))][0];
|
||||
}
|
||||
|
||||
// center guard bars
|
||||
result += "01010";
|
||||
|
||||
// process right part
|
||||
for(var i=4; i<8; i++){
|
||||
result += this.encoding[$.barcode.intval(code.charAt(i))][2];
|
||||
}
|
||||
|
||||
} else { // ean13
|
||||
// extract first digit and get sequence
|
||||
var seq = this.first[ $.barcode.intval(code.charAt(0)) ];
|
||||
|
||||
// process left part
|
||||
for(var i=1; i<7; i++){
|
||||
result += this.encoding[$.barcode.intval(code.charAt(i))][ $.barcode.intval(seq.charAt(i-1)) ];
|
||||
}
|
||||
|
||||
// center guard bars
|
||||
result += "01010";
|
||||
|
||||
// process right part
|
||||
for(var i=7; i<13; i++){
|
||||
result += this.encoding[$.barcode.intval(code.charAt(i))][ 2 ];
|
||||
}
|
||||
} // ean13
|
||||
|
||||
result += "101"; // stop
|
||||
return(result);
|
||||
},
|
||||
compute: function (code, type){
|
||||
var len = type == "ean13" ? 12 : 7;
|
||||
code = code.substring(0, len);
|
||||
var sum = 0, odd = true;
|
||||
for(i=code.length-1; i>-1; i--){
|
||||
sum += (odd ? 3 : 1) * $.barcode.intval(code.charAt(i));
|
||||
odd = ! odd;
|
||||
}
|
||||
return(code + ((10 - sum % 10) % 10).toString());
|
||||
}
|
||||
},
|
||||
msi: {
|
||||
encoding:[ "100100100100", "100100100110", "100100110100", "100100110110",
|
||||
"100110100100", "100110100110", "100110110100", "100110110110",
|
||||
"110100100100", "110100100110"],
|
||||
compute: function(code, crc){
|
||||
if (typeof(crc) == "object"){
|
||||
if (crc.crc1 == "mod10"){
|
||||
code = this.computeMod10(code);
|
||||
} else if (crc.crc1 == "mod11"){
|
||||
code = this.computeMod11(code);
|
||||
}
|
||||
if (crc.crc2 == "mod10"){
|
||||
code = this.computeMod10(code);
|
||||
} else if (crc.crc2 == "mod11"){
|
||||
code = this.computeMod11(code);
|
||||
}
|
||||
} else if (typeof(crc) == "boolean"){
|
||||
if (crc){
|
||||
code = this.computeMod10(code);
|
||||
}
|
||||
}
|
||||
return(code);
|
||||
},
|
||||
computeMod10:function(code){
|
||||
var i,
|
||||
toPart1 = code.length % 2;
|
||||
var n1 = 0, sum = 0;
|
||||
for(i=0; i<code.length; i++){
|
||||
if (toPart1) {
|
||||
n1 = 10 * n1 + $.barcode.intval(code.charAt(i));
|
||||
} else {
|
||||
sum += $.barcode.intval(code.charAt(i));
|
||||
}
|
||||
toPart1 = ! toPart1;
|
||||
}
|
||||
var s1 = (2 * n1).toString();
|
||||
for(i=0; i<s1.length; i++){
|
||||
sum += $.barcode.intval(s1.charAt(i));
|
||||
}
|
||||
return(code + ((10 - sum % 10) % 10).toString());
|
||||
},
|
||||
computeMod11:function(code){
|
||||
var weight = 2;
|
||||
var sum = 0, weight = 2;
|
||||
for(var i=code.length-1; i>=0; i--){
|
||||
sum += weight * $.barcode.intval(code.charAt(i));
|
||||
weight = weight == 7 ? 2 : weight + 1;
|
||||
}
|
||||
return(code + ((11 - sum % 11) % 11).toString());
|
||||
},
|
||||
getDigit: function(code, crc){
|
||||
var table = "0123456789";
|
||||
var index = 0;
|
||||
var result = "";
|
||||
|
||||
code = this.compute(code, false);
|
||||
|
||||
// start
|
||||
result = "110";
|
||||
|
||||
// digits
|
||||
for(i=0; i<code.length; i++){
|
||||
index = table.indexOf( code.charAt(i) );
|
||||
if (index < 0) return("");
|
||||
result += this.encoding[ index ];
|
||||
}
|
||||
|
||||
// stop
|
||||
result += "1001";
|
||||
|
||||
return(result);
|
||||
}
|
||||
},
|
||||
code11: {
|
||||
encoding:[ "101011", "1101011", "1001011", "1100101",
|
||||
"1011011", "1101101", "1001101", "1010011",
|
||||
"1101001", "110101", "101101"],
|
||||
getDigit: function(code){
|
||||
var table = "0123456789-";
|
||||
var i, index, result = "", intercharacter = '0'
|
||||
|
||||
// start
|
||||
result = "1011001" + intercharacter;
|
||||
|
||||
// digits
|
||||
for(i=0; i<code.length; i++){
|
||||
index = table.indexOf( code.charAt(i) );
|
||||
if (index < 0) return("");
|
||||
result += this.encoding[ index ] + intercharacter;
|
||||
}
|
||||
|
||||
// checksum
|
||||
var weightC = 0,
|
||||
weightSumC = 0,
|
||||
weightK = 1, // start at 1 because the right-most character is "C" checksum
|
||||
weightSumK = 0;
|
||||
for(i=code.length-1; i>=0; i--){
|
||||
weightC = weightC == 10 ? 1 : weightC + 1;
|
||||
weightK = weightK == 10 ? 1 : weightK + 1;
|
||||
|
||||
index = table.indexOf( code.charAt(i) );
|
||||
|
||||
weightSumC += weightC * index;
|
||||
weightSumK += weightK * index;
|
||||
}
|
||||
|
||||
var c = weightSumC % 11;
|
||||
weightSumK += c;
|
||||
var k = weightSumK % 11;
|
||||
|
||||
result += this.encoding[c] + intercharacter;
|
||||
|
||||
if (code.length >= 10){
|
||||
result += this.encoding[k] + intercharacter;
|
||||
}
|
||||
|
||||
// stop
|
||||
result += "1011001";
|
||||
|
||||
return(result);
|
||||
}
|
||||
},
|
||||
code39: {
|
||||
encoding:[ "101001101101", "110100101011", "101100101011", "110110010101",
|
||||
"101001101011", "110100110101", "101100110101", "101001011011",
|
||||
"110100101101", "101100101101", "110101001011", "101101001011",
|
||||
"110110100101", "101011001011", "110101100101", "101101100101",
|
||||
"101010011011", "110101001101", "101101001101", "101011001101",
|
||||
"110101010011", "101101010011", "110110101001", "101011010011",
|
||||
"110101101001", "101101101001", "101010110011", "110101011001",
|
||||
"101101011001", "101011011001", "110010101011", "100110101011",
|
||||
"110011010101", "100101101011", "110010110101", "100110110101",
|
||||
"100101011011", "110010101101", "100110101101", "100100100101",
|
||||
"100100101001", "100101001001", "101001001001", "100101101101"],
|
||||
getDigit: function(code){
|
||||
var table = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%*";
|
||||
var i, index, result="", intercharacter='0';
|
||||
|
||||
if (code.indexOf('*') >= 0) return("");
|
||||
|
||||
// Add Start and Stop charactere : *
|
||||
code = ("*" + code + "*").toUpperCase();
|
||||
|
||||
for(i=0; i<code.length; i++){
|
||||
index = table.indexOf( code.charAt(i) );
|
||||
if (index < 0) return("");
|
||||
if (i > 0) result += intercharacter;
|
||||
result += this.encoding[ index ];
|
||||
}
|
||||
return(result);
|
||||
}
|
||||
},
|
||||
code93:{
|
||||
encoding:[ "100010100", "101001000", "101000100", "101000010",
|
||||
"100101000", "100100100", "100100010", "101010000",
|
||||
"100010010", "100001010", "110101000", "110100100",
|
||||
"110100010", "110010100", "110010010", "110001010",
|
||||
"101101000", "101100100", "101100010", "100110100",
|
||||
"100011010", "101011000", "101001100", "101000110",
|
||||
"100101100", "100010110", "110110100", "110110010",
|
||||
"110101100", "110100110", "110010110", "110011010",
|
||||
"101101100", "101100110", "100110110", "100111010",
|
||||
"100101110", "111010100", "111010010", "111001010",
|
||||
"101101110", "101110110", "110101110", "100100110",
|
||||
"111011010", "111010110", "100110010", "101011110"],
|
||||
getDigit: function(code, crc){
|
||||
var table = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%____*", // _ => ($), (%), (/) et (+)
|
||||
c, result = "";
|
||||
|
||||
if (code.indexOf('*') >= 0) return("");
|
||||
|
||||
code = code.toUpperCase();
|
||||
|
||||
// start : *
|
||||
result += this.encoding[47];
|
||||
|
||||
// digits
|
||||
for(i=0; i<code.length; i++){
|
||||
c = code.charAt(i);
|
||||
index = table.indexOf( c );
|
||||
if ( (c == '_') || (index < 0) ) return("");
|
||||
result += this.encoding[ index ];
|
||||
}
|
||||
|
||||
// checksum
|
||||
if (crc){
|
||||
var weightC = 0,
|
||||
weightSumC = 0,
|
||||
weightK = 1, // start at 1 because the right-most character is "C" checksum
|
||||
weightSumK = 0;
|
||||
for(i=code.length-1; i>=0; i--){
|
||||
weightC = weightC == 20 ? 1 : weightC + 1;
|
||||
weightK = weightK == 15 ? 1 : weightK + 1;
|
||||
|
||||
index = table.indexOf( code.charAt(i) );
|
||||
|
||||
weightSumC += weightC * index;
|
||||
weightSumK += weightK * index;
|
||||
}
|
||||
|
||||
var c = weightSumC % 47;
|
||||
weightSumK += c;
|
||||
var k = weightSumK % 47;
|
||||
|
||||
result += this.encoding[c];
|
||||
result += this.encoding[k];
|
||||
}
|
||||
|
||||
// stop : *
|
||||
result += this.encoding[47];
|
||||
|
||||
// Terminaison bar
|
||||
result += '1';
|
||||
return(result);
|
||||
}
|
||||
|
||||
},
|
||||
code128: {
|
||||
encoding:[ "11011001100", "11001101100", "11001100110", "10010011000",
|
||||
"10010001100", "10001001100", "10011001000", "10011000100",
|
||||
"10001100100", "11001001000", "11001000100", "11000100100",
|
||||
"10110011100", "10011011100", "10011001110", "10111001100",
|
||||
"10011101100", "10011100110", "11001110010", "11001011100",
|
||||
"11001001110", "11011100100", "11001110100", "11101101110",
|
||||
"11101001100", "11100101100", "11100100110", "11101100100",
|
||||
"11100110100", "11100110010", "11011011000", "11011000110",
|
||||
"11000110110", "10100011000", "10001011000", "10001000110",
|
||||
"10110001000", "10001101000", "10001100010", "11010001000",
|
||||
"11000101000", "11000100010", "10110111000", "10110001110",
|
||||
"10001101110", "10111011000", "10111000110", "10001110110",
|
||||
"11101110110", "11010001110", "11000101110", "11011101000",
|
||||
"11011100010", "11011101110", "11101011000", "11101000110",
|
||||
"11100010110", "11101101000", "11101100010", "11100011010",
|
||||
"11101111010", "11001000010", "11110001010", "10100110000",
|
||||
"10100001100", "10010110000", "10010000110", "10000101100",
|
||||
"10000100110", "10110010000", "10110000100", "10011010000",
|
||||
"10011000010", "10000110100", "10000110010", "11000010010",
|
||||
"11001010000", "11110111010", "11000010100", "10001111010",
|
||||
"10100111100", "10010111100", "10010011110", "10111100100",
|
||||
"10011110100", "10011110010", "11110100100", "11110010100",
|
||||
"11110010010", "11011011110", "11011110110", "11110110110",
|
||||
"10101111000", "10100011110", "10001011110", "10111101000",
|
||||
"10111100010", "11110101000", "11110100010", "10111011110",
|
||||
"10111101110", "11101011110", "11110101110", "11010000100",
|
||||
"11010010000", "11010011100", "11000111010"],
|
||||
getDigit: function(code){
|
||||
var tableB = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
|
||||
var result = "";
|
||||
var sum = 0;
|
||||
var isum = 0;
|
||||
var i = 0;
|
||||
var j = 0;
|
||||
var value = 0;
|
||||
|
||||
// check each characters
|
||||
for(i=0; i<code.length; i++){
|
||||
if (tableB.indexOf(code.charAt(i)) == -1) return("");
|
||||
}
|
||||
|
||||
// check firsts characters : start with C table only if enought numeric
|
||||
var tableCActivated = code.length > 1;
|
||||
var c = '';
|
||||
for(i=0; i<3 && i<code.length; i++){
|
||||
c = code.charAt(i);
|
||||
tableCActivated &= c >= '0' && c <= '9';
|
||||
}
|
||||
|
||||
sum = tableCActivated ? 105 : 104;
|
||||
|
||||
// start : [105] : C table or [104] : B table
|
||||
result = this.encoding[ sum ];
|
||||
|
||||
i = 0;
|
||||
while( i < code.length ){
|
||||
|
||||
if (! tableCActivated){
|
||||
j = 0;
|
||||
// check next character to activate C table if interresting
|
||||
while ( (i + j < code.length) && (code.charAt(i+j) >= '0') && (code.charAt(i+j) <= '9') ) j++;
|
||||
|
||||
// 6 min everywhere or 4 mini at the end
|
||||
tableCActivated = (j > 5) || ((i + j - 1 == code.length) && (j > 3));
|
||||
|
||||
if ( tableCActivated ){
|
||||
result += this.encoding[ 99 ]; // C table
|
||||
sum += ++isum * 99;
|
||||
}
|
||||
// 2 min for table C so need table B
|
||||
} else if ( (i == code.length) || (code.charAt(i) < '0') || (code.charAt(i) > '9') || (code.charAt(i+1) < '0') || (code.charAt(i+1) > '9') ) {
|
||||
tableCActivated = false;
|
||||
result += this.encoding[ 100 ]; // B table
|
||||
sum += ++isum * 100;
|
||||
}
|
||||
|
||||
if ( tableCActivated ) {
|
||||
value = $.barcode.intval(code.charAt(i) + code.charAt(i+1)); // Add two characters (numeric)
|
||||
i += 2;
|
||||
} else {
|
||||
value = tableB.indexOf( code.charAt(i) ); // Add one character
|
||||
i += 1;
|
||||
}
|
||||
result += this.encoding[ value ];
|
||||
sum += ++isum * value;
|
||||
}
|
||||
|
||||
// Add CRC
|
||||
result += this.encoding[ sum % 103 ];
|
||||
|
||||
// Stop
|
||||
result += this.encoding[106];
|
||||
|
||||
// Termination bar
|
||||
result += "11";
|
||||
|
||||
return(result);
|
||||
}
|
||||
},
|
||||
codabar: {
|
||||
encoding:[ "101010011", "101011001", "101001011", "110010101",
|
||||
"101101001", "110101001", "100101011", "100101101",
|
||||
"100110101", "110100101", "101001101", "101100101",
|
||||
"1101011011", "1101101011", "1101101101", "1011011011",
|
||||
"1011001001", "1010010011", "1001001011", "1010011001"],
|
||||
getDigit: function(code){
|
||||
var table = "0123456789-$:/.+";
|
||||
var i, index, result="", intercharacter = '0';
|
||||
|
||||
// add start : A->D : arbitrary choose A
|
||||
result += this.encoding[16] + intercharacter;
|
||||
|
||||
for(i=0; i<code.length; i++){
|
||||
index = table.indexOf( code.charAt(i) );
|
||||
if (index < 0) return("");
|
||||
result += this.encoding[ index ] + intercharacter;
|
||||
}
|
||||
|
||||
// add stop : A->D : arbitrary choose A
|
||||
result += this.encoding[16];
|
||||
return(result);
|
||||
}
|
||||
},
|
||||
// little endian convertor
|
||||
lec:{
|
||||
// convert an int
|
||||
cInt: function(value, byteCount){
|
||||
var le = '';
|
||||
for(var i=0; i<byteCount; i++){
|
||||
le += String.fromCharCode(value & 0xFF);
|
||||
value = value >> 8;
|
||||
}
|
||||
return le;
|
||||
},
|
||||
// return a byte string from rgb values
|
||||
cRgb: function(r,g,b){
|
||||
return String.fromCharCode(b) + String.fromCharCode(g) + String.fromCharCode(r);
|
||||
},
|
||||
// return a byte string from a hex string color
|
||||
cHexColor: function(hex){
|
||||
var v = parseInt('0x' + hex.substr(1));
|
||||
var b = v & 0xFF;
|
||||
v = v >> 8;
|
||||
var g = v & 0xFF;
|
||||
var r = v >> 8;
|
||||
return(this.cRgb(r,g,b));
|
||||
}
|
||||
},
|
||||
// test if a string is a hexa string color (like #FF0000)
|
||||
isHexColor: function (value){
|
||||
var r = new RegExp("#[0-91-F]", "gi");
|
||||
return value.match(r);
|
||||
},
|
||||
// encode data in base64
|
||||
base64Encode: function(value) {
|
||||
var r = '', c1, c2, c3, b1, b2, b3, b4;
|
||||
var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
||||
var i = 0;
|
||||
while (i < value.length) {
|
||||
c1 = value.charCodeAt(i++);
|
||||
c2 = value.charCodeAt(i++);
|
||||
c3 = value.charCodeAt(i++);
|
||||
b1 = c1 >> 2;
|
||||
b2 = ((c1 & 3) << 4) | (c2 >> 4);
|
||||
b3 = ((c2 & 15) << 2) | (c3 >> 6);
|
||||
b4 = c3 & 63;
|
||||
if (isNaN(c2)) b3 = b4 = 64;
|
||||
else if (isNaN(c3)) b4 = 64;
|
||||
r += k.charAt(b1) + k.charAt(b2) + k.charAt(b3) + k.charAt(b4);
|
||||
}
|
||||
return r;
|
||||
},
|
||||
// bmp barcode renderer
|
||||
digitToBmp: function($container, settings, digit, hri){
|
||||
var barWidth = $.barcode.intval(settings.barWidth);
|
||||
var barHeight = $.barcode.intval(settings.barHeight);
|
||||
var i = 0;
|
||||
var c0 = this.isHexColor(settings.bgColor) ? this.lec.cHexColor(settings.bgColor) : this.lec.cRgb(255,255,255);
|
||||
var c1 = this.isHexColor(settings.color) ? this.lec.cHexColor(settings.color) : this.lec.cRgb(0,0,0);
|
||||
var bar0 = '';
|
||||
var bar1 = '';
|
||||
// create one bar 0 and 1 of "barWidth" byte length
|
||||
for(i=0; i<barWidth; i++){
|
||||
bar0 += c0;
|
||||
bar1 += c1;
|
||||
}
|
||||
var bars = '';
|
||||
var width = digit.length;
|
||||
var padding = (4 - ((barWidth * width * 3) % 4)) % 4; // Padding for 4 byte alignment ("* 3" come from "3 byte to color R, G and B")
|
||||
var dataLen = (barWidth * width + padding) * barHeight;
|
||||
|
||||
// create one line of byte with padding
|
||||
for(i=0; i<digit.length; i++) bars += digit.charAt(i) == '0' ? bar0 : bar1;
|
||||
for(i=0; i<padding; i++) bars += '\0';
|
||||
|
||||
// Bitmap header
|
||||
var bmp = 'BM' + // Magic Number
|
||||
this.lec.cInt(54 + dataLen, 4) + // Size of Bitmap size (header size + data len)
|
||||
'\0\0\0\0' + // Unused
|
||||
this.lec.cInt(54, 4) + // The offset where the bitmap data (pixels) can be found
|
||||
this.lec.cInt(40, 4) + // The number of bytes in the header (from this point).
|
||||
this.lec.cInt(barWidth * width, 4) + // width
|
||||
this.lec.cInt(barHeight, 4) + // height
|
||||
this.lec.cInt(1, 2) + // Number of color planes being used
|
||||
this.lec.cInt(24, 2) + // The number of bits/pixel
|
||||
'\0\0\0\0' + // BI_RGB, No compression used
|
||||
this.lec.cInt(dataLen, 4) + // The size of the raw BMP data (after this header)
|
||||
this.lec.cInt(2835, 4) + // The horizontal resolution of the image (pixels/meter)
|
||||
this.lec.cInt(2835, 4) + // The vertical resolution of the image (pixels/meter)
|
||||
this.lec.cInt(0, 4) + // Number of colors in the palette
|
||||
this.lec.cInt(0, 4); // Means all colors are important
|
||||
// Bitmap Data : dupplicate byte line "barHeight" time
|
||||
for(i=0; i<barHeight; i++) bmp += bars;
|
||||
// set bmp image to the container
|
||||
var object = document.createElement('object');
|
||||
object.setAttribute('type', 'image/bmp');
|
||||
object.setAttribute('data', 'data:image/bmp;base64,'+ this.base64Encode(bmp));
|
||||
$container.html("").append(object);
|
||||
|
||||
},
|
||||
// css barcode renderer
|
||||
digitToCss: function($container, settings, digit, hri){
|
||||
var barWidth = $.barcode.intval(settings.barWidth);
|
||||
var barHeight = $.barcode.intval(settings.barHeight);
|
||||
var content = "";
|
||||
var bar1 = "<div style=\"float: left; background-color: " + settings.color + "; height: " + barHeight + "px; width: ";
|
||||
var bar0 = "<div style=\"float: left; background-color: " + settings.bgColor + "; height: " + barHeight + "px; width: ";
|
||||
var len = 0;
|
||||
var current = digit.charAt(0);
|
||||
for(var i=0; i<digit.length; i++){
|
||||
if (current == digit.charAt(i)) {
|
||||
len++;
|
||||
} else {
|
||||
content += (current == '0' ? bar0 : bar1) + (len * barWidth) + "px\"></div>";
|
||||
current = digit.charAt(i);
|
||||
len=1;
|
||||
}
|
||||
}
|
||||
if (len > 0){
|
||||
content += (current == '0' ? bar0 : bar1) + (len * barWidth) + "px\"></div>";
|
||||
}
|
||||
if (settings.showHRI){
|
||||
// add HRI centered
|
||||
content += "<div style=\"clear:both; width: 100%; background-color: " + settings.bgColor + "; color: " + settings.color + "; text-align: center; font-size: " + settings.fontSize + ";\">"+hri+"</div>";
|
||||
}
|
||||
// set "css" image to the container
|
||||
$container
|
||||
.css("padding", "0px")
|
||||
.css("overflow", "auto")
|
||||
.css("width", (barWidth * digit.length) + "px")
|
||||
.html(content);
|
||||
},
|
||||
// svg barcode renderer
|
||||
digitToSvg: function($container, settings, digit, hri){
|
||||
var barWidth = $.barcode.intval(settings.barWidth);
|
||||
var barHeight = $.barcode.intval(settings.barHeight);
|
||||
var width = digit.length * barWidth;
|
||||
var height = barHeight;
|
||||
var fontSize = $.barcode.intval(settings.fontSize);
|
||||
if (settings.showHRI){
|
||||
height += $.barcode.intval(settings.marginHRI) + fontSize;
|
||||
}
|
||||
// svg header
|
||||
var svg = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="' + width + '" height="' + height + '">';
|
||||
|
||||
// background
|
||||
svg += '<rect width="' + width + '" height="' + height + '" x="0" y="0" fill="' + settings.bgColor + '" />';
|
||||
|
||||
var len = 0;
|
||||
var current = digit.charAt(0);
|
||||
for(var i=0; i<digit.length; i++){
|
||||
if (current == digit.charAt(i)) {
|
||||
len++;
|
||||
} else {
|
||||
if (current == '1'){ // only draw "1" digit, "0" are in the background
|
||||
svg += '<rect width="' + (len * barWidth) + '" height="' + barHeight + '" x="' + ( (i-len) * barWidth) + '" y="0" fill="' + settings.color + '" />';
|
||||
}
|
||||
current = digit.charAt(i);
|
||||
len=1;
|
||||
}
|
||||
}
|
||||
if ( (len > 0) && (current == '1') ){
|
||||
svg += '<rect width="' + (len * barWidth) + '" height="' + barHeight + '" x="' + ((i-len) * barWidth) + '" y="0" fill="' + settings.color + '" />';
|
||||
}
|
||||
if (settings.showHRI){
|
||||
// add HRI as centered text
|
||||
svg += '<g transform="translate(' + Math.floor(width/2) + ' 0)">';
|
||||
svg += '<text y="' + height + '" text-anchor="middle" style="font-family: Arial; font-size: ' + fontSize + 'px;" fill="' + settings.color + '">' + hri + '</text>';
|
||||
svg += '</g>';
|
||||
}
|
||||
// svg footer
|
||||
svg += '</svg>';
|
||||
|
||||
// create a dom object, flush container and add object to the container
|
||||
var object = document.createElement('object');
|
||||
object.setAttribute('type', 'image/svg+xml');
|
||||
object.setAttribute('data', 'data:image/svg+xml,'+ svg);
|
||||
$container.html("").append(object);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$.fn.extend({
|
||||
barcode: function(datas, type, settings) {
|
||||
var digit = "",
|
||||
hri = "",
|
||||
code = "",
|
||||
crc = true;
|
||||
|
||||
if (typeof(datas) == "string"){
|
||||
code = datas;
|
||||
} else if (typeof(datas) == "object"){
|
||||
code = typeof(datas.code) == "string" ? datas.code : "";
|
||||
crc = typeof(datas.crc) != "undefined" ? datas.crc : true;
|
||||
}
|
||||
|
||||
if (code == "") return(false);
|
||||
|
||||
|
||||
switch(type){
|
||||
case "std25":
|
||||
case "int25":
|
||||
digit = $.barcode.i25.getDigit(code, crc, type);
|
||||
hri = $.barcode.i25.compute(code, crc, type);
|
||||
break;
|
||||
case "ean8":
|
||||
case "ean13":
|
||||
digit = $.barcode.ean.getDigit(code, type);
|
||||
hri = $.barcode.ean.compute(code, type);
|
||||
break;
|
||||
case "code11":
|
||||
digit = $.barcode.code11.getDigit(code);
|
||||
hri = code;
|
||||
break;
|
||||
case "code39":
|
||||
digit = $.barcode.code39.getDigit(code);
|
||||
hri = code;
|
||||
break;
|
||||
case "code93":
|
||||
digit = $.barcode.code93.getDigit(code, crc);
|
||||
hri = code;
|
||||
break;
|
||||
case "code128":
|
||||
digit = $.barcode.code128.getDigit(code);
|
||||
hri = code;
|
||||
break
|
||||
case "codabar":
|
||||
digit = $.barcode.codabar.getDigit(code);
|
||||
hri = code;
|
||||
break;
|
||||
case "msi":
|
||||
digit = $.barcode.msi.getDigit(code, crc);
|
||||
hri = $.barcode.msi.compute(code, crc);
|
||||
break;
|
||||
}
|
||||
if (digit.length == 0) return($(this));
|
||||
// add Quiet Zone
|
||||
digit = "0000000000" + digit + "0000000000";
|
||||
|
||||
// merge default settings with call settings
|
||||
if (settings == undefined){
|
||||
settings = [];
|
||||
}
|
||||
for(var name in $.barcode.settings){
|
||||
if (settings[name] == undefined) settings[name] = $.barcode.settings[name];
|
||||
}
|
||||
|
||||
var $this = $(this);
|
||||
|
||||
// call the god renderer
|
||||
switch(settings.output){
|
||||
case "bmp":
|
||||
$.barcode.digitToBmp($this, settings, digit, hri);
|
||||
break;
|
||||
case "svg":
|
||||
$.barcode.digitToSvg($this, settings, digit, hri);
|
||||
break;
|
||||
default:
|
||||
$.barcode.digitToCss($this, settings, digit, hri);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
return($this);
|
||||
}
|
||||
});
|
||||
-15
File diff suppressed because one or more lines are too long
Vendored
-12
@@ -1,12 +0,0 @@
|
||||
/* idTabs ~ Sean Catchpole - Version 2.2 - MIT/GPL */
|
||||
(function(){var dep={"jQuery":"http://code.jquery.com/jquery-latest.min.js"};var init=function(){(function($){$.fn.idTabs=function(){var s={};for(var i=0;i<arguments.length;++i){var a=arguments[i];switch(a.constructor){case Object:$.extend(s,a);break;case Boolean:s.change=a;break;case Number:s.start=a;break;case Function:s.click=a;break;case String:if(a.charAt(0)=='.')s.selected=a;else if(a.charAt(0)=='!')s.event=a;else s.start=a;break;}}
|
||||
if(typeof s['return']=="function")
|
||||
s.change=s['return'];return this.each(function(){$.idTabs(this,s);});}
|
||||
$.idTabs=function(tabs,options){var meta=($.metadata)?$(tabs).metadata():{};var s=$.extend({},$.idTabs.settings,meta,options);if(s.selected.charAt(0)=='.')s.selected=s.selected.substr(1);if(s.event.charAt(0)=='!')s.event=s.event.substr(1);if(s.start==null)s.start=-1;var showId=function(){if($(this).is('.'+s.selected))
|
||||
return s.change;var id="#"+this.href.split('#')[1];var aList=[];var idList=[];$("a",tabs).each(function(){if(this.href.match(/#/)){aList.push(this);idList.push("#"+this.href.split('#')[1]);}});if(s.click&&!s.click.apply(this,[id,idList,tabs,s]))return s.change;for(i in aList)$(aList[i]).removeClass(s.selected);for(i in idList)$(idList[i]).hide();$(this).addClass(s.selected);$(id).show();return s.change;}
|
||||
var list=$("a[href*='#']",tabs).unbind(s.event,showId).bind(s.event,showId);list.each(function(){$("#"+this.href.split('#')[1]).hide();});var test=false;if((test=list.filter('.'+s.selected)).length);else if(typeof s.start=="number"&&(test=list.eq(s.start)).length);else if(typeof s.start=="string"&&(test=list.filter("[href*='#"+s.start+"']")).length);if(test){test.removeClass(s.selected);test.trigger(s.event);}
|
||||
return s;}
|
||||
$.idTabs.settings={start:0,change:false,click:null,selected:".selected",event:"!click"};$.idTabs.version="2.2";$(function(){$(".idTabs").idTabs();});})(jQuery);}
|
||||
var check=function(o,s){s=s.split('.');while(o&&s.length)o=o[s.shift()];return o;}
|
||||
var head=document.getElementsByTagName("head")[0];var add=function(url){var s=document.createElement("script");s.type="text/javascript";s.src=url;head.appendChild(s);}
|
||||
var s=document.getElementsByTagName('script');var src=s[s.length-1].src;var ok=true;for(d in dep){if(check(this,d))continue;ok=false;add(dep[d]);}if(ok)return init();add(src);})();
|
||||
Vendored
-38
@@ -1,38 +0,0 @@
|
||||
/*
|
||||
* jquery.tools 1.1.2 - The missing UI library for the Web
|
||||
*
|
||||
* [tools.tabs-1.0.4, tools.tabs.slideshow-1.0.2, tools.tabs.history-1.0.2, tools.tooltip-1.1.3, tools.tooltip.slide-1.0.0, tools.tooltip.dynamic-1.0.1, tools.scrollable-1.1.2, tools.scrollable.circular-0.5.1, tools.scrollable.autoscroll-1.0.1, tools.scrollable.navigator-1.0.2, tools.scrollable.mousewheel-1.0.1, tools.overlay-1.1.2, tools.overlay.gallery-1.0.0, tools.overlay.apple-1.0.1, tools.expose-1.0.5]
|
||||
*
|
||||
* Copyright (c) 2009 Tero Piirainen
|
||||
* http://flowplayer.org/tools/
|
||||
*
|
||||
* Dual licensed under MIT and GPL 2+ licenses
|
||||
* http://www.opensource.org/licenses
|
||||
*
|
||||
* -----
|
||||
*
|
||||
* jquery.event.wheel.js - rev 1
|
||||
* Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)
|
||||
* Liscensed under the MIT License (MIT-LICENSE.txt)
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* Created: 2008-07-01 | Updated: 2008-07-14
|
||||
*
|
||||
* -----
|
||||
*
|
||||
* File generated: Wed Feb 24 03:14:17 GMT 2010
|
||||
*/
|
||||
(function(d){d.tools=d.tools||{};d.tools.tabs={version:"1.0.4",conf:{tabs:"a",current:"current",onBeforeClick:null,onClick:null,effect:"default",initialIndex:0,event:"click",api:false,rotate:false},addEffect:function(e,f){c[e]=f}};var c={"default":function(f,e){this.getPanes().hide().eq(f).show();e.call()},fade:function(g,e){var f=this.getConf(),j=f.fadeOutSpeed,h=this.getPanes();if(j){h.fadeOut(j)}else{h.hide()}h.eq(g).fadeIn(f.fadeInSpeed,e)},slide:function(f,e){this.getPanes().slideUp(200);this.getPanes().eq(f).slideDown(400,e)},ajax:function(f,e){this.getPanes().eq(0).load(this.getTabs().eq(f).attr("href"),e)}};var b;d.tools.tabs.addEffect("horizontal",function(f,e){if(!b){b=this.getPanes().eq(0).width()}this.getCurrentPane().animate({width:0},function(){d(this).hide()});this.getPanes().eq(f).animate({width:b},function(){d(this).show();e.call()})});function a(g,h,f){var e=this,j=d(this),i;d.each(f,function(k,l){if(d.isFunction(l)){j.bind(k,l)}});d.extend(this,{click:function(k,n){var o=e.getCurrentPane();var l=g.eq(k);if(typeof k=="string"&&k.replace("#","")){l=g.filter("[href*="+k.replace("#","")+"]");k=Math.max(g.index(l),0)}if(f.rotate){var m=g.length-1;if(k<0){return e.click(m,n)}if(k>m){return e.click(0,n)}}if(!l.length){if(i>=0){return e}k=f.initialIndex;l=g.eq(k)}if(k===i){return e}n=n||d.Event();n.type="onBeforeClick";j.trigger(n,[k]);if(n.isDefaultPrevented()){return}c[f.effect].call(e,k,function(){n.type="onClick";j.trigger(n,[k])});n.type="onStart";j.trigger(n,[k]);if(n.isDefaultPrevented()){return}i=k;g.removeClass(f.current);l.addClass(f.current);return e},getConf:function(){return f},getTabs:function(){return g},getPanes:function(){return h},getCurrentPane:function(){return h.eq(i)},getCurrentTab:function(){return g.eq(i)},getIndex:function(){return i},next:function(){return e.click(i+1)},prev:function(){return e.click(i-1)},bind:function(k,l){j.bind(k,l);return e},onBeforeClick:function(k){return this.bind("onBeforeClick",k)},onClick:function(k){return this.bind("onClick",k)},unbind:function(k){j.unbind(k);return e}});g.each(function(k){d(this).bind(f.event,function(l){e.click(k,l);return false})});if(location.hash){e.click(location.hash)}else{if(f.initialIndex===0||f.initialIndex>0){e.click(f.initialIndex)}}h.find("a[href^=#]").click(function(k){e.click(d(this).attr("href"),k)})}d.fn.tabs=function(i,f){var g=this.eq(typeof f=="number"?f:0).data("tabs");if(g){return g}if(d.isFunction(f)){f={onBeforeClick:f}}var h=d.extend({},d.tools.tabs.conf),e=this.length;f=d.extend(h,f);this.each(function(l){var j=d(this);var k=j.find(f.tabs);if(!k.length){k=j.children()}var m=i.jquery?i:j.children(i);if(!m.length){m=e==1?d(i):j.parent().find(i)}g=new a(k,m,f);j.data("tabs",g)});return f.api?g:this}})(jQuery);
|
||||
(function(b){var a=b.tools.tabs;a.plugins=a.plugins||{};a.plugins.slideshow={version:"1.0.2",conf:{next:".forward",prev:".backward",disabledClass:"disabled",autoplay:false,autopause:true,interval:3000,clickable:true,api:false}};b.prototype.slideshow=function(e){var f=b.extend({},a.plugins.slideshow.conf),c=this.length,d;e=b.extend(f,e);this.each(function(){var p=b(this),m=p.tabs(),i=b(m),o=m;b.each(e,function(t,u){if(b.isFunction(u)){m.bind(t,u)}});function n(t){return c==1?b(t):p.parent().find(t)}var s=n(e.next).click(function(){m.next()});var q=n(e.prev).click(function(){m.prev()});var h,j,l,g=false;b.extend(m,{play:function(){if(h){return}var t=b.Event("onBeforePlay");i.trigger(t);if(t.isDefaultPrevented()){return m}g=false;h=setInterval(m.next,e.interval);i.trigger("onPlay");m.next()},pause:function(){if(!h){return m}var t=b.Event("onBeforePause");i.trigger(t);if(t.isDefaultPrevented()){return m}h=clearInterval(h);l=clearInterval(l);i.trigger("onPause")},stop:function(){m.pause();g=true},onBeforePlay:function(t){return m.bind("onBeforePlay",t)},onPlay:function(t){return m.bind("onPlay",t)},onBeforePause:function(t){return m.bind("onBeforePause",t)},onPause:function(t){return m.bind("onPause",t)}});if(e.autopause){var k=m.getTabs().add(s).add(q).add(m.getPanes());k.hover(function(){m.pause();j=clearInterval(j)},function(){if(!g){j=setTimeout(m.play,e.interval)}})}if(e.autoplay){l=setTimeout(m.play,e.interval)}else{m.stop()}if(e.clickable){m.getPanes().click(function(){m.next()})}if(!m.getConf().rotate){var r=e.disabledClass;if(!m.getIndex()){q.addClass(r)}m.onBeforeClick(function(u,t){if(!t){q.addClass(r)}else{q.removeClass(r);if(t==m.getTabs().length-1){s.addClass(r)}else{s.removeClass(r)}}})}});return e.api?d:this}})(jQuery);
|
||||
(function(d){var a=d.tools.tabs;a.plugins=a.plugins||{};a.plugins.history={version:"1.0.2",conf:{api:false}};var e,b;function c(f){if(f){var g=b.contentWindow.document;g.open().close();g.location.hash=f}}d.fn.onHash=function(g){var f=this;if(d.browser.msie&&d.browser.version<"8"){if(!b){b=d("<iframe/>").attr("src","javascript:false;").hide().get(0);d("body").append(b);setInterval(function(){var i=b.contentWindow.document,j=i.location.hash;if(e!==j){d.event.trigger("hash",j);e=j}},100);c(location.hash||"#")}f.bind("click.hash",function(h){c(d(this).attr("href"))})}else{setInterval(function(){var j=location.hash;var i=f.filter("[href$="+j+"]");if(!i.length){j=j.replace("#","");i=f.filter("[href$="+j+"]")}if(i.length&&j!==e){e=j;d.event.trigger("hash",j)}},100)}d(window).bind("hash",g);return this};d.fn.history=function(g){var h=d.extend({},a.plugins.history.conf),f;g=d.extend(h,g);this.each(function(){var j=d(this).tabs(),i=j.getTabs();if(j){f=j}i.onHash(function(k,l){if(!l||l=="#"){l=j.getConf().initialIndex}j.click(l)});i.click(function(k){location.hash=d(this).attr("href").replace("#","")})});return g.api?f:this}})(jQuery);
|
||||
(function(c){var d=[];c.tools=c.tools||{};c.tools.tooltip={version:"1.1.3",conf:{effect:"toggle",fadeOutSpeed:"fast",tip:null,predelay:0,delay:30,opacity:1,lazy:undefined,position:["top","center"],offset:[0,0],cancelDefault:true,relative:false,oneInstance:true,events:{def:"mouseover,mouseout",input:"focus,blur",widget:"focus mouseover,blur mouseout",tooltip:"mouseover,mouseout"},api:false},addEffect:function(e,g,f){b[e]=[g,f]}};var b={toggle:[function(e){var f=this.getConf(),g=this.getTip(),h=f.opacity;if(h<1){g.css({opacity:h})}g.show();e.call()},function(e){this.getTip().hide();e.call()}],fade:[function(e){this.getTip().fadeIn(this.getConf().fadeInSpeed,e)},function(e){this.getTip().fadeOut(this.getConf().fadeOutSpeed,e)}]};function a(f,g){var p=this,k=c(this);f.data("tooltip",p);var l=f.next();if(g.tip){l=c(g.tip);if(l.length>1){l=f.nextAll(g.tip).eq(0);if(!l.length){l=f.parent().nextAll(g.tip).eq(0)}}}function o(u){var t=g.relative?f.position().top:f.offset().top,s=g.relative?f.position().left:f.offset().left,v=g.position[0];t-=l.outerHeight()-g.offset[0];s+=f.outerWidth()+g.offset[1];var q=l.outerHeight()+f.outerHeight();if(v=="center"){t+=q/2}if(v=="bottom"){t+=q}v=g.position[1];var r=l.outerWidth()+f.outerWidth();if(v=="center"){s-=r/2}if(v=="left"){s-=r}return{top:t,left:s}}var i=f.is(":input"),e=i&&f.is(":checkbox, :radio, select, :button"),h=f.attr("type"),n=g.events[h]||g.events[i?(e?"widget":"input"):"def"];n=n.split(/,\s*/);if(n.length!=2){throw"Tooltip: bad events configuration for "+h}f.bind(n[0],function(r){if(g.oneInstance){c.each(d,function(){this.hide()})}var q=l.data("trigger");if(q&&q[0]!=this){l.hide().stop(true,true)}r.target=this;p.show(r);n=g.events.tooltip.split(/,\s*/);l.bind(n[0],function(){p.show(r)});if(n[1]){l.bind(n[1],function(){p.hide(r)})}});f.bind(n[1],function(q){p.hide(q)});if(!c.browser.msie&&!i&&!g.predelay){f.mousemove(function(){if(!p.isShown()){f.triggerHandler("mouseover")}})}if(g.opacity<1){l.css("opacity",g.opacity)}var m=0,j=f.attr("title");if(j&&g.cancelDefault){f.removeAttr("title");f.data("title",j)}c.extend(p,{show:function(r){if(r){f=c(r.target)}clearTimeout(l.data("timer"));if(l.is(":animated")||l.is(":visible")){return p}function q(){l.data("trigger",f);var t=o(r);if(g.tip&&j){l.html(f.data("title"))}r=r||c.Event();r.type="onBeforeShow";k.trigger(r,[t]);if(r.isDefaultPrevented()){return p}t=o(r);l.css({position:"absolute",top:t.top,left:t.left});var s=b[g.effect];if(!s){throw'Nonexistent effect "'+g.effect+'"'}s[0].call(p,function(){r.type="onShow";k.trigger(r)})}if(g.predelay){clearTimeout(m);m=setTimeout(q,g.predelay)}else{q()}return p},hide:function(r){clearTimeout(l.data("timer"));clearTimeout(m);if(!l.is(":visible")){return}function q(){r=r||c.Event();r.type="onBeforeHide";k.trigger(r);if(r.isDefaultPrevented()){return}b[g.effect][1].call(p,function(){r.type="onHide";k.trigger(r)})}if(g.delay&&r){l.data("timer",setTimeout(q,g.delay))}else{q()}return p},isShown:function(){return l.is(":visible, :animated")},getConf:function(){return g},getTip:function(){return l},getTrigger:function(){return f},bind:function(q,r){k.bind(q,r);return p},onHide:function(q){return this.bind("onHide",q)},onBeforeShow:function(q){return this.bind("onBeforeShow",q)},onShow:function(q){return this.bind("onShow",q)},onBeforeHide:function(q){return this.bind("onBeforeHide",q)},unbind:function(q){k.unbind(q);return p}});c.each(g,function(q,r){if(c.isFunction(r)){p.bind(q,r)}})}c.prototype.tooltip=function(e){var f=this.eq(typeof e=="number"?e:0).data("tooltip");if(f){return f}var g=c.extend(true,{},c.tools.tooltip.conf);if(c.isFunction(e)){e={onBeforeShow:e}}else{if(typeof e=="string"){e={tip:e}}}e=c.extend(true,g,e);if(typeof e.position=="string"){e.position=e.position.split(/,?\s/)}if(e.lazy!==false&&(e.lazy===true||this.length>20)){this.one("mouseover",function(h){f=new a(c(this),e);f.show(h);d.push(f)})}else{this.each(function(){f=new a(c(this),e);d.push(f)})}return e.api?f:this}})(jQuery);
|
||||
(function(b){var a=b.tools.tooltip;a.effects=a.effects||{};a.effects.slide={version:"1.0.0"};b.extend(a.conf,{direction:"up",bounce:false,slideOffset:10,slideInSpeed:200,slideOutSpeed:200,slideFade:!b.browser.msie});var c={up:["-","top"],down:["+","top"],left:["-","left"],right:["+","left"]};b.tools.tooltip.addEffect("slide",function(d){var f=this.getConf(),g=this.getTip(),h=f.slideFade?{opacity:f.opacity}:{},e=c[f.direction]||c.up;h[e[1]]=e[0]+"="+f.slideOffset;if(f.slideFade){g.css({opacity:0})}g.show().animate(h,f.slideInSpeed,d)},function(e){var g=this.getConf(),i=g.slideOffset,h=g.slideFade?{opacity:0}:{},f=c[g.direction]||c.up;var d=""+f[0];if(g.bounce){d=d=="+"?"-":"+"}h[f[1]]=d+"="+i;this.getTip().animate(h,g.slideOutSpeed,function(){b(this).hide();e.call()})})})(jQuery);
|
||||
(function(d){var c=d.tools.tooltip;c.plugins=c.plugins||{};c.plugins.dynamic={version:"1.0.1",conf:{api:false,classNames:"top right bottom left"}};function b(h){var e=d(window);var g=e.width()+e.scrollLeft();var f=e.height()+e.scrollTop();return[h.offset().top<=e.scrollTop(),g<=h.offset().left+h.width(),f<=h.offset().top+h.height(),e.scrollLeft()>=h.offset().left]}function a(f){var e=f.length;while(e--){if(f[e]){return false}}return true}d.fn.dynamic=function(g){var h=d.extend({},c.plugins.dynamic.conf),f;if(typeof g=="number"){g={speed:g}}g=d.extend(h,g);var e=g.classNames.split(/\s/),i;this.each(function(){if(d(this).tooltip().jquery){throw"Lazy feature not supported by dynamic plugin. set lazy: false for tooltip"}var j=d(this).tooltip().onBeforeShow(function(n,o){var m=this.getTip(),l=this.getConf();if(!i){i=[l.position[0],l.position[1],l.offset[0],l.offset[1],d.extend({},l)]}d.extend(l,i[4]);l.position=[i[0],i[1]];l.offset=[i[2],i[3]];m.css({visibility:"hidden",position:"absolute",top:o.top,left:o.left}).show();var k=b(m);if(!a(k)){if(k[2]){d.extend(l,g.top);l.position[0]="top";m.addClass(e[0])}if(k[3]){d.extend(l,g.right);l.position[1]="right";m.addClass(e[1])}if(k[0]){d.extend(l,g.bottom);l.position[0]="bottom";m.addClass(e[2])}if(k[1]){d.extend(l,g.left);l.position[1]="left";m.addClass(e[3])}if(k[0]||k[2]){l.offset[0]*=-1}if(k[1]||k[3]){l.offset[1]*=-1}}m.css({visibility:"visible"}).hide()});j.onShow(function(){var l=this.getConf(),k=this.getTip();l.position=[i[0],i[1]];l.offset=[i[2],i[3]]});j.onHide(function(){var k=this.getTip();k.removeClass(g.classNames)});f=j});return g.api?f:this}})(jQuery);
|
||||
(function(b){b.tools=b.tools||{};b.tools.scrollable={version:"1.1.2",conf:{size:5,vertical:false,speed:400,keyboard:true,keyboardSteps:null,disabledClass:"disabled",hoverClass:null,clickable:true,activeClass:"active",easing:"swing",loop:false,items:".items",item:null,prev:".prev",next:".next",prevPage:".prevPage",nextPage:".nextPage",api:false}};var c;function a(o,m){var r=this,p=b(this),d=!m.vertical,e=o.children(),k=0,i;if(!c){c=r}b.each(m,function(s,t){if(b.isFunction(t)){p.bind(s,t)}});if(e.length>1){e=b(m.items,o)}function l(t){var s=b(t);return m.globalNav?s:o.parent().find(t)}o.data("finder",l);var f=l(m.prev),h=l(m.next),g=l(m.prevPage),n=l(m.nextPage);b.extend(r,{getIndex:function(){return k},getClickIndex:function(){var s=r.getItems();return s.index(s.filter("."+m.activeClass))},getConf:function(){return m},getSize:function(){return r.getItems().size()},getPageAmount:function(){return Math.ceil(this.getSize()/m.size)},getPageIndex:function(){return Math.ceil(k/m.size)},getNaviButtons:function(){return f.add(h).add(g).add(n)},getRoot:function(){return o},getItemWrap:function(){return e},getItems:function(){return e.children(m.item)},getVisibleItems:function(){return r.getItems().slice(k,k+m.size)},seekTo:function(s,w,t){if(s<0){s=0}if(k===s){return r}if(b.isFunction(w)){t=w}if(s>r.getSize()-m.size){return m.loop?r.begin():this.end()}var u=r.getItems().eq(s);if(!u.length){return r}var v=b.Event("onBeforeSeek");p.trigger(v,[s]);if(v.isDefaultPrevented()){return r}if(w===undefined||b.isFunction(w)){w=m.speed}function x(){if(t){t.call(r,s)}p.trigger("onSeek",[s])}if(d){e.animate({left:-u.position().left},w,m.easing,x)}else{e.animate({top:-u.position().top},w,m.easing,x)}c=r;k=s;v=b.Event("onStart");p.trigger(v,[s]);if(v.isDefaultPrevented()){return r}f.add(g).toggleClass(m.disabledClass,s===0);h.add(n).toggleClass(m.disabledClass,s>=r.getSize()-m.size);return r},move:function(u,t,s){i=u>0;return this.seekTo(k+u,t,s)},next:function(t,s){return this.move(1,t,s)},prev:function(t,s){return this.move(-1,t,s)},movePage:function(w,v,u){i=w>0;var s=m.size*w;var t=k%m.size;if(t>0){s+=(w>0?-t:m.size-t)}return this.move(s,v,u)},prevPage:function(t,s){return this.movePage(-1,t,s)},nextPage:function(t,s){return this.movePage(1,t,s)},setPage:function(t,u,s){return this.seekTo(t*m.size,u,s)},begin:function(t,s){i=false;return this.seekTo(0,t,s)},end:function(t,s){i=true;var u=this.getSize()-m.size;return u>0?this.seekTo(u,t,s):r},reload:function(){p.trigger("onReload");return r},focus:function(){c=r;return r},click:function(u){var v=r.getItems().eq(u),s=m.activeClass,t=m.size;if(u<0||u>=r.getSize()){return r}if(t==1){if(m.loop){return r.next()}if(u===0||u==r.getSize()-1){i=(i===undefined)?true:!i}return i===false?r.prev():r.next()}if(t==2){if(u==k){u--}r.getItems().removeClass(s);v.addClass(s);return r.seekTo(u,time,fn)}if(!v.hasClass(s)){r.getItems().removeClass(s);v.addClass(s);var x=Math.floor(t/2);var w=u-x;if(w>r.getSize()-t){w=r.getSize()-t}if(w!==u){return r.seekTo(w)}}return r},bind:function(s,t){p.bind(s,t);return r},unbind:function(s){p.unbind(s);return r}});b.each("onBeforeSeek,onStart,onSeek,onReload".split(","),function(s,t){r[t]=function(u){return r.bind(t,u)}});f.addClass(m.disabledClass).click(function(){r.prev()});h.click(function(){r.next()});n.click(function(){r.nextPage()});if(r.getSize()<m.size){h.add(n).addClass(m.disabledClass)}g.addClass(m.disabledClass).click(function(){r.prevPage()});var j=m.hoverClass,q="keydown."+Math.random().toString().substring(10);r.onReload(function(){if(j){r.getItems().hover(function(){b(this).addClass(j)},function(){b(this).removeClass(j)})}if(m.clickable){r.getItems().each(function(s){b(this).unbind("click.scrollable").bind("click.scrollable",function(t){if(b(t.target).is("a")){return}return r.click(s)})})}if(m.keyboard){b(document).unbind(q).bind(q,function(t){if(t.altKey||t.ctrlKey){return}if(m.keyboard!="static"&&c!=r){return}var u=m.keyboardSteps;if(d&&(t.keyCode==37||t.keyCode==39)){r.move(t.keyCode==37?-u:u);return t.preventDefault()}if(!d&&(t.keyCode==38||t.keyCode==40)){r.move(t.keyCode==38?-u:u);return t.preventDefault()}return true})}else{b(document).unbind(q)}});r.reload()}b.fn.scrollable=function(d){var e=this.eq(typeof d=="number"?d:0).data("scrollable");if(e){return e}var f=b.extend({},b.tools.scrollable.conf);d=b.extend(f,d);d.keyboardSteps=d.keyboardSteps||d.size;this.each(function(){e=new a(b(this),d);b(this).data("scrollable",e)});return d.api?e:this}})(jQuery);
|
||||
(function(b){var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.circular={version:"0.5.1",conf:{api:false,clonedClass:"cloned"}};b.fn.circular=function(e){var d=b.extend({},a.plugins.circular.conf),c;b.extend(d,e);this.each(function(){var i=b(this).scrollable(),n=i.getItems(),k=i.getConf(),f=i.getItemWrap(),j=0;if(i){c=i}if(n.length<k.size){return false}n.slice(0,k.size).each(function(o){b(this).clone().appendTo(f).click(function(){i.click(n.length+o)}).addClass(d.clonedClass)});var l=b.makeArray(n.slice(-k.size)).reverse();b(l).each(function(o){b(this).clone().prependTo(f).click(function(){i.click(-o-1)}).addClass(d.clonedClass)});var m=f.children(k.item);var h=k.hoverClass;if(h){m.hover(function(){b(this).addClass(h)},function(){b(this).removeClass(h)})}function g(o){var p=m.eq(o);if(k.vertical){f.css({top:-p.position().top})}else{f.css({left:-p.position().left})}}g(k.size);b.extend(i,{move:function(s,r,p,q){var u=j+s+k.size;var t=u>i.getSize()-k.size;if(u<=0||t){var o=j+k.size+(t?-n.length:n.length);g(o);u=o+s}if(q){m.removeClass(k.activeClass).eq(u+Math.floor(k.size/2)).addClass(k.activeClass)}if(u===j+k.size){return self}return i.seekTo(u,r,p)},begin:function(p,o){return this.seekTo(k.size,p,o)},end:function(p,o){return this.seekTo(n.length,p,o)},click:function(p,r,q){if(!k.clickable){return self}if(k.size==1){return this.next()}var s=p-j,o=k.activeClass;s-=Math.floor(k.size/2);return this.move(s,r,q,true)},getIndex:function(){return j},setPage:function(p,q,o){return this.seekTo(p*k.size+k.size,q,o)},getPageAmount:function(){return Math.ceil(n.length/k.size)},getPageIndex:function(){if(j<0){return this.getPageAmount()-1}if(j>=n.length){return 0}var o=(j+k.size)/k.size-1;return o},getVisibleItems:function(){var o=j+k.size;return m.slice(o,o+k.size)}});i.onStart(function(p,o){j=o-k.size;return false});i.getNaviButtons().removeClass(k.disabledClass)});return d.api?c:this}})(jQuery);
|
||||
(function(b){var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.autoscroll={version:"1.0.1",conf:{autoplay:true,interval:3000,autopause:true,steps:1,api:false}};b.fn.autoscroll=function(d){if(typeof d=="number"){d={interval:d}}var e=b.extend({},a.plugins.autoscroll.conf),c;b.extend(e,d);this.each(function(){var g=b(this).scrollable();if(g){c=g}var i,f,h=true;g.play=function(){if(i){return}h=false;i=setInterval(function(){g.move(e.steps)},e.interval);g.move(e.steps)};g.pause=function(){i=clearInterval(i)};g.stop=function(){g.pause();h=true};if(e.autopause){g.getRoot().add(g.getNaviButtons()).hover(function(){g.pause();clearInterval(f)},function(){if(!h){f=setTimeout(g.play,e.interval)}})}if(e.autoplay){setTimeout(g.play,e.interval)}});return e.api?c:this}})(jQuery);
|
||||
(function(b){var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.navigator={version:"1.0.2",conf:{navi:".navi",naviItem:null,activeClass:"active",indexed:false,api:false,idPrefix:null}};b.fn.navigator=function(d){var e=b.extend({},a.plugins.navigator.conf),c;if(typeof d=="string"){d={navi:d}}d=b.extend(e,d);this.each(function(){var i=b(this).scrollable(),f=i.getRoot(),l=f.data("finder").call(null,d.navi),g=null,k=i.getNaviButtons();if(i){c=i}i.getNaviButtons=function(){return k.add(l)};function j(){if(!l.children().length||l.data("navi")==i){l.empty();l.data("navi",i);for(var m=0;m<i.getPageAmount();m++){l.append(b("<"+(d.naviItem||"a")+"/>"))}g=l.children().each(function(n){var o=b(this);o.click(function(p){i.setPage(n);return p.preventDefault()});if(d.indexed){o.text(n)}if(d.idPrefix){o.attr("id",d.idPrefix+n)}})}else{g=d.naviItem?l.find(d.naviItem):l.children();g.each(function(n){var o=b(this);o.click(function(p){i.setPage(n);return p.preventDefault()})})}g.eq(0).addClass(d.activeClass)}i.onStart(function(o,n){var m=d.activeClass;g.removeClass(m).eq(i.getPageIndex()).addClass(m)});i.onReload(function(){j()});j();var h=g.filter("[href="+location.hash+"]");if(h.length){i.move(g.index(h))}});return d.api?c:this}})(jQuery);
|
||||
(function(b){b.fn.wheel=function(e){return this[e?"bind":"trigger"]("wheel",e)};b.event.special.wheel={setup:function(){b.event.add(this,d,c,{})},teardown:function(){b.event.remove(this,d,c)}};var d=!b.browser.mozilla?"mousewheel":"DOMMouseScroll"+(b.browser.version<"1.9"?" mousemove":"");function c(e){switch(e.type){case"mousemove":return b.extend(e.data,{clientX:e.clientX,clientY:e.clientY,pageX:e.pageX,pageY:e.pageY});case"DOMMouseScroll":b.extend(e,e.data);e.delta=-e.detail/3;break;case"mousewheel":e.delta=e.wheelDelta/120;break}e.type="wheel";return b.event.handle.call(this,e,e.delta)}var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.mousewheel={version:"1.0.1",conf:{api:false,speed:50}};b.fn.mousewheel=function(f){var g=b.extend({},a.plugins.mousewheel.conf),e;if(typeof f=="number"){f={speed:f}}f=b.extend(g,f);this.each(function(){var h=b(this).scrollable();if(h){e=h}h.getRoot().wheel(function(i,j){h.move(j<0?1:-1,f.speed||50);return false})});return f.api?e:this}})(jQuery);
|
||||
(function(c){c.tools=c.tools||{};c.tools.overlay={version:"1.1.2",addEffect:function(e,f,g){b[e]=[f,g]},conf:{top:"10%",left:"center",absolute:false,speed:"normal",closeSpeed:"fast",effect:"default",close:null,oneInstance:true,closeOnClick:true,closeOnEsc:true,api:false,expose:null,target:null}};var b={};c.tools.overlay.addEffect("default",function(e){this.getOverlay().fadeIn(this.getConf().speed,e)},function(e){this.getOverlay().fadeOut(this.getConf().closeSpeed,e)});var d=[];function a(g,k){var o=this,m=c(this),n=c(window),j,i,h,e=k.expose&&c.tools.expose.version;var f=k.target||g.attr("rel");i=f?c(f):null||g;if(!i.length){throw"Could not find Overlay: "+f}if(g&&g.index(i)==-1){g.click(function(p){o.load(p);return p.preventDefault()})}c.each(k,function(p,q){if(c.isFunction(q)){m.bind(p,q)}});c.extend(o,{load:function(u){if(o.isOpened()){return o}var r=b[k.effect];if(!r){throw'Overlay: cannot find effect : "'+k.effect+'"'}if(k.oneInstance){c.each(d,function(){this.close(u)})}u=u||c.Event();u.type="onBeforeLoad";m.trigger(u);if(u.isDefaultPrevented()){return o}h=true;if(e){i.expose().load(u)}var t=k.top;var s=k.left;var p=i.outerWidth({margin:true});var q=i.outerHeight({margin:true});if(typeof t=="string"){t=t=="center"?Math.max((n.height()-q)/2,0):parseInt(t,10)/100*n.height()}if(s=="center"){s=Math.max((n.width()-p)/2,0)}if(!k.absolute){t+=n.scrollTop();s+=n.scrollLeft()}i.css({top:t,left:s,position:"absolute"});u.type="onStart";m.trigger(u);r[0].call(o,function(){if(h){u.type="onLoad";m.trigger(u)}});if(k.closeOnClick){c(document).bind("click.overlay",function(w){if(!o.isOpened()){return}var v=c(w.target);if(v.parents(i).length>1){return}c.each(d,function(){this.close(w)})})}if(k.closeOnEsc){c(document).unbind("keydown.overlay").bind("keydown.overlay",function(v){if(v.keyCode==27){c.each(d,function(){this.close(v)})}})}return o},close:function(q){if(!o.isOpened()){return o}q=q||c.Event();q.type="onBeforeClose";m.trigger(q);if(q.isDefaultPrevented()){return}h=false;b[k.effect][1].call(o,function(){q.type="onClose";m.trigger(q)});var p=true;c.each(d,function(){if(this.isOpened()){p=false}});if(p){c(document).unbind("click.overlay").unbind("keydown.overlay")}return o},getContent:function(){return i},getOverlay:function(){return i},getTrigger:function(){return g},getClosers:function(){return j},isOpened:function(){return h},getConf:function(){return k},bind:function(p,q){m.bind(p,q);return o},unbind:function(p){m.unbind(p);return o}});c.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","),function(p,q){o[q]=function(r){return o.bind(q,r)}});if(e){if(typeof k.expose=="string"){k.expose={color:k.expose}}c.extend(k.expose,{api:true,closeOnClick:k.closeOnClick,closeOnEsc:false});var l=i.expose(k.expose);l.onBeforeClose(function(p){o.close(p)});o.onClose(function(p){l.close(p)})}j=i.find(k.close||".close");if(!j.length&&!k.close){j=c('<div class="close"></div>');i.prepend(j)}j.click(function(p){o.close(p)})}c.fn.overlay=function(e){var f=this.eq(typeof e=="number"?e:0).data("overlay");if(f){return f}if(c.isFunction(e)){e={onBeforeLoad:e}}var g=c.extend({},c.tools.overlay.conf);e=c.extend(true,g,e);this.each(function(){f=new a(c(this),e);d.push(f);c(this).data("overlay",f)});return e.api?f:this}})(jQuery);
|
||||
(function(b){var a=b.tools.overlay;a.plugins=a.plugins||{};a.plugins.gallery={version:"1.0.0",conf:{imgId:"img",next:".next",prev:".prev",info:".info",progress:".progress",disabledClass:"disabled",activeClass:"active",opacity:0.8,speed:"slow",template:"<strong>${title}</strong> <span>Image ${index} of ${total}</span>",autohide:true,preload:true,api:false}};b.fn.gallery=function(d){var o=b.extend({},a.plugins.gallery.conf),m;b.extend(o,d);m=this.overlay();var r=this,j=m.getOverlay(),k=j.find(o.next),g=j.find(o.prev),e=j.find(o.info),c=j.find(o.progress),h=g.add(k).add(e).css({opacity:o.opacity}),s=m.getClosers(),l;function p(u){c.fadeIn();h.hide();s.hide();var t=u.attr("href");var v=new Image();v.onload=function(){c.fadeOut();var y=b("#"+o.imgId,j);if(!y.length){y=b("<img/>").attr("id",o.imgId).css("visibility","hidden");j.prepend(y)}y.attr("src",t).css("visibility","hidden");var z=v.width;var A=(b(window).width()-z)/2;l=r.index(r.filter("[href="+t+"]"));r.removeClass(o.activeClass).eq(l).addClass(o.activeClass);var w=o.disabledClass;h.removeClass(w);if(l===0){g.addClass(w)}if(l==r.length-1){k.addClass(w)}var B=o.template.replace("${title}",u.attr("title")||u.data("title")).replace("${index}",l+1).replace("${total}",r.length);var x=parseInt(e.css("paddingLeft"),10)+parseInt(e.css("paddingRight"),10);e.html(B).css({width:z-x});j.animate({width:z,height:v.height,left:A},o.speed,function(){y.hide().css("visibility","visible").fadeIn(function(){if(!o.autohide){h.fadeIn();s.show()}})})};v.onerror=function(){j.fadeIn().html("Cannot find image "+t)};v.src=t;if(o.preload){r.filter(":eq("+(l-1)+"), :eq("+(l+1)+")").each(function(){var w=new Image();w.src=b(this).attr("href")})}}function f(t,u){t.click(function(){if(t.hasClass(o.disabledClass)){return}var v=r.eq(i=l+(u?1:-1));if(v.length){p(v)}})}f(k,true);f(g);b(document).keydown(function(t){if(!j.is(":visible")||t.altKey||t.ctrlKey){return}if(t.keyCode==37||t.keyCode==39){var u=t.keyCode==37?g:k;u.click();return t.preventDefault()}return true});function q(){if(!j.is(":animated")){h.show();s.show()}}if(o.autohide){j.hover(q,function(){h.fadeOut();s.hide()}).mousemove(q)}var n;this.each(function(){var v=b(this),u=b(this).overlay(),t=u;u.onBeforeLoad(function(){p(v)});u.onClose(function(){r.removeClass(o.activeClass)})});return o.api?n:this}})(jQuery);
|
||||
(function(d){var b=d.tools.overlay;b.effects=b.effects||{};b.effects.apple={version:"1.0.1"};d.extend(b.conf,{start:{absolute:true,top:null,left:null},fadeInSpeed:"fast",zIndex:9999});function c(f){var g=f.offset();return[g.top+f.height()/2,g.left+f.width()/2]}var e=function(n){var k=this.getOverlay(),f=this.getConf(),i=this.getTrigger(),q=this,r=k.outerWidth({margin:true}),m=k.data("img");if(!m){var l=k.css("backgroundImage");if(!l){throw"background-image CSS property not set for overlay"}l=l.substring(l.indexOf("(")+1,l.indexOf(")")).replace(/\"/g,"");k.css("backgroundImage","none");m=d('<img src="'+l+'"/>');m.css({border:0,position:"absolute",display:"none"}).width(r);d("body").append(m);k.data("img",m)}var o=d(window),j=f.start.top||Math.round(o.height()/2),h=f.start.left||Math.round(o.width()/2);if(i){var g=c(i);j=g[0];h=g[1]}if(!f.start.absolute){j+=o.scrollTop();h+=o.scrollLeft()}m.css({top:j,left:h,width:0,zIndex:f.zIndex}).show();m.animate({top:k.css("top"),left:k.css("left"),width:r},f.speed,function(){k.css("zIndex",f.zIndex+1).fadeIn(f.fadeInSpeed,function(){if(q.isOpened()&&!d(this).index(k)){n.call()}else{k.hide()}})})};var a=function(f){var h=this.getOverlay(),i=this.getConf(),g=this.getTrigger(),l=i.start.top,k=i.start.left;h.hide();if(g){var j=c(g);l=j[0];k=j[1]}h.data("img").animate({top:l,left:k,width:0},i.closeSpeed,f)};b.addEffect("apple",e,a)})(jQuery);
|
||||
(function(b){b.tools=b.tools||{};b.tools.expose={version:"1.0.5",conf:{maskId:null,loadSpeed:"slow",closeSpeed:"fast",closeOnClick:true,closeOnEsc:true,zIndex:9998,opacity:0.8,color:"#456",api:false}};function a(){if(b.browser.msie){var f=b(document).height(),e=b(window).height();return[window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,f-e<20?e:f]}return[b(window).width(),b(document).height()]}function c(h,g){var e=this,j=b(this),d=null,f=false,i=0;b.each(g,function(k,l){if(b.isFunction(l)){j.bind(k,l)}});b(window).resize(function(){e.fit()});b.extend(this,{getMask:function(){return d},getExposed:function(){return h},getConf:function(){return g},isLoaded:function(){return f},load:function(n){if(f){return e}i=h.eq(0).css("zIndex");if(g.maskId){d=b("#"+g.maskId)}if(!d||!d.length){var l=a();d=b("<div/>").css({position:"absolute",top:0,left:0,width:l[0],height:l[1],display:"none",opacity:0,zIndex:g.zIndex});if(g.maskId){d.attr("id",g.maskId)}b("body").append(d);var k=d.css("backgroundColor");if(!k||k=="transparent"||k=="rgba(0, 0, 0, 0)"){d.css("backgroundColor",g.color)}if(g.closeOnEsc){b(document).bind("keydown.unexpose",function(o){if(o.keyCode==27){e.close()}})}if(g.closeOnClick){d.bind("click.unexpose",function(o){e.close(o)})}}n=n||b.Event();n.type="onBeforeLoad";j.trigger(n);if(n.isDefaultPrevented()){return e}b.each(h,function(){var o=b(this);if(!/relative|absolute|fixed/i.test(o.css("position"))){o.css("position","relative")}});h.css({zIndex:Math.max(g.zIndex+1,i=="auto"?0:i)});var m=d.height();if(!this.isLoaded()){d.css({opacity:0,display:"block"}).fadeTo(g.loadSpeed,g.opacity,function(){if(d.height()!=m){d.css("height",m)}n.type="onLoad";j.trigger(n)})}f=true;return e},close:function(k){if(!f){return e}k=k||b.Event();k.type="onBeforeClose";j.trigger(k);if(k.isDefaultPrevented()){return e}d.fadeOut(g.closeSpeed,function(){k.type="onClose";j.trigger(k);h.css({zIndex:b.browser.msie?i:null})});f=false;return e},fit:function(){if(d){var k=a();d.css({width:k[0],height:k[1]})}},bind:function(k,l){j.bind(k,l);return e},unbind:function(k){j.unbind(k);return e}});b.each("onBeforeLoad,onLoad,onBeforeClose,onClose".split(","),function(k,l){e[l]=function(m){return e.bind(l,m)}})}b.fn.expose=function(d){var e=this.eq(typeof d=="number"?d:0).data("expose");if(e){return e}if(typeof d=="string"){d={color:d}}var f=b.extend({},b.tools.expose.conf);d=b.extend(f,d);this.each(function(){e=new c(b(this),d);b(this).data("expose",e)});return d.api?e:this}})(jQuery);
|
||||
@@ -1,493 +0,0 @@
|
||||
/*
|
||||
SortTable
|
||||
version 2
|
||||
7th April 2007
|
||||
Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/
|
||||
|
||||
Instructions:
|
||||
Download this file
|
||||
Add <script src="sorttable.js"></script> to your HTML
|
||||
Add class="sortable" to any table you'd like to make sortable
|
||||
Click on the headers to sort
|
||||
|
||||
Thanks to many, many people for contributions and suggestions.
|
||||
Licenced as X11: http://www.kryogenix.org/code/browser/licence.html
|
||||
This basically means: do what you want with it.
|
||||
*/
|
||||
|
||||
|
||||
var stIsIE = /*@cc_on!@*/false;
|
||||
|
||||
sorttable = {
|
||||
init: function() {
|
||||
// quit if this function has already been called
|
||||
if (arguments.callee.done) return;
|
||||
// flag this function so we don't do the same thing twice
|
||||
arguments.callee.done = true;
|
||||
// kill the timer
|
||||
if (_timer) clearInterval(_timer);
|
||||
|
||||
if (!document.createElement || !document.getElementsByTagName) return;
|
||||
|
||||
sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/;
|
||||
|
||||
forEach(document.getElementsByTagName('table'), function(table) {
|
||||
if (table.className.search(/\bsortable\b/) != -1) {
|
||||
sorttable.makeSortable(table);
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
makeSortable: function(table) {
|
||||
if (table.getElementsByTagName('thead').length == 0) {
|
||||
// table doesn't have a tHead. Since it should have, create one and
|
||||
// put the first table row in it.
|
||||
the = document.createElement('thead');
|
||||
the.appendChild(table.rows[0]);
|
||||
table.insertBefore(the,table.firstChild);
|
||||
}
|
||||
// Safari doesn't support table.tHead, sigh
|
||||
if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0];
|
||||
|
||||
if (table.tHead.rows.length != 1) return; // can't cope with two header rows
|
||||
|
||||
// Sorttable v1 put rows with a class of "sortbottom" at the bottom (as
|
||||
// "total" rows, for example). This is B&R, since what you're supposed
|
||||
// to do is put them in a tfoot. So, if there are sortbottom rows,
|
||||
// for backwards compatibility, move them to tfoot (creating it if needed).
|
||||
sortbottomrows = [];
|
||||
for (var i=0; i<table.rows.length; i++) {
|
||||
if (table.rows[i].className.search(/\bsortbottom\b/) != -1) {
|
||||
sortbottomrows[sortbottomrows.length] = table.rows[i];
|
||||
}
|
||||
}
|
||||
if (sortbottomrows) {
|
||||
if (table.tFoot == null) {
|
||||
// table doesn't have a tfoot. Create one.
|
||||
tfo = document.createElement('tfoot');
|
||||
table.appendChild(tfo);
|
||||
}
|
||||
for (var i=0; i<sortbottomrows.length; i++) {
|
||||
tfo.appendChild(sortbottomrows[i]);
|
||||
}
|
||||
delete sortbottomrows;
|
||||
}
|
||||
|
||||
// work through each column and calculate its type
|
||||
headrow = table.tHead.rows[0].cells;
|
||||
for (var i=0; i<headrow.length; i++) {
|
||||
// manually override the type with a sorttable_type attribute
|
||||
if (!headrow[i].className.match(/\bsorttable_nosort\b/)) { // skip this col
|
||||
mtch = headrow[i].className.match(/\bsorttable_([a-z0-9]+)\b/);
|
||||
if (mtch) { override = mtch[1]; }
|
||||
if (mtch && typeof sorttable["sort_"+override] == 'function') {
|
||||
headrow[i].sorttable_sortfunction = sorttable["sort_"+override];
|
||||
} else {
|
||||
headrow[i].sorttable_sortfunction = sorttable.guessType(table,i);
|
||||
}
|
||||
// make it clickable to sort
|
||||
headrow[i].sorttable_columnindex = i;
|
||||
headrow[i].sorttable_tbody = table.tBodies[0];
|
||||
dean_addEvent(headrow[i],"click", function(e) {
|
||||
|
||||
if (this.className.search(/\bsorttable_sorted\b/) != -1) {
|
||||
// if we're already sorted by this column, just
|
||||
// reverse the table, which is quicker
|
||||
sorttable.reverse(this.sorttable_tbody);
|
||||
this.className = this.className.replace('sorttable_sorted',
|
||||
'sorttable_sorted_reverse');
|
||||
this.removeChild(document.getElementById('sorttable_sortfwdind'));
|
||||
sortrevind = document.createElement('span');
|
||||
sortrevind.id = "sorttable_sortrevind";
|
||||
sortrevind.innerHTML = stIsIE ? ' <font face="webdings">5</font>' : ' ▴';
|
||||
this.appendChild(sortrevind);
|
||||
return;
|
||||
}
|
||||
if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) {
|
||||
// if we're already sorted by this column in reverse, just
|
||||
// re-reverse the table, which is quicker
|
||||
sorttable.reverse(this.sorttable_tbody);
|
||||
this.className = this.className.replace('sorttable_sorted_reverse',
|
||||
'sorttable_sorted');
|
||||
this.removeChild(document.getElementById('sorttable_sortrevind'));
|
||||
sortfwdind = document.createElement('span');
|
||||
sortfwdind.id = "sorttable_sortfwdind";
|
||||
sortfwdind.innerHTML = stIsIE ? ' <font face="webdings">6</font>' : ' ▾';
|
||||
this.appendChild(sortfwdind);
|
||||
return;
|
||||
}
|
||||
|
||||
// remove sorttable_sorted classes
|
||||
theadrow = this.parentNode;
|
||||
forEach(theadrow.childNodes, function(cell) {
|
||||
if (cell.nodeType == 1) { // an element
|
||||
cell.className = cell.className.replace('sorttable_sorted_reverse','');
|
||||
cell.className = cell.className.replace('sorttable_sorted','');
|
||||
}
|
||||
});
|
||||
sortfwdind = document.getElementById('sorttable_sortfwdind');
|
||||
if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); }
|
||||
sortrevind = document.getElementById('sorttable_sortrevind');
|
||||
if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); }
|
||||
|
||||
this.className += ' sorttable_sorted';
|
||||
sortfwdind = document.createElement('span');
|
||||
sortfwdind.id = "sorttable_sortfwdind";
|
||||
sortfwdind.innerHTML = stIsIE ? ' <font face="webdings">6</font>' : ' ▾';
|
||||
this.appendChild(sortfwdind);
|
||||
|
||||
// build an array to sort. This is a Schwartzian transform thing,
|
||||
// i.e., we "decorate" each row with the actual sort key,
|
||||
// sort based on the sort keys, and then put the rows back in order
|
||||
// which is a lot faster because you only do getInnerText once per row
|
||||
row_array = [];
|
||||
col = this.sorttable_columnindex;
|
||||
rows = this.sorttable_tbody.rows;
|
||||
for (var j=0; j<rows.length; j++) {
|
||||
row_array[row_array.length] = [sorttable.getInnerText(rows[j].cells[col]), rows[j]];
|
||||
}
|
||||
/* If you want a stable sort, uncomment the following line */
|
||||
//sorttable.shaker_sort(row_array, this.sorttable_sortfunction);
|
||||
/* and comment out this one */
|
||||
row_array.sort(this.sorttable_sortfunction);
|
||||
|
||||
tb = this.sorttable_tbody;
|
||||
for (var j=0; j<row_array.length; j++) {
|
||||
tb.appendChild(row_array[j][1]);
|
||||
}
|
||||
|
||||
delete row_array;
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
guessType: function(table, column) {
|
||||
// guess the type of a column based on its first non-blank row
|
||||
sortfn = sorttable.sort_alpha;
|
||||
for (var i=0; i<table.tBodies[0].rows.length; i++) {
|
||||
text = sorttable.getInnerText(table.tBodies[0].rows[i].cells[column]);
|
||||
if (text != '') {
|
||||
if (text.match(/^-?[£$¤]?[\d,.]+%?$/)) {
|
||||
return sorttable.sort_numeric;
|
||||
}
|
||||
// check for a date: dd/mm/yyyy or dd/mm/yy
|
||||
// can have / or . or - as separator
|
||||
// can be mm/dd as well
|
||||
possdate = text.match(sorttable.DATE_RE)
|
||||
if (possdate) {
|
||||
// looks like a date
|
||||
first = parseInt(possdate[1]);
|
||||
second = parseInt(possdate[2]);
|
||||
if (first > 12) {
|
||||
// definitely dd/mm
|
||||
return sorttable.sort_ddmm;
|
||||
} else if (second > 12) {
|
||||
return sorttable.sort_mmdd;
|
||||
} else {
|
||||
// looks like a date, but we can't tell which, so assume
|
||||
// that it's dd/mm (English imperialism!) and keep looking
|
||||
sortfn = sorttable.sort_ddmm;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return sortfn;
|
||||
},
|
||||
|
||||
getInnerText: function(node) {
|
||||
// gets the text we want to use for sorting for a cell.
|
||||
// strips leading and trailing whitespace.
|
||||
// this is *not* a generic getInnerText function; it's special to sorttable.
|
||||
// for example, you can override the cell text with a customkey attribute.
|
||||
// it also gets .value for <input> fields.
|
||||
|
||||
hasInputs = (typeof node.getElementsByTagName == 'function') &&
|
||||
node.getElementsByTagName('input').length;
|
||||
|
||||
if (node.getAttribute("sorttable_customkey") != null) {
|
||||
return node.getAttribute("sorttable_customkey");
|
||||
}
|
||||
else if (typeof node.textContent != 'undefined' && !hasInputs) {
|
||||
return node.textContent.replace(/^\s+|\s+$/g, '');
|
||||
}
|
||||
else if (typeof node.innerText != 'undefined' && !hasInputs) {
|
||||
return node.innerText.replace(/^\s+|\s+$/g, '');
|
||||
}
|
||||
else if (typeof node.text != 'undefined' && !hasInputs) {
|
||||
return node.text.replace(/^\s+|\s+$/g, '');
|
||||
}
|
||||
else {
|
||||
switch (node.nodeType) {
|
||||
case 3:
|
||||
if (node.nodeName.toLowerCase() == 'input') {
|
||||
return node.value.replace(/^\s+|\s+$/g, '');
|
||||
}
|
||||
case 4:
|
||||
return node.nodeValue.replace(/^\s+|\s+$/g, '');
|
||||
break;
|
||||
case 1:
|
||||
case 11:
|
||||
var innerText = '';
|
||||
for (var i = 0; i < node.childNodes.length; i++) {
|
||||
innerText += sorttable.getInnerText(node.childNodes[i]);
|
||||
}
|
||||
return innerText.replace(/^\s+|\s+$/g, '');
|
||||
break;
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
reverse: function(tbody) {
|
||||
// reverse the rows in a tbody
|
||||
newrows = [];
|
||||
for (var i=0; i<tbody.rows.length; i++) {
|
||||
newrows[newrows.length] = tbody.rows[i];
|
||||
}
|
||||
for (var i=newrows.length-1; i>=0; i--) {
|
||||
tbody.appendChild(newrows[i]);
|
||||
}
|
||||
delete newrows;
|
||||
},
|
||||
|
||||
/* sort functions
|
||||
each sort function takes two parameters, a and b
|
||||
you are comparing a[0] and b[0] */
|
||||
sort_numeric: function(a,b) {
|
||||
aa = parseFloat(a[0].replace(/[^0-9.-]/g,''));
|
||||
if (isNaN(aa)) aa = 0;
|
||||
bb = parseFloat(b[0].replace(/[^0-9.-]/g,''));
|
||||
if (isNaN(bb)) bb = 0;
|
||||
return aa-bb;
|
||||
},
|
||||
sort_alpha: function(a,b) {
|
||||
if (a[0]==b[0]) return 0;
|
||||
if (a[0]<b[0]) return -1;
|
||||
return 1;
|
||||
},
|
||||
sort_ddmm: function(a,b) {
|
||||
mtch = a[0].match(sorttable.DATE_RE);
|
||||
y = mtch[3]; m = mtch[2]; d = mtch[1];
|
||||
if (m.length == 1) m = '0'+m;
|
||||
if (d.length == 1) d = '0'+d;
|
||||
dt1 = y+m+d;
|
||||
mtch = b[0].match(sorttable.DATE_RE);
|
||||
y = mtch[3]; m = mtch[2]; d = mtch[1];
|
||||
if (m.length == 1) m = '0'+m;
|
||||
if (d.length == 1) d = '0'+d;
|
||||
dt2 = y+m+d;
|
||||
if (dt1==dt2) return 0;
|
||||
if (dt1<dt2) return -1;
|
||||
return 1;
|
||||
},
|
||||
sort_mmdd: function(a,b) {
|
||||
mtch = a[0].match(sorttable.DATE_RE);
|
||||
y = mtch[3]; d = mtch[2]; m = mtch[1];
|
||||
if (m.length == 1) m = '0'+m;
|
||||
if (d.length == 1) d = '0'+d;
|
||||
dt1 = y+m+d;
|
||||
mtch = b[0].match(sorttable.DATE_RE);
|
||||
y = mtch[3]; d = mtch[2]; m = mtch[1];
|
||||
if (m.length == 1) m = '0'+m;
|
||||
if (d.length == 1) d = '0'+d;
|
||||
dt2 = y+m+d;
|
||||
if (dt1==dt2) return 0;
|
||||
if (dt1<dt2) return -1;
|
||||
return 1;
|
||||
},
|
||||
|
||||
shaker_sort: function(list, comp_func) {
|
||||
// A stable sort function to allow multi-level sorting of data
|
||||
// see: http://en.wikipedia.org/wiki/Cocktail_sort
|
||||
// thanks to Joseph Nahmias
|
||||
var b = 0;
|
||||
var t = list.length - 1;
|
||||
var swap = true;
|
||||
|
||||
while(swap) {
|
||||
swap = false;
|
||||
for(var i = b; i < t; ++i) {
|
||||
if ( comp_func(list[i], list[i+1]) > 0 ) {
|
||||
var q = list[i]; list[i] = list[i+1]; list[i+1] = q;
|
||||
swap = true;
|
||||
}
|
||||
} // for
|
||||
t--;
|
||||
|
||||
if (!swap) break;
|
||||
|
||||
for(var i = t; i > b; --i) {
|
||||
if ( comp_func(list[i], list[i-1]) < 0 ) {
|
||||
var q = list[i]; list[i] = list[i-1]; list[i-1] = q;
|
||||
swap = true;
|
||||
}
|
||||
} // for
|
||||
b++;
|
||||
|
||||
} // while(swap)
|
||||
}
|
||||
}
|
||||
|
||||
/* ******************************************************************
|
||||
Supporting functions: bundled here to avoid depending on a library
|
||||
****************************************************************** */
|
||||
|
||||
// Dean Edwards/Matthias Miller/John Resig
|
||||
|
||||
/* for Mozilla/Opera9 */
|
||||
if (document.addEventListener) {
|
||||
document.addEventListener("DOMContentLoaded", sorttable.init, false);
|
||||
}
|
||||
|
||||
/* for Internet Explorer */
|
||||
/*@cc_on @*/
|
||||
/*@if (@_win32)
|
||||
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
|
||||
var script = document.getElementById("__ie_onload");
|
||||
script.onreadystatechange = function() {
|
||||
if (this.readyState == "complete") {
|
||||
sorttable.init(); // call the onload handler
|
||||
}
|
||||
};
|
||||
/*@end @*/
|
||||
|
||||
/* for Safari */
|
||||
if (/WebKit/i.test(navigator.userAgent)) { // sniff
|
||||
var _timer = setInterval(function() {
|
||||
if (/loaded|complete/.test(document.readyState)) {
|
||||
sorttable.init(); // call the onload handler
|
||||
}
|
||||
}, 10);
|
||||
}
|
||||
|
||||
/* for other browsers */
|
||||
window.onload = sorttable.init;
|
||||
|
||||
// written by Dean Edwards, 2005
|
||||
// with input from Tino Zijdel, Matthias Miller, Diego Perini
|
||||
|
||||
// http://dean.edwards.name/weblog/2005/10/add-event/
|
||||
|
||||
function dean_addEvent(element, type, handler) {
|
||||
if (element.addEventListener) {
|
||||
element.addEventListener(type, handler, false);
|
||||
} else {
|
||||
// assign each event handler a unique ID
|
||||
if (!handler.$$guid) handler.$$guid = dean_addEvent.guid++;
|
||||
// create a hash table of event types for the element
|
||||
if (!element.events) element.events = {};
|
||||
// create a hash table of event handlers for each element/event pair
|
||||
var handlers = element.events[type];
|
||||
if (!handlers) {
|
||||
handlers = element.events[type] = {};
|
||||
// store the existing event handler (if there is one)
|
||||
if (element["on" + type]) {
|
||||
handlers[0] = element["on" + type];
|
||||
}
|
||||
}
|
||||
// store the event handler in the hash table
|
||||
handlers[handler.$$guid] = handler;
|
||||
// assign a global event handler to do all the work
|
||||
element["on" + type] = handleEvent;
|
||||
}
|
||||
};
|
||||
// a counter used to create unique IDs
|
||||
dean_addEvent.guid = 1;
|
||||
|
||||
function removeEvent(element, type, handler) {
|
||||
if (element.removeEventListener) {
|
||||
element.removeEventListener(type, handler, false);
|
||||
} else {
|
||||
// delete the event handler from the hash table
|
||||
if (element.events && element.events[type]) {
|
||||
delete element.events[type][handler.$$guid];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function handleEvent(event) {
|
||||
var returnValue = true;
|
||||
// grab the event object (IE uses a global event object)
|
||||
event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
|
||||
// get a reference to the hash table of event handlers
|
||||
var handlers = this.events[event.type];
|
||||
// execute each event handler
|
||||
for (var i in handlers) {
|
||||
this.$$handleEvent = handlers[i];
|
||||
if (this.$$handleEvent(event) === false) {
|
||||
returnValue = false;
|
||||
}
|
||||
}
|
||||
return returnValue;
|
||||
};
|
||||
|
||||
function fixEvent(event) {
|
||||
// add W3C standard event methods
|
||||
event.preventDefault = fixEvent.preventDefault;
|
||||
event.stopPropagation = fixEvent.stopPropagation;
|
||||
return event;
|
||||
};
|
||||
fixEvent.preventDefault = function() {
|
||||
this.returnValue = false;
|
||||
};
|
||||
fixEvent.stopPropagation = function() {
|
||||
this.cancelBubble = true;
|
||||
}
|
||||
|
||||
// Dean's forEach: http://dean.edwards.name/base/forEach.js
|
||||
/*
|
||||
forEach, version 1.0
|
||||
Copyright 2006, Dean Edwards
|
||||
License: http://www.opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
|
||||
// array-like enumeration
|
||||
if (!Array.forEach) { // mozilla already supports this
|
||||
Array.forEach = function(array, block, context) {
|
||||
for (var i = 0; i < array.length; i++) {
|
||||
block.call(context, array[i], i, array);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// generic enumeration
|
||||
Function.prototype.forEach = function(object, block, context) {
|
||||
for (var key in object) {
|
||||
if (typeof this.prototype[key] == "undefined") {
|
||||
block.call(context, object[key], key, object);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// character enumeration
|
||||
String.forEach = function(string, block, context) {
|
||||
Array.forEach(string.split(""), function(chr, index) {
|
||||
block.call(context, chr, index, string);
|
||||
});
|
||||
};
|
||||
|
||||
// globally resolve forEach enumeration
|
||||
var forEach = function(object, block, context) {
|
||||
if (object) {
|
||||
var resolve = Object; // default
|
||||
if (object instanceof Function) {
|
||||
// functions have a "length" property
|
||||
resolve = Function;
|
||||
} else if (object.forEach instanceof Function) {
|
||||
// the object implements a custom forEach method so use that
|
||||
object.forEach(block, context);
|
||||
return;
|
||||
} else if (typeof object == "string") {
|
||||
// the object is a string
|
||||
resolve = String;
|
||||
} else if (typeof object.length == "number") {
|
||||
// the object is array-like
|
||||
resolve = Array;
|
||||
}
|
||||
resolve.forEach(object, block, context);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user