var Messages={};
Messages.URL_TOO_LONG="Sorry, there's too much data for one link! Try putting your equations into two calculators.";
var InstaCalc={};
var I=InstaCalc;
logging=false;
I.cells=0;
I.startcells=7;
I.maxCells=100;
I.version=0.9;
I.uiversion="";
I.inputs=[];
I.outputs=[];
I.outputCache=[];
I.outputCache.format=[];
I.inputCache=[];
I.titles=[];
I.comments=[];
I.lib={};
I.lib.chart=[];
I.format={};
I.format.currency=false;
I.format.symbol="$";
I.format.decimals=2;
I.format.angle="deg";
I.format.currencies={};
I.format.currencies["BRL"]={};
I.format.currencies["BRL"].symbol="R$";
I.format.currencies["BRL"].regex=/R[$]/gi;
I.format.currencies["BRL"].decimals=2;
I.format.currencies["USD"]={};
I.format.currencies["USD"].symbol="$";
I.format.currencies["USD"].regex=/[$]/gi;
I.format.currencies["USD"].decimals=2;
I.format.currencies["INR"]={};
I.format.currencies["INR"].symbol="Rs. ";
I.format.currencies["INR"].regex=/Rs[.]/gi;
I.format.currencies["INR"].decimals=2;
I.format.currencies["EUR"]={};
I.format.currencies["EUR"].symbol="\u20ac";
I.format.currencies["EUR"].regex=/\u20AC/gi;
I.format.currencies["EUR"].decimals=2;
I.format.currencies["JPY"]={};
I.format.currencies["JPY"].symbol="\xa5";
I.format.currencies["JPY"].regex=/\u00A5/gi;
I.format.currencies["JPY"].decimals=0;
I.separator="z#x3!~";
I.description="";
I.unitlabel="";
I.saved=[];
I.permalink="";
I.plotter=null;
I.settings={};
I.settings.visibility=[];
I.settings.basic=true;
I.settings.round=false;
I.settings.embed=false;
I.settings.gadget=false;
I.settings.gadget=false;
I.settings.standalone=false;
I.settings.base_url="http://instacalc.com/";
I.settings.embed_preview_url="http://instacalc.com/embedpreview.html";
I.divs=["instructions","overview","tutorial","comments","reference","chart"];
function getVersion(){
return I.version;
}
function setError(_1){
I.error=_1;
}
function getError(){
return I.error;
}
function updateReferences(_2,_3){
var i;
var _5="";
for(var i=0;i<_2;i++){
_5=_2[i];
if(_5.match(/\bR(\d+)\b/ig)){
}
}
I.expressions.push([/\bR(\d+)\b/ig,"getOutputValue($1 - 1)"]);
}
function setStatus(_6,_7){
if(isdefined(status)){
status.innerHTML=_6;
if(_7===true){
status.className="statusError";
}else{
status.className="statusOK";
}
}
}
if(I.settings.homepage){
loadCurrencyData();
}
I.PHI=1.6180339887;
I.MOL=6.0221415e+23;
I.deg2rad=function(_8){
return _8*Math.PI/180;
};
I.rad2deg=function(_9){
return _9*180/Math.PI;
};
I.convertToRadiansConditional=function(n){
var _b;
if(I.format.angle=="rad"){
_b=n;
}else{
_b=I.deg2rad(n);
}
return _b;
};
I.sin=function(n){
var _d;
if(I.format.angle=="rad"){
_d=n;
}else{
_d=I.deg2rad(n);
}
return Math.sin(_d);
};
I.asin=function(n){
return I.rad2deg(Math.asin(n));
};
I.acos=function(n){
return I.rad2deg(Math.acos(n));
};
I.atan=function(n){
return I.rad2deg(Math.atan(n));
};
I.sinh=function(n){
var rad=I.convertToRadiansConditional(n);
return (Math.exp(rad)-Math.exp(-rad))/2;
};
I.cosh=function(n){
var rad=I.convertToRadiansConditional(n);
return (Math.exp(rad)+Math.exp(-rad))/2;
};
I.tanh=function(n){
return I.sinh(n)/I.cosh(n);
};
I.coth=function(n){
return I.cosh(n)/I.sinh(n);
};
I.sech=function(n){
return 1/I.cosh(n);
};
I.csch=function(n){
return 1/I.sinh(n);
};
I.asinh=function(n){
var rad=I.convertToRadiansConditional(n);
return Math.log(rad+Math.sqrt(1+rad*rad));
};
I.acosh=function(n){
var rad=I.convertToRadiansConditional(n);
return 2*Math.log(Math.sqrt((rad+1)/2)+Math.sqrt((rad-1)/2));
};
I.atanh=function(n){
var rad=I.convertToRadiansConditional(n);
return (Math.log(1+rad)-Math.log(1-rad))/2;
};
I.cos=function(n){
var rad;
if(I.format.angle=="rad"){
rad=n;
}else{
rad=I.deg2rad(n);
}
return Math.cos(rad);
};
I.tan=function(n){
var rad;
if(I.format.angle=="rad"){
rad=n;
}else{
rad=I.deg2rad(n);
}
return Math.tan(rad);
};
I.cot=function(n){
return 1/I.tan(n);
};
I.sec=function(n){
return 1/I.cos(n);
};
I.csc=function(n){
return 1/I.sin(n);
};
I.fibonacci=function(n){
var t=(Math.pow(I.PHI,n)-Math.pow(1-I.PHI,n))/Math.sqrt(5);
return Math.round(t);
};
I.factorial=function(n){
if(!isdefined(n)){
return;
}
if(n<0){
return "undefined";
}
if(n===0||n==1){
return 1;
}
if(n>170){
return "Way too big!";
}
var i=1;
n=Math.ceil(n);
while(n>1){
i*=n;
n--;
}
return i;
};
I.combination=function(n,k){
return I.permutation(n,k)/I.factorial(k);
};
I.permutation=function(n,k){
return I.factorial(n)/(I.factorial(n-k));
};
I.convert=function(n,_2f){
var i=0;
var sum=0;
while(n>0){
var _32=n%10;
sum+=_32*Math.pow(_2f,i);
i++;
n=Math.floor(n/10);
}
return sum;
};
I.sbin=function(n){
var i=0;
var str="";
for(var i=0;i<32;i++){
var _36=(n&(1<<i))>>i;
if(_36==0){
str+="0";
}else{
str+="1";
}
}
str=str.split("").reverse().join("");
return str;
};
I.bin=function(n){
var tmp;
var _39="0";
if(n<0){
return I.sbin(n);
}else{
tmp=n.toString(2);
}
if(tmp==NaN||tmp==""){
return "";
}
var i;
var _3b="0b";
var _3c=(8-(tmp.length%8))%8;
for(i=0;i<_3c;i++){
_3b+=_39;
}
return _3b+tmp;
};
I.oct=function(n){
return "0o"+n.toString(8);
};
I.hex=function(n){
var tmp=n.toString(16);
var i;
var _41="0x";
var _42=(4-(tmp.length%4))%4;
for(i=0;i<_42;i++){
_41+="0";
}
return _41+tmp;
};
I.dec=function(n){
return n;
};
I.log10=function(n){
return Math.log(n)/Math.LN10;
};
I.frombin=function(n){
return I.convert(n,2);
};
I.fromhex=function(n){
return I.convert(n,16);
};
I.fromoct=function(n){
return I.convert(n,8);
};
I.deg=function(n){
return n*180/Math.PI;
};
I.rad=function(n){
return n*Math.PI/180;
};
I.time=function(n){
years=days=hours=minutes=seconds=0;
var _4b=false;
if(n<0){
n=Math.abs(n);
}
if(n>=31536000){
years=Math.floor(n/31536000);
n-=Math.round(years*31536000);
}
if(n>=86400){
days=Math.floor(n/86400);
n-=Math.round(days*86400);
}
if(n>=3600){
hours=Math.floor(n/3600);
n-=Math.round(hours*3600);
}
if(n>=60){
minutes=Math.floor(n/60);
n-=Math.round(minutes*60);
}
seconds=n;
str="";
if(years>0){
str+=(years+"y ");
_4b=true;
}
if(days>0||_4b){
str+=(days+"d ");
_4b=true;
}
if(hours>0||_4b){
str+=(hours+"h ");
_4b=true;
}
if(minutes>0||_4b){
str+=(minutes+"m ");
_4b=true;
}
if(seconds>0||_4b){
str+=(seconds.toPrecision(4)+"s ");
_4b=true;
}
return str;
};
I.plot=new ReplotObject();
I.plotTimeout=null;
I.plotRefresh=500;
I.resetChart=function(){
if($("example2")){
$("example2").innerHTML="";
}
};
I.linechart=function(_4c){
I.plot.data=_4c;
I.plot.type="line";
self.clearTimeout(I.plotTimeout);
I.plotTimeout=self.setTimeout("I.plot.update()",I.plotRefresh);
};
I.barchart=function(_4d){
I.plot.data=_4d;
I.plot.type="bar";
self.clearTimeout(I.plotTimeout);
I.plotTimeout=self.setTimeout("I.plot.update()",I.plotRefresh);
};
I.piechart=function(_4e){
I.plot.data=_4e;
I.plot.type="pie";
self.clearTimeout(I.plotTimeout);
I.plotTimeout=self.setTimeout("I.plot.update()",I.plotRefresh);
};
I.arraymax=function(a){
if(a==[]){
return "";
}
max=a[0][1];
for(i=0;i<a.length;i++){
if(a[i][1]>max){
max=a[i][1];
}
}
return max;
};
I.arraymin=function(a){
if(a==[]){
return "";
}
min=a[0][1];
for(var i=0;i<a.length;i++){
if(a[i][1]<min){
min=a[i][1];
}
}
return min;
};
I.arraysum=function(a){
if(a==[]){
return "";
}
total=0;
for(var i=0;i<a.length;i++){
total+=a[i][1];
}
return total;
};
I.arraydifference=function(a){
if(a==[]){
return "";
}
total=a[0][1];
for(i=1;i<a.length;i++){
total-=a[i][1];
}
return total;
};
I.arrayavg=function(a){
if(a==[]){
return "";
}
var _56=I.arraysum(a);
var _57=_56/a.length;
return _57;
};
I.random=function(a){
return Math.ceil(Math.random()*a);
};
I.add=function(a,b){
return a+b;
};
I.subtract=function(a,b){
return a-b;
};
I.multiply=function(a,b){
return a*b;
};
I.divide=function(a,b){
return a/b;
};
I.conversion=function(a,b){
if(typeof (b)=="number"){
return a*b;
}
if(typeof (b)=="function"){
return b(a);
}
return a;
};
function isUnit(str){
for(var i in Unit){
if(Unit[i][str]){
return Unit[i];
}
}
return false;
}
I.convertUnitScale=function(_65,to){
var _67=isUnit(_65);
var _68=isUnit(to);
if(!_67||!_68){
return 1;
}else{
return _67[fromRate]/_68[toRate];
}
};
I.getUnitPower=function(str){
var re;
str=str.replace("^2"," sq");
str=str.replace("^3"," cu");
for(var i=0;i<Unit.area.length;i++){
re=new RegExp("\\b"+Unit.area[i]+"\\b","gi");
if(str.match(re)){
str=strtrim(str.replace(re,""));
return [str,2];
}
}
for(var i=0;i<Unit.volume.length;i++){
re=new RegExp("\\b"+Unit.volume[i]+"\\b","gi");
if(str.match(re)){
str=strtrim(str.replace(re,""));
return [str,3];
}
}
return [str,1];
};
I.unitMatch=function(_6c,_6d,to,_6f){
var _70=isUnit(_6c);
var _71=isUnit(to);
if(!_70||!_71){
var _72=Inflector.pluralize(Inflector.pluralize(_6c));
var _73=Inflector.pluralize(Inflector.pluralize(to));
if((_72==_73)&&(_6d==_6f)){
return true;
}
return false;
}
if(_70==_71&&_6d==_6f){
return true;
}
if(!_70.SI||!_71.SI){
return false;
}
for(var i in _70.SI){
if(_70.SI[i]*_6d!=_71.SI[i]*_6f){
return false;
}
}
for(var i in _71.SI){
if(_70.SI[i]*_6d!=_71.SI[i]*_6f){
return false;
}
}
return true;
};
I.parseUnitObject=function(str){
var a=I.splitUnits(str);
return {from:a[0],fromRate:a[1],to:a[2],toRate:a[3],label:a[4]};
};
I.splitUnits=function(str){
var re=new RegExp(I.safeprepend,"g");
str=str.replace(re,"");
var tmp;
re=new RegExp(/per/ig);
str=str.replace(re,"/");
str=str.replace(/for/ig,"/");
str=str.replace(/every/ig,"/");
str=str.replace(/each/ig,"/");
str=str.replace(/until/ig,"/");
str=str.replace(/thousand/,"1000");
str=str.replace(/million/,"1000000");
str=str.replace(/billion/,"1000000000");
str=str.replace(/trillion/,"1000000000000");
if(str.match(/\s+in\s+/i)){
tmp=str.split(" in ");
}else{
if(str.match(/\s+into\s+/i)){
tmp=str.split(" into ");
}else{
if(str.match(/\s+as\s+/i)){
tmp=str.split(" as ");
}else{
if(str.match(/\s+to\s+/i)){
tmp=str.split(" to ");
}else{
if(str.match(/\s+en\s+/i)){
tmp=str.split(" en ");
}else{
return null;
}
}
}
}
}
if(tmp.length<2){
return null;
}
var _7a=strtrim(tmp[0].toLowerCase());
var _7b=1;
var to=strtrim(tmp[1].toLowerCase());
var _7d=1;
if(Unit.alias[_7a]){
_7a=Unit.alias[_7a];
}
if(Unit.alias[to]){
to=Unit.alias[to];
}
var _7e;
var _7f;
var _80="unity";
var _81="unity";
if((_7e=_7a.match(/(.+)\/(.+)/))&&(_7f=to.match(/(.+)\/(.+)/))){
_7a=strtrim(_7e[1]);
to=strtrim(_7f[1]);
_80=strtrim(_7e[2]);
_81=strtrim(_7f[2]);
}
var _82=tmp[1];
return [_7a,_80,to,_81,_82];
};
I.isConversionFunction=function(_83,to){
var _85=isUnit(_83);
var _86=isUnit(to);
if(_85==_86&&_85.conversion=="function"){
return _85;
}
return false;
};
I.getUnitPowers=function(obj){
var _88={};
_88.from={};
_88.to={};
_88.fromRate={};
_88.toRate={};
var a=I.getUnitPower(obj.from);
_88.from.unit=a[0];
_88.from.power=a[1];
var b=I.getUnitPower(obj.to);
_88.to.unit=b[0];
_88.to.power=b[1];
a=I.getUnitPower(obj.fromRate);
_88.fromRate.unit=a[0];
_88.fromRate.power=a[1];
b=I.getUnitPower(obj.toRate);
_88.toRate.unit=b[0];
_88.toRate.power=b[1];
return _88;
};
I.getScalingFactors=function(_8b){
var _8c={};
_8c.from=1;
_8c.to=1;
var obj={};
obj=_8b;
obj.from.scale=1;
var num=obj.from.unit.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
obj.from.unit=obj.from.unit.replace(/[.,\d]+\s*/,"");
obj.from.scale=tmp;
_8c.from*=tmp;
}
obj.fromRate.scale=1;
var num=obj.fromRate.unit.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
obj.fromRate.unit=obj.fromRate.unit.replace(/[.,\d]+\s*/,"");
obj.fromRate.scale=tmp;
_8c.from*=1/tmp;
}
obj.to.scale=1;
num=obj.to.unit.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
obj.to.unit=obj.to.unit.replace(/[.,\d]+\s*/,"");
obj.to.scale=tmp;
_8c.to*=tmp;
}
obj.toRate.scale=1;
num=obj.toRate.unit.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
obj.toRate.unit=obj.toRate.unit.replace(/[.,\d]+\s*/,"");
obj.toRate.scale=tmp;
_8c.to*=1/tmp;
}
obj.scale=_8c;
return obj;
};
I.getUnitMatches=function(_90){
var _91=false;
var ret={match:false,invert:false};
var obj={};
obj=_90;
obj.inverted=false;
if(!I.unitMatch(obj.from.unit,obj.from.power,obj.to.unit,obj.to.power)){
_91=true;
}
if(!I.unitMatch(obj.fromRate.unit,obj.fromRate.power,obj.toRate.unit,obj.toRate.power)){
_91=true;
}
if(_91){
var _94=I.unitMatch(obj.from.unit,obj.from.power,obj.toRate.unit,obj.toRate.power);
var _95=I.unitMatch(obj.to.unit,obj.to.power,obj.fromRate.unit,obj.fromRate.power);
if(_94&&_95){
obj.inverted=true;
}else{
return null;
}
}
return obj;
};
I.getUnitConversion=function(_96){
var n=1;
var obj;
if(obj=isUnit(_96)){
n=obj[_96];
}
return n;
};
I.getConversionFactor=function(_99){
var obj=_99;
var n;
var _9c;
n=I.getUnitConversion(obj.from.unit);
var ft=Math.pow(n,obj.from.power);
n=I.getUnitConversion(obj.fromRate.unit);
var fb=Math.pow(n,obj.fromRate.power);
n=I.getUnitConversion(obj.to.unit);
var tt=Math.pow(n,obj.to.power);
n=I.getUnitConversion(obj.toRate.unit);
var tb=Math.pow(n,obj.toRate.power);
var _a1=(obj.from.scale*ft)/(obj.fromRate.scale*fb);
var _a2=(obj.to.scale*tt)/(obj.toRate.scale*tb);
var _a3=_a1/_a2;
var _a4;
if(obj.inverted){
_a1=_a1;
_a2=(obj.toRate.scale*tb)/(obj.to.scale*tt);
_a4=_a1/_a2;
}
if(obj.inverted){
return function(x){
return 1/(x*_a4);
};
}else{
return _a3;
}
};
I.getUnitScale2=function(_a6,_a7,to,_a9){
var obj={from:_a6,fromRate:_a7,to:to,toRate:_a9};
obj=I.getUnitPowers(obj);
if(!obj){
return null;
}
obj=I.getScalingFactors(obj);
if(!obj){
return null;
}
obj=I.getUnitMatches(obj);
if(!obj){
return null;
}
var _ab;
if(_ab=I.isConversionFunction(_a6,to)){
var _ac=_ab[_a6][0];
var _ad=_ab[to][1];
var _ae=function(x){
return _ad(_ac(x));
};
return _ae;
}
return I.getConversionFactor(obj);
};
I.getUnitScale=function(_b0,_b1,to,_b3){
return I.getUnitScale2(_b0,_b1,to,_b3);
var a=I.getUnitPower(_b0);
_b0=a[0];
var _b5=a[1];
var b=I.getUnitPower(to);
to=b[0];
var _b7=b[1];
a=I.getUnitPower(_b1);
_b1=a[0];
var _b8=a[1];
b=I.getUnitPower(_b3);
_b3=b[0];
var _b9=b[1];
var _ba=1;
var _bb=1;
num=_b0.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
_b0=_b0.replace(/[.,\d]+\s*/,"");
_ba*=tmp;
}
var num=_b1.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
_b1=_b1.replace(/[.,\d]+\s*/,"");
_ba*=1/tmp;
}
num=to.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
to=to.replace(/[.,\d]+\s*/,"");
_bb*=1/tmp;
}
num=_b3.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
_b3=_b3.replace(/[.,\d]+\s*/,"");
_bb*=tmp;
}
var _be;
if(_be=I.isConversionFunction(_b0,to)){
var _bf=_be[_b0][0];
var _c0=_be[to][1];
var _c1=function(x){
return _c0(_bf(x));
};
return _c1;
}
var _c3=false;
if(!I.unitMatch(_b0,_b5,to,_b7)){
_c3=true;
}
if(!I.unitMatch(_b1,_b8,_b3,_b9)){
_c3=true;
}
var _c4=false;
if(_c3){
var tmp=to;
var _c5=_b7;
to=_b3;
_b7=_b9;
_b3=tmp;
_b9=_c5;
if(!I.unitMatch(_b0,_b5,to,_b7)){
InstaCalc.unitlabel="";
return 1;
}
if(!I.unitMatch(_b1,_b8,_b3,_b9)){
InstaCalc.unitlabel="";
return 1;
}
_c4=true;
}
var obj;
var n;
if(obj=isUnit(_b0)){
n=obj[_b0];
}else{
n=1;
}
var ft=Math.pow(n,_b5);
if(obj=isUnit(_b1)){
n=obj[_b1];
}else{
n=1;
}
var fb=Math.pow(n,_b8);
if(obj=isUnit(to)){
n=obj[to];
}else{
n=1;
}
var tt=Math.pow(n,_b7);
if(obj=isUnit(_b3)){
n=obj[_b3];
}else{
n=1;
}
var tb=Math.pow(n,_b9);
var f2=(ft/tt)*(tb/fb);
f2*=_ba;
if(_c4){
I.log+="inverting!";
return function(x){
return (1*_bb)/(x*f2);
};
}else{
f2*=_bb;
return f2;
}
};
I.conversionCache={};
I.convertUnit=function(str){
var _cf=I.conversionCache[str];
if(_cf){
InstaCalc.unitlabel=_cf.unitlabel;
return _cf.conversion;
}
var _d0=1;
var _d1=1;
var ret=I.splitUnits(str);
if(ret==null){
InstaCalc.unitlabel="";
return 1;
}
var _d3=ret[0];
var _d4=ret[1];
var to=ret[2];
var _d6=ret[3];
var _d7=ret[4];
var _d8=I.getUnitScale(_d3,_d4,to,_d6);
if(_d8==null||typeof (_d8)=="undefined"){
InstaCalc.unitlabel="";
return 1;
}else{
InstaCalc.unitlabel=_d7;
I.conversionCache[str]={conversion:_d8,unitlabel:_d7};
return _d8;
}
};
I.allowedfn={};
I.locals={};
I.safeprepend="I.locals.__qweasdzxc";
I.stringprepend="InstaCalc__String__qweasdzxc";
I.clearLocals=function(){
I.locals={};
};
var a=I.allowedfn;
a.IF="if";
a.ABS="Math.abs";
a.ACOS="I.acos";
a.ASIN="I.asin";
a.ATAN="I.atan";
a.ATAN2="Math.atan2";
a.CEIL="Math.ceil";
a.COS="I.cos";
a.EXP="Math.exp";
a.FLOOR="Math.floor";
a.LN="Math.log";
a.LOG="I.log10";
a.MAX="Math.max";
a.MIN="Math.min";
a.POWER="Math.pow";
a.COSH="I.cosh";
a.SINH="I.sinh";
a.TANH="I.tanh";
a.COTH="I.coth";
a.SECH="I.sech";
a.CSCH="I.csch";
a.ASINH="I.asinh";
a.ACOSH="I.acosh";
a.ATANH="I.atanh";
a.COMBIN="I.combin";
a.ADD="I.add";
a.SUBTRACT="I.subtract";
a.MULTIPLY="I.multiply";
a.DIVIDE="I.divide";
a.CONVERT="I.convertUnit";
a.ROUND="Math.round";
a.ROUNDDOWN="Math.floor";
a.ROUNDUP="Math.ceil";
a.SIN="I.sin";
a.SQRT="Math.sqrt";
a.TAN="I.tan";
a.CHARCODE=true;
a.FROMCHARCODE=true;
a.FIB=true;
a.FAC="I.factorial";
a.NCHOOSEK=true;
a.TIME=true;
a.BIN="I.bin";
a.OCT="I.oct";
a.HEX="I.hex";
a.DEC="I.dec";
a.FROMBIN="I.frombin";
a.FROMOCT="I.fromoct";
a.RANDOM="I.random";
a.C="I.combination";
a.P="I.permutation";
a.DEG=true;
a.RAD=true;
a.LINECHART="I.linechart";
a.BARCHART="I.barchart";
a.PIECHART="I.piechart";
a.PARSENUMBER="parseNumber";
a.GETROWVALUES="getRowValues";
a.GETOUTPUTVALUE="getOutputValue";
a.MAX="I.arraymax";
a.MIN="I.arraymin";
a.SUM="I.arraysum";
a.SUB="I.arraydifference";
a.AVERAGE="I.arrayavg";
a.FUNCTION="function";
a.TIME="I.time";
a.CONVERSION="I.conversion";
I.allowedcn={};
var c=I.allowedcn;
c.RANDOM="Math.random()";
c.PI="Math.PI";
c.pi="Math.PI";
c.Pi="Math.PI";
c.pI="Math.PI";
c.PHI="I.PHI";
c.E="Math.E";
I.keywords={};
var k=I.keywords;
k.IF="if";
k.ELSE="else";
k.ELSE_IF="else if";
k.TRUE="true";
k.FALSE="false";
I.expressions=[];
var re=new RegExp("\\b"+I.stringprepend+"(\\d+)\\b","g");
I.expressions.push([re,I.stringprepend+"$1"]);
I.expressions.push([/\band\b/ig," & "]);
I.expressions.push([/\bor\b/ig," | "]);
I.expressions.push([/\bnot\b/ig," ~ "]);
I.expressions.push([/\bxor\b/ig," ^ "]);
I.expressions.push([/\bmod\b/ig," % "]);
I.firstfilter=[];
var f=I.firstfilter;
f.push([/^(.*)=(.*[)]|.*\d)\s+(([a-zA-Z].*\s+(in|as|into|to|en)\s+.*))$/g,"$1 = CONVERSION($2, CONVERT(\"$3\") )"]);
f.push([/^\s*(-?[\d()\w.,]+)\s+(([a-zA-Z].*\s+(in|as|into|to|en)\s+.*))$/g,"CONVERSION($1, CONVERT(\"$2\") )"]);
f.push([/^\s*[(](.+)[)]\s+(([a-zA-Z].*\s+(in|as|into|to|en)\s+.*))$/g,"CONVERSION($1, CONVERT(\"$2\"))"]);
f.push([/\u0660/ig,"0"]);
f.push([/\u0661/ig,"1"]);
f.push([/\u0662/ig,"2"]);
f.push([/\u0663/ig,"3"]);
f.push([/\u0664/ig,"4"]);
f.push([/\u0665/ig,"5"]);
f.push([/\u0666/ig,"6"]);
f.push([/\u0667/ig,"7"]);
f.push([/\u0668/ig,"8"]);
f.push([/\u0669/ig,"9"]);
I.prefilter=[];
var p=I.prefilter;
p.push([/^\s*=\s*/,""]);
p.push([/\s*=\s*$/,""]);
p.push([/[+]\s*([0-9.,]+)%/g," * (1 + .01 * $1)"]);
p.push([/-\s*([0-9.,]+)%/g," * (1 - .01 * $1)"]);
p.push([/%\s+of\s+/ig," * .01 * "]);
p.push([/\s*([0-9.,]+)%/g,"($1 * .01)"]);
p.push([/%/g," * .01"]);
p.push([/[|]([^|]+)[|]/g,"ABS($1)"]);
p.push([/\b((\d|[,.])+)\s*KB\b/ig,"($1 * 1024)"]);
p.push([/\b((\d|[,.])+)\s*MB\b/ig,"($1 * 1024 * 1024)"]);
p.push([/\b((\d|[,.])+)\s*GB\b/ig,"($1 * 1024 * 1024 * 1024)"]);
p.push([/\b((\d|[,.])+)\s*TB\b/ig,"($1 * 1024 * 1024 * 1024 * 1024)"]);
p.push([/\b((\d|[,.])+)\s*PB\b/ig,"($1 * 1024 * 1024 * 1024 * 1024 * 1024)"]);
p.push([/\b((\d|[,.])+)\s*KBPS\b/ig,"($1 * 1024 / 8)"]);
p.push([/\b((\d|[,.])+)\s*MBPS\b/ig,"($1 * 1024 * 1024 / 8)"]);
p.push([/\b((\d|[,.])+)\s*GBPS\b/ig,"($1 * 1024 * 1024 * 1024 / 8)"]);
p.push([/\b((\d|[,.])+)\s*K\b/ig,"($1 * 1e3)"]);
p.push([/\b((\d|[,.])+)\s*M\b/ig,"($1 * 1e6)"]);
p.push([/\b((\d|[,.])+)\s*B\b/ig,"($1 * 1e9)"]);
p.push([/\b((\d|[,.])+)\s*T\b/ig,"($1 * 1e12)"]);
p.push([/((\d|[,.])+)\s*thousand\b/ig,"($1 * 1e3)"]);
p.push([/((\d|[,.])+)\s*million\b/ig,"($1 * 1e6)"]);
p.push([/((\d|[,.])+)\s*billion\b/ig,"($1 * 1e9)"]);
p.push([/((\d|[,.])+)\s*trillion\b/ig,"($1 * 1e12)"]);
p.push([/\s+rad\b/ig,"* 180 / PI"]);
p.push([/\b([0-9.,]+)rad\b/ig,"$1 * 180 / PI"]);
p.push([/\s+deg\b/ig,""]);
p.push([/(\d)\s+(\d)/g,"$1$2"]);
p.push([/0[bB]([01]+)/g,"FROMBIN($1)"]);
p.push([/0[oO]([01234567]+)/g,"FROMOCT($1)"]);
p.push([/((\b|[.])+[0-9.,]+((e|e-|e+)[0-9]+)?)\b/g,"PARSENUMBER(\"$1\")"]);
p.push([/\bR(\d+):R(\d+)\b/ig,"getRowValues($1,$2)"]);
p.push([/\bR(\d+),R(\d+)\b/ig,"getRowValues($1,$2)"]);
p.push([/\bR(\d+)\b/ig,"getOutputValue($1 - 1)"]);
p.push([/\brandom\b/ig,"RANDOM"]);
I.postfilter=[];
I.postfilter.push([/([)])\s+(([a-zA-Z].*))$/g,"$1 * I.convertUnit(\"$2\")"]);
I.postfilter.push([/[=]\s*[?]\s/," to "]);
I.plotColorScheme=0;
I.colors={};
I.colors.blue=0;
I.colors.red=1;
I.colors.green=2;
I.colors.purple=3;
I.colors.teal=4;
I.colors.orange=5;
function changePlotColor(x){
var foo=document.getElementById("example2");
foo.innerHTML="";
I.plotColorScheme=x;
I.plot.update();
}
function ReplotObject(){
this.data=[];
this.type="";
this.update=function(){
replot(this.data,this.type);
};
}
function reset_settings(){
I.firstChart=true;
I.hasChart=false;
I.plotter=null;
}
function replot(_db,_dc){
if(I.settings.embed){
return;
}
if(I.firstChart){
showItem("chart");
I.firstChart=false;
}
I.hasChart=true;
if(_dc!="line"&&_dc!="pie"&&_dc!="bar"){
_dc="line";
}
var foo=document.getElementById("example2");
foo.innerHTML="";
try{
var i;
var _df=[];
var _e0=[];
for(i=0;i<I.datatitles.length;i++){
_df.push({label:I.datatitles[i][0],v:i+1});
_e0.push([[i+1],I.datatitles[i][1]]);
}
var _e1=(_dc=="bar"||_dc=="line")?false:true;
I.plotter=new EasyPlot(_dc,{"xTicks":_df,"padding":{top:5,bottom:15,left:70,right:10},"colorScheme":PlotKit.Base.palette(PlotKit.Base.baseColors()[I.plotColorScheme]),"backgroundColor":PlotKit.Base.baseColors()[I.plotColorScheme].lighterColorWithLevel(0.45),"xOriginIsZero":_e1,"pieRadius":0.35},$("example2"),[_e0]);
}
catch(e){
setStatus("Sorry, there was an error plotting: ("+e.message+"). Please try a browser with SVG support like <a href='http://getfirefox.com'>FireFox</a>.");
}
}
function findCommentText(str){
}
function findTitle(str){
if(isNull(str)||!str.match(/=/)){
return "";
}
var raw=str.split(/=/)[0];
var tmp=raw.split(/[{}()]/);
raw=tmp[tmp.length-1];
var out=raw.match(/[^{}]*/)[0];
var _e7=strtrim(out);
var _e8=_e7.replace(/_/g," ").replace("$","");
return _e8;
var _e9=str.match(/[a-zA-Z_][a-zA-Z0-9_:\.]*\s*=/);
if(isNull(_e9)){
return "";
}
var _ea="";
_ea=_e9[0].match(/[a-zA-Z_][a-zA-Z0-9_:\.]*/)[0];
re=new RegExp("_","g");
_ea=_ea.replace(re," ");
return _ea;
}
function replacefn(_eb){
replace="";
if(I.allowedfn[_eb.toUpperCase()]){
replace=I.allowedfn[_eb.toUpperCase()];
}else{
replace=I.safeprepend+_eb;
}
return replace;
}
function replacekeyword(_ec){
var _ed=I.keywords[_ec.toUpperCase()];
if(_ed){
return _ed;
}
return _ec;
}
function replacecn(_ee){
if(I.allowedcn[_ee]){
return I.allowedcn[_ee];
}
return "";
}
function validcn(_ef){
if(_ef===""){
return false;
}
if(I.allowedcn[_ef]){
return true;
}
return false;
}
function validkeyword(_f0){
if(_f0===""){
return false;
}
if(I.keywords[_f0.toUpperCase()]){
return true;
}
return false;
}
function validExpression(_f1){
var i;
for(i=0;i<I.expressions.length;i++){
if(_f1.match(I.expressions[i][0])){
return i;
}
}
return -1;
}
function replaceExpression(_f3){
var i;
for(i=0;i<I.expressions.length;i++){
if(_f3.match(I.expressions[i][0])){
return _f3.replace(I.expressions[i][0],I.expressions[i][1]);
}
}
return _f3;
}
function replacevariable(_f5){
return I.safeprepend+_f5;
}
function cleanVariable(_f6){
myregexp=new RegExp(I.safeprepend,"g");
return _f6.replace(myregexp,"");
}
function tokenType(_f7){
if(_f7.match(/[(]/)){
return "function";
}
if(validcn(_f7)){
return "constant";
}
if(validkeyword(_f7)){
return "keyword";
}
if(validExpression(_f7)!=-1){
return "expression";
}
return "variable";
}
function findString(_f8){
var i;
for(i=0;i<_f8.length;i++){
}
}
function isOperator(str){
if(str===""){
return false;
}
var c=str[0];
}
function parser(str){
var i;
for(i=0;i<str.length;i++){
}
}
function firstfilter(str){
var i;
for(i=0;i<I.firstfilter.length;i++){
re=I.firstfilter[i][0];
var _100=I.firstfilter[i][1];
str=str.replace(re,_100);
}
return str;
}
function prefilter(str){
var i;
for(i=0;i<I.prefilter.length;i++){
re=I.prefilter[i][0];
var _103=I.prefilter[i][1];
str=str.replace(re,_103);
}
return str;
}
function customOperators(str){
str=parseSuffixOperator(str,"!","FAC");
str=parseBinaryOperator(str,"^","POWER");
return str;
}
function postfilter(str){
var i;
for(i=0;i<I.postfilter.length;i++){
re=I.postfilter[i][0];
var _107=I.postfilter[i][1];
str=str.replace(re,_107);
}
return str;
}
function cleanup2(str){
var i;
if(isNull(str)||!isdefined(str)||str===""){
return str;
}
str=firstfilter(str);
var ret=extractStrings2(str);
str=ret[0];
var _10b=ret[1];
var tmp=I.format.currencies;
for(var _10d in tmp){
var cur=tmp[_10d];
if(str.match(cur.regex)){
str=str.replace(cur.regex,"");
I.format.currency=true;
I.format.currencySymbol=cur.symbol;
I.format.decimals=cur.decimals;
}
}
str=customOperators(str);
str=prefilter(str);
var _10f=str.match(/[a-zA-Z_][a-zA-Z0-9_:]*\s*[(]*/g);
if(isNull(_10f)){
return str;
}
var _110,type,_112;
for(i=0;i<_10f.length;i++){
_110=_10f[i];
_110=_110.match(/\S+/)[0];
type=tokenType(_110);
if(type=="function"){
var _113=_110.match(/\w+/)[0];
_112=replacefn(_113);
re=new RegExp("([^.]|^)"+_113+"s*[(]","g");
str=str.replace(re,"$1"+_112+"(");
continue;
}
if(type=="constant"){
var _114=_110.match(/\w+/)[0];
re=new RegExp("([^.]|^)"+_114+"\\b","");
str=str.replace(re,"$1"+replacecn(_114));
continue;
}
if(type=="keyword"){
var _115=_110.match(/\w+/)[0];
re=new RegExp("(\\s|^)"+_115+"\\b","");
str=str.replace(re," "+replacekeyword(_115));
continue;
}
if(type=="expression"){
var _116=replaceExpression(_110);
re=new RegExp("\\b"+_110+"\\b","");
str=str.replace(re,_116);
continue;
}
var _117=I.safeprepend+_110.toLowerCase();
re=new RegExp("\\b"+_110+"\\b","g");
str=str.replace(re,_117);
}
str=postfilter(str);
str=replaceStrings(str,_10b);
return str;
}
function extractStrings2(str){
var i;
var _11a=false;
var _11b="";
var _11c=[];
var _11d=[];
var _11e=str.match(/"([\\]"|[^"])+"/g);
if(isNull(_11e)){
return [str,[]];
}
for(i=0;i<_11e.length;i++){
var name=I.stringprepend+i;
var _120=_11e[i];
str=str.replace(_120,name);
_11d.push([name,_120]);
}
return [str,_11d];
}
function extractStrings(str){
var i;
var _123=false;
var _124="";
var _125=[];
var _126=[];
for(i=0;i<str.length;i++){
if(i==0&&str[i]=="\""){
_123=true;
_124+=str[i];
continue;
}
if(str[i]=="\""&&(str[i-1]!="\\")){
_123=!_123;
if(_124!==""){
var name=I.stringprepend+_126.length;
str=str.replace(_124,name);
_126.push([name,_124]);
}
_124="";
continue;
}
if(_123===true){
_124+=str[i];
}
}
return [str,_126];
}
function extractConversion(str){
var expr;
var _12a;
return 3;
var _12b=str.match(array[0]);
if(!isNull(_12b)){
expr=_12b[1];
_12a=_12b[2];
return [expr,_12a];
}
return [str,""];
}
function replaceStrings(str,_12d){
var i;
for(i=0;i<_12d.length;i++){
var item=_12d[i];
str=str.replace(item[0],item[1]);
}
return str;
}
function tokenize(str){
return str.match(/[a-zA-Z_][a-zA-Z0-9_:]*\s*[(]*/g);
}
function escapeUnicode(str){
var _132="";
for(var i=0;i<str.length;i++){
var c=str.charAt(i);
if(str.charCodeAt(i)>127){
c="_"+str.charCodeAt(i);
}
_132+=c;
}
return _132;
}
function scanCurrencyFormatting(str){
var tmp=I.format.currencies;
for(var _137 in tmp){
var cur=tmp[_137];
if(str.match(cur.regex)){
str=str.replace(cur.regex,"");
I.format.currency=true;
I.format.currencySymbol=cur.symbol;
I.format.decimals=cur.decimals;
}
}
return str;
}
function cleanup(str){
var i;
if(isNull(str)||!isdefined(str)||str===""){
return str;
}
str=scanCurrencyFormatting(str);
str=firstfilter(str);
str=strtrim(str);
var ret=extractStrings2(str);
str=ret[0];
var _13c=ret[1];
str=escapeUnicode(str);
str=replaceVariableNames(str);
str=prefilter(str);
str=customOperators(str);
var _13d=tokenize(str);
if(isNull(_13d)){
return str;
}
var _13e,type,_140;
for(i=0;i<_13d.length;i++){
_13e=_13d[i];
_13e=_13e.match(/\S+/)[0];
type=tokenType(_13e);
if(type=="function"){
var _141=_13e.match(/\w+/)[0];
_140=replacefn(_141);
re=new RegExp("([^.\\w]|^)"+_141+"\\s*[(]","g");
str=str.replace(re,"$1"+_140+"(");
continue;
}
if(type=="constant"){
var _142=_13e.match(/\w+/)[0];
re=new RegExp("([^.]|^)"+_142+"\\b","");
str=str.replace(re,"$1"+replacecn(_142));
continue;
}
if(type=="keyword"){
var _143=_13e.match(/\w+/)[0];
re=new RegExp("(\\s|^)"+_143+"\\b","");
str=str.replace(re," "+replacekeyword(_143));
continue;
}
if(type=="expression"){
var _144=replaceExpression(_13e);
re=new RegExp("\\b"+_13e+"\\b","");
str=str.replace(re,_144);
continue;
}
var _145=I.safeprepend+_13e.toLowerCase();
re=new RegExp("\\b"+_13e+"\\b","g");
str=str.replace(re,_145);
}
str=postfilter(str);
str=replaceStrings(str,_13c);
return str;
}
function replaceVariableNames(str){
str=replaceExpression(str);
while(str.match(/\b([a-zA-Z_][\w]*)\s+([a-zA-Z_][\w]*)/)){
str=str.replace(/\b([a-zA-Z_][\w]*)\s+([a-zA-Z_][\w]*)/,"$1_$2");
}
return str;
}
function replaceOperatorShortcuts(str){
while(str.match(/\b([0-9.]+)([\(a-zA-Z])/)){
str=str.replace(/\b(\d+)([\(a-zA-Z])/,"$1 * $2");
}
return str;
}
function iscomment(str){
if(str.match(/[\/][\/]/)){
return true;
}else{
return false;
}
}
function extractComment(str){
var a=str.match(/([\/][\/].*)/);
var _14b;
if(!isNull(a)){
_14b=str.split(/[\/][\/]+/)[0];
if(!isNull(_14b)&&isdefined(_14b)){
}else{
_14b="";
}
var _14c=str.match("[/][/](.*)")[1];
return [_14b,_14c];
}
return [str,""];
}
function extractTitle(str){
var a=str.split(/^\[[^\]]*\]/);
return a;
}
I.lastRecalculation=null;
I.recalculationDelay=50;
I.recalculationMinDelay=100;
I.recalculationTimeout=null;
var perftime=0;
var max_perf_time=0;
function generateGUID(){
var guid=Math.round(Math.random()*1000000000000);
return guid;
}
I.guid=generateGUID();
function scheduleRecalculation(){
var now=new Date();
var _151=now-I.lastRecalculation;
if(Log){
Log.update();
}
if(_151>=I.recalculationDelay){
recalculate();
I.lastRecalculation=new Date();
saveCalcCookie();
var _152=new Date();
perftime=_152-now;
if(perftime>I.recalculationDelay){
I.recalculationDelay=perftime+250;
}else{
I.recalculationDelay=perftime;
}
if(I.recalculationDelay<I.recalculationMinDelay){
I.recalculationDelay=I.recalculationMinDelay;
}
if(perftime>max_perf_time){
max_perf_time=perftime;
}
}else{
clearTimeout(I.recalculationTimeout);
I.recalculationTimeout=setTimeout("recalculate()",I.recalculationDelay);
}
}
function reset_cell(i){
I.inputs[i]=document.getElementById("input_"+i);
I.outputs[i]=document.getElementById("output_"+i);
I.outputCache[i]="";
I.outputs[i].innerHTML="";
setComment(i,"");
setTitleText(i,"");
reset_globals();
}
function reset_globals(){
I.format.currency=false;
InstaCalc.unitlabel="";
}
function valid_cell(i){
if(!isdefined(I.outputs[i])||!isdefined(I.inputs[i])){
return false;
}
if(isNull(I.inputs[i].value)||!isdefined(I.inputs[i].value)||I.inputs[i].value===""){
return false;
}
return true;
}
function simple_calculation(str){
}
function blank_calc_object(){
var ret={};
ret.commentText="";
ret.title="";
ret.input="";
ret.row="";
ret.parsed="";
ret.eval_result="";
ret.final_result="";
return ret;
}
function recalculate_cell(i){
var ret=blank_calc_object();
ret.input=I.inputs[i].value;
ret.row=i;
reset_cell(i);
if(!valid_cell(i)){
return ret;
}
var a=extractComment(ret.input);
ret.input=a[0];
ret.commentText=escapeHTML(a[1].toString());
ret.title=findTitle(ret.input);
parseCalculationObject(ret);
evaluateCalculationObject(ret);
if(InstaCalc.unitlabel){
ret.commentText=InstaCalc.unitlabel+ret.commentText;
}
displayCalculationObject(ret);
I.outputCache[i]=ret.final_result;
ret.result=ret.final_result;
return ret;
}
function displayCalculationObject(obj){
var i=obj.row;
var _15c=cleanVariable(escapeHTML(obj.final_result.toString()));
I.outputs[i].innerHTML=_15c;
if(!isNull(obj.commentText)&&isdefined(obj.commentText)){
if(I.usingCell3){
getComment(i).innerHTML=obj.commentText;
}else{
if(obj.final_result!=""){
I.outputs[i].innerHTML+="<span class = \"outputCommentSpacer\"></span>";
}
I.outputs[i].innerHTML+=" "+"<span class=\"outputComment\">"+obj.commentText+"</span>";
}
}
if(!isNull(obj.title)){
setTitleText(i,obj.title);
}
}
function parseCalculationObject(obj){
var i=obj.row;
var _15f=obj.input;
if(I.inputCache[i]!=null&&I.inputCache[i][0]==_15f){
obj.parsed=I.inputCache[i][1];
I.format.currency=I.outputCache.format[i].currency;
I.format.currencySymbol=I.outputCache.format[i].currencySymbol;
I.format.decimals=I.outputCache.format[i].decimals;
}else{
obj.parsed=cleanup(_15f);
I.inputCache[i]=[_15f,obj.parsed];
I.outputCache.format[i]={};
I.outputCache.format[i].currency=I.format.currency;
I.outputCache.format[i].currencySymbol=I.format.currencySymbol;
I.outputCache.format[i].decimals=I.format.decimals;
}
}
function evaluateCalculationObject(obj){
var ret=evaluateCalculation(obj.parsed);
obj.eval_result=ret.eval_result;
var ret2=cleanupEvalResult(ret.eval_result);
obj.final_result=ret2.final_result;
if(ret.error){
obj.error=ret.error;
if(ret.error instanceof ReferenceError){
obj.status="Waiting to define variable in row "+(obj.row+1)+"...";
}else{
obj.status="Waiting on row "+(obj.row+1)+"...";
}
}
if(ret2.error){
obj.error=ret2.error;
obj.status=obj.status="Waiting on row "+(obj.row+1)+"...";
}
return obj;
}
function cleanupEvalResult(_163){
var ret={};
ret.final_result="";
if(_163=="NaN"||_163=="undefined"){
_163="";
ret.error="undefined";
}
if(typeof (_163)=="function"){
_163="";
}
if(typeof (_163)=="number"){
if(_163==Infinity){
_163="Infinity";
}else{
if(_163==-Infinity){
_163="-Infinity";
}else{
if(isNaN(_163)){
_163="Number undefined";
ret.error=true;
}else{
_163=formatNumber(_163);
if(_163==Infinity){
_163="Infinity";
}
}
}
}
}
if(typeof (_163)=="boolean"){
_163=_163.toString();
}
if(!_163){
_163="";
}
ret.final_result=_163;
return ret;
}
function evaluateCalculation(str){
var ret={};
ret.eval_result="";
if(!isNull(str)){
try{
ret.eval_result=eval(str);
}
catch(e){
ret.error=e;
ret.eval_result="";
}
}
return ret;
}
function shouldRedoCalculation(obj){
if(isNull(obj)){
return false;
}
if(obj["error"]){
return true;
}
if(obj["parsed"].match("getOutputValue")){
return true;
}
return false;
}
function recalculate(){
var tmp="";
var _169="";
var _16a=false;
var i;
I.clearLocals();
var redo=[];
for(var i=0;i<I.cells;i++){
var ret=recalculate_cell(i);
if(shouldRedoCalculation(ret)){
redo.push(i);
}
}
if(redo.length>=1){
for(var i=0;i<redo.length;i++){
recalculate_cell(redo[i]);
}
}
setStatus(_169);
}
I.cache_count=0;
I.cache_max=1000;
I.cache=[];
I.cache_hits=0;
I.cache_misses=0;
function get_cache(key){
if(I.cache[key]){
I.cache_hits+=1;
return I.cache[key];
}
I.cache_misses+=1;
return false;
}
function clear_cache(){
I.cache=[];
I.cache_count=0;
}
function set_cache(key,_170){
if(I.cache_count>I.cache_max){
clear_cache();
}
I.cache[key]=_170;
I.cache_count+=1;
return _170;
}
function parseNumber(n){
var _172=get_cache(n);
if(_172){
return _172;
}
if(n==Infinity||n==-Infinity){
return n;
}
if(n.match(/^0x[0-9a-f]+/i)){
n=parseInt(n,16);
}
if(matches=n.toString().match(/^0b([01]+)/i)){
n=parseInt(matches[1],2);
}
if(matches=n.toString().match(/^0o([01234567]+)/i)){
n=parseInt(matches[1],8);
}
var num=new NumberFormat();
num.setInputDecimal(".");
num.setNumber(n);
num.setPlaces("-1",false);
num.setCurrencyValue("$");
num.setCurrency(false);
num.setCurrencyPosition(num.LEFT_OUTSIDE);
num.setNegativeFormat(num.LEFT_DASH);
num.setNegativeRed(false);
num.setSeparators(false,",",",");
var str=parseFloat(num.toFormatted());
set_cache(n,str);
return str;
}
var num=new NumberFormat();
num.setInputDecimal(".");
num.setCurrency(I.format.currency);
num.setCurrencyPosition(num.LEFT_OUTSIDE);
num.setNegativeFormat(num.LEFT_DASH);
num.setNegativeRed(false);
num.setSeparators(true,",",",");
I.settings.numberFormat={};
I.settings.numberFormat.precisionLimitUpper=1000000000000000;
I.settings.numberFormat.precisionLimitLower=1e-11;
I.settings.numberFormat.roundingLimit=1000000000;
I.settings.numberFormat.precisionDefault=15;
I.settings.numberFormat.precisionExponential=10;
I.settings.numberFormat.fixedDefault=11;
function formatNumber(n){
var str=n.toString();
if(n>=I.settings.numberFormat.precisionLimitUpper){
return n.toPrecision(10).replace("e+","e");
}
if(InstaCalc.unitlabel!=""){
if(n<=I.settings.numberFormat.precisionLimitLower){
return n.toString();
}
}
n=parseFloat(n.toPrecision(I.settings.numberFormat.precisionDefault));
if(I.format.currency){
n=n.toFixed(I.format.decimals);
}else{
n=n.toFixed(I.settings.numberFormat.fixedDefault);
}
if(n>=I.settings.numberFormat.roundingLimit){
n=parseFloat(n).toPrecision(I.settings.numberFormat.precisionDefault);
}else{
num.setPlaces("-1",false);
}
num.setPlaces("-1",false);
if(I.format.currency){
num.setPlaces(I.format.decimals);
num.setCurrencyValue(I.format.currencySymbol);
}
num.setNumber(n);
return num.toFormatted();
}
function inputReplace(find,_178){
var i;
for(i=0;i<I.inputs.length;i++){
var str=getInputValue(i);
if(str.match(find)){
var _17b=str.replace(find,_178);
setInputValue(i,_17b);
}
}
recalculate();
}
function setBarChart(){
inputReplace(/^\s*\w+chart/,"barchart");
}
function setLineChart(){
inputReplace(/^\s*\w+chart/,"linechart");
}
function setPieChart(){
inputReplace(/^\s*\w+chart/,"piechart");
}
function getRowValues(_17c,end){
if(typeof (_17c)=="string"){
_17c=parseInt(_17c,10);
}
if(typeof (end)=="string"){
end=parseInt(end,10);
}
if(end<_17c){
return [];
}
if(_17c<1||end>I.cells){
return [];
}
var a=[];
var t=[];
for(row=_17c;row<=end;row++){
var cell=row-1;
var _181="Row "+row;
var val;
try{
val=getOutputValue(cell);
_181=getTitleText(cell);
}
catch(e){
val=0;
_181="Row "+row;
}
if(typeof (val)!="number"){
val=parseNumber(val);
}
if(_181===""){
_181="Row "+row;
}
a.push([row,val]);
t.push([_181,val]);
}
I.datatitles=t;
I.data=a;
return a;
}
I.id=false;
function setupCookies(){
I.id=Cookie.get("id");
if(!I.id){
I.id=Math.round(Math.random()*100000000000000000000);
Cookie.set("id",id,{duration:1000});
}
}
function saveCalcCookie(){
if(!I.id){
return;
}
updateLocalPermalink();
Cookie.set("last",I.permalink,{duration:365});
}
function loadCookieData(){
var last=Cookie.get("last");
if(last){
loadCellsFromURL(last);
recalculate();
}
}
function loadWindowSettings(){
if(Cookie.get("showpanel")=="false"){
hideItem("user-panel");
}else{
showItem("user-panel");
}
}
function saveWindowSettings(){
if($("user-panel").style.display=="none"){
Cookie.set("showpanel","false",{duration:365});
}else{
Cookie.set("showpanel","true",{duration:365});
}
}
function instacalc_compute(_184){
var _185=new Array(_184.length);
for(var i=0;i<_184.length;i++){
reset_globals();
var ret=blank_calc_object();
ret.input=_184[i];
ret.row=i;
var a=extractComment(ret.input);
ret.input=a[0];
ret.commentText=escapeHTML(a[1].toString());
ret.title=findTitle(ret.input);
parseCalculationObject(ret);
evaluateCalculationObject(ret);
if(InstaCalc.unitlabel){
ret.commentText=InstaCalc.unitlabel+ret.commentText;
}
ret.result=ret.final_result;
_185[i]=ret;
}
return _185;
}
function encodeForURL(str){
return encodeBase64ForURL(Utf8.encode(str));
}
function decodeFromURL(url){
return Utf8.decode(decodeBase64ForURL(url));
}
function createDataString(_18b){
var str="";
var tmp="";
for(i=0;i<_18b.length;i++){
tmp=_18b[i];
tmp=tmp.replace(/[|]/g,I.separator);
if(i===0){
str+=tmp;
}else{
str+="|"+tmp;
}
}
return str;
}
function getCurrentDataString(){
saveCells();
return createDataString(saved);
}
function createURL(){
var str=encodeForURL(getCurrentDataString());
var desc=encodeForURL(getDescription());
var _190=getShowHideSettings();
var _191="?d="+desc+"&c="+str+"&s="+_190+"&v="+I.version;
I.permalink=I.settings.base_url+_191;
I.embedlink=I.settings.embed_preview_url+_191;
if(I.permalink.length>2000){
setStatus(Messages.URL_TOO_LONG);
}
}
function embedPixelHeight(){
return 80+(24*I.cells);
}
function hasURLParams(){
str=getURLParam("c",getURLParams());
if(isNull(str)||str.length==0){
return false;
}else{
return true;
}
}
function getURLParams(url){
if(url==null){
url=window.location.href;
}
var _193=url.match(/(.*)([#?].+)/);
var _194="";
if(_193){
_194=_193[2];
}
return _194;
}
function getURLNoParams(){
var url=window.location.href;
var base=url.split(/[#?]/)[0];
return base;
}
function getURLDirectory(){
return window.location.href.match(".*/");
}
function loadCellsFromURL(url){
var str=getURLParam("c",url);
str=decodeFromURL(str);
if(isNull(str)){
return;
}
loadCellsFromDataString(str);
}
function showHideCellsFromURL(url){
var str=unescape(getURLParam("s",url));
I.showHide=str;
showHideCells(str);
}
function setDescriptionFromURL(url){
var str=getURLParam("d",url);
if(str!==""){
I.description=decodeFromURL(str);
setDescription(I.description);
}
}
function loadDataFromURL(url){
I.resetChart();
eraseRows();
setDescription("");
loadCellsFromURL(url);
showHideCellsFromURL(url);
setDescriptionFromURL(url);
recalculate();
}
function loadURLParams(){
loadDataFromURL(getURLParams());
}
function saveSettings(){
I.showHideSettings=getShowHideSettings();
}
function restoreSettings(){
showHideCells(I.showHideSettings);
}
function loadCellsFromString(str){
var _19f=str.split("\n");
loadInput(_19f);
}
function loadCellsFromDataString(str){
var _1a1=str.split("|");
for(var i=0;i<_1a1.length;i++){
_1a1[i]=unescapeSeparator(_1a1[i]);
}
loadInput(_1a1);
saveCells();
}
function unescapeSeparator(str){
var re=new RegExp(I.separator,"g");
str=str.replace(re,"|");
return str;
}
function loadInput(_1a5){
eraseRows();
addMultipleCells(_1a5.length);
setCells(_1a5);
}
function loadTextArea(){
var foo=document.getElementById("inputtextarea");
var str="";
for(i=0;i<I.inputs.length;i++){
str+="<span style=\"color: blue;\">"+I.inputs[i].value+"</span><br/>";
}
foo.value=str;
return str;
}
function exportOutputHTML(){
var str="";
for(var i=0;i<I.outputs.length;i++){
str+="<span class=\"textitem\">"+getOutput(i).innerHTML+"&nbsp;"+"</span><br/>";
}
return str;
}
I.settings.exportTable={};
function exportHTML(){
var str="";
for(var i=0;i<I.inputs.length;i++){
str+="<span>"+getInputValue(i)+"</span><br/>";
}
str="";
str+="<div><table width=\"600px\" id=\"html-table\">";
str+="<tr class=\"html-header\"><th>Row</td><th>"+"Calculation"+"</th>"+"<th>Result</th></tr>";
var i;
for(i=0;i<I.inputs.length;i++){
var _1ac=getInputValue(i);
var _1ad=getOutput(i).innerHTML;
str+="<tr class=\"html-number\">";
str+="<td>r"+(i+1)+"</td>";
str+="<td class=\"html-input\">"+_1ac+"</td>";
str+="<td class=\"html-output \">"+_1ad+"</td>";
str+="</tr>";
}
str+="</table></div>";
return str;
}
function exportString(){
var i;
var str="";
for(i=0;i<I.inputs.length;i++){
str+=getInputValue(i);
if(i+1<I.inputs.length){
str+="\n";
}
}
return str;
}
I.toString=function(){
return exportString();
};
function saveCells(){
saved=getValueArray(I.inputs);
}
function loadCells(){
setValueArray(saved,I.inputs);
}
function getValueArray(_1b0){
var _1b1=[];
if(!isdefined(_1b0)){
return _1b0;
}
for(var i=0;i<_1b0.length;i++){
_1b1[i]=_1b0[i].value;
}
return _1b1;
}
function setValueArray(_1b3,_1b4){
for(var i=0;i<_1b3.length;i++){
if(isdefined(_1b3[i])&&isdefined(_1b4[i])){
_1b4[i].value=_1b3[i];
}
}
}
function setCells(_1b6){
if(!isdefined(_1b6)){
_1b6=saved;
}
for(var i=0;i<I.cells;i++){
var _1b8="";
if(isdefined(_1b6[i])){
_1b8=_1b6[i];
}
setInputValue(i,_1b8);
}
}
function rowselect(a,b){
rows=[];
if(b>a){
return rows;
}
if(b>I.cells){
return rows;
}
for(i=a;i<=b;i++){
rows.push(getOutput(i+1).innerHTML);
}
return rows;
}
function changeRow(row){
if(getInputValue(row)===""){
deleteRow(row);
}else{
insertRow(row);
}
}
function eraseRows(){
var _1bc=document.getElementById("myTbody");
if(isdefined(_1bc)&&!isNull(_1bc)){
var _1bd=document.getElementById("myTbody");
while(_1bd.childNodes.length>0){
_1bd.removeChild(_1bd.firstChild);
}
}
I.cells=0;
I.inputs=[];
I.titles=[];
}
function clearAllRows(){
var tmp=[];
for(var i=0;i<I.cells;i++){
tmp.push("");
}
setCells(tmp);
recalculate();
}
function deleteRow(row){
if(I.cells<=1){
return;
}
saveCells();
saved.splice(row,1);
var v=getVisibility();
v.splice(row,1);
var tmp=createDataString(saved);
if(row>0){
selectRow(getSelectedRow()-1);
}else{
selectRow(0);
}
loadCellsFromDataString(tmp);
showAllInputs();
recalculate();
setVisibility(v);
return;
}
function insertRow(row){
if(I.cells>=(I.maxCells-1)){
setStatus("You hit the max -- can't insert any more rows");
return;
}
saveCells();
saved.splice(row+1,0,"");
var v=getVisibility();
v.splice(row+1,0,"s");
var tmp=createDataString(saved);
loadCellsFromDataString(tmp);
recalculate();
setVisibility(v);
return;
}
function getVisibility(){
I.settings.visibility=[];
for(var i=0;i<I.inputs.length;i++){
if(inputHidden(i)){
I.settings.visibility[i]="h";
}else{
I.settings.visibility[i]="s";
}
}
return I.settings.visibility;
}
function setVisibility(_1c7){
var i=0;
for(i=0;i<I.inputs.length;i++){
if(_1c7[i]=="h"){
hideInput(i);
}else{
showInput(i);
}
}
getVisibility();
}
function addCell3(div){
I.usingCell3=true;
var html="";
var i=I.cells;
html+="<div class=\"row\" onkeyup=\"recalculate()\">";
html+="<div class=\"row-number\" title=\"Click to modify row\" onContextMenu=\"return false;\" id=\"parentmenu_"+i+"\" >"+"R"+(i+1)+"</div>";
html+="<div class=\"row-inputarea\">";
html+="<input id=\"input_"+i+"\" autocomplete=\"OFF\" class=\"row-input\" onFocus= \"selectRow("+i+")\" />";
html+="<div id=\"title_"+i+"\" class=\"titleArea\" >"+"</div>";
html+="</div>";
html+="<div class=\"row-outputarea\">";
html+="<div id=\"output_"+i+"\" class=\"row-output\" >"+"</div>";
html+="<div id=\"comment_"+i+"\" class=\"comment\" >"+"</div>";
html+="</div>";
html+="</div>";
div.innerHTML+=html;
hideObject(getTitle(i));
showInput(i);
I.cells++;
return html;
}
function addCell2(_1cc){
var html="";
html+="<div class=\"row\">";
html+="<div class=\"row-number\" title=\"Click to modify row\" onContextMenu=\"return false;\" id=\"parentmenu_"+i+"\" >"+"R"+(i+1)+"</div>";
html+="<div class=\"row-inputarea\">";
html+="<input id=\"input_"+i+"\" autocomplete=\"OFF\" class=\"row-input\" onFocus= \"selectRow("+i+")\" />";
html+="<div id=\"title_"+i+"\" class=\"titleArea\" >"+"</div>";
html+="</div>";
html+="<div id=\"output_"+i+"\" title = \"Click to show/hide details\" class=\"row-output\" >"+"</div>";
html+="</div>";
_1cc.innerHTML+=html;
hideObject(getTitle(i));
showInput(i);
I.cells++;
return html;
}
function addCell(_1ce,i,_1d0){
var _1d1=document.getElementById("myTbody");
var _1d2,_1d3;
_1d2=_1d1.insertRow(_1d1.rows.length);
_1d2.className="tr0";
_1d3=_1d2.insertCell(_1d2.cells.length);
_1d3.className="col0";
_1d3.innerHTML="<span class=\"number\" title=\"Click to modify row\" onContextMenu=\"return false;\" id=\"parentmenu_"+i+"\" >"+"R"+(i+1)+"</span>";
if(I.settings.standalone){
_1d3.innerHTML+="<div class=\"popitmenu\" id=\"childmenu_"+i+"\">"+"<a href=\"#R"+(i+1)+"\" onClick=\"javascript:toggleInput("+i+")\">Show/Hide This Row</a>"+"<a href=\"#R"+(i+1)+"\" onClick=\"javascript:selectRow("+i+"); insertRow("+i+")\">Insert Row Below </a>"+"<a href=\"#R"+(i+1)+"\" onClick=\"javascript:selectRow("+i+"); deleteRow("+i+")\">Delete Row "+(i+1)+"</a>"+"</div>";
}else{
_1d3.innerHTML+="<div class=\"popitmenu\" id=\"childmenu_"+i+"\">"+"<a href=\"javascript:toggleInput("+i+")\">Show/Hide This Row</a>"+"<a href=\"javascript:selectRow("+i+"); insertRow("+i+")\">Insert Row Below </a>"+"<a href=\"javascript:selectRow("+i+"); deleteRow("+i+")\">Delete Row "+(i+1)+"</a>"+"</div>";
}
at_attach("parentmenu_"+i,"childmenu_"+i,"click","y","pointer");
_1d3=_1d2.insertCell(_1d2.cells.length);
_1d3.className="col1";
_1d3.innerHTML="<div class=\"col1\"><a name=\"R"+(i+1)+"\"></a><input id=\"input_"+i+"\" autocomplete=\"OFF\" class=\"inputArea\" onFocus= \"selectRow("+i+")\" /><div id=\"title_"+i+"\" class=\"titleArea\" onClick=\"toggleInput("+i+")\">"+"</div></div>";
_1d3=_1d2.insertCell(_1d2.cells.length);
_1d3.className="col2";
_1d3.innerHTML="<div id=\"output_"+i+"\" onClick=\"toggleInput("+i+")\" title = \"Click to show/hide details\" class=\"outputArea\" >"+"</div>";
hideObject(getTitle(i));
showInput(i);
}
function selectRow(n){
var prev=I.selected;
I.selected=n;
}
function selectFirstRow(){
I.selected=-1;
selectNextRow();
}
function selectNextRow(){
while(I.selected<I.inputs.length-1){
I.selected++;
var x=getInput(I.selected);
if(isObjectVisible(x)){
selectRow(I.selected);
try{
x.focus();
x.select();
}
catch(e){
}
return;
}
}
return;
}
function selectRow2(i){
var x=getInput(i);
if(isObjectVisible(x)){
selectRow(i);
try{
x.focus();
x.select();
}
catch(e){
}
}
return;
}
function selectPrevRow(){
while(I.selected>0){
I.selected--;
var x=getInput(I.selected);
if(isObjectVisible(x)){
selectRow(I.selected);
try{
x.focus();
x.select();
}
catch(e){
}
return;
}
}
return;
}
function getSelectedRow(){
return I.selected;
}
function addMultipleCells(n){
if(I.cells+n>I.maxCells){
setStatus("Whoa there, that's a lot of cells. Do you have an equation that won't fit? Send me feedback about what you need!");
return;
}
var v=getVisibility();
saveCells();
var i;
for(i=0;i<n;i++){
addCell("",I.cells,I.cells);
I.cells++;
}
setCells();
recalculate();
setVisibility(v);
}
function addMultipleCells3(n){
if(I.cells+n>=I.maxCells){
return;
}
var v=getVisibility();
saveCells();
var i;
for(i=0;i<n;i++){
addCell3($("cellrows"));
}
setCells();
recalculate();
setVisibility(v);
}
function addMultipleCells2(n){
if(I.cells+n>=I.maxCells){
return;
}
var v=getVisibility();
saveCells();
var i;
for(i=0;i<n;i++){
addCell2($("cellrows"));
}
setCells();
recalculate();
setVisibility(v);
}
function toggleInput(i){
if(I.settings.rowclicks==false){
return;
}
if(inputHidden(i)){
showInput(i);
}else{
hideInput(i);
}
}
function hideAllInputs(){
var i;
for(i=0;i<I.cells;i++){
hideInput(i);
}
}
function showAllInputs(){
var i;
for(i=0;i<I.cells;i++){
showInput(i);
}
}
function hideInput(i){
if(I.settings.embed||true){
hideObject(getInput(i));
showObject(getTitle(i));
return;
}
var foo=new Effect.Fade(getInput(i),{duration:0.1});
foo=new Effect.Appear(getTitle(i),{duration:0.2,scaleY:false});
}
function showInput(i){
if(I.settings.embed||true){
hideObject(getTitle(i));
showObject(getInput(i));
return;
}
hideObject(getTitle(i));
var foo=new Effect.Appear(getInput(i),{duration:0.2});
}
function inputHidden(i){
return getInput(i).style.display=="none";
}
function getInput(i){
if(!isdefined(I.inputs[i])||I.inputs[i]===null){
I.inputs[i]=document.getElementById("input_"+i);
}
return I.inputs[i];
}
function reloadInputs(){
var i;
I.inputs=[];
for(i=0;i<I.cells;i++){
I.inputs[i]=null;
getInput(i);
}
return;
}
function reloadOutputs(){
var i;
I.outputs=[];
for(i=0;i<I.cells;i++){
I.outputs[i]=null;
getOutput(i);
}
return;
}
function getInputValue(i){
return getInput(i).value;
}
function setInputValue(i,str){
getInput(i).value=str;
}
function setComment(i,str){
var _1f3=getComment(i);
if(_1f3){
_1f3.innerHTML=str;
}
}
function getComment(i){
if(!isdefined(I.comments[i])){
I.comments[i]=document.getElementById("comment_"+i);
}
return I.comments[i];
}
function setComment(i,str){
}
function getOutput(i){
if(!isdefined(I.outputs[i])){
I.outputs[i]=document.getElementById("output_"+i);
}
return I.outputs[i];
}
function getOutputValue(i){
if(i>=0&&i<I.cells){
str=I.outputCache[i];
return parseNumber(I.outputCache[i]);
}else{
return 0;
}
}
function getTitle(i){
if(!isdefined(I.titles[i])){
I.titles[i]=document.getElementById("title_"+i);
}
return I.titles[i];
}
function setTitleText(i,str){
getTitle(i).innerHTML=str;
}
function getTitleText(i){
return getTitle(i).innerHTML;
}
function textMode(){
var _1fd=document.getElementById("textmode");
var _1fe=document.getElementById("gridmode");
hideObject(_1fe);
var foo=new Effect.Appear(_1fd);
}
function gridMode(){
var _200=document.getElementById("textmode");
var _201=document.getElementById("gridmode");
var foo=new Effect.Appear(_201);
hideObject(_200);
}
KeyEvents={};
KeyEvents.specialKeyMap={13:selectNextRow,40:selectNextRow,38:selectPrevRow};
function specialKeyMap(e){
}
function documentKeyListener(e){
if(e==null){
keycode=event.keyCode;
}else{
keycode=e.which;
}
if(keycode==8){
if(confirmClick("Leave your current calculation?")){
}else{
e.preventDefault();
}
}
}
function keyListener(e){
if(e==null){
keycode=event.keyCode;
}else{
keycode=e.which;
}
var key=keycode;
var fn=KeyEvents.specialKeyMap[key];
if(fn){
fn();
}
scheduleRecalculation();
}
function showHideChart(){
if(I.hasChart){
showItem("chart");
}else{
hideItem("chart");
}
}
function init(){
if(I.settings.embed){
return;
}
var foo;
if(I.hasChart){
showItem("chart");
}else{
if(!I.settings.standalone){
}
}
if(typeof (loadOnlineContent)=="function"){
loadOnlineContent();
}
}
function showHideCells(_209){
if(isNull(_209)){
return;
}
var i;
for(i=0;i<I.cells;i++){
if(_209.charAt(i)=="h"){
hideInput(i);
}else{
showInput(i);
}
}
return _209;
}
function getShowHideSettings(){
var _20b="";
var i;
for(i=0;i<I.cells;i++){
if(inputHidden(i)){
_20b+="h";
}else{
_20b+="s";
}
}
return _20b;
}
function insertRowIntoString(row){
saveCells();
}
function hideAll(_20e){
var i;
for(i=0;i<_20e.length;i++){
hideItem(_20e[i]);
}
return;
}
function toggleAndHide(item,_211){
for(i=0;i<_211.length;i++){
if(item==_211[i]){
toggleItem(_211[i]);
}else{
hideItem(_211[i]);
}
}
}
function getOutputs(){
var i;
var a=[];
for(i=0;i<I.outputCache.length;i++){
a.push(I.outputCache[i]);
}
return a;
}
function createCalc(div,_215){
div.innerHTML="";
}
function createPage(_216){
var _217=document.getElementById("variablearea");
I.status=document.getElementById("status");
var _218={};
document.getElementById("myTable").onkeyup=keyListener;
eraseRows();
if(I.settings.embed==false){
}
hideAll(I.divs);
if(hasURLParams()){
loadURLParams();
}else{
for(i=0;i<I.startcells;i++){
addCell("",i,"");
I.cells++;
}
if(_216!=null){
loadInput(_216);
}
}
}
I.timer=null;
I.delay=300;
function startTimer(){
I.timer=self.setTimeout("startTimer()",I.delay);
setStatus(Math.random().toString());
}
function usesCharts(){
str=exportString();
if(str.match("chart")){
return true;
}
return false;
}
function clearCommand(){
if(confirmClick("This will erase all rows and notes. Continue?")==true){
clearAllRows();
showAllInputs();
setDescription("");
}
}
function performClear(){
setUndo();
showItem("undo");
clearAllRows();
showAllInputs();
setDescription("");
}
I.undo="";
function setUndo(){
createURL();
I.undo=I.permalink;
}
function undo(){
loadCellsFromURL(I.undo);
recalculate();
}
var Unit={};
Unit.label="";
Unit.alias={};
Unit.alias.mph="miles/hour";
Unit.alias.mpg="miles/gallon";
Unit.alias.fps="feet/second";
Unit.alias.kph="km/hour";
Unit.alias.kmph="km/hour";
Unit.alias.kmh="km/hour";
Unit.alias.hz="times/second";
Unit.angle={};
Unit.angle.radian=Unit.angle.radians=Unit.angle.rad=1;
Unit.angle.degree=Unit.angle.degrees=Unit.angle.deg=Unit.angle.radian*Math.PI/180;
Unit.angle.gradian=Unit.angle.gradians=Unit.angle.grad=Unit.angle.radian*Math.PI/200;
Unit.length={};
Unit.length.SI={};
Unit.length.SI.meter=1;
Unit.mass={};
Unit.mass.SI={};
Unit.mass.SI.kilogram=1;
Unit.time={};
Unit.time.SI={};
Unit.time.SI.second=1;
Unit.area=["\\^2","sq","squared","square"];
Unit.area.SI={};
Unit.area.SI.meter=2;
Unit.volume=["\\^3","cu","cubed","cubic"];
Unit.volume.SI={};
Unit.volume.SI.meter=3;
Unit.speed={};
Unit.liquid={};
Unit.liquid.SI={};
Unit.liquid.SI.meter=3;
Unit.power={};
Unit.force={};
Unit.torque={};
Unit.energy={};
Unit.data={};
Unit.currency={};
Unit.temperature={};
Unit.temperature.conversion="function";
Unit.temperature.c=Unit.temperature.celsius=Unit.temperature.celcius=Unit.temperature.centigrade=[function(C){
return C;
},function(C){
return C;
}];
Unit.temperature.f=Unit.temperature.fahrenheit=[function(F){
return (F-32)*5/9;
},function(C){
return (C*9/5)+32;
}];
Unit.temperature.k=Unit.temperature.kelvin=[function(K){
return K-273.15;
},function(C){
return C+273.15;
}];
Unit.temperature.r=Unit.temperature.rankine=[function(R){
return (R*5/9)-273.15;
},function(C){
return (C+273.15)*9/5;
}];
Unit.data.base=1;
Unit.data.bit=Unit.data.bits=1;
Unit.data.kilobit=Unit.data.kilobits=Unit.data.kbit=Unit.data.kbits=1024*Unit.data.bit;
Unit.data.megabit=Unit.data.megabits=Unit.data.mbit=Unit.data.mbits=1024*Unit.data.kbit;
Unit.data.gigabit=Unit.data.gigabits=Unit.data.gbit=Unit.data.gbits=1024*Unit.data.mbit;
Unit.data.terabit=Unit.data.terabits=Unit.data.tbit=Unit.data.tbits=1024*Unit.data.gbit;
Unit.data.petabit=Unit.data.petabits=Unit.data.pbit=Unit.data.pbits=1024*Unit.data.tbit;
Unit.data.exabit=Unit.data.exabits=Unit.data.ebit=Unit.data.ebits=1024*Unit.data.pbit;
Unit.data["byte"]=Unit.data["bytes"]=8*Unit.data.bit;
Unit.data["kilobyte"]=Unit.data["kilobytes"]=Unit.data["kb"]=Unit.data["kbs"]=1024*Unit.data["byte"];
Unit.data["megabyte"]=Unit.data["megabytes"]=Unit.data["mb"]=Unit.data["mbs"]=1024*Unit.data.kb;
Unit.data["gigabyte"]=Unit.data["gigabytes"]=Unit.data["gb"]=Unit.data["gbs"]=1024*Unit.data.mb;
Unit.data["terabyte"]=Unit.data["terabytes"]=Unit.data["tb"]=Unit.data["tbs"]=1024*Unit.data.gb;
Unit.data["petabyte"]=Unit.data["petabytes"]=Unit.data["pb"]=Unit.data["pbs"]=1024*Unit.data.tb;
Unit.data["exabyte"]=Unit.data["exabytes"]=Unit.data["eb"]=Unit.data["ebs"]=1024*Unit.data.pb;
Unit.currency.base=1;
Unit.currency.dollar=Unit.currency.dollars=1;
Unit.currency.penny=Unit.currency.pennies=Unit.currency.cent=Unit.currency.cents=0.01*Unit.currency.dollars;
Unit.constant={};
Unit.constant.base=1;
Unit.constant.unity=1;
Unit.constant.times=Unit.constant.time=1;
Unit.constant.kilotimes=Unit.constant.kilotime=1000*Unit.constant.time;
Unit.time.base=1;
Unit.time.name="time";
Unit.time.second=Unit.time.seconds=Unit.time.s=Unit.time.sec=Unit.time.secs=1;
Unit.time.ps=Unit.time.picosecond=Unit.time.picoseconds=1e-12*Unit.time.second;
Unit.time.ns=Unit.time.nanosecond=Unit.time.nanoseconds=1e-9*Unit.time.second;
Unit.time.us=Unit.time.microsecond=Unit.time.microseconds=0.000001*Unit.time.second;
Unit.time.ms=Unit.time.millisecond=Unit.time.milliseconds=0.001*Unit.time.second;
Unit.time.minute=Unit.time.minutes=Unit.time.min=Unit.time.mins=60*Unit.time.second;
Unit.time.hour=Unit.time.hours=Unit.time.hr=Unit.time.hrs=Unit.time.h=60*Unit.time.minute;
Unit.time.day=24*Unit.time.hour;
Unit.time.days=24*Unit.time.hour;
Unit.time.week=7*Unit.time.day;
Unit.time.weeks=7*Unit.time.day;
Unit.time.fortnight=2*Unit.time.week;
Unit.time.fortnights=2*Unit.time.week;
Unit.time.month=4.34812141*Unit.time.week;
Unit.time.months=4.34812141*Unit.time.week;
Unit.time.year=12*Unit.time.month;
Unit.time.years=12*Unit.time.month;
Unit.time.decade=10*Unit.time.year;
Unit.time.decades=10*Unit.time.year;
Unit.time.century=100*Unit.time.year;
Unit.time.centuries=100*Unit.time.year;
Unit.time.millenium=1000*Unit.time.year;
Unit.time.milleniums=1000*Unit.time.year;
Unit.time.millenia=1000*Unit.time.year;
Unit.energy.base=1;
Unit.energy.name="energy";
Unit.energy.joule=Unit.energy.joules=Unit.energy.j=1;
Unit.energy["electron volt"]=Unit.energy["ev"]=1.60217646e-19*Unit.energy.joule;
Unit.energy["watt-hour"]=Unit.energy["watt hour"]=Unit.energy["w h"]=3600*Unit.energy.joule;
Unit.energy["kilowatt-hour"]=Unit.energy["kilowatt hour"]=Unit.energy["kwh"]=Unit.energy["kw h"]=3600*1000*Unit.energy.joule;
Unit.energy["btu"]=Unit.energy["btus"]=Unit.energy["british thermal unit"]=Unit.energy["british thermal units"]=1055.05585*Unit.energy.joule;
Unit.energy["calorie"]=Unit.energy["calories"]=Unit.energy["cal"]=4.184*Unit.energy.joule;
Unit.energy["kilocalorie"]=Unit.energy["kilocalories"]=Unit.energy["kcal"]=Unit.energy["kcals"]=1000*Unit.energy.calorie;
Unit.force.base=1;
Unit.force.name="force";
Unit.force.newton=Unit.force.n=1;
Unit.force["pound-force"]=Unit.force["pound force"]=Unit.force["lb force"]=Unit.force["lbf"]=Unit.force["lb"]=4.44822162*Unit.force.newton;
Unit.torque.base=1;
Unit.torque.name="torque";
Unit.torque["newton-meter"]=Unit.torque["newton meter"]=Unit.torque["newton meters"]=Unit.torque["n m"]=1;
Unit.torque["foot lb"]=Unit.torque["ft lb"]=Unit.torque["foot-pound"]=Unit.torque["foot pound"]=1.35581795*Unit.torque["N m"];
Unit.torque["foot lbs"]=Unit.torque["ft lbs"]=Unit.torque["foot-pounds"]=Unit.torque["foot pounds"]=1.35581795*Unit.torque["N m"];
Unit.power.base=1;
Unit.power.name="power";
Unit.power.watt=Unit.power.watts=Unit.power.w=1;
Unit.power.milliwatt=Unit.power.milliwatts=0.001*Unit.power.watt;
Unit.power.kilowatt=Unit.power.kilowatts=Unit.power.kw=1000*Unit.power.watt;
Unit.power.megawatt=Unit.power.megawatts=1000000*Unit.power.watt;
Unit.power.gigawatt=Unit.power.gigawatts=Unit.power.gw=1000000000*Unit.power.watt;
Unit.power.horsepower=Unit.power.hp=745.6998715822702*Unit.power.watt;
Unit.liquid.base=1;
Unit.liquid.name="Liquid measure";
Unit.liquid.liter=Unit.liquid.liters=Unit.liquid.litre=Unit.liquid.litres=Unit.liquid.l=Unit.liquid.ls=0.001;
Unit.liquid.ml=Unit.liquid.mls=0.001*Unit.liquid.liter;
Unit.liquid.milliliter=Unit.liquid.milliliters=Unit.liquid.millilitre=Unit.liquid.millilitres=0.001*Unit.liquid.liter;
Unit.liquid.cc=Unit.liquid.ccs=Unit.liquid.ml;
Unit.liquid.tsp=Unit.liquid.tsps=4.92892161*Unit.liquid.ml;
Unit.liquid.teaspoon=Unit.liquid.teaspoons=4.92892161*Unit.liquid.ml;
Unit.liquid.tbsp=Unit.liquid.tbsps=3*Unit.liquid.tsp;
Unit.liquid.tablespoon=Unit.liquid.tablespoons=3*Unit.liquid.tsp;
Unit.liquid["fluid ounce"]=Unit.liquid["fluid ounces"]=Unit.liquid["fluid oz"]=Unit.liquid["fluid ozs"]=Unit.liquid["fl oz"]=Unit.liquid["fl ozs"]=2*Unit.liquid.tablespoon;
Unit.liquid.cup=Unit.liquid.cups=Unit.liquid.cp=Unit.liquid.cps=16*Unit.liquid.tablespoon;
Unit.liquid.pint=Unit.liquid.pints=Unit.liquid.pt=Unit.liquid.pts=2*Unit.liquid.cup;
Unit.liquid.quart=Unit.liquid.quarts=Unit.liquid.qt=Unit.liquid.qts=4*Unit.liquid.cup;
Unit.liquid.gallon=Unit.liquid.gallons=Unit.liquid.gal=Unit.liquid.gals=16*Unit.liquid.cup;
Unit.liquid.barrel=Unit.liquid.barrels=31*Unit.liquid.gallon;
Unit.mass.base=1;
Unit.mass.name="mass";
Unit.mass.kilogram=Unit.mass.kilograms=1;
Unit.mass.kg=Unit.mass.kgs=1;
Unit.mass.gram=Unit.mass.grams=0.001*Unit.mass.kg;
Unit.mass.g=Unit.mass.gs=Unit.mass.gram;
Unit.mass.mg=Unit.mass.milligram=Unit.mass.milligrams=0.001*Unit.mass.gram;
Unit.mass.mgs=0.001*Unit.mass.gram;
Unit.mass.ug=0.000001*Unit.mass.gram;
Unit.mass.ugs=0.000001*Unit.mass.gram;
Unit.mass.lb=0.45359237*Unit.mass.kg;
Unit.mass.lbs=0.45359237*Unit.mass.kg;
Unit.mass.pound=0.45359237*Unit.mass.kg;
Unit.mass.pounds=0.45359237*Unit.mass.kg;
Unit.mass.slug=Unit.mass.slugs=14.5939029*Unit.mass.kg;
Unit.mass.oz=Unit.mass.lb*0.0625;
Unit.mass.ozs=Unit.mass.lb*0.0625;
Unit.mass.ounce=Unit.mass.lb*0.0625;
Unit.mass.ounces=Unit.mass.lb*0.0625;
Unit.mass["troy ounce"]=31.1034768*Unit.mass.gram;
Unit.mass["troy ounces"]=31.1034768*Unit.mass.gram;
Unit.mass["troy oz"]=31.1034768*Unit.mass.gram;
Unit.mass["troy ozs"]=31.1034768*Unit.mass.gram;
Unit.mass.dram=Unit.mass.oz*0.0625;
Unit.mass.drams=Unit.mass.oz*0.0625;
Unit.mass.stone=Unit.mass.lb*14;
Unit.mass.stones=Unit.mass.lb*14;
Unit.mass.ton=Unit.mass.lb*2000;
Unit.mass.tons=Unit.mass.lb*2000;
Unit.length.base=1;
Unit.length.name="length";
Unit.length.meter=1;
Unit.length.metre=1;
Unit.length.meters=1;
Unit.length.m=1;
Unit.length.km=1000;
Unit.length.kms=1000;
Unit.length.kilometer=Unit.length.kilometre=1000;
Unit.length.kilometers=Unit.length.kilometres=1000;
Unit.length.au=149597870.691*Unit.length.km;
Unit.length["light year"]=Unit.length["lightyear"]=Unit.length["light years"]=9460730472580.8*Unit.length.km;
Unit.length.ly=9460730472580.8*Unit.length.km;
Unit.length.parsec=Unit.length.parsecs=30856775800000000*Unit.length.meter;
Unit.length.cm=0.01;
Unit.length.cms=0.01;
Unit.length.centimeter=Unit.length.centimetre=0.01;
Unit.length.centimeters=Unit.length.centimetres=0.01;
Unit.length.mm=0.001;
Unit.length.mms=0.001;
Unit.length.millimeter=Unit.length.millimetre=0.001;
Unit.length.millimeters=Unit.length.millimetres=0.001;
Unit.length.um=0.000001;
Unit.length.micrometer=0.000001;
Unit.length.micron=0.000001;
Unit.length.microns=0.000001;
Unit.length.nm=1e-9;
Unit.length.nanometer=Unit.length.nanometre=1e-9;
Unit.length.nanometers=Unit.length.nanometres=1e-9;
Unit.length.pm=1e-12;
Unit.length.picometer=Unit.length.picometre=1e-12;
Unit.length.picometers=Unit.length.picometres=1e-12;
Unit.length.inch=0.0254;
Unit.length.inches=0.0254;
Unit.length["in"]=0.0254;
Unit.length["ins"]=0.0254;
Unit.length.microinch=0.000001*Unit.length.inch;
Unit.length.microinches=0.000001*Unit.length.inch;
Unit.length.foot=Unit.length.inch*12;
Unit.length.feet=Unit.length.inch*12;
Unit.length.ft=Unit.length.inch*12;
Unit.length.yard=Unit.length.foot*3;
Unit.length.yards=Unit.length.foot*3;
Unit.length.yd=Unit.length.foot*3;
Unit.length.yds=Unit.length.foot*3;
Unit.length.fathom=Unit.length.foot*6;
Unit.length.fathoms=Unit.length.foot*6;
Unit.length.rod=Unit.length.foot*16.5;
Unit.length.rods=Unit.length.foot*16.5;
Unit.length.rd=Unit.length.foot*16.5;
Unit.length.rds=Unit.length.foot*16.5;
Unit.length.furlong=Unit.length.foot*660;
Unit.length.furlongs=Unit.length.foot*660;
Unit.length.mile=Unit.length.foot*5280;
Unit.length.miles=Unit.length.foot*5280;
Unit.length.league=Unit.length.mile*3;
Unit.length.leagues=Unit.length.mile*3;
Unit.length.knot=Unit.length.foot*6076.11549;
Unit.length.knots=Unit.length.foot*6076.11549;
Unit.area.base=1;
Unit.area.name="area";
Unit.area.acre=Unit.area.acres=Unit.length.rod*Unit.length.rod*160;
Unit.area.hectare=Unit.area.hectares=Unit.length.meter*Unit.length.meter*10000;
function loadCurrencyData(){
var req="http://instacalc.com/data/currencies2.json";
$import(req);
}
currencies=null;
InstaCalc.loadCurrencies=function(data){
if(currencies!=null){
return;
}
currencies={};
for(var i in data){
var code=i.toLowerCase();
var rate=data[i];
currencies[code]=1/parseFloat(rate);
}
currencies.usd=1;
currencies.dollar=currencies.usd;
currencies.yen=currencies.jpy;
currencies.euro=currencies.eur;
currencies.pound=currencies.gbp;
currencies["australia money"]=currencies["australia dollar"]=currencies["australia dollars"]=currencies.aud;
Unit.currencies=currencies;

recalculate();
};
function processData(_226){
getCurrencyData(_226);
}

