// Copyright 2006 Kalid Azad, instacalc.com. All rights reserved.  
var InstaCalc={};
var I=InstaCalc;
logging=false;
I.cells=0;
I.startcells=15;
I.maxCells=40;
I.version=0.8;
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.standalone=false;
I.divs=["instructions","overview","tutorial","examples","comments","reference","chart"];
function getVersion(){
return I.version;
}
I.PHI=1.6180339887;
I.MOL=6.0221415e+23;
I.deg2rad=function(_1){
return _1*Math.PI/180;
};
I.rad2deg=function(_2){
return _2*180/Math.PI;
};
I.sin=function(n){
var _4;
if(I.format.angle=="rad"){
_4=n;
}else{
_4=I.deg2rad(n);
}
return Math.sin(_4);
};
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.cos=function(n){
var _9;
if(I.format.angle=="rad"){
_9=n;
}else{
_9=I.deg2rad(n);
}
return Math.cos(_9);
};
I.tan=function(n){
var _b;
if(I.format.angle=="rad"){
_b=n;
}else{
_b=I.deg2rad(n);
}
return Math.tan(_b);
};
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(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.nchoosek=function(n,k){
return I.factorial(n)/(I.factorial(n-k)*I.factorial(k));
};
I.convert=function(n,_13){
var i=0;
var sum=0;
while(n>0){
var _16=n%10;
sum+=_16*Math.pow(_13,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 _1a=(n&(1<<i))>>i;
if(_1a==0){
str+="0";
}else{
str+="1";
}
}
str=str.split("").reverse().join("");
return str;
};
I.bin=function(n){
var tmp;
var _1d="0";
if(n<0){
return I.sbin(n);
}else{
tmp=n.toString(2);
}
if(tmp==NaN||tmp==""){
return "";
}
var i;
var _1f="0b";
var _20=(8-(tmp.length%8))%8;
for(i=0;i<_20;i++){
_1f+=_1d;
}
return _1f+tmp;
};
I.oct=function(n){
return "0o"+n.toString(8);
};
I.hex=function(n){
var tmp=n.toString(16);
var i;
var _25="0x";
var _26=(4-(tmp.length%4))%4;
for(i=0;i<_26;i++){
_25+="0";
}
return _25+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 _2f=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 ");
_2f=true;
}
if(days>0||_2f){
str+=(days+"d ");
_2f=true;
}
if(hours>0||_2f){
str+=(hours+"h ");
_2f=true;
}
if(minutes>0||_2f){
str+=(minutes+"m ");
_2f=true;
}
if(seconds>0||_2f){
str+=(seconds.toPrecision(4)+"s ");
_2f=true;
}
return str;
};
I.plot=new ReplotObject();
I.plotTimeout=null;
I.plotRefresh=500;
I.resetChart=function(){
$("example2").innerHTML="";
};
I.linechart=function(_30){
I.plot.data=_30;
I.plot.type="line";
self.clearTimeout(I.plotTimeout);
I.plotTimeout=self.setTimeout("I.plot.update()",I.plotRefresh);
};
I.barchart=function(_31){
I.plot.data=_31;
I.plot.type="bar";
self.clearTimeout(I.plotTimeout);
I.plotTimeout=self.setTimeout("I.plot.update()",I.plotRefresh);
};
I.piechart=function(_32){
I.plot.data=_32;
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 _3a=I.arraysum(a);
var _3b=_3a/a.length;
return _3b;
};
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 null;
}
I.convertUnitScale=function(_49,to){
var _4b=isUnit(_49);
var _4c=isUnit(to);
if(!_4b||!_4c){
return 1;
}else{
return _4b[fromRate]/_4c[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(_50,_51,to,_53){
if((_50==to)&&(_51==_53)){
return true;
}
var _54=isUnit(_50);
var _55=isUnit(to);
if(!_54||!_55){
return false;
}
if(_54==_55&&_51==_53){
return true;
}
if(_54["name"]==_55["name"]&&_51==_53){
return true;
}
for(var i in _54.SI){
if(_54.SI[i]*_51!=_55.SI[i]*_53){
return false;
}
}
for(var i in _55.SI){
if(_54.SI[i]*_51!=_55.SI[i]*_53){
return false;
}
}
return true;
};
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,"/");
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{
return null;
}
}
}
}
if(tmp.length<2){
return null;
}
var _5a=strtrim(tmp[0].toLowerCase());
var _5b=1;
var to=strtrim(tmp[1].toLowerCase());
var _5d=1;
if(Unit.alias[_5a]){
_5a=Unit.alias[_5a];
}
if(Unit.alias[to]){
to=Unit.alias[to];
}
var _5e;
var _5f;
var _60="unity";
var _61="unity";
if((_5e=_5a.match(/(.+)\/(.+)/))&&(_5f=to.match(/(.+)\/(.+)/))){
_5a=strtrim(_5e[1]);
to=strtrim(_5f[1]);
_60=strtrim(_5e[2]);
_61=strtrim(_5f[2]);
}
var _62=tmp[1];
return [_5a,_60,to,_61,_62];
};
I.getUnitScale=function(_63,_64,to,_66){
var a=I.getUnitPower(_63);
_63=a[0];
var _68=a[1];
var b=I.getUnitPower(to);
to=b[0];
var _6a=b[1];
a=I.getUnitPower(_64);
_64=a[0];
var _6b=a[1];
b=I.getUnitPower(_66);
_66=b[0];
var _6c=b[1];
var _6d=1;
var _6e=1;
var num=_64.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
_64=_64.replace(/[.,\d]+\s*/,"");
_6d*=1/tmp;
}
num=to.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
to=to.replace(/[.,\d]+\s*/,"");
_6e*=1/tmp;
}
num=_66.match(/[.,\d]+/);
if(num){
var tmp=parseNumber(num[0]);
_66=_66.replace(/[.,\d]+\s*/,"");
_6e*=tmp;
}
var _71=false;
if(!I.unitMatch(_63,_68,to,_6a)){
_71=true;
}
if(!I.unitMatch(_64,_6b,_66,_6c)){
_71=true;
}
var _72=false;
if(_71){
var tmp=to;
var _73=_6a;
to=_66;
_6a=_6c;
_66=tmp;
_6c=_73;
if(!I.unitMatch(_63,_68,to,_6a)){
InstaCalc.unitlabel="";
return 1;
}
if(!I.unitMatch(_64,_6b,_66,_6c)){
InstaCalc.unitlabel="";
return 1;
}
_72=true;
}
var obj;
var n;
if(obj=isUnit(_63)){
n=obj[_63];
}else{
n=1;
}
var ft=Math.pow(n,_68);
if(obj=isUnit(_64)){
n=obj[_64];
}else{
n=1;
}
var fb=Math.pow(n,_6b);
if(obj=isUnit(to)){
n=obj[to];
}else{
n=1;
}
var tt=Math.pow(n,_6a);
if(obj=isUnit(_66)){
n=obj[_66];
}else{
n=1;
}
var tb=Math.pow(n,_6c);
var f2=(ft/tt)*(tb/fb);
f2*=_6d;
if(_72){
I.log+="inverting!";
return function(x){
return (1*_6e)/(x*f2);
};
}else{
f2*=_6e;
return f2;
}
};
I.convertUnit=function(str){
var _7d=1;
var _7e=1;
var ret=I.splitUnits(str);
if(ret==null){
InstaCalc.unitlabel="";
return 1;
}
var _80=ret[0];
var _81=ret[1];
var to=ret[2];
var _83=ret[3];
InstaCalc.unitlabel=ret[4];
return I.getUnitScale(_80,_81,to,_83);
var a=I.getUnitPower(_80);
_80=a[0];
var _85=a[1];
var b=I.getUnitPower(to);
to=b[0];
var _87=b[1];
a=I.getUnitPower(_81);
_81=a[0];
var _88=a[1];
b=I.getUnitPower(_83);
_83=b[0];
var _89=b[1];
var _8a=false;
if(!I.unitMatch(_80,_85,to,_87)){
_8a=true;
}
if(!I.unitMatch(_81,_88,_83,_89)){
_8a=true;
}
var _8b=false;
if(_8a){
var tmp=to;
var _8d=_87;
to=_83;
_87=_89;
_83=tmp;
_89=_8d;
if(!I.unitMatch(_80,_85,to,_87)){
InstaCalc.unitlabel="";
return 1;
}
if(!I.unitMatch(_81,_88,_83,_89)){
InstaCalc.unitlabel="";
return 1;
}
_8b=true;
}
var ft=Math.pow(isUnit(_80)[_80],_85);
var fb=Math.pow(isUnit(_81)[_81],_88);
var tt=Math.pow(isUnit(to)[to],_87);
var tb=Math.pow(isUnit(_83)[_83],_89);
var f2=(ft/tt)*(tb/fb);
if(_8b){
return 1/f2;
}
return f2;
var _93=(isUnit(_80)[_80]/isUnit(to)[to])*(toScale/fromScale);
return _93;
};
function setError(str){
I.error=str;
}
function getError(){
return I.error;
}
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;
}
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.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.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.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)\s+.*))$/g,"$1 = CONVERSION($2, CONVERT(\"$3\") )"]);
f.push([/^(-?[\d.,]+)\s+(([a-zA-Z].*\s+(in|as|into|to)\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([/%/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)+)\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\")"]);
function changeRow(row){
if(getInputValue(row)===""){
deleteRow(row);
}else{
insertRow(row);
}
}
function eraseRows(){
var _98=document.getElementById("myTbody");
if(isdefined(_98)&&!isNull(_98)){
var _99=document.getElementById("myTbody");
while(_99.childNodes.length>0){
_99.removeChild(_99.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);
}
loadCellsFromString2(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);
loadCellsFromString2(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(_a3){
var i=0;
for(i=0;i<I.inputs.length;i++){
if(_a3[i]=="h"){
hideInput(i);
}else{
showInput(i);
}
}
getVisibility();
}
function updateReferences(_a5,row){
var i;
var str="";
for(var i=0;i<_a5;i++){
str=_a5[i];
if(str.match(/\bR(\d+)\b/ig)){
}
}
I.expressions.push([/\bR(\d+)\b/ig,"getOutputValue($1 - 1)"]);
}
function getRowValues(_a9,end){
if(typeof (_a9)=="string"){
_a9=parseInt(_a9,10);
}
if(typeof (end)=="string"){
end=parseInt(end,10);
}
if(end<_a9){
return [];
}
if(_a9<1||end>I.cells){
return [];
}
var a=[];
var t=[];
for(row=_a9;row<=end;row++){
var _ad=row-1;
var _ae="Row "+row;
var val;
try{
val=getOutputValue(_ad);
_ae=getTitleText(_ad);
}
catch(e){
val=0;
_ae="Row "+row;
}
if(typeof (val)!="number"){
val=parseNumber(val);
}
if(_ae===""){
_ae="Row "+row;
}
a.push([row,val]);
t.push([_ae,val]);
}
I.datatitles=t;
I.data=a;
return a;
}
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(_b2,_b3){
if(I.settings.embed){
return;
}
if(I.firstChart){
showItem("chart");
I.firstChart=false;
}
I.hasChart=true;
if(_b3!="line"&&_b3!="pie"&&_b3!="bar"){
_b3="line";
}
var foo=document.getElementById("example2");
foo.innerHTML="";
try{
var i;
var _b6=[];
var _b7=[];
for(i=0;i<I.datatitles.length;i++){
_b6.push({label:I.datatitles[i][0],v:i+1});
_b7.push([[i+1],I.datatitles[i][1]]);
}
var _b8=(_b3=="bar"||_b3=="line")?false:true;
I.plotter=new EasyPlot(_b3,{"xTicks":_b6,"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":_b8,"pieRadius":0.35},$("example2"),[_b7]);
}
catch(e){
setStatus("Sorry, there was an error plotting. 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 findTitle(str){
if(isNull(str)){
return "";
}
var _ba=str.match(/[a-zA-Z_][a-zA-Z0-9_:\.]*\s*=/);
if(isNull(_ba)){
return "";
}
var _bb="";
_bb=_ba[0].match(/[a-zA-Z_][a-zA-Z0-9_:\.]*/)[0];
re=new RegExp("_","g");
_bb=_bb.replace(re," ");
return _bb;
}
function replacefn(_bc){
replace="";
if(I.allowedfn[_bc.toUpperCase()]){
replace=I.allowedfn[_bc.toUpperCase()];
}else{
replace=I.safeprepend+_bc;
}
return replace;
}
function replacekeyword(_bd){
var _be=I.keywords[_bd.toUpperCase()];
if(_be){
return _be;
}
return _bd;
}
function replacecn(_bf){
if(I.allowedcn[_bf]){
return I.allowedcn[_bf];
}
return "";
}
function validcn(_c0){
if(_c0===""){
return false;
}
if(I.allowedcn[_c0]){
return true;
}
return false;
}
function validkeyword(_c1){
if(_c1===""){
return false;
}
if(I.keywords[_c1.toUpperCase()]){
return true;
}
return false;
}
function validExpression(_c2){
var i;
for(i=0;i<I.expressions.length;i++){
if(_c2.match(I.expressions[i][0])){
return i;
}
}
return -1;
}
function replaceExpression(_c4){
var i;
for(i=0;i<I.expressions.length;i++){
if(_c4.match(I.expressions[i][0])){
return _c4.replace(I.expressions[i][0],I.expressions[i][1]);
}
}
return _c4;
}
function replacevariable(_c6){
return I.safeprepend+_c6;
}
function cleanVariable(_c7){
myregexp=new RegExp(I.safeprepend,"g");
return _c7.replace(myregexp,"");
}
function tokenType(_c8){
if(_c8.match(/[(]/)){
return "function";
}
if(validcn(_c8)){
return "constant";
}
if(validkeyword(_c8)){
return "keyword";
}
if(validExpression(_c8)!=-1){
return "expression";
}
return "variable";
}
function findString(_c9){
var i;
for(i=0;i<_c9.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 _d1=I.firstfilter[i][1];
str=str.replace(re,_d1);
}
return str;
}
function prefilter(str){
var i;
for(i=0;i<I.prefilter.length;i++){
re=I.prefilter[i][0];
var _d4=I.prefilter[i][1];
str=str.replace(re,_d4);
}
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 _d8=I.postfilter[i][1];
str=str.replace(re,_d8);
}
return str;
}
function cleanup2(str){
str=prefilter(str);
var _da=str.split(/\s+/);
var _db=tokenType(token);
}
function extractStrings2(str){
var i;
var _de=false;
var _df="";
var _e0=[];
var _e1=[];
var _e2=str.match(/"([\\]"|[^"])+"/g);
if(isNull(_e2)){
return [str,[]];
}
for(i=0;i<_e2.length;i++){
var _e3=I.stringprepend+i;
var _e4=_e2[i];
str=str.replace(_e4,_e3);
_e1.push([_e3,_e4]);
}
return [str,_e1];
}
function extractStrings(str){
var i;
var _e7=false;
var _e8="";
var _e9=[];
var _ea=[];
for(i=0;i<str.length;i++){
if(i==0&&str[i]=="\""){
_e7=true;
_e8+=str[i];
continue;
}
if(str[i]=="\""&&(str[i-1]!="\\")){
_e7=!_e7;
if(_e8!==""){
var _eb=I.stringprepend+_ea.length;
str=str.replace(_e8,_eb);
_ea.push([_eb,_e8]);
}
_e8="";
continue;
}
if(_e7===true){
_e8+=str[i];
}
}
return [str,_ea];
}
function replaceStrings(str,_ed){
var i;
for(i=0;i<_ed.length;i++){
var _ef=_ed[i];
str=str.replace(_ef[0],_ef[1]);
}
return str;
}
function cleanup(str){
var i;
if(isNull(str)||!isdefined(str)||str===""){
return str;
}
str=firstfilter(str);
var ret=extractStrings2(str);
str=ret[0];
var _f3=ret[1];
var tmp=I.format.currencies;
for(var _f5 in tmp){
var cur=tmp[_f5];
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 _f7=str.match(/[a-zA-Z_][a-zA-Z0-9_:]*\s*[(]*/g);
if(isNull(_f7)){
return str;
}
var _f8,_f9,_fa;
for(i=0;i<_f7.length;i++){
_f8=_f7[i];
_f8=_f8.match(/\S+/)[0];
_f9=tokenType(_f8);
if(_f9=="function"){
var _fb=_f8.match(/\w+/)[0];
_fa=replacefn(_fb);
re=new RegExp("([^.]|^)"+_fb+"s*[(]","g");
str=str.replace(re,"$1"+_fa+"(");
continue;
}
if(_f9=="constant"){
var _fc=_f8.match(/\w+/)[0];
re=new RegExp("([^.]|^)"+_fc+"\\b","");
str=str.replace(re,"$1"+replacecn(_fc));
continue;
}
if(_f9=="keyword"){
var _fd=_f8.match(/\w+/)[0];
re=new RegExp("(\\s|^)"+_fd+"\\b","");
str=str.replace(re," "+replacekeyword(_fd));
continue;
}
if(_f9=="expression"){
var _fe=replaceExpression(_f8);
re=new RegExp("\\b"+_f8+"\\b","");
str=str.replace(re,_fe);
continue;
}
var _ff=I.safeprepend+_f8.toLowerCase();
re=new RegExp("\\b"+_f8+"\\b","g");
str=str.replace(re,_ff);
}
str=postfilter(str);
str=replaceStrings(str,_f3);
return str;
}
function getValueArray(_100){
if(!isdefined(_100)){
return _100;
}
var i;
var _102=[];
for(i=0;i<_100.length;i++){
_102[i]=_100[i].value;
}
return _102;
}
function setValueArray(_103,_104){
var i;
for(i=0;i<_103.length;i++){
if(isdefined(_103[i])&&isdefined(_104[i])){
_104[i].value=_103[i];
}
}
}
function addCell2(_106){
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>";
_106.innerHTML+=html;
hideObject(getTitle(i));
showInput(i);
I.cells++;
return html;
}
function addCell(_108,i,_10a){
var _10b=document.getElementById("myTbody");
var _10c,_10d;
_10c=_10b.insertRow(_10b.rows.length);
_10c.className="tr0";
_10d=_10c.insertCell(_10c.cells.length);
_10d.className="col0";
_10d.innerHTML="<span class=\"number\" title=\"Click to modify row\" onContextMenu=\"return false;\" id=\"parentmenu_"+i+"\" >"+"R"+(i+1)+"</span>";
if(I.settings.standalone){
_10d.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{
_10d.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");
_10d=_10c.insertCell(_10c.cells.length);
_10d.className="col1";
_10d.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>";
_10d=_10c.insertCell(_10c.cells.length);
_10d.className="col2";
_10d.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 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 setCells(_11a){
var i;
if(!isdefined(_11a)){
_11a=saved;
}
for(i=0;i<I.cells;i++){
I.inputs[i]=document.getElementById("input_"+i);
I.outputs[i]=document.getElementById("output_"+i);
if(isdefined(_11a[i])){
I.inputs[i].value=_11a[i];
}else{
I.inputs[i].value="";
}
}
}
function setStatus(str,_11d){
if(isdefined(status)){
status.innerHTML=str;
if(_11d===true){
status.className="statusError";
}else{
status.className="statusOK";
}
}
}
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;
for(i=0;i<I.cells;i++){
I.inputs[i]=null;
getInput(i);
}
return;
}
function getInputValue(i){
return getInput(i).value;
}
function setInputValue(str,i){
getInput(i).value=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 _134=document.getElementById("textmode");
var _135=document.getElementById("gridmode");
hideObject(_135);
var foo=new Effect.Appear(_134);
}
function gridMode(){
var _137=document.getElementById("textmode");
var _138=document.getElementById("gridmode");
var foo=new Effect.Appear(_138);
hideObject(_137);
}
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();
}
recalculate();
}
function iscomment(str){
if(str.match(/[\/][\/]/)){
return true;
}else{
return false;
}
}
function extractComment(str){
var a=str.match(/([\/][\/].*)/);
var _142;
if(!isNull(a)){
_142=str.split(/[\/][\/]+/)[0];
if(!isNull(_142)&&isdefined(_142)){
}else{
_142="";
}
var _143=str.match("[/][/](.*)")[1];
return [_142,_143];
}
return [str,""];
}
function extractTitle(str){
var a=str.split(/^\[[^\]]*\]/);
return a;
}
function recalculate(){
var tmp="";
var _147="";
var _148=false;
var i;
I.clearLocals();
for(i=0;i<I.cells;i++){
I.inputs[i]=document.getElementById("input_"+i);
I.outputs[i]=document.getElementById("output_"+i);
I.outputCache[i]="";
I.outputs[i].innerHTML="";
tmp="";
var _14a="";
var _14b="";
var _14c="";
var _14d="";
InstaCalc.unitlabel="";
I.format.currency=false;
setTitleText(i,"");
if(!isdefined(I.outputs[i])||!isdefined(I.inputs[i])){
continue;
}
if(isNull(I.inputs[i].value)||!isdefined(I.inputs[i].value)||I.inputs[i].value===""){
continue;
}
_14d=I.inputs[i].value;
var a=extractComment(_14d);
_14d=a[0];
_14b=escapeHTML(a[1].toString());
if(isdefined(_14b)){
}else{
}
_14c=findTitle(_14d);
if(!isNull(_14c)){
setTitleText(i,_14c);
}else{
setTitleText(i,"");
}
if(I.inputCache[i]!=null&&I.inputCache[i][0]==_14d){
_14d=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{
var orig=_14d;
_14d=cleanup(_14d);
I.inputCache[i]=[orig,_14d];
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;
}
if(!isNull(_14d)){
try{
tmp=eval(_14d);
}
catch(e){
if(e instanceof ReferenceError){
if(!_148){
_147="Waiting to define variable in row "+(i+1)+"...";
_148=true;
}
}else{
if(!_148){
_147="Waiting on row "+(i+1)+"...";
_148=true;
}
}
tmp="";
}
}else{
tmp="";
}
if(InstaCalc.unitlabel){
_14b=InstaCalc.unitlabel+_14b;
}
if(tmp=="NaN"||tmp=="undefined"){
if(!_148){
tmp="";
_147="Sorry, a variable in row "+(i+1)+"is not defined.";
_148=true;
}
}
if(typeof (tmp)=="function"){
tmp="";
}
if(typeof (tmp)=="number"){
if(tmp==Infinity){
tmp="Infinity";
}else{
if(isNaN(tmp)){
tmp="Number undefined";
}else{
tmp=formatNumber(tmp);
if(tmp==Infinity){
tmp="Infinity";
}
}
}
}
if(typeof (tmp)=="boolean"){
tmp=tmp.toString();
}
if(!tmp){
tmp="";
}
I.outputCache[i]=tmp;
_14a=cleanVariable(escapeHTML(tmp.toString()));
I.outputs[i].innerHTML=_14a;
if(!isNull(_14b)&&isdefined(_14b)){
if(_14a!=""){
I.outputs[i].innerHTML+="<span class = \"outputCommentSpacer\"></span>";
}
I.outputs[i].innerHTML+=" "+"<span class=\"outputComment\">"+_14b+"</span>";
}
}
setStatus(_147);
}
function parseNumber(n){
if(n==Infinity){
return Infinity;
}
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,",",",");
function formatNumber(n){
var str=n.toString();
if(n>=100000000000000000000){
return n.toString().replace("e+","e");
}
if(InstaCalc.unitlabel!=""){
if(n<=1e-11){
return n.toString();
}
}
n=parseFloat(n.toPrecision(15));
if(I.format.currency){
n=n.toFixed(I.format.decimals);
}else{
n=n.toFixed(11);
}
if(n>=1000000000){
n=parseFloat(n).toPrecision(16);
}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 init(){
if(I.settings.embed){
return;
}
var foo;
if(I.hasChart){
showItem("chart");
}else{
if(!I.settings.standalone){
showItem("overview");
}
}
if(typeof (loadOnlineContent)=="function"){
loadOnlineContent();
}
}
function isNull(obj){
if(obj===null){
return true;
}
if(isdefined(obj)===false){
return true;
}
if(obj===""){
return true;
}
return false;
}
function compressURL(str){
str=encodeBase64ForURL(Utf8.encode(str));
return str;
}
function decompressURL(str){
str=Utf8.decode(decodeBase64ForURL(str));
return str;
}
function shrinkspaces(str){
if(iscomment(str)){
return;
}
str=str.replace(/\s*[=]\s*/g,"=");
str=str.replace(/\s*[\+]\s*/g,"+");
str=str.replace(/\s*[\/]\s*/g,"/");
str=str.replace(/\s*[\-]\s*/g,"-");
str=str.replace(/\s*[\*]\s*/g,"*");
return str;
}
function expandspaces(str){
if(iscomment(str)){
return;
}
str=str.replace(/[=]/g," = ");
str=str.replace(/[\+]/g," + ");
str=str.replace(/[\/]/g," / ");
str=str.replace(/[\-]/g," - ");
str=str.replace(/[\*]/g," * ");
return str;
}
function createDataString(_15a){
var str="";
var tmp="";
for(i=0;i<_15a.length;i++){
tmp=_15a[i];
tmp=tmp.replace(/[|]/g,I.separator);
if(i===0){
str+=tmp;
}else{
str+="|"+tmp;
}
}
return str;
}
function encodeDescription(str){
return encodeBase64ForURL(Utf8.encode(str));
}
function decodeDescription(str){
return Utf8.decode(decodeBase64ForURL(str));
}
function createURL(){
saveCells();
var str="";
var tmp="";
var i;
str=createDataString(saved);
str=compressURL(str);
var desc=encodeDescription(getDescription());
var _163="";
for(i=0;i<I.cells;i++){
if(inputHidden(i)){
_163+="h";
}else{
_163+="s";
}
}
var url=getURLNoParams();
var _165=url+"mini/";
var _166="?d="+desc+"&c="+str+"&s="+_163+"&v="+I.version;
I.minipermalink="http://instacalc.com/"+_166;
I.minipermalinkdemo=_165+_166;
I.permalink=I.minipermalink;
I.absolutepermalink=I.minipermalink;
I.embedlink="http://instacalc.com/embedpreview.html"+_166;
if(I.permalink.length>2000){
urlbox.value="Sorry, that URL is too large! Try splitting your calculation into 2 pages...";
}
var h=80+(24*I.cells);
I.miniembed="<iframe src=\""+I.minipermalinkdemo+"\" width=\"425\" height=\""+h+"\" frameborder=\"0\" scrolling=\"auto\" valign=\"top\"> </iframe>";
}
function hasURLParams(){
str=getURLParam("c");
if(isNull(str)||str.length==0){
return false;
}else{
return true;
}
}
function loadDataFromURL(url){
I.resetChart();
eraseRows();
setDescription("");
str=getURLParam("c",url);
str=decompressURL(str);
if(isNull(str)){
return;
}
loadCellsFromString(str);
str=unescape(getURLParam("s",url));
I.showHide=str;
showHideCells(str);
str=getURLParam("d",url);
if(str!==""){
I.description=decodeDescription(str);
setDescription(I.description);
}
recalculate();
}
function loadURLParams(){
str=getURLParam("c");
str=decompressURL(str);
if(isNull(str)){
return;
}
loadCellsFromString(str);
str=unescape(getURLParam("s"));
I.showHide=str;
if(isObjectVisible(getInput(0))&&(!InstaCalc.settings.embed)){
document.getElementById("input_0").focus();
}
showHideCells(str);
str=getURLParam("d");
if(str!==""){
I.description=decodeDescription(str);
setDescription(I.description);
}
recalculate();
}
function saveSettings(){
I.showHideSettings=getShowHideSettings();
}
function restoreSettings(){
showHideCells(I.showHideSettings);
}
function showHideCells(_169){
if(isNull(_169)){
return;
}
var i;
for(i=0;i<I.cells;i++){
if(_169.charAt(i)=="h"){
hideInput(i);
}else{
showInput(i);
}
}
return _169;
}
function getShowHideSettings(){
var _16b="";
var i;
for(i=0;i<I.cells;i++){
if(inputHidden(i)){
_16b+="h";
}else{
_16b+="s";
}
}
return _16b;
}
function insertRowIntoString(row){
saveCells();
}
function loadCellsFromString2(str){
var _16f=str.split("|");
eraseRows();
addMultipleCells(_16f.length);
setCells(_16f);
saveCells();
}
function loadCellsFromString(str){
var _171=str.split("|");
var i=0;
for(i=0;i<_171.length;i++){
var re=new RegExp(I.separator,"g");
_171[i]=_171[i].replace(re,"|");
}
while(_171.length>I.cells&&I.cells<I.maxCells){
addCell("",I.cells,"");
I.cells+=1;
}
setCells(_171);
saveCells();
}
function saveCells(){
saved=getValueArray(I.inputs);
}
function loadCells(){
setValueArray(saved,I.inputs);
}
function hideAll(_174){
var i;
for(i=0;i<_174.length;i++){
hideItem(_174[i]);
}
return;
}
function toggleAndHide(item,_177){
for(i=0;i<_177.length;i++){
if(item==_177[i]){
toggleItem(_177[i]);
}else{
hideItem(_177[i]);
}
}
}
function loadInput(_178){
var i;
if(_178.length>I.cells){
addMultipleCells(_178.length-I.cells);
}
for(i=0;i<_178.length&&i<I.cells;i++){
var _17a=getInput(i);
_17a.value=_178[i];
}
}
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 loadCellsFromStringNewline(str){
var _17e=str.split("\n");
loadInput(_17e);
}
function getCellsAsString(){
var str="";
for(i=0;i<I.inputs.length;i++){
if(i==I.inputs.length-1){
str+=getInputValue(i);
}else{
str+=getInputValue(i)+"\n";
}
}
return str;
}
function loadOutput(){
var foo=document.getElementById("textoutput");
var str="";
var tmp=I.outputs;
for(var i=0;i<tmp.length;i++){
str+="<span class=\"textitem\">"+tmp[i].innerHTML+"&nbsp;"+"</span><br/>";
}
foo.innerHTML=str;
return str;
}
function getOutputs(){
var i;
var a=[];
for(i=0;i<I.outputCache.length;i++){
a.push(I.outputCache[i]);
}
return a;
}
function createPage(_186){
var _187=document.getElementById("variablearea");
I.status=document.getElementById("status");
var _188={};
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(_186!=null){
loadInput(_186);
}
}
}
I.timer=null;
I.delay=300;
function startTimer(){
I.timer=self.setTimeout("startTimer()",I.delay);
setStatus(Math.random().toString());
}
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 _18b=getInputValue(i);
var _18c=getOutput(i).innerHTML;
str+="<tr class=\"html-number\">";
str+="<td>r"+(i+1)+"</td>";
str+="<td class=\"html-input\">"+_18b+"</td>";
str+="<td class=\"html-output \">"+_18c+"</td>";
str+="</tr>";
}
str+="</table></div>";
return str;
}
function inputReplace(find,_18e){
var i;
for(i=0;i<I.inputs.length;i++){
var str=getInputValue(i);
if(str.match(find)){
var _191=str.replace(find,_18e);
setInputValue(_191,i);
}
}
recalculate();
}
function setBarChart(){
inputReplace(/^\s*\w+chart/,"barchart");
}
function setLineChart(){
inputReplace(/^\s*\w+chart/,"linechart");
}
function setPieChart(){
inputReplace(/^\s*\w+chart/,"piechart");
}

