/*
 *  BarCode Coder Library (BCC Library)
 *  BCCL Version 2.0
 *    
 *  Porting : Jquery barcode plugin 
 *  Version : 2.0.1
 *   
 *  Date  : September 05, 2010
 *  Author  : DEMONTE Jean-Baptiste (firejocker)
 *            HOUREZ Jonathan
 *  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)
 *    datamatrix (datamatrix)
 *  
 *  Output :
 *   
 *    CSS (compatible with any browser)
 *    SVG inline (not compatible with IE)
 *    BMP inline (not compatible with IE)      
 *    CANVAS html 5 (not compatible with IE)
 * 
 *  Changelog :
 *    
 *    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 report
 *    1.3 - 2009/09/26
 *      bmp and svg image renderer added   
 *    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
 *    2.0.1 - 2010/09/05
 *      CSS fixed to print easily - Thanks to Léo West for this fix
 *      datamatrix added - Jonathan Hourez join developper team
 *      canvas renderer added    
 *      code cleaned
 *      fontSize become an integer 
 *  
 */
 
$.barcode={settings:{barWidth:1,barHeight:50,moduleSize:5,showHRI:true,addQuietZone:true,marginHRI:5,bgColor:"#FFFFFF",color:"#000000",fontSize:10,output:"css",posX:0,posY:0},intval:function(b){var a=typeof(b);if(a=="string"){b=b.replace(/[^0-9-.]/g,"");b=parseInt(b*1,10);return isNaN(b)||!isFinite(b)?0:b}return a=="number"&&isFinite(b)?Math.floor(b):0},i25:{encoding:["NNWWN","WNNNW","NWNNW","WWNNN","NNWNW","WNWNN","NWWNN","NNNWW","WNNWN","NWNWN"],compute:function(e,g,d){if(!g){if(e.length%2!=0){e="0"+e}}else{if((d=="int25")&&(e.length%2==0)){e="0"+e}var f=true,a,c=0;for(var b=e.length-1;b>-1;b--){a=$.barcode.intval(e.charAt(b));if(isNaN(a)){return("")}c+=f?3*a:a;f=!f}e+=((10-c%10)%10).toString()}return(e)},getDigit:function(g,h,f){g=this.compute(g,h,f);if(g==""){return("")}result="";var d,a;if(f=="int25"){result+="1010";var e,b;for(d=0;d<g.length/2;d++){e=g.charAt(2*d);b=g.charAt(2*d+1);for(a=0;a<5;a++){result+="1";if(this.encoding[e].charAt(a)=="W"){result+="1"}result+="0";if(this.encoding[b].charAt(a)=="W"){result+="0"}}}result+="1101"}else{if(f=="std25"){result+="11011010";var k;for(d=0;d<g.length;d++){k=g.charAt(d);for(a=0;a<5;a++){result+="1";if(this.encoding[k].charAt(a)=="W"){result+="11"}result+="0"}}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(g,f){var b=f=="ean8"?7:12;g=g.substring(0,b);if(g.length!=b){return("")}var h;for(var e=0;e<g.length;e++){h=g.charAt(e);if((h<"0")||(h>"9")){return("")}}g=this.compute(g,f);var a="101";if(f=="ean8"){for(var e=0;e<4;e++){a+=this.encoding[$.barcode.intval(g.charAt(e))][0]}a+="01010";for(var e=4;e<8;e++){a+=this.encoding[$.barcode.intval(g.charAt(e))][2]}}else{var d=this.first[$.barcode.intval(g.charAt(0))];for(var e=1;e<7;e++){a+=this.encoding[$.barcode.intval(g.charAt(e))][$.barcode.intval(d.charAt(e-1))]}a+="01010";for(var e=7;e<13;e++){a+=this.encoding[$.barcode.intval(g.charAt(e))][2]}}a+="101";return(a)},compute:function(d,c){var a=c=="ean13"?12:7;d=d.substring(0,a);var b=0,e=true;for(i=d.length-1;i>-1;i--){b+=(e?3:1)*$.barcode.intval(d.charAt(i));e=!e}return(d+((10-b%10)%10).toString())}},msi:{encoding:["100100100100","100100100110","100100110100","100100110110","100110100100","100110100110","100110110100","100110110110","110100100100","110100100110"],compute:function(a,b){if(typeof(b)=="object"){if(b.crc1=="mod10"){a=this.computeMod10(a)}else{if(b.crc1=="mod11"){a=this.computeMod11(a)}}if(b.crc2=="mod10"){a=this.computeMod10(a)}else{if(b.crc2=="mod11"){a=this.computeMod11(a)}}}else{if(typeof(b)=="boolean"){if(b){a=this.computeMod10(a)}}}return(a)},computeMod10:function(f){var c,a=f.length%2;var e=0,d=0;for(c=0;c<f.length;c++){if(a){e=10*e+$.barcode.intval(f.charAt(c))}else{d+=$.barcode.intval(f.charAt(c))}a=!a}var b=(2*e).toString();for(c=0;c<b.length;c++){d+=$.barcode.intval(b.charAt(c))}return(f+((10-d%10)%10).toString())},computeMod11:function(c){var b=0,d=2;for(var a=c.length-1;a>=0;a--){b+=d*$.barcode.intval(c.charAt(a));d=d==7?2:d+1}return(c+((11-b%11)%11).toString())},getDigit:function(d,e){var c="0123456789";var b=0;var a="";d=this.compute(d,false);a="110";for(i=0;i<d.length;i++){b=c.indexOf(d.charAt(i));if(b<0){return("")}a+=this.encoding[b]}a+="1001";return(a)}},code11:{encoding:["101011","1101011","1001011","1100101","1011011","1101101","1001101","1010011","1101001","110101","101101"],getDigit:function(b){var n="0123456789-";var g,j,o="",d="0";o="1011001"+d;for(g=0;g<b.length;g++){j=n.indexOf(b.charAt(g));if(j<0){return("")}o+=this.encoding[j]+d}var m=0,f=0,h=1,a=0;for(g=b.length-1;g>=0;g--){m=m==10?1:m+1;h=h==10?1:h+1;j=n.indexOf(b.charAt(g));f+=m*j;a+=h*j}var l=f%11;a+=l;var e=a%11;o+=this.encoding[l]+d;if(b.length>=10){o+=this.encoding[e]+d}o+="1011001";return(o)}},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(f){var e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%*";var d,c,b="",a="0";if(f.indexOf("*")>=0){return("")}f=("*"+f+"*").toUpperCase();for(d=0;d<f.length;d++){c=e.indexOf(f.charAt(d));if(c<0){return("")}if(d>0){b+=a}b+=this.encoding[c]}return(b)}},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(b,g){var l="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%____*",h,m="";if(b.indexOf("*")>=0){return("")}b=b.toUpperCase();m+=this.encoding[47];for(i=0;i<b.length;i++){h=b.charAt(i);index=l.indexOf(h);if((h=="_")||(index<0)){return("")}m+=this.encoding[index]}if(g){var j=0,e=0,f=1,a=0;for(i=b.length-1;i>=0;i--){j=j==20?1:j+1;f=f==15?1:f+1;index=l.indexOf(b.charAt(i));e+=j*index;a+=f*index}var h=e%47;a+=h;var d=a%47;m+=this.encoding[h];m+=this.encoding[d]}m+=this.encoding[47];m+="1";return(m)}},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(b){var a=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~";var m="";var h=0;var d=0;var g=0;var f=0;var l=0;for(g=0;g<b.length;g++){if(a.indexOf(b.charAt(g))==-1){return("")}}var e=b.length>1;var k="";for(g=0;g<3&&g<b.length;g++){k=b.charAt(g);e&=k>="0"&&k<="9"}h=e?105:104;m=this.encoding[h];g=0;while(g<b.length){if(!e){f=0;while((g+f<b.length)&&(b.charAt(g+f)>="0")&&(b.charAt(g+f)<="9")){f++}e=(f>5)||((g+f-1==b.length)&&(f>3));if(e){m+=this.encoding[99];h+=++d*99}}else{if((g==b.length)||(b.charAt(g)<"0")||(b.charAt(g)>"9")||(b.charAt(g+1)<"0")||(b.charAt(g+1)>"9")){e=false;m+=this.encoding[100];h+=++d*100}}if(e){l=$.barcode.intval(b.charAt(g)+b.charAt(g+1));g+=2}else{l=a.indexOf(b.charAt(g));g+=1}m+=this.encoding[l];h+=++d*l}m+=this.encoding[h%103];m+=this.encoding[106];m+="11";return(m)}},codabar:{encoding:["101010011","101011001","101001011","110010101","101101001","110101001","100101011","100101101","100110101","110100101","101001101","101100101","1101011011","1101101011","1101101101","1011011011","1011001001","1010010011","1001001011","1010011001"],getDigit:function(f){var e="0123456789-$:/.+";var d,c,b="",a="0";b+=this.encoding[16]+a;for(d=0;d<f.length;d++){c=e.indexOf(f.charAt(d));if(c<0){return("")}b+=this.encoding[c]+a}b+=this.encoding[16];return(b)}},datamatrix:{encoding:["101010011","101011001","101001011","110010101","101101001","110101001","100101011","100101101","100110101","110100101","101001101","101100101","1101011011","1101101011","1101101101","1011011011","1011001001","1010010011","1001001011","1010011001"],lengthRows:[10,12,14,16,18,20,22,24,26,32,36,40,44,48,52,64,72,80,88,96,104,120,132,144,8,8,12,12,16,16],lengthCols:[10,12,14,16,18,20,22,24,26,32,36,40,44,48,52,64,72,80,88,96,104,120,132,144,18,32,26,36,36,48],mappingRows:[8,10,12,14,16,18,20,22,24,28,32,36,40,44,48,56,64,72,80,88,96,108,120,132,6,6,10,10,14,14],mappingCols:[8,10,12,14,16,18,20,22,24,28,32,36,40,44,48,56,64,72,80,88,96,108,120,132,16,28,24,32,32,44],dataCWCount:[3,5,8,12,18,22,30,36,44,62,86,114,144,174,204,280,368,456,576,696,816,1050,1304,1558,5,10,16,22,32,49],solomonCWCount:[5,7,10,12,14,18,20,24,28,36,42,48,56,68,84,112,144,192,224,272,336,408,496,620,7,11,14,18,24,28],dataRegionRows:[8,10,12,14,16,18,20,22,24,14,16,18,20,22,24,14,16,18,20,22,24,18,20,22,6,6,10,10,14,14],dataRegionCols:[8,10,12,14,16,18,20,22,24,14,16,18,20,22,24,14,16,18,20,22,24,18,20,22,16,14,24,16,16,22],regionRows:[1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,4,4,4,4,4,4,6,6,6,1,1,1,1,1,1],regionCols:[1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,4,4,4,4,4,4,6,6,6,1,2,1,2,2,2],interleavedBlocks:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,4,4,4,4,6,6,8,8,1,1,1,1,1,1],logTab:[-255,255,1,240,2,225,241,53,3,38,226,133,242,43,54,210,4,195,39,114,227,106,134,28,243,140,44,23,55,118,211,234,5,219,196,96,40,222,115,103,228,78,107,125,135,8,29,162,244,186,141,180,45,99,24,49,56,13,119,153,212,199,235,91,6,76,220,217,197,11,97,184,41,36,223,253,116,138,104,193,229,86,79,171,108,165,126,145,136,34,9,74,30,32,163,84,245,173,187,204,142,81,181,190,46,88,100,159,25,231,50,207,57,147,14,67,120,128,154,248,213,167,200,63,236,110,92,176,7,161,77,124,221,102,218,95,198,90,12,152,98,48,185,179,42,209,37,132,224,52,254,239,117,233,139,22,105,27,194,113,230,206,87,158,80,189,172,203,109,175,166,62,127,247,146,66,137,192,35,252,10,183,75,216,31,83,33,73,164,144,85,170,246,65,174,61,188,202,205,157,143,169,82,72,182,215,191,251,47,178,89,151,101,94,160,123,26,112,232,21,51,238,208,131,58,69,148,18,15,16,68,17,121,149,129,19,155,59,249,70,214,250,168,71,201,156,64,60,237,130,111,20,93,122,177,150],aLogTab:[1,2,4,8,16,32,64,128,45,90,180,69,138,57,114,228,229,231,227,235,251,219,155,27,54,108,216,157,23,46,92,184,93,186,89,178,73,146,9,18,36,72,144,13,26,52,104,208,141,55,110,220,149,7,14,28,56,112,224,237,247,195,171,123,246,193,175,115,230,225,239,243,203,187,91,182,65,130,41,82,164,101,202,185,95,190,81,162,105,210,137,63,126,252,213,135,35,70,140,53,106,212,133,39,78,156,21,42,84,168,125,250,217,159,19,38,76,152,29,58,116,232,253,215,131,43,86,172,117,234,249,223,147,11,22,44,88,176,77,154,25,50,100,200,189,87,174,113,226,233,255,211,139,59,118,236,245,199,163,107,214,129,47,94,188,85,170,121,242,201,191,83,166,97,194,169,127,254,209,143,51,102,204,181,71,142,49,98,196,165,103,206,177,79,158,17,34,68,136,61,122,244,197,167,99,198,161,111,222,145,15,30,60,120,240,205,183,67,134,33,66,132,37,74,148,5,10,20,40,80,160,109,218,153,31,62,124,248,221,151,3,6,12,24,48,96,192,173,119,238,241,207,179,75,150,1],champGaloisMult:function(d,c){if(!d||!c){return 0}return this.aLogTab[(this.logTab[d]+this.logTab[c])%255]},champGaloisDoub:function(d,c){if(!d){return 0}if(!c){return d}return this.aLogTab[(this.logTab[d]+c)%255]},champGaloisSum:function(d,c){return d^c},selectIndex:function(b,a){if((b<1||b>1558)&&!a){return -1}if((b<1||b>49)&&a){return -1}var c=0;if(a){c=24}while(this.dataCWCount[c]<b){c++}return c},encodeDataCodeWordsASCII:function(d){var b=new Array();var f=0,a,e;for(a=0;a<d.length;a++){e=d.charCodeAt(a);if(e>127){b[f]=235;e=e-127;f++}else{if((e>=48&&e<=57)&&(a+1<d.length)&&(d.charCodeAt(a+1)>=48&&d.charCodeAt(a+1)<=57)){e=((e-48)*10)+((d.charCodeAt(a+1))-48);e+=130;a++}else{e++}}b[f]=e;f++}return b},addPadCW:function(b,e,d){if(e>=d){return}b[e]=129;var c,a;for(a=e+1;a<d;a++){c=((149*(a+1))%253)+1;b[a]=(129+c)%254}},calculSolFactorTable:function(a){var d=new Array();var c,b;for(c=0;c<=a;c++){d[c]=1}for(c=1;c<=a;c++){for(b=c-1;b>=0;b--){d[b]=this.champGaloisDoub(d[b],c);if(b>0){d[b]=this.champGaloisSum(d[b],d[b-1])}}}return d},addReedSolomonCW:function(c,b,l,h,a){var n=0;var m=c/a;var g=new Array();var f,e,d;for(d=0;d<a;d++){for(f=0;f<m;f++){g[f]=0}for(f=d;f<l;f=f+a){n=this.champGaloisSum(h[f],g[m-1]);for(e=m-1;e>=0;e--){if(!n){g[e]=0}else{g[e]=this.champGaloisMult(n,b[e])}if(e>0){g[e]=this.champGaloisSum(g[e-1],g[e])}}}e=l+d;for(f=m-1;f>=0;f--){h[e]=g[f];e=e+a}}return h},getBits:function(a){var c=new Array();for(var b=0;b<8;b++){c[b]=a&(128>>b)?1:0}return c},next:function(f,g,d,h,c,e){var b=0;var j=4;var a=0;do{if((j==g)&&(a==0)){this.patternShapeSpecial1(c,e,h[b],g,d);b++}else{if((f<3)&&(j==g-2)&&(a==0)&&(d%4!=0)){this.patternShapeSpecial2(c,e,h[b],g,d);b++}else{if((j==g-2)&&(a==0)&&(d%8==4)){this.patternShapeSpecial3(c,e,h[b],g,d);b++}else{if((j==g+4)&&(a==2)&&(d%8==0)){this.patternShapeSpecial4(c,e,h[b],g,d);b++}}}}do{if((j<g)&&(a>=0)&&(e[j][a]!=1)){this.patternShapeStandard(c,e,h[b],j,a,g,d);b++}j-=2;a+=2}while((j>=0)&&(a<d));j+=1;a+=3;do{if((j>=0)&&(a<d)&&(e[j][a]!=1)){this.patternShapeStandard(c,e,h[b],j,a,g,d);b++}j+=2;a-=2}while((j<g)&&(a>=0));j+=3;a+=1}while((j<g)||(a<d))},patternShapeStandard:function(e,b,f,g,a,c,d){this.placeBitInDatamatrix(e,b,f[0],g-2,a-2,c,d);this.placeBitInDatamatrix(e,b,f[1],g-2,a-1,c,d);this.placeBitInDatamatrix(e,b,f[2],g-1,a-2,c,d);this.placeBitInDatamatrix(e,b,f[3],g-1,a-1,c,d);this.placeBitInDatamatrix(e,b,f[4],g-1,a,c,d);this.placeBitInDatamatrix(e,b,f[5],g,a-2,c,d);this.placeBitInDatamatrix(e,b,f[6],g,a-1,c,d);this.placeBitInDatamatrix(e,b,f[7],g,a,c,d)},patternShapeSpecial1:function(d,a,e,b,c){this.placeBitInDatamatrix(d,a,e[0],b-1,0,b,c);this.placeBitInDatamatrix(d,a,e[1],b-1,1,b,c);this.placeBitInDatamatrix(d,a,e[2],b-1,2,b,c);this.placeBitInDatamatrix(d,a,e[3],0,c-2,b,c);this.placeBitInDatamatrix(d,a,e[4],0,c-1,b,c);this.placeBitInDatamatrix(d,a,e[5],1,c-1,b,c);this.placeBitInDatamatrix(d,a,e[6],2,c-1,b,c);this.placeBitInDatamatrix(d,a,e[7],3,c-1,b,c)},patternShapeSpecial2:function(d,a,e,b,c){this.placeBitInDatamatrix(d,a,e[0],b-3,0,b,c);this.placeBitInDatamatrix(d,a,e[1],b-2,0,b,c);this.placeBitInDatamatrix(d,a,e[2],b-1,0,b,c);this.placeBitInDatamatrix(d,a,e[3],0,c-4,b,c);this.placeBitInDatamatrix(d,a,e[4],0,c-3,b,c);this.placeBitInDatamatrix(d,a,e[5],0,c-2,b,c);this.placeBitInDatamatrix(d,a,e[6],0,c-1,b,c);this.placeBitInDatamatrix(d,a,e[7],1,c-1,b,c)},patternShapeSpecial3:function(d,a,e,b,c){this.placeBitInDatamatrix(d,a,e[0],b-3,0,b,c);this.placeBitInDatamatrix(d,a,e[1],b-2,0,b,c);this.placeBitInDatamatrix(d,a,e[2],b-1,0,b,c);this.placeBitInDatamatrix(d,a,e[3],0,c-2,b,c);this.placeBitInDatamatrix(d,a,e[4],0,c-1,b,c);this.placeBitInDatamatrix(d,a,e[5],1,c-1,b,c);this.placeBitInDatamatrix(d,a,e[6],2,c-1,b,c);this.placeBitInDatamatrix(d,a,e[7],3,c-1,b,c)},patternShapeSpecial4:function(d,a,e,b,c){this.placeBitInDatamatrix(d,a,e[0],b-1,0,b,c);this.placeBitInDatamatrix(d,a,e[1],b-1,c-1,b,c);this.placeBitInDatamatrix(d,a,e[2],0,c-3,b,c);this.placeBitInDatamatrix(d,a,e[3],0,c-2,b,c);this.placeBitInDatamatrix(d,a,e[4],0,c-1,b,c);this.placeBitInDatamatrix(d,a,e[5],1,c-3,b,c);this.placeBitInDatamatrix(d,a,e[6],1,c-2,b,c);this.placeBitInDatamatrix(d,a,e[7],1,c-1,b,c)},placeBitInDatamatrix:function(e,b,g,f,a,c,d){if(f<0){f+=c;a+=4-((c+4)%8)}if(a<0){a+=d;f+=4-((d+4)%8)}if(b[f][a]!=1){e[f][a]=g;b[f][a]=1}},addFinderPattern:function(g,k,f,h,a){var l=(h+2)*k;var b=(a+2)*f;var c=new Array();c[0]=new Array();for(var d=0;d<b+2;d++){c[0][d]=0}for(var e=0;e<l;e++){c[e+1]=new Array();c[e+1][0]=0;c[e+1][b+1]=0;for(var d=0;d<b;d++){if(e%(h+2)==0){if(d%2==0){c[e+1][d+1]=1}else{c[e+1][d+1]=0}}else{if(e%(h+2)==h+1){c[e+1][d+1]=1}else{if(d%(a+2)==a+1){if(e%2==0){c[e+1][d+1]=0}else{c[e+1][d+1]=1}}else{if(d%(a+2)==0){c[e+1][d+1]=1}else{c[e+1][d+1]=0;c[e+1][d+1]=g[e-1-(2*(parseInt(e/(h+2))))][d-1-(2*(parseInt(d/(a+2))))]}}}}}}c[l+1]=new Array();for(var d=0;d<b+2;d++){c[l+1][d]=0}return c},getDigit:function(k,p){var o=this.encodeDataCodeWordsASCII(k);var h=o.length;var e=this.selectIndex(h,p);var l=this.dataCWCount[e];var w=this.solomonCWCount[e];var a=l+w;var x=this.lengthRows[e];var y=this.lengthCols[e];var d=this.regionRows[e];var c=this.regionCols[e];var j=this.dataRegionRows[e];var v=this.dataRegionCols[e];var s=x-2*d;var f=y-2*c;var t=this.interleavedBlocks[e];var r=(w/t);var b=(l/t);this.addPadCW(o,h,l);var q=this.calculSolFactorTable(r);this.addReedSolomonCW(w,q,l,o,t);var n=new Array();for(var m=0;m<a;m++){n[m]=this.getBits(o[m])}var z=new Array();var u=new Array();for(var m=0;m<f;m++){z[m]=new Array();u[m]=new Array()}if(((s*f)%8)==4){z[s-2][f-2]=1;z[s-1][f-1]=1;z[s-1][f-2]=0;z[s-2][f-1]=0;u[s-2][f-2]=1;u[s-1][f-1]=1;u[s-1][f-2]=1;u[s-2][f-1]=1}this.next(0,s,f,n,z,u);z=this.addFinderPattern(z,d,c,j,v);return z}},lec:{cInt:function(c,d){var b="";for(var a=0;a<d;a++){b+=String.fromCharCode(c&255);c=c>>8}return b},cRgb:function(d,c,a){return String.fromCharCode(a)+String.fromCharCode(c)+String.fromCharCode(d)},cHexColor:function(f){var c=parseInt("0x"+f.substr(1));var a=c&255;c=c>>8;var e=c&255;var d=c>>8;return(this.cRgb(d,e,a))}},hexToRGB:function(f){var c=parseInt("0x"+f.substr(1));var a=c&255;c=c>>8;var e=c&255;var d=c>>8;return({r:d,g:e,b:a})},isHexColor:function(b){var a=new RegExp("#[0-91-F]","gi");return b.match(a)},base64Encode:function(m){var a="",f,d,c,l,j,h,g;var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var e=0;while(e<m.length){f=m.charCodeAt(e++);d=m.charCodeAt(e++);c=m.charCodeAt(e++);l=f>>2;j=((f&3)<<4)|(d>>4);h=((d&15)<<2)|(c>>6);g=c&63;if(isNaN(d)){h=g=64}else{if(isNaN(c)){g=64}}a+=b.charAt(l)+b.charAt(j)+b.charAt(h)+b.charAt(g)}return a},bitStringTo2DArray:function(c){var b=[];b[0]=[];for(var a=0;a<c.length;a++){b[0][a]=c.charAt(a)}return(b)},resize:function(b,a){b.css("padding","0px").css("overflow","auto").css("width",a+"px").html("");return b},digitToBmpRenderer:function(r,t,m,e,l,v){var c=m.length;var d=m[0].length;var s=0;var p=this.isHexColor(t.bgColor)?this.lec.cHexColor(t.bgColor):this.lec.cRgb(255,255,255);var o=this.isHexColor(t.color)?this.lec.cHexColor(t.color):this.lec.cRgb(0,0,0);var b="";var a="";for(s=0;s<l;s++){b+=p;a+=o}var n="";var j=(4-((l*d*3)%4))%4;var A=(l*d+j)*v*c;var u="";for(s=0;s<j;s++){u+="\0"}var w="BM"+this.lec.cInt(54+A,4)+"\0\0\0\0"+this.lec.cInt(54,4)+this.lec.cInt(40,4)+this.lec.cInt(l*d,4)+this.lec.cInt(v*c,4)+this.lec.cInt(1,2)+this.lec.cInt(24,2)+"\0\0\0\0"+this.lec.cInt(A,4)+this.lec.cInt(2835,4)+this.lec.cInt(2835,4)+this.lec.cInt(0,4)+this.lec.cInt(0,4);for(var f=c-1;f>=0;f--){var h="";for(var g=0;g<d;g++){h+=m[f][g]=="0"?b:a}h+=u;for(var q=0;q<v;q++){w+=h}}var z=document.createElement("object");z.setAttribute("type","image/bmp");z.setAttribute("data","data:image/bmp;base64,"+this.base64Encode(w));this.resize(r,l*d+j).append(z)},digitToBmp:function(e,d,f,b){var a=$.barcode.intval(d.barWidth);var c=$.barcode.intval(d.barHeight);this.digitToBmpRenderer(e,d,this.bitStringTo2DArray(f),b,a,c)},digitToBmp2D:function(d,c,e,a){var b=$.barcode.intval(c.moduleSize);this.digitToBmpRenderer(d,c,e,a,b,b)},digitToCssRenderer:function(o,a,k,c,n,e){var p=k.length;var b=k[0].length;var g="";var m='<div style="float: left; font-size: 0px; background-color: '+a.bgColor+"; height: "+e+'px; width: &Wpx"></div>';var j='<div style="float: left; font-size: 0px; width:0; border-left: &Wpx solid '+a.color+"; height: "+e+'px;"></div>';var d,f;for(var h=0;h<p;h++){d=0;f=k[h][0];for(var l=0;l<b;l++){if(f==k[h][l]){d++}else{g+=(f=="0"?m:j).replace("&W",d*n);f=k[h][l];d=1}}if(d>0){g+=(f=="0"?m:j).replace("&W",d*n)}}if(a.showHRI){g+='<div style="clear:both; width: 100%; background-color: '+a.bgColor+"; color: "+a.color+"; text-align: center; font-size: "+a.fontSize+"px; margin-top: "+a.marginHRI+'px;">'+c+"</div>"}this.resize(o,n*b).html(g)},digitToCss:function(e,d,f,b){var a=$.barcode.intval(d.barWidth);var c=$.barcode.intval(d.barHeight);this.digitToCssRenderer(e,d,this.bitStringTo2DArray(f),b,a,c)},digitToCss2D:function(d,c,e,a){var b=$.barcode.intval(c.moduleSize);this.digitToCssRenderer(d,c,e,a,b,b)},digitToSvgRenderer:function(o,q,k,d,h,r){var b=k.length;var c=k[0].length;var n=h*c;var j=r*b;if(q.showHRI){var e=$.barcode.intval(q.fontSize);j+=$.barcode.intval(q.marginHRI)+e}var l='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="'+n+'" height="'+j+'">';l+='<rect width="'+n+'" height="'+j+'" x="0" y="0" fill="'+q.bgColor+'" />';var a='<rect width="&W" height="'+r+'" x="&X" y="&Y" fill="'+q.color+'" />';var p,m;for(var f=0;f<b;f++){p=0;m=k[f][0];for(var g=0;g<c;g++){if(m==k[f][g]){p++}else{if(m=="1"){l+=a.replace("&W",p*h).replace("&X",(g-p)*h).replace("&Y",f*r)}m=k[f][g];p=1}}if((p>0)&&(m=="1")){l+=a.replace("&W",p*h).replace("&X",(c-p)*h).replace("&Y",f*r)}}if(q.showHRI){l+='<g transform="translate('+Math.floor(n/2)+' 0)">';l+='<text y="'+(j-Math.floor(e/2))+'" text-anchor="middle" style="font-family: Arial; font-size: '+e+'px;" fill="'+q.color+'">'+d+"</text>";l+="</g>"}l+="</svg>";var s=document.createElement("object");s.setAttribute("type","image/svg+xml");s.setAttribute("data","data:image/svg+xml,"+l);this.resize(o,n).append(s)},digitToSvg:function(e,d,f,b){var a=$.barcode.intval(d.barWidth);var c=$.barcode.intval(d.barHeight);this.digitToSvgRenderer(e,d,this.bitStringTo2DArray(f),b,a,c)},digitToSvg2D:function(d,c,e,a){var b=$.barcode.intval(c.moduleSize);this.digitToSvgRenderer(d,c,e,a,b,b)},digitToCanvasRenderer:function(q,c,m,e,k,d,o,h){var a=q.get(0);if(!a||!a.getContext){return}var r=m.length;var b=m[0].length;var p=a.getContext("2d");p.lineWidth=1;p.lineCap="butt";p.fillStyle=c.bgColor;p.fillRect(k,d,b*o,r*h);p.fillStyle=c.color;for(var l=0;l<r;l++){var g=0;var j=m[l][0];for(var n=0;n<b;n++){if(j==m[l][n]){g++}else{if(j=="1"){p.fillRect(k+(n-g)*o,d+l*h,o*g,h)}j=m[l][n];g=1}}if((g>0)&&(j=="1")){p.fillRect(k+(b-g)*o,d+l*h,o*g,h)}}if(c.showHRI){var f=p.measureText(e);p.fillText(e,k+Math.floor((b*o-f.width)/2),d+r*h+c.fontSize+c.marginHRI)}},digitToCanvas:function(f,e,j,c){var b=$.barcode.intval(e.barWidth);var d=$.barcode.intval(e.barHeight);var a=$.barcode.intval(e.posX);var g=$.barcode.intval(e.posY);this.digitToCanvasRenderer(f,e,this.bitStringTo2DArray(j),c,a,g,b,d)},digitToCanvas2D:function(e,d,g,b){var c=$.barcode.intval(d.moduleSize);var a=$.barcode.intval(d.posX);var f=$.barcode.intval(d.posY);this.digitToCanvasRenderer(e,d,g,b,a,f,c,c)}};$.fn.extend({barcode:function(f,k,d){var l="",e="",b="",h=true,m=false,g=false;if(typeof(f)=="string"){b=f}else{if(typeof(f)=="object"){b=typeof(f.code)=="string"?f.code:"";h=typeof(f.crc)!="undefined"?f.crc:true;m=typeof(f.rect)!="undefined"?f.rect:false}}if(b==""){return(false)}if(typeof(d)=="undefined"){d=[]}for(var a in $.barcode.settings){if(d[a]==undefined){d[a]=$.barcode.settings[a]}}switch(k){case"std25":case"int25":l=$.barcode.i25.getDigit(b,h,k);e=$.barcode.i25.compute(b,h,k);break;case"ean8":case"ean13":l=$.barcode.ean.getDigit(b,k);e=$.barcode.ean.compute(b,k);break;case"code11":l=$.barcode.code11.getDigit(b);e=b;break;case"code39":l=$.barcode.code39.getDigit(b);e=b;break;case"code93":l=$.barcode.code93.getDigit(b,h);e=b;break;case"code128":l=$.barcode.code128.getDigit(b);e=b;break;case"codabar":l=$.barcode.codabar.getDigit(b);e=b;break;case"msi":l=$.barcode.msi.getDigit(b,h);e=$.barcode.msi.compute(b,h);break;case"datamatrix":l=$.barcode.datamatrix.getDigit(b,m);e=b;g=true;break}if(l.length==0){return($(this))}if(!g&&d.addQuietZone){l="0000000000"+l+"0000000000"}var j=$(this);var c="digitTo"+d.output.charAt(0).toUpperCase()+d.output.substr(1)+(g?"2D":"");if(typeof($.barcode[c])=="function"){$.barcode[c](j,d,l,e)}return(j)}});
