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 makeGuid(){
return Math.round(Math.random()*100000000000000000000);
}
var Log={};
Log.url="/log/log.php";
Log.session_guid=makeGuid();
Log.send=function(msg){
if(Object.toQueryString){
var _84=Object.toQueryString({log:msg,guid:Log.session_guid});
}
msg+="&guid="+Log.session_guid;
makePOSTRequest(Log.url,msg);
};
Log.send_perf_data=function(){
if(updateLocalPermalink){
updateLocalPermalink();
Log.send("log="+escape(I.permalink));
}
};
Log.count=0;
Log.perf_delay=100;
Log.update=function(){
Log.count+=1;
if(Log.count%Log.perf_delay==0){
Log.send_perf_data();
}
};
function makePOSTRequest(url,_86){
http_request=false;
if(window.XMLHttpRequest){
http_request=new XMLHttpRequest();
if(http_request.overrideMimeType){
http_request.overrideMimeType("text/html");
}
}else{
if(window.ActiveXObject){
try{
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
}
}
}
}
if(!http_request){
alert("Cannot create XMLHTTP instance");
return false;
}
http_request.onreadystatechange=alertContents;
http_request.open("POST",url,true);
http_request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length",_86.length);
http_request.setRequestHeader("Connection","close");
http_request.send(_86);
}
function alertContents(){
if(http_request.readyState==4){
if(http_request.status==200){
result=http_request.responseText;
}else{
}
}
}
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 _90="&tags=instacalc";
var _91="&title=InstaCalc:%20";
var _92="&noui&jump=close&v=4";
createURL();
var _93="http://del.icio.us/jshell.com?url="+InstaCalc.absolutepermalink.replace(/&/g,"%26")+_91+_90+_92;
return _93;
}
function createEmbedURL(){
createURL();
return InstaCalc.embedlink;
}
function updateToDataLinks(){
var i;
for(i=0;i<document.links.length;i++){
var _95=document.links[i];
if(_95.href.match(/.*v=.[.].$/)){
_95.href="javascript:loadDataFromURL(\""+_95.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 _9c=getInput(i);
var _9d=caret(_9c);
var tmp=_9c.value;
var _9f=tmp.slice(0,_9d);
var end=tmp.slice(_9d);
_9c.value=_9f+str+end;
recalculate();
}
if(isVisible("inputtextarea")){
insertAtCursor($("inputtextarea"),str);
updateScratchpad();
return;
var _9c=$("inputtextarea");
var tmp=_9c.value;
var _9d=caret(_9c);
var _9f=tmp.slice(0,_9d);
var end=tmp.slice(_9d);
_9c.value=_9f+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 _a4=$("inputtextarea").value;
}
scratchpadTimeout=null;
scratchpadRefresh=100;
function updateScratchpad2(){
self.clearTimeout(scratchpadTimeout);
var _a5=$("inputtextarea").value.split("\n");
var _a6=_a5.length;
if(_a6>I.maxCells){
var _a7=$("inputtextarea").value;
var _a8=_a5.slice(0,I.maxCells).join("\n");
$("inputtextarea").value=_a8;
setStatus("Whoa there, that's a lot of cells. Try making a new page.");
}else{
if(_a6>I.cells){
var _a9=(I.maxCells-_a6>10)?10:I.maxCells-_a6;
createScratchpad(_a6+_a9);
addMultipleCells(_a9);
}
}
if(_a6>20){
var _aa=(_a6)/I.maxCells;
scratchpadRefresh=50+_aa*100;
}else{
scratchpadRefresh=50;
}
scratchpadTimeout=self.setTimeout("updateScratchpad()",scratchpadRefresh);
}

