function hideItem(_1){
var i=document.getElementById(_1);
if(i!=null){
i.style.display="none";
}
}
function showItem(_3){
var i=document.getElementById(_3);
if(i!=null){
i.style.display="";
}
}
function isObjectHidden(_5){
if(_5!=null){
return _5.style.display=="none";
}
return null;
}
function isObjectVisible(_6){
if(_6!=null){
return !(_6.style.display=="none");
}
return null;
}
function isHidden(_7){
var i=document.getElementById(_7);
if(i!=null){
return i.style.display=="none";
}
return null;
}
function isVisible(_9){
var i=document.getElementById(_9);
if(i!=null){
return i.style.display=="";
}
return null;
}
function hideObject(_b){
if(_b!=null){
_b.style.display="none";
}
}
function showObject(_c){
if(_c!=null){
_c.style.display="";
}
}
function toggle(i){
if(i.style.display=="none"){
i.style.display="";
}else{
i.style.display="none";
}
}
function toggleItem(_e){
var i=document.getElementById(_e);
if(i.style.display=="none"){
showObject(i);
}else{
hideObject(i);
}
}
function clearItem(_10){
var i=document.getElementById(_10);
i.innerHTML="";
}
function hideAllItems(_12){
var i=0;
for(i=0;i<_12.length;i++){
hideItem(_12[i]);
}
}
function changeCSS(id,_15){
var _16=document.getElementById(id);
_16.className=_15;
}
function setFont(_17,_18){
var i=document.getElementById(_17);
i.style.display=ParseInt(_18);
}
function sleep(ms){
date=new Date();
var _1b=null;
do{
var _1b=new Date();
}while(_1b-date<ms);
}
function toggleBoolean(i){
return !i;
}
function toggle(i){
if(i==1){
i=0;
}else{
if(i==0){
i=1;
}
}
return i;
}
function getURLParams(str){
var _1f;
if(str==null){
var _20=window.location.href;
}else{
var _20=str;
}
if(_20.indexOf("?")>-1){
var a=_20.split("?");
_20="?"+a[1];
}else{
_20="";
}
return _20;
}
function getURLParam(_22,url){
var _24="";
var _25;
if(url==null){
_25=window.location.href;
}else{
_25=url;
}
if(_25.indexOf("?")>-1){
var _26=_25.substr(_25.indexOf("?"));
var _27=_26.split("&");
for(var _28=0;_28<_27.length;_28++){
if(_27[_28].indexOf(_22+"=")>-1){
var _29=_27[_28].split("=");
_24=_29[1];
break;
}
}
}
return _24;
}
function getURLNoParams(){
var _2a=window.location.href;
if(_2a.indexOf("?")>-1){
var a=_2a.split("?");
_2a=a[0];
}
return _2a;
}
function getURLDirectory(){
return window.location.href.match(".*/");
}
function log_old(_2c){
if(logging>0&&(statusarea!=null)){
statusarea.innerHTML+=_2c;
statusarea.innerHTML+="<br/>";
}
}
function setlogging(i){
logging=i;
}
function log_old(msg){
var _2f=document.getElementById("log");
if(_2f!=null){
_2f.innerHTML+=msg;
_2f.innerHTML+="<br/>";
}
}
function log1(msg){
if(logging!=null&&logging>=1){
log(msg);
}
}
function log2(msg){
if(logging!=null&&logging>=2){
log(msg);
}
}
function log3(msg){
if(logging!=null&&logging>=3){
log(msg);
}
}
function getTime(){
var now=new Date();
var _34="am";
hours=now.getHours();
minutes=now.getMinutes();
seconds=now.getSeconds();
if(hours>=12){
hours-=12;
_34="pm";
}
if(minutes<10){
minutes="0"+minutes;
}
if(seconds<10){
seconds="0"+seconds;
}
return hours+":"+minutes+":"+seconds+" "+_34;
}
function uniqueArray(a){
if(a==[]){
return [];
}
var i;
a=a.sort();
b=[];
for(i=0;i<a.length;i++){
if(b.length==0){
b.push(a[i]);
}
if(b[b.length-1]!=a[i]){
b.push(a[i]);
}
}
return b;
}
function isdefined(_37){
return (typeof (_37)=="undefined")?false:true;
}
function isNull(obj){
if(obj===null){
return true;
}
if(isdefined(obj)===false){
return true;
}
if(obj===""){
return true;
}
return false;
}
function arraySearch(_39,a){
if(!isdefined(a)){
return -1;
}
for(i=0;i<a.length;i++){
if(_39==a[i]){
return i;
}
}
return -1;
}
function objectSearchI(_3b,obj){
for(var i in obj){
if(obj[i].toString().toUpperCase()==_3b.toString().toUpperCase()){
return i;
}
}
return null;
}
function confirmClick(str){
if(str==""){
str="Are you sure you wish to continue?";
}
var _3f=confirm(str);
if(_3f){
return true;
}else{
return false;
}
}
function txt2url(str){
str=str.replace(/_/g,"%5f");
str=str.replace(/ /g,"_");
str=escape(str);
return str;
}
function url2txt(str){
str=unescape(str);
str=str.replace(/_/g," ");
str=str.replace(/%5f/ig,"_");
return str;
}
function parseSuffixOperator(str,op,fn){
var _45=str.indexOf(op);
if(_45<0){
return str;
}
var _46=str.substring(0,_45);
_46=strtrim(_46);
var _47=getLastTokenGroup(_46);
_46=_46.substring(0,_46.length-_47.length);
var _48=str.substring(_45+1);
var _49=" "+_46+" "+fn+"("+_47+")"+_48;
if(_49.indexOf(op)>0){
return parseSuffixOperator(_49,op,fn);
}
return _49;
}
function parseBinaryOperator(str,op,fn){
var _4d=str.indexOf(op);
if(_4d<0){
return str;
}
var _4e=str.substring(0,_4d);
_4e=strtrim(_4e);
var _4f=str.substring(_4d+1);
_4f=strtrim(_4f);
var _50=getLastTokenGroup(_4e);
var _51=getFirstTokenGroup(_4f);
_4e=_4e.substring(0,_4e.length-_50.length);
_4f=_4f.substring(_51.length);
var _52=" "+_4e+" "+fn+"("+"("+_50+"),("+_51+")) "+_4f;
if(_52.indexOf(op)>0){
return parseBinaryOperator(_52,op,fn);
}
return _52;
}
function strtrim(str){
str=str.replace(/^\s*/,"");
str=str.replace(/\s*$/,"");
return str;
}
function strrev(str){
var i;
var rev="";
if(str==""){
return str;
}
for(i=0;i<str.length;i++){
rev=str.charAt(i)+rev;
}
return rev;
}
function getFirstTokenGroup(str){
var _58="";
if(str==""){
return str;
}
str=str.replace(/^\s*/,"");
return getToken(str);
return _58;
}
function getLastTokenGroup(str){
var _5a="";
_5a=getLastToken(str);
return _5a;
}
function getLastToken(str){
var _5c;
if(_5c=str.match(/[)]$/)){
var _5d=getTokenParenRev(str);
var _5e=str.substring(0,str.length-_5d.length);
var fn;
if(fn=_5e.match(/([a-zA-Z]+[a-zA-Z0-9]*)$/)){
return fn[1]+_5d;
}
return _5d;
}
if(_5c=str.match(/((^|[(])\s*[\-])?[a-zA-Z0-9_,.]+$/)){
return _5c[0];
}
return "";
}
function getToken(str){
str=str.replace(/^\s*/,"");
var _61;
if(_61=str.match(/^([a-zA-Z0-9_,.]+)([(].*[)])/)){
var fn=_61[1];
var _63=getTokenParen(_61[2]);
if(_63==-1){
return "";
}
return fn+_63;
}
if(_61=str.match(/^[(].*/)){
var _64=getTokenParen(str);
return _64;
}
if(_61=str.match(/^([\-]?[a-zA-Z0-9_,.]+)/)){
return _61[1];
}
return "";
}
function getTokenParen(str){
var _66=0;
var i=0;
var _68;
if(str==""){
return str;
}
for(i=0;i<str.length;i++){
if(str.charAt(i)=="("){
_66++;
}else{
if(str.charAt(i)==")"){
_66--;
}
}
if(_66==0){
_68=i+1;
return str.substring(0,_68);
}
}
return "";
}
function getTokenParenRev(str){
str=strrev(str);
str=getTokenParen(str);
return strrev(str);
}
function getXmlHttpRequestObject(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
}else{
if(window.ActiveXObject){
return new ActiveXObject("Microsoft.XMLHTTP");
}else{
}
}
}
function ajaxLoadDiv(id,url){
var x=getXmlHttpRequestObject();
if(x.readyState==4||x.readyState==0){
x.open("GET",url,true);
x.onreadystatechange=ajaxLoadDivFinal(x,id);
x.send(null);
}
}
function ajaxLoadDivFinal(x,id){
if(x.readyState==4){
document.getElementById(id).innerHTML=x.responseText;
}
}
function $import(src){
var _70=document.createElement("script");
_70.setAttribute("src",src);
_70.setAttribute("type","text/javascript");
document.getElementsByTagName("head")[0].appendChild(_70);
}
function isOnline(url,_72,_73){
__isOnline="Unknown";
var img=document.createElement("img");
img.onload=typeof (_72)=="function"?_72:isOnlineOnLoad;
img.onerror=typeof (_73)=="function"?_73:isOnlineOnError;
img.src=url;
img.style.display="none";
document.body.appendChild(img);
document.body.removeChild(img);
return getOnlineStatus();
}
function getOnlineStatus(){
return __isOnline;
}
function isOnlineOnLoad(_75){
__isOnline=true;
}
function isOnlineOnError(_76){
__isOnline=false;
}
function hiddenIFrame(src){
var _78=document.createElement("iframe");
var _79="iframe"+new Date().getTime().toString();
_78.setAttribute("src",src);
_78.setAttribute("name",_79);
_78.setAttribute("height",0);
_78.setAttribute("width",0);
_78.setAttribute("frameborder",0);
document.body.appendChild(_78);
return _78.innerHTML;
}
function getRandomString(){
return new Date().getTime().toString()+Math.round(Math.random()*1000000000).toString();
}
function caret(_7a){
_7a.focus();
if(_7a.selectionStart){
return _7a.selectionStart;
}else{
if(!document.selection){
return 0;
}
}
var c="\x01";
var sel=document.selection.createRange();
var dul=sel.duplicate();
var len=0;
dul.moveToElementText(_7a);
sel.text=c;
len=(dul.text.indexOf(c));
sel.moveStart("character",-1);
sel.text="";
return len;
}
function insertAtCursor(_7f,_80){
if(document.selection){
_7f.focus();
sel=document.selection.createRange();
sel.text=_80;
}else{
if(_7f.selectionStart||_7f.selectionStart=="0"){
var _81=_7f.selectionStart;
var _82=_7f.selectionEnd;
_7f.value=_7f.value.substring(0,_81)+_80+_7f.value.substring(_82,_7f.value.length);
}else{
_7f.value+=_80;
}
}
}
function getEmailLink(){
var str="mailto:?subject=check out my calculation&body=Hi, I found this website and thought you might like it http://www.geocities.com/wowhtml/";
return str;
}
function editDescription(){
hideItem("readdescription");
showItem("editdescription");
loadDescription();
}
function cancelDescription(){
showItem("readdescription");
hideItem("editdescription");
}
function updateDescription(){
setDescription(document.getElementById("descriptiontextarea").value);
showItem("readdescription");
hideItem("editdescription");
}
function getDescription(){
return InstaCalc.description;
}
function setDescription(str){
var x=document.getElementById("descriptiontext");
InstaCalc.description=str;
x.innerHTML=txt2html(InstaCalc.description);
}
function html2txt(str){
str=str.replace(/<a href="(https?:\S*)"[^>]*>([^<]*)<\/a>/ig,"[$2]($1)");
str=unescapeHTML(str);
return str;
}
function txt2html(str){
str=escapeHTML(str);
str=str.replace(/\[([^\]]*)\]\s*[(](https?:\S*)[)]/ig,"<a href=\"$2\" target=\"_blank\">$1</a>");
return str;
}
function escapeHTML(str){
return str.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g," <br/> ");
}
function unescapeHTML(str){
return str.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/\s?<br[\/]?>\s?/ig,"\n");
}
function loadDescription(){
var x=document.getElementById("descriptiontext");
var y=document.getElementById("descriptiontextarea");
y.value=html2txt(x.innerHTML);
InstaCalc.description=html2txt(x.innerHTML);
}
function createDeliciousLink(){
var _8c="&tags=instacalc";
var _8d="&title=InstaCalc:%20";
var _8e="&noui&jump=close&v=4";
createURL();
var _8f="http://del.icio.us/jshell.com?url="+InstaCalc.absolutepermalink.replace(/&/g,"%26")+_8d+_8c+_8e;
return _8f;
}
function createEmbedURL(){
createURL();
return InstaCalc.embedlink;
}
function updateToDataLinks(){
var i;
for(i=0;i<document.links.length;i++){
var _91=document.links[i];
if(_91.href.match(/.*v=.[.].$/)){
_91.href="javascript:loadDataFromURL(\""+_91.href+"\")";
}
}
}
function fixURL(str){
if(str.match(/v=0.6/g)){
}
}
function setupPage(){
setStatus("Ready to go! Just type a calculation.");
hideItem("editdescription");
if(InstaCalc.description==""){
setDescription("");
InstaCalc.description="";
hideItem("readdescription");
showItem("editdescription");
}else{
setDescription(InstaCalc.description);
showItem("description");
}
selectFirstRow();
recalculate();
recalculate();
}
function loadChartLibraries(url){
if(!chartsLoaded()){
var i;
if(url){
$import(url);
}else{
$import("javascripts/MochiKit.js");
$import("javascripts/excanvas.js");
$import("javascripts/PlotKit_Packed.js");
}
}
}
function chartsLoaded(){
if(typeof (EasyPlot)=="function"&&typeof (MochiKit)!="undefined"){
return true;
}else{
return false;
}
}
function loadChartCallback(fn){
I.chartCallback=fn;
self.clearTimeout(I.libTimeout);
if(chartsLoaded()){
setStatus("libraries loaded:"+new Date().toString());
if(typeof (I.chartCallback)=="function"){
I.chartCallback();
}
return true;
}else{
I.libTimeout=self.setTimeout("loadChartCallback(I.chartCallback)",600);
setStatus("callback:"+new Date().toString());
return false;
}
}
function addText(str){
if(isVisible("cellrows")){
insertAtCursor(getInput(getSelectedRow()),str);
recalculate();
return;
var i=getSelectedRow();
var _98=getInput(i);
var _99=caret(_98);
var tmp=_98.value;
var _9b=tmp.slice(0,_99);
var end=tmp.slice(_99);
_98.value=_9b+str+end;
recalculate();
}
if(isVisible("inputtextarea")){
insertAtCursor($("inputtextarea"),str);
updateScratchpad();
return;
var _98=$("inputtextarea");
var tmp=_98.value;
var _99=caret(_98);
var _9b=tmp.slice(0,_99);
var end=tmp.slice(_99);
_98.value=_9b+str+end;
updateScratchpad();
}
}
function updateScratchpad(){
for(var i=0;i<I.cells;i++){
getInput(i).value="";
}
loadCellsFromStringNewline($("inputtextarea").value);
$("textoutput").innerHTML="";
recalculate();
loadOutput();
}
function loadScratchpad(str){
$("inputtextarea").value=str;
}
function addScratchpadRows(n){
var _a0=$("inputtextarea").value;
}
scratchpadTimeout=null;
scratchpadRefresh=100;
function updateScratchpad2(){
self.clearTimeout(scratchpadTimeout);
var _a1=$("inputtextarea").value.split("\n");
var _a2=_a1.length;
if(_a2>I.maxCells){
var _a3=$("inputtextarea").value;
var _a4=_a1.slice(0,I.maxCells).join("\n");
$("inputtextarea").value=_a4;
setStatus("Whoa there, that's a lot of cells. Try making a new page.");
}else{
if(_a2>I.cells){
var _a5=(I.maxCells-_a2>10)?10:I.maxCells-_a2;
createScratchpad(_a2+_a5);
addMultipleCells(_a5);
}
}
if(_a2>20){
var _a6=(_a2)/I.maxCells;
scratchpadRefresh=50+_a6*100;
}else{
scratchpadRefresh=50;
}
scratchpadTimeout=self.setTimeout("updateScratchpad()",scratchpadRefresh);
}
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=40;
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(str){
I.error=str;
}
function getError(){
return I.error;
}
function updateReferences(_a8,row){
var i;
var str="";
for(var i=0;i<_a8;i++){
str=_a8[i];
if(str.match(/\bR(\d+)\b/ig)){
}
}
I.expressions.push([/\bR(\d+)\b/ig,"getOutputValue($1 - 1)"]);
}
function setStatus(str,_ad){
if(isdefined(status)){
status.innerHTML=str;
if(_ad===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(deg){
return deg*Math.PI/180;
};
I.rad2deg=function(rad){
return rad*180/Math.PI;
};
I.convertToRadiansConditional=function(n){
var rad;
if(I.format.angle=="rad"){
rad=n;
}else{
rad=I.deg2rad(n);
}
return rad;
};
I.sin=function(n){
var rad;
if(I.format.angle=="rad"){
rad=n;
}else{
rad=I.deg2rad(n);
}
return Math.sin(rad);
};
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.combin=function(n,k){
return I.factorial(n)/(I.factorial(n-k)*I.factorial(k));
};
I.convert=function(n,_d3){
var i=0;
var sum=0;
while(n>0){
var _d6=n%10;
sum+=_d6*Math.pow(_d3,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 _da=(n&(1<<i))>>i;
if(_da==0){
str+="0";
}else{
str+="1";
}
}
str=str.split("").reverse().join("");
return str;
};
I.bin=function(n){
var tmp;
var _dd="0";
if(n<0){
return I.sbin(n);
}else{
tmp=n.toString(2);
}
if(tmp==NaN||tmp==""){
return "";
}
var i;
var _df="0b";
var _e0=(8-(tmp.length%8))%8;
for(i=0;i<_e0;i++){
_df+=_dd;
}
return _df+tmp;
};
I.oct=function(n){
return "0o"+n.toString(8);
};
I.hex=function(n){
var tmp=n.toString(16);
var i;
var _e5="0x";
var _e6=(4-(tmp.length%4))%4;
for(i=0;i<_e6;i++){
_e5+="0";
}
return _e5+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 _ef=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 ");
_ef=true;
}
if(days>0||_ef){
str+=(days+"d ");
_ef=true;
}
if(hours>0||_ef){
str+=(hours+"h ");
_ef=true;
}
if(minutes>0||_ef){
str+=(minutes+"m ");
_ef=true;
}
if(seconds>0||_ef){
str+=(seconds.toPrecision(4)+"s ");
_ef=true;
}
return str;
};
I.plot=new ReplotObject();
I.plotTimeout=null;
I.plotRefresh=500;
I.resetChart=function(){
if($("example2")){
$("example2").innerHTML="";
}
};
I.linechart=function(_f0){
I.plot.data=_f0;
I.plot.type="line";
self.clearTimeout(I.plotTimeout);
I.plotTimeout=self.setTimeout("I.plot.update()",I.plotRefresh);
};
I.barchart=function(_f1){
I.plot.data=_f1;
I.plot.type="bar";
self.clearTimeout(I.plotTimeout);
I.plotTimeout=self.setTimeout("I.plot.update()",I.plotRefresh);
};
I.piechart=function(_f2){
I.plot.data=_f2;
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 _fa=I.arraysum(a);
var _fb=_fa/a.length;
return _fb;
};
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(from,to){
var _10b=isUnit(from);
var _10c=isUnit(to);
if(!_10b||!_10c){
return 1;
}else{
return _10b[fromRate]/_10c[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(from,_111,to,_113){
var _114=isUnit(from);
var _115=isUnit(to);
if(!_114||!_115){
var _116=Inflector.pluralize(Inflector.pluralize(from));
var _117=Inflector.pluralize(Inflector.pluralize(to));
if((_116==_117)&&(_111==_113)){
return true;
}
return false;
}
if(_114==_115&&_111==_113){
return true;
}
if(!_114.SI||!_115.SI){
return false;
}
for(var i in _114.SI){
if(_114.SI[i]*_111!=_115.SI[i]*_113){
return false;
}
}
for(var i in _115.SI){
if(_114.SI[i]*_111!=_115.SI[i]*_113){
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 from=strtrim(tmp[0].toLowerCase());
var _11f=1;
var to=strtrim(tmp[1].toLowerCase());
var _121=1;
if(Unit.alias[from]){
from=Unit.alias[from];
}
if(Unit.alias[to]){
to=Unit.alias[to];
}
var _122;
var _123;
var _124="unity";
var _125="unity";
if((_122=from.match(/(.+)\/(.+)/))&&(_123=to.match(/(.+)\/(.+)/))){
from=strtrim(_122[1]);
to=strtrim(_123[1]);
_124=strtrim(_122[2]);
_125=strtrim(_123[2]);
}
var _126=tmp[1];
return [from,_124,to,_125,_126];
};
I.isConversionFunction=function(from,to){
var _129=isUnit(from);
var _12a=isUnit(to);
if(_129==_12a&&_129.conversion=="function"){
return _129;
}
return false;
};
I.getUnitPowers=function(obj){
var _12c={};
_12c.from={};
_12c.to={};
_12c.fromRate={};
_12c.toRate={};
var a=I.getUnitPower(obj.from);
_12c.from.unit=a[0];
_12c.from.power=a[1];
var b=I.getUnitPower(obj.to);
_12c.to.unit=b[0];
_12c.to.power=b[1];
a=I.getUnitPower(obj.fromRate);
_12c.fromRate.unit=a[0];
_12c.fromRate.power=a[1];
b=I.getUnitPower(obj.toRate);
_12c.toRate.unit=b[0];
_12c.toRate.power=b[1];
return _12c;
};
I.getScalingFactors=function(_12f){
var _130={};
_130.from=1;
_130.to=1;
var obj={};
obj=_12f;
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;
_130.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;
_130.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;
_130.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;
_130.to*=1/tmp;
}
obj.scale=_130;
return obj;
};
I.getUnitMatches=function(_134){
var _135=false;
var ret={match:false,invert:false};
var obj={};
obj=_134;
obj.inverted=false;
if(!I.unitMatch(obj.from.unit,obj.from.power,obj.to.unit,obj.to.power)){
_135=true;
}
if(!I.unitMatch(obj.fromRate.unit,obj.fromRate.power,obj.toRate.unit,obj.toRate.power)){
_135=true;
}
if(_135){
var _138=I.unitMatch(obj.from.unit,obj.from.power,obj.toRate.unit,obj.toRate.power);
var _139=I.unitMatch(obj.to.unit,obj.to.power,obj.fromRate.unit,obj.fromRate.power);
if(_138&&_139){
obj.inverted=true;
}else{
return null;
}
}
return obj;
};
I.getUnitConversion=function(_13a){
var n=1;
var obj;
if(obj=isUnit(_13a)){
n=obj[_13a];
}
return n;
};
I.getConversionFactor=function(_13d){
var obj=_13d;
var n;
var unit;
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 _145=(obj.from.scale*ft)/(obj.fromRate.scale*fb);
var _146=(obj.to.scale*tt)/(obj.toRate.scale*tb);
var _147=_145/_146;
var _148;
if(obj.inverted){
_145=_145;
_146=(obj.toRate.scale*tb)/(obj.to.scale*tt);
_148=_145/_146;
}
if(obj.inverted){
return function(x){
return 1/(x*_148);
};
}else{
return _147;
}
};
I.getUnitScale2=function(from,_14b,to,_14d){
var obj={from:from,fromRate:_14b,to:to,toRate:_14d};
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 _14f;
if(_14f=I.isConversionFunction(from,to)){
var _150=_14f[from][0];
var toFn=_14f[to][1];
var _152=function(x){
return toFn(_150(x));
};
return _152;
}
return I.getConversionFactor(obj);
};
I.getUnitScale=function(from,_155,to,_157){
return I.getUnitScale2(from,_155,to,_157);
var a=I.getUnitPower(from);
from=a[0];
var _159=a[1];
var b=I.getUnitPower(to);
to=b[0];
var to_p=b[1];
a=I.getUnitPower(_155);
_155=a[0];
var _15c=a[1];
b=I.getUnitPower(_157);
_157=b[0];
var _15d=b[1];
var _15e=1;
var _15f=1;
num=from.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
from=from.replace(/[.,\d]+\s*/,"");
_15e*=tmp;
}
var num=_155.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
_155=_155.replace(/[.,\d]+\s*/,"");
_15e*=1/tmp;
}
num=to.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
to=to.replace(/[.,\d]+\s*/,"");
_15f*=1/tmp;
}
num=_157.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
_157=_157.replace(/[.,\d]+\s*/,"");
_15f*=tmp;
}
var _162;
if(_162=I.isConversionFunction(from,to)){
var _163=_162[from][0];
var toFn=_162[to][1];
var _165=function(x){
return toFn(_163(x));
};
return _165;
}
var _167=false;
if(!I.unitMatch(from,_159,to,to_p)){
_167=true;
}
if(!I.unitMatch(_155,_15c,_157,_15d)){
_167=true;
}
var _168=false;
if(_167){
var tmp=to;
var _169=to_p;
to=_157;
to_p=_15d;
_157=tmp;
_15d=_169;
if(!I.unitMatch(from,_159,to,to_p)){
InstaCalc.unitlabel="";
return 1;
}
if(!I.unitMatch(_155,_15c,_157,_15d)){
InstaCalc.unitlabel="";
return 1;
}
_168=true;
}
var obj;
var n;
if(obj=isUnit(from)){
n=obj[from];
}else{
n=1;
}
var ft=Math.pow(n,_159);
if(obj=isUnit(_155)){
n=obj[_155];
}else{
n=1;
}
var fb=Math.pow(n,_15c);
if(obj=isUnit(to)){
n=obj[to];
}else{
n=1;
}
var tt=Math.pow(n,to_p);
if(obj=isUnit(_157)){
n=obj[_157];
}else{
n=1;
}
var tb=Math.pow(n,_15d);
var f2=(ft/tt)*(tb/fb);
f2*=_15e;
if(_168){
I.log+="inverting!";
return function(x){
return (1*_15f)/(x*f2);
};
}else{
f2*=_15f;
return f2;
}
};
I.conversionCache={};
I.convertUnit=function(str){
var _173=I.conversionCache[str];
if(_173){
InstaCalc.unitlabel=_173.unitlabel;
return _173.conversion;
}
var _174=1;
var _175=1;
var ret=I.splitUnits(str);
if(ret==null){
InstaCalc.unitlabel="";
return 1;
}
var from=ret[0];
var _178=ret[1];
var to=ret[2];
var _17a=ret[3];
var _17b=ret[4];
var _17c=I.getUnitScale(from,_178,to,_17a);
if(_17c==null||typeof (_17c)=="undefined"){
InstaCalc.unitlabel="";
return 1;
}else{
InstaCalc.unitlabel=_17b;
I.conversionCache[str]={conversion:_17c,unitlabel:_17b};
return _17c;
}
};
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.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.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\"))"]);
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([/%/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.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);
};
}
I.firstChart=true;
I.hasChart=false;
I.plotter=null;
function replot(data,type){
if(I.settings.embed){
return;
}
if(I.firstChart){
showItem("chart");
I.firstChart=false;
}
I.hasChart=true;
if(type!="line"&&type!="pie"&&type!="bar"){
type="line";
}
var foo=document.getElementById("example2");
foo.innerHTML="";
try{
var i;
var _183=[];
var _184=[];
for(i=0;i<I.datatitles.length;i++){
_183.push({label:I.datatitles[i][0],v:i+1});
_184.push([[i+1],I.datatitles[i][1]]);
}
var _185=(type=="bar"||type=="line")?false:true;
I.plotter=new EasyPlot(type,{"xTicks":_183,"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":_185,"pieRadius":0.35},$("example2"),[_184]);
}
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 2.0</a> or <a href='http://www.microsoft.com/windows/ie/'>IE7</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 _18b=strtrim(out);
var _18c=_18b.replace("_"," ").replace("$","");
return _18c;
var _18d=str.match(/[a-zA-Z_][a-zA-Z0-9_:\.]*\s*=/);
if(isNull(_18d)){
return "";
}
var _18e="";
_18e=_18d[0].match(/[a-zA-Z_][a-zA-Z0-9_:\.]*/)[0];
re=new RegExp("_","g");
_18e=_18e.replace(re," ");
return _18e;
}
function replacefn(name){
replace="";
if(I.allowedfn[name.toUpperCase()]){
replace=I.allowedfn[name.toUpperCase()];
}else{
replace=I.safeprepend+name;
}
return replace;
}
function replacekeyword(name){
var _191=I.keywords[name.toUpperCase()];
if(_191){
return _191;
}
return name;
}
function replacecn(name){
if(I.allowedcn[name]){
return I.allowedcn[name];
}
return "";
}
function validcn(name){
if(name===""){
return false;
}
if(I.allowedcn[name]){
return true;
}
return false;
}
function validkeyword(name){
if(name===""){
return false;
}
if(I.keywords[name.toUpperCase()]){
return true;
}
return false;
}
function validExpression(word){
var i;
for(i=0;i<I.expressions.length;i++){
if(word.match(I.expressions[i][0])){
return i;
}
}
return -1;
}
function replaceExpression(word){
var i;
for(i=0;i<I.expressions.length;i++){
if(word.match(I.expressions[i][0])){
return word.replace(I.expressions[i][0],I.expressions[i][1]);
}
}
return word;
}
function replacevariable(word){
return I.safeprepend+word;
}
function cleanVariable(word){
myregexp=new RegExp(I.safeprepend,"g");
return word.replace(myregexp,"");
}
function tokenType(_19b){
if(_19b.match(/[(]/)){
return "function";
}
if(validcn(_19b)){
return "constant";
}
if(validkeyword(_19b)){
return "keyword";
}
if(validExpression(_19b)!=-1){
return "expression";
}
return "variable";
}
function findString(_19c){
var i;
for(i=0;i<_19c.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 _1a4=I.firstfilter[i][1];
str=str.replace(re,_1a4);
}
return str;
}
function prefilter(str){
var i;
for(i=0;i<I.prefilter.length;i++){
re=I.prefilter[i][0];
var _1a7=I.prefilter[i][1];
str=str.replace(re,_1a7);
}
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 _1ab=I.postfilter[i][1];
str=str.replace(re,_1ab);
}
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 _1af=ret[1];
var tmp=I.format.currencies;
for(var _1b1 in tmp){
var cur=tmp[_1b1];
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 _1b3=str.match(/[a-zA-Z_][a-zA-Z0-9_:]*\s*[(]*/g);
if(isNull(_1b3)){
return str;
}
var _1b4,type,_1b6;
for(i=0;i<_1b3.length;i++){
_1b4=_1b3[i];
_1b4=_1b4.match(/\S+/)[0];
type=tokenType(_1b4);
if(type=="function"){
var _1b7=_1b4.match(/\w+/)[0];
_1b6=replacefn(_1b7);
re=new RegExp("([^.]|^)"+_1b7+"s*[(]","g");
str=str.replace(re,"$1"+_1b6+"(");
continue;
}
if(type=="constant"){
var _1b8=_1b4.match(/\w+/)[0];
re=new RegExp("([^.]|^)"+_1b8+"\\b","");
str=str.replace(re,"$1"+replacecn(_1b8));
continue;
}
if(type=="keyword"){
var _1b9=_1b4.match(/\w+/)[0];
re=new RegExp("(\\s|^)"+_1b9+"\\b","");
str=str.replace(re," "+replacekeyword(_1b9));
continue;
}
if(type=="expression"){
var _1ba=replaceExpression(_1b4);
re=new RegExp("\\b"+_1b4+"\\b","");
str=str.replace(re,_1ba);
continue;
}
var _1bb=I.safeprepend+_1b4.toLowerCase();
re=new RegExp("\\b"+_1b4+"\\b","g");
str=str.replace(re,_1bb);
}
str=postfilter(str);
str=replaceStrings(str,_1af);
return str;
}
function extractStrings2(str){
var i;
var _1be=false;
var _1bf="";
var _1c0=[];
var _1c1=[];
var _1c2=str.match(/"([\\]"|[^"])+"/g);
if(isNull(_1c2)){
return [str,[]];
}
for(i=0;i<_1c2.length;i++){
var name=I.stringprepend+i;
var _1c4=_1c2[i];
str=str.replace(_1c4,name);
_1c1.push([name,_1c4]);
}
return [str,_1c1];
}
function extractStrings(str){
var i;
var _1c7=false;
var _1c8="";
var _1c9=[];
var _1ca=[];
for(i=0;i<str.length;i++){
if(i==0&&str[i]=="\""){
_1c7=true;
_1c8+=str[i];
continue;
}
if(str[i]=="\""&&(str[i-1]!="\\")){
_1c7=!_1c7;
if(_1c8!==""){
var name=I.stringprepend+_1ca.length;
str=str.replace(_1c8,name);
_1ca.push([name,_1c8]);
}
_1c8="";
continue;
}
if(_1c7===true){
_1c8+=str[i];
}
}
return [str,_1ca];
}
function extractConversion(str){
var expr;
var _1ce;
return 3;
var _1cf=str.match(array[0]);
if(!isNull(_1cf)){
expr=_1cf[1];
_1ce=_1cf[2];
return [expr,_1ce];
}
return [str,""];
}
function replaceStrings(str,_1d1){
var i;
for(i=0;i<_1d1.length;i++){
var item=_1d1[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 _1d6="";
for(var i=0;i<str.length;i++){
var c=str.charAt(i);
if(str.charCodeAt(i)>127){
c="_"+str.charCodeAt(i);
}
_1d6+=c;
}
return _1d6;
}
function scanCurrencyFormatting(str){
var tmp=I.format.currencies;
for(var _1db in tmp){
var cur=tmp[_1db];
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 _1e0=ret[1];
str=escapeUnicode(str);
str=replaceVariableNames(str);
str=customOperators(str);
str=prefilter(str);
var _1e1=tokenize(str);
if(isNull(_1e1)){
return str;
}
var _1e2,type,_1e4;
for(i=0;i<_1e1.length;i++){
_1e2=_1e1[i];
_1e2=_1e2.match(/\S+/)[0];
type=tokenType(_1e2);
if(type=="function"){
var _1e5=_1e2.match(/\w+/)[0];
_1e4=replacefn(_1e5);
re=new RegExp("([^.\\w]|^)"+_1e5+"\\s*[(]","g");
str=str.replace(re,"$1"+_1e4+"(");
continue;
}
if(type=="constant"){
var _1e6=_1e2.match(/\w+/)[0];
re=new RegExp("([^.]|^)"+_1e6+"\\b","");
str=str.replace(re,"$1"+replacecn(_1e6));
continue;
}
if(type=="keyword"){
var _1e7=_1e2.match(/\w+/)[0];
re=new RegExp("(\\s|^)"+_1e7+"\\b","");
str=str.replace(re," "+replacekeyword(_1e7));
continue;
}
if(type=="expression"){
var _1e8=replaceExpression(_1e2);
re=new RegExp("\\b"+_1e2+"\\b","");
str=str.replace(re,_1e8);
continue;
}
var _1e9=I.safeprepend+_1e2.toLowerCase();
re=new RegExp("\\b"+_1e2+"\\b","g");
str=str.replace(re,_1e9);
}
str=postfilter(str);
str=replaceStrings(str,_1e0);
return str;
}
function replaceVariableNames(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 _1ef;
if(!isNull(a)){
_1ef=str.split(/[\/][\/]+/)[0];
if(!isNull(_1ef)&&isdefined(_1ef)){
}else{
_1ef="";
}
var _1f0=str.match("[/][/](.*)")[1];
return [_1ef,_1f0];
}
return [str,""];
}
function extractTitle(str){
var a=str.split(/^\[[^\]]*\]/);
return a;
}
I.lastRecalculation=null;
I.recalculationDelay=50;
I.recalculationTimeout=null;
function scheduleRecalculation(){
var now=new Date();
if(now-I.lastRecalculation>=I.recalculationDelay){
recalculate();
}else{
clearTimeout(I.recalculationTimeout);
I.recalculationTimeout=setTimeout("recalculate()",I.recalculationDelay);
I.log+="Scheduled Recalc";
}
}
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,"");
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 recalculate_cell(i){
var ret={};
ret.row=i;
ret.commentText="";
ret.title="";
ret.input=I.inputs[i].value;
ret.parsed="";
ret.eval_result="";
ret.final_result="";
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 _1fb=cleanVariable(escapeHTML(obj.final_result.toString()));
I.outputs[i].innerHTML=_1fb;
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 _1fe=obj.input;
if(I.inputCache[i]!=null&&I.inputCache[i][0]==_1fe){
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(_1fe);
I.inputCache[i]=[_1fe,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(_202){
var ret={};
ret.final_result="";
if(_202=="NaN"||_202=="undefined"){
_202="";
ret.error="undefined";
}
if(typeof (_202)=="function"){
_202="";
}
if(typeof (_202)=="number"){
if(_202==Infinity){
_202="Infinity";
}else{
if(_202==-Infinity){
_202="-Infinity";
}else{
if(isNaN(_202)){
_202="Number undefined";
ret.error=true;
}else{
_202=formatNumber(_202);
if(_202==Infinity){
_202="Infinity";
}
}
}
}
}
if(typeof (_202)=="boolean"){
_202=_202.toString();
}
if(!_202){
_202="";
}
ret.final_result=_202;
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 _208="";
var _209=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(_208);
}
function parseNumber(n){
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,",",",");
return parseFloat(num.toFormatted());
}
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,_212){
var i;
for(i=0;i<I.inputs.length;i++){
var str=getInputValue(i);
if(str.match(find)){
var _215=str.replace(find,_212);
setInputValue(i,_215);
}
}
recalculate();
}
function setBarChart(){
inputReplace(/^\s*\w+chart/,"barchart");
}
function setLineChart(){
inputReplace(/^\s*\w+chart/,"linechart");
}
function setPieChart(){
inputReplace(/^\s*\w+chart/,"piechart");
}
function getRowValues(_216,end){
if(typeof (_216)=="string"){
_216=parseInt(_216,10);
}
if(typeof (end)=="string"){
end=parseInt(end,10);
}
if(end<_216){
return [];
}
if(_216<1||end>I.cells){
return [];
}
var a=[];
var t=[];
for(row=_216;row<=end;row++){
var cell=row-1;
var _21b="Row "+row;
var val;
try{
val=getOutputValue(cell);
_21b=getTitleText(cell);
}
catch(e){
val=0;
_21b="Row "+row;
}
if(typeof (val)!="number"){
val=parseNumber(val);
}
if(_21b===""){
_21b="Row "+row;
}
a.push([row,val]);
t.push([_21b,val]);
}
I.datatitles=t;
I.data=a;
return a;
}
function encodeForURL(str){
return encodeBase64ForURL(Utf8.encode(str));
}
function decodeFromURL(url){
return Utf8.decode(decodeBase64ForURL(url));
}
function createDataString(_21f){
var str="";
var tmp="";
for(i=0;i<_21f.length;i++){
tmp=_21f[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 _224=getShowHideSettings();
var _225="?d="+desc+"&c="+str+"&s="+_224+"&v="+I.version;
I.permalink=I.settings.base_url+_225;
I.embedlink=I.settings.embed_preview_url+_225;
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 _227=url.match(/(.*)([#?].+)/);
var _228="";
if(_227){
_228=_227[2];
}
return _228;
}
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 _233=str.split("\n");
loadInput(_233);
}
function loadCellsFromDataString(str){
var _235=str.split("|");
for(var i=0;i<_235.length;i++){
_235[i]=unescapeSeparator(_235[i]);
}
loadInput(_235);
saveCells();
}
function unescapeSeparator(str){
var re=new RegExp(I.separator,"g");
str=str.replace(re,"|");
return str;
}
function loadInput(_239){
eraseRows();
addMultipleCells(_239.length);
setCells(_239);
}
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 _240=getInputValue(i);
var _241=getOutput(i).innerHTML;
str+="<tr class=\"html-number\">";
str+="<td>r"+(i+1)+"</td>";
str+="<td class=\"html-input\">"+_240+"</td>";
str+="<td class=\"html-output \">"+_241+"</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(_244){
var _245=[];
if(!isdefined(_244)){
return _244;
}
for(var i=0;i<_244.length;i++){
_245[i]=_244[i].value;
}
return _245;
}
function setValueArray(_247,_248){
for(var i=0;i<_247.length;i++){
if(isdefined(_247[i])&&isdefined(_248[i])){
_248[i].value=_247[i];
}
}
}
function setCells(_24a){
if(!isdefined(_24a)){
_24a=saved;
}
for(var i=0;i<I.cells;i++){
var _24c="";
if(isdefined(_24a[i])){
_24c=_24a[i];
}
setInputValue(i,_24c);
}
}
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 _250=document.getElementById("myTbody");
if(isdefined(_250)&&!isNull(_250)){
var _251=document.getElementById("myTbody");
while(_251.childNodes.length>0){
_251.removeChild(_251.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(_25b){
var i=0;
for(i=0;i<I.inputs.length;i++){
if(_25b[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(_260){
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>";
_260.innerHTML+=html;
hideObject(getTitle(i));
showInput(i);
I.cells++;
return html;
}
function addCell(_262,i,_264){
var _265=document.getElementById("myTbody");
var _266,_267;
_266=_265.insertRow(_265.rows.length);
_266.className="tr0";
_267=_266.insertCell(_266.cells.length);
_267.className="col0";
_267.innerHTML="<span class=\"number\" title=\"Click to modify row\" onContextMenu=\"return false;\" id=\"parentmenu_"+i+"\" >"+"R"+(i+1)+"</span>";
if(I.settings.standalone){
_267.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{
_267.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");
_267=_266.insertCell(_266.cells.length);
_267.className="col1";
_267.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>";
_267=_266.insertCell(_266.cells.length);
_267.className="col2";
_267.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(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 _287=getComment(i);
if(_287){
_287.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 _291=document.getElementById("textmode");
var _292=document.getElementById("gridmode");
hideObject(_292);
var foo=new Effect.Appear(_291);
}
function gridMode(){
var _294=document.getElementById("textmode");
var _295=document.getElementById("gridmode");
var foo=new Effect.Appear(_295);
hideObject(_294);
}
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 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(_29d){
if(isNull(_29d)){
return;
}
var i;
for(i=0;i<I.cells;i++){
if(_29d.charAt(i)=="h"){
hideInput(i);
}else{
showInput(i);
}
}
return _29d;
}
function getShowHideSettings(){
var _29f="";
var i;
for(i=0;i<I.cells;i++){
if(inputHidden(i)){
_29f+="h";
}else{
_29f+="s";
}
}
return _29f;
}
function insertRowIntoString(row){
saveCells();
}
function hideAll(_2a2){
var i;
for(i=0;i<_2a2.length;i++){
hideItem(_2a2[i]);
}
return;
}
function toggleAndHide(item,_2a5){
for(i=0;i<_2a5.length;i++){
if(item==_2a5[i]){
toggleItem(_2a5[i]);
}else{
hideItem(_2a5[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,_2a9){
div.innerHTML="";
}
function createPage(_2aa){
var _2ab=document.getElementById("variablearea");
I.status=document.getElementById("status");
var _2ac={};
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(_2aa!=null){
loadInput(_2aa);
}
}
}
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("");
}
}
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"]=16021764600000000000*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.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.oz*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.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.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;
function loadCurrencyData(){
var req="http://instacalc.com/data/currencies.json";
$import(req);
}
currencies=null;
InstaCalc.loadCurrencies=function(data){
if(currencies!=null){
return;
}
currencies={};
var _2b7=data["frbny:DataSet"];
for(i=0;i<_2b7.length;i++){
var curr=_2b7[i];
var unit;
var rate;
rate=curr["frbny:Obs"]["frbny:OBS_VALUE"];
if(curr.UNIT=="USD"){
unit=curr["frbny:Key"]["frbny:CURR"].toLowerCase();
currencies[unit]=rate;
}else{
unit=curr.UNIT.toLowerCase();
currencies[unit]=1/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;
};
function processData(_2bb){
getCurrencyData(_2bb);
}

