pi=Math.PI;e=Math.E;ln2=Math.LN2;ln10=Math.LN10;sqrt2=Math.SQRT2;abs=Math.abs;pow=Math.pow;exp=Math.exp;sqrt=Math.sqrt;ln=Math.log;sin=Math.sin;sen=Math.sin;cos=Math.cos;tan=Math.tan;asin=Math.asin;asen=Math.asin;acos=Math.acos;atan=Math.atan;atan2=Math.atan2;floor=Math.floor;ceil=Math.ceil;random=Math.random;var saved_result=null;function comp_expression(){var form=document.calculator_alg;var expr_orig=remove_acentos(form.expression_input.value);if(easter_egg(expr_orig)){return}try{var expr=prepare_expression(expr_orig);if(is_expression_empty(expr)){return}else{if(!is_expression_safe(expr)){form.expression_result.value="Invalid Symbol";if(expr.indexOf("!")!=-1){form.expression_result.value="Use fact(x) instead of x!"}if(expr.indexOf("^")!=-1){form.expression_result.value="Use pow(x,y) instead of x^y"}saved_result=null;return}else{if(commaMisuse(expr)){form.expression_result.value="Use . instead of , (comma)";saved_result=null;return}else{var result=eval(expr);if(isNaN(result)&&typeof(result)!="string"){form.expression_result.value="Invalid Function Call";saved_result=null;return}saved_result=result;result=roundPadding(result,form.expression_decs.selectedIndex);form.expression_result.value=result;add_refresh_recently(expr_orig)}}}}catch(err){form.expression_result.value="Invalid Syntax";saved_result=null;return}form.expression_input.focus()}var eggs={flamengo:"MERDA",botafogo:"PEQUENO",vasco:"SEGUNDONA",fluminense:"CAMPEAO"};function easter_egg(a){a=a.toLowerCase();if(eggs[a]!=null){document.calculator_alg.expression_result.value=eggs[a];return true}return false}function commaMisuse(c){var a=0,b=[];for(a=0;a<c.length;a++){if(c.charAt(a)=="("){if(gettingInsideFunc(c,a)){b.push("F")}else{b.push("P")}}else{if(c.charAt(a)==")"){b.pop()}else{if(c.charAt(a)==","&&!isInsideFunc(b)){return true}}}}return false}function gettingInsideFunc(c,b){var a=b-1;for(a=b-1;a>=0;a--){if(c.charAt(a)==" "){continue}if(c.charCodeAt(a)>=97&&c.charCodeAt(a)<=122){return true}else{return false}}return false}function isInsideFunc(a){if(a.length==0){return false}if(a[a.length-1]=="F"){return true}return false}function roundPadding(j,g){if(g==5||typeof(j)=="string"){return j}else{if(g==6){var a=new Number(j);return a.toExponential(10)}else{var c=j+"",f=null;if(c.indexOf("e")!=-1){var h=c.split("e");c=h[0];f=h[1]}var c=round(parseFloat(c),g)+"";if(g>0){var b=c.lastIndexOf(".");if(b==-1){c=paddingZeros(c+".",g)}else{c=paddingZeros(c,g-(c.length-b-1))}}if(f!=null){c=c+"e"+f}return c}}}function paddingZeros(c,a){var b=0;for(b=0;b<a;b++){c+="0"}return c}function round(b,a){if(a==null){a=0}b=b*pow(10,a);b=Math.round(b);return b/pow(10,a)}function clear_calc(a){a.expression_input.value="";a.expression_result.value="";saved_result=null;a.expression_input.focus()}function prepare_expression(a){a=a.toLowerCase().replace(/[%]/g,"/100").replace(/mod/g,"%");if(a.indexOf("conv")!=-1){a=prepare_convs(a)}return a}var torepl=null;function remove_acentos(a){var b;if(torepl==null){torepl={};var d=["áàãââéêíóõôúüç\n\r","aaaaaeeiooouuc  "];for(b=0;b<d[0].length;b++){torepl[d[0].charAt(b)]=trim(d[1].charAt(b))}}var f="";for(b=0;b<a.length;b++){var g=torepl[a.charAt(b)];if(g==null){g=a.charAt(b)}f+=g}return f}function calcular_exemplo(b){var a=document.calculator_alg;a.expression_input.value=b;comp_expression();a.expression_input.value+=" "}caex=calcular_exemplo;function adjust_decimals(b){setCookie("DECIMALS",b.expression_decs.selectedIndex+"",365);if(saved_result==null){return}var a=saved_result;a=roundPadding(saved_result,b.expression_decs.selectedIndex);b.expression_result.value=a}var allowed_array=["pv","fv","pmt","nper","rate","radianos","graus","mmc","mdc","combinacao","arranjo","dias","diadasemana","media","mediageo","variancia","desviopadrao","projetadata","conv","permutation","combination","rad","deg","lcm","mcd","days","weekday","mean","geomean","stdev","variance","dateprojection","abs","acos","asin","asen","atan","atan2","cos","exp","log","ln","pow","random","sin","sen","sqrt","tan","round","ceil","floor","gamma","cot","sec","csc","acot","asec","acsc","sinh","cosh","tanh","coth","sech","csch","asinh","acosh","atanh","acoth","asech","acsch","fact","chisq","norm","gauss","erf","studt","fishf","statcom","anorm","agauss","aerf","achisq","astudt","afishf","hex","bin","oct","pi","e","ln10","sqrt2","ln2","+","-","*","/","%","(",")","&","|",","," "];var allowed=null,allowedUnits=null;function is_expression_safe(f){if(allowed==null){allowed=new Object();var a=0;for(;a<allowed_array.length;a++){allowed[allowed_array[a]]="ok"}var c;allowedUnits={};for(c in alluns){if(c!="END"){allowedUnits[c]="ok"}}for(a=0;a<(convtbs.length-1);a++){for(c in convtbs[a]){if(c!="END"&&c!="UNIT"){allowedUnits[c]="ok"}}}}var b=0;var d="",h="";var g=false;for(;b<f.length;b++){d+=f.charAt(b);if(!isNaN(d+"1")){g=true}else{if(g){g=false;d=f.charAt(b);if(allowed[d]=="ok"){h=d;d=""}}else{if(isAllowed(d)||allowed[h+d]=="ok"){if(allowed[h+d]=="ok"){h=h+d}else{h=d}d=""}}}}return(d.length==0||g)}function isAllowed(a){if(a.indexOf("'")==-1){return allowed[a]=="ok"}else{if(a.length>1&&a.indexOf("'")==0&&a.lastIndexOf("'")==(a.length-1)){a=a.replace(/'*/g,"");return allowedUnits[a]=="ok"}}return false}function is_expression_empty(a){return a==null||trim(a).length==0}function trim(a){return a.replace(/^\s+|\s+$/g,"")}String.prototype.endsWith=function(a){return(this.match(a+"$")==a)};function fv(d,a,c,f,b){if(isNaN(f)){f=0}if(isNaN(b)){b=0}return comp_fv(a,d,c,f,b)}function pv(d,a,c,f,b){if(isNaN(f)){f=0}if(isNaN(b)){b=0}return comp_pv(a,d,c,f,b)}function nper(c,b,d,f,a){if(isNaN(f)){f=0}if(isNaN(a)){a=0}return comp_np(c,b,f,d,a)}function pmt(c,a,d,f,b){if(isNaN(f)){f=0}if(isNaN(b)){b=0}return comp_pmt(a,c,f,d,b)}function rate(a,c,d,f,b){if(isNaN(f)){f=0}if(isNaN(b)){b=0}return comp_ir(a,0,c,d,f,b)}function comp_pv(j,g,b,h,a){var d;if(g==0){d=-h-j*b}else{var f=Math.pow(1+g,-j);var c=Math.pow(1+g,j);d=-f*(h+((-1+c)*b*(1+g*a))/g)}return d}function comp_fv(h,f,b,c,a){var g;if(f==0){g=-h*b-c}else{var d=Math.pow(1+f,h);g=-d*c-(((-1+d)*b*(1+f*a))/f)}return g}function comp_fvf(g,f,b,c,a){var d=Math.pow(1+f,g);fv=c*d;return fv}function comp_mir(d,c,a){var b=Math.pow(1+a,1/d);c=b-1;return c}function comp_air(d,c,a){var b=Math.pow(1+c,d);a=b-1;return a}function comp_pmt(h,f,g,c,a){var b=0;if(f==0){if(h!=0){b=-(g+c)/h}}else{var d=Math.pow(1+f,h);b=-(f*(g+(d*c)))/((-1+d)*(1+f*a))}return b}function comp_np(g,d,j,f,c){var h=0;if(g==0){if(d!=0){h=-(j+f)/d}}else{var b=-j*g+d+g*d*c;var a=d+g*f+g*d*c;h=Math.log(b/a)/Math.log(1+g)}return h}function comp_ir(b,g,o,p,d,a){g=0.01;var l=g;var h=400;var v=0;var c=0;var t=0;var n=0;if((d==0)&&(p==0)){l=(o<0)?-1:1}else{var q=0;var f=false;do{var s=0;var r=0;var m=(q==0)?g:-g;var u=m*0.5;if(u==0){u=1}do{m+=u;if(m!=0){v=comp_fv(b,m,o,p,a);t=Math.abs(v-d)}if(s>0){r++;if((Math.abs(v-c)>1e-8)||(t>1e-8)){r=0}if(t>n){u*=-0.5}}c=v;n=t}while((s++<h)&&(r<3));if(s<h){l=m;f=true}}while((q++<2)&&!f);if(!f){alert("Não é possível calcular a taxa para esse conjunto de valores")}}return l}function arranjo(b,a){if(b<a){throw"a funcao arranjo exige n > p"}return fact(b)/fact(b-a)}function combinacao(b,a){return arranjo(b,a)/fact(a)}function radianos(a){return a*Math.PI/180}function graus(a){return a*180/Math.PI}function mdc(){var b=eval_args(arguments);var g=b[0];var f,h,d;for(f=1;f<b.length;f++){h=b[f];while(h!=0){g-=h*Math.floor(g/h);d=h;h=g;g=d}}return g}function mmc(){var b=eval_args(arguments);var d=b[0];var c;for(c=1;c<b.length;c++){d*=b[c]/mdc(d,b[c])}return d}var months=[0,31,59,90,120,151,181,212,243,273,304,334];function leap_yearQ(a){if(a>4&&((a%4==0&&a%100!=0)||a%400==0)){return true}else{return false}}function dias(c,n,j,b,m,h){if(b==null){var g=new Date();b=g.getDate();m=g.getMonth()+1;h=g.getFullYear()}var d=1;if((j*10000+n*100+c)>(h*10000+m*100+b)){var k=j,a=n,f=c;j=h;n=m;c=b;h=k;m=a;b=f;d=-1}var l=365-c-months[n-1];if(leap_yearQ(j)&&l>304){l++}for(i=j/1+1;i<h;i++){l+=365+leap_yearQ(i)}l+=b/1+months[m-1]-365*(j==h);return l*d+""}function days(b,g,d,a,f,c){return dias(g,b,d,f,a,c)}var weekdays=[null,"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function diadasemana(f,a,b){var d=dias(17,5,2009,f,a,b);if(d>=0){return weekdays[(d%7)+1]}else{var c=(d%7)+8;if(c==8){c=1}return weekdays[c]}}function weekday(a,c,b){return diadasemana(c,a,b)}function projetadata(a,f,b,c){var d=new Date();d.setHours(0);d.setMinutes(0);d.setSeconds(1);if(f!=null){d.setFullYear(c);d.setMonth(b-1);d.setDate(f)}d.setTime(d.getTime()+a*24*3600*1000);return d.toDateString()}function dateprojection(a,b,d,c){return projetadata(a,d,b,c)}function media(){var b=eval_args(arguments);var d=0;var c=0;for(;c<b.length;c++){d+=b[c]}return d/b.length}function mediageo(){var c=eval_args(arguments);var b=1;var d=0;for(;d<c.length;d++){b*=c[d]}return pow(b,1/c.length)}function variance(){var c=eval_args(arguments);var d=0,f=0,b=0,g=c.length;for(d=0;d<g;d++){f=f+c[d];b=b+(c[d]*c[d])}return(b-((f*f)/g))/g}function eval_args(a){if(a.length==1&&isNaN(a[0])){a=a[0]}return a}function stdev(){return sqrt(variance(arguments))}function log(c,a){if(a==null){a=10}return ln(c)/ln(a)}permutation=arranjo;combination=combinacao;rad=radianos;deg=graus;mcd=mdc;lcm=mmc;mean=media;geomean=mediageo;var Pi=Math.PI;var PiD2=Pi/2;var PiD4=Pi/4;var Pi2=2*Pi;var e10=exp(0.1);function fact(b){if(b==0|b==1){return 1}if(b<0){return fact(b+1)/(b+1)}if(b>1){return b*fact(b-1)}if(b<0.5){a=b}else{a=1-b}var a=1/(1+a*(0.577215664819072+a*(-0.655878067489187+a*(-0.042002698827786+a*(0.1665389907228+a*(-0.042197630554869+a*(-0.009634403818022+a*(0.007285315490429+a*(-0.001331461501875)))))))));if(b>0.5){a=b*(1-b)*Pi/(a*sin(Pi*b))}return a}function gamma(a){return fact(a-1)}function cot(a){return Math.cos(a)/Math.sin(a)}function sec(a){return 1/Math.cos(a)}function csc(a){return 1/Math.sin(a)}function acot(a){return atan(1/a)}function asec(a){return acos(1/a)}function acsc(a){return asin(1/a)}function sinh(a){return(Math.exp(a)-Math.exp(-a))/2}function cosh(a){return(Math.exp(a)+Math.exp(-a))/2}function tanh(a){return sinh(a)/cosh(a)}function coth(a){return 1/tanh(a)}function sech(a){return 1/cosh(a)}function csch(a){return 1/sinh(a)}function asinh(a){return Math.log(a+Math.sqrt(a*a+1))}function acosh(a){return Math.log(a+Math.sqrt(a*a-1))}function atanh(a){return 0.5*Math.log((1+a)/(1-a))}function acoth(a){return 0.5*Math.log((a+1)/(a-1))}function asech(a){return Math.log(1/a+Math.sqrt(1/(a*a)+1))}function acsch(a){return Math.log(1/a+Math.sqrt(1/(a*a)-1))}function chisq(b,j){if(b>1000|j>1000){var g=norm((pow(b/j,1/3)+2/(9*j)-1)/sqrt(2/(9*j)))/2;if(b>j){return g}return 1-g}var h=Math.exp(-0.5*b);if((j%2)==1){h=h*Math.sqrt(2*b/Pi)}var d=j;while(d>=2){h=h*b/d;d=d-2}var f=h;var c=j;while(f>1e-15*h){c=c+2;f=f*b/c;h=h+f}return 1-h}function norm(b){var a=b*b;if(abs(b)>7){return(1-1/a+3/(a*a))*Exp(-a/2)/(abs(b)*sqrt(PiD2))}else{return chisq(a,1)}}function gauss(a){return((a<0)?((a<-10)?0:chisq(a*a,1)/2):((a>10)?1:1-chisq(a*a,1)/2))}function erf(a){return((a<0)?(2*gauss(sqrt(2)*a)-1):(1-2*gauss(-sqrt(2)*a)))}function studt(b,g){b=Math.abs(b);var a=b/Math.sqrt(g);var d=Math.atan(a);if(g==1){return 1-d/PiD2}var f=Math.sin(d);var c=Math.cos(d);if((g%2)==1){return 1-(d+f*c*StatCom(c*c,2,g-3,-1))/PiD2}else{return 1-f*statcom(c*c,1,g-3,-1)}}function fishf(h,l,j){var p=j/(l*h+j);if((l%2)==0){return statcom(1-p,j,l+j-4,j-2)*Math.pow(p,j/2)}if((j%2)==0){return 1-statcom(p,l,l+j-4,l-2)*Math.pow(1-p,l/2)}var d=Math.atan(Math.sqrt(l*h/j));var o=d/PiD2;var b=Math.sin(d);var m=Math.cos(d);if(j>1){o=o+b*m*statcom(m*m,2,j-3,-1)/PiD2}if(l==1){return 1-o}var n=4*statcom(b*b,j+1,l+j-4,j-2)*b*Math.pow(m,j)/Pi;if(j==1){return 1-o+n/2}var g=2;while(g<=(j-1)/2){n=n*g/(g-0.5);g=g+1}return 1-o+n}function statcom(h,g,f,c){var a=1;var l=a;var d=g;while(d<=f){a=a*h*d/(d-c);l=l+a;d=d+2}return l}function anorm(c){var a=0.5;var b=0.5;var d=0;while(b>1e-15){d=1/a-1;b=b/2;if(norm(d)>c){a=a-b}else{a=a+b}}return d}function agauss(a){if(a>0.5){return(sqrt(achisq(2*(1-a),1)))}else{return(-sqrt(achisq(2*a,1)))}}function aerf(a){return agauss(a/2+0.5)/sqrt(2)}function achisq(d,f){var b=0.5;var c=0.5;var a=0;while(c>1e-15){a=1/b-1;c=c/2;if(chisq(a,f)>d){b=b-c}else{b=b+c}}return a}function astudt(d,f){var a=0.5;var c=0.5;var b=0;while(c>1e-15){b=1/a-1;c=c/2;if(studt(b,f)>d){a=a-c}else{a=a+c}}return b}function afishf(h,d,c){var a=0.5;var b=0.5;var g=0;while(b>1e-15){g=1/a-1;b=b/2;if(fishf(g,d,c)>h){a=a-b}else{a=a+b}}return g}function hex(a){return"0x"+new Number(a).toString(16).toUpperCase()}function bin(a){return new Number(a).toString(2)}function oct(a){return new Number(a).toString(8)};
