Skip to content

Instantly share code, notes, and snippets.

@abiank
Created December 20, 2012 01:21
Show Gist options
  • Save abiank/4342262 to your computer and use it in GitHub Desktop.
Save abiank/4342262 to your computer and use it in GitHub Desktop.
SocialCalc: Object
AdjustFormulaCoords: function (a,c,b,d,e){var f,g,l="",h=!1,n=SocialCalc.Formula;if(!n)return"Need SocialCalc.Formula";var p=n.TokenType,u=p.op,s=p.string,p=p.coord,n=n.TokenOpExpansion;parseinfo=SocialCalc.Formula.ParseFormulaIntoTokens(a);for(g=0;g<parseinfo.length;g++){f=parseinfo[g].type;a=parseinfo[g].text;f==u&&("!"==a?h=!0:":"!=a&&(h=!1),a=n[a]||a);if(f==p){cr=SocialCalc.coordToCr(a);if((0>b&&cr.col>=c&&cr.col<c-b||0>e&&cr.row>=d&&cr.row<d-e)&&!h)cr.col=0,cr.row=0;h||(cr.col>=c&&(cr.col+=
AssignID: function (a,c,b){a.idPrefix&&(c.id=a.idPrefix+b)}
AutoRepeatInfo: Object
ButtonInfo: Object
ButtonMouseDown: function (a){a=a||window.event;var c=SocialCalc.ButtonInfo;SocialCalc.GetViewportInfo();var b=SocialCalc.LookupElement(a.target||a.srcElement,c.registeredElements);if(b&&(!b||(!b.functionobj||!b.functionobj.Disabled)||!b.functionobj.Disabled(a,c,b)))c.buttonElement=b,c.buttonDown=!0,SocialCalc.setStyles(b.element,c.buttonElement.downstyle),document.addEventListener?document.addEventListener("mouseup",SocialCalc.ButtonMouseUp,!0):b.element.attachEvent&&(b.element.setCapture(),
ButtonMouseOut: function (a){a=a||window.event;var c=SocialCalc.ButtonInfo;if(c.buttonDown)c.doingHover=!1;else{var b=SocialCalc.LookupElement(a.target||a.srcElement,c.registeredElements);c.doingHover&&(c.buttonElement&&SocialCalc.setStyles(c.buttonElement.element,c.buttonElement.normalstyle),c.buttonElement=null,c.doingHover=!1);b&&(b.functionobj&&b.functionobj.MouseOut)&&b.functionobj.MouseOut(a,c,b)}}
ButtonMouseOver: function (a){a=a||window.event;var c=SocialCalc.ButtonInfo,b=SocialCalc.LookupElement(a.target||a.srcElement,c.registeredElements);b&&(c.buttonDown?c.buttonElement==b&&(c.doingHover=!0):(c.buttonElement&&(c.buttonElement!=b&&c.doingHover)&&SocialCalc.setStyles(c.buttonElement.element,c.buttonElement.normalstyle),c.buttonElement=b,c.doingHover=!0,SocialCalc.setStyles(b.element,b.hoverstyle),b&&(b.functionobj&&b.functionobj.MouseOver)&&b.functionobj.MouseOver(a,c,b)))}
ButtonMouseUp: function (a){a=a||window.event;var c=SocialCalc.ButtonInfo,b=c.buttonElement;c.timer&&(window.clearTimeout(c.timer),c.timer=null);c.buttonDown&&(a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,a.preventDefault?a.preventDefault():a.returnValue=!1,document.removeEventListener?document.removeEventListener("mouseup",SocialCalc.ButtonMouseUp,!0):document.detachEvent&&(b.element.detachEvent("onlosecapture",SocialCalc.ButtonMouseUp),b.element.detachEvent("onmouseup",SocialCalc.ButtonMouseUp),
ButtonRegister: function (a,c,b,d){var e=SocialCalc.ButtonInfo;b||(b={});e.registeredElements.push({name:b.name,element:c,editor:a,normalstyle:b.normalstyle,hoverstyle:b.hoverstyle,downstyle:b.downstyle,repeatwait:b.repeatwait,repeatinterval:b.repeatinterval,functionobj:d});if(c.addEventListener)c.addEventListener("mousedown",SocialCalc.ButtonMouseDown,!1),c.addEventListener("mouseover",SocialCalc.ButtonMouseOver,!1),c.addEventListener("mouseout",SocialCalc.ButtonMouseOut,!1);else if(c.attachEvent)c.attachEvent("onmousedown",
ButtonRepeat: function (){var a=SocialCalc.ButtonInfo,c=a.buttonElement;c&&(c&&(c.functionobj&&c.functionobj.Repeat)&&c.functionobj.Repeat(null,a,c),a.timer=window.setTimeout(SocialCalc.ButtonRepeat,c.repeatinterval||100))}
CalculateCellSkipData: function (a){var c,b,d,e,f,g,l,h,n=a.sheetobj;a.maxrow=0;a.maxcol=0;a.cellskip={};for(c=1;c<=n.attribs.lastrow;c++)for(b=1;b<=n.attribs.lastcol;b++)if(d=SocialCalc.crToCoord(b,c),e=n.cells[d],!(void 0===e||a.cellskip[d]))if(f=e.colspan||1,e=e.rowspan||1,1<f||1<e)for(g=c;g<c+e;g++)for(l=b;l<b+f;l++)h=SocialCalc.crToCoord(l,g),h==d?a.coordToCR[d]={row:c,col:b}:a.cellskip[h]=d,g>a.maxrow&&(maxrow=g),l>a.maxcol&&(maxcol=l);a.needcellskip=!1}
CalculateColPositions: function (a,c,b,d){var e,f,g,l,h=a.context;if(!h.showRCHeaders)throw"Needs showRCHeaders=true";f=a.fullgrid.lastChild;a=1;for(e=0;e<c;e++)a+=h.colpanes[e].last-h.colpanes[e].first+2;g=f.childNodes[1];f=0;for(c=h.colpanes[e].first;c<=h.colpanes[e].last;c++)l=SocialCalc.GetElementPosition(g.childNodes[a+f]),b[c]||(b[c]=l.left,g.childNodes[a+f]&&(d[c]=g.childNodes[a+f].offsetWidth)),f++}
CalculateColWidthData: function (a){var c,b,d,e=a.sheetobj;d=a.showRCHeaders?a.rownamewidth-0:0;for(colpane=0;colpane<a.colpanes.length;colpane++)for(c=a.colpanes[colpane].first;c<=a.colpanes[colpane].last;c++)if(b=SocialCalc.rcColname(c),"yes"==e.colattribs.hide[b])a.colwidth[c]=0;else{b=e.colattribs.width[b]||e.attribs.defaultcolwidth||SocialCalc.Constants.defaultColWidth;if("blank"==b||"auto"==b)b="";a.colwidth[c]=b+"";d+=b&&0<b-0?b-0:10}a.totalwidth=d}
CalculateEditorPositions: function (a){var c;a.gridposition=SocialCalc.GetElementPosition(a.griddiv);c=a.griddiv.firstChild.lastChild.childNodes[1].childNodes[0];a.headposition=SocialCalc.GetElementPosition(c);a.headposition.left+=c.offsetWidth;a.headposition.top+=c.offsetHeight;a.rowpositions=[];for(c=0;c<a.context.rowpanes.length;c++)a.CalculateRowPositions(c,a.rowpositions,a.rowheight);for(c=0;c<a.rowpositions.length&&!(a.rowpositions[c]>a.gridposition.top+a.tableheight);c++);a.lastvisiblerow=
CalculateRowPositions: function (a,c,b,d){var e,f,g,l,h=a.context,n;if(!h.showRCHeaders)throw"Needs showRCHeaders=true";n=a.fullgrid.lastChild;a=2;for(e=0;e<c;e++)a+=h.rowpanes[e].last-h.rowpanes[e].first+2;f=0;for(c=h.rowpanes[e].first;c<=h.rowpanes[e].last;c++)g=n.childNodes[a+f],f++,l=SocialCalc.GetElementPosition(g.firstChild),b[c]||(b[c]=l.top,d[c]=g.firstChild.offsetHeight)}
Callbacks: Object
CanonicalizeSheet: function (a,c){var b,d,e,f,g,l,h,n=0,p=0,u="borderstyle cellformat color font layout valueformat".split(" "),s={namesorder:[]};for(g in a.names)s.namesorder.push(g);s.namesorder.sort();if(!SocialCalc.Constants.doCanonicalizeSheet||!c){for(f=0;f<u.length;f++){g=u[f];s["new"+g+"s"]=a[g+"s"];b=a[g+"s"].length;e=Array(b);e[0]="";for(h=1;h<b;h++)e[h]=h;s[g+"sxlat"]=e}s.maxrow=a.attribs.lastrow;s.maxcol=a.attribs.lastcol}else{for(f=0;f<u.length;f++)g=u[f],s[g+"sUsed"]={};h=s.colorsUsed;
Cell: function (a){this.coord=a;this.datavalue="";this.datatype=null;this.formula="";this.valuetype="b";this.readonly=!1}
CellFromStringParts: function (a,c,b,d){for(;a=b[d++];)switch(a){case "v":c.datavalue=SocialCalc.decodeFromSave(b[d++])-0;c.datatype="v";c.valuetype="n";break;case "t":c.datavalue=SocialCalc.decodeFromSave(b[d++]);c.datatype="t";c.valuetype=SocialCalc.Constants.textdatadefaulttype;break;case "vt":a=b[d++];c.valuetype=a;"n"==a.charAt(0)?(c.datatype="v",c.datavalue=SocialCalc.decodeFromSave(b[d++])-0):(c.datatype="t",c.datavalue=SocialCalc.decodeFromSave(b[d++]));break;case "vtf":a=b[d++];
CellHandles: function (a){if(!a.noEdit){this.editor=a;this.movedmouse=this.noCursorSuffix=!1;this.draghandle=document.createElement("div");SocialCalc.setStyles(this.draghandle,"display:none;position:absolute;zIndex:8;border:1px solid white;width:4px;height:4px;fontSize:1px;backgroundColor:#0E93D8;cursor:default;");this.draghandle.innerHTML="&nbsp;";a.toplevel.appendChild(this.draghandle);SocialCalc.AssignID(a,this.draghandle,"draghandle");var c="png";navigator.userAgent.match(/MSIE 6\.0/)&&
CellHandlesDragAutoRepeat: function (a,c){var b=SocialCalc.EditorMouseInfo,d=b.editor;if(d){var e=d.cellhandles,f=SocialCalc.coordToCr(d.cellhandles.startingcoord),g=SocialCalc.coordToCr(a),l,h=0,n=0;"left"==c?n=-1:"right"==c?n=1:"up"==c?h=-1:"down"==c&&(h=1);d.ScrollRelativeBoth(h,n);switch(e.dragtype){case "Fill":case "FillC":e.filltype?"Down"==e.filltype?(g.col=f.col,g.row<f.row&&(g.row=f.row)):(g.row=f.row,g.col<f.col&&(g.col=f.col)):(g.col=f.col,g.row=f.row);l=SocialCalc.crToCoord(g.col,
CellHandlesHoverTimeout: function (){editor=SocialCalc.Keyboard.focusTable;if(!editor)return!0;var a=editor.cellhandles;a.timer&&(window.clearTimeout(a.timer),a.timer=null);a.tooltipstimer&&(window.clearTimeout(a.tooltipstimer),a.tooltipstimer=null);editor.cellhandles.ShowCellHandles(!0,!1)}
CellHandlesMouseDown: function (a){var c=SocialCalc.Constants,b,d=a||window.event,e=SocialCalc.EditorMouseInfo;a=SocialCalc.Keyboard.focusTable;if(!a)return!0;if(!a.busy){var f=a.cellhandles;f.movedmouse=!1;var g=SocialCalc.GetElementPositionWithScroll(a.toplevel),l=d.clientX-g.left,g=d.clientY-g.top;f.timer&&(window.clearTimeout(f.timer),f.timer=null);f.tooltipstimer&&(window.clearTimeout(f.tooltipstimer),f.tooltipstimer=null);f.dragtooltip.innerHTML="&nbsp;";f.dragtooltip.style.display=
CellHandlesMouseMove: function (a){var c=SocialCalc.Constants,b,d,e,f=a||window.event,g=SocialCalc.EditorMouseInfo;if(a=g.editor){var l=a.cellhandles;b=SocialCalc.GetElementPositionWithScroll(a.toplevel);var h=f.clientX-b.left,n=f.clientY-b.top;if(b=SocialCalc.GridMousePosition(a,h,n))if(b&&!b.coord)SocialCalc.SetDragAutoRepeat(a,b,SocialCalc.CellHandlesDragAutoRepeat);else if(SocialCalc.SetDragAutoRepeat(a,null),b.coord){d=SocialCalc.coordToCr(a.cellhandles.startingcoord);e=SocialCalc.coordToCr(b.coord);
CellHandlesMouseMoveOnHandle: function (a){var c=SocialCalc.Constants,b=a||window.event,d=b.target||b.srcElement,e=SocialCalc.Keyboard.focusTable;if(!e)return!0;a=e.cellhandles;if(!a.editor)return!0;var f=SocialCalc.GetElementPositionWithScroll(e.toplevel),g=b.clientX-f.left,b=b.clientY-f.top;if(!e.cellhandles.mouseDown){e.cellhandles.ShowCellHandles(!0,!0);if(d==a.dragpalette){c=SocialCalc.SegmentDivHit([c.CH_radius1,c.CH_radius2],e.cellhandles.dragpalette,g,b);if(0==c){SocialCalc.CellHandlesHoverTimeout();
CellHandlesMouseUp: function (a){var c,b,d,e,f,g=a||window.event,l=SocialCalc.EditorMouseInfo;if(a=l.editor){var h=a.cellhandles;l.ignore=!1;c=SocialCalc.GetElementPositionWithScroll(a.toplevel);c=SocialCalc.GridMousePosition(a,g.clientX-c.left,g.clientY-c.top);SocialCalc.SetDragAutoRepeat(a,null);h.mouseDown=!1;h.noCursorSuffix=!1;h.fillinghandle.style.display="none";c||(c={});c.coord||(c.coord=a.ecell.coord);switch(h.dragtype){case "Fill":case "Move":case "MoveI":b=" all";break;case "FillC":case "MoveC":case "MoveIC":b=
CellHandlesTooltipsTimeout: function (){editor=SocialCalc.Keyboard.focusTable;if(!editor)return!0;var a=editor.cellhandles;a.tooltipstimer&&(window.clearTimeout(a.tooltipstimer),a.tooltipstimer=null);var c=a.tooltipswhichhandle;if(0==c)SocialCalc.CellHandlesHoverTimeout();else{if(-3==c)a.dragtooltip.innerHTML=scc.s_CHfillAllTooltip;else if(3==c)a.dragtooltip.innerHTML=scc.s_CHfillContentsTooltip;else if(-2==c)a.dragtooltip.innerHTML=scc.s_CHmovePasteAllTooltip;else if(-4==c)a.dragtooltip.innerHTML=
CellInPane: function (a,c,b,d,e){var f=a.rowpanes[d];a=a.colpanes[e];if(!f||!a)throw"CellInPane called with unknown panes "+d+"/"+e;return c<f.first||c>f.last||b<a.first||b>a.last?!1:!0}
CellProperties: Object
CellPropertiesTable: Object
CellToString: function (a,c){var b,d,e,f,g,l;b="";if(!c)return b;d=SocialCalc.encodeForSave(c.datavalue);"v"==c.datatype?b="n"==c.valuetype?b+(":v:"+d):b+(":vt:"+c.valuetype+":"+d):"t"==c.datatype?b=c.valuetype==SocialCalc.Constants.textdatadefaulttype?b+(":t:"+d):b+(":vt:"+c.valuetype+":"+d):(e=SocialCalc.encodeForSave(c.formula),"f"==c.datatype?b+=":vtf:"+c.valuetype+":"+d+":"+e:"c"==c.datatype&&(b+=":vtc:"+c.valuetype+":"+d+":"+e));c.readonly&&(b+=":ro:yes");c.errors&&(b+=":e:"+SocialCalc.encodeForSave(c.errors));
Clipboard: Object
CmdGotFocus: function (a){SocialCalc.Keyboard.passThru=a}
ComputeTableControlPositions: function (a){var c=a.editor;if(!c.gridposition||!c.headposition)throw"Can't compute table control positions before editor positions";a.vertical?(a.controlborder=c.gridposition.left+c.tablewidth,a.endcapstart=c.gridposition.top,a.panesliderstart=c.firstscrollingrowtop-a.sliderthickness,a.lessbuttonstart=c.firstscrollingrowtop-1,a.morebuttonstart=c.gridposition.top+c.tableheight-a.buttonthickness,a.scrollareastart=c.firstscrollingrowtop-1+a.buttonthickness):(a.controlborder=
Constants: Object
ConstantsDefaultClasses: Object
ConstantsSetClasses: function (a){var c=SocialCalc.ConstantsDefaultClasses,b=SocialCalc.Constants,d;a=a||"";for(d in c)"string"==typeof c[d]?(b[d+"Class"]=a+(c[d]||d),void 0!==b[d+"Style"]&&(b[d+"Style"]="")):"object"==typeof c[d]&&(b[d+"Class"]=a+(c[d].classname||d),b[d+"Style"]=c[d].style)}
ConstantsSetImagePrefix: function (a){var c=SocialCalc.Constants,b;for(b in c)"string"==typeof c[b]&&(c[b]=c[b].replace(c.defaultImagePrefix,a));c.defaultImagePrefix=a}
ConvertOtherFormatToSave: function (a,c){var b,d,e,f,g,l,h,n,p,u,s,q,t="",r=function(){u++;u>q&&(q=u);s=SocialCalc.crToCoord(u,p);SocialCalc.SetConvertedCell(b,s,g);g=""};if("scsave"==c)return a;b=new SocialCalc.Sheet;d=a.split(/\r\n|\n/);q=0;if("csv"==c){p=0;l=!1;for(e=0;e<d.length&&!(e==d.length-1&&""==d[e]);e++){l?g+="\n":(g="",p++,u=0);f=d[e];for(h=0;h<f.length;h++)n=f.charAt(h),'"'==n?l?h<f.length-1&&'"'==f.charAt(h+1)?(h++,g+='"'):(l=!1,h==f.length-1&&r()):l=!0:(","==n&&!l?r():g+=n,
ConvertSaveToOtherFormat: function (a,c,b){var d,e,f,g;e="";if("scsave"==c)return a;if(""==a)return"";d=new SocialCalc.Sheet;d.ParseSheetSave(a);if(b)throw"SocialCalc.ConvertSaveToOtherFormat: Not doing recalc.";a=d.copiedfrom?SocialCalc.ParseRange(d.copiedfrom):{cr1:{row:1,col:1},cr2:{row:d.attribs.lastrow,col:d.attribs.lastcol}};if("html"==c)return e=new SocialCalc.RenderContext(d),d.copiedfrom&&(e.rowpanes[0]={first:a.cr1.row,last:a.cr2.row},e.colpanes[0]={first:a.cr1.col,last:a.cr2.col}),
CoordInPane: function (a,c,b,d){var e=a.coordToCR[c];if(!e||!e.row||!e.col)throw"Bad coordToCR for "+c;return a.CellInPane(e.row,e.col,b,d)}
CreateAuditString: function (a){var c,b="",d=a.changes.stack,e=a.changes.tos;for(a=0;a<=e;a++)for(c=0;c<d[a].command.length;c++)b+=d[a].command[c]+"\n";return b}
CreatePseudoElement: function (){return{style:{cssText:""},innerHTML:"",className:""}}
CreateSheetSave: function (a,c,b){var d,e,f,g,l,h=[];a.CanonicalizeSheet(b||SocialCalc.Constants.doCanonicalizeSheet);var n=a.xlt;e=c?SocialCalc.ParseRange(c):{cr1:{row:1,col:1},cr2:{row:n.maxrow,col:n.maxcol}};b=e.cr1;e=e.cr2;h.push("version:1.5");for(f=b.row;f<=e.row;f++)for(g=b.col;g<=e.col;g++)if(l=SocialCalc.crToCoord(g,f),d=a.cells[l])d=a.CellToString(d),0!=d.length&&(d="cell:"+l+d,h.push(d));for(g=1;g<=n.maxcol;g++)l=SocialCalc.rcColname(g),a.colattribs.width[l]&&h.push("col:"+l+":w:"+
CreateTableControl: function (a){var c,b,d=SocialCalc.AssignID,e=SocialCalc.setStyles,f=SocialCalc.Constants,g=a.editor.imageprefix,l=a.vertical?"v":"h";a.main=document.createElement("div");c=a.main.style;c.height=(a.vertical?a.size:a.controlthickness)+"px";c.width=(a.vertical?a.controlthickness:a.size)+"px";c.zIndex=0;e(a.main,f.TCmainStyle);c.backgroundImage="url("+g+"main-"+l+".gif)";f.TCmainClass&&(a.main.className=f.TCmainClass);a.main.style.display="none";a.endcap=document.createElement("div");
CreateTableEditor: function (a,c,b){var d=SocialCalc.Constants,e=SocialCalc.AssignID;a.toplevel=document.createElement("div");a.toplevel.style.position="relative";e(a,a.toplevel,"toplevel");a.width=c;a.height=b;a.griddiv=document.createElement("div");a.tablewidth=Math.max(0,c-d.defaultTableControlThickness);a.tableheight=Math.max(0,b-d.defaultTableControlThickness);a.griddiv.style.width=a.tablewidth+"px";a.griddiv.style.height=a.tableheight+"px";a.griddiv.style.overflow="hidden";a.griddiv.style.cursor=
CtrlSEditor: function (a){var c,b;if(0<a.length)c=SocialCalc.special_chars(SocialCalc.OtherSaveParts[a]||"");else for(b in c="Listing of Parts\n",SocialCalc.OtherSaveParts)c+=SocialCalc.special_chars("\nPart: "+b+"\n=====\n"+SocialCalc.OtherSaveParts[b]+"\n");b=document.createElement("div");b.style.cssText="position:absolute;z-index:500;width:300px;height:300px;left:100px;top:200px;border:1px solid black;background-color:#EEE;text-align:center;";b.id="socialcalc-editbox";b.innerHTML=a+'<br><br><textarea id="socialcalc-editbox-textarea" style="width:250px;height:200px;">'+
CtrlSEditorDone: function (a,c){var b=document.getElementById(a+"-textarea").value;0<c.length&&(0<b.length?SocialCalc.OtherSaveParts[c]=b:delete SocialCalc.OtherSaveParts[c]);b=document.getElementById(a);SocialCalc.KeyboardFocus();b.parentNode.removeChild(b)}
CurrentSpreadsheetControlObject: SocialCalc.SpreadsheetControl
CurrentSpreadsheetViewerObject: null
DecodeCellAttributes: function (a,c,b,d){var e,f=a.GetAssuredCell(c),g=!1,l=function(a,c,d){b[a]&&(a=b[a].def?"":b[a].val,a!=(c||"")&&n(d+" "+a))},h="",n=function(a){h&&(h+="\n");h+="set "+(d||c)+" "+a;g=!0};l("alignhoriz",a.cellformats[f.cellformat],"cellformat");e=!b.alignvert.def||!b.padtop.def||!b.padright.def||!b.padbottom.def||!b.padleft.def?"padding:"+(b.padtop.def?"* ":b.padtop.val+" ")+(b.padright.def?"* ":b.padright.val+" ")+(b.padbottom.def?"* ":b.padbottom.val+" ")+(b.padleft.def?
DecodeSheetAttributes: function (a,c){var b,d=a.attribs,e=!1,f=function(a,b,d){c[a]&&(a=c[a].def?"":c[a].val,a!=(b||"")&&l(d+" "+a))},g="",l=function(a){g&&(g+="\n");g+="set sheet "+a;e=!0};f("colwidth",d.defaultcolwidth,"defaultcolwidth");f("rowheight",d.defaultrowheight,"defaultrowheight");f("textalignhoriz",a.cellformats[d.defaulttextformat],"defaulttextformat");f("numberalignhoriz",a.cellformats[d.defaultnontextformat],"defaultnontextformat");b=!c.alignvert.def||!c.padtop.def||!c.padright.def||
DetermineValueType: function (a){var c=a+"",b="t",d,e;d=c.replace(/^\s+/,"");d=d.replace(/\s+$/,"");if(0==c.length)b="";else if(!c.match(/^\s+$/))if(d.match(/^[-+]?\d*(?:\.)?\d*(?:[eE][-+]?\d+)?$/))c=d-0,isNaN(c)?c=a+"":b="n";else if(d.match(/^[-+]?\d*(?:\.)?\d*\s*%$/))c=(d.slice(0,-1)-0)/100,b="n%";else if(d.match(/^[-+]?\$\s*\d*(?:\.)?\d*\s*$/)&&d.match(/\d/))c=d.replace(/\$/,"")-0,b="n$";else if(d.match(/^[-+]?(\d*,\d*)+(?:\.)?\d*$/))c=d.replace(/,/g,"")-0,b="n";else if(d.match(/^[-+]?(\d*,\d*)+(?:\.)?\d*\s*%$/))c=
DoButtonCmd: function (a,c,b){SocialCalc.DoCmd(b.element,b.functionobj.command)}
DoCmd: function (a,c){var b,d,e,f,g,l;f=SocialCalc.GetSpreadsheetControlObject();e=f.editor;switch(c){case "undo":f.ExecuteCommand("undo","");break;case "redo":f.ExecuteCommand("redo","");break;case "fill-rowcolstuff":case "fill-text":e=c.substring(5);d=document.getElementById(f.idPrefix+e+"list");for(b=d.length=0;b<SocialCalc.SpreadsheetCmdTable[e].length;b++)d.options[b]=new Option(SocialCalc.SpreadsheetCmdTable[e][b].t);c="changed-"+e;case "changed-rowcolstuff":case "changed-text":e=c.substring(8);
DoOnResize: function (a){var c,b=a.views;if(a.SizeSSDiv()){for(vname in b)c=b[vname].element,c.style.width=a.width+"px",c.style.height=a.height-a.nonviewheight+"px";a.editor.ResizeTableEditor(a.width,a.height-a.nonviewheight)}}
DoPositionCalculations: function (){
DoRenderStep: function (a){a.timeout=null;a.EditorRenderSheet();SocialCalc.EditorSheetStatusCallback(null,"renderdone",null,a);SocialCalc.EditorSheetStatusCallback(null,"schedposcalc",null,a);a.timeout=window.setTimeout(function(){SocialCalc.DoPositionCalculations(a)},1)}
DragAutoRepeat: function (){var a=SocialCalc.AutoRepeatInfo,c=a.mouseinfo,b;c.rowheader?b="left":c.rowfooter?b="right":c.colheader?b="up":c.colfooter&&(b="down");a.repeatcallback?(c=SocialCalc.coordToCr(a.editor.ecell.coord),"left"==b&&1<c.col?c.col--:"right"==b?c.col++:"up"==b&&1<c.row?c.row--:"down"==b&&c.row++,c=SocialCalc.crToCoord(c.col,c.row),a.repeatcallback(c,b)):(c=a.editor.MoveECellWithKey("[a"+b+"]shifted"))&&a.editor.EditorMouseRange(c);a.timer=window.setTimeout(SocialCalc.DragAutoRepeat,
DragFunctionPosition: function (a,c,b){a=b.functionobj.positionobj||b.element;b.vertical&&(a.style.top=c.clientY+c.offsetY+"px");b.horizontal&&(a.style.left=c.clientX+c.offsetX+"px")}
DragFunctionStart: function (a,c,b){a=b.functionobj.positionobj||b.element;c.offsetY=parseInt(a.style.top)-c.clientY;c.offsetX=parseInt(a.style.left)-c.clientX}
DragInfo: Object
DragMouseDown: function (a){a=a||window.event;var c=SocialCalc.DragInfo,b=SocialCalc.LookupElement(a.target||a.srcElement,c.registeredElements);if(b&&(!b||(!b.functionobj||!b.functionobj.Disabled)||!b.functionobj.Disabled(a,c,b)))return c.draggingElement=b,b.parent&&(c.relativeOffset=SocialCalc.GetElementPositionWithScroll(b.parent)),c.clientX=a.clientX-c.relativeOffset.left,c.clientY=a.clientY-c.relativeOffset.top,c.startX=c.clientX,c.startY=c.clientY,c.startZ=b.element.style.zIndex,c.offsetX=
DragMouseMove: function (a){a=a||window.event;var c=SocialCalc.DragInfo,b=c.draggingElement;c.clientX=a.clientX-c.relativeOffset.left;c.clientY=a.clientY-c.relativeOffset.top;a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;b&&(b.functionobj&&b.functionobj.MouseMove)&&b.functionobj.MouseMove(a,c,b);return!1}
DragMouseUp: function (a){a=a||window.event;var c=SocialCalc.DragInfo,b=c.draggingElement;c.clientX=a.clientX-c.relativeOffset.left;c.clientY=a.clientY-c.relativeOffset.top;b.element.style.zIndex=c.startZ;b&&(b.functionobj&&b.functionobj.MouseUp)&&b.functionobj.MouseUp(a,c,b);a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;document.removeEventListener?(document.removeEventListener("mousemove",SocialCalc.DragMouseMove,!0),document.removeEventListener("mouseup",SocialCalc.DragMouseUp,
DragRegister: function (a,c,b,d,e){var f=SocialCalc.DragInfo;d||(d={MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null});f.registeredElements.push({element:a,vertical:c,horizontal:b,functionobj:d,parent:e});if(a.addEventListener)a.addEventListener("mousedown",SocialCalc.DragMouseDown,!1);else if(a.attachEvent)a.attachEvent("onmousedown",SocialCalc.DragMouseDown);else throw SocialCalc.Constants.s_BrowserNotSupported;
DragUnregister: function (a){var c=SocialCalc.DragInfo,b;if(a)for(b=0;b<c.registeredElements.length;b++)if(c.registeredElements[b].element==a){c.registeredElements.splice(b,1);a.removeEventListener?a.removeEventListener("mousedown",SocialCalc.DragMouseDown,!1):a.detachEvent("onmousedown",SocialCalc.DragMouseDown);break}}
ECellReadonly: function (a,c){!c&&a.ecell&&(c=a.ecell.coord);if(!c)return!1;var b=a.context.sheetobj.cells[c];return b&&b.readonly}
EditorAddToInput: function (a,c,b){var d=a.workingvalues;if(!a.noEdit&&!a.ECellReadonly())switch(a.state){case "start":a.state="input";a.inputBox.ShowInputBox(!0);a.inputBox.element.disabled=!1;a.inputBox.Focus();a.inputBox.SetText((b||"")+c);a.inputBox.Select("end");d.partialexpr="";d.ecoord=a.ecell.coord;d.erow=a.ecell.row;d.ecol=a.ecell.col;a.RangeRemove();break;case "input":case "inputboxdirect":a.inputBox.element.focus(),d.partialexpr&&(a.inputBox.SetText(d.partialexpr),d.partialexpr=
EditorApplySetCommandsToRange: function (a,c){var b;b=a.ecell;var d=a.range;d.hasrange?(coord=SocialCalc.crToCoord(d.left,d.top)+":"+SocialCalc.crToCoord(d.right,d.bottom),b="set "+coord+" "+c):b="set "+b.coord+" "+c;a.EditorScheduleSheetCommands(b,!0,!1);a.DisplayCellContents()}
EditorDisplayCellContents: function (a){a.inputBox&&a.inputBox.DisplayCellContents()}
EditorGetStatuslineString: function (a,c,b,d){var e=SocialCalc.Constants,f,g,l;f="";switch(c){case "moveecell":case "rangechange":case "startup":break;case "cmdstart":d.command=!0;document.body.style.cursor="progress";a.griddiv.style.cursor="progress";f=e.s_statusline_executing;break;case "cmdextension":f="Command Extension: "+b;break;case "cmdend":d.command=!1;break;case "schedrender":f=e.s_statusline_displaying;break;case "renderdone":f=" ";break;case "schedposcalc":f=e.s_statusline_displaying;
EditorMouseInfo: Object
EditorMouseRange: function (a,c){var b,d,e=a.range;switch(a.state){case "input":b=a.inputBox.GetText();d=a.workingvalues;if(0<="(+-*/,:!&<>=^".indexOf(b.slice(-1))&&"="==b.slice(0,1)||"="==b)d.partialexpr=b;d.partialexpr?c&&(e.hasrange?a.inputBox.SetText(d.partialexpr+SocialCalc.crToCoord(e.left,e.top)+":"+SocialCalc.crToCoord(e.right,e.bottom)):a.inputBox.SetText(d.partialexpr+c)):(a.inputBox.Blur(),a.inputBox.ShowInputBox(!1),a.state="start",a.cellhandles.ShowCellHandles(!0),a.EditorSaveEdit(),
EditorMouseRegister: function (a){var c=SocialCalc.EditorMouseInfo,b=a.fullgrid,d;for(d=0;d<c.registeredElements.length;d++)if(c.registeredElements[d].editor==a){if(c.registeredElements[d].element==b)return;break}d<c.registeredElements.length?c.registeredElements[d].element=b:c.registeredElements.push({element:b,editor:a});if(b.addEventListener)b.addEventListener("mousedown",SocialCalc.ProcessEditorMouseDown,!1),b.addEventListener("dblclick",SocialCalc.ProcessEditorDblClick,!1);else if(b.attachEvent)b.attachEvent("onmousedown",
EditorMouseUnregister: function (a){var c=SocialCalc.EditorMouseInfo,b;for(b=0;b<c.registeredElements.length&&c.registeredElements[b].editor!=a;b++);b<c.registeredElements.length&&(a=c.registeredElements[b].element,a.removeEventListener?(a.removeEventListener("mousedown",SocialCalc.ProcessEditorMouseDown,!1),a.removeEventListener("dblclick",SocialCalc.ProcessEditorDblClick,!1)):a.detachEvent&&(a.detachEvent("onmousedown",SocialCalc.ProcessEditorMouseDown),a.detachEvent("ondblclick",SocialCalc.ProcessEditorDblClick)),
EditorOpenCellEdit: function (a){var c;if(!a.ecell||!a.inputBox||a.inputBox.element.disabled)return!0;a.inputBox.ShowInputBox(!0);a.inputBox.Focus();a.state="inputboxdirect";a.inputBox.SetText("");a.inputBox.DisplayCellContents();a.inputBox.Select("end");c=a.workingvalues;c.partialexpr="";c.ecoord=a.ecell.coord;c.erow=a.ecell.row;c.ecol=a.ecell.col}
EditorProcessKey: function (a,c,b){var d,e=a.workingvalues,f=a.range;"string"!=typeof c&&(c="");switch(a.state){case "start":b.shiftKey&&"[a"==c.substr(0,2)&&(c+="shifted");"[enter]"==c&&(c="[adown]");"[tab]"==c&&(c=b.shiftKey?"[aleft]":"[aright]");if("[a"==c.substr(0,2)||"[pg"==c.substr(0,3)||"[home]"==c)return a=a.MoveECellWithKey(c),!a;if("[del]"==c||"[backspace]"==c){!a.noEdit&&!a.ECellReadonly()&&a.EditorApplySetCommandsToRange("empty","");break}if("[esc]"==c){if(f.hasrange)for(d in a.RangeRemove(),
EditorProcessMouseWheel: function (a,c,b,d){d.functionobj.editor.busy||(0<c&&d.functionobj.editor.ScrollRelative(!0,-1),0>c&&d.functionobj.editor.ScrollRelative(!0,1))}
EditorRenderSheet: function (a){a.EditorMouseUnregister();a.fullgrid=a.context.RenderSheet(a.fullgrid);a.ecell&&a.SetECellHeaders("selected");SocialCalc.AssignID(a,a.fullgrid,"fullgrid");a.EditorMouseRegister()}
EditorSaveEdit: function (a,c){var b,d,e;b=a.context.sheetobj;var f=a.workingvalues;e="string"==typeof c?c:a.inputBox.GetText();b=SocialCalc.GetCellContents(b,f.ecoord)+"";e!=b&&(b=e.charAt(0),"="==b&&-1==e.indexOf("\n")?(d="formula",e=e.substring(1)):"'"==b?(d="text t",e=e.substring(1),b=SocialCalc.DetermineValueType(e),"t"==b.type.charAt(0)&&(d="text "+b.type)):0==e.length?d="empty":(b=SocialCalc.DetermineValueType(e),d="n"==b.type&&e==b.value+""?"value n":"t"==b.type.charAt(0)?"text "+
EditorScheduleSheetCommands: function (a,c,b,d){if("start"==a.state||d)if(a.busy&&!d)a.deferredCommands.push({cmdstr:c,saveundo:b});else switch(c){case "recalc":case "redisplay":a.context.sheetobj.ScheduleSheetCommands(c,!1);break;case "undo":a.SheetUndo();break;case "redo":a.SheetRedo();break;default:a.context.sheetobj.ScheduleSheetCommands(c,b)}}
EditorSheetStatusCallback: function (a,c,b,d){var e;a=d.context.sheetobj;var f=function(a){for(e in d.StatusCallback)d.StatusCallback[e].func&&d.StatusCallback[e].func(d,a,b,d.StatusCallback[e].params)};switch(c){case "startup":break;case "cmdstart":d.busy=!0;a.celldisplayneeded="";break;case "cmdextension":break;case "cmdend":f(c);a.changedrendervalues&&(d.context.PrecomputeSheetFontsAndLayouts(),d.context.CalculateCellSkipData(),a.changedrendervalues=!1);a.celldisplayneeded&&!a.renderneeded&&
EncodeCellAttributes: function (a,c){var b,d,e={},f=function(a){e[a]={def:!0,val:""}},g=function(a){for(var b=0;b<a.length;b++)f(a[b])},l=function(a,b){e[a].def=!1;e[a].val=b||""};b=function(a,b){"*"!=b&&(e[a].def=!1,e[a].val=b)};var h=a.GetAssuredCell(c);f("alignhoriz");h.cellformat&&l("alignhoriz",a.cellformats[h.cellformat]);g(["alignvert","padtop","padright","padbottom","padleft"]);h.layout&&(parts=a.layouts[h.layout].match(/^padding:\s*(\S+)\s+(\S+)\s+(\S+)\s+(\S+);vertical-align:\s*(\S+);/),
EncodeSheetAttributes: function (a){var c=a.attribs,b={},d=function(a){b[a]={def:!0,val:""}},e=function(a){for(var b=0;b<a.length;b++)d(a[b])},f=function(a,c){b[a].def=!1;b[a].val=c||void 0},g=function(a,c){"*"!=c&&(b[a].def=!1,b[a].val=c)};d("colwidth");c.defaultcolwidth&&f("colwidth",c.defaultcolwidth);d("rowheight");c.rowheight&&f("rowheight",c.defaultrowheight);d("textalignhoriz");c.defaulttextformat&&f("textalignhoriz",a.cellformats[c.defaulttextformat]);d("numberalignhoriz");c.defaultnontextformat&&
EnsureECellVisible: function (a){var c=0,b=0;a.ecell.row>a.lastnonscrollingrow&&(a.ecell.row<a.firstscrollingrow?c=a.ecell.row-a.firstscrollingrow:a.ecell.row>a.lastvisiblerow&&(c=a.ecell.row-a.lastvisiblerow));a.ecell.col>a.lastnonscrollingcol&&(a.ecell.col<a.firstscrollingcol?b=a.ecell.col-a.firstscrollingcol:a.ecell.col>a.lastvisiblecol&&(b=a.ecell.col-a.lastvisiblecol));0!=c||0!=b?a.ScrollRelativeBoth(c,b):a.cellhandles.ShowCellHandles(!0)}
ExecuteSheetCommand: function (a,c,b){var d,e,f,g,l,h,n,p,u,s,q,t,r,v,w,y,x,z,A,D,F,L,M,N,I,B,C=a.attribs;B=a.changes;F=SocialCalc.CellProperties;w=SocialCalc.Constants;s=function(){var a=SocialCalc.ParseRange(g);p=a.cr1;u=a.cr2;u.col>C.lastcol&&(C.lastcol=u.col);u.row>C.lastrow&&(C.lastrow=u.row)};n="";d=c.RestOfStringNoMove();b&&a.changes.AddDo(d);e=c.NextToken();switch(e){case "set":g=c.NextToken();l=c.NextToken();f=c.RestOfString();c="set "+g+" "+l;if("sheet"==g)switch(a.renderneeded=
FinishColsize: function (){var a=SocialCalc.EditorMouseInfo,c=a.editor;c&&(c.toplevel.removeChild(a.mouseresizedisplay),a.mouseresizedisplay=null,a.editor=null)}
FitToEditTable: function (a){var c,b,d,e=a.context,f=e.sheetobj;d=e.showRCHeaders?e.rownamewidth-0:0;for(colpane=0;colpane<e.colpanes.length-1;colpane++)for(c=e.colpanes[colpane].first;c<=e.colpanes[colpane].last;c++)if(b=SocialCalc.rcColname(c),"yes"!=f.colattribs.hide[b]){b=f.colattribs.width[b]||f.attribs.defaultcolwidth||SocialCalc.Constants.defaultColWidth;if("blank"==b||"auto"==b)b="";d+=b&&0<b-0?b-0:10}for(c=e.colpanes[colpane].first;1E4>=c;c++){b=SocialCalc.rcColname(c);if("yes"!=
FormatNumber: Object
FormatValueForDisplay: function (a,c,b,d){var e,f=a.attribs,g=a.cells[b];g||(g=new SocialCalc.Cell(b));b=g.valuetype||"";e=b.substring(1);b=b.charAt(0);if(g.errors||"e"==b)return c=g.errors||e||"Error in cell";if("t"==b){b=a.valueformats[g.textvalueformat-0]||a.valueformats[f.defaulttextvalueformat-0]||"";if("formula"==b)return c="f"==g.datatype?SocialCalc.special_chars("="+g.formula)||"&nbsp;":"c"==g.datatype?SocialCalc.special_chars("'"+g.formula)||"&nbsp;":SocialCalc.special_chars("'"+
Formula: Object
GetCellContents: function (a,c){var b="",d=a.cells[c];if(d)switch(d.datatype){case "v":b=d.datavalue+"";break;case "t":b="'"+d.datavalue;break;case "f":b="="+d.formula;break;case "c":b=d.formula}return b}
GetComputedStyle: function (a,c){return("undefined"!=typeof a.currentStyle?a.currentStyle:document.defaultView.getComputedStyle(a,null))[c]}
GetEditorCellElement: function (a,c,b){var d,e,f,g,l=0,h=0;for(d=0;d<a.context.rowpanes.length;d++){if(c>=a.context.rowpanes[d].first&&c<=a.context.rowpanes[d].last)for(e=0;e<a.context.colpanes.length;e++){if(b>=a.context.colpanes[e].first&&b<=a.context.colpanes[e].last){l+=c-a.context.rowpanes[d].first+2;for(f=a.context.colpanes[e].first;f<=b;f++)g=a.context.cellskip[SocialCalc.crToCoord(f,c)],(!g||!a.context.CoordInPane(g,d,e))&&h++;return{element:a.griddiv.firstChild.lastChild.childNodes[l].childNodes[h],
GetElementFixedParent: function (a){for(;a&&"HTML"!=a.tagName;){if("fixed"==SocialCalc.GetComputedStyle(a,"position"))return a;a=a.parentNode}return!1}
GetElementPosition: function (a){for(var c=0,b=0;a&&"relative"!=SocialCalc.GetComputedStyle(a,"position");)c+=a.offsetLeft,b+=a.offsetTop,a=a.offsetParent;return{left:c,top:b}}
GetElementPositionWithScroll: function (a){a=a.getBoundingClientRect();return{left:a.left,right:a.right,top:a.top,bottom:a.bottom,width:a.width?a.width:a.right-a.left,height:a.height?a.height:a.bottom-a.top}}
GetSpreadsheetControlObject: function (){var a=SocialCalc.CurrentSpreadsheetControlObject;if(a)return a}
GetSpreadsheetViewerObject: function (){var a=SocialCalc.CurrentSpreadsheetViewerObject;if(a)return a;throw"No current SpreadsheetViewer object.";}
GetStyleNum: function (a,c,b){var d;if(0==b.length)return 0;d=a[c+"hash"][b];d||(1>a[c+"s"].length&&a[c+"s"].push(""),d=a[c+"s"].push(b)-1,a[c+"hash"][b]=d,a.changedrendervalues=!0);return d}
GetStyleString: function (a,c,b){return!b?null:a[c+"s"][b]}
GetViewportInfo: function (){var a={};window.innerWidth?(a.width=window.innerWidth,a.height=window.innerHeight,a.horizontalScroll=window.pageXOffset,a.verticalScroll=window.pageYOffset):document.documentElement&&document.documentElement.clientWidth?(a.width=document.documentElement.clientWidth,a.height=document.documentElement.clientHeight,a.horizontalScroll=document.documentElement.scrollLeft,a.verticalScroll=document.documentElement.scrollTop):document.body.clientWidth&&(a.width=document.body.clientWidth,
GraphTypesInfo: Object
GridMousePosition: function (a,c,b){var d,e,f={};for(d=1;d<a.rowpositions.length&&!(a.rowheight[d]&&a.rowpositions[d]+a.rowheight[d]>b);d++);for(e=1;e<a.colpositions.length&&!(a.colwidth[e]&&a.colpositions[e]+a.colwidth[e]>c);e++);f.row=d;f.col=e;if(a.headposition){if(c<a.headposition.left&&c>=a.gridposition.left){f.rowheader=!0;f.distance=a.headposition.left-c;f.rowtounhide="";if(unhide=a.context.rowunhidetop[d])pos=SocialCalc.GetElementPosition(unhide),c>=pos.left&&(c<pos.left+unhide.offsetWidth&&
InitializeSpreadsheetControl: function (a,c,b,d,e){var f=SocialCalc.Constants,g=SocialCalc.LocalizeString,l=SocialCalc.LocalizeSubstrings,h,n,p,u=a.tabs,s=a.views;a.requestedHeight=b;a.requestedWidth=d;a.requestedSpaceBelow=e;"string"==typeof c&&(c=document.getElementById(c));null==c&&alert("SocialCalc.SpreadsheetControl not given parent node.");a.parentNode=c;a.spreadsheetDiv=document.createElement("div");a.SizeSSDiv();for(b=c.firstChild;null!=b;b=c.firstChild)c.removeChild(b);b='<div><div style="'+
InitializeSpreadsheetViewer: function (a,c,b,d,e){a.requestedHeight=b;a.requestedWidth=d;a.requestedSpaceBelow=e;"string"==typeof c&&(c=document.getElementById(c));null==c&&alert("SocialCalc.SpreadsheetControl not given parent node.");a.parentNode=c;a.spreadsheetDiv=document.createElement("div");a.SizeSSDiv();for(b=c.firstChild;null!=b;b=c.firstChild)c.removeChild(b);c.appendChild(a.spreadsheetDiv);a.nonviewheight=a.hasStatusLine?a.statuslineheight:0;a.viewheight=a.height-a.nonviewheight;
InitializeTable: function (a,c){c.style.borderCollapse="collapse";c.cellSpacing="0";c.cellPadding="0";c.style.width=a.totalwidth+"px"}
InputBox: function (a,c){a&&(this.element=a,this.editor=c,this.inputEcho=null,c.inputBox=this,a.onmousedown=SocialCalc.InputBoxOnMouseDown,c.MoveECellCallback.formulabar=function(a){"start"==a.state&&c.inputBox.DisplayCellContents(a.ecell.coord)})}
InputBoxDisplayCellContents: function (a,c){var b=SocialCalc.Constants;if(a){c||(c=a.editor.ecell.coord);var d=SocialCalc.GetCellContents(a.editor.context.sheetobj,c);-1!=d.indexOf("\n")?(d=b.s_inputboxdisplaymultilinetext,a.element.disabled=!0):a.element.disabled=a.editor.ECellReadonly()?!0:!1;a.SetText(d)}}
InputBoxFocus: function (a){if(a){a.element.focus();a=a.editor;a.state="input";var c=a.workingvalues;c.partialexpr="";c.ecoord=a.ecell.coord;c.erow=a.ecell.row;c.ecol=a.ecell.col}}
InputBoxOnMouseDown: function (){var a=SocialCalc.Keyboard.focusTable;if(!a)return!0;var c=a.workingvalues;switch(a.state){case "start":a.state="inputboxdirect";c.partialexpr="";c.ecoord=a.ecell.coord;c.erow=a.ecell.row;c.ecol=a.ecell.col;a.inputEcho.ShowInputEcho(!0);break;case "input":c.partialexpr="",a.MoveECell(c.ecoord),a.state="inputboxdirect",SocialCalc.KeyboardFocus()}}
InputConstants: Object
InputEcho: function (a){var c=SocialCalc.Constants;this.editor=a;this.text="";this.functionbox=this.prompt=this.main=this.container=this.interval=null;this.container=document.createElement("div");SocialCalc.setStyles(this.container,"display:none;position:absolute;zIndex:10;");this.main=document.createElement("div");c.defaultInputEchoClass&&(this.main.className=c.defaultInputEchoClass);c.defaultInputEchoStyle&&SocialCalc.setStyles(this.main,c.defaultInputEchoStyle);this.main.innerHTML="&nbsp;";
InputEchoHeartbeat: function (){var a=SocialCalc.Keyboard.focusTable;if(!a)return!0;a.inputEcho.SetText(a.inputBox.GetText()+"_")}
InputEchoMouseDown: function (){var a=SocialCalc.Keyboard.focusTable;if(!a)return!0;a.inputBox.element.focus()}
Keyboard: Object
KeyboardFocus: function (){SocialCalc.Keyboard.passThru=null;window.focus()}
KeyboardSetFocus: function (a){SocialCalc.Keyboard.focusTable=a;SocialCalc.Keyboard.areListener||(document.onkeydown=SocialCalc.ProcessKeyDown,document.onkeypress=SocialCalc.ProcessKeyPress,SocialCalc.Keyboard.areListener=!0);SocialCalc.Keyboard.passThru&&(SocialCalc.Keyboard.passThru.blur&&SocialCalc.Keyboard.passThru.blur(),SocialCalc.Keyboard.passThru=null);window.focus()}
LimitLastPanes: function (a){a=a.context;var c;c=a.rowpanes.length;1<c&&a.rowpanes[c-1].first<=a.rowpanes[c-2].last&&(a.rowpanes[c-1].first=a.rowpanes[c-2].last+1);a.sheetobj.attribs.usermaxrow&&a.rowpanes[c-1].first>a.sheetobj.attribs.usermaxrow&&(a.rowpanes[c-1].first=a.sheetobj.attribs.usermaxrow);c=a.colpanes.length;1<c&&a.colpanes[c-1].first<=a.colpanes[c-2].last&&(a.colpanes[c-1].first=a.colpanes[c-2].last+1);a.sheetobj.attribs.usermaxcol&&a.colpanes[c-1].first>a.sheetobj.attribs.usermaxcol&&
LoadColumnChoosers: function (a){var c=SocialCalc.LocalizeString,b,d,e,f;a.sortrange&&-1==a.sortrange.indexOf(":")?(b=SocialCalc.Formula.LookupName(a.sheet,a.sortrange||""),"range"==b.type?(b=b.value.match(/^(.*)\|(.*)\|$/),b=b[1]+":"+b[2]):b="A1:A1"):b=a.sortrange;var g=SocialCalc.ParseRange(b);e=document.getElementById(a.idPrefix+"majorsort");f=e.selectedIndex;e.options.length=0;e.options[e.options.length]=new Option(c("[None]"),"");for(b=g.cr1.col;b<=g.cr2.col;b++)d=SocialCalc.rcColname(b),
LoadEditorSettings: function (a,c,b){c=c.split(/\r\n|\n/);var d=[],e,f,g,l=a.context,h,n;l.rowpanes=[{first:1,last:1}];l.colpanes=[{first:1,last:1}];a.ecell=null;a.range={hasrange:!1};a.range2={hasrange:!1};n=a.range;l.highlights={};h=l.highlights;for(f=0;f<c.length;f++)switch(e=c[f],d=e.split(":"),g=d[0],g){case "version":break;case "rowpane":l.rowpanes[d[1]-0]={first:d[2]-0,last:d[3]-0};break;case "colpane":l.colpanes[d[1]-0]={first:d[2]-0,last:d[3]-0};break;case "ecell":a.ecell=SocialCalc.coordToCr(d[1]);
LocalizeString: function (a){var c=SocialCalc.LocalizeStringList[a];c||(c=SocialCalc.Constants["s_loc_"+a.toLowerCase().replace(/\s/g,"_").replace(/\W/g,"X")]||a,SocialCalc.LocalizeStringList[a]=c);return c}
LocalizeStringList: Object
LocalizeSubstrings: function (a){var c=SocialCalc.LocalizeString;return a.replace(/%(loc|ssc)!(.*?)!/g,function(a,d,e){return"ssc"==d?SocialCalc.Constants[e]||alert("Missing constant: "+e):c(e)})}
Lookup: function (a,c){for(i=0;i<c.length;i++)if(c[i]>a)return 0<i?i-1:null;return c.length-1}
LookupElement: function (a,c){var b;for(b=0;b<c.length;b++)if(c[b].element==a)return c[b];return null}
MouseWheelInfo: Object
MouseWheelRegister: function (a,c){SocialCalc.MouseWheelInfo.registeredElements.push({element:a,functionobj:c});if(a.addEventListener)a.addEventListener("DOMMouseScroll",SocialCalc.ProcessMouseWheel,!1),a.addEventListener("mousewheel",SocialCalc.ProcessMouseWheel,!1);else if(a.attachEvent)a.attachEvent("onmousewheel",SocialCalc.ProcessMouseWheel);else throw SocialCalc.Constants.s_BrowserNotSupported;}
MoveECell: function (editor, newcell){
MoveECellWithKey: function (a,c){var b,d,e,f=!1,g=1;if(!a.ecell)return null;"shifted"==c.slice(-7)&&(c=c.slice(0,-7),f=!0);b=a.ecell.row;d=a.ecell.col;e=a.context.sheetobj.cells[a.ecell.coord];switch(c){case "[adown]":b+=e&&e.rowspan||1;break;case "[aup]":b--;g=-1;break;case "[pgdn]":b+=a.pageUpDnAmount-1+(e&&e.rowspan||1);break;case "[pgup]":b-=a.pageUpDnAmount;g=-1;break;case "[aright]":d+=e&&e.colspan||1;break;case "[aleft]":d--;g=-1;break;case "[home]":d=b=1;break;default:return null}a.context.sheetobj.attribs.usermaxcol&&
OffsetFormulaCoords: function (a,c,b){var d,e,f,g,l="";d=SocialCalc.Formula;if(!d)return"Need SocialCalc.Formula";var h=d.TokenType,n=h.op,p=h.string,h=h.coord,u=d.TokenOpExpansion;a=d.ParseFormulaIntoTokens(a);for(f=0;f<a.length;f++)if(e=a[f].type,d=a[f].text,e==h){g="";e=SocialCalc.coordToCr(d);"$"!=d.charAt(0)?e.col+=c:g+="$";g+=SocialCalc.rcColname(e.col);-1==d.indexOf("$",1)?e.row+=b:g+="$";g+=e.row;if(1>e.row||1>e.col)g="#REF!";l+=g}else l=e==p?0<=d.indexOf('"')?l+('"'+d.replace(/"/,
OrigDoPositionCalculations: function (a){a.timeout=null;a.CalculateEditorPositions();a.verticaltablecontrol.PositionTableControlElements();a.horizontaltablecontrol.PositionTableControlElements();SocialCalc.EditorSheetStatusCallback(null,"doneposcalc",null,a);a.ensureecell&&(a.ecell&&!a.deferredCommands.length)&&(a.ensureecell=!1,a.EnsureECellVisible());a.cellhandles.ShowCellHandles(!0)}
OrigScheduleSheetCommands: function (a,c,b){var d=a.sci;d.parseobj=new SocialCalc.Parse(c);d.saveundo=b;d.sheetobj.statuscallback&&a.statuscallback(d,"cmdstart","",d.sheetobj.statuscallbackparams);d.saveundo&&d.sheetobj.changes.PushChange("");d.timerobj=window.setTimeout(function(){SocialCalc.SheetCommandsTimerRoutine(d)},d.firsttimerdelay)}
OrigSizeSSDiv: function (a){var c,b,d,e;d=!1;c=SocialCalc.GetViewportInfo();b=SocialCalc.GetElementPosition(a.parentNode);b.bottom=0;b.right=0;e=a.parentNode.style;e.marginTop&&(b.top+=e.marginTop.slice(0,-2)-0);e.marginBottom&&(b.bottom+=e.marginBottom.slice(0,-2)-0);e.marginLeft&&(b.left+=e.marginLeft.slice(0,-2)-0);e.marginRight&&(b.right+=e.marginRight.slice(0,-2)-0);e=a.requestedHeight||c.height-(b.top+b.bottom+10)-(a.requestedSpaceBelow||0);a.height!=e&&(a.height=e,a.spreadsheetDiv.style.height=
OtherSaveParts: Object
PageRelative: function (a,c,b){var d=a.context,e=c?"rowpanes":"colpanes",d=d[e][d[e].length-1],f=c?"lastvisiblerow":"lastvisiblecol",e=c?a.rowheight:a.colwidth,g=c?SocialCalc.Constants.defaultAssumedRowHeight:SocialCalc.Constants.defaultColWidth;if(0<b)c=a[f],c==d.first&&(c+=1);else{b=c?a.tableheight-(a.firstscrollingrowtop-a.gridposition.top):a.tablewidth-(a.firstscrollingcolleft-a.gridposition.left);b-=0<e[a[f]]?e[a[f]]:g;for(c=d.first-1;0<c;c--){f=0<e[c]?e[c]:g;if(b<f)break;b-=f}e=d.first;
Parse: function (a){this.str=a;this.pos=0;this.delimiter=" ";this.lineEnd=a.indexOf("\n");0>this.lineEnd&&(this.lineEnd=a.length)}
ParseCellLinkText: function (a){var c={url:"",desc:"",newwin:!1,pagename:"",workspace:""},b=!1,d=a.length-1,e=0,f=a.lastIndexOf("<"),g=a.lastIndexOf("["),l=a.lastIndexOf("{"),h=-1;(">"!=a.charAt(d)||-1==f)&&("]"!=a.charAt(d)||-1==g)&&("}"!=a.charAt(d)||"]"!=a.charAt(d-1)||-1==l||-1==g||g<l)?(d++,h=d):(">"==a.charAt(d)?(h=f-1,0<f&&("<"==a.charAt(h)&&">"==a.charAt(d-1))&&(h--,d--,c.newwin=!0)):"]"==a.charAt(d)?(h=g-1,b=!0,0<g&&("["==a.charAt(h)&&"]"==a.charAt(d-1))&&(h--,d--,c.newwin=!0)):
ParseRange: function (a){var c,b,d;a||(a="A1:A1");a=a.toUpperCase();c=a.indexOf(":");0<=c?(b=a.substring(0,c),d=SocialCalc.coordToCr(b),d.coord=b,b=a.substring(c+1),c=SocialCalc.coordToCr(b),c.coord=b):(d=SocialCalc.coordToCr(a),d.coord=a,c=SocialCalc.coordToCr(a),c.coord=a);return{cr1:d,cr2:c}}
ParseSheetSave: function (a,c){var b=a.split(/\r\n|\n/),d=[],e,f,g,l,h=SocialCalc.Constants;for(e=0;e<b.length;e++)switch(d=b[e],d=d.split(":"),d[0]){case "cell":g=c.GetAssuredCell(d[1]);f=2;c.CellFromStringParts(g,d,f);break;case "col":l=d[1];for(f=2;g=d[f++];)switch(g){case "w":c.colattribs.width[l]=d[f++];break;case "hide":c.colattribs.hide[l]=d[f++];break;default:throw h.s_pssUnknownColType+" '"+g+"'";}break;case "row":l=d[1]-0;for(f=2;g=d[f++];)switch(g){case "h":c.rowattribs.height[l]=
Popup: Object
PositionTableControlElements: function (a){var c,b,d=a.editor;a.vertical?(c=a.controlborder+"px",a.endcap.style.top=a.endcapstart+"px",a.endcap.style.left=c,a.paneslider.style.top=a.panesliderstart+"px",a.paneslider.style.left=c,a.lessbutton.style.top=a.lessbuttonstart+"px",a.lessbutton.style.left=c,a.morebutton.style.top=a.morebuttonstart+"px",a.morebutton.style.left=c,a.scrollarea.style.top=a.scrollareastart+"px",a.scrollarea.style.left=c,a.scrollarea.style.height=a.scrollareasize+"px",
PrecomputeSheetFontsAndLayouts: function (a){var c,b,d,e,f,g,l=a.sheetobj;e=l.attribs;e.defaultfont&&(c=l.fonts[e.defaultfont],c=c.replace(/^\*/,SocialCalc.Constants.defaultCellFontStyle),c=c.replace(/(.+)\*(.+)/,"$1"+SocialCalc.Constants.defaultCellFontSize+"$2"),c=c.replace(/\*$/,SocialCalc.Constants.defaultCellFontFamily),b=c.match(/^(\S+? \S+?) (\S+?) (\S.*)$/),a.defaultfontstyle=b[1],a.defaultfontsize=b[2],a.defaultfontfamily=b[3]);for(f=1;f<l.fonts.length;f++)b=l.fonts[f],b=b.replace(/^\*/,
ProcessEditorColsizeMouseDown: function (a,c,b){a=a||window.event;c=SocialCalc.EditorMouseInfo;var d=c.editor,e=SocialCalc.GetElementPositionWithScroll(d.toplevel),e=a.clientX-e.left;c.mouseresizecolnum=b.coltoresize;c.mouseresizecol=SocialCalc.rcColname(b.coltoresize);c.mousedownclientx=e;c.mousecoltounhide=b.coltounhide;c.mousecoltounhide||(e=document.createElement("div"),c.mouseresizedisplay=e,e.style.width="auto",e.style.position="absolute",e.style.zIndex=100,e.style.top=d.headposition.top+
ProcessEditorColsizeMouseMove: function (a){a=a||window.event;var c=SocialCalc.EditorMouseInfo,b=c.editor;if(b){if(!c.mousecoltounhide){var d=SocialCalc.GetElementPositionWithScroll(b.toplevel),b=b.context.colwidth[c.mouseresizecolnum]-0+(a.clientX-d.left-c.mousedownclientx);b<SocialCalc.Constants.defaultMinimumColWidth&&(b=SocialCalc.Constants.defaultMinimumColWidth);c=c.mouseresizedisplay;c.innerHTML='<table cellpadding="0" cellspacing="0"><tr><td style="height:100px;border:1px dashed black;background-color:white;width:'+
ProcessEditorColsizeMouseUp: function (a){var c=a||window.event;a=SocialCalc.EditorMouseInfo;var b=a.editor;if(b){element=a.element;var d=SocialCalc.GetElementPositionWithScroll(b.toplevel),d=c.clientX-d.left;c.stopPropagation?c.stopPropagation():c.cancelBubble=!0;c.preventDefault?c.preventDefault():c.returnValue=!1;document.removeEventListener?(document.removeEventListener("mousemove",SocialCalc.ProcessEditorColsizeMouseMove,!0),document.removeEventListener("mouseup",SocialCalc.ProcessEditorColsizeMouseUp,
ProcessEditorDblClick: function (a){var c,b;a=a||window.event;var d=SocialCalc.EditorMouseInfo,e=a.target||a.srcElement;if(!d.ignore){for(c=null;!c&&e;e=e.parentNode)c=SocialCalc.LookupElement(e,d.registeredElements);if(c){if(c=c.editor,b=SocialCalc.GetElementPositionWithScroll(c.toplevel),(b=SocialCalc.GridMousePosition(c,a.clientX-b.left,a.clientY-b.top))&&b.coord){d.editor=c;d.element=e;sheetobj=c.context.sheetobj;switch(c.state){case "start":SocialCalc.EditorOpenCellEdit(c)}a.stopPropagation?a.stopPropagation():
ProcessEditorMouseDown: function (a){var c,b,d,e=a||window.event,f=SocialCalc.EditorMouseInfo,g=e.target||e.srcElement;if(!f.ignore){for(c=null;!c&&g;g=g.parentNode)c=SocialCalc.LookupElement(g,f.registeredElements);if(c){if(c=c.editor,f.element=g,d=c.range,b=SocialCalc.GetElementPositionWithScroll(c.toplevel),b=SocialCalc.GridMousePosition(c,e.clientX-b.left,e.clientY-b.top))f.editor=c,b.rowheader&&b.rowtounhide?SocialCalc.ProcessEditorRowsizeMouseDown(a,g,b):b.colheader&&b.coltoresize?
ProcessEditorMouseMove: function (a){var c,b,d=a||window.event,e=SocialCalc.EditorMouseInfo;if((c=e.editor)&&!e.ignore)if(b=SocialCalc.GetElementPositionWithScroll(c.toplevel),b=SocialCalc.GridMousePosition(c,d.clientX-b.left,d.clientY-b.top))b&&!b.coord?SocialCalc.SetDragAutoRepeat(c,b):(SocialCalc.SetDragAutoRepeat(c,null),b.coord&&(b.coord!=e.mouselastcoord&&(!a.shiftKey&&!c.range.hasrange&&c.RangeAnchor(e.mousedowncoord),c.MoveECell(b.coord),c.RangeExtend()),e.mouselastcoord=b.coord,
ProcessEditorMouseUp: function (a){var c,b,d=a||window.event,e=SocialCalc.EditorMouseInfo;if((a=e.editor)&&!e.ignore)if(c=e.element,b=SocialCalc.GetElementPositionWithScroll(a.toplevel),b=SocialCalc.GridMousePosition(a,d.clientX-b.left,d.clientY-b.top),SocialCalc.SetDragAutoRepeat(a,null),b)return b.coord||(b.coord=a.ecell.coord),a.range.hasrange?(a.MoveECell(b.coord),a.RangeExtend()):b.coord&&b.coord!=e.mousedowncoord&&(a.RangeAnchor(e.mousedowncoord),a.MoveECell(b.coord),a.RangeExtend()),
ProcessEditorRowsizeMouseDown: function (a,c,b){a=a||window.event;c=SocialCalc.EditorMouseInfo;var d=c.editor;SocialCalc.GetElementPositionWithScroll(d.toplevel);c.mouserowtounhide=b.rowtounhide;document.addEventListener?(document.addEventListener("mousemove",SocialCalc.ProcessEditorRowsizeMouseMove,!0),document.addEventListener("mouseup",SocialCalc.ProcessEditorRowsizeMouseUp,!0)):d.toplevel.attachEvent&&(d.toplevel.setCapture(),d.toplevel.attachEvent("onmousemove",SocialCalc.ProcessEditorRowsizeMouseMove),
ProcessEditorRowsizeMouseMove: function (a){a=a||window.event;SocialCalc.EditorMouseInfo.editor&&(a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,a.preventDefault?a.preventDefault():a.returnValue=!1)}
ProcessEditorRowsizeMouseUp: function (a){a=a||window.event;var c=SocialCalc.EditorMouseInfo,b=c.editor;if(b)return element=c.element,SocialCalc.GetElementPositionWithScroll(b.toplevel),a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,a.preventDefault?a.preventDefault():a.returnValue=!1,document.removeEventListener?(document.removeEventListener("mousemove",SocialCalc.ProcessEditorRowsizeMouseMove,!0),document.removeEventListener("mouseup",SocialCalc.ProcessEditorRowsizeMouseUp,!0)):
ProcessKey: function (a,c){var b=SocialCalc.Keyboard.focusTable;return!b?!0:b.EditorProcessKey(a,c)}
ProcessKeyDown: function (a){var c=SocialCalc.keyboardTables;c.didProcessKey=!1;c.statusFromProcessKey=!1;c.repeatingKeyPress=!1;var b="",d=!0;if(!SocialCalc.Keyboard.passThru){a=a||window.event;if(void 0==a.which){b=c.specialKeysCommon[a.keyCode];if(!b&&(a.ctrlKey&&(b=c.controlKeysIE[a.keyCode]),!b))return!0;d=SocialCalc.ProcessKey(b,a);d||(a.preventDefault&&a.preventDefault(),a.returnValue=!1)}else{b=c.specialKeysCommon[a.keyCode];if(!b){if(a.ctrlKey||a.metaKey)b=c.controlKeysIE[a.keyCode];
ProcessKeyPress: function (a){var c=SocialCalc.keyboardTables,b="";a=a||window.event;if(!SocialCalc.Keyboard.passThru){if(c.didProcessKey){if(c.repeatingKeyPress)return SocialCalc.ProcessKey(c.chForProcessKey,a);c.repeatingKeyPress=!0;return c.statusFromProcessKey}if(void 0==a.which)b=String.fromCharCode(a.keyCode);else{if(!a.which)return!1;if(void 0==a.charCode)if(0!=a.which)if(32>a.which||144==a.which){if(b=c.specialKeysOpera[a.which])return!0}else b=a.ctrlKey?c.controlKeysOpera[a.keyCode]:
ProcessMouseWheel: function (a){a=a||window.event;var c;if(!SocialCalc.Keyboard.passThru){var b=SocialCalc.MouseWheelInfo;c=a.target||a.srcElement;var d;for(d=null;!d&&c;c=c.parentNode)d=SocialCalc.LookupElement(c,b.registeredElements);d&&((c=a.wheelDelta?a.wheelDelta/120:-a.detail/3)||(c=0),d.functionobj&&d.functionobj.WheelMove&&d.functionobj.WheelMove(a,c,b,d),a.preventDefault&&a.preventDefault(),a.returnValue=!1)}}
Range2Remove: function (a){var c,b,d,e=a.context.highlights,f=a.range2;if(f.hasrange){for(d in e){switch(e[d]){case "range2":delete e[d];break;case "range":case "cursor":continue}b=SocialCalc.coordToCr(d);c=SocialCalc.GetEditorCellElement(a,b.row,b.col);a.UpdateCellCSS(c,b.row,b.col)}f.hasrange=!1}}
RangeAnchor: function (a,c){a.range.hasrange&&a.RangeRemove();a.RangeExtend(c)}
RangeExtend: function (a,c){var b,d,e,f,g,l,h=a.context.highlights;b=a.range;d=a.range2;c?(f=SocialCalc.coordToCr(c),f.coord=c):f=a.ecell;if(f){b.hasrange||(b.anchorcoord=f.coord,b.anchorrow=f.row,b.top=f.row,b.bottom=f.row,b.anchorcol=f.col,b.left=f.col,b.right=f.col,b.hasrange=!0);b.anchorrow<f.row?(b.top=b.anchorrow,b.bottom=f.row):(b.top=f.row,b.bottom=b.anchorrow);b.anchorcol<f.col?(b.left=b.anchorcol,b.right=f.col):(b.left=f.col,b.right=b.anchorcol);for(e in h)switch(h[e]){case "range":h[e]=
RangeRemove: function (a){var c,b,d,e,f=a.context.highlights,g=a.range,l=a.range2;if(g.hasrange||l.hasrange){for(c=l.top;l.hasrange&&c<=l.bottom;c++)for(b=l.left;b<=l.right;b++)switch(d=SocialCalc.crToCoord(b,c),f[d]){case "range":f[d]="newrange2";break;case "range2":case "cursor":break;default:f[d]="newrange2"}for(d in f){switch(f[d]){case "range":delete f[d];break;case "newrange2":f[d]="range2";break;case "cursor":continue}b=SocialCalc.coordToCr(d);c=SocialCalc.GetEditorCellElement(a,b.row,
RecalcCheckCell: function (a,c){var b,d,e,f,g,l,h,n,p=SocialCalc.Formula;if(!p)return"Need SocialCalc.Formula";f=p.TokenType;var u=f.op,s=f.name,q=f.coord,t=a.recalcdata,r=t.checkinfo,v=!1,w=null,y=c;a:for(;y;)if(h=a.cells[y],n=r[y],!h||"f"!=h.datatype||n&&"object"!=typeof n)y=w,r[y]&&(w=r[y].oldcoord);else{n||(n=new SocialCalc.RecalcCheckInfo,r[y]=n);h.errors&&delete h.errors;h.parseinfo||(h.parseinfo=p.ParseFormulaIntoTokens(h.formula));b=h.parseinfo;for(f=n.parsepos;f<b.length;f++){if(n.inrange){n.inrangestart&&
RecalcCheckInfo: function (){this.oldcoord=null;this.parsepos=0;this.inrangestart=this.inrange=!1;this.r=this.c=this.r2=this.r1=this.c2=this.c1=this.cr2=this.cr1=null}
RecalcClearTimeout: function (){var a=SocialCalc.RecalcInfo;a.recalctimer&&(window.clearTimeout(a.recalctimer),a.recalctimer=null)}
RecalcData: function (){this.inrecalc=!0;this.celllist=[];this.celllistitem=0;this.calclist=null;this.calclistlength=0;this.nextcalc=this.lastcalc=this.firstcalc=null;this.count=0;this.checkinfo={}}
RecalcInfo: Object
RecalcLoadedSheet: function (a,c,b,d){var e=SocialCalc.RecalcInfo,f=SocialCalc.Formula;a=SocialCalc.Formula.AddSheetToCache(a||f.SheetCache.waitingForLoading,c,d);b&&(a&&"off"!=a.attribs.recalc)&&(a.previousrecalcsheet=e.sheet,e.sheet=a,e.currentState=e.state.start_calc);f.SheetCache.waitingForLoading=null;SocialCalc.RecalcSetTimeout()}
RecalcSetTimeout: function (){var a=SocialCalc.RecalcInfo;a.recalctimer=window.setTimeout(SocialCalc.RecalcTimerRoutine,a.timeslicedelay)}
RecalcSheet: function (a){var c=SocialCalc.RecalcInfo;c.currentState!=c.state.idle?c.queue.push(a):(delete a.attribs.circularreferencecell,SocialCalc.Formula.FreshnessInfoReset(),SocialCalc.RecalcClearTimeout(),c.sheet=a,c.currentState=c.state.start_calc,c.starttime=new Date,a.statuscallback&&a.statuscallback(c,"calcstart",null,a.statuscallbackparams),SocialCalc.RecalcSetTimeout())}
RecalcTimerRoutine: function (){var a,c,b,d=new Date,e=0,f=SocialCalc.Formula;if(!f)return"Need SocialCalc.Formula";var g=SocialCalc.RecalcInfo,l=g.sheet;if(l){var h=l.recalcdata,n=function(a,b){l.statuscallback&&l.statuscallback(h,a,b,l.statuscallbackparams)};SocialCalc.RecalcClearTimeout();if(g.currentState==g.state.start_calc){h=new SocialCalc.RecalcData;l.recalcdata=h;for(b in l.cells)b&&h.celllist.push(b);h.calclist={};g.currentState=g.state.order}if(g.currentState==g.state.order){for(;h.celllistitem<
RenderCell: function (a,c,b,d,e,f,g){var l=a.sheetobj,h,n,p,u,s,q="";c-=0;b-=0;var t=SocialCalc.crToCoord(b,c);if(a.cellskip[t]){if(a.CoordInPane(a.cellskip[t],d,e))return null;f=f?SocialCalc.CreatePseudoElement():document.createElement("td");a.classnames.skippedcell&&(f.className=a.classnames.skippedcell);a.explicitStyles.skippedcell&&(f.style.cssText=a.explicitStyles.skippedcell);f.innerHTML="&nbsp;";return f}f=f?SocialCalc.CreatePseudoElement():document.createElement("td");a.cellIDprefix&&
RenderColGroup: function (a){var c,b,d,e,f=a.sheetobj,g=document.createElement("colgroup");a.showRCHeaders&&(d=document.createElement("col"),d.width=a.rownamewidth,g.appendChild(d));for(c=0;c<a.colpanes.length;c++){for(b=a.colpanes[c].first;b<=a.colpanes[c].last;b++)if(d=document.createElement("col"),"yes"==f.colattribs.hide[SocialCalc.rcColname(b)])d.width="1";else{if(e=a.colwidth[b])d.width=e;g.appendChild(d)}c<a.colpanes.length-1&&(d=document.createElement("col"),d.width=a.defaultpanedividerwidth,
RenderColHeaders: function (a){var c=a.sheetobj,b=document.createElement("tr"),d,e;if(!a.showRCHeaders)return null;e=document.createElement("td");a.classnames&&(e.className=a.classnames.upperleft);a.explicitStyles&&(e.style.cssText=a.explicitStyles.upperleft);e.width=a.rownamewidth;b.appendChild(e);for(colpane=0;colpane<a.colpanes.length;colpane++){for(d=a.colpanes[colpane].first;d<=a.colpanes[colpane].last;d++){e=document.createElement("td");a.classnames&&(e.className=a.classnames.colname);
RenderContext: function (a){var c=a.attribs,b=SocialCalc.Constants;this.sheetobj=a;this.showRCHeaders=this.showGrid=this.hideRowsCols=!1;this.rownamewidth=b.defaultRowNameWidth;this.pixelsPerRow=b.defaultAssumedRowHeight;this.cellskip={};this.coordToCR={};this.colwidth=[];this.totalwidth=0;this.rowpanes=[];this.colpanes=[];this.colunhideleft=[];this.colunhideright=[];this.rowunhidetop=[];this.rowunhidebottom=[];this.maxrow=this.maxcol=0;this.highlights={};this.cursorsuffix="";this.highlightTypes=
RenderRow: function (a,c,b,d){var e=a.sheetobj,f=document.createElement("tr"),g,l,h;a.showRCHeaders&&(l=document.createElement("td"),a.classnames&&(l.className=a.classnames.rowname),a.explicitStyles&&(l.style.cssText=a.explicitStyles.rowname),l.width=a.rownamewidth,l.style.verticalAlign="top",l.innerHTML=c+"",c<a.rowpanes[a.rowpanes.length-1].last&&"yes"==e.rowattribs.hide[c+1]&&(h=document.createElement("div"),h.style.position="relative",g=document.createElement("div"),a.classnames&&(g.className=
RenderSheet: function (a,c,b){var d,e,f,g;a.sheetobj.changedrendervalues&&(a.needcellskip=!0,a.needprecompute=!0,a.sheetobj.changedrendervalues=!1);a.needcellskip&&a.CalculateCellSkipData();a.needprecompute&&a.PrecomputeSheetFontsAndLayouts();a.CalculateColWidthData();f=document.createElement("table");a.InitializeTable(f);d=a.RenderColGroup();f.appendChild(d);g=document.createElement("tbody");g.appendChild(a.RenderSizingRow());a.showRCHeaders&&(d=a.RenderColHeaders())&&g.appendChild(d);for(e=
RenderSizingRow: function (a){var c,b,d,e,f=a.sheetobj,g=document.createElement("tr");a.showRCHeaders&&(d=document.createElement("td"),d.style.width=a.rownamewidth+"px",d.height="1",g.appendChild(d));for(c=0;c<a.colpanes.length;c++){for(b=a.colpanes[c].first;b<=a.colpanes[c].last;b++){d=document.createElement("td");if("yes"==f.colattribs.hide[SocialCalc.rcColname(b)])d.width="1";else if(e=a.colwidth[b])d.width=e;d.height="1";g.appendChild(d)}c<a.colpanes.length-1&&(d=document.createElement("td"),
RenderSpacingRow: function (a){var c,b,d,e,f=document.createElement("tr");a.showRCHeaders&&(b=document.createElement("td"),b.width=a.rownamewidth,b.height=a.defaultpanedividerheight,a.classnames.panedivider&&(b.className=a.classnames.panedivider),a.explicitStyles.panedivider&&(b.style.cssText=a.explicitStyles.panedivider),f.appendChild(b));for(d=0;d<a.colpanes.length;d++){for(c=a.colpanes[d].first;c<=a.colpanes[d].last;c++){b=document.createElement("td");if(e=a.colwidth[c])b.width=e;b.height=
ReplaceCell: function (a,c,b,d){var e;if(c&&(a=a.context.RenderCell(b,d,c.rowpane,c.colpane,!0,null)))for(e in c.element.innerHTML=a.innerHTML,c.element.style.cssText="",c.element.className=a.className,a.style)"cssText"!=a.style[e]&&(c.element.style[e]=a.style[e])}
ReplaceFormulaCoords: function (a,c){var b,d,e,f="",g=!1;d=SocialCalc.Formula;if(!d)return"Need SocialCalc.Formula";var l=d.TokenType,h=l.op,n=l.string,l=l.coord,p=d.TokenOpExpansion;parseinfo=SocialCalc.Formula.ParseFormulaIntoTokens(a);for(e=0;e<parseinfo.length;e++)b=parseinfo[e].type,d=parseinfo[e].text,b==h&&("!"==d?g=!0:":"!=d&&(g=!1),d=p[d]||d),b==l?(cr=SocialCalc.coordToCr(d),b=SocialCalc.crToCoord(cr.col,cr.row),c[b]&&!g&&(cr=SocialCalc.coordToCr(c[b]),b="$"==d.charAt(0)?"$"+SocialCalc.rcColname(cr.col):
ResetSheet: function (a){a.cells={};a.attribs={lastcol:1,lastrow:1,defaultlayout:0,usermaxcol:0,usermaxrow:0};a.rowattribs={hide:{},height:{}};a.colattribs={width:{},hide:{}};a.names={};a.layouts=[];a.layouthash={};a.fonts=[];a.fonthash={};a.colors=[];a.colorhash={};a.borderstyles=[];a.borderstylehash={};a.cellformats=[];a.cellformathash={};a.valueformats=[];a.valueformathash={};a.copiedfrom="";a.changes=new SocialCalc.UndoStack;a.renderneeded=!1;a.changedrendervalues=!0;a.recalcchangedavalue=
ResizeTableEditor: function (a,c,b){var d=SocialCalc.Constants;a.width=c;a.height=b;a.toplevel.style.width=c+"px";a.toplevel.style.height=b+"px";a.tablewidth=Math.max(0,c-d.defaultTableControlThickness);a.tableheight=Math.max(0,b-d.defaultTableControlThickness);a.griddiv.style.width=a.tablewidth+"px";a.griddiv.style.height=a.tableheight+"px";a.verticaltablecontrol.main.style.height=a.tableheight+"px";a.horizontaltablecontrol.main.style.width=a.tablewidth+"px";a.FitToEditTable();a.ScheduleRender()}
ResumeFromCmdExtension: function (a){a.cmdextensionbusy="";SocialCalc.SheetCommandsTimerRoutine(a)}
SafariPasteFunction: function (a){a.preventDefault()}
SaveEditorSettings: function (a){var c,b,d=a.context,e=a.range,f;f="version:1.0\n";for(c=0;c<d.rowpanes.length;c++)f+="rowpane:"+c+":"+d.rowpanes[c].first+":"+d.rowpanes[c].last+"\n";for(c=0;c<d.colpanes.length;c++)f+="colpane:"+c+":"+d.colpanes[c].first+":"+d.colpanes[c].last+"\n";a.ecell&&(f+="ecell:"+a.ecell.coord+"\n");e.hasrange&&(f+="range:"+e.anchorcoord+":"+e.top+":"+e.bottom+":"+e.left+":"+e.right+"\n");for(b in a.SettingsCallbacks)f+=a.SettingsCallbacks[b].save(a,b);return f}
SchedulePositionCalculations: function (a){SocialCalc.EditorSheetStatusCallback(null,"schedposcalc",null,a);a.timeout=window.setTimeout(function(){SocialCalc.DoPositionCalculations(a)},1)}
ScheduleRender: function (a){a.timeout&&window.clearTimeout(a.timeout);SocialCalc.EditorSheetStatusCallback(null,"schedrender",null,a);a.timeout=window.setTimeout(function(){SocialCalc.DoRenderStep(a)},1)}
ScheduleSheetCommands: function (sheet, cmdstr, saveundo, isRemote){
ScrollAreaClick: function (a,c,b){a=b.functionobj.control;b=SocialCalc.GetElementPositionWithScroll(a.editor.toplevel);c=a.vertical?c.clientY-b.top:c.clientX-b.left;a.editor.busy||a.editor.PageRelative(a.vertical,c>a.thumbpos?1:-1)}
ScrollRelative: function (a,c,b){c?a.ScrollRelativeBoth(b,0):a.ScrollRelativeBoth(0,b)}
ScrollRelativeBoth: function (a,c,b){var d=a.context,e=0<c?1:-1,f=0<b?1:-1,g=d.rowpanes.length,l=1<g?d.rowpanes[g-2].last+1:1;d.rowpanes[g-1].first+c<l&&(c=-d.rowpanes[g-1].first+l);var l=d.colpanes.length,h=1<l?d.colpanes[l-2].last+1:1;for(d.colpanes[l-1].first+b<h&&(b=-d.colpanes[l-1].first+h);"yes"==d.sheetobj.colattribs.hide[SocialCalc.rcColname(d.colpanes[l-1].first+b)];)if(b+=f,1>b){b=0;break}for(;"yes"==d.sheetobj.rowattribs.hide[d.rowpanes[g-1].first+c];)if(c+=e,1>c){c=0;break}if((1==
ScrollTableDownOneRow: function (a){var c,b,d,e,f,g,l={},h=a.context,n=h.sheetobj,p=a.fullgrid,u;u=p.lastChild;c=h.showRCHeaders?2:1;for(b=0;b<h.rowpanes.length-1;b++)c+=h.rowpanes[b].last-h.rowpanes[b].first+2;h.sheetobj.attribs.usermaxrow||u.removeChild(u.childNodes[c+(h.rowpanes[b].last-h.rowpanes[b].first)]);h.rowpanes[b].first--;h.rowpanes[b].last--;a.FitToEditTable();h.CalculateColWidthData();e=h.RenderRow(h.rowpanes[b].first,b);u.insertBefore(e,u.childNodes[c]);maxrowspan=1;a=h.rowpanes[b].first;
ScrollTableUpOneRow: function (a){var c,b,d,e,f,g,l={},h=a.context,n=h.sheetobj,p=a.fullgrid,u;u=p.lastChild;c=h.showRCHeaders?2:1;for(b=0;b<h.rowpanes.length-1;b++)c+=h.rowpanes[b].last-h.rowpanes[b].first+2;if(h.sheetobj.attribs.usermaxrow&&1>h.sheetobj.attribs.usermaxrow-h.rowpanes[b].first)return p;u.removeChild(u.childNodes[c]);h.rowpanes[b].first++;h.rowpanes[b].last++;a.FitToEditTable();h.CalculateColWidthData();if(!h.sheetobj.attribs.usermaxrow||h.rowpanes[b].last!=h.sheetobj.attribs.usermaxrow)a=
SegmentDivHit: function (a,c,b,d){var e=c.offsetWidth,f=c.offsetHeight,g=c.offsetLeft;c=c.offsetTop;var l=0,h=a,n=Math.sqrt(Math.pow(b-g-(e/2-0.5),2)+Math.pow(d-c-(f/2-0.5),2));if(2==h.length)return b>=g&&(b<g+e/2&&d>=c&&d<c+f/2)&&(n<=a[0]?l=-1:n<=a[1]&&(l=1)),b>=g+e/2&&(b<g+e&&d>=c&&d<c+f/2)&&(n<=a[0]?l=-2:n<=a[1]&&(l=2)),b>=g+e/2&&(b<g+e&&d>=c+f/2&&d<c+f)&&(n<=a[0]?l=-3:n<=a[1]&&(l=3)),b>=g&&(b<g+e/2&&d>=c+f/2&&d<c+f)&&(n<=a[0]?l=-4:n<=a[1]&&(l=4)),l;for(;;)if(b>=g&&b<g+e/2&&d>=c&&d<c+
SetConvertedCell: function (a,c,b){a=a.GetAssuredCell(c);c=SocialCalc.DetermineValueType(b);"n"==c.type&&c.value==b?(a.datatype="v",a.valuetype="n",a.datavalue=c.value):"t"==c.type.charAt(0)?(a.datatype="t",a.valuetype=c.type,a.datavalue=c.value):(a.datatype="c",a.valuetype=c.type,a.datavalue=c.value,a.formula=b)}
SetDragAutoRepeat: function (a,c,b){var d=SocialCalc.AutoRepeatInfo;d.repeatcallback=b;if(c){d.editor=a;if(d.mouseinfo)if(c.rowheader||c.rowfooter)c.row!=d.mouseinfo.row&&(b=SocialCalc.crToCoord(a.ecell.col,c.row),d.repeatcallback?(a=c.row<d.mouseinfo.row?"left":c.row>d.mouseinfo.row?"right":"",d.repeatcallback(b,a)):(a.MoveECell(b),a.MoveECell(b),a.RangeExtend(),a.EditorMouseRange(b)));else if((c.colheader||c.colfooter)&&c.col!=d.mouseinfo.col)b=SocialCalc.crToCoord(c.col,a.ecell.row),d.repeatcallback?
SetECellHeaders: function (a,c){var b=a.ecell,d=a.context,e,f,g,l=0,h=0,n;if(b){for(;"yes"==d.sheetobj.colattribs.hide[SocialCalc.rcColname(b.col)];)b.col++;for(;"yes"==d.sheetobj.rowattribs.hide[b.row];)b.row++;b.coord=SocialCalc.crToCoord(b.col,b.row);for(e=0;e<d.rowpanes.length;e++){f=d.rowpanes[e].first;g=d.rowpanes[e].last;if(b.row>=f&&b.row<=g&&(n=a.fullgrid.childNodes[1].childNodes[2+l+b.row-f].childNodes[0]))d.classnames&&(n.className=d.classnames[c+"rowname"]),d.explicitStyles&&
SetInputEchoText: function (a,c){var b=SocialCalc.Constants,d;d=SocialCalc.special_chars(c);d=d.replace(/\n/g,"<br>");a.text!=d&&(a.main.innerHTML=d,a.text=d);d=c.match(/.*[\+\-\*\/\&\^\<\>\=\,\(]([A-Za-z][A-Za-z][\w\.]*?)\([^\)]*$/);"="==c.charAt(0)&&d?(d=d[1].toUpperCase(),SocialCalc.Formula.FunctionList[d]?(SocialCalc.Formula.FillFunctionInfo(),b=SocialCalc.special_chars(d+"("+SocialCalc.Formula.FunctionArgString(d)+")")):b=b.ietUnknownFunction+d,a.prompt.innerHTML!=b&&(a.prompt.innerHTML=
SetSpreadsheetControlObject: function (a){SocialCalc.CurrentSpreadsheetControlObject=a;SocialCalc.Keyboard.focusTable&&a&&(SocialCalc.Keyboard.focusTable=a.editor)}
SetTab: function (a){var c,b,d,e,f,g={},l={},h=SocialCalc.GetSpreadsheetControlObject(),n=h.tabs,p=h.views;a="string"==typeof a?a:a.id.slice(h.idPrefix.length,-3);if(h.editor.busy&&(!n[h.currentTab].view||"sheet"==n[h.currentTab].view))for(e=0;e<n.length;e++)if(n[e].name==a&&n[e].view&&"sheet"!=n[e].view)return;if(h.tabs[h.currentTab].onunclick)h.tabs[h.currentTab].onunclick(h,h.tabs[h.currentTab].name);for(e=0;e<n.length;e++)c=n[e].name,g[c]=document.getElementById(h.idPrefix+c+"tab"),l[c]=
SettingControlReset: function (){var a=SocialCalc.SettingsControls,c;for(c in a.Controls)a.Controls[c].OnReset&&a.Controls[c].OnReset(c)}
SettingsControlInitializePanel: function (a){var c,b=SocialCalc.SettingsControls;for(c in a)"name"!=c&&(ctrl=b.Controls[a[c].type])&&ctrl.Initialize&&ctrl.Initialize(a,c)}
SettingsControlLoadPanel: function (a,c){var b,d=SocialCalc.SettingsControls;for(b in a)"name"!=b&&(ctrl=d.Controls[a[b].type])&&ctrl.SetValue&&ctrl.SetValue(a,b,c[a[b].setting])}
SettingsControlOnchangeBorder: function (a){var c=SocialCalc.SettingsControls,b=c.CurrentPanel,d=a.id.match(/(^.*\-)(\w+)\-(\w+)\-(\w+)$/);if(d){var e=d[2],b=b[e].type;switch(d[4]){case "bcb":a.checked?c.Controls[b].SetValue(c.CurrentPanel,e,{def:!1,val:a.value||"1px solid rgb(0,0,0)"}):c.Controls[b].SetValue(c.CurrentPanel,e,{def:!1,val:""})}}}
SettingsControlSave: function (a){var c,b,d=SocialCalc.GetSpreadsheetControlObject(),e=SocialCalc.SettingsControlUnloadPanel(SocialCalc.SettingsControls.CurrentPanel);SocialCalc.SetTab(d.tabs[0].name);SocialCalc.KeyboardFocus();"sheet"==a?b=d.sheet.DecodeSheetAttributes(e):"cell"==a&&(d.editor.range.hasrange&&(c=SocialCalc.crToCoord(d.editor.range.left,d.editor.range.top)+":"+SocialCalc.crToCoord(d.editor.range.right,d.editor.range.bottom)),b=d.sheet.DecodeCellAttributes(d.editor.ecell.coord,
SettingsControlSetCurrentPanel: function (a){SocialCalc.SettingsControls.CurrentPanel=a;SocialCalc.SettingsControls.PopupChangeCallback({panelobj:a},"",null)}
SettingsControlUnloadPanel: function (a){var c,b=SocialCalc.SettingsControls,d={};for(c in a)"name"!=c&&(ctrl=b.Controls[a[c].type])&&ctrl.GetValue&&(d[a[c].setting]=ctrl.GetValue(a,c));return d}
SettingsControls: Object
Sheet: function (){SocialCalc.ResetSheet(this);this.statuscallbackparams=this.statuscallback=null}
SheetCommandInfo: function (a){this.sheetobj=a;this.timerobj=this.parseobj=null;this.firsttimerdelay=50;this.timerdelay=1;this.maxtimeslice=100;this.saveundo=!1;this.CmdExtensionCallbacks={};this.cmdextensionbusy=""}
SheetCommandsTimerRoutine: function (a){var c,b=new Date;for(a.timerobj=null;!a.parseobj.EOF();){(c=SocialCalc.ExecuteSheetCommand(a.sheetobj,a.parseobj,a.saveundo))&&alert(c);a.parseobj.NextLine();if(0<a.cmdextensionbusy.length){a.sheetobj.statuscallback&&a.sheetobj.statuscallback(a,"cmdextension",a.cmdextensionbusy,a.sheetobj.statuscallbackparams);return}if(new Date-b>=a.maxtimeslice){a.timerobj=window.setTimeout(function(){SocialCalc.SheetCommandsTimerRoutine(a)},a.timerdelay);return}}a.sheetobj.statuscallback&&
SheetRedo: function (a){var c,b;if(a.changes.Redo()){c=a.changes.TOS();var d="";for(b=0;c&&b<c.command.length;b++)d&&(d+="\n"),d+=c.command[b];a.ScheduleSheetCommands(d,!1)}else a.ScheduleSheetCommands("",!1)}
SheetUndo: function (a){var c,b=a.changes.TOS(),d="";for(c=b?b.undo.length-1:-1;0<=c;c--)d&&(d+="\n"),d+=b.undo[c];a.changes.Undo();a.ScheduleSheetCommands(d,!1)}
ShowCellHandles: function (a,c,b){var d=a.editor,e=!1,f,g,l=1,h=1;if(d){if(c&&(f=d.ecell.row,g=d.ecell.col,"start"==d.state&&!(f>=d.lastvisiblerow)&&!(g>=d.lastvisiblecol)&&!(f<d.firstscrollingrow)&&!(g<d.firstscrollingcol))){for(;"yes"==d.context.sheetobj.colattribs.hide[SocialCalc.rcColname(g+l)];)l++;for(;"yes"==d.context.sheetobj.rowattribs.hide[f+h];)h++;c=d.context.sheetobj.cells[SocialCalc.crToCoord(g+l-1,f+h-1)];"undefined"!=typeof c&&(l+=(c.colspan||1)-1,h+=(c.rowspan||1)-1);!(d.rowpositions[f+
ShowInputEcho: function (a,c){var b;if(b=a.editor)if(c){b.cellhandles.ShowCellHandles(!1);if(b=SocialCalc.GetEditorCellElement(b,b.ecell.row,b.ecell.col))b=SocialCalc.GetElementPosition(b.element),a.container.style.left=b.left-1+"px",a.container.style.top=b.top-1+"px";a.container.style.display="block";a.interval&&window.clearInterval(a.interval);a.interval=window.setInterval(SocialCalc.InputEchoHeartbeat,50)}else a.interval&&window.clearInterval(a.interval),a.container.style.display="none"}
SizeSSDiv: function (spreadsheet){
SpreadsheetCmdLookup: Object
SpreadsheetCmdSLookup: Object
SpreadsheetControl: function (a){var c=SocialCalc.Constants;this.spreadsheetDiv=this.parentNode=null;this.viewheight=this.width=this.height=this.requestedSpaceBelow=this.requestedWidth=this.requestedHeight=0;this.tabs=[];this.tabnums={};this.tabreplacements={};this.currentTab=-1;this.views={};this.editorDiv=this.spreadsheetDiv=this.editor=this.context=this.sheet=null;this.moverange=this.sortrange="";this.idPrefix=a||"SocialCalc-";this.multipartBoundary="SocialCalcSpreadsheetControlSave";
SpreadsheetControlClipboardClear: function (){var a=SocialCalc.GetSpreadsheetControlObject(),c=document.getElementById(a.idPrefix+"clipboardtext");c.value="";a.editor.EditorScheduleSheetCommands("clearclipboard",!0,!1);c.focus()}
SpreadsheetControlClipboardExport: function (){var a=SocialCalc.GetSpreadsheetControlObject();a.ExportCallback&&a.ExportCallback(a);SocialCalc.SetTab(a.tabs[0].name);SocialCalc.KeyboardFocus()}
SpreadsheetControlClipboardFormat: function (a){var c=SocialCalc.GetSpreadsheetControlObject();clipele=document.getElementById(c.idPrefix+"clipboardtext");clipele.value=SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard,a)}
SpreadsheetControlClipboardLoad: function (){var a=SocialCalc.GetSpreadsheetControlObject(),c="tab";SocialCalc.SetTab(a.tabs[0].name);SocialCalc.KeyboardFocus();document.getElementById(a.idPrefix+"clipboardformat-csv").checked?c="csv":document.getElementById(a.idPrefix+"clipboardformat-scsave").checked&&(c="scsave");a.editor.EditorScheduleSheetCommands("loadclipboard "+SocialCalc.encodeForSave(SocialCalc.ConvertOtherFormatToSave(document.getElementById(a.idPrefix+"clipboardtext").value,c)),
SpreadsheetControlClipboardOnclick: function (a){a=SocialCalc.GetSpreadsheetControlObject();clipele=document.getElementById(a.idPrefix+"clipboardtext");document.getElementById(a.idPrefix+"clipboardformat-tab").checked=!0;clipele.value=SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard,"tab")}
SpreadsheetControlCommentDisplay: function (a){var c="";a.editor.ecell&&(a.editor.ecell.coord&&a.sheet.cells[a.editor.ecell.coord])&&(c=a.sheet.cells[a.editor.ecell.coord].comment||"");document.getElementById(a.idPrefix+"commenttext").value=c}
SpreadsheetControlCommentMoveECell: function (){SocialCalc.SpreadsheetControlCommentDisplay(SocialCalc.GetSpreadsheetControlObject(),"comment")}
SpreadsheetControlCommentOnclick: function (a,c){a.editor.MoveECellCallback.comment=SocialCalc.SpreadsheetControlCommentMoveECell;SocialCalc.SpreadsheetControlCommentDisplay(a,c);SocialCalc.KeyboardFocus()}
SpreadsheetControlCommentOnunclick: function (a){delete a.editor.MoveECellCallback.comment}
SpreadsheetControlCommentSet: function (){var a=SocialCalc.GetSpreadsheetControlObject();a.ExecuteCommand("set %C comment "+SocialCalc.encodeForSave(document.getElementById(a.idPrefix+"commenttext").value));var c=SocialCalc.GetEditorCellElement(a.editor,a.editor.ecell.row,a.editor.ecell.col);a.editor.ECellReadonly()||(c.element.title=document.getElementById(a.idPrefix+"commenttext").value,a.editor.UpdateCellCSS(c,a.editor.ecell.row,a.editor.ecell.col));SocialCalc.KeyboardFocus()}
SpreadsheetControlCreateCellHTML: function (a,c,b){var d="",d=a.sheet.cells[c];if(!d)return"";d=void 0==d.displaystring?SocialCalc.FormatValueForDisplay(a.sheet,d.datavalue,c,b||a.context.defaultHTMLlinkstyle):d.displaystring;"&nbsp;"==d&&(d="");return d}
SpreadsheetControlCreateCellHTMLSave: function (a,c,b){var d,e,f,g,l,h=[];d=c?SocialCalc.ParseRange(c):{cr1:{row:1,col:1},cr2:{row:a.sheet.attribs.lastrow,col:a.sheet.attribs.lastcol}};c=d.cr1;d=d.cr2;h.push("version:1.0");for(e=c.row;e<=d.row;e++)for(f=c.col;f<=d.col;f++)if(g=SocialCalc.crToCoord(f,e),l=a.sheet.cells[g])l=void 0==l.displaystring?SocialCalc.FormatValueForDisplay(a.sheet,l.datavalue,g,b||a.context.defaultHTMLlinkstyle):l.displaystring,"&nbsp;"!=l&&h.push(g+":"+SocialCalc.encodeForSave(l));
SpreadsheetControlCreateSheetHTML: function (a){var c,b;c="";c=new SocialCalc.RenderContext(a.sheet);a=document.createElement("div");b=c.RenderSheet(null,{type:"html"});a.appendChild(b);delete c;c=a.innerHTML;delete b;delete a;return c}
SpreadsheetControlCreateSpreadsheetSave: function (a,c){var b="",d="",e,f;if(c)for(e in c)f="\n"!=c[e].charAt(c[e]-1)?"\n":"",b+="--"+a.multipartBoundary+"\nContent-type: text/plain; charset=UTF-8\n\n"+c[e]+f,d+="part:"+e+"\n";return"socialcalc:version:1.0\nMIME-Version: 1.0\nContent-Type: multipart/mixed; boundary="+a.multipartBoundary+"\n--"+a.multipartBoundary+"\nContent-type: text/plain; charset=UTF-8\n\n# SocialCalc Spreadsheet Control Save\nversion:1.0\npart:sheet\npart:edit\npart:audit\n"+d+
SpreadsheetControlDecodeSpreadsheetSave: function (a,c){var b,d,e,f,g,l,h,n={},p=[];b=c.search(/^MIME-Version:\s1\.0/mi);if(0>b)return n;d=/^Content-Type:\s*multipart\/mixed;\s*boundary=(\S+)/mig;d.lastIndex=b;e=d.exec(c);if(0>=d.lastIndex)return n;b=e[1];f=RegExp("^--"+b+"(?:\r\n|\n)","mg");f.lastIndex=d.lastIndex;f.exec(c);d=/(?:\r\n|\n)(?:\r\n|\n)/gm;d.lastIndex=f.lastIndex;e=d.exec(c);if(!e)return n;g=d.lastIndex;f.lastIndex=g;e=f.exec(c);if(!e)return n;e=e.index;g=c.substring(g,e).split(/\r\n|\n/);
SpreadsheetControlExecuteCommand: function (a,c,b){a=SocialCalc.GetSpreadsheetControlObject().editor;var d,e,f,g;a.range.hasrange?(e=d=SocialCalc.crToCoord(a.range.left,a.range.top)+":"+SocialCalc.crToCoord(a.range.right,a.range.bottom),f=SocialCalc.rcColname(a.range.left)+":"+SocialCalc.rcColname(a.range.right),g=a.range.top+":"+a.range.bottom):(e=a.ecell.coord,d=a.ecell.coord+":"+a.ecell.coord,f=SocialCalc.rcColname(SocialCalc.coordToCr(a.ecell.coord).col),g=SocialCalc.coordToCr(a.ecell.coord).row);
SpreadsheetControlNamesChangedName: function (){var a=SocialCalc.GetSpreadsheetControlObject(),c=document.getElementById(a.idPrefix+"nameslist"),c=c.options[c.selectedIndex].value;a.sheet.names[c]?(document.getElementById(a.idPrefix+"namesname").value=c,document.getElementById(a.idPrefix+"namesdesc").value=a.sheet.names[c].desc||"",document.getElementById(a.idPrefix+"namesvalue").value=a.sheet.names[c].definition||""):(document.getElementById(a.idPrefix+"namesname").value="",document.getElementById(a.idPrefix+
SpreadsheetControlNamesDelete: function (){var a=SocialCalc.GetSpreadsheetControlObject(),c=document.getElementById(a.idPrefix+"namesname").value;SocialCalc.SetTab(a.tabs[0].name);SocialCalc.KeyboardFocus();""!=c&&a.ExecuteCommand("name delete "+c);SocialCalc.KeyboardFocus()}
SpreadsheetControlNamesFillNameList: function (){var a=SocialCalc.LocalizeString,c,b=[],d=SocialCalc.GetSpreadsheetControlObject(),e=document.getElementById(d.idPrefix+"nameslist"),f=document.getElementById(d.idPrefix+"namesname").value.toUpperCase().replace(/[^A-Z0-9_\.]/g,"");for(c in d.sheet.names)b.push(c);b.sort();e.length=0;e.options[0]=0<b.length?new Option(a("[New]")):new Option(a("[None]"));for(a=0;a<b.length;a++)c=b[a],e.options[a+1]=new Option(c,c),c==f&&(e.options[a+1].selected=
SpreadsheetControlNamesOnclick: function (a){document.getElementById(a.idPrefix+"namesname").value="";document.getElementById(a.idPrefix+"namesdesc").value="";document.getElementById(a.idPrefix+"namesvalue").value="";a.editor.RangeChangeCallback.names=SocialCalc.SpreadsheetControlNamesRangeChange;a.editor.MoveECellCallback.names=SocialCalc.SpreadsheetControlNamesRangeChange;SocialCalc.SpreadsheetControlNamesRangeChange(a.editor);SocialCalc.SpreadsheetControlNamesFillNameList();SocialCalc.SpreadsheetControlNamesChangedName()}
SpreadsheetControlNamesOnunclick: function (a){delete a.editor.RangeChangeCallback.names;delete a.editor.MoveECellCallback.names}
SpreadsheetControlNamesRangeChange: function (a){var c=SocialCalc.GetSpreadsheetControlObject();document.getElementById(c.idPrefix+"namesrangeproposal").value=a.range.hasrange?SocialCalc.crToCoord(a.range.left,a.range.top)+":"+SocialCalc.crToCoord(a.range.right,a.range.bottom):a.ecell.coord}
SpreadsheetControlNamesSave: function (){var a=SocialCalc.GetSpreadsheetControlObject(),c=document.getElementById(a.idPrefix+"namesname").value;SocialCalc.SetTab(a.tabs[0].name);SocialCalc.KeyboardFocus();""!=c&&a.ExecuteCommand("name define "+c+" "+document.getElementById(a.idPrefix+"namesvalue").value+"\nname desc "+c+" "+document.getElementById(a.idPrefix+"namesdesc").value)}
SpreadsheetControlNamesSetValue: function (){var a=SocialCalc.GetSpreadsheetControlObject();document.getElementById(a.idPrefix+"namesvalue").value=document.getElementById(a.idPrefix+"namesrangeproposal").value;SocialCalc.KeyboardFocus()}
SpreadsheetControlSettingsSwitch: function (a){SocialCalc.SettingControlReset();var c=SocialCalc.GetSpreadsheetControlObject(),b=document.getElementById(c.idPrefix+"sheetsettingstable"),d=document.getElementById(c.idPrefix+"cellsettingstable"),e=document.getElementById(c.idPrefix+"sheetsettingstoolbar"),f=document.getElementById(c.idPrefix+"cellsettingstoolbar");"sheet"==a?(b.style.display="block",d.style.display="none",e.style.display="block",f.style.display="none",SocialCalc.SettingsControlSetCurrentPanel(c.views.settings.values.sheetspanel)):
SpreadsheetControlSortLoad: function (a,c,b){a=SocialCalc.GetSpreadsheetControlObject();b=b.split(":");a.sortrange=SocialCalc.decodeFromSave(b[1]);c=document.getElementById(a.idPrefix+"sortbutton");a.sortrange?(c.value=SocialCalc.LocalizeString("Sort ")+a.sortrange,c.style.visibility="visible"):c.style.visibility="hidden";SocialCalc.LoadColumnChoosers(a);sele=document.getElementById(a.idPrefix+"majorsort");sele.selectedIndex=b[2]-0;document.getElementById(a.idPrefix+"majorsort"+b[3]).checked=
SpreadsheetControlSortOnclick: function (a){var c,b,d=[],e=document.getElementById(a.idPrefix+"sortlist");SocialCalc.LoadColumnChoosers(a);a.editor.RangeChangeCallback.sort=SocialCalc.UpdateSortRangeProposal;for(c in a.sheet.names)d.push(c);d.sort();e.length=0;e.options[0]=new Option(SocialCalc.LocalizeString("[select range]"));for(b=0;b<d.length;b++)c=d[b],e.options[b+1]=new Option(c,c),c==a.sortrange&&(e.options[b+1].selected=!0);""==a.sortrange&&(e.options[0].selected=!0);SocialCalc.UpdateSortRangeProposal(a.editor);
SpreadsheetControlSortSave: function (){var a=SocialCalc.GetSpreadsheetControlObject(),c,b,d;c="sort:"+SocialCalc.encodeForSave(a.sortrange)+":";b=document.getElementById(a.idPrefix+"majorsort");d=document.getElementById(a.idPrefix+"majorsortup");c+=b.selectedIndex+(d.checked?":up":":down");b=document.getElementById(a.idPrefix+"minorsort");0<b.selectedIndex?(d=document.getElementById(a.idPrefix+"minorsortup"),c+=":"+b.selectedIndex+(d.checked?":up":":down")):c+="::";b=document.getElementById(a.idPrefix+
SpreadsheetControlStatuslineCallback: function (a,c,b,d){var e=document.getElementById(d.statuslineid);e&&(e.innerHTML=a.GetStatuslineString(c,b,d));switch(c){case "cmdendnorender":case "calcfinished":case "doneposcalc":c=document.getElementById(d.recalcid1);d=document.getElementById(d.recalcid2);if(!c||!d)break;"yes"==a.context.sheetobj.attribs.needsrecalc?(c.style.display="inline",d.style.display="inline"):(c.style.display="none",d.style.display="none")}}
SpreadsheetViewer: function (a){var c=SocialCalc.Constants;this.spreadsheetDiv=this.parentNode=null;this.viewheight=this.width=this.height=this.requestedSpaceBelow=this.requestedWidth=this.requestedHeight=0;this.editorDiv=this.spreadsheetDiv=this.editor=this.context=this.sheet=null;this.sortrange="";this.idPrefix=a||"SocialCalc-";this.imagePrefix=c.defaultImagePrefix;this.statuslineheight=c.SVStatuslineheight;this.statuslineCSS=c.SVStatuslineCSS;this.sheet=new SocialCalc.Sheet;this.context=
SpreadsheetViewerCreateSheetHTML: function (a){var c,b;c="";c=new SocialCalc.RenderContext(a.sheet);a=document.createElement("div");b=c.RenderSheet(null,{type:"html"});a.appendChild(b);delete c;c=a.innerHTML;delete b;delete a;return c}
SpreadsheetViewerDecodeSpreadsheetSave: function (a,c){var b,d,e,f,g,l,h,n={},p=[];/[^\n]\r[^\n]/.test(c)&&(c=c.replace(/([^\n])\r([^\n])/g,"$1\r\n$2"));b=c.search(/^MIME-Version:\s1\.0/mi);if(0>b)return n;d=/^Content-Type:\s*multipart\/mixed;\s*boundary=(\S+)/mig;d.lastIndex=b;e=d.exec(c);if(0>=d.lastIndex)return n;b=e[1];f=RegExp("^--"+b+"(?:\r\n|\n)","mg");f.lastIndex=d.lastIndex;f.exec(c);d=/(?:\r\n|\n)(?:\r\n|\n)/gm;d.lastIndex=f.lastIndex;e=d.exec(c);if(!e)return n;g=d.lastIndex;f.lastIndex=
SpreadsheetViewerDoButtonCmd: function (a,c,b){a=b.element;b=b.functionobj.command;c=SocialCalc.GetSpreadsheetViewerObject().editor;switch(b){case "recalc":c.EditorScheduleSheetCommands("recalc")}a&&a.blur&&a.blur();SocialCalc.KeyboardFocus()}
SpreadsheetViewerDoRepeatingMacro: function (){var a=SocialCalc.GetSpreadsheetViewerObject(),c=a.editor;a.repeatingMacroTimer=null;SocialCalc.SheetCommandInfo.CmdExtensionCallbacks.repeatmacro={func:SocialCalc.SpreadsheetViewerRepeatMacroCommand,data:null};c.EditorScheduleSheetCommands(a.repeatingMacroCommands)}
SpreadsheetViewerLoadSave: function (a,c){var b,d,e;if(b=a.DecodeSpreadsheetSave(c))b.sheet&&(a.sheet.ResetSheet(),a.sheet.ParseSheetSave(c.substring(b.sheet.start,b.sheet.end))),b.edit&&a.editor.LoadEditorSettings(c.substring(b.edit.start,b.edit.end)),b.startupmacro&&a.editor.EditorScheduleSheetCommands(c.substring(b.startupmacro.start,b.startupmacro.end),!1,!0),b.repeatingmacro&&(b=c.substring(b.repeatingmacro.start,b.repeatingmacro.end),b=b.replace("\r",""),d=b.indexOf("\n"),0<d&&(e=b.substring(0,
SpreadsheetViewerRepeatMacroCommand: function (a,c,b,d){a=SocialCalc.GetSpreadsheetViewerObject();d=d.RestOfString()-0;0<d||(d=a.repeatingMacroInterval);a.repeatingMacroInterval=d;a.repeatingMacroTimer=window.setTimeout(SocialCalc.SpreadsheetViewerDoRepeatingMacro,1E3*a.repeatingMacroInterval)}
SpreadsheetViewerStatuslineCallback: function (a,c,b,d){var e=d.spreadsheetobj,f="";e&&e.statuslineDiv&&(f=e.statuslineFull?a.GetStatuslineString(c,b,d):a.ecell.coord,f=e.statuslineHTML.replace(/\{status\}/,f),e.statuslineDiv.innerHTML=f)}
SpreadsheetViewerStopRepeatingMacro: function (){var a=SocialCalc.GetSpreadsheetViewerObject();a.repeatingMacroTimer&&(window.clearTimeout(a.repeatingMacroTimer),a.repeatingMacroTimer=null)}
TCPSDragFunctionMove: function (a,c,b){var d,e;e=b.functionobj.control;d=e.sliderthickness;var f=e.editor;if(b.vertical){e=e.morebuttonstart-e.minscrollingpanesize-c.offsetY;c.clientY>e&&(c.clientY=e);e=f.headposition.top-d-c.offsetY;c.clientY<e&&(c.clientY=e);for(d=SocialCalc.Lookup(c.clientY+d,f.rowpositions);"yes"==f.context.sheetobj.rowattribs.hide[d];)d++;c.trackingline.style.top=(f.rowpositions[d]||f.headposition.top)+"px"}else{e=e.morebuttonstart-e.minscrollingpanesize-c.offsetX;c.clientX>
TCPSDragFunctionStart: function (a,c,b){var d=b.functionobj.control.editor,e=SocialCalc.Constants;SocialCalc.DragFunctionStart(a,c,b);c.trackingline=document.createElement("div");c.trackingline.style.height=b.vertical?e.TCPStrackinglineThickness:d.tableheight-(d.headposition.top-d.gridposition.top)+"px";c.trackingline.style.width=b.vertical?d.tablewidth-(d.headposition.left-d.gridposition.left)+"px":e.TCPStrackinglineThickness;c.trackingline.style.backgroundImage="url("+d.imageprefix+"trackingline-"+
TCPSDragFunctionStop: function (a,c,b){var d,e=b.functionobj.control;d=e.sliderthickness;a=e.editor;if(b.vertical){b=e.morebuttonstart-e.minscrollingpanesize-c.offsetY;c.clientY>b&&(c.clientY=b);b=a.headposition.top-d-c.offsetY;c.clientY<b&&(c.clientY=b);d=SocialCalc.Lookup(c.clientY+d,a.rowpositions);d>a.context.sheetobj.attribs.lastrow&&(d=a.context.sheetobj.attribs.lastrow);for(;"yes"==a.context.sheetobj.rowattribs.hide[d];)d++;!d||d<=a.context.rowpanes[0].first?1<a.context.rowpanes.length&&
TCTDragFunctionMove: function (a,c,b){var d,e;d=b.functionobj.control;e=d.editor;var f=SocialCalc.Constants;b.vertical?(c.clientY>d.scrollareaend-c.offsetY-d.thumbthickness+2&&(c.clientY=d.scrollareaend-c.offsetY-d.thumbthickness+2),c.clientY<d.scrollareastart-c.offsetY-1&&(c.clientY=d.scrollareastart-c.offsetY-1),c.thumbstatus.style.top=c.clientY+"px",d=(c.clientY+c.offsetY-d.scrollareastart+1)/(d.scrollareasize-d.thumbthickness)*(e.context.sheetobj.attribs.lastrow-e.lastnonscrollingrow)+
TCTDragFunctionRowSetStatus: function (a,c,b){a.thumbstatus.rowmsgele.innerHTML=SocialCalc.Constants.s_TCTDFthumbstatusPrefixv+b+" ";a.thumbcontext.rowpanes=[{first:b,last:b}];a.thumbrowshown=b;a.thumbcontext.RenderSheet(a.thumbstatus.rowpreviewele.firstChild,{type:"html"})}
TCTDragFunctionStart: function (a,c,b){var d=b.functionobj.control,e=d.editor,f=SocialCalc.Constants;SocialCalc.DragFunctionStart(a,c,b);c.thumbstatus&&(c.thumbstatus.rowmsgele&&(c.thumbstatus.rowmsgele=null),c.thumbstatus.rowpreviewele&&(c.thumbstatus.rowpreviewele=null),e.toplevel.removeChild(c.thumbstatus),c.thumbstatus=null);c.thumbstatus=document.createElement("div");b.vertical?(f.TCTDFSthumbstatusvClass&&(c.thumbstatus.className=f.TCTDFSthumbstatusvClass),SocialCalc.setStyles(c.thumbstatus,f.TCTDFSthumbstatusvStyle),
TCTDragFunctionStop: function (a,c,b){var d=b.functionobj.control;a=d.editor;b.vertical?(b=(c.clientY+c.offsetY-d.scrollareastart+1)/(d.scrollareasize-d.thumbthickness)*(a.context.sheetobj.attribs.lastrow-a.lastnonscrollingrow)+a.lastnonscrollingrow+1,b=Math.floor(b),b<=a.lastnonscrollingrow&&(b=a.lastnonscrollingrow+1),b>a.context.sheetobj.attribs.lastrow&&(b=a.context.sheetobj.attribs.lastrow),a.context.SetRowPaneFirstLast(a.context.rowpanes.length-1,b,b+1)):(b=(c.clientX+c.offsetX-d.scrollareastart+
TableControl: function (a,c,b){var d=SocialCalc.Constants;this.editor=a;this.vertical=c;this.size=b;this.thumbpos=this.scrollareasize=this.scrollareaend=this.scrollareastart=this.morebuttonstart=this.lessbuttonstart=this.panesliderstart=this.endcapstart=this.controlborder=this.thumb=this.scrollarea=this.morebutton=this.lessbutton=this.paneslider=this.endcap=this.main=null;this.controlthickness=d.defaultTableControlThickness;this.sliderthickness=d.defaultTCSliderThickness;this.buttonthickness=
TableEditor: function (a){var c=SocialCalc.Constants;this.context=a;this.fullgrid=this.toplevel=null;this.noEdit=!1;this.timeout=this.cellhandles=this.logo=this.horizontaltablecontrol=this.verticaltablecontrol=this.inputEcho=this.inputBox=this.tableheight=this.height=this.tablewidth=this.width=null;this.ensureecell=this.busy=!1;this.deferredCommands=[];this.lastvisiblecol=this.lastnonscrollingcol=this.firstscrollingcolleft=this.firstscrollingcol=this.lastvisiblerow=this.lastnonscrollingrow=
TooltipDisplay: function (a){var c=SocialCalc.TooltipInfo,b=SocialCalc.Constants,d=a.functionobj&&"number"==typeof a.functionobj.offsetx?a.functionobj.offsetx:c.offsetX,e=a.functionobj&&"number"==typeof a.functionobj.offsety?a.functionobj.offsety:c.offsetY,f=SocialCalc.GetViewportInfo(),g=SocialCalc.GetElementPositionWithScroll(a.parent);c.popupElement=document.createElement("div");b.TDpopupElementClass&&(c.popupElement.className=b.TDpopupElementClass);SocialCalc.setStyles(c.popupElement,
TooltipHide: function (){var a=SocialCalc.TooltipInfo;a.popupElement&&(a.popupElement.parentNode.removeChild(a.popupElement),a.popupElement=null)}
TooltipInfo: Object
TooltipMouseDown: function (){var a=SocialCalc.TooltipInfo;a.timer&&(window.clearTimeout(a.timer),a.timer=null);a.popupElement&&SocialCalc.TooltipHide();a.tooltipElement&&(a.tooltipElement.element.removeEventListener?a.tooltipElement.element.removeEventListener("mousedown",SocialCalc.TooltipMouseDown,!1):a.tooltipElement.element.attachEvent&&a.tooltipElement.element.detachEvent("onmousedown",SocialCalc.TooltipMouseDown),a.tooltipElement=null)}
TooltipMouseMove: function (a){var c=a||window.event;a=SocialCalc.TooltipInfo;a.clientX=c.clientX;a.clientY=c.clientY;c=SocialCalc.LookupElement(c.target||c.srcElement,a.registeredElements);a.timer&&(window.clearTimeout(a.timer),a.timer=null);a.popupElement&&SocialCalc.TooltipHide();a.tooltipElement=c||null;c&&!SocialCalc.ButtonInfo.buttonDown&&(a.timer=window.setTimeout(SocialCalc.TooltipWaitDone,700),a.tooltipElement.element.addEventListener?a.tooltipElement.element.addEventListener("mousedown",
TooltipRegister: function (a,c,b,d){var e=SocialCalc.TooltipInfo;e.registeredElements.push({element:a,tiptext:c,functionobj:b,parent:d});if(!e.registered){if(document.addEventListener)document.addEventListener("mousemove",SocialCalc.TooltipMouseMove,!1);else if(document.attachEvent)document.attachEvent("onmousemove",SocialCalc.TooltipMouseMove);else throw SocialCalc.Constants.s_BrowserNotSupported;e.registered=!0}}
TooltipWaitDone: function (){var a=SocialCalc.TooltipInfo;a.timer=null;SocialCalc.TooltipDisplay(a.tooltipElement)}
UndoStack: function (){this.stack=[];this.tos=-1;this.maxRedo=0;this.maxUndo=50}
UpdateCellCSS: function (a,c,b,d){var e;if(c&&(a=a.context.RenderCell(b,d,c.rowpane,c.colpane,!0,null)))for(e in c.element.style.cssText="",c.element.className=a.className,a.style)"cssText"!=a.style[e]&&(c.element.style[e]=a.style[e])}
UpdateSortRangeProposal: function (a){document.getElementById(SocialCalc.GetSpreadsheetControlObject().idPrefix+"sortlist").options[0].text=a.range.hasrange?SocialCalc.crToCoord(a.range.left,a.range.top)+":"+SocialCalc.crToCoord(a.range.right,a.range.bottom):SocialCalc.LocalizeString("[select range]")}
_room: "a"
_username: "0.33573656156659126"
_view: false
coordToCol: Object
coordToCr: function (a){var c,b,d,e=SocialCalc.coordToRow[a];if(e)return{row:e,col:SocialCalc.coordToCol[a]};for(b=e=c=0;b<a.length;b++)d=a.charCodeAt(b),36!=d&&(57>=d?e=10*e+d-48:97<=d?c=26*c+d-96:65<=d&&(c=26*c+d-64));SocialCalc.coordToCol[a]=c;SocialCalc.coordToRow[a]=e;return{row:e,col:c}}
coordToRow: Object
crToCoord: function (a,c){1>a&&(a=1);702<a&&(a=702);1>c&&(c=1);var b=(a-1)%26,d=Math.floor((a-1)/26);return d?SocialCalc.letters[d-1]+SocialCalc.letters[b]+c:SocialCalc.letters[b]+c}
decodeFromAjax: function (a){if("string"!=typeof a||-1==a.indexOf("\\"))return a;a=a.replace(/\\c/g,":");a=a.replace(/\\n/g,"\n");a=a.replace(/\\e/g,"]]");return a.replace(/\\b/g,"\\")}
decodeFromSave: function (a){if("string"!=typeof a||-1==a.indexOf("\\"))return a;a=a.replace(/\\c/g,":");a=a.replace(/\\n/g,"\n");return a.replace(/\\b/g,"\\")}
default_expand_markup: function (a){a=SocialCalc.special_chars(a);a=a.replace(/ /g,"&nbsp; ");return a=a.replace(/\n/g,"<br>")}
encodeForSave: function (a){if("string"!=typeof a)return a;-1!=a.indexOf("\\")&&(a=a.replace(/\\/g,"\\b"));-1!=a.indexOf(":")&&(a=a.replace(/:/g,"\\c"));-1!=a.indexOf("\n")&&(a=a.replace(/\n/g,"\\n"));return a}
expand_text_link: function (a,c,b,d){var e;e=SocialCalc.Constants;c="";var f=SocialCalc.ParseCellLinkText(a+"");e=f.desc?SocialCalc.special_chars(f.desc):f.pagename?e.defaultPageLinkFormatString:e.defaultLinkFormatString;7<a.length&&("http://"==a.substring(0,7).toLowerCase()&&">"!=a.charAt(a.length-1))&&(e=e.substring(7));a=f.newwin||!b?' target="_blank"':"";f.pagename?SocialCalc.Callbacks.MakePageLink&&(c=SocialCalc.Callbacks.MakePageLink(f.pagename,f.workspacename,b,d)):c=encodeURI(f.url);
format_number_for_display: function (a,c,b){var d,e=SocialCalc.Constants;d=a-0;c=c.substring(1);if("Auto"==b||""==b)b="%"==c?e.defaultFormatp:"$"==c?e.defaultFormatc:"dt"==c?e.defaultFormatdt:"d"==c?e.defaultFormatd:"t"==c?e.defaultFormatt:"l"==c?"logical":"General";return"logical"==b?d?e.defaultDisplayTRUE:e.defaultDisplayFALSE:"hidden"==b?"&nbsp;":SocialCalc.FormatNumber.formatNumberWithFormat(a,b,"")}
format_text_for_display: function (a,c,b,d,e,f){var g,l,h;g=c.substring(1);h=a;if("none"==b||null==b)b="";/^(text-|custom|hidden)/.test(b)||(b="");if(""==b||"General"==b){"h"==g&&(b="text-html");if("w"==g||"r"==g)b="text-wiki";"l"==g&&(b="text-link");g||(b="text-plain")}"text-html"!=b&&(SocialCalc.Callbacks.expand_wiki&&/^text-wiki/.test(b)?h=SocialCalc.Callbacks.expand_wiki(h,d,e,b):"text-wiki"==b?h=SocialCalc.Callbacks.expand_markup&&SocialCalc.Callbacks.expand_markup(h,d,e)||SocialCalc.special_chars("wiki-text:"+
hadSnapshot: true
intFunc: function (a){return 0>a?-Math.floor(-a):Math.floor(a)}
isConnected: true
keyboardTables: Object
letters: Array[26]
rcColname: function (a){702<a&&(a=702);1>a&&(a=1);var c=(a-1)%26+65;return(a=Math.floor((a-1)/26))?String.fromCharCode(a+64)+String.fromCharCode(c):String.fromCharCode(c)}
setStyles: function (a,c){var b,d,e,f;if(c){b=c.split(";");for(d=0;d<b.length;d++)e=b[d].indexOf(":"),-1!=e&&(f=b[d].substring(0,e),e=b[d].substring(e+1),f&&e&&(a.style[f]=e))}}
sheetfields: Array[7]
sheetfieldsshort: Array[7]
sheetfieldsxlat: Array[8]
sheetfieldsxlatshort: Array[8]
sheetfieldsxlatxlt: Array[8]
special_chars: function (a){/[&<>"]/.test(a)&&(a=a.replace(/&/g,"&amp;"),a=a.replace(/</g,"&lt;"),a=a.replace(/>/g,"&gt;"),a=a.replace(/"/g,"&quot;"));return a}
__proto__: Object
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment