function NumberFormat(num,inputDecimal){this.VERSION='Number Format v1.5.4';this.COMMA=',';this.PERIOD='.';this.DASH='-';this.LEFT_PAREN='(';this.RIGHT_PAREN=')';this.LEFT_OUTSIDE=0;this.LEFT_INSIDE=1;this.RIGHT_INSIDE=2;this.RIGHT_OUTSIDE=3;this.LEFT_DASH=0;this.RIGHT_DASH=1;this.PARENTHESIS=2;this.NO_ROUNDING=-1;this.num;this.numOriginal;this.hasSeparators=false;this.separatorValue;this.inputDecimalValue;this.decimalValue;this.negativeFormat;this.negativeRed;this.hasCurrency;this.currencyPosition;this.currencyValue;this.places;this.roundToPlaces;this.truncate;this.setNumber=setNumberNF;this.toUnformatted=toUnformattedNF;this.setInputDecimal=setInputDecimalNF;this.setSeparators=setSeparatorsNF;this.setCommas=setCommasNF;this.setNegativeFormat=setNegativeFormatNF;this.setNegativeRed=setNegativeRedNF;this.setCurrency=setCurrencyNF;this.setCurrencyPrefix=setCurrencyPrefixNF;this.setCurrencyValue=setCurrencyValueNF;this.setCurrencyPosition=setCurrencyPositionNF;this.setPlaces=setPlacesNF;this.toFormatted=toFormattedNF;this.toPercentage=toPercentageNF;this.getOriginal=getOriginalNF;this.moveDecimalRight=moveDecimalRightNF;this.moveDecimalLeft=moveDecimalLeftNF;this.getRounded=getRoundedNF;this.preserveZeros=preserveZerosNF;this.justNumber=justNumberNF;this.expandExponential=expandExponentialNF;this.getZeros=getZerosNF;this.moveDecimalAsString=moveDecimalAsStringNF;this.moveDecimal=moveDecimalNF;this.addSeparators=addSeparatorsNF;if(inputDecimal==null){this.setNumber(num,this.PERIOD);}else{this.setNumber(num,inputDecimal);}this.setCommas(true);this.setNegativeFormat(this.LEFT_DASH);this.setNegativeRed(false);this.setCurrency(false);this.setCurrencyPrefix('$');this.setPlaces(2);}function setInputDecimalNF(val){this.inputDecimalValue=val;}function setNumberNF(num,inputDecimal){if(inputDecimal!=null){this.setInputDecimal(inputDecimal);}this.numOriginal=num;this.num=this.justNumber(num);}function toUnformattedNF(){return(this.num);}function getOriginalNF(){return(this.numOriginal);}function setNegativeFormatNF(format){this.negativeFormat=format;}function setNegativeRedNF(isRed){this.negativeRed=isRed;}function setSeparatorsNF(isC,separator,decimal){this.hasSeparators=isC;if(separator==null)separator=this.COMMA;if(decimal==null)decimal=this.PERIOD;if(separator==decimal){this.decimalValue=(decimal==this.PERIOD)?this.COMMA:this.PERIOD;}else{this.decimalValue=decimal;}this.separatorValue=separator;}function setCommasNF(isC){this.setSeparators(isC,this.COMMA,this.PERIOD);}function setCurrencyNF(isC){this.hasCurrency=isC;}function setCurrencyValueNF(val){this.currencyValue=val;}function setCurrencyPrefixNF(cp){this.setCurrencyValue(cp);this.setCurrencyPosition(this.LEFT_OUTSIDE);}function setCurrencyPositionNF(cp){this.currencyPosition=cp}function setPlacesNF(p,tr){this.roundToPlaces=!(p==this.NO_ROUNDING);this.truncate=(tr!=null&&tr);this.places=(p<0)?0:p;}function addSeparatorsNF(nStr,inD,outD,sep){nStr+='';var dpos=nStr.indexOf(inD);var nStrEnd='';if(dpos!=-1){nStrEnd=outD+nStr.substring(dpos+1,nStr.length);nStr=nStr.substring(0,dpos);}var rgx=/(\d+)(\d{3})/;while(rgx.test(nStr)){nStr=nStr.replace(rgx,'$1'+sep+'$2');}return nStr+nStrEnd;}function toFormattedNF(){var pos;var nNum=this.num;var nStr;var splitString=new Array(2);if(this.roundToPlaces){nNum=this.getRounded(nNum);nStr=this.preserveZeros(Math.abs(nNum));}else{nStr=this.expandExponential(Math.abs(nNum));}if(this.hasSeparators){nStr=this.addSeparators(nStr,this.PERIOD,this.decimalValue,this.separatorValue);}else{nStr=nStr.replace(new RegExp('\\'+this.PERIOD),this.decimalValue);}var c0='';var n0='';var c1='';var n1='';var n2='';var c2='';var n3='';var c3='';var negSignL=(this.negativeFormat==this.PARENTHESIS)?this.LEFT_PAREN:this.DASH;var negSignR=(this.negativeFormat==this.PARENTHESIS)?this.RIGHT_PAREN:this.DASH;if(this.currencyPosition==this.LEFT_OUTSIDE){if(nNum<0){if(this.negativeFormat==this.LEFT_DASH||this.negativeFormat==this.PARENTHESIS)n1=negSignL;if(this.negativeFormat==this.RIGHT_DASH||this.negativeFormat==this.PARENTHESIS)n2=negSignR;}if(this.hasCurrency)c0=this.currencyValue;}else if(this.currencyPosition==this.LEFT_INSIDE){if(nNum<0){if(this.negativeFormat==this.LEFT_DASH||this.negativeFormat==this.PARENTHESIS)n0=negSignL;if(this.negativeFormat==this.RIGHT_DASH||this.negativeFormat==this.PARENTHESIS)n3=negSignR;}if(this.hasCurrency)c1=this.currencyValue;}else if(this.currencyPosition==this.RIGHT_INSIDE){if(nNum<0){if(this.negativeFormat==this.LEFT_DASH||this.negativeFormat==this.PARENTHESIS)n0=negSignL;if(this.negativeFormat==this.RIGHT_DASH||this.negativeFormat==this.PARENTHESIS)n3=negSignR;}if(this.hasCurrency)c2=this.currencyValue;}else if(this.currencyPosition==this.RIGHT_OUTSIDE){if(nNum<0){if(this.negativeFormat==this.LEFT_DASH||this.negativeFormat==this.PARENTHESIS)n1=negSignL;if(this.negativeFormat==this.RIGHT_DASH||this.negativeFormat==this.PARENTHESIS)n2=negSignR;}if(this.hasCurrency)c3=this.currencyValue;}nStr=c0+n0+c1+n1+nStr+n2+c2+n3+c3;if(this.negativeRed&&nNum<0){nStr='<font color="red">'+nStr+'</font>';}return(nStr);}function toPercentageNF(){nNum=this.num*100;nNum=this.getRounded(nNum);return nNum+'%';}function getZerosNF(places){var extraZ='';var i;for(i=0;i<places;i++){extraZ+='0';}return extraZ;}function expandExponentialNF(origVal){if(isNaN(origVal))return origVal;var newVal=parseFloat(origVal)+'';var eLoc=newVal.toLowerCase().indexOf('e');if(eLoc!=-1){var plusLoc=newVal.toLowerCase().indexOf('+');var negLoc=newVal.toLowerCase().indexOf('-',eLoc);var justNumber=newVal.substring(0,eLoc);if(negLoc!=-1){var places=newVal.substring(negLoc+1,newVal.length);justNumber=this.moveDecimalAsString(justNumber,true,parseInt(places));}else{if(plusLoc==-1)plusLoc=eLoc;var places=newVal.substring(plusLoc+1,newVal.length);justNumber=this.moveDecimalAsString(justNumber,false,parseInt(places));}newVal=justNumber;}return newVal;}function moveDecimalRightNF(val,places){var newVal='';if(places==null){newVal=this.moveDecimal(val,false);}else{newVal=this.moveDecimal(val,false,places);}return newVal;}function moveDecimalLeftNF(val,places){var newVal='';if(places==null){newVal=this.moveDecimal(val,true);}else{newVal=this.moveDecimal(val,true,places);}return newVal;}function moveDecimalAsStringNF(val,left,places){var spaces=(arguments.length<3)?this.places:places;if(spaces<=0)return val;var newVal=val+'';var extraZ=this.getZeros(spaces);var re1=new RegExp('([0-9.]+)');if(left){newVal=newVal.replace(re1,extraZ+'$1');var re2=new RegExp('(-?)([0-9]*)([0-9]{'+spaces+'})(\\.?)');newVal=newVal.replace(re2,'$1$2.$3');}else{var reArray=re1.exec(newVal);if(reArray!=null){newVal=newVal.substring(0,reArray.index)+reArray[1]+extraZ+newVal.substring(reArray.index+reArray[0].length);}var re2=new RegExp('(-?)([0-9]*)(\\.?)([0-9]{'+spaces+'})');newVal=newVal.replace(re2,'$1$2$4.');}newVal=newVal.replace(/\.$/,'');return newVal;}function moveDecimalNF(val,left,places){var newVal='';if(places==null){newVal=this.moveDecimalAsString(val,left);}else{newVal=this.moveDecimalAsString(val,left,places);}return parseFloat(newVal);}function getRoundedNF(val){val=this.moveDecimalRight(val);if(this.truncate){val=val>=0?Math.floor(val):Math.ceil(val);}else{val=Math.round(val);}val=this.moveDecimalLeft(val);return val;}function preserveZerosNF(val){var i;val=this.expandExponential(val);if(this.places<=0)return val;var decimalPos=val.indexOf('.');if(decimalPos==-1){val+='.';for(i=0;i<this.places;i++){val+='0';}}else{var actualDecimals=(val.length-1)-decimalPos;var difference=this.places-actualDecimals;for(i=0;i<difference;i++){val+='0';}}return val;}function justNumberNF(val){newVal=val+'';var isPercentage=false;if(newVal.indexOf('%')!=-1){newVal=newVal.replace(/\%/g,'');isPercentage=true;}var re=new RegExp('[^\\'+this.inputDecimalValue+'\\d\\-\\+\\(\\)eE]','g');newVal=newVal.replace(re,'');var tempRe=new RegExp('['+this.inputDecimalValue+']','g');var treArray=tempRe.exec(newVal);if(treArray!=null){var tempRight=newVal.substring(treArray.index+treArray[0].length);newVal=newVal.substring(0,treArray.index)+this.PERIOD+tempRight.replace(tempRe,'');}if(newVal.charAt(newVal.length-1)==this.DASH){newVal=newVal.substring(0,newVal.length-1);newVal='-'+newVal;}else if(newVal.charAt(0)==this.LEFT_PAREN&&newVal.charAt(newVal.length-1)==this.RIGHT_PAREN){newVal=newVal.substring(1,newVal.length-1);newVal='-'+newVal;}newVal=parseFloat(newVal);if(!isFinite(newVal)){newVal=0;}if(isPercentage){newVal=this.moveDecimalLeft(newVal,2);}return newVal;};/*
 * jQuery 1.1.2 - New Wave Javascript
 *
 * Copyright (c) 2007 John Resig (jquery.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * $Date: 2007-02-28 12:03:00 -0500 (Wed, 28 Feb 2007) $
 * $Rev: 1465 $
 */

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('7(1C 1w.6=="T"){1w.T=1w.T;B 6=u(a,c){7(1w==q)v 1p 6(a,c);a=a||17;7(6.1t(a))v 1p 6(17)[6.E.27?"27":"2O"](a);7(1C a=="23"){B m=/^[^<]*(<(.|\\s)+>)[^>]*$/.2Q(a);7(m)a=6.3k([m[1]]);J v 1p 6(c).2o(a)}v q.6r(a.1l==2y&&a||(a.3Y||a.I&&a!=1w&&!a.24&&a[0]!=T&&a[0].24)&&6.3M(a)||[a])};7(1C $!="T")6.2S$=$;B $=6;6.E=6.8p={3Y:"1.1.2",8q:u(){v q.I},I:0,2b:u(1T){v 1T==T?6.3M(q):q[1T]},2r:u(a){B L=6(a);L.6p=q;v L},6r:u(a){q.I=0;[].1g.14(q,a);v q},K:u(E,1E){v 6.K(q,E,1E)},2h:u(1c){B 4c=-1;q.K(u(i){7(q==1c)4c=i});v 4c},1I:u(1Y,O,C){B 1c=1Y;7(1Y.1l==3t)7(O==T)v q.I&&6[C||"1I"](q[0],1Y)||T;J{1c={};1c[1Y]=O}v q.K(u(2h){P(B H 1x 1c)6.1I(C?q.1q:q,H,6.H(q,1c[H],C,2h,H))})},1m:u(1Y,O){v q.1I(1Y,O,"30")},2L:u(e){7(1C e=="23")v q.3u().3r(17.8t(e));B t="";6.K(e||q,u(){6.K(q.2I,u(){7(q.24!=8)t+=q.24!=1?q.60:6.E.2L([q])})});v t},2K:u(){B a=6.3k(1A);v q.K(u(){B b=a[0].3l(U);q.11.2X(b,q);22(b.1b)b=b.1b;b.4C(q)})},3r:u(){v q.3j(1A,U,1,u(a){q.4C(a)})},5i:u(){v q.3j(1A,U,-1,u(a){q.2X(a,q.1b)})},5j:u(){v q.3j(1A,12,1,u(a){q.11.2X(a,q)})},5t:u(){v q.3j(1A,12,-1,u(a){q.11.2X(a,q.2e)})},4g:u(){v q.6p||6([])},2o:u(t){v q.2r(6.31(q,u(a){v 6.2o(t,a)}),t)},4Y:u(4N){v q.2r(6.31(q,u(a){B a=a.3l(4N!=T?4N:U);a.$1H=16;v a}))},1D:u(t){v q.2r(6.1t(t)&&6.2q(q,u(2z,2h){v t.14(2z,[2h])})||6.3z(t,q))},2g:u(t){v q.2r(t.1l==3t&&6.3z(t,q,U)||6.2q(q,u(a){v(t.1l==2y||t.3Y)?6.3y(a,t)<0:a!=t}))},1M:u(t){v q.2r(6.2k(q.2b(),t.1l==3t?6(t).2b():t.I!=T&&(!t.1f||t.1f=="8v")?t:[t]))},4l:u(1s){v 1s?6.1D(1s,q).r.I>0:12},1a:u(1a){v 1a==T?(q.I?q[0].O:16):q.1I("O",1a)},4U:u(1a){v 1a==T?(q.I?q[0].2t:16):q.3u().3r(1a)},3j:u(1E,1P,3Z,E){B 4Y=q.I>1;B a=6.3k(1E);7(3Z<0)a.8w();v q.K(u(){B 1c=q;7(1P&&6.1f(q,"1P")&&6.1f(a[0],"3m"))1c=q.5J("20")[0]||q.4C(17.6n("20"));6.K(a,u(){E.14(1c,[4Y?q.3l(U):q])})})}};6.1z=6.E.1z=u(){B 1O=1A[0],a=1;7(1A.I==1){1O=q;a=0}B H;22(H=1A[a++])P(B i 1x H)1O[i]=H[i];v 1O};6.1z({8x:u(){7(6.2S$)$=6.2S$;v 6},1t:u(E){v!!E&&1C E!="23"&&!E.1f&&1C E[0]=="T"&&/u/i.1n(E+"")},4B:u(D){v D.66&&D.5I&&!D.5I.64},1f:u(D,Y){v D.1f&&D.1f.3K()==Y.3K()},K:u(1c,E,1E){7(1c.I==T)P(B i 1x 1c)E.14(1c[i],1E||[i,1c[i]]);J P(B i=0,6q=1c.I;i<6q;i++)7(E.14(1c[i],1E||[i,1c[i]])===12)3O;v 1c},H:u(D,O,C,2h,H){7(6.1t(O))O=O.3n(D,[2h]);B 6s=/z-?2h|7P-?8A|1d|58|8B-?28/i;v O&&O.1l==3Q&&C=="30"&&!6s.1n(H)?O+"4S":O},19:{1M:u(D,c){6.K(c.3o(/\\s+/),u(i,Q){7(!6.19.2V(D.19,Q))D.19+=(D.19?" ":"")+Q})},2f:u(D,c){D.19=c?6.2q(D.19.3o(/\\s+/),u(Q){v!6.19.2V(c,Q)}).6t(" "):""},2V:u(t,c){t=t.19||t;c=c.1R(/([\\.\\\\\\+\\*\\?\\[\\^\\]\\$\\(\\)\\{\\}\\=\\!\\<\\>\\|\\:])/g,"\\\\$1");v t&&1p 4v("(^|\\\\s)"+c+"(\\\\s|$)").1n(t)}},4d:u(e,o,f){P(B i 1x o){e.1q["1N"+i]=e.1q[i];e.1q[i]=o[i]}f.14(e,[]);P(B i 1x o)e.1q[i]=e.1q["1N"+i]},1m:u(e,p){7(p=="28"||p=="3V"){B 1N={},46,3P,d=["7d","8C","8D","8E"];6.K(d,u(){1N["8F"+q]=0;1N["8G"+q+"8H"]=0});6.4d(e,1N,u(){7(6.1m(e,"1h")!="1Z"){46=e.8I;3P=e.8J}J{e=6(e.3l(U)).2o(":4j").5l("2Z").4g().1m({4n:"1G",45:"8K",1h:"2D",7I:"0",8M:"0"}).5z(e.11)[0];B 3d=6.1m(e.11,"45");7(3d==""||3d=="4b")e.11.1q.45="6x";46=e.6y;3P=e.6z;7(3d==""||3d=="4b")e.11.1q.45="4b";e.11.33(e)}});v p=="28"?46:3P}v 6.30(e,p)},30:u(D,H,53){B L;7(H=="1d"&&6.W.1j)v 6.1I(D.1q,"1d");7(H=="4h"||H=="2v")H=6.W.1j?"3T":"2v";7(!53&&D.1q[H])L=D.1q[H];J 7(17.44&&17.44.4W){7(H=="2v"||H=="3T")H="4h";H=H.1R(/([A-Z])/g,"-$1").4m();B Q=17.44.4W(D,16);7(Q)L=Q.55(H);J 7(H=="1h")L="1Z";J 6.4d(D,{1h:"2D"},u(){B c=17.44.4W(q,"");L=c&&c.55(H)||""})}J 7(D.51){B 56=H.1R(/\\-(\\w)/g,u(m,c){v c.3K()});L=D.51[H]||D.51[56]}v L},3k:u(a){B r=[];6.K(a,u(i,1r){7(!1r)v;7(1r.1l==3Q)1r=1r.6C();7(1C 1r=="23"){B s=6.35(1r),1V=17.6n("1V"),2i=[];B 2K=!s.18("<1u")&&[1,"<42>","</42>"]||(!s.18("<6D")||!s.18("<20")||!s.18("<6E"))&&[1,"<1P>","</1P>"]||!s.18("<3m")&&[2,"<1P><20>","</20></1P>"]||(!s.18("<6F")||!s.18("<6G"))&&[3,"<1P><20><3m>","</3m></20></1P>"]||[0,"",""];1V.2t=2K[1]+s+2K[2];22(2K[0]--)1V=1V.1b;7(6.W.1j){7(!s.18("<1P")&&s.18("<20")<0)2i=1V.1b&&1V.1b.2I;J 7(2K[1]=="<1P>"&&s.18("<20")<0)2i=1V.2I;P(B n=2i.I-1;n>=0;--n)7(6.1f(2i[n],"20")&&!2i[n].2I.I)2i[n].11.33(2i[n])}1r=[];P(B i=0,l=1V.2I.I;i<l;i++)1r.1g(1V.2I[i])}7(1r.I===0&&!6.1f(1r,"3w"))v;7(1r[0]==T||6.1f(1r,"3w"))r.1g(1r);J r=6.2k(r,1r)});v r},1I:u(D,Y,O){B 2j=6.4B(D)?{}:{"P":"6J","6L":"19","4h":6.W.1j?"3T":"2v",2v:6.W.1j?"3T":"2v",2t:"2t",19:"19",O:"O",2W:"2W",2Z:"2Z",89:"6N",2Y:"2Y"};7(Y=="1d"&&6.W.1j&&O!=T){D.58=1;v D.1D=D.1D.1R(/4i\\([^\\)]*\\)/6O,"")+(O==1?"":"4i(1d="+O*6g+")")}J 7(Y=="1d"&&6.W.1j)v D.1D?4T(D.1D.6P(/4i\\(1d=(.*)\\)/)[1])/6g:1;7(Y=="1d"&&6.W.3h&&O==1)O=0.6R;7(2j[Y]){7(O!=T)D[2j[Y]]=O;v D[2j[Y]]}J 7(O==T&&6.W.1j&&6.1f(D,"3w")&&(Y=="81"||Y=="80"))v D.6T(Y).60;J 7(D.66){7(O!=T)D.6V(Y,O);7(6.W.1j&&/5E|3e/.1n(Y)&&!6.4B(D))v D.36(Y,2);v D.36(Y)}J{Y=Y.1R(/-([a-z])/6W,u(z,b){v b.3K()});7(O!=T)D[Y]=O;v D[Y]}},35:u(t){v t.1R(/^\\s+|\\s+$/g,"")},3M:u(a){B r=[];7(a.1l!=2y)P(B i=0,2R=a.I;i<2R;i++)r.1g(a[i]);J r=a.3N(0);v r},3y:u(b,a){P(B i=0,2R=a.I;i<2R;i++)7(a[i]==b)v i;v-1},2k:u(2u,3H){B r=[].3N.3n(2u,0);P(B i=0,5b=3H.I;i<5b;i++)7(6.3y(3H[i],r)==-1)2u.1g(3H[i]);v 2u},2q:u(1U,E,4k){7(1C E=="23")E=1p 4w("a","i","v "+E);B 1i=[];P(B i=0,2z=1U.I;i<2z;i++)7(!4k&&E(1U[i],i)||4k&&!E(1U[i],i))1i.1g(1U[i]);v 1i},31:u(1U,E){7(1C E=="23")E=1p 4w("a","v "+E);B 1i=[],r=[];P(B i=0,2z=1U.I;i<2z;i++){B 1a=E(1U[i],i);7(1a!==16&&1a!=T){7(1a.1l!=2y)1a=[1a];1i=1i.6Z(1a)}}B r=1i.I?[1i[0]]:[];5f:P(B i=1,5e=1i.I;i<5e;i++){P(B j=0;j<i;j++)7(1i[i]==r[j])5F 5f;r.1g(1i[i])}v r}});1p u(){B b=7L.71.4m();6.W={2N:/5D/.1n(b),3f:/3f/.1n(b),1j:/1j/.1n(b)&&!/3f/.1n(b),3h:/3h/.1n(b)&&!/(72|5D)/.1n(b)};6.7H=!6.W.1j||17.74=="75"};6.K({5u:"a.11",4z:"6.4z(a)",76:"6.2a(a,2,\'2e\')",7D:"6.2a(a,2,\'5s\')",78:"6.2B(a.11.1b,a)",79:"6.2B(a.1b)"},u(i,n){6.E[i]=u(a){B L=6.31(q,n);7(a&&1C a=="23")L=6.3z(a,L);v q.2r(L)}});6.K({5z:"3r",7b:"5i",2X:"5j",7e:"5t"},u(i,n){6.E[i]=u(){B a=1A;v q.K(u(){P(B j=0,2R=a.I;j<2R;j++)6(a[j])[n](q)})}});6.K({5l:u(1Y){6.1I(q,1Y,"");q.7g(1Y)},7h:u(c){6.19.1M(q,c)},7i:u(c){6.19.2f(q,c)},7k:u(c){6.19[6.19.2V(q,c)?"2f":"1M"](q,c)},2f:u(a){7(!a||6.1D(a,[q]).r.I)q.11.33(q)},3u:u(){22(q.1b)q.33(q.1b)}},u(i,n){6.E[i]=u(){v q.K(n,1A)}});6.K(["5q","5n","5p","5v"],u(i,n){6.E[n]=u(1T,E){v q.1D(":"+n+"("+1T+")",E)}});6.K(["28","3V"],u(i,n){6.E[n]=u(h){v h==T?(q.I?6.1m(q[0],n):16):q.1m(n,h.1l==3t?h:h+"4S")}});6.1z({1s:{"":"m[2]==\'*\'||6.1f(a,m[2])","#":"a.36(\'2J\')==m[2]",":":{5n:"i<m[3]-0",5p:"i>m[3]-0",2a:"m[3]-0==i",5q:"m[3]-0==i",2u:"i==0",2T:"i==r.I-1",5R:"i%2==0",5S:"i%2","2a-3s":"6.2a(a.11.1b,m[3],\'2e\',a)==a","2u-3s":"6.2a(a.11.1b,1,\'2e\')==a","2T-3s":"6.2a(a.11.7n,1,\'5s\')==a","7p-3s":"6.2B(a.11.1b).I==1",5u:"a.1b",3u:"!a.1b",5v:"6.E.2L.14([a]).18(m[3])>=0",3i:\'a.C!="1G"&&6.1m(a,"1h")!="1Z"&&6.1m(a,"4n")!="1G"\',1G:\'a.C=="1G"||6.1m(a,"1h")=="1Z"||6.1m(a,"4n")=="1G"\',7v:"!a.2W",2W:"a.2W",2Z:"a.2Z",2Y:"a.2Y||6.1I(a,\'2Y\')",2L:"a.C==\'2L\'",4j:"a.C==\'4j\'",5x:"a.C==\'5x\'",4G:"a.C==\'4G\'",5y:"a.C==\'5y\'",4R:"a.C==\'4R\'",5A:"a.C==\'5A\'",5B:"a.C==\'5B\'",3x:\'a.C=="3x"||6.1f(a,"3x")\',5C:"/5C|42|7A|3x/i.1n(a.1f)"},".":"6.19.2V(a,m[2])","@":{"=":"z==m[4]","!=":"z!=m[4]","^=":"z&&!z.18(m[4])","$=":"z&&z.2U(z.I - m[4].I,m[4].I)==m[4]","*=":"z&&z.18(m[4])>=0","":"z",4u:u(m){v["",m[1],m[3],m[2],m[5]]},5P:"z=a[m[3]];7(!z||/5E|3e/.1n(m[3]))z=6.1I(a,m[3]);"},"[":"6.2o(m[2],a).I"},5M:[/^\\[ *(@)([a-2m-3C-]*) *([!*$^=]*) *(\'?"?)(.*?)\\4 *\\]/i,/^(\\[)\\s*(.*?(\\[.*?\\])?[^[]*?)\\s*\\]/,/^(:)([a-2m-3C-]*)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/i,/^([:.#]*)([a-2m-3C*-]*)/i],1Q:[/^(\\/?\\.\\.)/,"a.11",/^(>|\\/)/,"6.2B(a.1b)",/^(\\+)/,"6.2a(a,2,\'2e\')",/^(~)/,u(a){B s=6.2B(a.11.1b);v s.3N(6.3y(a,s)+1)}],3z:u(1s,1U,2g){B 1N,Q=[];22(1s&&1s!=1N){1N=1s;B f=6.1D(1s,1U,2g);1s=f.t.1R(/^\\s*,\\s*/,"");Q=2g?1U=f.r:6.2k(Q,f.r)}v Q},2o:u(t,1B){7(1C t!="23")v[t];7(1B&&!1B.24)1B=16;1B=1B||17;7(!t.18("//")){1B=1B.4H;t=t.2U(2,t.I)}J 7(!t.18("/")){1B=1B.4H;t=t.2U(1,t.I);7(t.18("/")>=1)t=t.2U(t.18("/"),t.I)}B L=[1B],2c=[],2T=16;22(t&&2T!=t){B r=[];2T=t;t=6.35(t).1R(/^\\/\\//i,"");B 3B=12;B 1J=/^[\\/>]\\s*([a-2m-9*-]+)/i;B m=1J.2Q(t);7(m){6.K(L,u(){P(B c=q.1b;c;c=c.2e)7(c.24==1&&(6.1f(c,m[1])||m[1]=="*"))r.1g(c)});L=r;t=t.1R(1J,"");7(t.18(" ")==0)5F;3B=U}J{P(B i=0;i<6.1Q.I;i+=2){B 1J=6.1Q[i];B m=1J.2Q(t);7(m){r=L=6.31(L,6.1t(6.1Q[i+1])?6.1Q[i+1]:u(a){v 40(6.1Q[i+1])});t=6.35(t.1R(1J,""));3B=U;3O}}}7(t&&!3B){7(!t.18(",")){7(L[0]==1B)L.4L();6.2k(2c,L);r=L=[1B];t=" "+t.2U(1,t.I)}J{B 34=/^([a-2m-3C-]+)(#)([a-2m-9\\\\*2S-]*)/i;B m=34.2Q(t);7(m){m=[0,m[2],m[3],m[1]]}J{34=/^([#.]?)([a-2m-9\\\\*2S-]*)/i;m=34.2Q(t)}7(m[1]=="#"&&L[L.I-1].4X){B 2l=L[L.I-1].4X(m[2]);7(6.W.1j&&2l&&2l.2J!=m[2])2l=6(\'[@2J="\'+m[2]+\'"]\',L[L.I-1])[0];L=r=2l&&(!m[3]||6.1f(2l,m[3]))?[2l]:[]}J{7(m[1]==".")B 4r=1p 4v("(^|\\\\s)"+m[2]+"(\\\\s|$)");6.K(L,u(){B 3E=m[1]!=""||m[0]==""?"*":m[2];7(6.1f(q,"7J")&&3E=="*")3E="3g";6.2k(r,m[1]!=""&&L.I!=1?6.4x(q,[],m[1],m[2],4r):q.5J(3E))});7(m[1]=="."&&L.I==1)r=6.2q(r,u(e){v 4r.1n(e.19)});7(m[1]=="#"&&L.I==1){B 5K=r;r=[];6.K(5K,u(){7(q.36("2J")==m[2]){r=[q];v 12}})}L=r}t=t.1R(34,"")}}7(t){B 1a=6.1D(t,r);L=r=1a.r;t=6.35(1a.t)}}7(L&&L[0]==1B)L.4L();6.2k(2c,L);v 2c},1D:u(t,r,2g){22(t&&/^[a-z[({<*:.#]/i.1n(t)){B p=6.5M,m;6.K(p,u(i,1J){m=1J.2Q(t);7(m){t=t.7M(m[0].I);7(6.1s[m[1]].4u)m=6.1s[m[1]].4u(m);v 12}});7(m[1]==":"&&m[2]=="2g")r=6.1D(m[3],r,U).r;J 7(m[1]=="."){B 1J=1p 4v("(^|\\\\s)"+m[2]+"(\\\\s|$)");r=6.2q(r,u(e){v 1J.1n(e.19||"")},2g)}J{B f=6.1s[m[1]];7(1C f!="23")f=6.1s[m[1]][m[2]];40("f = u(a,i){"+(6.1s[m[1]].5P||"")+"v "+f+"}");r=6.2q(r,f,2g)}}v{r:r,t:t}},4x:u(o,r,1Q,Y,1J){P(B s=o.1b;s;s=s.2e)7(s.24==1){B 1M=U;7(1Q==".")1M=s.19&&1J.1n(s.19);J 7(1Q=="#")1M=s.36("2J")==Y;7(1M)r.1g(s);7(1Q=="#"&&r.I)3O;7(s.1b)6.4x(s,r,1Q,Y,1J)}v r},4z:u(D){B 4A=[];B Q=D.11;22(Q&&Q!=17){4A.1g(Q);Q=Q.11}v 4A},2a:u(Q,1i,3Z,D){1i=1i||1;B 1T=0;P(;Q;Q=Q[3Z]){7(Q.24==1)1T++;7(1T==1i||1i=="5R"&&1T%2==0&&1T>1&&Q==D||1i=="5S"&&1T%2==1&&Q==D)v Q}},2B:u(n,D){B r=[];P(;n;n=n.2e){7(n.24==1&&(!D||n!=D))r.1g(n)}v r}});6.G={1M:u(S,C,1o,F){7(6.W.1j&&S.3L!=T)S=1w;7(F)1o.F=F;7(!1o.2A)1o.2A=q.2A++;7(!S.$1H)S.$1H={};B 38=S.$1H[C];7(!38){38=S.$1H[C]={};7(S["39"+C])38[0]=S["39"+C]}38[1o.2A]=1o;S["39"+C]=q.5Y;7(!q.1k[C])q.1k[C]=[];q.1k[C].1g(S)},2A:1,1k:{},2f:u(S,C,1o){7(S.$1H){B i,j,k;7(C&&C.C){1o=C.1o;C=C.C}7(C&&S.$1H[C])7(1o)5U S.$1H[C][1o.2A];J P(i 1x S.$1H[C])5U S.$1H[C][i];J P(j 1x S.$1H)q.2f(S,j);P(k 1x S.$1H[C])7(k){k=U;3O}7(!k)S["39"+C]=16}},1S:u(C,F,S){F=6.3M(F||[]);7(!S)6.K(q.1k[C]||[],u(){6.G.1S(C,F,q)});J{B 1o=S["39"+C],1a,E=6.1t(S[C]);7(1o){F.61(q.2j({C:C,1O:S}));7((1a=1o.14(S,F))!==12)q.4F=U}7(E&&1a!==12)S[C]();q.4F=12}},5Y:u(G){7(1C 6=="T"||6.G.4F)v;G=6.G.2j(G||1w.G||{});B 3R;B c=q.$1H[G.C];B 1E=[].3N.3n(1A,1);1E.61(G);P(B j 1x c){1E[0].1o=c[j];1E[0].F=c[j].F;7(c[j].14(q,1E)===12){G.2n();G.2H();3R=12}}7(6.W.1j)G.1O=G.2n=G.2H=G.1o=G.F=16;v 3R},2j:u(G){7(!G.1O&&G.63)G.1O=G.63;7(G.65==T&&G.67!=T){B e=17.4H,b=17.64;G.65=G.67+(e.68||b.68);G.7Y=G.7Z+(e.6c||b.6c)}7(6.W.2N&&G.1O.24==3){B 3a=G;G=6.1z({},3a);G.1O=3a.1O.11;G.2n=u(){v 3a.2n()};G.2H=u(){v 3a.2H()}}7(!G.2n)G.2n=u(){q.3R=12};7(!G.2H)G.2H=u(){q.82=U};v G}};6.E.1z({3U:u(C,F,E){v q.K(u(){6.G.1M(q,C,E||F,F)})},6u:u(C,F,E){v q.K(u(){6.G.1M(q,C,u(G){6(q).6f(G);v(E||F).14(q,1A)},F)})},6f:u(C,E){v q.K(u(){6.G.2f(q,C,E)})},1S:u(C,F){v q.K(u(){6.G.1S(C,F,q)})},3X:u(){B a=1A;v q.6j(u(e){q.4M=q.4M==0?1:0;e.2n();v a[q.4M].14(q,[e])||12})},83:u(f,g){u 4O(e){B p=(e.C=="41"?e.84:e.85)||e.86;22(p&&p!=q)2G{p=p.11}2w(e){p=q};7(p==q)v 12;v(e.C=="41"?f:g).14(q,[e])}v q.41(4O).6k(4O)},27:u(f){7(6.3W)f.14(17,[6]);J{6.3c.1g(u(){v f.14(q,[6])})}v q}});6.1z({3W:12,3c:[],27:u(){7(!6.3W){6.3W=U;7(6.3c){6.K(6.3c,u(){q.14(17)});6.3c=16}7(6.W.3h||6.W.3f)17.87("6o",6.27,12)}}});1p u(){6.K(("88,8a,2O,8b,8d,52,6j,8e,"+"8f,8g,8h,41,6k,8j,42,"+"4R,8k,8l,8m,2C").3o(","),u(i,o){6.E[o]=u(f){v f?q.3U(o,f):q.1S(o)}});7(6.W.3h||6.W.3f)17.8n("6o",6.27,12);J 7(6.W.1j){17.8o("<8r"+"8s 2J=62 8u=U "+"3e=//:><\\/2d>");B 2d=17.4X("62");7(2d)2d.37=u(){7(q.3D!="1X")v;q.11.33(q);6.27()};2d=16}J 7(6.W.2N)6.50=3L(u(){7(17.3D=="8y"||17.3D=="1X"){4p(6.50);6.50=16;6.27()}},10);6.G.1M(1w,"2O",6.27)};7(6.W.1j)6(1w).6u("52",u(){B 1k=6.G.1k;P(B C 1x 1k){B 4Z=1k[C],i=4Z.I;7(i&&C!=\'52\')6w 6.G.2f(4Z[i-1],C);22(--i)}});6.E.1z({6A:u(V,21,M){q.2O(V,21,M,1)},2O:u(V,21,M,1W){7(6.1t(V))v q.3U("2O",V);M=M||u(){};B C="5d";7(21)7(6.1t(21)){M=21;21=16}J{21=6.3g(21);C="5V"}B 4e=q;6.3v({V:V,C:C,F:21,1W:1W,1X:u(2P,15){7(15=="2M"||!1W&&15=="5L")4e.1I("2t",2P.3G).4V().K(M,[2P.3G,15,2P]);J M.14(4e,[2P.3G,15,2P])}});v q},6B:u(){v 6.3g(q)},4V:u(){v q.2o("2d").K(u(){7(q.3e)6.59(q.3e);J 6.4a(q.2L||q.6H||q.2t||"")}).4g()}});7(!1w.3p)3p=u(){v 1p 6I("6K.6M")};6.K("5m,5Q,5O,5W,5N,5H".3o(","),u(i,o){6.E[o]=u(f){v q.3U(o,f)}});6.1z({2b:u(V,F,M,C,1W){7(6.1t(F)){M=F;F=16}v 6.3v({V:V,F:F,2M:M,4t:C,1W:1W})},6Q:u(V,F,M,C){v 6.2b(V,F,M,C,1)},59:u(V,M){v 6.2b(V,16,M,"2d")},6S:u(V,F,M){v 6.2b(V,F,M,"6m")},6U:u(V,F,M,C){7(6.1t(F)){M=F;F={}}v 6.3v({C:"5V",V:V,F:F,2M:M,4t:C})},6X:u(29){6.3q.29=29},6Y:u(5c){6.1z(6.3q,5c)},3q:{1k:U,C:"5d",29:0,5r:"70/x-73-3w-77",5h:U,48:U,F:16},3S:{},3v:u(s){s=6.1z({},6.3q,s);7(s.F){7(s.5h&&1C s.F!="23")s.F=6.3g(s.F);7(s.C.4m()=="2b"){s.V+=((s.V.18("?")>-1)?"&":"?")+s.F;s.F=16}}7(s.1k&&!6.4E++)6.G.1S("5m");B 4y=12;B N=1p 3p();N.7j(s.C,s.V,s.48);7(s.F)N.3A("7l-7m",s.5r);7(s.1W)N.3A("7o-4K-7q",6.3S[s.V]||"7s, 7t 7w 7x 4o:4o:4o 7z");N.3A("X-7B-7C","3p");7(N.7E)N.3A("7F","7G");7(s.5G)s.5G(N);7(s.1k)6.G.1S("5H",[N,s]);B 37=u(4s){7(N&&(N.3D==4||4s=="29")){4y=U;7(3I){4p(3I);3I=16}B 15;2G{15=6.5Z(N)&&4s!="29"?s.1W&&6.69(N,s.V)?"5L":"2M":"2C";7(15!="2C"){B 3F;2G{3F=N.4P("6b-4K")}2w(e){}7(s.1W&&3F)6.3S[s.V]=3F;B F=6.6i(N,s.4t);7(s.2M)s.2M(F,15);7(s.1k)6.G.1S("5N",[N,s])}J 6.3J(s,N,15)}2w(e){15="2C";6.3J(s,N,15,e)}7(s.1k)6.G.1S("5O",[N,s]);7(s.1k&&!--6.4E)6.G.1S("5Q");7(s.1X)s.1X(N,15);7(s.48)N=16}};B 3I=3L(37,13);7(s.29>0)57(u(){7(N){N.7N();7(!4y)37("29")}},s.29);2G{N.7Q(s.F)}2w(e){6.3J(s,N,16,e)}7(!s.48)37();v N},3J:u(s,N,15,e){7(s.2C)s.2C(N,15,e);7(s.1k)6.G.1S("5W",[N,s,e])},4E:0,5Z:u(r){2G{v!r.15&&7V.7W=="4G:"||(r.15>=5X&&r.15<7X)||r.15==6d||6.W.2N&&r.15==T}2w(e){}v 12},69:u(N,V){2G{B 6e=N.4P("6b-4K");v N.15==6d||6e==6.3S[V]||6.W.2N&&N.15==T}2w(e){}v 12},6i:u(r,C){B 4Q=r.4P("8c-C");B F=!C&&4Q&&4Q.18("N")>=0;F=C=="N"||F?r.8i:r.3G;7(C=="2d")6.4a(F);7(C=="6m")40("F = "+F);7(C=="4U")6("<1V>").4U(F).4V();v F},3g:u(a){B s=[];7(a.1l==2y||a.3Y)6.K(a,u(){s.1g(2x(q.Y)+"="+2x(q.O))});J P(B j 1x a)7(a[j]&&a[j].1l==2y)6.K(a[j],u(){s.1g(2x(j)+"="+2x(q))});J s.1g(2x(j)+"="+2x(a[j]));v s.6t("&")},4a:u(F){7(1w.54)1w.54(F);J 7(6.W.2N)1w.57(F,0);J 40.3n(1w,F)}});6.E.1z({1L:u(R,M){B 1G=q.1D(":1G");R?1G.26({28:"1L",3V:"1L",1d:"1L"},R,M):1G.K(u(){q.1q.1h=q.2E?q.2E:"";7(6.1m(q,"1h")=="1Z")q.1q.1h="2D"});v q},1K:u(R,M){B 3i=q.1D(":3i");R?3i.26({28:"1K",3V:"1K",1d:"1K"},R,M):3i.K(u(){q.2E=q.2E||6.1m(q,"1h");7(q.2E=="1Z")q.2E="2D";q.1q.1h="1Z"});v q},5g:6.E.3X,3X:u(E,4I){B 1E=1A;v 6.1t(E)&&6.1t(4I)?q.5g(E,4I):q.K(u(){6(q)[6(q).4l(":1G")?"1L":"1K"].14(6(q),1E)})},7a:u(R,M){v q.26({28:"1L"},R,M)},7c:u(R,M){v q.26({28:"1K"},R,M)},7f:u(R,M){v q.K(u(){B 5k=6(q).4l(":1G")?"1L":"1K";6(q).26({28:5k},R,M)})},7r:u(R,M){v q.26({1d:"1L"},R,M)},7u:u(R,M){v q.26({1d:"1K"},R,M)},7y:u(R,43,M){v q.26({1d:43},R,M)},26:u(H,R,1v,M){v q.1F(u(){q.2F=6.1z({},H);B 1u=6.R(R,1v,M);P(B p 1x H){B e=1p 6.3b(q,1u,p);7(H[p].1l==3Q)e.2s(e.Q(),H[p]);J e[H[p]](H)}})},1F:u(C,E){7(!E){E=C;C="3b"}v q.K(u(){7(!q.1F)q.1F={};7(!q.1F[C])q.1F[C]=[];q.1F[C].1g(E);7(q.1F[C].I==1)E.14(q)})}});6.1z({R:u(R,1v,E){B 1u=R&&R.1l==7K?R:{1X:E||!E&&1v||6.1t(R)&&R,25:R,1v:E&&1v||1v&&1v.1l!=4w&&1v};1u.25=(1u.25&&1u.25.1l==3Q?1u.25:{7R:7S,7T:5X}[1u.25])||7U;1u.1N=1u.1X;1u.1X=u(){6.6a(q,"3b");7(6.1t(1u.1N))1u.1N.14(q)};v 1u},1v:{},1F:{},6a:u(D,C){C=C||"3b";7(D.1F&&D.1F[C]){D.1F[C].4L();B f=D.1F[C][0];7(f)f.14(D)}},3b:u(D,1e,H){B z=q;B y=D.1q;B 4D=6.1m(D,"1h");y.5T="1G";z.a=u(){7(1e.49)1e.49.14(D,[z.2p]);7(H=="1d")6.1I(y,"1d",z.2p);J 7(6l(z.2p))y[H]=6l(z.2p)+"4S";y.1h="2D"};z.6v=u(){v 4T(6.1m(D,H))};z.Q=u(){B r=4T(6.30(D,H));v r&&r>-8z?r:z.6v()};z.2s=u(4f,43){z.4J=(1p 5o()).5w();z.2p=4f;z.a();z.4q=3L(u(){z.49(4f,43)},13)};z.1L=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();1e.1L=U;z.2s(0,D.1y[H]);7(H!="1d")y[H]="5a"};z.1K=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();1e.1K=U;z.2s(D.1y[H],0)};z.3X=u(){7(!D.1y)D.1y={};D.1y[H]=q.Q();7(4D=="1Z"){1e.1L=U;7(H!="1d")y[H]="5a";z.2s(0,D.1y[H])}J{1e.1K=U;z.2s(D.1y[H],0)}};z.49=u(32,47){B t=(1p 5o()).5w();7(t>1e.25+z.4J){4p(z.4q);z.4q=16;z.2p=47;z.a();7(D.2F)D.2F[H]=U;B 2c=U;P(B i 1x D.2F)7(D.2F[i]!==U)2c=12;7(2c){y.5T="";y.1h=4D;7(6.1m(D,"1h")=="1Z")y.1h="2D";7(1e.1K)y.1h="1Z";7(1e.1K||1e.1L)P(B p 1x D.2F)7(p=="1d")6.1I(y,p,D.1y[p]);J y[p]=""}7(2c&&6.1t(1e.1X))1e.1X.14(D)}J{B n=t-q.4J;B p=n/1e.25;z.2p=1e.1v&&6.1v[1e.1v]?6.1v[1e.1v](p,n,32,(47-32),1e.25):((-6h.7O(p*6h.8L)/2)+0.5)*(47-32)+32;z.a()}}}})}',62,545,'||||||jQuery|if|||||||||||||||||||this||||function|return||||||var|type|elem|fn|data|event|prop|length|else|each|ret|callback|xml|value|for|cur|speed|element|undefined|true|url|browser||name|||parentNode|false||apply|status|null|document|indexOf|className|val|firstChild|obj|opacity|options|nodeName|push|display|result|msie|global|constructor|css|test|handler|new|style|arg|expr|isFunction|opt|easing|window|in|orig|extend|arguments|context|typeof|filter|args|queue|hidden|events|attr|re|hide|show|add|old|target|table|token|replace|trigger|num|elems|div|ifModified|complete|key|none|tbody|params|while|string|nodeType|duration|animate|ready|height|timeout|nth|get|done|script|nextSibling|remove|not|index|tb|fix|merge|oid|z0|preventDefault|find|now|grep|pushStack|custom|innerHTML|first|cssFloat|catch|encodeURIComponent|Array|el|guid|sibling|error|block|oldblock|curAnim|try|stopPropagation|childNodes|id|wrap|text|success|safari|load|res|exec|al|_|last|substr|has|disabled|insertBefore|selected|checked|curCSS|map|firstNum|removeChild|re2|trim|getAttribute|onreadystatechange|handlers|on|originalEvent|fx|readyList|parPos|src|opera|param|mozilla|visible|domManip|clean|cloneNode|tr|call|split|XMLHttpRequest|ajaxSettings|append|child|String|empty|ajax|form|button|inArray|multiFilter|setRequestHeader|foundToken|9_|readyState|tag|modRes|responseText|second|ival|handleError|toUpperCase|setInterval|makeArray|slice|break|oWidth|Number|returnValue|lastModified|styleFloat|bind|width|isReady|toggle|jquery|dir|eval|mouseover|select|to|defaultView|position|oHeight|lastNum|async|step|globalEval|static|pos|swap|self|from|end|float|alpha|radio|inv|is|toLowerCase|visibility|00|clearInterval|timer|rec|isTimeout|dataType|_resort|RegExp|Function|getAll|requestDone|parents|matched|isXMLDoc|appendChild|oldDisplay|active|triggered|file|documentElement|fn2|startTime|Modified|shift|lastToggle|deep|handleHover|getResponseHeader|ct|submit|px|parseFloat|html|evalScripts|getComputedStyle|getElementById|clone|els|safariTimer|currentStyle|unload|force|execScript|getPropertyValue|newProp|setTimeout|zoom|getScript|1px|sl|settings|GET|rl|check|_toggle|processData|prepend|before|state|removeAttr|ajaxStart|lt|Date|gt|eq|contentType|previousSibling|after|parent|contains|getTime|checkbox|password|appendTo|image|reset|input|webkit|href|continue|beforeSend|ajaxSend|ownerDocument|getElementsByTagName|tmp|notmodified|parse|ajaxSuccess|ajaxComplete|_prefix|ajaxStop|even|odd|overflow|delete|POST|ajaxError|200|handle|httpSuccess|nodeValue|unshift|__ie_init|srcElement|body|pageX|tagName|clientX|scrollLeft|httpNotModified|dequeue|Last|scrollTop|304|xmlRes|unbind|100|Math|httpData|click|mouseout|parseInt|json|createElement|DOMContentLoaded|prevObject|ol|setArray|exclude|join|one|max|do|relative|clientHeight|clientWidth|loadIfModified|serialize|toString|thead|tfoot|td|th|textContent|ActiveXObject|htmlFor|Microsoft|class|XMLHTTP|readOnly|gi|match|getIfModified|9999|getJSON|getAttributeNode|post|setAttribute|ig|ajaxTimeout|ajaxSetup|concat|application|userAgent|compatible|www|compatMode|CSS1Compat|next|urlencoded|siblings|children|slideDown|prependTo|slideUp|Top|insertAfter|slideToggle|removeAttribute|addClass|removeClass|open|toggleClass|Content|Type|lastChild|If|only|Since|fadeIn|Thu|01|fadeOut|enabled|Jan|1970|fadeTo|GMT|textarea|Requested|With|prev|overrideMimeType|Connection|close|boxModel|right|object|Object|navigator|substring|abort|cos|font|send|slow|600|fast|400|location|protocol|300|pageY|clientY|method|action|cancelBubble|hover|fromElement|toElement|relatedTarget|removeEventListener|blur|readonly|focus|resize|content|scroll|dblclick|mousedown|mouseup|mousemove|responseXML|change|keydown|keypress|keyup|addEventListener|write|prototype|size|scr|ipt|createTextNode|defer|FORM|reverse|noConflict|loaded|10000|weight|line|Bottom|Right|Left|padding|border|Width|offsetHeight|offsetWidth|absolute|PI|left'.split('|'),0,{}))
;/* Copyright (c) 2007 Paul Bakaus (paul.bakaus@googlemail.com) and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * $LastChangedDate: 2007-08-17 13:14:11 -0500 (Fri, 17 Aug 2007) $
 * $Rev: 2759 $
 *
 * Version: 1.1.2
 *
 * Requires: jQuery 1.1.3+
 */
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(9($){l e=$.1q.C,r=$.1q.r;$.1q.M({C:9(){3(!1[0])f();3(1[0]==p)3($.7.O||($.7.E&&U($.7.13)>11))6 n.19-(($(5).C()>n.19)?i():0);k 3($.7.E)6 n.19;k 6 $.I&&5.P.1E||5.o.1E;3(1[0]==5)6 1C.1y(($.I&&5.P.1w||5.o.1w),5.o.1u);6 e.1T(1,1P)},r:9(){3(!1[0])f();3(1[0]==p)3($.7.O||($.7.E&&U($.7.13)>11))6 n.1b-(($(5).r()>n.1b)?i():0);k 3($.7.E)6 n.1b;k 6 $.I&&5.P.1N||5.o.1N;3(1[0]==5)3($.7.1M){l a=n.1p;n.1a(27,n.1o);l b=n.1p;n.1a(a,n.1o);6 5.o.1c+b}k 6 1C.1y((($.I&&!$.7.E)&&5.P.1L||5.o.1L),5.o.1c);6 r.1T(1,1P)},19:9(){3(!1[0])f();6 1[0]==p||1[0]==5?1.C():1.14(\':N\')?1[0].1u-h(1,\'q\')-h(1,\'1I\'):1.C()+h(1,\'1h\')+h(1,\'1H\')},1b:9(){3(!1[0])f();6 1[0]==p||1[0]==5?1.r():1.14(\':N\')?1[0].1c-h(1,\'s\')-h(1,\'1F\'):1.r()+h(1,\'1v\')+h(1,\'1D\')},21:9(a){3(!1[0])f();a=$.M({A:w},a||{});6 1[0]==p||1[0]==5?1.C():1.14(\':N\')?1[0].1u+(a.A?(h(1,\'L\')+h(1,\'1x\')):0):1.C()+h(1,\'q\')+h(1,\'1I\')+h(1,\'1h\')+h(1,\'1H\')+(a.A?(h(1,\'L\')+h(1,\'1x\')):0)},1Y:9(a){3(!1[0])f();a=$.M({A:w},a||{});6 1[0]==p||1[0]==5?1.r():1.14(\':N\')?1[0].1c+(a.A?(h(1,\'K\')+h(1,\'1U\')):0):1.r()+h(1,\'s\')+h(1,\'1F\')+h(1,\'1v\')+h(1,\'1D\')+(a.A?(h(1,\'K\')+h(1,\'1U\')):0)},m:9(a){3(!1[0])f();3(a!=1S)6 1.1Q(9(){3(1==p||1==5)p.1a(a,$(p).u());k 1.m=a});3(1[0]==p||1[0]==5)6 n.1p||$.I&&5.P.m||5.o.m;6 1[0].m},u:9(a){3(!1[0])f();3(a!=1S)6 1.1Q(9(){3(1==p||1==5)p.1a($(p).m(),a);k 1.u=a});3(1[0]==p||1[0]==5)6 n.1o||$.I&&5.P.u||5.o.u;6 1[0].u},12:9(a){6 1.1O({A:w,J:w,v:1.z()},a)},1O:9(b,c){3(!1[0])f();l x=0,y=0,H=0,G=0,8=1[0],4=1[0],T,10,Z=$.D(8,\'12\'),F=$.7.1M,S=$.7.26,18=$.7.O,1n=$.7.E,R=$.7.E&&U($.7.13)>11,1m=w,1l=w,b=$.M({A:Q,15:w,1k:w,J:Q,1K:w,v:5.o},b||{});3(b.1K)6 1.1J(b,c);3(b.v.1j)b.v=b.v[0];3(8.B==\'Y\'){x=8.V;y=8.X;3(F){x+=h(8,\'K\')+(h(8,\'s\')*2);y+=h(8,\'L\')+(h(8,\'q\')*2)}k 3(18){x+=h(8,\'K\');y+=h(8,\'L\')}k 3((S&&1g.I)){x+=h(8,\'s\');y+=h(8,\'q\')}k 3(R){x+=h(8,\'K\')+h(8,\'s\');y+=h(8,\'L\')+h(8,\'q\')}}k{17{10=$.D(4,\'12\');x+=4.V;y+=4.X;3((F&&!4.B.1G(/^t[d|h]$/i))||S||R){x+=h(4,\'s\');y+=h(4,\'q\');3(F&&10==\'1i\')1m=Q;3(S&&10==\'25\')1l=Q}T=4.z||5.o;3(b.J||F){17{3(b.J){H+=4.m;G+=4.u}3(18&&($.D(4,\'24\')||\'\').1G(/23-22|20/)){H=H-((4.m==4.V)?4.m:0);G=G-((4.u==4.X)?4.u:0)}3(F&&4!=8&&$.D(4,\'1e\')!=\'N\'){x+=h(4,\'s\');y+=h(4,\'q\')}4=4.1B}W(4!=T)}4=T;3(4==b.v&&!(4.B==\'Y\'||4.B==\'1d\')){3(F&&4!=8&&$.D(4,\'1e\')!=\'N\'){x+=h(4,\'s\');y+=h(4,\'q\')}3(((1n&&!R)||18)&&10!=\'1r\'){x-=h(T,\'s\');y-=h(T,\'q\')}1A}3(4.B==\'Y\'||4.B==\'1d\'){3(((1n&&!R)||(S&&$.I))&&Z!=\'1i\'&&Z!=\'1z\'){x+=h(4,\'K\');y+=h(4,\'L\')}3(R||(F&&!1m&&Z!=\'1z\')||(S&&Z==\'1r\'&&!1l)){x+=h(4,\'s\');y+=h(4,\'q\')}1A}}W(4)}l a=j(8,b,x,y,H,G);3(c){$.M(c,a);6 1}k{6 a}},1J:9(b,c){3(!1[0])f();l x=0,y=0,H=0,G=0,4=1[0],z,b=$.M({A:Q,15:w,1k:w,J:Q,v:5.o},b||{});3(b.v.1j)b.v=b.v[0];17{x+=4.V;y+=4.X;z=4.z||5.o;3(b.J){17{H+=4.m;G+=4.u;4=4.1B}W(4!=z)}4=z}W(4&&4.B!=\'Y\'&&4.B!=\'1d\'&&4!=b.v);l a=j(1[0],b,x,y,H,G);3(c){$.M(c,a);6 1}k{6 a}},z:9(){3(!1[0])f();l a=1[0].z;W(a&&(a.B!=\'Y\'&&$.D(a,\'12\')==\'1r\'))a=a.z;6 $(a)}});l f=9(){1Z"1X: 1g 1W 14 1V";};l h=9(a,b){6 U($.D(a.1j?a[0]:a,b))||0};l j=9(a,b,x,y,d,c){3(!b.A){x-=h(a,\'K\');y-=h(a,\'L\')}3(b.15&&(($.7.E&&U($.7.13)<11)||$.7.O)){x+=h(a,\'s\');y+=h(a,\'q\')}k 3(!b.15&&!(($.7.E&&U($.7.13)<11)||$.7.O)){x-=h(a,\'s\');y-=h(a,\'q\')}3(b.1k){x+=h(a,\'1v\');y+=h(a,\'1h\')}3(b.J&&(!$.7.O||a.V!=a.m&&a.X!=a.m)){d-=a.m;c-=a.u}6 b.J?{1f:y-c,1t:x-d,u:c,m:d}:{1f:y,1t:x}};l g=0;l i=9(){3(!g){l a=$(\'<1s>\').D({r:16,C:16,1e:\'2d\',12:\'1i\',1f:-1R,1t:-1R}).2c(\'o\');g=16-a.2b(\'<1s>\').2a(\'1s\').D({r:\'16%\',C:29}).r();a.28()}6 g}})(1g);',62,138,'|this||if|parent|document|return|browser|elem|function|||||||||||else|var|scrollLeft|self|body|window|borderTopWidth|width|borderLeftWidth||scrollTop|relativeTo|false|||offsetParent|margin|tagName|height|css|safari|mo|st|sl|boxModel|scroll|marginLeft|marginTop|extend|visible|opera|documentElement|true|sf3|ie|op|parseInt|offsetLeft|while|offsetTop|BODY|elemPos|parPos|520|position|version|is|border|100|do|oa|innerHeight|scrollTo|innerWidth|offsetWidth|HTML|overflow|top|jQuery|paddingTop|absolute|jquery|padding|relparent|absparent|sf|pageYOffset|pageXOffset|fn|static|div|left|offsetHeight|paddingLeft|scrollHeight|marginBottom|max|fixed|break|parentNode|Math|paddingRight|clientHeight|borderRightWidth|match|paddingBottom|borderBottomWidth|offsetLite|lite|scrollWidth|mozilla|clientWidth|offset|arguments|each|1000|undefined|apply|marginRight|empty|collection|Dimensions|outerWidth|throw|inline|outerHeight|row|table|display|relative|msie|99999999|remove|200|find|append|appendTo|auto'.split('|'),0,{}));var global_log_level = 1;
var $j = jQuery.noConflict();
$j.ajaxSetup({url:'controller.php',	global: false, type: 'POST'});

function postGeneric(type, is_async, url, postData, callbackFunction, callbackParameters)
{
	$j('#loading_info').show();
	postData = '&responseType=' + type + 
			   '&url='          + encodeURIComponent('intranet/' + url) +
			   '&uniqueId='     + (new Date()).getTime() + 
			   '&'              + postData; 
	
/*
*  async (Boolean) - By default, all requests are sent asynchronous (e.g. this is set to true by default). If you need synchronous requests, set this option to false. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active. 
* beforeSend (Function) - A pre-callback to modify the XMLHttpRequest object before it is sent. Use this to set custom headers etc. The XMLHttpRequest is passed as the only argument. 
* complete (Function) - A function to be called when the request finishes (after success and error callbacks are executed). The function gets passed two arguments: The XMLHttpRequest object and a string describing the type of success of the request. 
* contentType (String) - When sending data to the server, use this content-type. Default is "application/x-www-form-urlencoded", which is fine for most cases. 
* data (Object|String) - Data to be sent to the server. It is converted to a query string, if not already a string. It's appended to the url for GET-requests. See processData option to prevent this automatic processing. 
* dataType (String) - The type of data that you're expecting back from the server. If none is specified, jQuery will intelligently pass either responseXML or responseText to your success callback, based on the MIME type of the response. The available types (and the result passed as the first argument to your success callback) are:
      o "xml": Returns a XML document that can be processed via jQuery.
      o "html": Returns HTML as plain text; included script tags are evaluated.
      o "script": Evaluates the response as JavaScript and returns it as plain text.
      o "json": Evaluates the response as JSON and returns a JavaScript Object. 
* error (Function) - A function to be called if the request fails. The function gets passed three arguments: The XMLHttpRequest object, a string describing the type of error that occurred and an optional exception object, if one occurred. 
* global (Boolean) - Whether to trigger global AJAX event handlers for this request. The default is true. Set to false to prevent the global handlers like ajaxStart or ajaxStop from being triggered. 
* ifModified (Boolean) - Allow the request to be successful only if the response has changed since the last request. This is done by checking the Last-Modified header. Default value is false, ignoring the header. 
* processData (Boolean) - By default, data passed in to the data option as an object (technically, anything other than a string) will be processed and transformed into a query string, fitting to the default content-type "application/x-www-form-urlencoded". If you want to send DOMDocuments, or other non-processed data, set this option to false. 
* success (Function) - A function to be called if the request succeeds. The function gets passed one argument: The data returned from the server, formatted according to the 'dataType' parameter. 
* timeout (Number) - Set a local timeout for the request. This will override the global timeout, if one is set via $.ajaxTimeout. For example, you could use this property to give a single request a longer timeout than all other requests that you've set to time out in one second. See $.ajaxTimeout() for global timeouts. 
* type (String) - The type of request to make ("POST" or "GET"), default is "GET". Note: Other HTTP request methods, such as PUT and DELETE, can also be used here, but they are not supported by all browsers. 
* url (String) - The URL to request. 
*/
	$j.ajax
	({
   		async: is_async,
		data: postData,
		dataType: type,
   		success: 
			function(response)
			{
				callbackFunction(response, callbackParameters);
				$j('#loading_info').hide();
			},
		error: 
			function(xmlObj, msg, e)
			{
				alert('error ' + msg +' - ' + e);	
			}
 	});
}

function postXML    (url, postData, callbackFunction, callbackParameters, is_async) {	postGeneric('xml',  (is_async == null?true:is_async),  url, postData, callbackFunction, callbackParameters); }
function postText   (url, postData, callbackFunction, callbackParameters, is_async) {	postGeneric('html', (is_async == null?true:is_async),  url, postData, callbackFunction, callbackParameters); }
function postHTML   (url, postData, callbackFunction, callbackParameters, is_async) {	postGeneric('html', (is_async == null?true:is_async),  url, postData, callbackFunction, callbackParameters); }
function postJSON   (url, postData, callbackFunction, callbackParameters, is_async) {	postGeneric('json', (is_async == null?true:is_async),  url, postData, callbackFunction, callbackParameters); }

function postProcess(url, postData)
{
    postXML(url, postData, processXML);
}

function postProcessAsync(url, postData)
{
	postXML(url, postData, processXML, '', false);
}

//textarea usar por valor e nao por HTML
function processXML(xml)
{
	$j('node',xml).each(
		function(i) 
		{
			var id          = $j(this).attr('target_id');
			var type        = $j(this).attr('type');
			var classAdd    = $j(this).attr('classAdd');
			var classRemove = $j(this).attr('classRemove');
			
			if(classAdd    != null) {$j('#'+id).addClass(classAdd);}
			if(classRemove != null) {$j('#'+id).removeClass(classRemove);}
			
			if(type == 'text')
			{
				var val = $j(this).attr('value');
				if(val == null || val == '')
				{
					val = $j(this).text();	
				}
				$j('#'+id).html(val);
			}
			else if(type == 'html')
			{
				//must have the <![CDATA[ // ]]> embrancing the text of the node if html code is present
				var val  = $j(this).text();
				$j('#'+id).html(val);
			}
			else if(type == 'checkbox')
			{
				var val = $j(this).attr('value');
				$j('#'+id).check(val);
				var val = $j(this).attr('status');
				if(val == "disabled")
				{
					$j('#'+id).attr("disabled", "disabled");
				}
			}
			else if(type == 'function')
			{
				var fun = $j(this).attr('function');
				var val = $j(this).attr('value');
				classAdd = fun+"("+val+")";
				eval(classAdd);
			}
			else if(type == 'value')
			{
				var val = $j(this).attr('value');
				if(val == null || val == '')
				{
					val = $j(this).text();	
				}
				$j('#'+id).val(val);
			}
			else if(type == 'select')
			{
				var query = 'select[@id='+id+'] > option[@value='+val+']';
				$j(query).attr('selected', true);	
			}
			else if(type == 'script')
			{
				//must have the <![CDATA[ /**/ ]]> enclosing the text of the node if html code is present
				var val  = $j(this).text();
				eval(val);
			}
			log("[type: " + type + "][id: " + id + "][classAdd:"+classAdd+"][classRemove:"+classRemove+"][val: " + val+"]", LOG_DEBUG);
		}
	);
	$j('script',xml).each(
        function(i) 
        {
		  val = $j(this).text();
		  log("[script: " + val + "]", LOG_DEBUG);
		  eval(val);  
		}
    );
	
	
	$j('#loading').show();
}
//utility functions
function replaceInnerHTML(html, query) {$j(query).html(html); }

function r(html, id) {document.getElementById(id).innerHTML = html;}

//LOGGING
var LOG_DEBUG = 0;
var LOG_INFO  = 1;
var LOG_WARN  = 2;
var LOG_ERROR = 3;

function log(log_message, log_level)
{
	/*
	if($j.browser.mozilla && console)
	{
		if(!log_level)     console.log  (log_message);
		if(log_level == LOG_DEBUG && global_log_level <=LOG_DEBUG) console.debug(log_message); 
		if(log_level == LOG_INFO  && global_log_level <=LOG_INFO)  console.info (log_message);
		if(log_level == LOG_WARN  && global_log_level <=LOG_WARN)  console.warn (log_message);
		if(log_level == LOG_ERROR && global_log_level <=LOG_ERROR) console.error(log_message);
	}
	*/
}

function select_tab(tab_group_name, tab_show_id)
{
	$j('a[@tab='+tab_group_name+']').attr('style', '');
	$j('a[@id=a_'+tab_group_name+'_'+tab_show_id+']').attr('style', 'background-color:red');
	$j('div[@tab='+tab_group_name+']').hide();
	$j('div[@id='+tab_group_name+'_'+tab_show_id+']').show();
}

$j.fn.is_checked= 
	function() 
	{
		var str = "";
		this.each(
			function() 
			{
				str = str + this.id+":"+this.checked+"$";
			}
		);
		var temp = str.split("$");
		if(temp.length ==2)
		{
			return temp[0].split(":")[1];
		}
		else
		{
			return str;			
		}
	}
			
$j.fn.check = 
	function(mode) 
	{
		var mode = mode || '1'; // se modo não está definido, use 'on' como padrão
		return this.each(
			function() 
			{
				switch(mode) 
				{
					case '1':
						this.checked = true;
						break;
					case '0':
						this.checked = false;
						break;
					case '2':
						this.checked = !this.checked;
						break;
					default: 
						this.checked = !this.checked;
						break;
				}
			}
		);
	};
/******************************************************************************************
 * confirma com contra-senha
 * @param {Object} texto
 **********************************************/	
function confirma(texto)
{
	var fonte="23456789QWERTYUPASDFGHJLZXCVBNMqwertyuipasdfghjzxcvbnm";
	var senha="";
	for (j=0;j<6;j++)
	{
		senha=senha+fonte.substr(Math.round(Math.random()*fonte.length),1);
	}
	var entrada=prompt(texto+' Para confirmar, digite a senha: '+senha+'   (observar as maiúsculas e minúsculas)', '');
	if (entrada==senha)
	{
		return true;
	}
	return false;
}
function get(id)
{
	return document.getElementById(id);
}

//http://www.mredkj.com/javascript/nfdocs.html#downloadit
var num = new NumberFormat();
num.setInputDecimal('.');
num.setPlaces('2', false);
num.setCurrency(false);
num.setNegativeFormat(num.LEFT_DASH);
num.setSeparators(true, '.', ',');

function formatPercent(number)
{
	//num.setNumber(number);
	//return num.toFormatted() + '%';
	number = ''+number.toFixed(2);
	number = number.replace(".",",")
	return number + "%";
//	return number;
}
function formatNumber(number)
{
    num.setNumber(number);
	return num.toFormatted();	
}

/*
 * Block ui alert
 */
function ui_show()
{
	$("#page_block_ui").show().fadeTo("normal", 0.5);
	$("#page_message_box").show().fadeTo("normal", 1);
}

function ui_hide()
{
	$("#page_block_ui").fadeTo("normal", 0, function(){$("#page_block_ui").hide();});
	$("#page_message_box").fadeTo("normal", 0,function(){$("#page_message_box").hide();});

}
function ui_alert(message)
{
	str = message + '<br/><br/><input type="button" value="Ok" onclick="javascript:ui_hide()"/>';
	$("#page_message_box").html(str);
	ui_show();
};var home       = 'home';
var planilha   = 'planilha';
var mensagens  = 'mensagens';
var parametros = 'parametros';
var cub        = 'cub';
var cub_brasil = 'cub.brasil';
var cub_brasil_reports = 'cub.brasil.reports';
var reports_cub_br = 'reports_cub_br';
cub_brasil_reports = reports_cub_br;


var prod       = 'product';
var cub_s 	   = 'cub.sinduscon';
var busca 	   = 'busca';
var contatos   = 'contatos';
var senha      = 'alterar_senha';
var constr     = 'constructors';
var sinduc     = 'sinduscon';
var reports    = 'reports';
var reports_s  = 'reports_s';
var reports_c  = 'reports_c';

var r_users      = 'users.root';
var s_users      = 'users.'+sinduc;
var c_users      = 'users.'+constr;


var p_home       = "../p_home";
var p_cartilha   = "../p_cartilha";
var p_saiba_mais = "../p_saiba_mais";
var p_contato    = "../p_contato";
var p_cub_uf     = "../p_cub_uf";
var p_cub_br     = "../p_cub_br";
var p_informacoes_gerais ="../p_informacoes_gerais";
var p_projetos_padrao ="../p_projetos_padrao";

function s_validar_planilha(id)
{
	if(confirma("Confirma finalizar e validar a planilha? (ATENÇÃO ESTA OPERAÇÃO NAO PODERÁ SER CANCELADA)"))
	{
		postProcess(planilha + '.itens.uc', 'action=s_send&plan_id='+id);
	}
	else
    {
        alert('Confirmação inválida, os dados não foram enviados');
    }
}
function report(id)
{
    var sid = $j("#s_id").val(); 
    if(sid == -1)
    {
       alert("Favor selecionar um Sinduscon para o relatório.");
    }
    else
    {
    	postProcess(reports+'.uc','id='+id+ '&sid='+ sid);
    } 
}

function confirm_start_parameters()
{
	var m = 1;
	$j('input:radio').each
	(
	   function(i)
	   {
	       if(this.checked == true)
		   {
		      m = this.value;
		   }
	   }
	);
	var pat = $j('#sel_pattern').val();
	
	var d = $j('#select_day').val();
	if(!d)
	{
		d = '';
	}
	if(confirma("Confirma parâmetros do Sinduscon? (ATENÇÃO ESTA OPERAÇÃO NAO PODERÁ SER CANCELADA)"))
    {
        postProcess(parametros+'.uc','action=start_parameter&d='+d+'&m='+m+'&pat='+pat);
    }
    else
    {
        alert('Confirmação inválida, os dados não foram enviados');
    }
}

function alterar_senha()
{
	var h1 = get('h1').value;
	var p1 = get('p1').value;
	var p2 = get('p2').value;
	var p3 = get('p3').value;
	
	//p1 = MD5(MD5(p1)+h1);
	//p2 = MD5(MD5(p2)+h1); 
	
	if(p2 != p3)
	{
		alert("Confirmação de senha inválida.");
		return;
	}
	else
	{
		postProcess(senha+'.uc','action=alter&p1='+p1+'&p2='+p2);
	}
}

/****************************************************************************************
 * CUB
 ****************************************************************************************/
function s_cub_view(id, tipo)
{
	postProcess(cub_s+'.view.itens','action=series&id='+id+'&t='+tipo);
}

/**************************************************************************************
 * 
 * 
 */
function menu(module)
{
	postProcess(module+'.view','');
}

/**************************************************************************************
 * 
 * 
 */
function ajuda(id)
{
	postProcess('ajuda', 'id='+id);
}

/**************************************************************************************
 * Messages
 **************************************************************************************/
function m_send(stat, pai)
{
    var sub  = $j('#message_subject').val();
    var to   = $j('#message_to').val();
    var body = escape($j('#message_body').val());   
    if(sub == '' || to == ''  || body == '')
    { 
        alert('Todos os campos são obrigatórios.');
        return;
    }
    if(confirm("Confirma enviar mensagem ?"))
    {
        postProcess(mensagens+'.uc','action=send&s='+sub+'&t='+to+'&b='+body+'&stat='+stat+'&id_pai='+pai);
    }
}

function m_view(cod)
{
    var t = $j('#tipo_msg').val(cod);
    m_seleciona();
}
function m_seleciona()
{
    var m = $j('#sel_mes').val();
    var y = $j('#sel_ano').val();
    var t = $j('#tipo_msg').val();
    postProcess(mensagens+'.uc','action=selecionar&yid='+y+'&mid='+m+'&tipo='+t);
}
function u_selecionar_sinduscon()
{
	postProcess(users + '.uc', 'action=selecionar_sinduscon');
}
function m_ver(message_id,cod)
{
	postProcess(mensagens+'.uc','action=show&mid='+message_id+'&flag='+cod);
}
function m_responde(message_id)
{
	var m = $j('#sel_mes').val();
	var y = $j('#sel_ano').val();
	postProcess(mensagens+'.uc','action=selecionar&yid='+y+'&mid='+m+'&tipo=2&stat=1&id='+message_id);
}
function m_encaminha(message_id)
{
	var m = $j('#sel_mes').val();
	var y = $j('#sel_ano').val();
	postProcess(mensagens+'.uc','action=selecionar&yid='+y+'&mid='+m+'&tipo=2&stat=2&id='+message_id);
}
function m_apaga(message_id)
{
	if (confirm('Confirma apagar a mensgem?'))
	{
		postProcess(mensagens+'.uc','action=delete&mid='+message_id);
	}
}
/**************************************************************************************
 * Planilhas
 **************************************************************************************/
function c_enviar_planilha(id)
{
	var error = 0;
	var empty = 0;
	$j('input:text').each(
	   function(i)
	   {
	       if(this.className.indexOf('error') >-1) { error++};
	       if(this.value == '') { empty++};
	   }
	);
	
	if(error >0 || empty >0)
	{
	   alert('Exitem campos inválidos ou não preenchidos.\nPara não enviar um valor, preencher com 0 (zero).');
	}
	
	
	if(confirm('Todos os dados foram preenchidos com valores para o mês corrente?'))
	{
		if(confirma('Uma vez enviados, os dados não poderão ser modificados.'))
		{
			postProcess(planilha + '.itens.uc', 'action=c_send&plan_id='+id);
		}
		else
	    {
	        alert('Confirmação inválida, os dados não foram enviados');
	    }
	}
	
}

function s_confirm_valid_value(planilha_id, product_id)
{
	var is_valid = $j("#valid_product_id_"+product_id).is_checked();
	postProcess(planilha + '.itens.uc', 'action=s_validate_product&plan_id='+planilha_id+'&prod_id='+product_id+'&value='+is_valid);	
}

function s_plan_check_disabled_values()
{
	$j('input:text').each
	(
		function(i)
		{
			if($j.trim($j(this).val()) == '')
			{
				this.disabled=true;
				id = this.id.substr(this.id.lastIndexOf('_')+1);
				$j(this).addClass('input_disabled');
				$j('#valid_product_id_'+id).attr({disabled:'true'});
				
			}
		}
	);
}
function s_plan_view(report_id)
{
	postProcess(planilha + '.sinduscon.itens.view', 'id='+report_id);
}
function plan_view_status_constructors(status, mes, ano)
{
	$j("#constructor_report_status").val(status);
	
	$j('a[@tab=view_status]').each(function (i){$j(this).attr("style","color:white");});
	$j('a[@id=view_status_'+status+']').attr("style","color:yellow");

	plan_view_constructors(status, mes, ano);
}
function plan_view_constructors(status, mes, ano)
{
	if(!mes){mes = $j("#filter_planilhas_mes").val();}
	if(!ano){ano = $j("#filter_planilhas_ano").val();}
	if(!status){status= $j("#constructor_report_status").val();}
	 
	var p = '&ano='+ano;
	p = p+'&mes='+mes;
	p = p+'&status='+status;
	postProcess(planilha + '.view.sinduscon.constructor.status', p);
}

function plan_view(planilha_id)
{
	postProcess(planilha + '.itens.view', 'action=view&id='+planilha_id);
}

function s_plan_update_validated_value(planilha_id, product_id)
{
	var validValue = $j('#validate_product_id_'+product_id).val();
	var val = $j('#product_id_'+product_id).text();
	postProcess(planilha + '.itens.uc', 'action=update_s_valid&plan_id='+planilha_id+'&prod_id='+product_id+'&value='+val+'&validValue='+validValue);
}

function plan_update_value(planilha_id, product_id)
{
	var val = $j('#product_id_'+product_id).val();
	postProcess(planilha + '.itens.uc', 'action=update_product&plan_id='+planilha_id+'&prod_id='+product_id+'&value='+val);
}

function plan_update_comment(planilha_id, product_id)
{
    var val = $j('#comment_'+product_id).val();
    postProcess(planilha + '.itens.uc', 'action=update_product_comment&plan_id='+planilha_id+'&prod_id='+product_id+'&value='+val);
}

function plan_product_val(type, product_id, input_type)
{
	var id_input = '#product_id_';
	if(input_type == 'validate' )
	{
		id_input = '#validate_product_id_';	
	}	
	
	$j(id_input+product_id).removeClass('input_valid');	
	$j(id_input+product_id).removeClass('input_warn');
	$j(id_input+product_id).removeClass('input_error');
	$j(id_input+product_id).removeClass('input_changed');

	if(type==1)
	{
		$j(id_input+product_id).addClass('input_error');
	}
	else if(type ==2)
	{
		$j(id_input+product_id).addClass('input_valid');
	}
	else if(type ==3)
	{
		$j(id_input+product_id).addClass('input_warn');
	}
	else if(type ==4)
	{
		$j(id_input+product_id).addClass('input_changed');
	}
}

/*************************************************
 * ROOT USERS
 *************************************************/
function r_user_remove(id)
{//ok
	if(confirm('Confirma remover usuário?'))
	{
		postProcess(r_users+'.uc', 'action=r_user_del&uid='+id);
	}		
}

function r_user_filter(page)
{
	if(!page)
	{
		page=1;
	}
	var sid = $j("#filter_users").val();
	postProcess(r_users+'.uc', 'action=s_filter&page='+page+'&sid='+sid);
}
function r_user_add_confirm()
{
	var n = $j("#n").val();
	var e = $j("#e").val();
	var p1 = $j("#p1").val();
	var p2 = $j("#p2").val();
	var sid = $j("#filter_users").val();
	var pu  = $j("#permissao_user").val();
	
	if((p1 != p2) || (p1 =='') || (p1.length <4))
	{
		alert('Senha e confirmação de senha devem ser idênticas, não nulas e com mais de 4 caracteres.');
		return;
	}
	else
	{
		$j("#p1").val("");
		$j("#p2").val("");
		if(confirm('Confirma adicionar usuário?'))
		{
			postProcess(r_users+'.uc', 'action=r_user_add&n='+n+'&e='+e+'&p1='+p1+'&sid='+sid+'&pu='+pu);	
		}
	}
}
function r_user_add()
{
	var val = $j("#filter_users").val();
	var s = $j('#opt_'+val).html();
	$j("#sinduscon").text(s);
	$j("#user_panel").show();
	$j("#user_panel").fadeIn("slow");
}

/*************************************************
 * SINDUSCON USERS
 *************************************************/
function s_user_filter(page)
{
	if(!page)
	{
		page=1;
	}
	$j("#user_panel").hide();
	var cid = $j("#filter_users").val();
	postProcess(s_users+'.uc', 'action=s_user_filter&page='+page+'&cid='+cid);
}

function s_user_add()
{
	var val = $j("#filter_users").val();
	var constructor = $j('#opt_'+val).html();

    if(val != '0')
    {
        $j("#constructor").text(constructor);
        $j("#user_panel").show().fadeIn("slow");
    }
    else
    {
        alert('Favor selecionar uma construtora/fornecedor.');
    }
}

function s_user_add_confirm()
{
	var n = escape($j("#n").val());
	var e = escape($j("#e").val());
	var p1 = $j("#p1").val();
	var p2 = $j("#p2").val();
	var cid = $j("#filter_users").val();
	if((p1 != p2) || (p1 =='') || (p1.length <4))
	{
		alert('Senha e confirmação de senha devem ser idênticas, não nulas e com mais de 4 caracteres.');
		return;
	}
	else
	{
		$j("#p1").val("");
		$j("#p2").val("");
		if(confirm('Confirma adicionar usuário?'))
		{
			postProcess(s_users+'.uc', 'action=s_user_add&n='+n+'&e='+e+'&p1='+p1+'&cid='+cid);	
		}
	}
}

function s_user_remove(id)
{//ok
	if(confirm('Confirma remover usuário?'))
	{
		postProcess(s_users+'.uc', 'action=s_user_del&uid='+id);
	}		
}

function s_user_new_pwd(id)
{
	if(confirm('Confirma enviar nova senha para usuário?'))
	{
		postProcess('users.uc', 'action=s_user_new_user_pwd&uid='+id);
	}
}

/*************************************************
 * CONSTRUCTORS USERS
 *************************************************/
function c_user_filter(page)
{
	if(!page){page=1;}
	postProcess(c_users+'.uc', 'action=c_user_filter&page='+page);
}

function c_user_add()
{
	$j("#user_panel").show();
	$j("#user_panel").fadeIn("slow");
}

function c_user_add_confirm()
{
	var n = $j("#n").val();
	var e = $j("#e").val();
	var p1 = $j("#p1").val();
	var p2 = $j("#p2").val();
	if((p1 != p2) || (p1 =='') || (p1.length <4))
	{
		alert('Senha e confirmação de senha devem ser idênticas, não nulas e com mais de 4 caracteres.');
		return;
	}
	else
	{
		$j("#p1").val("");
		$j("#p2").val("");
		if(confirm('Confirma adicionar usuário?'))
		{
			postProcess(c_users+'.uc', 'action=c_user_add&n='+n+'&e='+e+'&p1='+p1);	
		}
	}
}

function c_user_remove(id)
{//ok
	if(confirm('Confirma remover usuário?'))
	{
		postProcess(c_users+'.uc', 'action=c_user_del&uid='+id);
	}		
}

/*************************************************
 * COMMON USERS
 *************************************************/
function user_add_cancel()
{
	$j("#user_panel").hide();
	$j("input").each
	(
		function(i)
		{
			this.value ='';
		}
	);
}
/**
 * constructors 
 */

function constr_add_confirm()
{
	var n = escape($j("#n").val());
	var t = escape($j("#t").val());
	var c = escape($j("#c").val());
	
	if(c =='' || c.length <3 || t == '' || t.length <3 || n.length <3 || n == '')
	{
		alert('Campos não podem ser nulos');
		return;		
	}
	if(confirm('Confirma adicionar construtora?'))
	{
		postProcess(constr+'.uc', 'action=c_add&n='+n+'&t='+t+'&c='+c);	
	}
}

function constr_add()
{
	$j("#c_panel").show();
	$j("#c_panel").fadeIn("slow");
}

function c_filter()
{
	postProcess(constr+'.uc', 'action=c_filter');
}

function c_add_cancel()
{
	$j("#c_panel").hide();
	$j("input").each
	(
		function(i)
		{
			this.value ='';
		}
	);
}

function c_remove(id)
{
	if(confirm('Confirma remover construtora?'))
	{
		postProcess(constr+'.uc', 'action=c_del&cid='+id);
	}
}

function c_view()
{
	
}

function s_filter()
{
	postProcess(sinduc+'.uc', 'action=s_filter');
}


function s_add_confirm()
{
	var n = $j("#n").val();
	var e = $j("#e").val();
	var t = $j("#t").val();
	var c = $j("#c").val();
	var uf = $j("#uf").val();
	var iscub = $j("#is_cub").is_checked();
	if(iscub)
	{
		iscub=1;
	}
	else
	{
		iscub=0;	
	}
	
	if(c =='' || c.length <3 || t == '' || t.length <3 || n.length <3 || n == '')
	{
		alert('Campos não podem ser nulos');
		return;		
	}
	if(confirm('Confirma adicionar sinduscon?'))
	{
		postProcess(sinduc+'.uc', 'action=s_add&n='+n+'&t='+t+'&c='+c+'&is_cub='+iscub+'&uf='+uf+'&e='+e);	
	}
}

function s_add_cancel()
{
	$j("#s_panel").hide();
	$j("input").each
	(
		function(i)
		{
			this.value ='';
		}
	);
}

function s_add()
{
	$j("#s_panel").show();
	$j("#s_panel").fadeIn("slow");
}

function s_remove(id)
{
	if(confirm('Confirma remover Sinduscon?'))
	{
		postProcess(sinduc+'.uc', 'action=s_del&sid='+id);
	}
}

function plan_filter_year()
{
	postProcess(planilha+'.uc','action=list_reports&y='+$j("#filter_planilhas_ano").val());
}

function s_publicar_cub(id)
{
    if(confirm('Após a confirmação NENHUMA construtora poderá mais enviar dados'))
    {
        if(confirm('Confirma publicação do CUB do sinduscon?'))
        {
            postProcess(cub_s+'.uc','action=publicar_cub&id='+id);
        }
        else
        {
            alert('Confirmação inválida, não foi publicado o CUB.');
        }
    }
}

function s_cub_view_items(id, val, m1, year, m12)
{
	$j("#avg_"+id).text(formatNumber(val));
	$j("#m1_"+id).text(normaliza_dif(val,m1));
	$j("#year_"+id).text(normaliza_dif(val,year));
	$j("#m12_"+id).text(normaliza_dif(val,m12));
}

function normaliza_dif(a,b,unity)
{
	if(!a || a == '0' || a =='-' || !b || b=='0' || b==''){ return '-';}
	if(!unity) {unity = '%';}
	return formatNumber( (((a/b)-1)*100)) + unity;
}

function input_blur(e)
{
	$j("#alert_"+e.id).hide();
}

function input_focus(e)
{
    $j("#alert_"+e.id).show();
}



function p_dia_envio()
{
    var dia = $j('#dia').val();
    if(!isNaN( parseInt(dia)))
    {
        if(confirma('Confirmar o dia de envio da planilha'))
        {
            postProcess('parameters/p_dia_envio_planilha.uc','action=definir_dia&dia='+dia);
        }
        else
        {
            alert('Confirmação inválida, dados não enviados');
        }
    }
    else
    {
        alert('Favor inserir um número válido.');
    }
}

function p_encargos()
{
    var val = $j('#encargo').val();
    val = val.replace(/,/g,".");
    if(!isNaN(parseFloat(val)))
    {
        if(confirma('Confirmar o valor dos encargos para o mês corrente.'))
        {
            postProcess('parameters/p_encargos.uc','action=definir_encargo&val='+val);
        }
        else
        {
            alert('Confirmação inválida, dados não enviados');
        }
    }
    else
    {
        alert('Favor inserir um número válido.');
    }
}

function p_metodo()
{
    var val = 1;
    $j('input:radio').each
    (
       function(i)
       {
           if(this.checked == true)
           {
              val = this.value;
           }
       }
    );
    if(!isNaN(parseInt(val)))
    {
        if(confirma('Confirmar o tipo do método de cálculo das planilhas de construtoras do CUB.'))
        {
            postProcess('parameters/p_metodo_calculo.uc','action=definir_metodo&val='+val);
        }
        else
        {
            alert('Confirmação inválida, dados não enviados');
        }
    }
    else
    {
        alert('Favor inserir um número válido.');
    }
}

function p_projeto()
{
    var val = $j('#projeto').val();
    if(!isNaN(parseInt(val)))
    {
        if(confirma('Confirmar o tipo de projeto padrão para o Sinduscon.'))
        {
            postProcess('parameters/p_projeto_padrao_sinduscon.uc','action=definir_projeto&val='+val);
        }
        else
        {
            alert('Confirmação inválida, dados não enviados');
        }
    }
    else
    {
        alert('Favor inserir um número válido.');
    }
}

function p_atualizar_dia()
{
    if(confirma('Confirma alterar o dia de envio das planilhas?'))
    {
        var val = $j("#dia_envio").val();
        postProcess('parametros.uc','action=atualizar_dia&val='+val);
    }
    else
    {
        alert('Operação cancelada.');
    }
}

function p_atualizar_encargo()
{
    if(confirma('Confirma alterar o valor dos encargos para o mês atual?'))
    {
        var val = $j("#encargo_novo_valor").val();
        postProcess('parametros.uc','action=atualizar_encargo&val='+val);
    }
    else
    {
        alert('Operação cancelada.');
    }
}

function s_cub_filter_year()
{
    postProcess('cub.sinduscon.uc','action=filter_cub&y='+$j("#filter_cub_ano").val());    
}

function visualizarImpressao(){
	if (navigator.appName == 'Netscape')
	{
		window.print();	 
	}
	else
	{
		var OLECMDID = 7;
			var PROMPT = 1; // 2 DONTPROMPTUSER
		var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
		document.body.innerHTML+=WebBrowser;
		WebBrowser1.ExecWB(7, 1);
		WebBrowser1.outerHTML = "";
	}	
}

function mudar_unidade(tipo)
{
   if(tipo == 0)
   {
        if($('#cimento').val() == 'cimento_50kg')
        {
            $('#code_4').text('50 kg');
        }
        else
        {
            $('#code_4').text('kg');
        }
   }
   else if(tipo == 1)
   {
        if($('#encargos').val() == 'com')
        {
            $('#code_26').text('h c/e');
            $('#code_27').text('h c/e');
        }
        else
        {
            $('#code_26').text('h s/e');
            $('#code_27').text('h s/e');
        }
   } 
}

function mudar_unidade_fora_norma(tipo)
{
   if(tipo == 0)
   {
        if($('#cimento').val() == 'cimento_50kg')
        {
            $('#code_4').text('50 kg');
        }
        else
        {
            $('#code_4').text('kg');
        }
   }
   else if(tipo == 1)
   {
        if($('#encargos').val() == 'com')
        {
			$("span.unidade_produto_encargo").text('h c/e');
        }
        else
        {
           	$("span.unidade_produto_encargo").text('h s/e');
        }
   } 
}

function mudar_unidade_com_ordenacao(tipo)
{
   if(tipo == 0)
   {
        if($('#cimento').val() == 'cimento_50kg')
        {
            $('#code_4').text('50 kg');
        }
        else
        {
            $('#code_4').text('kg');
        }
   }
   else if(tipo == 1)
   {
        if($('#encargos').val() == 'com')
        {
            $("div.unidade_produto_encargo").text('h c/e');
        }
        else
        {
           	$("div.unidade_produto_encargo").text('h s/e');
        }
   } 
   $j('#data_table span').html('-&nbsp;&nbsp;&nbsp;&nbsp;');
}



function p_bloquear_envio_planilhas()
{
    var p = $("#bloqueio").val();
    postProcess('parametros.uc','action=bloqueio&p='+p);
}

function select_sinduscon_uf()
{
    var uf = $("#uf").val();
    postProcess('util.uc','action=change_uf_combo&uf='+uf);
}

function change_sinduscon()
{
    var sid = $("#s_id").val();
    if(sid >0)
    {
        postProcess('util.uc','action=change_sinduscon&sid='+sid);
    }
}


/*
 * CUB BR - Funcao para filtrar por periodo as planilhas do cub para publicar o cub Brasil
 */
function cub_br_filter()
{
    var yid = $("#sel_ano").val();
    var mid = $("#sel_mes").val();
    postProcess('cub.uc','action=filter_cub&yid='+yid+'&mid='+mid);
}

function show_hide_dados()
{
    $('#dados_log').toggle();
}

function selecionar_dados_uf()
{
    var uf = $("#select_uf").val();
    postProcess('util.uc','action=dados_uf&uf='+uf);
}


function p_report(id)
{
    var sid = $("#s_id").val(); 
    if(sid == -1)
    {
       alert("Favor selecionar um Sinduscon para o relatório.");
       return;
    }
    else
    {
        var o_win = window.open("p_reports.php?sid="+sid+"&id="+id,null, "");
    }
}

function p_report_br(id)
{
   var o_win = window.open("p_reports_br.php?id="+id,null, "");
}
function report_br(id)
{
    postProcess(reports+'_br.uc','id='+id);
}
//-------------------
//internet
//-------------------
function show(id)
{
    $("#"+id).toggle();
}







function s_edit_user_show(id)
{
	$("#name").val($("#name_" + id).html());
	$("#email").val($("#email_" + id).html());
	$("#uid").val(id);
	ui_show();
}

function s_edit_user_save()
{
	var n = escape($("#name").val());
	var e = escape($("#email").val());
	var i = $("#uid").val();
	
	if(n == ''|| e == '')
	{
		alert("Valores inválidos");
		return;
	}
	
	postProcess('users.sinduscon.uc','action=s_edit_user_save&n='+n+'&i='+i+'&e='+e);
}


function c_edit_show(id)
{
	$("#contact").val($("#contact_" + id).html());
	$("#tel").val($("#tel_" + id).html());
	$("#cid").val(id);
	ui_show();
}

function s_edit_constructor_save()
{
	var n = escape($("#contact").val());
	var t = escape($("#tel").val());
	var i = $("#cid").val();
	
	if(n == ''|| t == '')
	{
		alert("Valores inválidos");
		return;
	}
	postProcess('constructors.uc','action=c_edit_save&n='+n+'&i='+i+'&t='+t);
};function rep_016()
{
    var yid = $j("#sel_ano").val();
    var pat = $j("#sel_pattern").val();
    postReport('rep_016', 'action=get_data&yid='+yid+'&pat='+pat);
}

function rep_014(year)
{
	if(year == null)
	{
		year = $j("#year").val();
	}
	postReport('rep_014', 'action=atualizar_encargo_tabela&yid='+year);
}
function rep_007()
{
    var yid = $j("#sel_ano").val();
    var prod = $j("#sel_prod").val();
	var cim = $j("#cimento").val();
    var enc = $j("#encargos").val();
    postReport('rep_007', 'action=get_data&yid='+yid+'&prod='+prod+'&cim='+cim+'&enc='+enc);
}
function rep_012()
{
    var yid = $j("#sel_ano").val();
	var pcid = $j("#sel_class").val();
    postReport('rep_012', 'action=get_data&yid='+yid+'&pcid='+pcid);
}

function rep_006()
{
    $j('#centralizer > span').each(function(i){this.innerHTML = '-';});
	var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReport('rep_006', 'action=get_data&yid='+yid+'&mid='+mid);
}

function rep_009()
{
    $j('#centralizer > span').each(function(i){this.innerHTML = '-';});
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReport('rep_009', 'action=get_data&yid='+yid+'&mid='+mid);
}

function rep_010()
{
    $j('#centralizer > span').each(function(i){this.innerHTML = '-';});
	var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
	var cim = $j("#cimento").val();
    var enc = $j("#encargos").val();
    postReport('rep_010', 'action=get_data&yid='+yid+'&mid='+mid+'&cim='+cim+'&enc='+enc);
}

function rep_004a()
{
	var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
	var cim = $j("#cimento").val();
    var enc = $j("#encargos").val();
	var tip = $j("#tipo_relatorio").attr("checked");
    postReport('rep_004', 'action=get_data&yid='+yid+'&mid='+mid+'&cim='+cim+'&enc='+enc+'&tip='+tip);
}

function rep_005a()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
	var cim = $j("#cimento").val();
    var enc = $j("#encargos").val();
	var tip = $j("#tipo_relatorio").attr("checked");
    postReport('rep_005', 'action=get_data&yid='+yid+'&mid='+mid+'&cim='+cim+'&enc='+enc+'&tip='+tip);
}

function rep_001a()
{
	var cim = $j("#cimento").val();
	var enc = $j("#encargos").val();
	var pid = $j("#sel_prod").val();
	var yid = $j("#sel_ano").val();
	var mid = $j("#sel_mes").val();
	postReport('rep_001', 'action=get_data&yid='+yid+'&mid='+mid+'&pid='+pid+'&cim='+cim+'&enc='+enc);
}

function r(id, a, b, c, d)
{
	return rep_001b(id, a, b, c, d);
}

function rep_001b(id, a, b, c, d)
{
	if(a == '0.00' || a == '0' || a == '-')	{ return; }
	
	if(b == '0.00' || b == '0' || b == '-')	{ b = '-'; }
	else { b = formatPercent((((a/b)-1)*100)); }
	if(b == '-0,00%'){b = '0,00%'; }
	
	if(c == '0.00' || c == '0' || c == '-') { c = '-'; }
	else { c = formatPercent((((a/c)-1)*100)); }
    if(c == '-0,00%'){ c = '0,00%'; }

    if(d == '0.00' || d == '0' || d == '-') { d = '-'; }
	else { d = formatPercent((((a/d)-1)*100)); }
    if(d == '-0,00%'){d = '0,00%'; } 
	
	rep_001c(id, formatNumber(a), b, c, d);
}
function rc(id, a, b, c, d)
{
	rep_001c(id, a, b, c, d);
}
function rep_001c(id, a, b, c, d)
{
    if(a == 0){a = '-&nbsp;&nbsp;&nbsp;';}
	if(b == 0){b = '-&nbsp;&nbsp;&nbsp;&nbsp;';}
	if(c == 0){c = '-&nbsp;&nbsp;&nbsp;&nbsp;';}
	if(d == 0){d = '-&nbsp;&nbsp;&nbsp;&nbsp;';}
	$j('#e_atu_'+id).html(a);
	$j('#e_mes_'+id).html(b);
	$j('#e_ano_'+id).html(c);
	$j('#e_m12_'+id).html(d);
}

//****************************************//
function postReport(url, postData)
{
	var sid = $j("#s_id").val(); 
    if(sid == -1)
    {
       alert("Favor selecionar um Sinduscon para o relatório.");
    }
    else
    {
	    postData = postData + '&sid='+ sid;
		postData = postData + '&rep='+ url;
		postProcess('reports/'+url+'.uc', postData);
    } 
}

function rep_003a()
{
	$j('#centralizer > span').each(function(i){this.innerHTML = '-';});
    var paid = $j("#sel_pattern").val();
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReport('rep_003', 'action=get_data&yid='+yid+'&mid='+mid+'&paid='+paid);
}
function r3(id, coef, val, cust, perce)
{
	$j('#c_'+id).html(coef+"&nbsp;&nbsp;&nbsp;");
	$j('#m_'+id).html(val+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
	$j('#p_'+id).html(cust+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
	$j('#pp_'+id).html(perce+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
}

function rep_002a()
{
    $j('#data_table span').html('-&nbsp;&nbsp;&nbsp;&nbsp;');
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    var cim = $j("#cimento").val();
    var enc = $j("#encargos").val();
	 
    postReport('rep_002', 'action=get_data&yid='+yid+'&mid='+mid+'&cim='+cim+'&enc='+enc);
}


function rep_008()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReport('rep_008', 'action=get_data&yid='+yid+'&mid='+mid);
}

function rep_019()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReport('rep_019', 'action=get_data&yid='+yid+'&mid='+mid);
}

function rep_020()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReport('rep_020', 'action=get_data&yid='+yid+'&mid='+mid);
}

function postReportExcel(url, postData)
{
    
	var sid = $j("#s_id").val(); 
    if(sid == -1)
    {
       alert("Favor selecionar um Sinduscon para o relatório.");
    }
    else
    {
        postData = postData + '&sid='+ sid;
		postData = '&url='          + encodeURIComponent('intranet/reports/' + url+'.excel.uc') +
	               '&rep='          + url + 
				   '&uniqueId='     + (new Date()).getTime() + 
	               '&'              + postData;
	
	    window.location = 'controller.php?'+postData+'&format=excel';
    } 
}
/*****************************************************
 * Cub Brasil Reports
 *****************************************************/

function rep_br_21()
{
	var yid = $j("#sel_ano").val();
	var mid = $j("#sel_mes").val();
	postReport('cub_brasil_21', 'action=get_data&yid='+yid+'&mid='+mid);
}


function rep_br_22()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    
    postReport('cub_brasil_22', 'action=get_data&yid='+yid+'&mid='+mid);
}

function rep_br_42()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    
    postReport('cub_brasil_intranet_42', 'action=get_data&yid='+yid+'&mid='+mid);
}

function rep_br_23()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    var cid = $j("#sel_componente").val();
    
    postReport('cub_brasil_23', 'action=get_data&yid='+yid+'&mid='+mid+'&cid='+cid);
}

function rep_br_43()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    var cid = $j("#sel_componente").val();
    
    postReport('cub_brasil_intranet_43', 'action=get_data&yid='+yid+'&mid='+mid+'&cid='+cid);
}

function rep_br_24()
{
    var yid = $j("#sel_ano").val();
    postReport('cub_brasil_24', 'action=get_data&yid='+yid);
}


function rep_br_44()
{
    var yid = $j("#sel_ano").val();
    postReport('cub_brasil_intranet_44', 'action=get_data&yid='+yid);
}

function rep_br_25()
{
    var yid = $j("#sel_ano").val();
    postReport('cub_brasil_25', 'action=get_data&yid='+yid);
}

function rep_br_45()
{
    var yid = $j("#sel_ano").val();
    postReport('cub_brasil_intranet_45', 'action=get_data&yid='+yid);
}

function rep_br_27()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReport('cub_brasil_27', 'action=get_data&yid='+yid+'&mid='+mid);
}

function rep_br_47()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReport('cub_brasil_intranet_47', 'action=get_data&yid='+yid+'&mid='+mid);
}

function rep_br_26()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    
    postReport('cub_brasil_26', 'action=get_data&yid='+yid+'&mid='+mid);
}

function rep_br_46()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    
    postReport('cub_brasil_intranet_46', 'action=get_data&yid='+yid+'&mid='+mid);
}

function rep_br_28()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    
    postReport('cub_brasil_28', 'action=get_data&yid='+yid+'&mid='+mid);
}

function rep_br_29()
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    
    postReport('cub_brasil_29', 'action=get_data&yid='+yid+'&mid='+mid);
}


function rep_038()
{
	var yid = $j("#sel_ano").val();
	var mid = $j("#sel_mes").val();
	var vid = $j("#sel_var").val();
	
	postReport('tabela_cub_uf', 'action=get_data&yid='+yid+'&mid='+mid+'&vid='+vid);
}
/******************************************
 * EXCEL
 *****************************************/

function rep_002excel(sid)
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    var cim = $j("#cimento").val();
    var enc = $j("#encargos").val();
    postReportExcel('rep_002', 'action=get_data&yid='+yid+'&mid='+mid+'&cim='+cim+'&enc='+enc+'&sid='+sid);
}

function rep_003excel(sid)
{
    var paid = $j("#sel_pattern").val();
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReportExcel('rep_003', 'action=get_data&yid='+yid+'&mid='+mid+'&paid='+paid+'&sid='+sid);
}

function rep_004excel(sid)
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    var cim = $j("#cimento").val();
    var enc = $j("#encargos").val();
    postReportExcel('rep_004', 'action=get_data&yid='+yid+'&mid='+mid+'&cim='+cim+'&enc='+enc+'&sid='+sid);
}

function rep_005excel(sid)
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    var cim = $j("#cimento").val();
    var enc = $j("#encargos").val();
    postReportExcel('rep_005', 'action=get_data&yid='+yid+'&mid='+mid+'&cim='+cim+'&enc='+enc+'&sid='+sid);
}

function rep_006excel(sid)
{
	var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReportExcel('rep_006', 'action=get_data&yid='+yid+'&mid='+mid+'&sid='+sid);
}

function rep_007excel(sid)
{
    var yid = $j("#sel_ano").val();
    var prod = $j("#sel_prod").val();
    var cim = $j("#cimento").val();
    var enc = $j("#encargos").val();
    postReportExcel('rep_007', 'action=get_data&yid='+yid+'&prod='+prod+'&cim='+cim+'&enc='+enc);
}
function rep_008excel(sid)
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReportExcel('rep_008', 'action=get_data&yid='+yid+'&mid='+mid+'&sid='+sid);
}

function rep_009excel(sid)
{
	var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReportExcel('rep_009', 'action=get_data&yid='+yid+'&mid='+mid+'&sid='+sid);
}
function rep_010excel(sid)
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    var cim = $j("#cimento").val();
    var enc = $j("#encargos").val();
    postReportExcel('rep_010', 'action=get_data&yid='+yid+'&mid='+mid+'&cim='+cim+'&enc='+enc+'&sid='+sid);
}

function rep_012excel(sid)
{
    var yid = $j("#sel_ano").val();
    var pcid = $j("#sel_class").val();
    postReportExcel('rep_012', 'action=get_data&yid='+yid+'&pcid='+pcid+'&sid='+sid);
}

function rep_014excel(sid)
{
    var yid = $j("#year").val();
    postReportExcel('rep_014', 'action=get_data&yid='+yid+'&sid='+sid);
}

function rep_015excel(sid)
{
    postReportExcel('rep_015', 'action=get_data'+'&sid='+sid);
}

function rep_019excel(sid)
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReportExcel('rep_019', 'action=get_data&yid='+yid+'&mid='+mid+'&sid='+sid);
}

function rep_016excel(sid)
{
    var yid = $j("#sel_ano").val();
    var pmid = $j("#sel_pattern").val();
    postReportExcel('rep_016', 'action=get_data&yid='+yid+'&pmid='+pmid+'&sid='+sid);
}


function rep_020excel(sid)
{
    var yid = $j("#sel_ano").val();
    var mid = $j("#sel_mes").val();
    postReportExcel('rep_020', 'action=get_data&yid='+yid+'&mid='+mid+'&sid='+sid);
};/*
 *
 * TableSorter - Client-side table sorting with ease!
 *
 * Copyright (c) 2006 Christian Bach (http://motherrussia.polyester.se)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * jQueryDate: 
 * jQueryAuthor: Christian jQuery
 *
 */
(function($) {

	$j.fn.tableSorter = function(o) {
	
		var defaults =  {
			sortDir: 0,
			sortColumn: null,
			sortClassAsc: 'ascending',
			sortClassDesc: 'descending',
			headerClass: null,
			stripingRowClass: false,
			highlightClass: false,
			rowLimit: 0,
			minRowsForWaitingMsg: 0,
			disableHeader: -1,
			stripeRowsOnStartUp: false,
			columnParser: false,
			rowHighlightClass: false,
			useCache: true,
			debug: false,
			textExtraction: 'simple',
			textExtractionCustom: false,
			textExtractionType: false,
			bind: true,
			addHeaderLink: false,
			lockedSortDir: false,
			enableResize: false,
			dateFormat: 'mm/dd/yyyy' /** us default, uk dd/mm/yyyy */
		};
	 
		return this.each(function(){
			
			/** merge default with custom options */
			$j.extend(defaults, o);
	
			/** Private vars */
			var COLUMN_DATA;			/** array for storing columns */
			var COLUMN_CACHE;			/** array for storing sort caches.*/
			var COLUMN_INDEX;				/** int for storing current cell index */
			var COLUMN_SORTER_CACHE = [];	/** array for sorter parser cache */
			var COLUMN_CELL;				/** stores the current cell object */
			var COLUMN_DIR;					/** stores the current soring direction */
			var COLUMN_HEADER_LENGTH;		/** stores the columns header length */
			var COLUMN_ROW_LENGTH;
			var ROW_LAST_HIGHLIGHT_OBJ = false;
			var COLUMN_LAST_INDEX = -1;
			var COLUMN_LAST_DIR = defaults.sortDir;
			
			/** table object holder.*/
			var oTable = this;
	
			if(defaults.stripeRowsOnStartUp && defaults.stripingRowClass) {
				$j.tableSorter.utils.stripeRows(defaults,oTable);
			}
			
			/** bind events to the tablesorter element */
			$(this).bind("resort",doSorting);
			
			$(this).bind("flushCache",function(event) {
				COLUMN_CACHE = [];
			});
			
			$(this).bind("updateColumnData",buildColumnDataIndex);
			
			/** Store length of table rows. */
			var tableRowLength = (oTable.tBodies[0] && oTable.tBodies[0].rows.length-1) || 0;
	
			/** Index column data. */
			buildColumnDataIndex();
			
			/** when done, build headers. */
			buildColumnHeaders();
	
			function buildColumnHeaders() {
				var oFirstTableRow = oTable.rows[0];
				var oDataSampleRow = oTable.rows[1];
				/** store column length */
				COLUMN_HEADER_LENGTH = oFirstTableRow.cells.length;
				/** loop column headers */
				for( var i=0; i < COLUMN_HEADER_LENGTH; i++ ) {
					var oCell = oFirstTableRow.cells[i];
	
					if(oDataSampleRow && !$j.tableSorter.utils.isHeaderDisabled(defaults,oCell,defaults.disableHeader,i)) {
						/** get current cell from columns headers */
						var oCellValue = $j.tableSorter.utils.getElementText(defaults,oDataSampleRow.cells[i],'columns',i);
						/** check for default column. */
						if(typeof(defaults.sortColumn) == "string") {
							if(defaults.sortColumn.toLowerCase() == $j.tableSorter.utils.getElementText(defaults,oCell,'header',i).toLowerCase()) {
								defaults.sortColumn = i;
							}
						}
	
						/** get sorting method for column. */
						COLUMN_SORTER_CACHE[i] = $j.tableSorter.analyzer.analyseString(defaults,oCellValue);
						
						/** if we have a column parser, set it manual. */
						if(defaults.columnParser) {
							var a = defaults.columnParser;
							var l = a.length;
							for(var j=0; j < l; j++) {
								if(i == a[j][0]) {
									COLUMN_SORTER_CACHE[i] = $j.tableSorter.analyzer.getById(a[j][1]);
									continue;
								}
							}
						}
	
						if(defaults.headerClass) {
							$(oCell).addClass(defaults.headerClass);
						}
						if(defaults.addHeaderLink) {
							$(oCell).wrapInner({element: '<a href="#">', name: 'a', className: 'sorter'});
	
							$(".sorter",oCell).click(function(e) {
								sortOnColumn( $(this).parent(), ((defaults.lockedSortDir) ? defaults.lockedSortDir : $(this).parent()[0].count++) % 2, $(this).parent()[0].index );
								return false;
							});
						} else {
							$(oCell).click(function(e) {
								sortOnColumn( $(this), ((defaults.lockedSortDir) ? defaults.lockedSortDir : $(this)[0].count++) % 2, $(this)[0].index );
								return false;
							});
						}
						oCell.index = i;
						oCell.count = 0;
					}
				}
				/** comming feature. */
				if(defaults.enableResize) {
					addColGroup(oFirstTableRow);
				}
				/** if we have a init sorting, fire it! */
				if(defaults.sortColumn != null) {
					$(oFirstTableRow.cells[defaults.sortColumn]).trigger("click");
				}
	
				if(defaults.rowHighlightClass) {
					$("> tbody:first/tr",oTable).click(function() {
						if(ROW_LAST_HIGHLIGHT_OBJ) {
							ROW_LAST_HIGHLIGHT_OBJ.removeClass(defaults.rowHighlightClass);
						}
						ROW_LAST_HIGHLIGHT_OBJ = $(this).addClass(defaults.rowHighlightClass);
					});
				}
			}
			/** break out and put i $j.tableSorter? */
			function buildColumnDataIndex() {
				/** make colum data. */
				COLUMN_DATA = [];
				COLUMN_CACHE = [];
				COLUMN_ROW_LENGTH = (oTable.tBodies[0] && oTable.tBodies[0].rows.length) || 0;
				var l = COLUMN_ROW_LENGTH;
				for (var i=0;i < l; i++) {
					/** Add the table data to main data array */
					COLUMN_DATA.push(oTable.tBodies[0].rows[i]);
				}
			}
				
			function addColGroup(columnsHeader) {
				var oSampleTableRow = oTable.rows[1];
				/** adjust header to the sample rows */
				for(var i=0; i < COLUMN_HEADER_LENGTH; i++) {
					if(oSampleTableRow && oSampleTableRow.cells[i])
						$(columnsHeader.cells[i]).css("width",oSampleTableRow.cells[i].clientWidth + "px");
				}
			}
			
			function sortOnColumn(oCell,dir,index) {
				/** trigger event sort start. */
				if(tableRowLength > defaults.minRowsForWaitingMsg) {
					$(oTable).trigger( "sortStart");
				}
				/** define globals for current sorting. */
				COLUMN_INDEX = index;
				COLUMN_CELL = oCell;
				COLUMN_DIR = dir;
				/** clear all classes, need to be optimized. */
				$("thead th",oTable).removeClass(defaults.sortClassAsc).removeClass(defaults.sortClassDesc);
				/**add active class and append image. */
				$(COLUMN_CELL).addClass((dir % 2 ? defaults.sortClassAsc : defaults.sortClassDesc));
				/** if this is fired, with a straight call, sortStart / Stop would never be fired. */
				setTimeout(doSorting,0);
			}
			
			function doSorting() {
				/** added check to see if COLUMN_INDEX is set */
				if(COLUMN_INDEX >= 0) {
					/** array for storing sorted data. */
					var columns;
					/** sorting exist in cache, get it. */
					if($j.tableSorter.cache.exist(COLUMN_CACHE,COLUMN_INDEX) && defaults.useCache) {
						/** get from cache */
						var cache = $j.tableSorter.cache.get(COLUMN_CACHE,COLUMN_INDEX);
						/** figure out the way to sort. */
						if(cache.dir == COLUMN_DIR) {
							columns = cache.data;
							cache.dir = COLUMN_DIR;
						} else {
							columns = cache.data.reverse();
							cache.dir = COLUMN_DIR;
						}
					/** sort and cache */
					} else {
						/** return flat data, and then sort it. */
						var flatData = $j.tableSorter.data.flatten(defaults,COLUMN_DATA,COLUMN_SORTER_CACHE,COLUMN_INDEX);
						/** do sorting, only onces per column. */
						flatData.sort(COLUMN_SORTER_CACHE[COLUMN_INDEX].sorter);
						/** if we have a sortDir, reverse the damn thing. */
						if(COLUMN_LAST_DIR != COLUMN_DIR) {
							flatData.reverse();
						}
						/** rebuild data from flat. */
						columns = $j.tableSorter.data.rebuild(COLUMN_DATA,flatData,COLUMN_INDEX,COLUMN_LAST_INDEX);
						/** append to table cache. */
						$j.tableSorter.cache.add(COLUMN_CACHE,COLUMN_INDEX,COLUMN_DIR,columns);
						/** good practise */
						flatData = null;
					}
					/** append to table > tbody */
					$j.tableSorter.utils.appendToTable(defaults,oTable,columns,COLUMN_INDEX,COLUMN_LAST_INDEX);
					/** good practise i guess */
					columns = null;
					/** trigger stop event. */
					if(tableRowLength > defaults.minRowsForWaitingMsg) {
						$(oTable).trigger("sortStop",[COLUMN_INDEX]);
					}
					COLUMN_LAST_INDEX = COLUMN_INDEX;
				}
			}
		});
	};
	$j.fn.sortStart = function(fn) {
		return this.bind("sortStart",fn);
	};
	$j.fn.sortReload = function(fn) {
		return this.bind("sortStart",fn);
	};
	$j.fn.sortStop = function(fn) {
		return this.bind("sortStop",fn);
	};
	$j.tableSorter = {
		params: {},
		/** cache functions, okey for now. */
		cache: {
			add: function(cache,index,dir,data) {
				var oCache = {};
				oCache.dir = dir;
				oCache.data = data;
				cache[index] = oCache;
			},
			get: function (cache,index) {
				return cache[index];
			},
			exist: function(cache,index) {
				var oCache = cache[index];
				if(!oCache) {
					return false
				} else {
					return true
				}
			},
			clear: function(cache) {
				cache = [];
			}
		},
		data: {
			flatten: function(defaults,columnData,columnCache,columnIndex) {
				var flatData = [];
				var l = columnData.length;
				for (var i=0;i < l; i++) {
					flatData.push([i,columnCache[columnIndex].format($j.tableSorter.utils.getElementText(defaults,columnData[i].cells[columnIndex],'columns',columnIndex),defaults)]);
				}
				return flatData;
			},
			rebuild: function(columnData,flatData,columnIndex,columnLastIndex) {
				var l = flatData.length;
				var sortedData = [];
				for (var i=0;i < l; i++) {
					sortedData.push(columnData[flatData[i][0]]);
				}
				return sortedData;
			}
		},
		sorters: {},
		parsers: {},
		analyzer: {
			analyzers: [],
			add: function(analyzer) {
				this.analyzers.push(analyzer);
			},
			add_to_front: function(analyzer) {
				this.analyzers.unshift(analyzer);
			},
			analyseString: function(defaults,s) {
				/** set defaults params. */
				var found = false;
				var analyzer = $j.tableSorter.parsers.generic;
				var list = this.analyzers;
				$j.each(list, function(i) {
					if(!found) {
						if(list[i].is(s)) {
							found = true;
							analyzer = list[i];
						}
					}
				});
				return analyzer;
				
			},
			getById: function(s) {
				var list = this.analyzers;
				var analyzer = $j.tableSorter.parsers.generic;
				$j.each(list, function(i) {
					if(list[i].id == s) {
						analyzer = list[i];
					}
				});
				return analyzer;
			}
		},
		utils: {
			getElementText: function(defaults,o,type,index) {
				if(!o) return "";
				var elementText = "";
				if(type == 'header') {
					elementText = $(o).text();
				} else if(type == 'columns') {
					if(defaults.textExtractionCustom && typeof(defaults.textExtractionCustom[index]) == "function") {
						elementText = defaults.textExtractionCustom[index](o);
					} else {
						if(defaults.textExtraction == 'simple') {
							if(typeof(defaults.textExtractionType) == "object") {
								var d = defaults.textExtractionType;
								$j.each(d,function(i) {
									var val = o[d[i]];		
									if(val && val.length > 0) {
										elementText = val;
									}
								});
							} else {
								if(o.childNodes[0] && o.childNodes[0].hasChildNodes()) {
									elementText = o.childNodes[0].innerHTML;
								} else {
									elementText = o.innerHTML;
								}
							}
						} else if(defaults.textExtraction == 'complex') {
							// make a jquery object, this will take forever with large tables.
							elementText = $(o).text();
						}
					}
				}
				return elementText;
			},
			formatFloat: function(s) {
				var i = parseFloat(s);
				return (isNaN(i)) ? -1000000000 : i;
			},
			appendToTable: function(defaults,o,c,index,lastIndex) {
				var l = c.length;
				$("> tbody:first",o).empty().append(c);
				/** jquery way, need to be benched mark! */
				if(defaults.stripingRowClass) {
					/** remove old! */
					$("> tbody:first/tr",o).removeClass(defaults.stripingRowClass[0]).removeClass(defaults.stripingRowClass[1]);
					/** add new! */
					$j.tableSorter.utils.stripeRows(defaults,o);
				}
				if(defaults.highlightClass) {
					$j.tableSorter.utils.highlightColumn(defaults,o,index,lastIndex);
				}
				
				/** empty object, good practice! */
				c=null;
			},
			highlightColumn : function(defaults,o,index, lastIndex) {
				$("> tbody:first/tr", o).find("td:eq(" + lastIndex+ ")").removeClass(defaults.highlightClass);
				$("> tbody:first/tr", o).find("td:eq(" + index + ")").addClass(defaults.highlightClass);
			},
			stripeRows: function(defaults,o) {
				$("> tbody:first/tr:visible:even",o).addClass(defaults.stripingRowClass[0]);
				$("> tbody:first/tr:visible:odd",o).addClass(defaults.stripingRowClass[1]);
			},
			isHeaderDisabled: function(defaults,o,arg,index) {
				if(typeof(arg) == "number") {
					return (arg == index)? true : false;
				} else if(typeof(arg) == "string") {
					return (arg.toLowerCase() == $j.tableSorter.utils.getElementText(defaults,o,'header',index).toLowerCase()) ? true : false;
				} else if(arg.parentNode) {
	       			return (o == arg) ? true : false
				} else if(typeof(arg) == "object") {
					var l = arg.length;
					if(!this.lastFound) { this.lastFound = -1; }
					for(var i=0; i < l; i++) {
						var val = $j.tableSorter.utils.isHeaderDisabled(defaults,o,arg[i],index);
						if(this.lastFound != i && val) {
							this.lastFound = i;
							return val;
						}
					}
				} else {
					return false
				}
			}
		},
		sorters: {
			generic: function(a,b) {
				return ((a[1] < b[1]) ? -1 : ((a[1] > b[1]) ? 1 : 0));
	 		},
	 		numeric: function(a,b) {
				return a[1]-b[1];
			}
		}
	};
	$j.tableSorter.parsers.generic = {
		id: 'generic',
		is: function(s) {
			return true;
		},
		format: function(s) {
			return jQuery.trim(s.toLowerCase());
		},
		sorter: $j.tableSorter.sorters.generic
	};
	$j.tableSorter.parsers.currency = {
		id: 'currency',
		is: function(s) {
			return s.match(new RegExp(/^[£$?.]/g));
		},
		format: function(s) {
			return $j.tableSorter.utils.formatFloat(s.replace(new RegExp(/[^0-9.]/g),''));
		},
		sorter: $j.tableSorter.sorters.numeric
	};
	$j.tableSorter.parsers.integer = {
		id: 'integer',
		is: function(s) {
			return s.match(new RegExp(/^\d+$/));
		},
		format: function(s) {
			return $j.tableSorter.utils.formatFloat(s);
		},
		sorter: $j.tableSorter.sorters.numeric
	};

	$j.tableSorter.parsers.ipAddress = {
		id: 'ipAddress',
		is: function(s) {
			return s.match(/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/);
		},
		format: function(s) {
			var a = s.split('.');
			var r = '';
			for (var i = 0, item; item = a[i]; i++) {
			   if(item.length == 2) {
					r += '0' + item;
			   } else {
					r += item;
			   }
			}
			return $j.tableSorter.utils.formatFloat(r);
		},
		sorter: $j.tableSorter.sorters.numeric
	};
	$j.tableSorter.parsers.url = {
		id: 'url',
		is: function(s) {
			return s.match(new RegExp(/(https?|ftp|file):\/\//));
		},
		format: function(s) {
			return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//),''));
		},
		sorter: $j.tableSorter.sorters.generic
	};
	$j.tableSorter.parsers.isoDate = {
		id: 'isoDate',
		is: function(s) {
			return s.match(new RegExp(/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/));
		},
		format: function(s) {
			return parseFloat((s != "") ? new Date(s.replace(new RegExp(/-/g),'/')).getTime() : "0");
		},
		sorter: $j.tableSorter.sorters.numeric
	};
	$j.tableSorter.parsers.usLongDate = {
		id: 'usLongDate',
		is: function(s) {
			return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/));
		},
		format: function(s) {
			return $j.tableSorter.utils.formatFloat((new Date(s)).getTime());
		},
		sorter: $j.tableSorter.sorters.numeric
	};
	$j.tableSorter.parsers.shortDate = {
		id: 'shortDate',
		is: function(s) {
			return s.match(new RegExp(/\d{1,2}[\/-]\d{1,2}[\/-]\d{2,4}/));
		},
		format: function(s,defaults) {
			s = s.replace(new RegExp(/-/g),'/');
			if(defaults.dateFormat == "mm/dd/yyyy" || defaults.dateFormat == "mm-dd-yyyy") {
				/** reformat the string in ISO format */
				s = s.replace(new RegExp(/(\d{1,2})[\/-](\d{1,2})[\/-](\d{4})/), '$3/$1/$2');
			} else if(defaults.dateFormat == "dd/mm/yyyy" || defaults.dateFormat == "dd-mm-yyyy") {
				/** reformat the string in ISO format */
				s = s.replace(new RegExp(/(\d{1,2})[\/-](\d{1,2})[\/-](\d{4})/), '$3/$2/$1');
			} else if(defaults.dateFormat == "dd/mm/yy" || defaults.dateFormat == "dd-mm-yy") {
				s = s.replace(new RegExp(/(\d{1,2})[\/-](\d{1,2})[\/-](\d{2})/), '$1/$2/$3');	
			}
			return $j.tableSorter.utils.formatFloat((new Date(s)).getTime());
		},
		sorter: $j.tableSorter.sorters.numeric
	};
	$j.tableSorter.parsers.time = {
	    id: 'time',
	    is: function(s) {
	        return s.toUpperCase().match(new RegExp(/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/));
	    },
	    format: function(s) {
	        return $j.tableSorter.utils.formatFloat((new Date("2000/01/01 " + s)).getTime());
	    },
	    sorter: $j.tableSorter.sorters.numeric
	};


    $j.tableSorter.parsers.floating = {
        id: 'floating',
        is: function(s) {
            return s.match(new RegExp(/^(\+|-)?[0-9]+\.[0-9]+((E|e)(\+|-)?[0-9]+)?$/));
        },
        format: function(s) {
            return $j.tableSorter.utils.formatFloat(s.replace(new RegExp(/,/),''));
        },
        sorter: $j.tableSorter.sorters.numeric
    };

	
	$j.tableSorter.parsers.numeric_comma = {
        id: 'numeric_comma',
        is: function(s) {
			if(s = '-&nbsp;&nbsp;&nbsp;') {return true;}
			s = s.replace(/&nbsp;/g,'');
            log("[numeric_comma1: " + s + "] ->" + s.match(new RegExp(/^(\+|-)?[0-9]+\,[0-9]+?$/)), LOG_DEBUG);
			return s.match(new RegExp(/^(\+|-)?[0-9]+\,[0-9]+?$/));
        },
        format: function(s) {
            var temp = s;
			s = jQuery.trim(s);
			s = s.replace(/&nbsp;/g,'');
			s = s.replace(new RegExp(/\./),'');
			s = s.replace(new RegExp(/,/),'.');
			log("[numeric_comma2: " + temp + "]["+ s +"]", LOG_DEBUG);
			return $j.tableSorter.utils.formatFloat(s);
        },
        sorter: $j.tableSorter.sorters.numeric
    };
	
    $j.tableSorter.parsers.percentual_comma = {
        id: 'percentual_comma',
        is: function(s) {
			if(s = '-&nbsp;&nbsp;&nbsp;&nbsp;') {return true;}
			s = s.replace(/&nbsp;/g,'');
            //log("[percentual_comma1: " + s + "] ->"+s.match(new RegExp(/^(\+|-)?[0-9]+\,[0-9]+\%?$/)), LOG_DEBUG);
            return s.match(new RegExp(/^(\+|-)?[0-9]+\,[0-9]+\%?$/));
        },
        format: function(s) {
			var temp = s;
			s = jQuery.trim(s);
			s = s.replace(/&nbsp;/g,'');
			s = s.replace(new RegExp(/\./),'');
            s = s.replace(new RegExp(/,/),'.');
			s = s.replace(new RegExp(/%/),'');
			//log("[percentual_comma2: " + temp + "]["+ s +"]", LOG_DEBUG);
            return $j.tableSorter.utils.formatFloat(s);
        },
        sorter: $j.tableSorter.sorters.numeric
    };
	
	/** add parsers */
	$j.tableSorter.analyzer.add($j.tableSorter.parsers.numeric_comma);
	$j.tableSorter.analyzer.add($j.tableSorter.parsers.percentual_comma);
	$j.tableSorter.analyzer.add($j.tableSorter.parsers.currency);
	$j.tableSorter.analyzer.add($j.tableSorter.parsers.integer);
	$j.tableSorter.analyzer.add($j.tableSorter.parsers.isoDate);
	$j.tableSorter.analyzer.add($j.tableSorter.parsers.shortDate);
	$j.tableSorter.analyzer.add($j.tableSorter.parsers.usLongDate);
	$j.tableSorter.analyzer.add($j.tableSorter.parsers.ipAddress);
	$j.tableSorter.analyzer.add($j.tableSorter.parsers.url);
	$j.tableSorter.analyzer.add($j.tableSorter.parsers.time);
	$j.tableSorter.analyzer.add($j.tableSorter.parsers.floating);

})(jQuery);
;