From 815d194e6f063b961869326435d7ea4882bd0cd5 Mon Sep 17 00:00:00 2001 From: Audrey Tang Date: Fri, 20 Apr 2012 23:36:21 +0800 Subject: [PATCH] * Finish separate /:room/view and /:room/edit support for #1. To enable this mode, start ethercalc with a "--key" parameter: ./bin/ethercalc --key 85b5dd7a-8afe-11e1-bca8-002332d309a4 Under this mode, /:room simply redirects to the /:room/view URL. Using a reverse proxy to authenticate or restrict access to the /:room/edit URL scheme is currently required. --- Makefile | 3 +- main.coffee | 12 +- player.coffee | 45 +- socialcalcviewer.js | 687 +++++++++++++++++++++ static/ethercalc.js | 1399 ++++++++++++++++++++++--------------------- 5 files changed, 1434 insertions(+), 712 deletions(-) create mode 100644 socialcalcviewer.js diff --git a/Makefile b/Makefile index 4d0c6094..d91e847c 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,8 @@ SOCIALCALC_FILES=\ formatnumber2.js \ formula1.js \ socialcalcpopup.js \ - socialcalcspreadsheetcontrol.js + socialcalcspreadsheetcontrol.js \ + socialcalcviewer.js ETHERCALC_FILES=\ $(SOCIALCALC_FILES) \ diff --git a/main.coffee b/main.coffee index e4e200a6..4260eeef 100644 --- a/main.coffee +++ b/main.coffee @@ -13,20 +13,28 @@ @response.sendfile "#{RealBin}/#{file}" KEY = @KEY + HMAC_CACHE = {} hmac = if !KEY then (x) -> (x) else (x) -> + return HMAC_CACHE[x] if HMAC_CACHE[x] encoder = require('crypto').createHmac('sha256', KEY) encoder.update x.toString() - encoder.digest('hex') + HMAC_CACHE[x] = encoder.digest('hex') @get '/': sendFile "index.html" @get '/_new': -> room = require("uuid-pure").newId(10, 36).toLowerCase() @response.redirect if KEY then "/#{ room }/edit" else "/#{ room }" @get '/_start': sendFile "start.html" - @get '/:room': sendFile "index.html" + @get '/:room': if KEY then -> + return sendFile("index.html").call(@) if @query.auth?.length + @response.redirect "/#{ @params.room }?auth=0" + else sendFile "index.html" @get '/:room/edit': -> room = @params.room @response.redirect "/#{ room }?auth=#{ hmac(room) }" + @get '/:room/view': -> + room = @params.room + @response.redirect "/#{ room }?auth=0" @get '/_/:room': -> SC._get @params.room, null, ({ log, snapshot }) => @response.send '', { 'Content-Type': 'text/plain' }, 404 unless snapshot diff --git a/player.coffee b/player.coffee index 86c01c43..889e1b61 100644 --- a/player.coffee +++ b/player.coffee @@ -5,6 +5,7 @@ SocialCalc.isConnected = true SocialCalc.hadSnapshot = false SocialCalc._auth = window.location.search?.replace(/\??auth=/, '') + SocialCalc._view = (SocialCalc._auth is '0') SocialCalc._room ?= window.location.hash.replace('#', '') SocialCalc._room = SocialCalc._room.replace(/^_+/, '').replace(/\?.*/, '') unless SocialCalc._room @@ -13,7 +14,8 @@ try window.history.pushState {}, '', "/#{ SocialCalc._room - }" + if SocialCalc._auth then "/edit" else "" + }" + if SocialCalc._view then "/view" else + if SocialCalc._auth then "/edit" else "" @connect() emit = (data) => @emit { data } @@ -37,7 +39,8 @@ return if @data.to and @data.to != SocialCalc._username return if @data.room and @data.room != SocialCalc._room and @data.type != "recalc" - editor = SocialCalc.CurrentSpreadsheetControlObject.editor + ss = window.spreadsheet + editor = ss.editor switch @data.type when "chat" window.addmsg? @data.msg @@ -70,44 +73,42 @@ when "log" break if SocialCalc.hadSnapshot SocialCalc.hadSnapshot = true - spreadsheet = SocialCalc.CurrentSpreadsheetControlObject - parts = spreadsheet.DecodeSpreadsheetSave(@data.snapshot) if @data.snapshot + parts = ss.DecodeSpreadsheetSave(@data.snapshot) if @data.snapshot if parts if parts.sheet - spreadsheet.sheet.ResetSheet() - spreadsheet.ParseSheetSave @data.snapshot.substring(parts.sheet.start, parts.sheet.end) - # spreadsheet.editor.LoadEditorSettings @data.snapshot.substring(parts.edit.start, parts.edit.end) if parts.edit + ss.sheet.ResetSheet() + ss.ParseSheetSave @data.snapshot.substring(parts.sheet.start, parts.sheet.end) + # ss.editor.LoadEditorSettings @data.snapshot.substring(parts.edit.start, parts.edit.end) if parts.edit window.addmsg? @data.chat.join("\n"), true cmdstr = ( line for line in @data.log when not /^re(calc|display)$/.test(line) ).join("\n") if cmdstr.length refreshCmd = "recalc" - editor = SocialCalc.CurrentSpreadsheetControlObject.editor # if editor.context.sheetobj.attribs.recalc != "off" # refreshCmd = "recalc" - SocialCalc.CurrentSpreadsheetControlObject.context.sheetobj.ScheduleSheetCommands cmdstr + "\n#{refreshCmd}\n", false, true + ss.context.sheetobj.ScheduleSheetCommands cmdstr + "\n#{refreshCmd}\n", false, true else - SocialCalc.CurrentSpreadsheetControlObject.context.sheetobj.ScheduleSheetCommands "recalc\n", false, true + ss.context.sheetobj.ScheduleSheetCommands "recalc\n", false, true # editor.MoveECellCallback.broadcast = (e) -> # SocialCalc.Callbacks.broadcast "my.ecell" # ecell: e.ecell.coord when "recalc" if @data.force SocialCalc.Formula.SheetCache.sheets = {} - SocialCalc.CurrentSpreadsheetControlObject?.sheet.recalconce = true - parts = SocialCalc.CurrentSpreadsheetControlObject.DecodeSpreadsheetSave(@data.snapshot) if @data.snapshot + ss?.sheet.recalconce = true + parts = ss.DecodeSpreadsheetSave(@data.snapshot) if @data.snapshot if parts?.sheet SocialCalc.RecalcLoadedSheet( @data.room, @data.snapshot.substring(parts.sheet.start, parts.sheet.end), true # recalc ) - SocialCalc.CurrentSpreadsheetControlObject.context.sheetobj.ScheduleSheetCommands "recalc\n", false, true + ss.context.sheetobj.ScheduleSheetCommands "recalc\n", false, true else SocialCalc.RecalcLoadedSheet(@data.room, "", true) when "execute" - SocialCalc.CurrentSpreadsheetControlObject.context.sheetobj.ScheduleSheetCommands @data.cmdstr, @data.saveundo, true + ss.context.sheetobj.ScheduleSheetCommands @data.cmdstr, @data.saveundo, true return window.doresize = -> window.spreadsheet?.DoOnResize() @@ -129,13 +130,19 @@ scc.defaultImagePrefix = "/images/sc-" SocialCalc.Popup.LocalizeString = SocialCalc.LocalizeString $ -> - window.spreadsheet = spreadsheet = new SocialCalc.SpreadsheetControl() + window.spreadsheet = ss = ( + if SocialCalc._view + new SocialCalc.SpreadsheetViewer() + else + new SocialCalc.SpreadsheetControl() + ) document.getElementById("msgtext").value = "" savestr = document.getElementById("savestr") - spreadsheet.InitializeSpreadsheetControl "tableeditor", 0, 0, 0 - spreadsheet.ExecuteCommand "redisplay", "" - spreadsheet.ExecuteCommand "set sheet defaulttextvalueformat text-wiki" - spreadsheet.ExportCallback = (s) -> + ss.InitializeSpreadsheetViewer? "tableeditor", 0, 0, 0 + ss.InitializeSpreadsheetControl? "tableeditor", 0, 0, 0 + ss.ExecuteCommand? "redisplay", "" + ss.ExecuteCommand? "set sheet defaulttextvalueformat text-wiki" + ss.ExportCallback = (s) -> alert SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard, "csv") SocialCalc.Callbacks.expand_wiki = (val) -> """ diff --git a/socialcalcviewer.js b/socialcalcviewer.js new file mode 100644 index 00000000..7abcf8bf --- /dev/null +++ b/socialcalcviewer.js @@ -0,0 +1,687 @@ +// +// SocialCalcViewer +// +/* +// The code module of the SocialCalc package that lets you embed a spreadsheet viewer +// with an optional simple toolbar into a web page. +// +// (c) Copyright 2008, 2009, 2010 Socialtext, Inc. +// All Rights Reserved. +// +*/ + +/* + +LEGAL NOTICES REQUIRED BY THE COMMON PUBLIC ATTRIBUTION LICENSE: + +EXHIBIT A. Common Public Attribution License Version 1.0. + +The contents of this file are subject to the Common Public Attribution License Version 1.0 (the +"License"); you may not use this file except in compliance with the License. You may obtain a copy +of the License at http://socialcalc.org. The License is based on the Mozilla Public License Version 1.1 but +Sections 14 and 15 have been added to cover use of software over a computer network and provide for +limited attribution for the Original Developer. In addition, Exhibit A has been modified to be +consistent with Exhibit B. + +Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +KIND, either express or implied. See the License for the specific language governing rights and +limitations under the License. + +The Original Code is SocialCalc JavaScript SpreadsheetViewer. + +The Original Developer is the Initial Developer. + +The Initial Developer of the Original Code is Socialtext, Inc. All portions of the code written by +Socialtext, Inc., are Copyright (c) Socialtext, Inc. All Rights Reserved. + +Contributor: Dan Bricklin. + + +EXHIBIT B. Attribution Information + +When the SpreadsheetViewer is producing and/or controlling the display the Graphic Image must be +displayed on the screen visible to the user in a manner comparable to that in the +Original Code. The Attribution Phrase must be displayed as a "tooltip" or "hover-text" for +that image. The image must be linked to the Attribution URL so as to access that page +when clicked. If the user interface includes a prominent "about" display which includes +factual prominent attribution in a form similar to that in the "about" display included +with the Original Code, including Socialtext copyright notices and URLs, then the image +need not be linked to the Attribution URL but the "tool-tip" is still required. + +Attribution Copyright Notice: + + Copyright (C) 2010 Socialtext, Inc. + All Rights Reserved. + +Attribution Phrase (not exceeding 10 words): SocialCalc + +Attribution URL: http://www.socialcalc.org/ + +Graphic Image: The contents of the sc-logo.gif file in the Original Code or +a suitable replacement from http://www.socialcalc.org/licenses specified as +being for SocialCalc. + +Display of Attribution Information is required in Larger Works which are defined +in the CPAL as a work which combines Covered Code or portions thereof with code +not governed by the terms of the CPAL. + +*/ + +// +// Some of the other files in the SocialCalc package are licensed under +// different licenses. Please note the licenses of the modules you use. +// +// Code History: +// +// Initially coded by Dan Bricklin of Software Garden, Inc., for Socialtext, Inc. +// Unless otherwise specified, referring to "SocialCalc" in comments refers to this +// JavaScript version of the code, not the SocialCalc Perl code. +// + +/* + +See the comments in the main SocialCalc code module file of the SocialCalc package. + +*/ + + var SocialCalc; + if (!SocialCalc) { + alert("Main SocialCalc code module needed"); + SocialCalc = {}; + } + if (!SocialCalc.TableEditor) { + alert("SocialCalc TableEditor code module needed"); + } + +// ************************************* +// +// SpreadsheetViewer class: +// +// ************************************* + +// Global constants: + + SocialCalc.CurrentSpreadsheetViewerObject = null; // right now there can only be one active at a time + + +// Constructor: + +SocialCalc.SpreadsheetViewer = function() { + + var scc = SocialCalc.Constants; + + // Properties: + + this.parentNode = null; + this.spreadsheetDiv = null; + this.requestedHeight = 0; + this.requestedWidth = 0; + this.requestedSpaceBelow = 0; + this.height = 0; + this.width = 0; + this.viewheight = 0; // calculated amount for views below toolbar, etc. + + // Dynamic properties: + + this.sheet = null; + this.context = null; + this.editor = null; + + this.spreadsheetDiv = null; + this.editorDiv = null; + + this.sortrange = ""; // remembered range for sort tab + + // Constants: + + this.idPrefix = "SocialCalc-"; // prefix added to element ids used here, should end in "-" + this.imagePrefix = scc.defaultImagePrefix; // prefix added to img src + + this.statuslineheight = scc.SVStatuslineheight; // in pixels + this.statuslineCSS = scc.SVStatuslineCSS; + + // Callbacks: + + // Initialization Code: + + this.sheet = new SocialCalc.Sheet(); + this.context = new SocialCalc.RenderContext(this.sheet); + this.context.showGrid=true; + this.context.showRCHeaders=true; + this.editor = new SocialCalc.TableEditor(this.context); + this.editor.noEdit = true; + this.editor.StatusCallback.statusline = + {func: SocialCalc.SpreadsheetViewerStatuslineCallback, + params: {}}; + this.hasStatusLine = true; // default +// this.statuslineHTML = '
{status}Will be link
'; + this.statuslineHTML = '
{status} 
'; + this.statuslineFull = true; + this.noRecalc = true; // don't do a recalc when loaded, so no need for external sheet routines + + // Repeating macro info + + this.repeatingMacroTimer = null; + this.repeatingMacroInterval = 60; // default to 60 seconds + this.repeatingMacroCommands = ""; // what to execute + + + SocialCalc.CurrentSpreadsheetViewerObject = this; // remember this for rendezvousing on events + + return; + + } + +// Methods: + +SocialCalc.SpreadsheetViewer.prototype.InitializeSpreadsheetViewer = + function(node, height, width, spacebelow) {return SocialCalc.InitializeSpreadsheetViewer(this, node, height, width, spacebelow);}; +SocialCalc.SpreadsheetViewer.prototype.LoadSave = function(str) {return SocialCalc.SpreadsheetViewerLoadSave(this, str);}; +SocialCalc.SpreadsheetViewer.prototype.DoOnResize = function() {return SocialCalc.DoOnResize(this);}; +SocialCalc.SpreadsheetViewer.prototype.SizeSSDiv = function() {return SocialCalc.SizeSSDiv(this);}; +SocialCalc.SpreadsheetViewer.prototype.DecodeSpreadsheetSave = + function(str) {return SocialCalc.SpreadsheetViewerDecodeSpreadsheetSave(this, str);}; + +// Sheet Methods to make things a little easier: + +SocialCalc.SpreadsheetViewer.prototype.ParseSheetSave = function(str) {return this.sheet.ParseSheetSave(str);}; + + +// Functions: + +// +// InitializeSpreadsheetViewer(spreadsheet, node, height, width, spacebelow) +// +// Creates the control elements and makes them the child of node (string or element). +// If present, height and width specify size. +// If either is 0 or null (missing), the maximum that fits on the screen +// (taking spacebelow into account) is used. +// +// You should do a redisplay or recalc (which redisplays) after running this. +// + +SocialCalc.InitializeSpreadsheetViewer = function(spreadsheet, node, height, width, spacebelow) { + + var scc = SocialCalc.Constants; + var SCLoc = SocialCalc.LocalizeString; + var SCLocSS = SocialCalc.LocalizeSubstrings; + + var html, child, i, vname, v, style, button, bele; + var tabs = spreadsheet.tabs; + var views = spreadsheet.views; + + spreadsheet.requestedHeight = height; + spreadsheet.requestedWidth = width; + spreadsheet.requestedSpaceBelow = spacebelow; + + if (typeof node == "string") node = document.getElementById(node); + + if (node == null) { + alert("SocialCalc.SpreadsheetControl not given parent node."); + } + + spreadsheet.parentNode = node; + + // create node to hold spreadsheet view + + spreadsheet.spreadsheetDiv = document.createElement("div"); + + spreadsheet.SizeSSDiv(); // calculate and fill in the size values + + for (child=node.firstChild; child!=null; child=node.firstChild) { + node.removeChild(child); + } + + node.appendChild(spreadsheet.spreadsheetDiv); + + // create sheet div + + spreadsheet.nonviewheight = spreadsheet.hasStatusLine ? spreadsheet.statuslineheight : 0; + spreadsheet.viewheight = spreadsheet.height-spreadsheet.nonviewheight; + spreadsheet.editorDiv=spreadsheet.editor.CreateTableEditor(spreadsheet.width, spreadsheet.viewheight); + + spreadsheet.spreadsheetDiv.appendChild(spreadsheet.editorDiv); + + // create statusline + + if (spreadsheet.hasStatusLine) { + spreadsheet.statuslineDiv = document.createElement("div"); + spreadsheet.statuslineDiv.style.cssText = spreadsheet.statuslineCSS; + spreadsheet.statuslineDiv.style.height = spreadsheet.statuslineheight - + (spreadsheet.statuslineDiv.style.paddingTop.slice(0,-2)-0) - + (spreadsheet.statuslineDiv.style.paddingBottom.slice(0,-2)-0) + "px"; + spreadsheet.statuslineDiv.id = spreadsheet.idPrefix+"statusline"; + spreadsheet.spreadsheetDiv.appendChild(spreadsheet.statuslineDiv); + spreadsheet.editor.StatusCallback.statusline = + {func: SocialCalc.SpreadsheetViewerStatuslineCallback, + params: {spreadsheetobj:spreadsheet}}; + } + + // done - refresh screen needed + + return; + + } + +SocialCalc.SpreadsheetViewerLoadSave = function(spreadsheet, savestr) { + + var rmstr, pos, t, t2; + + var parts = spreadsheet.DecodeSpreadsheetSave(savestr); + if (parts) { + if (parts.sheet) { + spreadsheet.sheet.ResetSheet(); + spreadsheet.sheet.ParseSheetSave(savestr.substring(parts.sheet.start, parts.sheet.end)); + } + if (parts.edit) { + spreadsheet.editor.LoadEditorSettings(savestr.substring(parts.edit.start, parts.edit.end)); + } + if (parts.startupmacro) { // executed now + spreadsheet.editor.EditorScheduleSheetCommands(savestr.substring(parts.startupmacro.start, parts.startupmacro.end), false, true); + } + if (parts.repeatingmacro) { // first line tells how many seconds before first execution. Last cmd must be "cmdextension repeatmacro delay" to continue repeating. + rmstr = savestr.substring(parts.repeatingmacro.start, parts.repeatingmacro.end); + rmstr = rmstr.replace("\r", ""); // make sure no CR, only LF + pos = rmstr.indexOf("\n"); + if (pos > 0) { + t = rmstr.substring(0, pos)-0; // get number + t2 = t; +// if (!(t > 0)) t = 60; // handles NAN, too + spreadsheet.repeatingMacroInterval = t; + spreadsheet.repeatingMacroCommands = rmstr.substring(pos+1); + if (t2 > 0) { // zero means don't start yet + spreadsheet.repeatingMacroTimer = window.setTimeout(SocialCalc.SpreadsheetViewerDoRepeatingMacro, spreadsheet.repeatingMacroInterval * 1000); + } + } + } + } + if (spreadsheet.editor.context.sheetobj.attribs.recalc=="off" || spreadsheet.noRecalc) { + spreadsheet.editor.ScheduleRender(); + } + else { + spreadsheet.editor.EditorScheduleSheetCommands("recalc"); + } + } + +// +// SocialCalc.SpreadsheetViewerDoRepeatingMacro +// +// Called by a timer. Executes repeatingMacroCommands once. +// Use the "startcmdextension repeatmacro delay" command last to schedule this again. +// + +SocialCalc.SpreadsheetViewerDoRepeatingMacro = function() { + + var spreadsheet = SocialCalc.GetSpreadsheetViewerObject(); + var editor = spreadsheet.editor; + + spreadsheet.repeatingMacroTimer = null; + + SocialCalc.SheetCommandInfo.CmdExtensionCallbacks.repeatmacro = {func:SocialCalc.SpreadsheetViewerRepeatMacroCommand, data:null}; + + editor.EditorScheduleSheetCommands(spreadsheet.repeatingMacroCommands); + +} + +SocialCalc.SpreadsheetViewerRepeatMacroCommand = function(name, data, sheet, cmd, saveundo) { + + var spreadsheet = SocialCalc.GetSpreadsheetViewerObject(); + + var rest = cmd.RestOfString(); + var t = rest-0; // get number + if (!(t > 0)) t = spreadsheet.repeatingMacroInterval; // handles NAN, too, using last value + spreadsheet.repeatingMacroInterval = t; + + spreadsheet.repeatingMacroTimer = window.setTimeout(SocialCalc.SpreadsheetViewerDoRepeatingMacro, spreadsheet.repeatingMacroInterval * 1000); + +} + +SocialCalc.SpreadsheetViewerStopRepeatingMacro = function() { + + var spreadsheet = SocialCalc.GetSpreadsheetViewerObject(); + + if (spreadsheet.repeatingMacroTimer) { + window.clearTimeout(spreadsheet.repeatingMacroTimer); + spreadsheet.repeatingMacroTimer = null; + } +} + +// +// SocialCalc.SpreadsheetViewerDoButtonCmd(e, buttoninfo, bobj) +// +// xxx +// + +SocialCalc.SpreadsheetViewerDoButtonCmd = function(e, buttoninfo, bobj) { + + var obj = bobj.element; + var which = bobj.functionobj.command; + + var spreadsheet = SocialCalc.GetSpreadsheetViewerObject(); + var editor = spreadsheet.editor; + + switch (which) { + case "recalc": + editor.EditorScheduleSheetCommands("recalc"); + break; + + default: + break; + } + + if (obj && obj.blur) obj.blur(); + SocialCalc.KeyboardFocus(); + + } + + +// +// outstr = SocialCalc.LocalizeString(str) +// +// SocialCalc function to make localization easier. +// If str is "Text to localize", it returns +// SocialCalc.Constants.s_loc_text_to_localize if +// it exists, or else with just "Text to localize". +// Note that spaces are replaced with "_" and other special +// chars with "X" in the name of the constant (e.g., "A & B" +// would look for SocialCalc.Constants.s_loc_a_X_b. +// + +SocialCalc.LocalizeString = function(str) { + var cstr = SocialCalc.LocalizeStringList[str]; // found already this session? + if (!cstr) { // no - look up + cstr = SocialCalc.Constants["s_loc_"+str.toLowerCase().replace(/\s/g, "_").replace(/\W/g, "X")] || str; + SocialCalc.LocalizeStringList[str] = cstr; + } + return cstr; + } + +SocialCalc.LocalizeStringList = {}; // a list of strings to localize accumulated by the routine + +// +// outstr = SocialCalc.LocalizeSubstrings(str) +// +// SocialCalc function to make localization easier using %loc and %scc. +// +// Replaces sections of str with: +// %loc!Text to localize! +// with SocialCalc.Constants.s_loc_text_to_localize if +// it exists, or else with just "Text to localize". +// Note that spaces are replaced with "_" and other special +// chars with "X" in the name of the constant (e.g., %loc!A & B! +// would look for SocialCalc.Constants.s_loc_a_X_b. +// Uses SocialCalc.LocalizeString for this. +// +// Replaces sections of str with: +// %ssc!constant-name! +// with SocialCalc.Constants.constant-name. +// If the constant doesn't exist, throws and alert. +// + +SocialCalc.LocalizeSubstrings = function(str) { + + var SCLoc = SocialCalc.LocalizeString; + + return str.replace(/%(loc|ssc)!(.*?)!/g, function(a, t, c) { + if (t=="ssc") { + return SocialCalc.Constants[c] || alert("Missing constant: "+c); + } + else { + return SCLoc(c); + } + }); + + } + +// +// obj = GetSpreadsheetViewerObject() +// +// Returns the current spreadsheet view object +// + +SocialCalc.GetSpreadsheetViewerObject = function() { + + var csvo = SocialCalc.CurrentSpreadsheetViewerObject; + if (csvo) return csvo; + + throw ("No current SpreadsheetViewer object."); + + } + + +// +// SocialCalc.DoOnResize(spreadsheet) +// +// Processes an onResize event, setting the different views. +// + +SocialCalc.DoOnResize = function(spreadsheet) { + + var v; + var views = spreadsheet.views; + + var needresize = spreadsheet.SizeSSDiv(); + if (!needresize) return; + + for (vname in views) { + v = views[vname].element; + v.style.width = spreadsheet.width + "px"; + v.style.height = (spreadsheet.height-spreadsheet.nonviewheight) + "px"; + } + + spreadsheet.editor.ResizeTableEditor(spreadsheet.width, spreadsheet.height-spreadsheet.nonviewheight); + + } + + +// +// resized = SocialCalc.SizeSSDiv(spreadsheet) +// +// Figures out a reasonable size for the spreadsheet, given any requested values and viewport. +// Sets ssdiv to that. +// Return true if different than existing values. +// + +SocialCalc.SizeSSDiv = function(spreadsheet) { + + var sizes, pos, resized, nodestyle, newval; + var fudgefactorX = 10; // for IE + var fudgefactorY = 10; + + resized = false; + + sizes = SocialCalc.GetViewportInfo(); + pos = SocialCalc.GetElementPosition(spreadsheet.parentNode); + pos.bottom = 0; + pos.right = 0; + + nodestyle = spreadsheet.parentNode.style; + + if (nodestyle.marginTop) { + pos.top += nodestyle.marginTop.slice(0,-2)-0; + } + if (nodestyle.marginBottom) { + pos.bottom += nodestyle.marginBottom.slice(0,-2)-0; + } + if (nodestyle.marginLeft) { + pos.left += nodestyle.marginLeft.slice(0,-2)-0; + } + if (nodestyle.marginRight) { + pos.right += nodestyle.marginRight.slice(0,-2)-0; + } + + newval = spreadsheet.requestedHeight || + sizes.height - (pos.top + pos.bottom + fudgefactorY) - + (spreadsheet.requestedSpaceBelow || 0); + if (spreadsheet.height != newval) { + spreadsheet.height = newval; + spreadsheet.spreadsheetDiv.style.height = newval + "px"; + resized = true; + } + newval = spreadsheet.requestedWidth || + sizes.width - (pos.left + pos.right + fudgefactorX) || 700; + if (spreadsheet.width != newval) { + spreadsheet.width = newval; + spreadsheet.spreadsheetDiv.style.width = newval + "px"; + resized = true; + } + + return resized; + + } + + +// +// SocialCalc.SpreadsheetViewerStatuslineCallback +// + +SocialCalc.SpreadsheetViewerStatuslineCallback = function(editor, status, arg, params) { + + var spreadsheet = params.spreadsheetobj; + var slstr = ""; + + if (spreadsheet && spreadsheet.statuslineDiv) { + if (spreadsheet.statuslineFull) { + slstr = editor.GetStatuslineString(status, arg, params); + } + else { + slstr = editor.ecell.coord; + } + slstr = spreadsheet.statuslineHTML.replace(/\{status\}/, slstr); + spreadsheet.statuslineDiv.innerHTML = slstr; + } + + switch (status) { + case "cmdendnorender": + case "calcfinished": + case "doneposcalc": + break; // not updating Recalc button since no toolbar + + default: + break; + } + + } + + +// +// SocialCalc.CmdGotFocus(obj) +// +// Sets SocialCalc.Keyboard.passThru: obj should be element with focus or "true" +// + +SocialCalc.CmdGotFocus = function(obj) { + + SocialCalc.Keyboard.passThru = obj; + + } + + +// +// result = SocialCalc.SpreadsheetViewerCreateSheetHTML(spreadsheet) +// +// Returns the HTML representation of the whole spreadsheet +// + +SocialCalc.SpreadsheetViewerCreateSheetHTML = function(spreadsheet) { + + var context, div, ele; + + var result = ""; + + context = new SocialCalc.RenderContext(spreadsheet.sheet); + div = document.createElement("div"); + ele = context.RenderSheet(null, {type: "html"}); + div.appendChild(ele); + delete context; + result = div.innerHTML; + delete ele; + delete div; + return result; + + } + + +/////////////////////// +// +// LOAD ROUTINE +// +/////////////////////// + +// +// parts = SocialCalc.SpreadsheetViewerDecodeSpreadsheetSave(spreadsheet, str) +// +// Separates the parts from a spreadsheet save string, returning an object with the sub-strings. +// +// {type1: {start: startpos, end: endpos}, type2:...} +// + +SocialCalc.SpreadsheetViewerDecodeSpreadsheetSave = function(spreadsheet, str) { + + var pos1, mpregex, searchinfo, boundary, boundaryregex, blanklineregex, start, ending, lines, i, lines, p, pnun; + var parts = {}; + var partlist = []; + +var hasreturnonly = /[^\n]\r[^\n]/; +if (hasreturnonly.test(str)) { +str = str.replace(/([^\n])\r([^\n])/g, "$1\r\n$2"); +} + pos1 = str.search(/^MIME-Version:\s1\.0/mi); + if (pos1 < 0) return parts; + + mpregex = /^Content-Type:\s*multipart\/mixed;\s*boundary=(\S+)/mig; + mpregex.lastIndex = pos1; + + searchinfo = mpregex.exec(str); + if (mpregex.lastIndex <= 0) return parts; + boundary = searchinfo[1]; + + boundaryregex = new RegExp("^--"+boundary+"(?:\r\n|\n)", "mg"); + boundaryregex.lastIndex = mpregex.lastIndex; + + searchinfo = boundaryregex.exec(str); // find header top boundary + blanklineregex = /(?:\r\n|\n)(?:\r\n|\n)/gm; + blanklineregex.lastIndex = boundaryregex.lastIndex; + searchinfo = blanklineregex.exec(str); // skip to after blank line + if (!searchinfo) return parts; + start = blanklineregex.lastIndex; + boundaryregex.lastIndex = start; + searchinfo = boundaryregex.exec(str); // find end of header + if (!searchinfo) return parts; + ending = searchinfo.index; + + lines = str.substring(start, ending).split(/\r\n|\n/); // get header as lines + for (i=0;isample",s_loc_top:"Top",s_loc_top_border:"Top Border",s_loc_undone_steps:"UNDONE STEPS", -s_loc_url:"URL",s_loc_undo:"Undo",s_loc_unmerge_cells:"Unmerge Cells",s_loc_up:"Up",s_loc_value:"Value",s_loc_vertical:"Vertical",s_loc_wikitext:"Wikitext",s_loc_workspace:"Workspace",s_loc_XnewX:"[New]",s_loc_XnoneX:"[None]",s_loc_Xselect_rangeX:"[select range]",SVStatuslineheight:20,SVStatuslineCSS:"font-size:10px;padding:3px 0px;",FormatNumber_separatorchar:",",FormatNumber_decimalchar:".",FormatNumber_defaultCurrency:"$",s_FormatNumber_daynames:["Sunday","Monday","Tuesday","Wednesday","Thursday", -"Friday","Saturday"],s_FormatNumber_daynames3:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],s_FormatNumber_monthnames:["January","February","March","April","May","June","July","August","September","October","November","December"],s_FormatNumber_monthnames3:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],s_FormatNumber_am:"AM",s_FormatNumber_am1:"A",s_FormatNumber_pm:"PM",s_FormatNumber_pm1:"P",s_parseerrexponent:"Improperly formed number exponent",s_parseerrchar:"Unexpected character in formula", -s_parseerrstring:"Improperly formed string",s_parseerrspecialvalue:"Improperly formed special value",s_parseerrtwoops:"Error in formula (two operators inappropriately in a row)",s_parseerrmissingopenparen:"Missing open parenthesis in list with comma(s). ",s_parseerrcloseparennoopen:"Closing parenthesis without open parenthesis. ",s_parseerrmissingcloseparen:"Missing close parenthesis. ",s_parseerrmissingoperand:"Missing operand. ",s_parseerrerrorinformula:"Error in formula.",s_calcerrerrorvalueinformula:"Error value in formula", -s_parseerrerrorinformulabadval:"Error in formula resulting in bad value",s_formularangeresult:"Formula results in range value:",s_calcerrnumericnan:"Formula results in an bad numeric value",s_calcerrnumericoverflow:"Numeric overflow",s_sheetunavailable:"Sheet unavailable:",s_calcerrcellrefmissing:"Cell reference missing when expected.",s_calcerrsheetnamemissing:"Sheet name missing when expected.",s_circularnameref:"Circular name reference to name",s_calcerrunknownname:"Unknown name",s_calcerrincorrectargstofunction:"Incorrect arguments to function", -s_sheetfuncunknownfunction:"Unknown function",s_sheetfunclnarg:"LN argument must be greater than 0",s_sheetfunclog10arg:"LOG10 argument must be greater than 0",s_sheetfunclogsecondarg:"LOG second argument must be numeric greater than 0",s_sheetfunclogfirstarg:"LOG first argument must be greater than 0",s_sheetfuncroundsecondarg:"ROUND second argument must be numeric",s_sheetfuncddblife:"DDB life must be greater than 1",s_sheetfuncslnlife:"SLN life must be greater than 1",s_fdef_ABS:"Absolute value function. ", -s_fdef_ACOS:"Trigonometric arccosine function. ",s_fdef_AND:"True if all arguments are true. ",s_fdef_ASIN:"Trigonometric arcsine function. ",s_fdef_ATAN:"Trigonometric arctan function. ",s_fdef_ATAN2:"Trigonometric arc tangent function (result is in radians). ",s_fdef_AVERAGE:"Averages the values. ",s_fdef_CHOOSE:"Returns the value specified by the index. The values may be ranges of cells. ",s_fdef_COLUMNS:"Returns the number of columns in the range. ",s_fdef_COS:"Trigonometric cosine function (value is in radians). ", -s_fdef_COUNT:"Counts the number of numeric values, not blank, text, or error. ",s_fdef_COUNTA:"Counts the number of non-blank values. ",s_fdef_COUNTBLANK:'Counts the number of blank values. (Note: "" is not blank.) ',s_fdef_COUNTIF:'Counts the number of number of cells in the range that meet the criteria. The criteria may be a value ("x", 15, 1+3) or a test (>25). ',s_fdef_DATE:'Returns the appropriate date value given numbers for year, month, and day. For example: DATE(2006,2,1) for February 1, 2006. Note: In this program, day "1" is December 31, 1899 and the year 1900 is not a leap year. Some programs use January 1, 1900, as day "1" and treat 1900 as a leap year. In both cases, though, dates on or after March 1, 1900, are the same. ', +s_loc_url:"URL",s_loc_undo:"Undo",s_loc_unmerge_cells:"Unmerge Cells",s_loc_up:"Up",s_loc_value:"Value",s_loc_vertical:"Vertical",s_loc_wikitext:"Wikitext",s_loc_workspace:"Workspace",s_loc_XnewX:"[New]",s_loc_XnoneX:"[None]",s_loc_Xselect_rangeX:"[select range]",SVStatuslineheight:20,SVStatuslineCSS:"font-size:10px;padding:3px 0px;",FormatNumber_separatorchar:",",FormatNumber_decimalchar:".",FormatNumber_defaultCurrency:"$",s_FormatNumber_daynames:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","), +s_FormatNumber_daynames3:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),s_FormatNumber_monthnames:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),s_FormatNumber_monthnames3:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),s_FormatNumber_am:"AM",s_FormatNumber_am1:"A",s_FormatNumber_pm:"PM",s_FormatNumber_pm1:"P",s_parseerrexponent:"Improperly formed number exponent",s_parseerrchar:"Unexpected character in formula",s_parseerrstring:"Improperly formed string", +s_parseerrspecialvalue:"Improperly formed special value",s_parseerrtwoops:"Error in formula (two operators inappropriately in a row)",s_parseerrmissingopenparen:"Missing open parenthesis in list with comma(s). ",s_parseerrcloseparennoopen:"Closing parenthesis without open parenthesis. ",s_parseerrmissingcloseparen:"Missing close parenthesis. ",s_parseerrmissingoperand:"Missing operand. ",s_parseerrerrorinformula:"Error in formula.",s_calcerrerrorvalueinformula:"Error value in formula",s_parseerrerrorinformulabadval:"Error in formula resulting in bad value", +s_formularangeresult:"Formula results in range value:",s_calcerrnumericnan:"Formula results in an bad numeric value",s_calcerrnumericoverflow:"Numeric overflow",s_sheetunavailable:"Sheet unavailable:",s_calcerrcellrefmissing:"Cell reference missing when expected.",s_calcerrsheetnamemissing:"Sheet name missing when expected.",s_circularnameref:"Circular name reference to name",s_calcerrunknownname:"Unknown name",s_calcerrincorrectargstofunction:"Incorrect arguments to function",s_sheetfuncunknownfunction:"Unknown function", +s_sheetfunclnarg:"LN argument must be greater than 0",s_sheetfunclog10arg:"LOG10 argument must be greater than 0",s_sheetfunclogsecondarg:"LOG second argument must be numeric greater than 0",s_sheetfunclogfirstarg:"LOG first argument must be greater than 0",s_sheetfuncroundsecondarg:"ROUND second argument must be numeric",s_sheetfuncddblife:"DDB life must be greater than 1",s_sheetfuncslnlife:"SLN life must be greater than 1",s_fdef_ABS:"Absolute value function. ",s_fdef_ACOS:"Trigonometric arccosine function. ", +s_fdef_AND:"True if all arguments are true. ",s_fdef_ASIN:"Trigonometric arcsine function. ",s_fdef_ATAN:"Trigonometric arctan function. ",s_fdef_ATAN2:"Trigonometric arc tangent function (result is in radians). ",s_fdef_AVERAGE:"Averages the values. ",s_fdef_CHOOSE:"Returns the value specified by the index. The values may be ranges of cells. ",s_fdef_COLUMNS:"Returns the number of columns in the range. ",s_fdef_COS:"Trigonometric cosine function (value is in radians). ",s_fdef_COUNT:"Counts the number of numeric values, not blank, text, or error. ", +s_fdef_COUNTA:"Counts the number of non-blank values. ",s_fdef_COUNTBLANK:'Counts the number of blank values. (Note: "" is not blank.) ',s_fdef_COUNTIF:'Counts the number of number of cells in the range that meet the criteria. The criteria may be a value ("x", 15, 1+3) or a test (>25). ',s_fdef_DATE:'Returns the appropriate date value given numbers for year, month, and day. For example: DATE(2006,2,1) for February 1, 2006. Note: In this program, day "1" is December 31, 1899 and the year 1900 is not a leap year. Some programs use January 1, 1900, as day "1" and treat 1900 as a leap year. In both cases, though, dates on or after March 1, 1900, are the same. ', s_fdef_DAVERAGE:"Averages the values in the specified field in records that meet the criteria. ",s_fdef_DAY:"Returns the day of month for a date value. ",s_fdef_DCOUNT:"Counts the number of numeric values, not blank, text, or error, in the specified field in records that meet the criteria. ",s_fdef_DCOUNTA:"Counts the number of non-blank values in the specified field in records that meet the criteria. ",s_fdef_DDB:"Returns the amount of depreciation at the given period of time (the default factor is 2 for double-declining balance). ", s_fdef_DEGREES:"Converts value in radians into degrees. ",s_fdef_DGET:"Returns the value of the specified field in the single record that meets the criteria. ",s_fdef_DMAX:"Returns the maximum of the numeric values in the specified field in records that meet the criteria. ",s_fdef_DMIN:"Returns the maximum of the numeric values in the specified field in records that meet the criteria. ",s_fdef_DPRODUCT:"Returns the result of multiplying the numeric values in the specified field in records that meet the criteria. ", s_fdef_DSTDEV:"Returns the sample standard deviation of the numeric values in the specified field in records that meet the criteria. ",s_fdef_DSTDEVP:"Returns the standard deviation of the numeric values in the specified field in records that meet the criteria. ",s_fdef_DSUM:"Returns the sum of the numeric values in the specified field in records that meet the criteria. ",s_fdef_DVAR:"Returns the sample variance of the numeric values in the specified field in records that meet the criteria. ",s_fdef_DVARP:"Returns the variance of the numeric values in the specified field in records that meet the criteria. ", @@ -50,10 +50,10 @@ s_fdef_TRIM:"Returns the text value with leading, trailing, and repeated spaces s_fdef_VAR:"Returns the sample variance of the numeric values. ",s_fdef_VARP:"Returns the variance of the numeric values. ",s_fdef_VLOOKUP:"Look for the matching value for the given value in the range and return the corresponding value in the cell specified by the column offset. If rangelookup is 1 (the default) and not 0, match if within numeric brackets (match>=value) instead of exact match. ",s_fdef_WEEKDAY:"Returns the day of week specified by the date value. If type is 1 (the default), Sunday is day and Saturday is day 7. If type is 2, Monday is day 1 and Sunday is day 7. If type is 3, Monday is day 0 and Sunday is day 6. ", s_fdef_YEAR:"Returns the year part of a date value. ",s_farg_v:"value",s_farg_vn:"value1, value2, ...",s_farg_xy:"valueX, valueY",s_farg_choose:"index, value1, value2, ...",s_farg_range:"range",s_farg_rangec:"range, criteria",s_farg_date:"year, month, day",s_farg_dfunc:"databaserange, fieldname, criteriarange",s_farg_ddb:"cost, salvage, lifetime, period [, factor]",s_farg_find:"string1, string2 [, start]",s_farg_fv:"rate, n, payment, [pv, [paytype]]",s_farg_hlookup:"value, range, row, [rangelookup]", s_farg_iffunc:"logical-expression, true-value, false-value",s_farg_index:"range, rownum, colnum",s_farg_irr:"range, [guess]",s_farg_tc:"text, count",s_farg_log:"value, base",s_farg_match:"value, range, [rangelookup]",s_farg_mid:"text, start, length",s_farg_nper:"rate, payment, pv, [fv, [paytype]]",s_farg_npv:"rate, value1, value2, ...",s_farg_pmt:"rate, n, pv, [fv, [paytype]]",s_farg_pv:"rate, n, payment, [fv, [paytype]]",s_farg_rate:"n, payment, pv, [fv, [paytype, [guess]]]",s_farg_replace:"text1, start, length, text2", -s_farg_vp:"value, [precision]",s_farg_valpre:"value, precision",s_farg_csl:"cost, salvage, lifetime",s_farg_cslp:"cost, salvage, lifetime, period",s_farg_subs:"text1, oldtext, newtext [, occurrence]",s_farg_sumif:"range1, criteria [, range2]",s_farg_hms:"hour, minute, second",s_farg_txt:"text",s_farg_vlookup:"value, range, col, [rangelookup]",s_farg_weekday:"date, [type]",s_farg_dt:"date",function_classlist:["all","stat","lookup","datetime","financial","test","math","text"],s_fclass_all:"All",s_fclass_stat:"Statistics", +s_farg_vp:"value, [precision]",s_farg_valpre:"value, precision",s_farg_csl:"cost, salvage, lifetime",s_farg_cslp:"cost, salvage, lifetime, period",s_farg_subs:"text1, oldtext, newtext [, occurrence]",s_farg_sumif:"range1, criteria [, range2]",s_farg_hms:"hour, minute, second",s_farg_txt:"text",s_farg_vlookup:"value, range, col, [rangelookup]",s_farg_weekday:"date, [type]",s_farg_dt:"date",function_classlist:"all,stat,lookup,datetime,financial,test,math,text".split(","),s_fclass_all:"All",s_fclass_stat:"Statistics", s_fclass_lookup:"Lookup",s_fclass_datetime:"Date & Time",s_fclass_financial:"Financial",s_fclass_test:"Test",s_fclass_math:"Math",s_fclass_text:"Text",lastone:null}; SocialCalc.ConstantsDefaultClasses={defaultComment:"",defaultCommentNoGrid:"",defaultHighlightTypeCursor:"",defaultHighlightTypeRange:"",defaultColname:"",defaultSelectedColname:"",defaultRowname:"",defaultSelectedRowname:"",defaultUpperLeft:"",defaultSkippedCell:"",defaultPaneDivider:"",cteGriddiv:"",defaultInputEcho:{classname:"",style:"filter:alpha(opacity=90);opacity:.9;"},TCmain:"",TCendcap:"",TCpaneslider:"",TClessbutton:"",TCmorebutton:"",TCscrollarea:"",TCthumb:"",TCPStrackingline:"",TCTDFSthumbstatus:"", -TDpopupElement:""};SocialCalc.ConstantsSetClasses=function(a){var c=SocialCalc.ConstantsDefaultClasses,b=SocialCalc.Constants,d,a=a||"";for(d in c)if(typeof c[d]=="string")b[d+"Class"]=a+(c[d]||d),b[d+"Style"]!==void 0&&(b[d+"Style"]="");else if(typeof c[d]=="object")b[d+"Class"]=a+(c[d].classname||d),b[d+"Style"]=c[d].style};SocialCalc||(SocialCalc={});SocialCalc.Callbacks={expand_wiki:null,expand_markup:function(a,c,b){return SocialCalc.default_expand_markup(a,c,b)},MakePageLink:null,NormalizeSheetName:null};SocialCalc.Cell=function(a){this.coord=a;this.datavalue="";this.datatype=null;this.formula="";this.valuetype="b"}; +TDpopupElement:""};SocialCalc.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)};SocialCalc||(SocialCalc={});SocialCalc.Callbacks={expand_wiki:null,expand_markup:function(a,c,b){return SocialCalc.default_expand_markup(a,c,b)},MakePageLink:null,NormalizeSheetName:null};SocialCalc.Cell=function(a){this.coord=a;this.datavalue="";this.datatype=null;this.formula="";this.valuetype="b"}; SocialCalc.CellProperties={coord:1,datavalue:1,datatype:1,formula:1,valuetype:1,errors:1,comment:1,bt:2,br:2,bb:2,bl:2,layout:2,font:2,color:2,bgcolor:2,cellformat:2,nontextvalueformat:2,textvalueformat:2,colspan:2,rowspan:2,cssc:2,csss:2,mod:2,displaystring:3,parseinfo:3,hcolspan:3,hrowspan:3}; SocialCalc.CellPropertiesTable={bt:"borderstyle",br:"borderstyle",bb:"borderstyle",bl:"borderstyle",layout:"layout",font:"font",color:"color",bgcolor:"color",cellformat:"cellformat",nontextvalueformat:"valueformat",textvalueformat:"valueformat"};SocialCalc.Sheet=function(){SocialCalc.ResetSheet(this);this.statuscallbackparams=this.statuscallback=null}; SocialCalc.ResetSheet=function(a){a.cells={};a.attribs={lastcol:1,lastrow:1,defaultlayout: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=!1}; @@ -66,99 +66,99 @@ d[g++]-0;break;case "hide":c.rowattribs.hide[j]=d[g++];break;default:throw k.s_p case "tvf":j.defaulttextvalueformat=d[g++]-0;break;case "ntvf":j.defaultnontextvalueformat=d[g++]-0;break;case "color":j.defaultcolor=d[g++]-0;break;case "bgcolor":j.defaultbgcolor=d[g++]-0;break;case "circularreferencecell":j.circularreferencecell=d[g++];break;case "recalc":j.recalc=d[g++];break;case "needsrecalc":j.needsrecalc=d[g++];break;default:g+=1}break;case "name":g=SocialCalc.decodeFromSave(d[1]).toUpperCase();c.names[g]={desc:SocialCalc.decodeFromSave(d[2])};c.names[g].definition=SocialCalc.decodeFromSave(d[3]); break;case "layout":d=b[e].match(/^layout\:(\d+)\:(.+)$/);c.layouts[d[1]-0]=d[2];c.layouthash[d[2]]=d[1]-0;break;case "font":c.fonts[d[1]-0]=d[2];c.fonthash[d[2]]=d[1]-0;break;case "color":c.colors[d[1]-0]=d[2];c.colorhash[d[2]]=d[1]-0;break;case "border":c.borderstyles[d[1]-0]=d[2];c.borderstylehash[d[2]]=d[1]-0;break;case "cellformat":g=SocialCalc.decodeFromSave(d[2]);c.cellformats[d[1]-0]=g;c.cellformathash[g]=d[1]-0;break;case "valueformat":g=SocialCalc.decodeFromSave(d[2]);c.valueformats[d[1]- 0]=g;c.valueformathash[g]=d[1]-0;break;case "version":break;case "copiedfrom":c.copiedfrom=d[1]+":"+d[2];break;case "clipboardrange":case "clipboard":break;case "":break;default:throw alert(k.s_pssUnknownLineType+" '"+d[0]+"'"),k.s_pssUnknownLineType+" '"+d[0]+"'";}}; -SocialCalc.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;a.charAt(0)=="n"?(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++]; -c.valuetype=a;c.datavalue=a.charAt(0)=="n"?SocialCalc.decodeFromSave(b[d++])-0:SocialCalc.decodeFromSave(b[d++]);c.formula=SocialCalc.decodeFromSave(b[d++]);c.datatype="f";break;case "vtc":a=b[d++];c.valuetype=a;c.datavalue=a.charAt(0)=="n"?SocialCalc.decodeFromSave(b[d++])-0:SocialCalc.decodeFromSave(b[d++]);c.formula=SocialCalc.decodeFromSave(b[d++]);c.datatype="c";break;case "e":c.errors=SocialCalc.decodeFromSave(b[d++]);break;case "b":c.bt=b[d++]-0;c.br=b[d++]-0;c.bb=b[d++]-0;c.bl=b[d++]-0;break; +SocialCalc.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++]; +c.valuetype=a;c.datavalue="n"==a.charAt(0)?SocialCalc.decodeFromSave(b[d++])-0:SocialCalc.decodeFromSave(b[d++]);c.formula=SocialCalc.decodeFromSave(b[d++]);c.datatype="f";break;case "vtc":a=b[d++];c.valuetype=a;c.datavalue="n"==a.charAt(0)?SocialCalc.decodeFromSave(b[d++])-0:SocialCalc.decodeFromSave(b[d++]);c.formula=SocialCalc.decodeFromSave(b[d++]);c.datatype="c";break;case "e":c.errors=SocialCalc.decodeFromSave(b[d++]);break;case "b":c.bt=b[d++]-0;c.br=b[d++]-0;c.bb=b[d++]-0;c.bl=b[d++]-0;break; case "l":c.layout=b[d++]-0;break;case "f":c.font=b[d++]-0;break;case "c":c.color=b[d++]-0;break;case "bg":c.bgcolor=b[d++]-0;break;case "cf":c.cellformat=b[d++]-0;break;case "ntvf":c.nontextvalueformat=b[d++]-0;break;case "tvf":c.textvalueformat=b[d++]-0;break;case "colspan":c.colspan=b[d++]-0;break;case "rowspan":c.rowspan=b[d++]-0;break;case "cssc":c.cssc=b[d++];break;case "csss":c.csss=SocialCalc.decodeFromSave(b[d++]);break;case "mod":d+=1;break;case "comment":c.comment=SocialCalc.decodeFromSave(b[d++]); -break;default:throw SocialCalc.Constants.s_cfspUnknownCellType+" '"+a+"'";}};SocialCalc.sheetfields=["defaultrowheight","defaultcolwidth","circularreferencecell","recalc","needsrecalc"];SocialCalc.sheetfieldsshort=["h","w","circularreferencecell","recalc","needsrecalc"];SocialCalc.sheetfieldsxlat=["defaulttextformat","defaultnontextformat","defaulttextvalueformat","defaultnontextvalueformat","defaultcolor","defaultbgcolor","defaultfont","defaultlayout"]; -SocialCalc.sheetfieldsxlatshort=["tf","ntf","tvf","ntvf","color","bgcolor","font","layout"];SocialCalc.sheetfieldsxlatxlt=["cellformat","cellformat","valueformat","valueformat","color","color","font","layout"]; -SocialCalc.CreateSheetSave=function(a,c,b){var d,e,g,h,j,k=[];a.CanonicalizeSheet(b||SocialCalc.Constants.doCanonicalizeSheet);var m=a.xlt;e=c?SocialCalc.ParseRange(c):{cr1:{row:1,col:1},cr2:{row:m.maxrow,col:m.maxcol}};b=e.cr1;e=e.cr2;k.push("version:1.5");for(g=b.row;g<=e.row;g++)for(h=b.col;h<=e.col;h++)if(j=SocialCalc.crToCoord(h,g),d=a.cells[j])d=a.CellToString(d),d.length!=0&&(d="cell:"+j+d,k.push(d));for(h=1;h<=m.maxcol;h++)j=SocialCalc.rcColname(h),a.colattribs.width[j]&&k.push("col:"+j+":w:"+ +break;default:throw SocialCalc.Constants.s_cfspUnknownCellType+" '"+a+"'";}};SocialCalc.sheetfields=["defaultrowheight","defaultcolwidth","circularreferencecell","recalc","needsrecalc"];SocialCalc.sheetfieldsshort=["h","w","circularreferencecell","recalc","needsrecalc"];SocialCalc.sheetfieldsxlat="defaulttextformat,defaultnontextformat,defaulttextvalueformat,defaultnontextvalueformat,defaultcolor,defaultbgcolor,defaultfont,defaultlayout".split(",");SocialCalc.sheetfieldsxlatshort="tf,ntf,tvf,ntvf,color,bgcolor,font,layout".split(","); +SocialCalc.sheetfieldsxlatxlt="cellformat,cellformat,valueformat,valueformat,color,color,font,layout".split(","); +SocialCalc.CreateSheetSave=function(a,c,b){var d,e,g,h,j,k=[];a.CanonicalizeSheet(b||SocialCalc.Constants.doCanonicalizeSheet);var m=a.xlt;e=c?SocialCalc.ParseRange(c):{cr1:{row:1,col:1},cr2:{row:m.maxrow,col:m.maxcol}};b=e.cr1;e=e.cr2;k.push("version:1.5");for(g=b.row;g<=e.row;g++)for(h=b.col;h<=e.col;h++)if(j=SocialCalc.crToCoord(h,g),d=a.cells[j])d=a.CellToString(d),0!=d.length&&(d="cell:"+j+d,k.push(d));for(h=1;h<=m.maxcol;h++)j=SocialCalc.rcColname(h),a.colattribs.width[j]&&k.push("col:"+j+":w:"+ a.colattribs.width[j]),a.colattribs.hide[j]&&k.push("col:"+j+":hide:"+a.colattribs.hide[j]);for(g=1;g<=m.maxrow;g++)a.rowattribs.height[g]&&k.push("row:"+g+":h:"+a.rowattribs.height[g]),a.rowattribs.hide[g]&&k.push("row:"+g+":hide:"+a.rowattribs.hide[g]);d="sheet:c:"+m.maxcol+":r:"+m.maxrow;for(g=0;gm)m=e.row;if(e.col>n)n=e.col}for(k=0;km&&(m=e);h={hide:1,width:1};for(b in h)for(d in a.colattribs[b])if(e=SocialCalc.coordToCr(d+"1"),e.col>n)n=e.col;for(g=0;gm&&(m=e.row),e.col>n)n=e.col;for(k=0;km&&(m=e);h={hide:1,width:1};for(b in h)for(d in a.colattribs[b])e=SocialCalc.coordToCr(d+"1"),e.col>n&&(n=e.col);for(g=0;gb;b++)d="trbl".charAt(b),e="b"+d,h(e),k(e,m[e]?a.borderstyles[m[e]]:""),h(e+"thickness"),h(e+"style"),h(e+"color"),m[e]&&(d=a.borderstyles[m[e]].match(/(\S+)\s+(\S+)\s+(\S.+)/),k(e+"thickness",d[1]),k(e+"style",d[2]),k(e+"color",d[3]));j(["cssc","csss","mod"]);k("cssc",m.cssc||"");k("csss",m.csss||"");k("mod",m.mod||"n");return g}; +SocialCalc.EncodeSheetAttributes=function(a){var c=a.attribs,b={},d=function(a){b[a]={def:!0,val:""}},e=function(a){for(var c=0;ce;e++)g="trbl".charAt(e),g="b"+g,k(g,a.borderstyles[h[g]],g);k("cssc",h.cssc,"cssc");k("csss",h.csss,"csss");if(b.mod&&(e=b.mod.def?"n":b.mod.val,e!=(h.mod||"n")))"n"==e&&(e=""),n("mod "+e);return j?m:null}; SocialCalc.DecodeSheetAttributes=function(a,c){var b,d=a.attribs,e=!1,g=function(a,b,d){c[a]&&(a=c[a].def?"":c[a].val,a!=(b||"")&&j(d+" "+a))},h="",j=function(a){h&&(h+="\n");h+="set sheet "+a;e=!0};g("colwidth",d.defaultcolwidth,"defaultcolwidth");g("rowheight",d.defaultrowheight,"defaultrowheight");g("textalignhoriz",a.cellformats[d.defaulttextformat],"defaulttextformat");g("numberalignhoriz",a.cellformats[d.defaultnontextformat],"defaultnontextformat");b=!c.alignvert.def||!c.padtop.def||!c.padright.def|| !c.padbottom.def||!c.padleft.def?"padding:"+(c.padtop.def?"* ":c.padtop.val+" ")+(c.padright.def?"* ":c.padright.val+" ")+(c.padbottom.def?"* ":c.padbottom.val+" ")+(c.padleft.def?"*":c.padleft.val)+";vertical-align:"+(c.alignvert.def?"*;":c.alignvert.val+";"):"";b!=(a.layouts[d.defaultlayout]||"")&&j("defaultlayout "+b);b=!c.fontlook.def||!c.fontsize.def||!c.fontfamily.def?(c.fontlook.def?"* ":c.fontlook.val+" ")+(c.fontsize.def?"* ":c.fontsize.val+" ")+(c.fontfamily.def?"*":c.fontfamily.val):""; b!=(a.fonts[d.defaultfont]||"")&&j("defaultfont "+b);g("textcolor",a.colors[d.defaultcolor],"defaultcolor");g("bgcolor",a.colors[d.defaultbgcolor],"defaultbgcolor");g("numberformat",a.valueformats[d.defaultnontextvalueformat],"defaultnontextvalueformat");g("textformat",a.valueformats[d.defaulttextvalueformat],"defaulttextvalueformat");g("recalc",a.attribs.recalc,"recalc");return e?h:null}; SocialCalc.SheetCommandInfo={sheetobj:null,parseobj:null,timerobj:null,firsttimerdelay:50,timerdelay:1,maxtimeslice:100,saveundo:!1,CmdExtensionCallbacks:{},cmdextensionbusy:""}; -SocialCalc.ScheduleSheetCommands=function(a,c,b,d){SocialCalc.Callbacks.broadcast&&!d&&c!="redisplay"&&c!="set sheet defaulttextvalueformat text-wiki"&&SocialCalc.Callbacks.broadcast("execute",{cmdstr:c,saveundo:b});d=SocialCalc.SheetCommandInfo;d.sheetobj=a;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(SocialCalc.SheetCommandsTimerRoutine, +SocialCalc.ScheduleSheetCommands=function(a,c,b,d){SocialCalc.Callbacks.broadcast&&!d&&"redisplay"!=c&&"set sheet defaulttextvalueformat text-wiki"!=c&&SocialCalc.Callbacks.broadcast("execute",{cmdstr:c,saveundo:b});d=SocialCalc.SheetCommandInfo;d.sheetobj=a;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(SocialCalc.SheetCommandsTimerRoutine, d.firsttimerdelay)}; -SocialCalc.SheetCommandsTimerRoutine=function(){var a,c=SocialCalc.SheetCommandInfo,b=new Date;for(c.timerobj=null;!c.parseobj.EOF();){(a=SocialCalc.ExecuteSheetCommand(c.sheetobj,c.parseobj,c.saveundo))&&alert(a);c.parseobj.NextLine();if(c.cmdextensionbusy.length>0){c.sheetobj.statuscallback&&c.sheetobj.statuscallback(c,"cmdextension",c.cmdextensionbusy,c.sheetobj.statuscallbackparams);return}if(new Date-b>=c.maxtimeslice){c.timerobj=window.setTimeout(SocialCalc.SheetCommandsTimerRoutine,c.timerdelay); +SocialCalc.SheetCommandsTimerRoutine=function(){var a,c=SocialCalc.SheetCommandInfo,b=new Date;for(c.timerobj=null;!c.parseobj.EOF();){(a=SocialCalc.ExecuteSheetCommand(c.sheetobj,c.parseobj,c.saveundo))&&alert(a);c.parseobj.NextLine();if(0=c.maxtimeslice){c.timerobj=window.setTimeout(SocialCalc.SheetCommandsTimerRoutine,c.timerdelay); return}}c.sheetobj.statuscallback&&c.sheetobj.statuscallback(c,"cmdend","",c.sheetobj.statuscallbackparams)};SocialCalc.ResumeFromCmdExtension=function(){SocialCalc.SheetCommandInfo.cmdextensionbusy="";SocialCalc.SheetCommandsTimerRoutine()}; -SocialCalc.ExecuteSheetCommand=function(a,c,b){var d,e,g,h,j,k,m,n,s,q,p,r,u,t,w,x,y,z,B,A,E,J,G,I,v,D,C=a.attribs;v=a.changes;A=SocialCalc.CellProperties;w=SocialCalc.Constants;q=function(){var a=SocialCalc.ParseRange(h);n=a.cr1;s=a.cr2;if(s.col>C.lastcol)C.lastcol=s.col;if(s.row>C.lastrow)C.lastrow=s.row};m="";d=c.RestOfStringNoMove();b&&a.changes.AddDo(d);e=c.NextToken();switch(e){case "set":h=c.NextToken();j=c.NextToken();g=c.RestOfString();c="set "+h+" "+j;if(h=="sheet")switch(a.renderneeded= -!0,j){case "defaultcolwidth":b&&v.AddUndo(c,C[j]);C[j]=g;break;case "defaultcolor":case "defaultbgcolor":b&&v.AddUndo(c,a.GetStyleString("color",C[j]));C[j]=a.GetStyleNum("color",g);break;case "defaultlayout":b&&v.AddUndo(c,a.GetStyleString("layout",C[j]));C[j]=a.GetStyleNum("layout",g);break;case "defaultfont":b&&v.AddUndo(c,a.GetStyleString("font",C[j]));g=="* * *"&&(g="");C[j]=a.GetStyleNum("font",g);break;case "defaulttextformat":case "defaultnontextformat":b&&v.AddUndo(c,a.GetStyleString("cellformat", -C[j]));C[j]=a.GetStyleNum("cellformat",g);break;case "defaulttextvalueformat":case "defaultnontextvalueformat":b&&v.AddUndo(c,a.GetStyleString("valueformat",C[j]));C[j]=a.GetStyleNum("valueformat",g);for(k in a.cells)delete a.cells[k].displaystring;break;case "lastcol":case "lastrow":b&&v.AddUndo(c,C[j]-0);a=g-0;typeof a=="number"&&(C[j]=a>0?a:1);break;case "recalc":b&&v.AddUndo(c,C[j]);g=="off"?C.recalc=g:delete C.recalc;break;default:m=w.s_escUnknownSheetCmd+d}else if(/(^[A-Z])([A-Z])?(:[A-Z][A-Z]?){0,1}$/i.test(h)){a.renderneeded= -!0;h=h.toUpperCase();k=h.indexOf(":");k>=0?(n=SocialCalc.coordToCr(h.substring(0,k)+"1"),s=SocialCalc.coordToCr(h.substring(k+1)+"1")):s=n=SocialCalc.coordToCr(h+"1");for(c=n.col;c<=s.col;c++)j=="width"&&(k=SocialCalc.rcColname(c),b&&v.AddUndo("set "+k+" width",a.colattribs.width[k]),g.length>0?a.colattribs.width[k]=g:delete a.colattribs.width[k])}else if(/([a-z]){0,1}(\d+)/i.test(h)){q();n.row!=s.row||n.col!=s.col||a.celldisplayneeded||a.renderneeded?(a.renderneeded=!0,a.celldisplayneeded=""):a.celldisplayneeded= -SocialCalc.crToCoord(n.col,n.row);for(q=n.row;q<=s.row;q++)for(c=n.col;c<=s.col;c++)k=SocialCalc.crToCoord(c,q),p=a.GetAssuredCell(k),b&&v.AddUndo("set "+k+" all",a.CellToString(p)),j=="value"?(k=g.indexOf(" "),p.datavalue=g.substring(k+1)-0,delete p.errors,p.datatype="v",p.valuetype=g.substring(0,k),delete p.displaystring,delete p.parseinfo,C.needsrecalc="yes"):j=="text"?(k=g.indexOf(" "),p.datavalue=SocialCalc.decodeFromSave(g.substring(k+1)),delete p.errors,p.datatype="t",p.valuetype=g.substring(0, -k),delete p.displaystring,delete p.parseinfo,C.needsrecalc="yes"):j=="formula"?(p.datavalue=0,delete p.errors,p.datatype="f",p.valuetype="e#N/A",p.formula=g,delete p.displaystring,delete p.parseinfo,C.needsrecalc="yes"):j=="constant"?(k=g.indexOf(" "),e=g.substring(k+1).indexOf(" "),p.datavalue=g.substring(k+1,k+1+e)-0,p.valuetype=g.substring(0,k),p.valuetype.charAt(0)=="e"?p.errors=p.valuetype.substring(1):delete p.errors,p.datatype="c",p.formula=g.substring(k+e+2),delete p.displaystring,delete p.parseinfo, -C.needsrecalc="yes"):j=="empty"?(p.datavalue="",delete p.errors,p.datatype=null,p.formula="",p.valuetype="b",delete p.displaystring,delete p.parseinfo,C.needsrecalc="yes"):j=="all"?(g.length>0?(p=new SocialCalc.Cell(k),a.CellFromStringParts(p,g.split(":"),1),a.cells[k]=p):delete a.cells[k],C.needsrecalc="yes"):/^b[trbl]$/.test(j)?(p[j]=a.GetStyleNum("borderstyle",g),a.renderneeded=!0):j=="color"||j=="bgcolor"?p[j]=a.GetStyleNum("color",g):j=="layout"||j=="cellformat"?p[j]=a.GetStyleNum(j,g):j=="font"? -(g=="* * *"&&(g=""),p[j]=a.GetStyleNum("font",g)):j=="textvalueformat"||j=="nontextvalueformat"?(p[j]=a.GetStyleNum("valueformat",g),delete p.displaystring):j=="cssc"?(g=g.replace(/[^a-zA-Z0-9\-]/g,""),p.cssc=g):j=="csss"?(g=g.replace(/\n/g,""),p.csss=g):j=="mod"?(g=g.replace(/[^yY]/g,"").toLowerCase(),p.mod=g):j=="comment"?p.comment=SocialCalc.decodeFromSave(g):m=w.s_escUnknownSetCoordCmd+d}break;case "merge":a.renderneeded=!0;h=c.NextToken();g=c.RestOfString();q();p=a.GetAssuredCell(n.coord);b&& -v.AddUndo("unmerge "+n.coord);s.col>n.col?p.colspan=s.col-n.col+1:delete p.colspan;s.row>n.row?p.rowspan=s.row-n.row+1:delete p.rowspan;a.changedrendervalues=!0;break;case "unmerge":a.renderneeded=!0;h=c.NextToken();g=c.RestOfString();q();p=a.GetAssuredCell(n.coord);b&&v.AddUndo("merge "+n.coord+":"+SocialCalc.crToCoord(n.col+(p.colspan||1)-1,n.row+(p.rowspan||1)-1));delete p.colspan;delete p.rowspan;a.changedrendervalues=!0;break;case "erase":case "cut":a.renderneeded=!0;a.changedrendervalues=!0; -h=c.NextToken();g=c.RestOfString();q();b&&v.AddUndo("changedrendervalues");if(e=="cut")b&&v.AddUndo("loadclipboard",SocialCalc.encodeForSave(SocialCalc.Clipboard.clipboard)),SocialCalc.Clipboard.clipboard=SocialCalc.CreateSheetSave(a,h);for(q=n.row;q<=s.row;q++)for(c=n.col;c<=s.col;c++)if(k=SocialCalc.crToCoord(c,q),p=a.GetAssuredCell(k),b&&v.AddUndo("set "+k+" all",a.CellToString(p)),g=="all")delete a.cells[k];else if(g=="formulas")p.datavalue="",p.datatype=null,p.formula="",p.valuetype="b",delete p.errors, -delete p.displaystring,delete p.parseinfo,p.comment&&delete p.comment;else if(g=="formats"){j=new SocialCalc.Cell(k);j.datavalue=p.datavalue;j.datatype=p.datatype;j.formula=p.formula;j.valuetype=p.valuetype;if(p.comment)j.comment=p.comment;a.cells[k]=j}C.needsrecalc="yes";break;case "fillright":case "filldown":a.renderneeded=!0;a.changedrendervalues=!0;b&&v.AddUndo("changedrendervalues");h=c.NextToken();g=c.RestOfString();q();e=="fillright"?(e=!0,r=n.row,u=n.col+1):(e=!1,r=n.row+1,u=n.col);for(q= -r;q<=s.row;q++)for(c=u;c<=s.col;c++){k=SocialCalc.crToCoord(c,q);p=a.GetAssuredCell(k);b&&v.AddUndo("set "+k+" all",a.CellToString(p));e?(t=SocialCalc.crToCoord(n.col,q),w=c-u+1,d=0):(t=SocialCalc.crToCoord(c,n.row),w=0,d=q-r+1);x=a.GetAssuredCell(t);if(g=="all"||g=="formats")for(j in A)A[j]!=1&&(typeof x[j]===void 0||A[j]==3?delete p[j]:p[j]=x[j]);if(g=="all"||g=="formulas")p.datavalue=x.datavalue,p.datatype=x.datatype,p.valuetype=x.valuetype,p.formula=p.datatype=="f"?SocialCalc.OffsetFormulaCoords(x.formula, -w,d):x.formula,delete p.parseinfo,p.errors=x.errors;delete p.displaystring}C.needsrecalc="yes";break;case "copy":h=c.NextToken();g=c.RestOfString();b&&v.AddUndo("loadclipboard",SocialCalc.encodeForSave(SocialCalc.Clipboard.clipboard));SocialCalc.Clipboard.clipboard=SocialCalc.CreateSheetSave(a,h);break;case "loadclipboard":g=c.RestOfString();b&&v.AddUndo("loadclipboard",SocialCalc.encodeForSave(SocialCalc.Clipboard.clipboard));SocialCalc.Clipboard.clipboard=SocialCalc.decodeFromSave(g);break;case "clearclipboard":b&& -v.AddUndo("loadclipboard",SocialCalc.encodeForSave(SocialCalc.Clipboard.clipboard));SocialCalc.Clipboard.clipboard="";break;case "paste":a.renderneeded=!0;a.changedrendervalues=!0;b&&v.AddUndo("changedrendervalues");h=c.NextToken();g=c.RestOfString();q();if(!SocialCalc.Clipboard.clipboard)break;e=new SocialCalc.Sheet;e.ParseSheetSave(SocialCalc.Clipboard.clipboard);q=SocialCalc.ParseRange(e.copiedfrom);w=n.col-q.cr1.col;d=n.row-q.cr1.row;y=q.cr2.col-q.cr1.col+1;z=q.cr2.row-q.cr1.row+1;if(n.col+y- -1>C.lastcol)C.lastcol=n.col+y-1;if(n.row+z-1>C.lastrow)C.lastrow=n.row+z-1;for(q=n.row;qe?1:de?1:de?1:dc?1:a= -u;q--)for(c=C.lastcol;c>=g;c--)t=SocialCalc.crToCoord(c,q),k=SocialCalc.crToCoord(c+w,q+d),a.cells[t]?a.cells[k]=a.cells[t]:delete a.cells[k];for(q=p;q<=y;q++)for(c=r;c<=B;c++)for(j in k=SocialCalc.crToCoord(c,q),p=new SocialCalc.Cell(k),a.cells[k]=p,t=SocialCalc.crToCoord(c-w,q-d),x=a.GetAssuredCell(t),A)A[j]==2&&(p[j]=x[j]);for(k in a.cells){if((p=a.cells[k])&&p.datatype=="f")p.formula=SocialCalc.AdjustFormulaCoords(p.formula,n.col,w,n.row,d);p&&delete p.parseinfo}for(D in a.names)if(a.names[D])c= -a.names[D].definition,k="",c.charAt(0)=="="&&(k="=",c=c.substring(1)),a.names[D].definition=k+SocialCalc.AdjustFormulaCoords(c,n.col,w,n.row,d);for(q=C.lastrow;q>=u&&e=="insertrow";q--)for(j in b=q+d,a.rowattribs)k=a.rowattribs[j][q],a.rowattribs[j][b]!=k&&(k?a.rowattribs[j][b]=k:delete a.rowattribs[j][b]);for(c=C.lastcol;c>=g&&e=="insertcol";c--)for(j in q=SocialCalc.rcColname(c),b=SocialCalc.rcColname(c+w),a.colattribs)k=a.colattribs[j][q],a.colattribs[j][b]!=k&&(k?a.colattribs[j][b]=k:delete a.colattribs[j][b]); -C.lastcol+=w;C.lastrow+=d;C.needsrecalc="yes";break;case "deletecol":case "deleterow":a.renderneeded=!0;a.changedrendervalues=!0;h=c.NextToken();g=c.RestOfString();g=C.lastcol;A=C.lastrow;q();e=="deletecol"?(w=n.col-s.col-1,d=0,u=s.col+1,r=1):(w=0,d=n.row-s.row-1,u=1,r=s.row+1);for(q=r;q<=A-d;q++)for(c=u;c<=g-w;c++){k=SocialCalc.crToCoord(c+w,q+d);if(b&&(qs.col)?H.cols.row)?H.rowC.lastcol)C.lastcol=H.col+y-1;if(H.row+z-1>C.lastrow)C.lastrow=H.row+z-1;for(q=n.row;q=0;c--)d&&(d+="\n"),d+=b.undo[c];a.changes.Undo();a.ScheduleSheetCommands(d,!1)};SocialCalc.SheetRedo=function(a){var c,b;if(a.changes.Redo()){c=a.changes.TOS();var d="";for(b=0;c&&b=0?'"'+d.replace(/"/, -'""')+'"':'"'+d+'"':e==m?s[d]||d:d;return j}; -SocialCalc.AdjustFormulaCoords=function(a,c,b,d,e){var g,h,j="",k=!1,m=SocialCalc.Formula;if(!m)return"Need SocialCalc.Formula";var n=m.TokenType,s=n.op,q=n.string,n=n.coord,m=m.TokenOpExpansion;parseinfo=SocialCalc.Formula.ParseFormulaIntoTokens(a);for(h=0;h=c&&cr.col=d&&cr.row=c&&(cr.col+= -b),cr.row>=d&&(cr.row+=e));g=a.charAt(0)=="$"?"$"+SocialCalc.rcColname(cr.col):SocialCalc.rcColname(cr.col);g+=a.indexOf("$",1)!=-1?"$"+cr.row:cr.row;if(cr.row<1||cr.col<1)g="#REF!";a=g}else g==q&&(a=a.indexOf('"')>=0?'"'+a.replace(/"/,'""')+'"':'"'+a+'"');j+=a}return j}; -SocialCalc.ReplaceFormulaCoords=function(a,c){var b,d,e,g="",h=!1;d=SocialCalc.Formula;if(!d)return"Need SocialCalc.Formula";var j=d.TokenType,k=j.op,m=j.string,j=j.coord,n=d.TokenOpExpansion;parseinfo=SocialCalc.Formula.ParseFormulaIntoTokens(a);for(e=0;e=0?'"'+d.replace(/"/,'""')+'"':'"'+d+'"'),g+=d;return g};SocialCalc.RecalcInfo={sheet:null,currentState:0,state:{start_calc:1,order:2,calc:3,start_wait:4,done_wait:5},recalctimer:null,maxtimeslice:100,timeslicedelay:1,starttime:0,LoadSheet:function(){return!1}}; +SocialCalc.ExecuteSheetCommand=function(a,c,b){var d,e,g,h,j,k,m,n,r,q,p,t,s,u,v,x,w,y,A,B,E,H,J,I,z,C,D=a.attribs;C=a.changes;E=SocialCalc.CellProperties;v=SocialCalc.Constants;q=function(){var a=SocialCalc.ParseRange(h);n=a.cr1;r=a.cr2;r.col>D.lastcol&&(D.lastcol=r.col);r.row>D.lastrow&&(D.lastrow=r.row)};m="";d=c.RestOfStringNoMove();b&&a.changes.AddDo(d);e=c.NextToken();switch(e){case "set":h=c.NextToken();j=c.NextToken();g=c.RestOfString();c="set "+h+" "+j;if("sheet"==h)switch(a.renderneeded= +!0,j){case "defaultcolwidth":b&&C.AddUndo(c,D[j]);D[j]=g;break;case "defaultcolor":case "defaultbgcolor":b&&C.AddUndo(c,a.GetStyleString("color",D[j]));D[j]=a.GetStyleNum("color",g);break;case "defaultlayout":b&&C.AddUndo(c,a.GetStyleString("layout",D[j]));D[j]=a.GetStyleNum("layout",g);break;case "defaultfont":b&&C.AddUndo(c,a.GetStyleString("font",D[j]));"* * *"==g&&(g="");D[j]=a.GetStyleNum("font",g);break;case "defaulttextformat":case "defaultnontextformat":b&&C.AddUndo(c,a.GetStyleString("cellformat", +D[j]));D[j]=a.GetStyleNum("cellformat",g);break;case "defaulttextvalueformat":case "defaultnontextvalueformat":b&&C.AddUndo(c,a.GetStyleString("valueformat",D[j]));D[j]=a.GetStyleNum("valueformat",g);for(k in a.cells)delete a.cells[k].displaystring;break;case "lastcol":case "lastrow":b&&C.AddUndo(c,D[j]-0);a=g-0;"number"==typeof a&&(D[j]=0n.col?p.colspan=r.col-n.col+1:delete p.colspan;r.row>n.row?p.rowspan=r.row-n.row+1:delete p.rowspan;a.changedrendervalues=!0;break;case "unmerge":a.renderneeded=!0;h=c.NextToken();g=c.RestOfString();q();p=a.GetAssuredCell(n.coord);b&&C.AddUndo("merge "+n.coord+":"+SocialCalc.crToCoord(n.col+(p.colspan||1)-1,n.row+(p.rowspan||1)-1));delete p.colspan;delete p.rowspan;a.changedrendervalues=!0;break;case "erase":case "cut":a.renderneeded=!0;a.changedrendervalues= +!0;h=c.NextToken();g=c.RestOfString();q();b&&C.AddUndo("changedrendervalues");"cut"==e&&(b&&C.AddUndo("loadclipboard",SocialCalc.encodeForSave(SocialCalc.Clipboard.clipboard)),SocialCalc.Clipboard.clipboard=SocialCalc.CreateSheetSave(a,h));for(q=n.row;q<=r.row;q++)for(c=n.col;c<=r.col;c++)k=SocialCalc.crToCoord(c,q),p=a.GetAssuredCell(k),b&&C.AddUndo("set "+k+" all",a.CellToString(p)),"all"==g?delete a.cells[k]:"formulas"==g?(p.datavalue="",p.datatype=null,p.formula="",p.valuetype="b",delete p.errors, +delete p.displaystring,delete p.parseinfo,p.comment&&delete p.comment):"formats"==g&&(j=new SocialCalc.Cell(k),j.datavalue=p.datavalue,j.datatype=p.datatype,j.formula=p.formula,j.valuetype=p.valuetype,p.comment&&(j.comment=p.comment),a.cells[k]=j);D.needsrecalc="yes";break;case "fillright":case "filldown":a.renderneeded=!0;a.changedrendervalues=!0;b&&C.AddUndo("changedrendervalues");h=c.NextToken();g=c.RestOfString();q();"fillright"==e?(e=!0,t=n.row,s=n.col+1):(e=!1,t=n.row+1,s=n.col);for(q=t;q<= +r.row;q++)for(c=s;c<=r.col;c++){k=SocialCalc.crToCoord(c,q);p=a.GetAssuredCell(k);b&&C.AddUndo("set "+k+" all",a.CellToString(p));e?(u=SocialCalc.crToCoord(n.col,q),v=c-s+1,d=0):(u=SocialCalc.crToCoord(c,n.row),v=0,d=q-t+1);x=a.GetAssuredCell(u);if("all"==g||"formats"==g)for(j in E)1!=E[j]&&(void 0===typeof x[j]||3==E[j]?delete p[j]:p[j]=x[j]);if("all"==g||"formulas"==g)p.datavalue=x.datavalue,p.datatype=x.datatype,p.valuetype=x.valuetype,p.formula="f"==p.datatype?SocialCalc.OffsetFormulaCoords(x.formula, +v,d):x.formula,delete p.parseinfo,p.errors=x.errors;delete p.displaystring}D.needsrecalc="yes";break;case "copy":h=c.NextToken();g=c.RestOfString();b&&C.AddUndo("loadclipboard",SocialCalc.encodeForSave(SocialCalc.Clipboard.clipboard));SocialCalc.Clipboard.clipboard=SocialCalc.CreateSheetSave(a,h);break;case "loadclipboard":g=c.RestOfString();b&&C.AddUndo("loadclipboard",SocialCalc.encodeForSave(SocialCalc.Clipboard.clipboard));SocialCalc.Clipboard.clipboard=SocialCalc.decodeFromSave(g);break;case "clearclipboard":b&& +C.AddUndo("loadclipboard",SocialCalc.encodeForSave(SocialCalc.Clipboard.clipboard));SocialCalc.Clipboard.clipboard="";break;case "paste":a.renderneeded=!0;a.changedrendervalues=!0;b&&C.AddUndo("changedrendervalues");h=c.NextToken();g=c.RestOfString();q();if(!SocialCalc.Clipboard.clipboard)break;e=new SocialCalc.Sheet;e.ParseSheetSave(SocialCalc.Clipboard.clipboard);w=SocialCalc.ParseRange(e.copiedfrom);v=n.col-w.cr1.col;d=n.row-w.cr1.row;y=Math.max(r.col-n.col+1,w.cr2.col-w.cr1.col+1);A=Math.max(r.row- +n.row+1,w.cr2.row-w.cr1.row+1);n.col+y-1>D.lastcol&&(D.lastcol=n.col+y-1);n.row+A-1>D.lastrow&&(D.lastrow=n.row+A-1);for(q=n.row;q=v;v++)d[v]=c.NextToken(),H[v]=c.NextToken(),d[v]&&(J=v);e={};j=[];I=[];z=[];for(q=n.row;q<=r.row;q++){for(c=n.col;c<=r.col;c++)k=SocialCalc.crToCoord(c,q),(p=a.cells[k])?(e[k]=a.CellToString(p),b&&C.AddUndo("set "+k+" all",e[k])):b&&C.AddUndo("set "+k+" all");j.push(j.length);I.push([]);z.push([]);slast=z.length-1;for(v=0;v<=J;v++)k=d[v]+q,p=a.GetAssuredCell(k),k=p.datavalue,c=p.valuetype.charAt(0)||"b","t"==c&&(k=k.toLowerCase()),I[slast].push(k),z[slast].push(c)}j.sort(function(a, +c){var b,d,e,g,h;for(b=0;b<=J;b++)if("up"==H[b]?(d=a,e=c):(d=c,e=a),g=z[d][b],tb=z[e][b],"t"==g?"t"==tb?(d=I[d][b],e=I[e][b],h=d>e?1:de?1:de?1:dc?1:a=s;q--)for(c=D.lastcol;c>=g;c--)u=SocialCalc.crToCoord(c,q),k=SocialCalc.crToCoord(c+v,q+d),a.cells[u]?a.cells[k]=a.cells[u]:delete a.cells[k];for(q=p;q<=y;q++)for(c=t;c<=B;c++)for(j in k=SocialCalc.crToCoord(c,q),p=new SocialCalc.Cell(k),a.cells[k]=p,u=SocialCalc.crToCoord(c-v,q-d),x=a.GetAssuredCell(u),E)2==E[j]&&(p[j]=x[j]);for(k in a.cells){if((p=a.cells[k])&&"f"==p.datatype)p.formula= +SocialCalc.AdjustFormulaCoords(p.formula,n.col,v,n.row,d);p&&delete p.parseinfo}for(w in a.names)a.names[w]&&(c=a.names[w].definition,k="","="==c.charAt(0)&&(k="=",c=c.substring(1)),a.names[w].definition=k+SocialCalc.AdjustFormulaCoords(c,n.col,v,n.row,d));for(q=D.lastrow;q>=s&&"insertrow"==e;q--)for(j in b=q+d,a.rowattribs)k=a.rowattribs[j][q],a.rowattribs[j][b]!=k&&(k?a.rowattribs[j][b]=k:delete a.rowattribs[j][b]);for(c=D.lastcol;c>=g&&"insertcol"==e;c--)for(j in q=SocialCalc.rcColname(c),b=SocialCalc.rcColname(c+ +v),a.colattribs)k=a.colattribs[j][q],a.colattribs[j][b]!=k&&(k?a.colattribs[j][b]=k:delete a.colattribs[j][b]);D.lastcol+=v;D.lastrow+=d;D.needsrecalc="yes";break;case "deletecol":case "deleterow":a.renderneeded=!0;a.changedrendervalues=!0;h=c.NextToken();g=c.RestOfString();g=D.lastcol;E=D.lastrow;q();"deletecol"==e?(v=n.col-r.col-1,d=0,s=r.col+1,t=1):(v=0,d=n.row-r.row-1,s=1,t=r.row+1);for(q=t;q<=E-d;q++)for(c=s;c<=g-v;c++){k=SocialCalc.crToCoord(c+v,q+d);if(b&&(qr.col)?F.colr.row)?F.rowt?(u=SocialCalc.crToCoord(c,F.row+B-q-1),k=SocialCalc.crToCoord(c,r.row-q)):(u=SocialCalc.crToCoord(c, +F.row-B+q+1),k=SocialCalc.crToCoord(c,n.row+q));x=a.GetAssuredCell(u);b&&C.AddUndo("set "+u+" all",a.CellToString(x));p=a.GetAssuredCell(k);if("all"==g||"formats"==g)for(j in E)1!=E[j]&&(void 0===typeof x[j]||3==E[j]?delete p[j]:p[j]=x[j]);if("all"==g||"formulas"==g)p.datavalue=x.datavalue,p.datatype=x.datatype,p.valuetype=x.valuetype,p.formula=x.formula,delete p.parseinfo,p.errors=x.errors;delete p.displaystring;e[u]=k}if(s)for(c=0;cs?(u=SocialCalc.crToCoord(F.col+ +B-c-1,q),k=SocialCalc.crToCoord(r.col-c,q)):(u=SocialCalc.crToCoord(F.col-B+c+1,q),k=SocialCalc.crToCoord(n.col+c,q));x=a.GetAssuredCell(u);b&&C.AddUndo("set "+u+" all",a.CellToString(x));p=a.GetAssuredCell(k);if("all"==g||"formats"==g)for(j in E)1!=E[j]&&(void 0===typeof x[j]||3==E[j]?delete p[j]:p[j]=x[j]);if("all"==g||"formulas"==g)p.datavalue=x.datavalue,p.datatype=x.datatype,p.valuetype=x.valuetype,p.formula=x.formula,delete p.parseinfo,p.errors=x.errors;delete p.displaystring;e[u]=k}F.col+y- +1>D.lastcol&&(D.lastcol=F.col+y-1);F.row+A-1>D.lastrow&&(D.lastrow=F.row+A-1);for(q=n.row;qa[c+"s"].length&&a[c+"s"].push(""),d=a[c+"s"].push(b)-1,a[c+"hash"][b]=d,a.changedrendervalues=!0);return d};SocialCalc.GetStyleString=function(a,c,b){return!b?null:a[c+"s"][b]}; +SocialCalc.OffsetFormulaCoords=function(a,c,b){var d,e,g,h,j="";d=SocialCalc.Formula;if(!d)return"Need SocialCalc.Formula";var k=d.TokenType,m=k.op,n=k.string,k=k.coord,r=d.TokenOpExpansion,a=d.ParseFormulaIntoTokens(a);for(g=0;ge.row||1>e.col)h="#REF!";j+=h}else j=e==n?0<=d.indexOf('"')?j+('"'+d.replace(/"/, +'""')+'"'):j+('"'+d+'"'):e==m?j+(r[d]||d):j+d;return j}; +SocialCalc.AdjustFormulaCoords=function(a,c,b,d,e){var g,h,j="",k=!1,m=SocialCalc.Formula;if(!m)return"Need SocialCalc.Formula";var n=m.TokenType,r=n.op,q=n.string,n=n.coord,m=m.TokenOpExpansion;parseinfo=SocialCalc.Formula.ParseFormulaIntoTokens(a);for(h=0;hb&&cr.col>=c&&cr.cole&&cr.row>=d&&cr.row= +c&&(cr.col+=b),cr.row>=d))cr.row+=e;g="$"==a.charAt(0)?"$"+SocialCalc.rcColname(cr.col):SocialCalc.rcColname(cr.col);g=-1!=a.indexOf("$",1)?g+("$"+cr.row):g+cr.row;if(1>cr.row||1>cr.col)g="#REF!";a=g}else g==q&&(a=0<=a.indexOf('"')?'"'+a.replace(/"/,'""')+'"':'"'+a+'"');j+=a}return j}; +SocialCalc.ReplaceFormulaCoords=function(a,c){var b,d,e,g="",h=!1;d=SocialCalc.Formula;if(!d)return"Need SocialCalc.Formula";var j=d.TokenType,k=j.op,m=j.string,j=j.coord,n=d.TokenOpExpansion;parseinfo=SocialCalc.Formula.ParseFormulaIntoTokens(a);for(e=0;e=h.maxtimeslice){m("calcorder",{coord:b,total:k.celllist.length,count:k.celllistitem});SocialCalc.RecalcSetTimeout();return}m("calccheckdone",k.calclistlength);k.nextcalc=k.firstcalc;h.currentState=h.state.calc;SocialCalc.RecalcSetTimeout()}else if(h.currentState==h.state.start_wait){h.currentState=h.state.done_wait;if(h.LoadSheet&&(a=h.LoadSheet(g.SheetCache.waitingForLoading)))return;SocialCalc.RecalcLoadedSheet(null, "",!1)}else if(h.currentState==h.state.done_wait)h.currentState=h.state.calc,SocialCalc.RecalcSetTimeout();else{h.currentState!=h.state.calc&&alert("Recalc state error: "+h.currentState+". Error in SocialCalc code.");for(b=j.recalcdata.nextcalc;b;){c=j.cells[b];a=g.evaluate_parsed_formula(c.parseinfo,j,!1);if(g.SheetCache.waitingForLoading){k.nextcalc=b;k.count+=e;m("calcloading",{sheetname:g.SheetCache.waitingForLoading});h.currentState=h.state.start_wait;SocialCalc.RecalcSetTimeout();return}if(g.RemoteFunctionInfo.waitingForServer){k.nextcalc= -b;k.count+=e;m("calcserverfunc",{funcname:g.RemoteFunctionInfo.waitingForServer,coord:b,total:k.calclistlength,count:k.count});h.currentState=h.state.done_wait;return}if(c.datavalue!=a.value||c.valuetype!=a.type)c.datavalue=a.value,c.valuetype=a.type,delete c.displaystring,j.recalcchangedavalue=!0;if(a.error)c.errors=a.error;e++;b=j.recalcdata.calclist[b];if(new Date-d>=h.maxtimeslice){k.nextcalc=b;k.count+=e;m("calcstep",{coord:b,total:k.calclistlength,count:k.count});SocialCalc.RecalcSetTimeout(); +b;k.count+=e;m("calcserverfunc",{funcname:g.RemoteFunctionInfo.waitingForServer,coord:b,total:k.calclistlength,count:k.count});h.currentState=h.state.done_wait;return}if(c.datavalue!=a.value||c.valuetype!=a.type)c.datavalue=a.value,c.valuetype=a.type,delete c.displaystring,j.recalcchangedavalue=!0;a.error&&(c.errors=a.error);e++;b=j.recalcdata.calclist[b];if(new Date-d>=h.maxtimeslice){k.nextcalc=b;k.count+=e;m("calcstep",{coord:b,total:k.calclistlength,count:k.count});SocialCalc.RecalcSetTimeout(); return}}k.inrecalc=!1;delete j.recalcdata;delete j.attribs.needsrecalc;h.sheet=j.previousrecalcsheet||null;h.sheet?(h.currentState=h.state.calc,SocialCalc.RecalcSetTimeout()):(g.FreshnessInfo.recalc_completed=!0,m("calcfinished",new Date-h.starttime))}}}; -SocialCalc.RecalcCheckCell=function(a,c){var b,d,e,g,h,j,k,m,n=SocialCalc.Formula;if(!n)return"Need SocialCalc.Formula";g=n.TokenType;var s=g.op,q=g.name,p=g.coord,r=a.recalcdata,u=r.checkinfo,t=!1,w=null,x=c;a:for(;x;)if(k=a.cells[x],m=u[x],!k||k.datatype!="f"||m&&typeof m!="object"){if(x=w,u[x])w=u[x].oldcoord}else{m||(m=new SocialCalc.RecalcCheckInfo,u[x]=m);k.errors&&delete k.errors;if(!k.parseinfo)k.parseinfo=n.ParseFormulaIntoTokens(k.formula);b=k.parseinfo;for(g=m.parsepos;g -m.cr2.col?(m.c1=m.cr2.col,m.c2=m.cr1.col):(m.c1=m.cr1.col,m.c2=m.cr2.col),m.c=m.c1-1,m.cr1.row>m.cr2.row?(m.r1=m.cr2.row,m.r2=m.cr1.row):(m.r1=m.cr1.row,m.r2=m.cr2.row),m.r=m.r1,m.inrangestart=!1;m.c+=1;if(m.c>m.c2){m.r+=1;if(m.r>m.r2){m.inrange=!1;continue}m.c=m.c1}b=SocialCalc.crToCoord(m.c,m.r);m.parsepos=g;m.oldcoord=w;w=x;x=b;if(u[x]&&typeof u[x]=="object")return k.errors=SocialCalc.Constants.s_caccCircRef+c,u[c]=!0,r.firstcalc?r.calclist[r.lastcalc]=c:r.firstcalc=c,r.lastcalc=c,r.calclistlength++, -a.attribs.circularreferencecell=x+"|"+w,k.errors;continue a}e=b[g].type;d=b[g].text;e==s&&(d=="!"?t=!0:d!=":"&&(t=!1));if(e==q)if(h=n.LookupName(a,d),h.type=="range"){if(j=h.value.indexOf("|"),j!=-1){m.cr1=SocialCalc.coordToCr(h.value.substring(0,j));d=h.value.indexOf("|",j+1);m.cr2=SocialCalc.coordToCr(h.value.substring(j+1,d));m.inrange=!0;m.inrangestart=!0;g-=1;continue}}else if(h.type=="coord")e=p,d=h.value;if(e==p)if(g>=2&&b[g-1].type==s&&b[g-1].text==":"&&b[g-2].type==p&&!t)m.cr1=SocialCalc.coordToCr(b[g- -2].text),m.cr2=SocialCalc.coordToCr(d),m.inrange=!0,m.inrangestart=!0,g-=1;else if(!t){d.indexOf("$")!=-1&&(d=d.replace(/\$/g,""));m.parsepos=g+1;m.oldcoord=w;w=x;x=d;if(u[x]&&typeof u[x]=="object")return k.errors=SocialCalc.Constants.s_caccCircRef+c,u[c]=!0,r.firstcalc?r.calclist[r.lastcalc]=c:r.firstcalc=c,r.lastcalc=c,r.calclistlength++,a.attribs.circularreferencecell=x+"|"+w,k.errors;continue a}}t=!1;u[x]=!0;r.firstcalc?r.calclist[r.lastcalc]=x:r.firstcalc=x;r.lastcalc=x;r.calclistlength++;x= -w;w=u[x]?u[x].oldcoord:null}return""};SocialCalc.Parse=function(a){this.str=a;this.pos=0;this.delimiter=" ";this.lineEnd=a.indexOf("\n");if(this.lineEnd<0)this.lineEnd=a.length};SocialCalc.Parse.prototype.NextToken=function(){if(this.pos<0)return"";var a=this.str.indexOf(this.delimiter,this.pos),c=this.pos;if(a>this.lineEnd)a=this.lineEnd;return a>=0?(this.pos=a+1,this.str.substring(c,a)):(this.pos=this.lineEnd,this.str.substring(c,this.lineEnd))}; -SocialCalc.Parse.prototype.RestOfString=function(){var a=this.pos;if(this.pos<0||this.pos>=this.lineEnd)return"";this.pos=this.lineEnd;return this.str.substring(a,this.lineEnd)};SocialCalc.Parse.prototype.RestOfStringNoMove=function(){return this.pos<0||this.pos>=this.lineEnd?"":this.str.substring(this.pos,this.lineEnd)};SocialCalc.Parse.prototype.NextLine=function(){this.pos=this.lineEnd+1;this.lineEnd=this.str.indexOf("\n",this.pos);if(this.lineEnd<0)this.lineEnd=this.str.length}; -SocialCalc.Parse.prototype.EOF=function(){return this.pos<0||this.pos>=this.str.length?!0:!1};SocialCalc.UndoStack=function(){this.stack=[];this.tos=-1;this.maxRedo=0;this.maxUndo=50}; -SocialCalc.UndoStack.prototype.PushChange=function(a){for(;this.stack.length>0&&this.stack.length-1>this.tos;)this.stack.pop();this.stack.push({command:[],type:a,undo:[]});this.maxRedo&&this.stack.length>this.maxRedo&&this.stack.shift();if(this.maxUndo&&this.stack.length>this.maxUndo)this.stack[this.stack.length-this.maxUndo-1].undo=[];this.tos=this.stack.length-1}; -SocialCalc.UndoStack.prototype.AddDo=function(){for(var a=[],c=0;c=0?this.stack[this.tos]:null}; -SocialCalc.UndoStack.prototype.Undo=function(){return this.tos>=0&&(!this.maxUndo||this.tos>this.stack.length-this.maxUndo-1)?(this.tos-=1,!0):!1};SocialCalc.UndoStack.prototype.Redo=function(){return this.tosm.cr2.col?(m.c1=m.cr2.col,m.c2=m.cr1.col):(m.c1=m.cr1.col,m.c2=m.cr2.col),m.c=m.c1-1,m.cr1.row>m.cr2.row?(m.r1=m.cr2.row,m.r2=m.cr1.row):(m.r1=m.cr1.row,m.r2=m.cr2.row),m.r=m.r1,m.inrangestart=!1);m.c+=1;if(m.c>m.c2){m.r+=1;if(m.r>m.r2){m.inrange=!1;continue}m.c=m.c1}b=SocialCalc.crToCoord(m.c,m.r);m.parsepos=g;m.oldcoord=v;v=x;x=b;if(s[x]&&"object"==typeof s[x])return k.errors=SocialCalc.Constants.s_caccCircRef+c,s[c]=!0,t.firstcalc?t.calclist[t.lastcalc]=c:t.firstcalc=c,t.lastcalc=c, +t.calclistlength++,a.attribs.circularreferencecell=x+"|"+v,k.errors;continue a}e=b[g].type;d=b[g].text;e==r&&("!"==d?u=!0:":"!=d&&(u=!1));if(e==q)if(h=n.LookupName(a,d),"range"==h.type){if(j=h.value.indexOf("|"),-1!=j){m.cr1=SocialCalc.coordToCr(h.value.substring(0,j));d=h.value.indexOf("|",j+1);m.cr2=SocialCalc.coordToCr(h.value.substring(j+1,d));m.inrange=!0;m.inrangestart=!0;g-=1;continue}}else"coord"==h.type&&(e=p,d=h.value);if(e==p)if(2<=g&&b[g-1].type==r&&":"==b[g-1].text&&b[g-2].type==p&&!u)m.cr1= +SocialCalc.coordToCr(b[g-2].text),m.cr2=SocialCalc.coordToCr(d),m.inrange=!0,m.inrangestart=!0,g-=1;else if(!u){-1!=d.indexOf("$")&&(d=d.replace(/\$/g,""));m.parsepos=g+1;m.oldcoord=v;v=x;x=d;if(s[x]&&"object"==typeof s[x])return k.errors=SocialCalc.Constants.s_caccCircRef+c,s[c]=!0,t.firstcalc?t.calclist[t.lastcalc]=c:t.firstcalc=c,t.lastcalc=c,t.calclistlength++,a.attribs.circularreferencecell=x+"|"+v,k.errors;continue a}}u=!1;s[x]=!0;t.firstcalc?t.calclist[t.lastcalc]=x:t.firstcalc=x;t.lastcalc= +x;t.calclistlength++;x=v;v=s[x]?s[x].oldcoord:null}return""};SocialCalc.Parse=function(a){this.str=a;this.pos=0;this.delimiter=" ";this.lineEnd=a.indexOf("\n");0>this.lineEnd&&(this.lineEnd=a.length)};SocialCalc.Parse.prototype.NextToken=function(){if(0>this.pos)return"";var a=this.str.indexOf(this.delimiter,this.pos),c=this.pos;a>this.lineEnd&&(a=this.lineEnd);if(0<=a)return this.pos=a+1,this.str.substring(c,a);this.pos=this.lineEnd;return this.str.substring(c,this.lineEnd)}; +SocialCalc.Parse.prototype.RestOfString=function(){var a=this.pos;if(0>this.pos||this.pos>=this.lineEnd)return"";this.pos=this.lineEnd;return this.str.substring(a,this.lineEnd)};SocialCalc.Parse.prototype.RestOfStringNoMove=function(){return 0>this.pos||this.pos>=this.lineEnd?"":this.str.substring(this.pos,this.lineEnd)};SocialCalc.Parse.prototype.NextLine=function(){this.pos=this.lineEnd+1;this.lineEnd=this.str.indexOf("\n",this.pos);0>this.lineEnd&&(this.lineEnd=this.str.length)}; +SocialCalc.Parse.prototype.EOF=function(){return 0>this.pos||this.pos>=this.str.length?!0:!1};SocialCalc.UndoStack=function(){this.stack=[];this.tos=-1;this.maxRedo=0;this.maxUndo=50}; +SocialCalc.UndoStack.prototype.PushChange=function(a){for(;0this.tos;)this.stack.pop();this.stack.push({command:[],type:a,undo:[]});this.maxRedo&&this.stack.length>this.maxRedo&&this.stack.shift();this.maxUndo&&this.stack.length>this.maxUndo&&(this.stack[this.stack.length-this.maxUndo-1].undo=[]);this.tos=this.stack.length-1}; +SocialCalc.UndoStack.prototype.AddDo=function(){for(var a=[],c=0;cthis.stack.length-this.maxUndo-1)?(this.tos-=1,!0):!1};SocialCalc.UndoStack.prototype.Redo=function(){return this.tos1||e>1)for(h=c;ha.maxrow&&(maxrow=h),j>a.maxcol&&(maxcol=j);a.needcellskip=!1}; -SocialCalc.CalculateColWidthData=function(a){var c,b,d,e=a.sheetobj;d=a.showRCHeaders?a.rownamewidth-0:0;for(colpane=0;colpane0?b-0:10}a.totalwidth=d}; +SocialCalc.PrecomputeSheetFontsAndLayouts=function(a){var c,b,d,e,g,h,j=a.sheetobj;e=j.attribs;e.defaultfont&&(c=j.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(g=1;g=h;h++)"*"==b[h]&& +(b[h]="*"!=e[h]?e[h]:d[h]);a.layouts[g]="padding:"+b[1]+" "+b[2]+" "+b[3]+" "+b[4]+";vertical-align:"+b[5]+";"}a.needprecompute=!1}; +SocialCalc.CalculateCellSkipData=function(a){var c,b,d,e,g,h,j,k,m=a.sheetobj;a.maxrow=0;a.maxcol=0;a.cellskip={};for(c=1;c<=m.attribs.lastrow;c++)for(b=1;b<=m.attribs.lastcol;b++)if(d=SocialCalc.crToCoord(b,c),e=m.cells[d],!(void 0===e||a.cellskip[d]))if(g=e.colspan||1,e=e.rowspan||1,1a.maxrow&&(maxrow=h),j>a.maxcol&&(maxcol=j);a.needcellskip=!1}; +SocialCalc.CalculateColWidthData=function(a){var c,b,d,e=a.sheetobj;d=a.showRCHeaders?a.rownamewidth-0:0;for(colpane=0;colpane1){for(k=m=1;k1){for(k=m=1;kg.last?!1:ba.last?!1:!0};SocialCalc.CreatePseudoElement=function(){return{style:{cssText:""},innerHTML:"",className:""}};SocialCalc.rcColname=function(a){a>702&&(a=702);a<1&&(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)}; -SocialCalc.letters=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];SocialCalc.crToCoord=function(a,c){a<1&&(a=1);a>702&&(a=702);c<1&&(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};SocialCalc.coordToCol={};SocialCalc.coordToRow={}; -SocialCalc.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=97?c=26*c+d-96:d>=65&&(c=26*c+d-64));SocialCalc.coordToCol[a]=c;SocialCalc.coordToRow[a]=e;return{row:e,col:c}}; -SocialCalc.ParseRange=function(a){var c,b,d;a||(a="A1:A1");a=a.toUpperCase();c=a.indexOf(":");c>=0?(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}};SocialCalc.decodeFromSave=function(a){if(typeof a!="string")return a;if(a.indexOf("\\")==-1)return a;a=a.replace(/\\c/g,":");a=a.replace(/\\n/g,"\n");return a.replace(/\\b/g,"\\")}; -SocialCalc.decodeFromAjax=function(a){if(typeof a!="string")return a;if(a.indexOf("\\")==-1)return a;a=a.replace(/\\c/g,":");a=a.replace(/\\n/g,"\n");a=a.replace(/\\e/g,"]]");return a.replace(/\\b/g,"\\")};SocialCalc.encodeForSave=function(a){if(typeof a!="string")return a;a.indexOf("\\")!=-1&&(a=a.replace(/\\/g,"\\b"));a.indexOf(":")!=-1&&(a=a.replace(/:/g,"\\c"));a.indexOf("\n")!=-1&&(a=a.replace(/\n/g,"\\n"));return a}; -SocialCalc.special_chars=function(a){/[&<>"]/.test(a)&&(a=a.replace(/&/g,"&"),a=a.replace(//g,">"),a=a.replace(/"/g,"""));return a};SocialCalc.Lookup=function(a,c){for(i=0;ia)return i>0?i-1:null;return c.length-1};SocialCalc.setStyles=function(a,c){var b,d,e,g;if(c){b=c.split(";");for(d=0;dg.last||ba.last?!1:!0};SocialCalc.CreatePseudoElement=function(){return{style:{cssText:""},innerHTML:"",className:""}};SocialCalc.rcColname=function(a){702a&&(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)};SocialCalc.letters="A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z".split(","); +SocialCalc.crToCoord=function(a,c){1>a&&(a=1);702c&&(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};SocialCalc.coordToCol={};SocialCalc.coordToRow={}; +SocialCalc.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=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}}; +SocialCalc.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}};SocialCalc.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,"\\")}; +SocialCalc.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,"\\")};SocialCalc.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}; +SocialCalc.special_chars=function(a){/[&<>"]/.test(a)&&(a=a.replace(/&/g,"&"),a=a.replace(//g,">"),a=a.replace(/"/g,"""));return a};SocialCalc.Lookup=function(a,c){for(i=0;ia)return 0'+d+""):b=="text-link"?a=SocialCalc.expand_text_link(a,d,e,b):b=="text-image"?(e=encodeURI(a),a=''):b.substring(0,12)=="text-custom:"?(d=SocialCalc.special_chars(a),d=d.replace(/ /g,"  "),d=d.replace(/\n/g,"
"),e=encodeURI(a),g={},g.r=a,g.s=d,g.u=e,a=b.substring(12),a=a.replace(/@(r|s|u)/g,function(a,c){return g[c]})):b.substring(0,6)=="custom"?(a=SocialCalc.special_chars(a), -a=a.replace(/ /g,"  "),a=a.replace(/\n/g,"
"),a+=" (custom format)"):b=="hidden"?a=" ":(a=SocialCalc.special_chars(a),a=a.replace(/ /g,"  "),a=a.replace(/\n/g,"
"));return a}; -SocialCalc.format_number_for_display=function(a,c,b){var d,e=SocialCalc.Constants;d=a-0;c=c.substring(1);if(b=="Auto"||b=="")b=c=="%"?"#,##0.0%":c=="$"?"[$]#,##0.00":c=="dt"?e.defaultFormatdt:c=="d"?e.defaultFormatd:c=="t"?e.defaultFormatt:c=="l"?"logical":"General";return b=="logical"?d?e.defaultDisplayTRUE:e.defaultDisplayFALSE:b=="hidden"?" ":SocialCalc.FormatNumber.formatNumberWithFormat(a,b,"")}; -SocialCalc.DetermineValueType=function(a){var c=a+"",b="t",d,e;d=c.replace(/^\s+/,"");d=d.replace(/\s+$/,"");if(c.length==0)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= -(d.replace(/[%,]/g,"")-0)/100,b="n%";else if(d.match(/^[-+]?\$\s*(\d*,\d*)+(?:\.)?\d*$/)&&d.match(/\d/))c=d.replace(/[\$,]/g,"")-0,b="n$";else if(a=c.match(/^(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{1,4})\s*$/))c=a[3]-0,c=SocialCalc.FormatNumber.convert_date_gregorian_to_julian(c<1E3?c+2E3:c,a[1]-0,a[2]-0)-2415019,b="nd";else if(a=c.match(/^(\d{4})[\/\-](\d{1,2})[\/\-](\d{1,2})\s*$/))c=a[1]-0,c=SocialCalc.FormatNumber.convert_date_gregorian_to_julian(c<1E3?c+2E3:c,a[2]-0,a[3]-0)-2415019,b="nd";else if(a= -c.match(/^(\d{1,2}):(\d{1,2})\s*$/))d=a[1]-0,e=a[2]-0,d<24&&e<60&&(c=d/24+e/1440,b="nt");else if(a=c.match(/^(\d{1,2}):(\d{1,2}):(\d{1,2})\s*$/))d=a[1]-0,e=a[2]-0,a=a[3]-0,d<24&&e<60&&a<60&&(c=d/24+e/1440+a/86400,b="nt");else if(a=c.match(/^\s*([-+]?\d+) (\d+)\/(\d+)\s*$/)){if(e=a[1]-0,d=a[2]-0,(a=a[3]-0)&&a>0)c=e+(e<0?-d/a:d/a),b="n"}else(a=SocialCalc.InputConstants[c.toUpperCase()])?(d=a.indexOf(","),c=a.substring(0,d)-0,b=a.substring(d+1)):d.length>7&&d.substring(0,7).toLowerCase()=="http://"&& +SocialCalc.FormatValueForDisplay=function(a,c,b,d){var e,g=a.attribs,h=a.cells[b];h||(h=new SocialCalc.Cell(b));b=h.valuetype||"";e=b.substring(1);b=b.charAt(0);if(h.errors||"e"==b)return c=h.errors||e||"Error in cell";if("t"==b){b=a.valueformats[h.textvalueformat-0]||a.valueformats[g.defaulttextvalueformat-0]||"";if("formula"==b)return c="f"==h.datatype?SocialCalc.special_chars("="+h.formula)||" ":"c"==h.datatype?SocialCalc.special_chars("'"+h.formula)||" ":SocialCalc.special_chars("'"+ +c)||" ";c=SocialCalc.format_text_for_display(c,h.valuetype,b,a,d)}else if("n"==b){b=h.nontextvalueformat;if(null==b||""==b)b=g.defaultnontextvalueformat;b=a.valueformats[b-0];if(null==b||"none"==b)b="";if("formula"==b)return c="f"==h.datatype?SocialCalc.special_chars("="+h.formula)||" ":"c"==h.datatype?SocialCalc.special_chars("'"+h.formula)||" ":SocialCalc.special_chars("'"+c)||" ";if("forcetext"==b)return c="f"==h.datatype?SocialCalc.special_chars("="+h.formula)||" ":"c"== +h.datatype?SocialCalc.special_chars(h.formula)||" ":SocialCalc.special_chars(c)||" ";c=SocialCalc.format_number_for_display(c,h.valuetype,b)}else c=" ";return c}; +SocialCalc.format_text_for_display=function(a,c,b,d,e){var g,c=c.substring(1);if("none"==b||null==b)b="";/^(text-|custom|hidden)/.test(b)||(b="");if(""==b||"General"==b){"h"==c&&(b="text-html");if("w"==c||"r"==c)b="text-wiki";"l"==c&&(b="text-link");c||(b="text-plain")}"text-html"!=b&&(SocialCalc.Callbacks.expand_wiki&&/^text-wiki/.test(b)?a=SocialCalc.Callbacks.expand_wiki(a,d,e,b):"text-wiki"==b?a=SocialCalc.special_chars(a):"text-wiki"==b?a=SocialCalc.Callbacks.expand_markup&&SocialCalc.Callbacks.expand_markup(a, +d,e)||SocialCalc.special_chars(a):"text-url"==b?(d=SocialCalc.special_chars(a),e=encodeURI(a),a=''+d+""):"text-link"==b?a=SocialCalc.expand_text_link(a,d,e,b):"text-image"==b?(e=encodeURI(a),a=''):"text-custom:"==b.substring(0,12)?(d=SocialCalc.special_chars(a),d=d.replace(/ /g,"  "),d=d.replace(/\n/g,"
"),e=encodeURI(a),g={},g.r=a,g.s=d,g.u=e,a=b.substring(12),a=a.replace(/@(r|s|u)/g,function(a,c){return g[c]})):"custom"==b.substring(0,6)?(a=SocialCalc.special_chars(a), +a=a.replace(/ /g,"  "),a=a.replace(/\n/g,"
"),a+=" (custom format)"):"hidden"==b?a=" ":(a=SocialCalc.special_chars(a),a=a.replace(/ /g,"  "),a=a.replace(/\n/g,"
")));return a}; +SocialCalc.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?"#,##0.0%":"$"==c?"[$]#,##0.00":"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?" ":SocialCalc.FormatNumber.formatNumberWithFormat(a,b,"")}; +SocialCalc.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= +(d.replace(/[%,]/g,"")-0)/100,b="n%";else if(d.match(/^[-+]?\$\s*(\d*,\d*)+(?:\.)?\d*$/)&&d.match(/\d/))c=d.replace(/[\$,]/g,"")-0,b="n$";else if(a=c.match(/^(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{1,4})\s*$/))c=a[3]-0,c=SocialCalc.FormatNumber.convert_date_gregorian_to_julian(1E3>c?c+2E3:c,a[1]-0,a[2]-0)-2415019,b="nd";else if(a=c.match(/^(\d{4})[\/\-](\d{1,2})[\/\-](\d{1,2})\s*$/))c=a[1]-0,c=SocialCalc.FormatNumber.convert_date_gregorian_to_julian(1E3>c?c+2E3:c,a[2]-0,a[3]-0)-2415019,b="nd";else if(a= +c.match(/^(\d{1,2}):(\d{1,2})\s*$/))d=a[1]-0,e=a[2]-0,24>d&&60>e&&(c=d/24+e/1440,b="nt");else if(a=c.match(/^(\d{1,2}):(\d{1,2}):(\d{1,2})\s*$/))d=a[1]-0,e=a[2]-0,a=a[3]-0,24>d&&60>e&&60>a&&(c=d/24+e/1440+a/86400,b="nt");else if(a=c.match(/^\s*([-+]?\d+) (\d+)\/(\d+)\s*$/)){if(e=a[1]-0,d=a[2]-0,(a=a[3]-0)&&0e?-d/a:d/a),b="n"}else(a=SocialCalc.InputConstants[c.toUpperCase()])?(d=a.indexOf(","),c=a.substring(0,d)-0,b=a.substring(d+1)):7")}; -SocialCalc.expand_text_link=function(a,c,b,d){var e;e=SocialCalc.Constants;var c="",g=SocialCalc.ParseCellLinkText(a+"");e=g.desc?SocialCalc.special_chars(g.desc):g.pagename?e.defaultPageLinkFormatString:e.defaultLinkFormatString;a.length>7&&a.substring(0,7).toLowerCase()=="http://"&&a.charAt(a.length-1)!=">"&&(e=e.substring(7));a=g.newwin||!b?' target="_blank"':"";g.pagename?SocialCalc.Callbacks.MakePageLink&&(c=SocialCalc.Callbacks.MakePageLink(g.pagename,g.workspacename,b,d)):c=encodeURI(g.url); +SocialCalc.expand_text_link=function(a,c,b,d){var e;e=SocialCalc.Constants;var c="",g=SocialCalc.ParseCellLinkText(a+"");e=g.desc?SocialCalc.special_chars(g.desc):g.pagename?e.defaultPageLinkFormatString:e.defaultLinkFormatString;7"!=a.charAt(a.length-1)&&(e=e.substring(7));a=g.newwin||!b?' target="_blank"':"";g.pagename?SocialCalc.Callbacks.MakePageLink&&(c=SocialCalc.Callbacks.MakePageLink(g.pagename,g.workspacename,b,d)):c=encodeURI(g.url); return'"+e+""}; -SocialCalc.ParseCellLinkText=function(a){var c={url:"",desc:"",newwin:!1,pagename:"",workspace:""},b=!1,d=a.length-1,e=0,g=a.lastIndexOf("<"),h=a.lastIndexOf("["),j=a.lastIndexOf("{"),k=-1;if((a.charAt(d)!=">"||g==-1)&&(a.charAt(d)!="]"||h==-1)&&(a.charAt(d)!="}"||a.charAt(d-1)!="]"||j==-1||h==-1||h"){if(k=g-1,g>0&&a.charAt(k)=="<"&&a.charAt(d-1)==">")k--,d--,c.newwin=!0}else if(a.charAt(d)=="]"){if(k=h-1,b=!0,h>0&&a.charAt(k)=="["&&a.charAt(d-1)=="]")k--,d--,c.newwin= -!0}else if(a.charAt(d)=="}"){k=j-1;b=!0;wsend=h;d--;if(h>0&&a.charAt(h-1)=="["&&a.charAt(d-1)=="]")wsend=h-1,d--,c.newwin=!0;a.charAt(wsend-1)==" "&&wsend--;c.workspace=a.substring(j+1,wsend)||""}a.charAt(k)==" "&&k--;a.charAt(e)=='"'&&a.charAt(k)=='"'&&(e++,k--)}b?c.pagename=a.substring(h+1,d)||"":c.url=a.substring(g+1,d)||"";if(k>=e)c.desc=a.substring(e,k+1);return c}; -SocialCalc.ConvertSaveToOtherFormat=function(a,c,b){var d,e,g,h;e="";if(c=="scsave")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(c=="html")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}), -c=document.createElement("div"),a=e.RenderSheet(null,e.defaultHTMLlinkstyle),c.appendChild(a),delete e,delete d,e=c.innerHTML,delete a,delete c,e;for(b=a.cr1.row;b<=a.cr2.row;b++){for(g=a.cr1.col;g<=a.cr2.col;g++)h=SocialCalc.crToCoord(g,b),h=d.GetAssuredCell(h),h=h.errors?h.errors:h.datavalue+"",c=="csv"?(h.indexOf('"')!=-1&&(h=h.replace(/"/g,'""')),/[, \n"]/.test(h)&&(h='"'+h+'"'),g>a.cr1.col&&(h=","+h)):c=="tab"&&(h.indexOf("\n")!=-1&&(h.indexOf('"')!=-1&&(h=h.replace(/"/g,'""')),h='"'+h+'"'), +SocialCalc.ParseCellLinkText=function(a){var c={url:"",desc:"",newwin:!1,pagename:"",workspace:""},b=!1,d=a.length-1,e=0,g=a.lastIndexOf("<"),h=a.lastIndexOf("["),j=a.lastIndexOf("{"),k=-1;if((">"!=a.charAt(d)||-1==g)&&("]"!=a.charAt(d)||-1==h)&&("}"!=a.charAt(d)||"]"!=a.charAt(d-1)||-1==j||-1==h||h"==a.charAt(d)?(k=g-1,0"==a.charAt(d-1)&&(k--,d--,c.newwin=!0)):"]"==a.charAt(d)?(k=h-1,b=!0,0=e&&(c.desc=a.substring(e,k+1));return c}; +SocialCalc.ConvertSaveToOtherFormat=function(a,c,b){var d,e,g,h;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}), +c=document.createElement("div"),a=e.RenderSheet(null,e.defaultHTMLlinkstyle),c.appendChild(a),delete e,delete d,e=c.innerHTML,delete a,delete c,e;for(b=a.cr1.row;b<=a.cr2.row;b++){for(g=a.cr1.col;g<=a.cr2.col;g++)h=SocialCalc.crToCoord(g,b),h=d.GetAssuredCell(h),h=h.errors?h.errors:h.datavalue+"","csv"==c?(-1!=h.indexOf('"')&&(h=h.replace(/"/g,'""')),/[, \n"]/.test(h)&&(h='"'+h+'"'),g>a.cr1.col&&(h=","+h)):"tab"==c&&(-1!=h.indexOf("\n")&&(-1!=h.indexOf('"')&&(h=h.replace(/"/g,'""')),h='"'+h+'"'), g>a.cr1.col&&(h="\t"+h)),e+=h;e+="\n"}return e}; -SocialCalc.ConvertOtherFormatToSave=function(a,c){var b,d,e,g,h,j,k,m,n,s,q,p,r="",u=function(){s++;s>p&&(p=s);q=SocialCalc.crToCoord(s,n);SocialCalc.SetConvertedCell(b,q,h);h=""};if(c=="scsave")return a;b=new SocialCalc.Sheet;d=a.split(/\r\n|\n/);p=0;if(c=="csv"){n=0;j=!1;for(e=0;e0)b.attribs.lastrow=n,b.attribs.lastcol=p,r=b.CreateSheetSave("A1:"+SocialCalc.crToCoord(p,n))}if(c=="tab"){n=0;j=!1;for(e=0;e0)b.attribs.lastrow=n,b.attribs.lastcol= -p,r=b.CreateSheetSave("A1:"+SocialCalc.crToCoord(p,n))}return r};SocialCalc.SetConvertedCell=function(a,c,b){a=a.GetAssuredCell(c);c=SocialCalc.DetermineValueType(b);c.type=="n"&&c.value==b?(a.datatype="v",a.valuetype="n",a.datavalue=c.value):c.type.charAt(0)=="t"?(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)};SocialCalc||(SocialCalc={}); +SocialCalc.ConvertOtherFormatToSave=function(a,c){var b,d,e,g,h,j,k,m,n,r,q,p,t="",s=function(){r++;r>p&&(p=r);q=SocialCalc.crToCoord(r,n);SocialCalc.SetConvertedCell(b,q,h);h=""};if("scsave"==c)return a;b=new SocialCalc.Sheet;d=a.split(/\r\n|\n/);p=0;if("csv"==c){n=0;j=!1;for(e=0;e=0?d.replace(/(?:<\/[Tt][Dd]>)/g, -c):d.replace(/&[Nn][Bb][Ss][Pp];/g,c);c=g.innerText.replace(RegExp(c,"g"),"\t");g.innerHTML="";g.blur();g.style.visibility="hidden"}else d=a.pasteTextarea,c=d.value,d.blur(),d.style.display="none";c=c.replace(/\r\n/g,"\n").replace(/\n?$/,"\n");d=SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard,"tab");if(c==d||c.length-d.length==1&&c.substring(0,c.length-1)==d)b=!0;d="";b||(d="loadclipboard "+SocialCalc.encodeForSave(SocialCalc.ConvertOtherFormatToSave(c,"tab"))+"\n");b=a.range.hasrange? -SocialCalc.crToCoord(a.range.left,a.range.top):a.ecell.coord;d+="paste "+b+" formulas";a.EditorScheduleSheetCommands(d,!0,!1);SocialCalc.KeyboardFocus()}}},200);break;case "[ctrl-z]":return a.EditorScheduleSheetCommands("undo",!0,!1),!1;case "[ctrl-s]":return window.setTimeout(function(){if(SocialCalc.GetSpreadsheetControlObject){var a=SocialCalc.GetSpreadsheetControlObject();if(a){var a=a.editor,c=a.context.sheetobj,b=c.GetAssuredCell(a.ecell.coord),c=window.prompt("Advanced Feature:\n\nCustom Numeric Format or Command", -b.nontextvalueformat?c.valueformats[b.nontextvalueformat-0]||"":"");if(c!=null){if(c.match(/^cmd:/))j=c.substring(4);else if(c.match(/^edit:/)){j=c.substring(5);SocialCalc.CtrlSEditor&&SocialCalc.CtrlSEditor(j);return}else k=a.range.hasrange?SocialCalc.crToCoord(a.range.left,a.range.top)+":"+SocialCalc.crToCoord(a.range.right,a.range.bottom):a.ecell.coord,j="set "+k+" nontextvalueformat "+c;a.EditorScheduleSheetCommands(j,!0,!1)}}}},200),!1}return!0};a.sheetobj.statuscallback=SocialCalc.EditorSheetStatusCallback; +"tab");j="[ctrl-c]"==c||a.noEdit?"copy "+k+" formulas":"cut "+k+" formulas";a.EditorScheduleSheetCommands(j,!0,!1);e.style.display="block";e.value=h;e.focus();e.select();window.setTimeout(function(){if(SocialCalc.GetSpreadsheetControlObject){var a=SocialCalc.GetSpreadsheetControlObject();a&&(a=a.editor.pasteTextarea,a.blur(),a.style.display="none",SocialCalc.KeyboardFocus())}},200);break;case "[ctrl-v]":if(a.noEdit)break;if(g=a.pasteHTMLarea)g.style.visibility="visible",g.focus();else{e=a.pasteTextarea; +e.value="";if(h=SocialCalc.GetEditorCellElement(a,a.ecell.row,a.ecell.col))h=SocialCalc.GetElementPosition(h.element),e.style.left=h.left-1+"px",e.style.top=h.top-1+"px";e.style.display="block";e.value="";e.focus()}window.setTimeout(function(){if(SocialCalc.GetSpreadsheetControlObject){var a=SocialCalc.GetSpreadsheetControlObject();if(a){var a=a.editor,c=null,b=!1;if(g=a.pasteHTMLarea){var c=String.fromCharCode(65532),d=g.innerHTML;g.innerHTML=0<=d.search(/<(?![Bb][Rr])[A-Za-z]/)?d.replace(/(?:<\/[Tt][Dd]>)/g, +c):d.replace(/&[Nn][Bb][Ss][Pp];/g,c);c=g.innerText.replace(RegExp(c,"g"),"\t");g.innerHTML="";g.blur();g.style.visibility="hidden"}else d=a.pasteTextarea,c=d.value,d.blur(),d.style.display="none";c=c.replace(/\r\n/g,"\n").replace(/\n?$/,"\n");d=SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard,"tab");if(c==d||1==c.length-d.length&&c.substring(0,c.length-1)==d)b=!0;d="";b||(d="loadclipboard "+SocialCalc.encodeForSave(SocialCalc.ConvertOtherFormatToSave(c,"tab"))+"\n");b=a.range.hasrange? +SocialCalc.crToCoord(a.range.left,a.range.top):a.ecell.coord;a.EditorScheduleSheetCommands(d+("paste "+b+" formulas"),!0,!1);SocialCalc.KeyboardFocus()}}},200);break;case "[ctrl-z]":return a.EditorScheduleSheetCommands("undo",!0,!1),!1;case "[ctrl-s]":return window.setTimeout(function(){if(SocialCalc.GetSpreadsheetControlObject){var a=SocialCalc.GetSpreadsheetControlObject();if(a){var a=a.editor,c=a.context.sheetobj,b=c.GetAssuredCell(a.ecell.coord),c=window.prompt("Advanced Feature:\n\nCustom Numeric Format or Command", +b.nontextvalueformat?c.valueformats[b.nontextvalueformat-0]||"":"");if(null!=c){if(c.match(/^cmd:/))j=c.substring(4);else{if(c.match(/^edit:/)){j=c.substring(5);SocialCalc.CtrlSEditor&&SocialCalc.CtrlSEditor(j);return}k=a.range.hasrange?SocialCalc.crToCoord(a.range.left,a.range.top)+":"+SocialCalc.crToCoord(a.range.right,a.range.bottom):a.ecell.coord;j="set "+k+" nontextvalueformat "+c}a.EditorScheduleSheetCommands(j,!0,!1)}}}},200),!1}return!0};a.sheetobj.statuscallback=SocialCalc.EditorSheetStatusCallback; a.sheetobj.statuscallbackparams=this;this.StatusCallback={};this.MoveECellCallback={};this.RangeChangeCallback={};this.SettingsCallbacks={};this.ecell={coord:"A1",row:1,col:1};a.highlights[this.ecell.coord]="cursor";this.range={hasrange:!1};this.range2={hasrange:!1}};SocialCalc.TableEditor.prototype.CreateTableEditor=function(a,c){return SocialCalc.CreateTableEditor(this,a,c)};SocialCalc.TableEditor.prototype.ResizeTableEditor=function(a,c){return SocialCalc.ResizeTableEditor(this,a,c)}; SocialCalc.TableEditor.prototype.SaveEditorSettings=function(){return SocialCalc.SaveEditorSettings(this)};SocialCalc.TableEditor.prototype.LoadEditorSettings=function(a,c){return SocialCalc.LoadEditorSettings(this,a,c)};SocialCalc.TableEditor.prototype.EditorRenderSheet=function(){SocialCalc.EditorRenderSheet(this)};SocialCalc.TableEditor.prototype.EditorScheduleSheetCommands=function(a,c,b){SocialCalc.EditorScheduleSheetCommands(this,a,c,b)}; SocialCalc.TableEditor.prototype.ScheduleSheetCommands=function(a,c){this.context.sheetobj.ScheduleSheetCommands(a,c)};SocialCalc.TableEditor.prototype.SheetUndo=function(){this.context.sheetobj.SheetUndo()};SocialCalc.TableEditor.prototype.SheetRedo=function(){this.context.sheetobj.SheetRedo()};SocialCalc.TableEditor.prototype.EditorStepSet=function(a,c){SocialCalc.EditorStepSet(this,a,c)}; @@ -240,171 +240,169 @@ SocialCalc.TableEditor.prototype.RangeRemove=function(){SocialCalc.RangeRemove(t SocialCalc.TableEditor.prototype.DoRenderStep=function(){SocialCalc.DoRenderStep(this)};SocialCalc.TableEditor.prototype.SchedulePositionCalculations=function(){SocialCalc.SchedulePositionCalculations(this)};SocialCalc.TableEditor.prototype.DoPositionCalculations=function(){SocialCalc.DoPositionCalculations(this)};SocialCalc.TableEditor.prototype.CalculateRowPositions=function(a,c,b){return SocialCalc.CalculateRowPositions(this,a,c,b)}; SocialCalc.TableEditor.prototype.CalculateColPositions=function(a,c,b){return SocialCalc.CalculateColPositions(this,a,c,b)};SocialCalc.TableEditor.prototype.ScrollRelative=function(a,c){SocialCalc.ScrollRelative(this,a,c)};SocialCalc.TableEditor.prototype.ScrollRelativeBoth=function(a,c){SocialCalc.ScrollRelativeBoth(this,a,c)};SocialCalc.TableEditor.prototype.PageRelative=function(a,c){SocialCalc.PageRelative(this,a,c)};SocialCalc.TableEditor.prototype.LimitLastPanes=function(){SocialCalc.LimitLastPanes(this)}; SocialCalc.TableEditor.prototype.ScrollTableUpOneRow=function(){return SocialCalc.ScrollTableUpOneRow(this)};SocialCalc.TableEditor.prototype.ScrollTableDownOneRow=function(){return SocialCalc.ScrollTableDownOneRow(this)};SocialCalc.TableEditor.prototype.ScrollTableLeftOneCol=function(){return SocialCalc.ScrollTableLeftOneCol(this)};SocialCalc.TableEditor.prototype.ScrollTableRightOneCol=function(){return SocialCalc.ScrollTableRightOneCol(this)}; -SocialCalc.CreateTableEditor=function(a,c,b){var d=SocialCalc.Constants,e=SocialCalc.AssignID;a.toplevel=document.createElement("div");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="default";if(d.cteGriddivClass)a.griddiv.className= -d.cteGriddivClass;e(a,a.griddiv,"griddiv");a.FitToEditTable();a.EditorRenderSheet();a.griddiv.appendChild(a.fullgrid);a.verticaltablecontrol=new SocialCalc.TableControl(a,!0,a.tableheight);a.verticaltablecontrol.CreateTableControl();e(a,a.verticaltablecontrol.main,"tablecontrolv");a.horizontaltablecontrol=new SocialCalc.TableControl(a,!1,a.tablewidth);a.horizontaltablecontrol.CreateTableControl();e(a,a.horizontaltablecontrol.main,"tablecontrolh");b=document.createElement("table");a.layouttable=b; +SocialCalc.CreateTableEditor=function(a,c,b){var d=SocialCalc.Constants,e=SocialCalc.AssignID;a.toplevel=document.createElement("div");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="default";d.cteGriddivClass&&(a.griddiv.className= +d.cteGriddivClass);e(a,a.griddiv,"griddiv");a.FitToEditTable();a.EditorRenderSheet();a.griddiv.appendChild(a.fullgrid);a.verticaltablecontrol=new SocialCalc.TableControl(a,!0,a.tableheight);a.verticaltablecontrol.CreateTableControl();e(a,a.verticaltablecontrol.main,"tablecontrolv");a.horizontaltablecontrol=new SocialCalc.TableControl(a,!1,a.tablewidth);a.horizontaltablecontrol.CreateTableControl();e(a,a.horizontaltablecontrol.main,"tablecontrolh");b=document.createElement("table");a.layouttable=b; b.cellSpacing=0;b.cellPadding=0;e(a,b,"layouttable");c=document.createElement("tbody");b.appendChild(c);b=document.createElement("tr");c.appendChild(b);d=document.createElement("td");d.appendChild(a.griddiv);b.appendChild(d);d=document.createElement("td");d.appendChild(a.verticaltablecontrol.main);b.appendChild(d);b=document.createElement("tr");c.appendChild(b);d=document.createElement("td");d.appendChild(a.horizontaltablecontrol.main);b.appendChild(d);d=document.createElement("td");d.style.background= -"url("+a.imageprefix+"logo.gif) no-repeat center center";d.innerHTML="
";b.appendChild(d);a.logo=d;e(a,a.logo,"logo");SocialCalc.TooltipRegister(d.firstChild.firstChild,"SocialCalc",null);a.toplevel.appendChild(a.layouttable);if(!a.noEdit)a.inputEcho=new SocialCalc.InputEcho(a),e(a,a.inputEcho.main,"inputecho");a.cellhandles=new SocialCalc.CellHandles(a);c=document.createElement("textarea"); +"url("+a.imageprefix+"logo.gif) no-repeat center center";d.innerHTML="
";b.appendChild(d);a.logo=d;e(a,a.logo,"logo");SocialCalc.TooltipRegister(d.firstChild.firstChild,"SocialCalc",null);a.toplevel.appendChild(a.layouttable);a.noEdit||(a.inputEcho=new SocialCalc.InputEcho(a),e(a,a.inputEcho.main,"inputecho"));a.cellhandles=new SocialCalc.CellHandles(a);c=document.createElement("textarea"); SocialCalc.setStyles(c,"display:none;position:absolute;height:1px;width:1px;opacity:0;filter:alpha(opacity=0);");c.value="";a.pasteTextarea=c;e(a,a.pasteTextarea,"pastetextarea");navigator.userAgent.match(/Safari\//)&&!navigator.userAgent.match(/Chrome\//)&&(window.removeEventListener("beforepaste",SocialCalc.SafariPasteFunction,!1),window.addEventListener("beforepaste",SocialCalc.SafariPasteFunction,!1),window.removeEventListener("beforecopy",SocialCalc.SafariPasteFunction,!1),window.addEventListener("beforecopy", -SocialCalc.SafariPasteFunction,!1),window.removeEventListener("beforecut",SocialCalc.SafariPasteFunction,!1),window.addEventListener("beforecut",SocialCalc.SafariPasteFunction,!1));a.toplevel.appendChild(a.pasteTextarea);c=document.createElement("div");c.innerHTML="
";if(c.firstChild.nodeType==1)c=document.createElement("div"),a.pasteHTMLarea=c,a.toplevel.appendChild(a.pasteHTMLarea),c.contentEditable=!0,e(a,a.pasteHTMLarea,"pastehtmlarea"),SocialCalc.setStyles(c,"display:block;visibility:hidden;position:absolute;height:1px;width:1px;opacity:0;filter:alpha(opacity=0);overflow:hidden"); +SocialCalc.SafariPasteFunction,!1),window.removeEventListener("beforecut",SocialCalc.SafariPasteFunction,!1),window.addEventListener("beforecut",SocialCalc.SafariPasteFunction,!1));a.toplevel.appendChild(a.pasteTextarea);c=document.createElement("div");c.innerHTML="
";1==c.firstChild.nodeType&&(c=document.createElement("div"),a.pasteHTMLarea=c,a.toplevel.appendChild(a.pasteHTMLarea),c.contentEditable=!0,e(a,a.pasteHTMLarea,"pastehtmlarea"),SocialCalc.setStyles(c,"display:block;visibility:hidden;position:absolute;height:1px;width:1px;opacity:0;filter:alpha(opacity=0);overflow:hidden")); SocialCalc.MouseWheelRegister(a.toplevel,{WheelMove:SocialCalc.EditorProcessMouseWheel,editor:a});a.inputBox&&a.inputBox.element&&(a.inputBox.element.focus(),a.inputBox.element.blur());SocialCalc.KeyboardSetFocus(a);SocialCalc.EditorSheetStatusCallback(null,"startup",null,a);return a.toplevel};SocialCalc.SafariPasteFunction=function(a){a.preventDefault()}; SocialCalc.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()}; -SocialCalc.SaveEditorSettings=function(a){var c,b,d=a.context,e=a.range,g="";g+="version:1.0\n";for(c=0;c";return g};SocialCalc.EditorMouseInfo={registeredElements:[],editor:null,element:null,ignore:!1,mousedowncoord:"",mouselastcoord:"",mouseresizecol:"",mouseresizeclientx:null,mouseresizedisplay:null}; SocialCalc.EditorMouseRegister=function(a){var c=SocialCalc.EditorMouseInfo,b=a.fullgrid,d;for(d=0;d=^".indexOf(b.slice(-1))>=0&&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(), +SocialCalc.EditorMouseUnregister=function(a){var c=SocialCalc.EditorMouseInfo,b;for(b=0;b=^".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(), a.inputBox.DisplayCellContents(null));break;case "inputboxdirect":a.inputBox.Blur(),a.inputBox.ShowInputBox(!1),a.state="start",a.cellhandles.ShowCellHandles(!0),a.EditorSaveEdit(),a.inputBox.DisplayCellContents(null)}}; -SocialCalc.ProcessEditorMouseMove=function(a){var c,b,d=a||window.event;c=SocialCalc.GetViewportInfo();b=d.clientX+c.horizontalScroll;var e=d.clientY+c.verticalScroll,g=SocialCalc.EditorMouseInfo;if((c=g.editor)&&!g.ignore)if(b=SocialCalc.GridMousePosition(c,b,e))if(b&&!b.coord)SocialCalc.SetDragAutoRepeat(c,b);else if(SocialCalc.SetDragAutoRepeat(c,null),b.coord)b.coord!=g.mouselastcoord&&(!a.shiftKey&&!c.range.hasrange&&c.RangeAnchor(g.mousedowncoord),c.MoveECell(b.coord),c.RangeExtend()),g.mouselastcoord= -b.coord,c.EditorMouseRange(b.coord),d.stopPropagation?d.stopPropagation():d.cancelBubble=!0,d.preventDefault?d.preventDefault():d.returnValue=!1}; -SocialCalc.ProcessEditorMouseUp=function(a){var c,b,d,a=a||window.event;c=SocialCalc.GetViewportInfo();d=a.clientX+c.horizontalScroll;var e=a.clientY+c.verticalScroll,g=SocialCalc.EditorMouseInfo;if((c=g.editor)&&!g.ignore)if(b=g.element,d=SocialCalc.GridMousePosition(c,d,e),SocialCalc.SetDragAutoRepeat(c,null),d){if(!d.coord)d.coord=c.ecell.coord;c.range.hasrange?(c.MoveECell(d.coord),c.RangeExtend()):d.coord&&d.coord!=g.mousedowncoord&&(c.RangeAnchor(g.mousedowncoord),c.MoveECell(d.coord),c.RangeExtend()); -c.EditorMouseRange(d.coord);a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;a.preventDefault?a.preventDefault():a.returnValue=!1;document.removeEventListener?(document.removeEventListener("mousemove",SocialCalc.ProcessEditorMouseMove,!0),document.removeEventListener("mouseup",SocialCalc.ProcessEditorMouseUp,!0)):b.detachEvent&&(b.detachEvent("onlosecapture",SocialCalc.ProcessEditorMouseUp),b.detachEvent("onmouseup",SocialCalc.ProcessEditorMouseUp),b.detachEvent("onmousemove",SocialCalc.ProcessEditorMouseMove), -b.releaseCapture());g.editor=null;return!1}}; +SocialCalc.ProcessEditorMouseMove=function(a){var c,b,d=a||window.event;c=SocialCalc.GetViewportInfo();b=d.clientX+c.horizontalScroll;var e=d.clientY+c.verticalScroll,g=SocialCalc.EditorMouseInfo;if((c=g.editor)&&!g.ignore)if(b=SocialCalc.GridMousePosition(c,b,e))b&&!b.coord?SocialCalc.SetDragAutoRepeat(c,b):(SocialCalc.SetDragAutoRepeat(c,null),b.coord&&(b.coord!=g.mouselastcoord&&(!a.shiftKey&&!c.range.hasrange&&c.RangeAnchor(g.mousedowncoord),c.MoveECell(b.coord),c.RangeExtend()),g.mouselastcoord= +b.coord,c.EditorMouseRange(b.coord),d.stopPropagation?d.stopPropagation():d.cancelBubble=!0,d.preventDefault?d.preventDefault():d.returnValue=!1))}; +SocialCalc.ProcessEditorMouseUp=function(a){var c,b,d,a=a||window.event;c=SocialCalc.GetViewportInfo();d=a.clientX+c.horizontalScroll;var e=a.clientY+c.verticalScroll,g=SocialCalc.EditorMouseInfo;if((c=g.editor)&&!g.ignore)if(b=g.element,d=SocialCalc.GridMousePosition(c,d,e),SocialCalc.SetDragAutoRepeat(c,null),d)return d.coord||(d.coord=c.ecell.coord),c.range.hasrange?(c.MoveECell(d.coord),c.RangeExtend()):d.coord&&d.coord!=g.mousedowncoord&&(c.RangeAnchor(g.mousedowncoord),c.MoveECell(d.coord), +c.RangeExtend()),c.EditorMouseRange(d.coord),a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,a.preventDefault?a.preventDefault():a.returnValue=!1,document.removeEventListener?(document.removeEventListener("mousemove",SocialCalc.ProcessEditorMouseMove,!0),document.removeEventListener("mouseup",SocialCalc.ProcessEditorMouseUp,!0)):b.detachEvent&&(b.detachEvent("onlosecapture",SocialCalc.ProcessEditorMouseUp),b.detachEvent("onmouseup",SocialCalc.ProcessEditorMouseUp),b.detachEvent("onmousemove", +SocialCalc.ProcessEditorMouseMove),b.releaseCapture()),g.editor=null,!1}; SocialCalc.ProcessEditorColsizeMouseDown=function(a,c,b){var a=a||window.event,c=SocialCalc.EditorMouseInfo,d=c.editor,e=SocialCalc.GetViewportInfo(),e=a.clientX+e.horizontalScroll;c.mouseresizecolnum=b.coltoresize;c.mouseresizecol=SocialCalc.rcColname(b.coltoresize);c.mousedownclientx=e;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+0+"px";e.style.left=d.colpositions[b.coltoresize]+"px";e.innerHTML= '
 
'+d.context.colwidth[c.mouseresizecolnum]+"
";SocialCalc.setStyles(e.firstChild.lastChild.firstChild.childNodes[0],"filter:alpha(opacity=85);opacity:.85;");d.toplevel.appendChild(e);document.addEventListener?(document.addEventListener("mousemove", SocialCalc.ProcessEditorColsizeMouseMove,!0),document.addEventListener("mouseup",SocialCalc.ProcessEditorColsizeMouseUp,!0)):d.toplevel.attachEvent&&(d.toplevel.setCapture(),d.toplevel.attachEvent("onmousemove",SocialCalc.ProcessEditorColsizeMouseMove),d.toplevel.attachEvent("onmouseup",SocialCalc.ProcessEditorColsizeMouseUp),d.toplevel.attachEvent("onlosecapture",SocialCalc.ProcessEditorColsizeMouseUp));a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;a.preventDefault?a.preventDefault():a.returnValue= !1}; -SocialCalc.ProcessEditorColsizeMouseMove=function(a){var a=a||window.event,c=SocialCalc.EditorMouseInfo,b=c.editor;if(b){var d=SocialCalc.GetViewportInfo(),b=b.context.colwidth[c.mouseresizecolnum]-0+(a.clientX+d.horizontalScroll-c.mousedownclientx);if(b 
'+b+"
";SocialCalc.setStyles(c.firstChild.lastChild.firstChild.childNodes[0],"filter:alpha(opacity=85);opacity:.85;");a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;a.preventDefault?a.preventDefault():a.returnValue=!1}}; SocialCalc.ProcessEditorColsizeMouseUp=function(a){var c=a||window.event,a=SocialCalc.EditorMouseInfo,b=a.editor;if(b){element=a.element;var d=SocialCalc.GetViewportInfo(),d=c.clientX+d.horizontalScroll;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, -!0)):b.toplevel.detachEvent&&(b.toplevel.detachEvent("onlosecapture",SocialCalc.ProcessEditorColsizeMouseUp),b.toplevel.detachEvent("onmouseup",SocialCalc.ProcessEditorColsizeMouseUp),b.toplevel.detachEvent("onmousemove",SocialCalc.ProcessEditorColsizeMouseMove),b.toplevel.releaseCapture());c=b.context.colwidth[a.mouseresizecolnum]-0+(d-a.mousedownclientx);if(cd.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? -(a=c.rowd.mouseinfo.row?"right":"",d.repeatcallback(b,a)):(a.MoveECell(b),a.RangeExtend(),a.EditorMouseRange(b));d.mouseinfo=c;if(c.distance<5)d.repeatinterval=333;else if(c.distance<10)d.repeatinterval=250;else if(c.distance<25)d.repeatinterval=100;else if(c.distance<35)d.repeatinterval=75;else{if(d.timer)window.clearTimeout(d.timer),d.timer=null;return}if(!d.timer)d.timer=window.setTimeout(SocialCalc.DragAutoRepeat,d.repeatinterval)}else{if(d.timer)window.clearTimeout(d.timer), -d.timer=null;d.mouseinfo=null}}; -SocialCalc.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),b=="left"&&c.col>1?c.col--:b=="right"?c.col++:b=="up"&&c.row>1?c.row--:b=="down"&&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, +(a=c.rowd.mouseinfo.row?"right":"",d.repeatcallback(b,a)):(a.MoveECell(b),a.RangeExtend(),a.EditorMouseRange(b));d.mouseinfo=c;if(5>c.distance)d.repeatinterval=333;else if(10>c.distance)d.repeatinterval=250;else if(25>c.distance)d.repeatinterval=100;else if(35>c.distance)d.repeatinterval=75;else{d.timer&&(window.clearTimeout(d.timer),d.timer=null);return}d.timer||(d.timer=window.setTimeout(SocialCalc.DragAutoRepeat,d.repeatinterval))}else d.timer&&(window.clearTimeout(d.timer), +d.timer=null),d.mouseinfo=null}; +SocialCalc.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&&11&&c.substr(0,1)=="["||c.length==0)return a.ctrlkeyFunction&&c.length>0?a.ctrlkeyFunction(a,c):!0;if(!a.ecell)return!0;if(!a.inputBox)return!0;if(a.inputBox.element.style.display=="none"){for(d in a.StatusCallback)a.StatusCallback[d].func(a,"editecell",c,a.StatusCallback[d].params);return!0}a.inputBox.element.disabled=!1; -a.state="input";a.inputBox.ShowInputBox(!0);a.inputBox.Focus();a.inputBox.SetText(c);a.inputBox.Select("end");e.partialexpr="";e.ecoord=a.ecell.coord;e.erow=a.ecell.row;e.ecol=a.ecell.col;a.RangeRemove();break;case "input":d=a.inputBox.GetText();if(a.inputBox.skipOne)break;if(c=="[esc]"||c=="[enter]"||c=="[tab]"||c&&c.substr(0,2)=="[a"){if("(+-*/,:!&<>=^".indexOf(d.slice(-1))>=0&&d.slice(0,1)=="="||d=="=")e.partialexpr=d;if(e.partialexpr&&(b.shiftKey&&c.substr(0,2)=="[a"&&(c+="shifted"),d=a.MoveECellWithKey(c))){g.hasrange? -a.inputBox.SetText(e.partialexpr+SocialCalc.crToCoord(g.left,g.top)+":"+SocialCalc.crToCoord(g.right,g.bottom)):a.inputBox.SetText(e.partialexpr+d);break}a.inputBox.Blur();a.inputBox.ShowInputBox(!1);a.state="start";a.cellhandles.ShowCellHandles(!0);c!="[esc]"?(a.EditorSaveEdit(),a.ecell.coord!=e.ecoord&&a.MoveECell(e.ecoord),c=="[enter]"&&(c="[adown]"),c=="[tab]"&&(c=b.shiftKey?"[aleft]":"[aright]"),c.substr(0,2)=="[a"&&a.MoveECellWithKey(c)):(a.inputBox.DisplayCellContents(),a.RangeRemove(),a.MoveECell(e.ecoord)); -break}if(e.partialexpr&&c=="[backspace]"){a.inputBox.SetText(e.partialexpr);e.partialexpr="";a.RangeRemove();a.MoveECell(e.ecoord);a.inputBox.ShowInputBox(!0);break}if(c=="[f2]")break;g.hasrange&&a.RangeRemove();a.MoveECell(e.ecoord);if(e.partialexpr)a.inputBox.ShowInputBox(!0),e.partialexpr="";return!0;case "inputboxdirect":a.inputBox.GetText();if(c=="[esc]"||c=="[enter]"||c=="[tab]"){a.inputBox.Blur();a.inputBox.ShowInputBox(!1);a.state="start";a.cellhandles.ShowCellHandles(!0);c=="[esc]"?a.inputBox.DisplayCellContents(): -(a.EditorSaveEdit(),a.ecell.coord!=e.ecoord&&a.MoveECell(e.ecoord),c=="[enter]"&&(c="[adown]"),c=="[tab]"&&(c=b.shiftKey?"[aleft]":"[aright]"),c.substr(0,2)=="[a"&&a.MoveECellWithKey(c));break}return c=="[f2]"?!1:!0;case "skip-and-start":a.state="start";a.cellhandles.ShowCellHandles(!0);break;default:return!0}return!1}; -SocialCalc.EditorAddToInput=function(a,c,b){var d=a.workingvalues;if(!a.noEdit)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();if(d.partialexpr)a.inputBox.SetText(d.partialexpr),d.partialexpr="",a.RangeRemove(), -a.MoveECell(d.ecoord);a.inputBox.SetText(a.inputBox.GetText()+c)}};SocialCalc.EditorDisplayCellContents=function(a){a.inputBox&&a.inputBox.DisplayCellContents()}; -SocialCalc.EditorSaveEdit=function(a,c){var b,d;b=a.context.sheetobj;var e=a.workingvalues;d=typeof c=="string"?c:a.inputBox.GetText();b=SocialCalc.GetCellContents(b,e.ecoord)+"";d!=b&&(b=d.charAt(0),b=="="&&d.indexOf("\n")==-1?(b="formula",d=d.substring(1)):b=="'"?(b="text t",d=d.substring(1)):d.length==0?b="empty":(b=SocialCalc.DetermineValueType(d),b=b.type=="n"&&d==b.value+""?"value n":b.type.charAt(0)=="t"?"text "+b.type:b.type==""?"text t":"constant "+b.type+" "+b.value),b.charAt(0)=="t"&&(d= +SocialCalc.EditorOpenCellEdit=function(a){var c;if(!a.ecell||!a.inputBox||a.inputBox.element.disabled)return!0;if("none"==a.inputBox.element.style.display){for(f in a.StatusCallback)a.StatusCallback[f].func(a,"editecell",null,a.StatusCallback[f].params);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}; +SocialCalc.EditorProcessKey=function(a,c,b){var d,e=a.workingvalues,g=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.EditorApplySetCommandsToRange("empty","");break}if("[esc]"==c){if(g.hasrange)for(d in a.RangeRemove(),a.MoveECell(g.anchorcoord), +a.StatusCallback)a.StatusCallback[d].func(a,"specialkey",c,a.StatusCallback[d].params);break}if("[f2]"==c){if(a.noEdit)return!0;SocialCalc.EditorOpenCellEdit(a);break}if(1=^".indexOf(d.slice(-1))&&"="==d.slice(0,1)||"="==d)e.partialexpr=d;if(e.partialexpr&&(b.shiftKey&&"[a"==c.substr(0,2)&&(c+="shifted"),d=a.MoveECellWithKey(c))){g.hasrange? +a.inputBox.SetText(e.partialexpr+SocialCalc.crToCoord(g.left,g.top)+":"+SocialCalc.crToCoord(g.right,g.bottom)):a.inputBox.SetText(e.partialexpr+d);break}a.inputBox.Blur();a.inputBox.ShowInputBox(!1);a.state="start";a.cellhandles.ShowCellHandles(!0);"[esc]"!=c?(a.EditorSaveEdit(),a.ecell.coord!=e.ecoord&&a.MoveECell(e.ecoord),"[enter]"==c&&(c="[adown]"),"[tab]"==c&&(c=b.shiftKey?"[aleft]":"[aright]"),"[a"==c.substr(0,2)&&a.MoveECellWithKey(c)):(a.inputBox.DisplayCellContents(),a.RangeRemove(),a.MoveECell(e.ecoord)); +break}if(e.partialexpr&&"[backspace]"==c){a.inputBox.SetText(e.partialexpr);e.partialexpr="";a.RangeRemove();a.MoveECell(e.ecoord);a.inputBox.ShowInputBox(!0);break}if("[f2]"==c)break;g.hasrange&&a.RangeRemove();a.MoveECell(e.ecoord);e.partialexpr&&(a.inputBox.ShowInputBox(!0),e.partialexpr="");return!0;case "inputboxdirect":a.inputBox.GetText();if("[esc]"==c||"[enter]"==c||"[tab]"==c){a.inputBox.Blur();a.inputBox.ShowInputBox(!1);a.state="start";a.cellhandles.ShowCellHandles(!0);"[esc]"==c?a.inputBox.DisplayCellContents(): +(a.EditorSaveEdit(),a.ecell.coord!=e.ecoord&&a.MoveECell(e.ecoord),"[enter]"==c&&(c="[adown]"),"[tab]"==c&&(c=b.shiftKey?"[aleft]":"[aright]"),"[a"==c.substr(0,2)&&a.MoveECellWithKey(c));break}if("[f2]"==c)break;return!0;case "skip-and-start":a.state="start";a.cellhandles.ShowCellHandles(!0);break;default:return!0}return!1}; +SocialCalc.EditorAddToInput=function(a,c,b){var d=a.workingvalues;if(!a.noEdit)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="",a.RangeRemove(), +a.MoveECell(d.ecoord)),a.inputBox.SetText(a.inputBox.GetText()+c)}};SocialCalc.EditorDisplayCellContents=function(a){a.inputBox&&a.inputBox.DisplayCellContents()}; +SocialCalc.EditorSaveEdit=function(a,c){var b,d;b=a.context.sheetobj;var e=a.workingvalues;d="string"==typeof c?c:a.inputBox.GetText();b=SocialCalc.GetCellContents(b,e.ecoord)+"";d!=b&&(b=d.charAt(0),"="==b&&-1==d.indexOf("\n")?(b="formula",d=d.substring(1)):"'"==b?(b="text t",d=d.substring(1)):0==d.length?b="empty":(b=SocialCalc.DetermineValueType(d),b="n"==b.type&&d==b.value+""?"value n":"t"==b.type.charAt(0)?"text "+b.type:""==b.type?"text t":"constant "+b.type+" "+b.value),"t"==b.charAt(0)&&(d= SocialCalc.encodeForSave(d)),a.EditorScheduleSheetCommands("set "+e.ecoord+" "+b+" "+d,!0,!1))};SocialCalc.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()}; -SocialCalc.EditorProcessMouseWheel=function(a,c,b,d){d.functionobj.editor.busy||(c>0&&d.functionobj.editor.ScrollRelative(!0,-1),c<0&&d.functionobj.editor.ScrollRelative(!0,1))}; -SocialCalc.GridMousePosition=function(a,c,b){var d,e,g={};for(d=1;db)break;for(e=1;ec)break;g.row=d;g.col=e;if(a.headposition){if(c=a.gridposition.left)g.rowheader=!0,g.distance=a.headposition.left-c;else if(ba.gridposition.top){g.colheader=!0;g.distance=a.headposition.top-b;g.coltoresize=e-(a.colpositions[e]+ -a.colwidth[e]/2>c?1:0)||1;for(c=0;c=a.context.colpanes[c].first&&g.coltoresize<=a.context.colpanes[c].last)return g;delete g.coltoresize}else if(c>=a.verticaltablecontrol.controlborder)g.rowfooter=!0,g.distance=c-a.verticaltablecontrol.controlborder;else if(b>=a.horizontaltablecontrol.controlborder)g.colfooter=!0,g.distance=b-a.horizontaltablecontrol.controlborder;else if(cc&&d.functionobj.editor.ScrollRelative(!0,1))}; +SocialCalc.GridMousePosition=function(a,c,b){var d,e,g={};for(d=1;db);d++);for(e=1;ec);e++);g.row=d;g.col=e;if(a.headposition){if(c=a.gridposition.left)g.rowheader=!0,g.distance=a.headposition.left-c;else if(ba.gridposition.top){g.colheader=!0;g.distance=a.headposition.top-b;g.coltoresize=e-(a.colpositions[e]+ +a.colwidth[e]/2>c?1:0)||1;for(c=0;c=a.context.colpanes[c].first&&g.coltoresize<=a.context.colpanes[c].last)return g;delete g.coltoresize}else c>=a.verticaltablecontrol.controlborder?(g.rowfooter=!0,g.distance=c-a.verticaltablecontrol.controlborder):b>=a.horizontaltablecontrol.controlborder?(g.colfooter=!0,g.distance=b-a.horizontaltablecontrol.controlborder):c=a.context.rowpanes[d].first&&c<=a.context.rowpanes[d].last)for(e=0;e=a.context.colpanes[e].first&&b<=a.context.colpanes[e].last){j+=c-a.context.rowpanes[d].first+2;for(g=a.context.colpanes[e].first;g<=b;g++)h=a.context.cellskip[SocialCalc.crToCoord(g,c)],(!h||!a.context.CoordInPane(h,d,e))&&k++;return{element:a.griddiv.firstChild.lastChild.childNodes[j].childNodes[k], rowpane:d,colpane:e}}for(g=a.context.colpanes[e].first;g<=a.context.colpanes[e].last;g++)h=a.context.cellskip[SocialCalc.crToCoord(g,c)],(!h||!a.context.CoordInPane(h,d,e))&&k++;k+=1}j+=a.context.rowpanes[d].last-a.context.rowpanes[d].first+2}return null}; -SocialCalc.MoveECellWithKey=function(a,c){var b,d,e,g=!1;if(!a.ecell)return null;c.slice(-7)=="shifted"&&(c=c.slice(0,-7),g=!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--;break;case "[pgdn]":b+=a.pageUpDnAmount-1+(e&&e.rowspan||1);break;case "[pgup]":b-=a.pageUpDnAmount;break;case "[aright]":d+=e&&e.colspan||1;break;case "[aleft]":d--;break;case "[home]":d=b=1;break;default:return null}a.range.hasrange|| +SocialCalc.MoveECellWithKey=function(a,c){var b,d,e,g=!1;if(!a.ecell)return null;"shifted"==c.slice(-7)&&(c=c.slice(0,-7),g=!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--;break;case "[pgdn]":b+=a.pageUpDnAmount-1+(e&&e.rowspan||1);break;case "[pgup]":b-=a.pageUpDnAmount;break;case "[aright]":d+=e&&e.colspan||1;break;case "[aleft]":d--;break;case "[home]":d=b=1;break;default:return null}a.range.hasrange|| g&&a.RangeAnchor();b=a.MoveECell(SocialCalc.crToCoord(d,b));a.range.hasrange&&(g?a.RangeExtend():a.RangeRemove());return b}; SocialCalc.MoveECell=function(a,c){var b,d,e=a.context.highlights;if(a.ecell){if(a.ecell.coord==c)return c;SocialCalc.Callbacks.broadcast&&SocialCalc.Callbacks.broadcast("ecell",{original:a.ecell.coord,ecell:c});b=SocialCalc.GetEditorCellElement(a,a.ecell.row,a.ecell.col);delete e[a.ecell.coord];a.range2.hasrange&&a.ecell.row>=a.range2.top&&a.ecell.row<=a.range2.bottom&&a.ecell.col>=a.range2.left&&a.ecell.col<=a.range2.right&&(e[a.ecell.coord]="range2");a.UpdateCellCSS(b,a.ecell.row,a.ecell.col); a.SetECellHeaders("");a.cellhandles.ShowCellHandles(!1)}else SocialCalc.Callbacks.broadcast&&SocialCalc.Callbacks.broadcast("ecell",{ecell:c});c=a.context.cellskip[c]||c;a.ecell=SocialCalc.coordToCr(c);a.ecell.coord=c;b=SocialCalc.GetEditorCellElement(a,a.ecell.row,a.ecell.col);e[c]="cursor";for(d in a.MoveECellCallback)a.MoveECellCallback[d](a);a.UpdateCellCSS(b,a.ecell.row,a.ecell.col);a.SetECellHeaders("selected");for(d in a.StatusCallback)a.StatusCallback[d].func(a,"moveecell",c,a.StatusCallback[d].params); -a.busy?a.ensureecell=!0:(a.ensureecell=!1,a.EnsureECellVisible());return c};SocialCalc.EnsureECellVisible=function(a){var c=0,b=0;a.ecell.row>a.lastnonscrollingrow&&(a.ecell.rowa.lastvisiblerow&&(c=a.ecell.row-a.lastvisiblerow));a.ecell.col>a.lastnonscrollingcol&&(a.ecell.cola.lastvisiblecol&&(b=a.ecell.col-a.lastvisiblecol));c!=0||b!=0?a.ScrollRelativeBoth(c,b):a.cellhandles.ShowCellHandles(!0)}; -SocialCalc.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)a.style[e]!="cssText"&&(c.element.style[e]=a.style[e])}; -SocialCalc.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)a.style[e]!="cssText"&&(c.element.style[e]=a.style[e])}; -SocialCalc.SetECellHeaders=function(a,c){var b=a.ecell,d=a.context,e,g,h,j=0,k=0,m;if(b){for(e=0;e=g&&b.row<=h&&(m=a.fullgrid.childNodes[1].childNodes[2+j+b.row-g].childNodes[0])){if(d.classnames)m.className=d.classnames[c+"rowname"];if(d.explicitStyles)m.style.cssText=d.explicitStyles[c+"rowname"];m.style.verticalAlign="top"}j+=h-g+2}for(e=0;e=g&& -b.col<=h&&(m=a.fullgrid.childNodes[1].childNodes[1].childNodes[1+k+b.col-g])){if(d.classnames)m.className=d.classnames[c+"colname"];if(d.explicitStyles)m.style.cssText=d.explicitStyles[c+"colname"]}k+=h-g+2}}};SocialCalc.RangeAnchor=function(a,c){a.range.hasrange&&a.RangeRemove();a.RangeExtend(c)}; -SocialCalc.RangeExtend=function(a,c){var b,d,e,g,h,j,k=a.context.highlights;b=a.range;d=a.range2;c?(g=SocialCalc.coordToCr(c),g.coord=c):g=a.ecell;if(g){if(!b.hasrange)b.anchorcoord=g.coord,b.anchorrow=g.row,b.top=g.row,b.bottom=g.row,b.anchorcol=g.col,b.left=g.col,b.right=g.col,b.hasrange=!0;b.anchorrowa.lastnonscrollingrow&&(a.ecell.rowa.lastvisiblerow&&(c=a.ecell.row-a.lastvisiblerow));a.ecell.col>a.lastnonscrollingcol&&(a.ecell.cola.lastvisiblecol&&(b=a.ecell.col-a.lastvisiblecol));0!=c||0!=b?a.ScrollRelativeBoth(c,b):a.cellhandles.ShowCellHandles(!0)}; +SocialCalc.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])}; +SocialCalc.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])}; +SocialCalc.SetECellHeaders=function(a,c){var b=a.ecell,d=a.context,e,g,h,j=0,k=0,m;if(b){for(e=0;e=g&&b.row<=h&&(m=a.fullgrid.childNodes[1].childNodes[2+j+b.row-g].childNodes[0]))d.classnames&&(m.className=d.classnames[c+"rowname"]),d.explicitStyles&&(m.style.cssText=d.explicitStyles[c+"rowname"]),m.style.verticalAlign="top";j+=h-g+2}for(e=0;e=g&& +b.col<=h&&(m=a.fullgrid.childNodes[1].childNodes[1].childNodes[1+k+b.col-g]))if(d.classnames&&(m.className=d.classnames[c+"colname"]),d.explicitStyles)m.style.cssText=d.explicitStyles[c+"colname"];k+=h-g+2}}};SocialCalc.RangeAnchor=function(a,c){a.range.hasrange&&a.RangeRemove();a.RangeExtend(c)}; +SocialCalc.RangeExtend=function(a,c){var b,d,e,g,h,j,k=a.context.highlights;b=a.range;d=a.range2;c?(g=SocialCalc.coordToCr(c),g.coord=c):g=a.ecell;if(g){b.hasrange||(b.anchorcoord=g.coord,b.anchorrow=g.row,b.top=g.row,b.bottom=g.row,b.anchorcol=g.col,b.left=g.col,b.right=g.col,b.hasrange=!0);b.anchorrow0?b-0:10}for(c=e.colpanes[colpane].first;c<=1E4;c++){b=SocialCalc.rcColname(c);b=g.colattribs.width[b]||g.attribs.defaultcolwidth|| -SocialCalc.Constants.defaultColWidth;if(b=="blank"||b=="auto")b="";d+=b&&b-0>0?b-0:10;if(d>a.tablewidth)break}e.colpanes[colpane].last=c;c=e.showRCHeaders?1:0;for(d=0;da.gridposition.top+a.tableheight)break;a.lastvisiblerow=c-1;a.colpositions=[];for(c=0;ca.gridposition.left+a.tablewidth)break;a.lastvisiblecol=c-1;a.firstscrollingrow=a.context.rowpanes[a.context.rowpanes.length-1].first;a.firstscrollingrowtop=a.rowpositions[a.firstscrollingrow]||a.headposition.top;a.lastnonscrollingrow=a.context.rowpanes.length-1>0?a.context.rowpanes[a.context.rowpanes.length-2].last:0;a.firstscrollingcol=a.context.colpanes[a.context.colpanes.length-1].first;a.firstscrollingcolleft= -a.colpositions[a.firstscrollingcol]||a.headposition.left;a.lastnonscrollingcol=a.context.colpanes.length-1>0?a.context.colpanes[a.context.colpanes.length-2].last:0;a.verticaltablecontrol.ComputeTableControlPositions();a.horizontaltablecontrol.ComputeTableControlPositions()}; -SocialCalc.ScheduleRender=function(a){a.timeout&&window.clearTimeout(a.timeout);SocialCalc.EditorSheetStatusCallback(null,"schedrender",null,a);SocialCalc.EditorStepInfo.editor=a;a.timeout=window.setTimeout(SocialCalc.DoRenderStep,1)}; +SocialCalc.FitToEditTable=function(a){var c,b,d,e=a.context,g=e.sheetobj;d=e.showRCHeaders?e.rownamewidth-0:0;for(colpane=0;colpane=c;c++){b=SocialCalc.rcColname(c);b=g.colattribs.width[b]||g.attribs.defaultcolwidth|| +SocialCalc.Constants.defaultColWidth;if("blank"==b||"auto"==b)b="";d+=b&&0a.tablewidth)break}e.colpanes[colpane].last=c;c=e.showRCHeaders?1:0;for(d=0;da.gridposition.top+a.tableheight);c++);a.lastvisiblerow=c-1;a.colpositions=[];for(c=0;ca.gridposition.left+a.tablewidth);c++);a.lastvisiblecol=c-1;a.firstscrollingrow=a.context.rowpanes[a.context.rowpanes.length-1].first;a.firstscrollingrowtop=a.rowpositions[a.firstscrollingrow]||a.headposition.top;a.lastnonscrollingrow=01?d.rowpanes[e-2].last+1:1;d.rowpanes[e-1].first+c1?d.colpanes[g-2].last+1:1;d.colpanes[g-1].first+b0)c=a[g],c==d.first&&(c+=1);else{b=c?a.tableheight-(a.firstscrollingrowtop-a.gridposition.top):a.tablewidth-(a.firstscrollingcolleft-a.gridposition.left);b-=e[a[g]]>0?e[a[g]]:h;for(c=d.first-1;c>0;c--){g=e[c]>0?e[c]:h;if(b=e&&(c=e-1);c<1&&(c=1)}d.first=c;d.last=c+1;a.LimitLastPanes();a.FitToEditTable();a.ScheduleRender()};SocialCalc.LimitLastPanes=function(a){var a=a.context,c;c=a.rowpanes.length;if(c>1&&a.rowpanes[c-1].first<=a.rowpanes[c-2].last)a.rowpanes[c-1].first=a.rowpanes[c-2].last+1;c=a.colpanes.length;if(c>1&&a.colpanes[c-1].first<=a.colpanes[c-2].last)a.colpanes[c-1].first=a.colpanes[c-2].last+1}; -SocialCalc.ScrollTableUpOneRow=function(a){var c,b,d,e,g,h,j={},k=a.context,m=k.sheetobj,n=a.fullgrid,s;s=n.lastChild;c=k.showRCHeaders?2:1;for(b=0;bmaxrowspan)maxrowspan=h.rowspan;if(maxrowspan>1)for(d=1;d=k.rowpanes[b].last)break;e=k.RenderRow(d+a,b);g=s.childNodes[c+d-1];s.replaceChild(e,g)}a=k.rowpanes[b].last;for(g=0;g -1&&(j[d]=!0);for(d in j)e=k.RenderRow(d,b),g=s.childNodes[c+(d-k.rowpanes[b].first)],s.replaceChild(e,g);return n}; -SocialCalc.ScrollTableDownOneRow=function(a){var c,b,d,e,g,h,j={},k=a.context,m=k.sheetobj,n=a.fullgrid,s;s=n.lastChild;c=k.showRCHeaders?2:1;for(b=0;bmaxrowspan)maxrowspan=h.rowspan;if(maxrowspan>1)for(d=1;dk.rowpanes[b].last)break;e=k.RenderRow(d+a,b);g=s.childNodes[c+d];s.replaceChild(e,g)}a=k.rowpanes[b].last;for(g=0;g1)j[a]=!0;else if(coord=k.cellskip[SocialCalc.crToCoord(e, -a)])d=k.coordToCR[coord].row-0,d==a||d1&&(j[d]=!0);for(d in j)e=k.RenderRow(d,b),g=s.childNodes[c+(d-k.rowpanes[b].first)],s.replaceChild(e,g);return n};SocialCalc.InputBox=function(a,c){if(a)this.element=a,this.editor=c,this.inputEcho=null,c.inputBox=this,a.onmousedown=SocialCalc.InputBoxOnMouseDown,c.MoveECellCallback.formulabar=function(a){a.state=="start"&&c.inputBox.DisplayCellContents(a.ecell.coord)}}; -SocialCalc.InputBox.prototype.DisplayCellContents=function(a){SocialCalc.InputBoxDisplayCellContents(this,a)};SocialCalc.InputBox.prototype.ShowInputBox=function(a){this.editor.inputEcho.ShowInputEcho(a)};SocialCalc.InputBox.prototype.GetText=function(){return this.element.value};SocialCalc.InputBox.prototype.SetText=function(a){if(this.element)this.element.value=a,this.editor.inputEcho.SetText(a+"_")};SocialCalc.InputBox.prototype.Focus=function(){SocialCalc.InputBoxFocus(this)}; +SocialCalc.PageRelative=function(a,c,b){var d=a.context,e=c?"rowpanes":"colpanes",d=d[e][d[e].length-1],g=c?"lastvisiblerow":"lastvisiblecol",e=c?a.rowheight:a.colwidth,h=c?SocialCalc.Constants.defaultAssumedRowHeight:SocialCalc.Constants.defaultColWidth;if(0=e&&(c=e-1);1>c&&(c=1)}d.first=c;d.last=c+1;a.LimitLastPanes();a.FitToEditTable();a.ScheduleRender()};SocialCalc.LimitLastPanes=function(a){var a=a.context,c;c=a.rowpanes.length;1maxrowspan)maxrowspan=h.rowspan;if(1=k.rowpanes[b].last);d++)e=k.RenderRow(d+a,b),g=r.childNodes[c+d-1],r.replaceChild(e,g);a=k.rowpanes[b].last;for(g=0;gmaxrowspan)maxrowspan=h.rowspan;if(1k.rowpanes[b].last);d++)e=k.RenderRow(d+a,b),g=r.childNodes[c+d],r.replaceChild(e,g);a=k.rowpanes[b].last;for(g=0;g");if(a.text!=d)a.main.innerHTML=d,a.text=d;d=c.match(/.*[\+\-\*\/\&\^\<\>\=\,\(]([A-Za-z][A-ZA-z]\w*?)\([^\)]*$/);if(c.charAt(0)=="="&&d){if(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= -b,a.prompt.style.display="block"}else if(a.prompt.style.display!="none")a.prompt.innerHTML="",a.prompt.style.display="none"};SocialCalc.InputEchoHeartbeat=function(){var a=SocialCalc.Keyboard.focusTable;if(!a)return!0;a.inputEcho.SetText(a.inputBox.GetText()+"_")};SocialCalc.InputEchoMouseDown=function(){var a=SocialCalc.Keyboard.focusTable;if(!a)return!0;a.inputBox.element.focus()}; +SocialCalc.SetInputEchoText=function(a,c){var b=SocialCalc.Constants,d;d=SocialCalc.special_chars(c);d=d.replace(/\n/g,"
");a.text!=d&&(a.main.innerHTML=d,a.text=d);d=c.match(/.*[\+\-\*\/\&\^\<\>\=\,\(]([A-Za-z][A-ZA-z]\w*?)\([^\)]*$/);if("="==c.charAt(0)&&d){if(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= +b,a.prompt.style.display="block"}else"none"!=a.prompt.style.display&&(a.prompt.innerHTML="",a.prompt.style.display="none")};SocialCalc.InputEchoHeartbeat=function(){var a=SocialCalc.Keyboard.focusTable;if(!a)return!0;a.inputEcho.SetText(a.inputBox.GetText()+"_")};SocialCalc.InputEchoMouseDown=function(){var a=SocialCalc.Keyboard.focusTable;if(!a)return!0;a.inputBox.element.focus()}; SocialCalc.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=" ";a.toplevel.appendChild(this.draghandle);SocialCalc.AssignID(a,this.draghandle,"draghandle");var c="png";navigator.userAgent.match(/MSIE 6\.0/)&& (c="gif");this.dragpalette=document.createElement("div");SocialCalc.setStyles(this.dragpalette,"display:none;position:absolute;zIndex:8;width:90px;height:90px;fontSize:1px;textAlign:center;cursor:default;backgroundImage:url("+SocialCalc.Constants.defaultImagePrefix+"drag-handles."+c+");");this.dragpalette.innerHTML=" ";a.toplevel.appendChild(this.dragpalette);SocialCalc.AssignID(a,this.dragpalette,"dragpalette");this.dragtooltip=document.createElement("div");SocialCalc.setStyles(this.dragtooltip, "display:none;position:absolute;zIndex:9;border:1px solid black;width:100px;height:auto;fontSize:10px;backgroundColor:#FFFFFF;");this.dragtooltip.innerHTML=" ";a.toplevel.appendChild(this.dragtooltip);SocialCalc.AssignID(a,this.dragtooltip,"dragtooltip");this.fillinghandle=document.createElement("div");SocialCalc.setStyles(this.fillinghandle,"display:none;position:absolute;zIndex:9;border:1px solid black;width:auto;height:14px;fontSize:10px;backgroundColor:#FFFFFF;");this.fillinghandle.innerHTML= " ";a.toplevel.appendChild(this.fillinghandle);SocialCalc.AssignID(a,this.fillinghandle,"fillinghandle");if(this.draghandle.addEventListener)this.draghandle.addEventListener("mousemove",SocialCalc.CellHandlesMouseMoveOnHandle,!1),this.dragpalette.addEventListener("mousedown",SocialCalc.CellHandlesMouseDown,!1),this.dragpalette.addEventListener("mousemove",SocialCalc.CellHandlesMouseMoveOnHandle,!1);else if(this.draghandle.attachEvent)this.draghandle.attachEvent("onmousemove",SocialCalc.CellHandlesMouseMoveOnHandle), this.dragpalette.attachEvent("onmousedown",SocialCalc.CellHandlesMouseDown),this.dragpalette.attachEvent("onmousemove",SocialCalc.CellHandlesMouseMoveOnHandle);else throw"Browser not supported";}};SocialCalc.CellHandles.prototype.ShowCellHandles=function(a,c){return SocialCalc.ShowCellHandles(this,a,c)}; -SocialCalc.ShowCellHandles=function(a,c,b){var d=a.editor,e=!1,g;if(d){if(c&&(c=d.ecell.row,g=d.ecell.col,d.state=="start"&&!(c>=d.lastvisiblerow)&&!(g>=d.lastvisiblecol)&&!(cd.horizontaltablecontrol.controlborder)&&!(d.rowpositions[c+1]-10d.verticaltablecontrol.controlborder)&&!(d.colpositions[g+1]-30=d.lastvisiblerow)&&!(g>=d.lastvisiblecol)&&!(cd.horizontaltablecontrol.controlborder)&&!(d.rowpositions[c+1]-10d.verticaltablecontrol.controlborder)&&!(d.colpositions[g+1]-30=h&&b=c&&d=h+e/2&&b=c&&d=h+e/2&&b=c+g/2&&d=h&&b=c+g/2&&d=h&&b=c&&d=h+e/2&&b=c&&d=h+e/2&&b=c+g/2&&d=h&&b=c+g/2&&d=h&&b=c&&d=h+e/2&&b=c&&d=h+e/2&&b=c+g/2&&d=h&&b=c+g/2&&d=h&&b=c&&d=h+e/2&&b=c&&d=h+e/2&&b=c+g/2&&d=h&&b=c+g/2&&d10)m.filltype="Down";else if(Math.abs(h-m.startingX)>10)m.filltype="Right";g.col=e.col;g.row=e.row}d.coord=SocialCalc.crToCoord(g.col,g.row);d.coord!=k.mouselastcoord&&(b.MoveECell(d.coord),b.RangeExtend());break; -case "Move":case "MoveC":d.coord!=k.mouselastcoord&&(b.MoveECell(d.coord),e=b.range2.right-b.range2.left+d.col,g=b.range2.bottom-b.range2.top+d.row,b.RangeAnchor(SocialCalc.crToCoord(e,g)),b.RangeExtend());break;case "MoveI":case "MoveIC":if(d.coord==m.startingcoord)m.filltype=null,m.startingX=h,m.startingY=j;else if(m.filltype)if(m.filltype=="Vertical"){if(g.col=b.range2.left,g.row>=b.range2.top&&g.row<=b.range2.bottom+1)g.row=b.range2.bottom+2}else{if(g.row=b.range2.top,g.col>=b.range2.left&&g.col<= -b.range2.right+1)g.col=b.range2.right+2}else{if(Math.abs(j-m.startingY)>10)m.filltype="Vertical";else if(Math.abs(h-m.startingX)>10)m.filltype="Horizontal";g.col=e.col;g.row=e.row}d.coord=SocialCalc.crToCoord(g.col,g.row);d.coord!=k.mouselastcoord&&(b.MoveECell(d.coord),m.filltype?(e=b.range2.right-b.range2.left+g.col,g=b.range2.bottom-b.range2.top+g.row,b.RangeAnchor(SocialCalc.crToCoord(e,g)),b.RangeExtend()):b.RangeRemove())}m.fillinghandle.style.left=h+"px";m.fillinghandle.style.top=j-17+"px"; -m.fillinghandle.innerHTML=c.s_CHindicatorOperationLookup[m.dragtype]+(c.s_CHindicatorDirectionLookup[b.cellhandles.filltype]||"");m.fillinghandle.style.display="block";k.mouselastcoord=d.coord;a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;a.preventDefault?a.preventDefault():a.returnValue=!1}}}; -SocialCalc.CellHandlesDragAutoRepeat=function(a,c){var b=SocialCalc.EditorMouseInfo,d=b.editor;if(d){var e=d.cellhandles,g=SocialCalc.coordToCr(d.cellhandles.startingcoord),h=SocialCalc.coordToCr(a),j,k=0,m=0;c=="left"?m=-1:c=="right"?m=1:c=="up"?k=-1:c=="down"&&(k=1);d.ScrollRelativeBoth(k,m);switch(e.dragtype){case "Fill":case "FillC":if(e.filltype)if(e.filltype=="Down"){if(h.col=g.col,h.row=d.range2.top&&h.row<=d.range2.bottom+1)h.row=d.range2.bottom+2}else{if(h.row=d.range2.top,h.col>=d.range2.left&&h.col<=d.range2.right+ -1)h.col=d.range2.right+2}else h.col=g.col,h.row=g.row;j=SocialCalc.crToCoord(h.col,h.row);j!=b.mouselastcoord&&(d.MoveECell(j),e=d.range2.right-d.range2.left+h.col,h=d.range2.bottom-d.range2.top+h.row,d.RangeAnchor(SocialCalc.crToCoord(e,h)),d.RangeExtend())}b.mouselastcoord=j}}; -SocialCalc.CellHandlesMouseUp=function(a){var c,b,d,e,g,h,a=a||window.event;c=SocialCalc.GetViewportInfo();b=a.clientX+c.horizontalScroll;e=a.clientY+c.verticalScroll;var j=SocialCalc.EditorMouseInfo;if(c=j.editor){var k=c.cellhandles;j.ignore=!1;b=SocialCalc.GridMousePosition(c,b,e);SocialCalc.SetDragAutoRepeat(c,null);k.mouseDown=!1;k.noCursorSuffix=!1;k.fillinghandle.style.display="none";b||(b={});if(!b.coord)b.coord=c.ecell.coord;switch(k.dragtype){case "Fill":case "Move":case "MoveI":d=" all"; -break;case "FillC":case "MoveC":case "MoveIC":d=" formulas"}if(!k.movedmouse)k.dragtype="Nothing";switch(k.dragtype){case "Nothing":c.Range2Remove();c.RangeRemove();break;case "Fill":case "FillC":e=SocialCalc.coordToCr(k.startingcoord);g=SocialCalc.coordToCr(b.coord);if(k.filltype)k.filltype=="Down"?g.col=e.col:g.row=e.row;b.coord=SocialCalc.crToCoord(g.col,g.row);c.MoveECell(b.coord);c.RangeExtend();b=c.cellhandles.filltype=="Right"?"right":"down";d="fill"+b+" "+SocialCalc.crToCoord(c.range.left, +m.movedmouse=!0;switch(m.dragtype){case "Fill":case "FillC":d.coord==m.startingcoord?(m.filltype=null,m.startingX=h,m.startingY=j):m.filltype?"Down"==m.filltype?(g.col=e.col,g.row=b.range2.top&&g.row<=b.range2.bottom+1&&(g.row=b.range2.bottom+2)):(g.row=b.range2.top,g.col>=b.range2.left&&g.col<=b.range2.right+1&&(g.col=b.range2.right+2)): +(10=d.range2.top&&h.row<=d.range2.bottom+1&&(h.row=d.range2.bottom+2)):(h.row=d.range2.top,h.col>=d.range2.left&&h.col<=d.range2.right+ +1&&(h.col=d.range2.right+2)):(h.col=g.col,h.row=g.row),j=SocialCalc.crToCoord(h.col,h.row),j!=b.mouselastcoord)d.MoveECell(j),e=d.range2.right-d.range2.left+h.col,h=d.range2.bottom-d.range2.top+h.row,d.RangeAnchor(SocialCalc.crToCoord(e,h)),d.RangeExtend()}b.mouselastcoord=j}}; +SocialCalc.CellHandlesMouseUp=function(a){var c,b,d,e,g,h,a=a||window.event;c=SocialCalc.GetViewportInfo();b=a.clientX+c.horizontalScroll;e=a.clientY+c.verticalScroll;var j=SocialCalc.EditorMouseInfo;if(c=j.editor){var k=c.cellhandles;j.ignore=!1;b=SocialCalc.GridMousePosition(c,b,e);SocialCalc.SetDragAutoRepeat(c,null);k.mouseDown=!1;k.noCursorSuffix=!1;k.fillinghandle.style.display="none";b||(b={});b.coord||(b.coord=c.ecell.coord);switch(k.dragtype){case "Fill":case "Move":case "MoveI":d=" all"; +break;case "FillC":case "MoveC":case "MoveIC":d=" formulas"}k.movedmouse||(k.dragtype="Nothing");switch(k.dragtype){case "Nothing":c.Range2Remove();c.RangeRemove();break;case "Fill":case "FillC":e=SocialCalc.coordToCr(k.startingcoord);g=SocialCalc.coordToCr(b.coord);k.filltype&&("Down"==k.filltype?g.col=e.col:g.row=e.row);b.coord=SocialCalc.crToCoord(g.col,g.row);c.MoveECell(b.coord);c.RangeExtend();b="Right"==c.cellhandles.filltype?"right":"down";d="fill"+b+" "+SocialCalc.crToCoord(c.range.left, c.range.top)+":"+SocialCalc.crToCoord(c.range.right,c.range.bottom)+d;c.EditorScheduleSheetCommands(d,!0,!1);break;case "Move":case "MoveC":c.context.cursorsuffix="";d="movepaste "+SocialCalc.crToCoord(c.range2.left,c.range2.top)+":"+SocialCalc.crToCoord(c.range2.right,c.range2.bottom)+" "+c.ecell.coord+d;c.EditorScheduleSheetCommands(d,!0,!1);c.Range2Remove();break;case "MoveI":case "MoveIC":c.context.cursorsuffix="",b=c.range2.right-c.range2.left,e=c.range2.bottom-c.range2.top,g=c.ecell.col-c.range2.left, -h=c.ecell.row-c.range2.top,d="moveinsert "+SocialCalc.crToCoord(c.range2.left,c.range2.top)+":"+SocialCalc.crToCoord(c.range2.right,c.range2.bottom)+" "+c.ecell.coord+d,c.EditorScheduleSheetCommands(d,!0,!1),c.Range2Remove(),c.RangeRemove(),c.cellhandles.filltype==" Horizontal"&&g>0?c.MoveECell(SocialCalc.crToCoord(c.ecell.col-b-1,c.ecell.row)):c.cellhandles.filltype==" Vertical"&&h>0&&c.MoveECell(SocialCalc.crToCoord(c.ecell.col,c.ecell.row-e-1)),c.RangeAnchor(SocialCalc.crToCoord(c.ecell.col+b, +h=c.ecell.row-c.range2.top,d="moveinsert "+SocialCalc.crToCoord(c.range2.left,c.range2.top)+":"+SocialCalc.crToCoord(c.range2.right,c.range2.bottom)+" "+c.ecell.coord+d,c.EditorScheduleSheetCommands(d,!0,!1),c.Range2Remove(),c.RangeRemove()," Horizontal"==c.cellhandles.filltype&&0a.thumbpos?1:-1)}; SocialCalc.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", @@ -413,23 +411,23 @@ a.morebuttonstart+"px",a.morebutton.style.top=c,a.scrollarea.style.left=a.scroll SocialCalc.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= c.gridposition.top+c.tableheight,a.endcapstart=c.gridposition.left,a.panesliderstart=c.firstscrollingcolleft-a.sliderthickness,a.lessbuttonstart=c.firstscrollingcolleft-1,a.morebuttonstart=c.gridposition.left+c.tablewidth-a.buttonthickness,a.scrollareastart=c.firstscrollingcolleft-1+a.buttonthickness);a.scrollareaend=a.morebuttonstart-1;a.scrollareasize=a.scrollareaend-a.scrollareastart+1}; SocialCalc.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-"+ -(b.vertical?"v":"h")+".gif)";if(e.TCPStrackinglineClass)c.trackingline.className=e.TCPStrackinglineClass;SocialCalc.setStyles(c.trackingline,e.TCPStrackinglineStyle);b.vertical?(row=SocialCalc.Lookup(c.clientY+b.functionobj.control.sliderthickness,d.rowpositions),c.trackingline.style.top=(d.rowpositions[row]||d.headposition.top)+"px",c.trackingline.style.left=d.headposition.left+"px",d.context.rowpanes.length-1&&(d.context.SetRowPaneFirstLast(1,d.context.rowpanes[0].last+1,d.context.rowpanes[0].last+ +(b.vertical?"v":"h")+".gif)";e.TCPStrackinglineClass&&(c.trackingline.className=e.TCPStrackinglineClass);SocialCalc.setStyles(c.trackingline,e.TCPStrackinglineStyle);b.vertical?(row=SocialCalc.Lookup(c.clientY+b.functionobj.control.sliderthickness,d.rowpositions),c.trackingline.style.top=(d.rowpositions[row]||d.headposition.top)+"px",c.trackingline.style.left=d.headposition.left+"px",d.context.rowpanes.length-1&&(d.context.SetRowPaneFirstLast(1,d.context.rowpanes[0].last+1,d.context.rowpanes[0].last+ 1),d.FitToEditTable(),d.ScheduleRender())):(col=SocialCalc.Lookup(c.clientX+b.functionobj.control.sliderthickness,d.colpositions),c.trackingline.style.top=d.headposition.top+"px",c.trackingline.style.left=(d.colpositions[col]||d.headposition.left)+"px",d.context.colpanes.length-1&&(d.context.SetColPaneFirstLast(1,d.context.colpanes[0].last+1,d.context.colpanes[0].last+1),d.FitToEditTable(),d.ScheduleRender()));d.griddiv.appendChild(c.trackingline)}; -SocialCalc.TCPSDragFunctionMove=function(a,c,b){var d,e;e=b.functionobj.control;d=e.sliderthickness;var g=e.editor;if(b.vertical){e=e.morebuttonstart-e.minscrollingpanesize-c.offsetY;if(c.clientY>e)c.clientY=e;e=g.headposition.top-d-c.offsetY;if(c.clientYe)c.clientX=e;e=g.headposition.left-d-c.offsetX; -if(c.clientXb)c.clientY=b;b=a.headposition.top-d-c.offsetY;if(c.clientYa.context.sheetobj.attribs.lastrow)d=a.context.sheetobj.attribs.lastrow;if(!d||d<=a.context.rowpanes[0].first){if(a.context.rowpanes.length>1)a.context.rowpanes.length=1}else a.context.rowpanes.length- -1?a.timeout||(a.context.SetRowPaneFirstLast(0,a.context.rowpanes[0].first,d-1),a.context.SetRowPaneFirstLast(1,d,d)):(a.context.SetRowPaneFirstLast(0,a.context.rowpanes[0].first,d-1),a.context.SetRowPaneFirstLast(1,d,d))}else{b=e.morebuttonstart-e.minscrollingpanesize-c.offsetX;if(c.clientX>b)c.clientX=b;b=a.headposition.left-d-c.offsetX;if(c.clientXa.context.sheetobj.attribs.lastcol)d=a.context.sheetobj.attribs.lastcol;if(!d||d<= -a.context.colpanes[0].first){if(a.context.colpanes.length>1)a.context.colpanes.length=1}else a.context.colpanes.length-1?a.timeout||(a.context.SetColPaneFirstLast(0,a.context.colpanes[0].first,d-1),a.context.SetColPaneFirstLast(1,d,d)):(a.context.SetColPaneFirstLast(0,a.context.colpanes[0].first,d-1),a.context.SetColPaneFirstLast(1,d,d))}a.FitToEditTable();a.griddiv.removeChild(c.trackingline);a.ScheduleRender()}; -SocialCalc.TCTDragFunctionStart=function(a,c,b){var d=b.functionobj.control,e=d.editor,g=SocialCalc.Constants;SocialCalc.DragFunctionStart(a,c,b);if(c.thumbstatus){if(c.thumbstatus.rowmsgele)c.thumbstatus.rowmsgele=null;if(c.thumbstatus.rowpreviewele)c.thumbstatus.rowpreviewele=null;e.toplevel.removeChild(c.thumbstatus);c.thumbstatus=null}c.thumbstatus=document.createElement("div");if(b.vertical){if(g.TCTDFSthumbstatusvClass)c.thumbstatus.className=g.TCTDFSthumbstatusvClass;SocialCalc.setStyles(c.thumbstatus, -g.TCTDFSthumbstatusvStyle);c.thumbstatus.style.top=c.clientY+g.TCTDFStopOffsetv+"px";c.thumbstatus.style.left=d.controlborder-10-e.tablewidth/2+"px";c.thumbstatus.style.width=e.tablewidth/2+"px";c.thumbcontext=new SocialCalc.RenderContext(e.context.sheetobj);c.thumbcontext.showGrid=!0;c.thumbcontext.rowpanes=[{first:1,last:1}];a=e.context.colpanes[e.context.colpanes.length-1];c.thumbcontext.colpanes=[{first:a.first,last:a.last}];c.thumbstatus.innerHTML='
msg
preview
';c.thumbstatus.rowmsgele=c.thumbstatus.firstChild.firstChild.firstChild.firstChild.firstChild;c.thumbstatus.rowpreviewele=c.thumbstatus.firstChild.firstChild.firstChild.childNodes[1].firstChild;e.toplevel.appendChild(c.thumbstatus);SocialCalc.TCTDragFunctionRowSetStatus(c,e,e.firstscrollingrow||1)}else{if(g.TCTDFSthumbstatushClass)c.thumbstatus.className= -g.TCTDFSthumbstatushClass;SocialCalc.setStyles(c.thumbstatus,g.TCTDFSthumbstatushStyle);c.thumbstatus.style.top=d.controlborder+g.TCTDFStopOffseth+"px";c.thumbstatus.style.left=c.clientX+g.TCTDFSleftOffseth+"px";e.toplevel.appendChild(c.thumbstatus);c.thumbstatus.innerHTML=g.s_TCTDFthumbstatusPrefixh+SocialCalc.rcColname(e.firstscrollingcol)}}; +SocialCalc.TCPSDragFunctionMove=function(a,c,b){var d,e;e=b.functionobj.control;d=e.sliderthickness;var g=e.editor;b.vertical?(e=e.morebuttonstart-e.minscrollingpanesize-c.offsetY,c.clientY>e&&(c.clientY=e),e=g.headposition.top-d-c.offsetY,c.clientYe&&(c.clientX=e),e=g.headposition.left-d-c.offsetX, +c.clientXb&&(c.clientY=b),b=a.headposition.top-d-c.offsetY,c.clientYa.context.sheetobj.attribs.lastrow&&(d=a.context.sheetobj.attribs.lastrow),!d||d<=a.context.rowpanes[0].first)?1b&&(c.clientX=b),b=a.headposition.left-d-c.offsetX,c.clientXa.context.sheetobj.attribs.lastcol&&(d=a.context.sheetobj.attribs.lastcol),!d||d<=a.context.colpanes[0].first)? +1
msg
preview
',c.thumbstatus.rowmsgele=c.thumbstatus.firstChild.firstChild.firstChild.firstChild.firstChild,c.thumbstatus.rowpreviewele=c.thumbstatus.firstChild.firstChild.firstChild.childNodes[1].firstChild,e.toplevel.appendChild(c.thumbstatus),SocialCalc.TCTDragFunctionRowSetStatus(c,e,e.firstscrollingrow||1)):(g.TCTDFSthumbstatushClass&& +(c.thumbstatus.className=g.TCTDFSthumbstatushClass),SocialCalc.setStyles(c.thumbstatus,g.TCTDFSthumbstatushStyle),c.thumbstatus.style.top=d.controlborder+g.TCTDFStopOffseth+"px",c.thumbstatus.style.left=c.clientX+g.TCTDFSleftOffseth+"px",e.toplevel.appendChild(c.thumbstatus),c.thumbstatus.innerHTML=g.s_TCTDFthumbstatusPrefixh+SocialCalc.rcColname(e.firstscrollingcol))}; SocialCalc.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"})}; -SocialCalc.TCTDragFunctionMove=function(a,c,b){var d,e;d=b.functionobj.control;e=d.editor;var g=SocialCalc.Constants;if(b.vertical){if(c.clientY>d.scrollareaend-c.offsetY-d.thumbthickness+2)c.clientY=d.scrollareaend-c.offsetY-d.thumbthickness+2;if(c.clientYe.context.sheetobj.attribs.lastrow)d=e.context.sheetobj.attribs.lastrow;d!=c.thumbrowshown&&SocialCalc.TCTDragFunctionRowSetStatus(c,e,d)}else{if(c.clientX>d.scrollareaend-c.offsetX-d.thumbthickness+2)c.clientX=d.scrollareaend-c.offsetX-d.thumbthickness+2;if(c.clientXe.context.sheetobj.attribs.lastcol)d=e.context.sheetobj.attribs.lastcol;e=g.s_TCTDFthumbstatusPrefixh+SocialCalc.rcColname(d);c.thumbstatus.innerHTML=e}SocialCalc.DragFunctionPosition(a,c,b)}; -SocialCalc.TCTDragFunctionStop=function(a,c,b){var d=b.functionobj.control,a=d.editor;if(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);if(b>a.context.sheetobj.attribs.lastrow)b=a.context.sheetobj.attribs.lastrow;a.context.SetRowPaneFirstLast(a.context.rowpanes.length-1,b,b+1)}else{b=(c.clientX+c.offsetX- -d.scrollareastart+1)/(d.scrollareasize-d.thumbthickness)*(a.context.sheetobj.attribs.lastcol-a.lastnonscrollingcol)+a.lastnonscrollingcol+1;b=Math.floor(b);b<=a.lastnonscrollingcol&&(b=a.lastnonscrollingcol+1);if(b>a.context.sheetobj.attribs.lastcol)b=a.context.sheetobj.attribs.lastcol;a.context.SetColPaneFirstLast(a.context.colpanes.length-1,b,b+1)}a.FitToEditTable();if(c.thumbstatus.rowmsgele)c.thumbstatus.rowmsgele=null;if(c.thumbstatus.rowpreviewele)c.thumbstatus.rowpreviewele=null;a.toplevel.removeChild(c.thumbstatus); +SocialCalc.TCTDragFunctionMove=function(a,c,b){var d,e;d=b.functionobj.control;e=d.editor;var g=SocialCalc.Constants;b.vertical?(c.clientY>d.scrollareaend-c.offsetY-d.thumbthickness+2&&(c.clientY=d.scrollareaend-c.offsetY-d.thumbthickness+2),c.clientYe.context.sheetobj.attribs.lastrow&&(d=e.context.sheetobj.attribs.lastrow),d!=c.thumbrowshown&&SocialCalc.TCTDragFunctionRowSetStatus(c,e,d)):(c.clientX>d.scrollareaend-c.offsetX-d.thumbthickness+2&&(c.clientX=d.scrollareaend-c.offsetX-d.thumbthickness+2),c.clientXe.context.sheetobj.attribs.lastcol&&(d=e.context.sheetobj.attribs.lastcol),e=g.s_TCTDFthumbstatusPrefixh+SocialCalc.rcColname(d),c.thumbstatus.innerHTML=e);SocialCalc.DragFunctionPosition(a,c,b)}; +SocialCalc.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+ +1)/(d.scrollareasize-d.thumbthickness)*(a.context.sheetobj.attribs.lastcol-a.lastnonscrollingcol)+a.lastnonscrollingcol+1,b=Math.floor(b),b<=a.lastnonscrollingcol&&(b=a.lastnonscrollingcol+1),b>a.context.sheetobj.attribs.lastcol&&(b=a.context.sheetobj.attribs.lastcol),a.context.SetColPaneFirstLast(a.context.colpanes.length-1,b,b+1));a.FitToEditTable();c.thumbstatus.rowmsgele&&(c.thumbstatus.rowmsgele=null);c.thumbstatus.rowpreviewele&&(c.thumbstatus.rowpreviewele=null);a.toplevel.removeChild(c.thumbstatus); c.thumbstatus=null;a.ScheduleRender()};SocialCalc.DragInfo={registeredElements:[],draggingElement:null,startX:0,startY:0,startZ:0,clientX:0,clientY:0,offsetX:0,offsetY:0,horizontalScroll:0,verticalScroll:0}; SocialCalc.DragRegister=function(a,c,b,d){var e=SocialCalc.DragInfo;d||(d={MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null});e.registeredElements.push({element:a,vertical:c,horizontal:b,functionobj:d});if(a.addEventListener)a.addEventListener("mousedown",SocialCalc.DragMouseDown,!1);else if(a.attachEvent)a.attachEvent("onmousedown",SocialCalc.DragMouseDown);else throw SocialCalc.Constants.s_BrowserNotSupported; };SocialCalc.DragUnregister=function(a){var c=SocialCalc.DragInfo,b;if(a)for(b=0;bc.viewport.width/ -2?(c.popupElement.style.bottom=c.viewport.height-c.clientY+e+"px",c.popupElement.style.right=c.viewport.width-c.clientX+d+"px"):(c.popupElement.style.bottom=c.viewport.height-c.clientY+e+"px",c.popupElement.style.left=c.clientX+d+"px");if(c.clientY<50)c.popupElement.style.bottom=c.viewport.height-c.clientY+e-50+"px";document.body.appendChild(c.popupElement)}; -SocialCalc.TooltipHide=function(){var a=SocialCalc.TooltipInfo;if(a.popupElement)a.popupElement.parentNode.removeChild(a.popupElement),a.popupElement=null};SocialCalc.TooltipWaitDone=function(){var a=SocialCalc.TooltipInfo;a.timer=null;SocialCalc.TooltipDisplay(a.tooltipElement)};SocialCalc.ButtonInfo={registeredElements:[],buttonElement:null,doingHover:!1,buttonDown:!1,timer:null,horizontalScroll:0,verticalScroll:0,clientX:0,clientY:0}; +SocialCalc.TooltipMouseMove=function(a){var c=a||window.event,a=SocialCalc.TooltipInfo;a.viewport=SocialCalc.GetViewportInfo();a.clientX=c.clientX+a.viewport.horizontalScroll;a.clientY=c.clientY+a.viewport.verticalScroll;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",SocialCalc.TooltipMouseDown,!1):a.tooltipElement.element.attachEvent&&a.tooltipElement.element.attachEvent("onmousedown",SocialCalc.TooltipMouseDown))}; +SocialCalc.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)}; +SocialCalc.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;c.popupElement=document.createElement("div");b.TDpopupElementClass&&(c.popupElement.className=b.TDpopupElementClass);SocialCalc.setStyles(c.popupElement,b.TDpopupElementStyle);c.popupElement.innerHTML=a.tiptext;c.clientX>c.viewport.width/ +2?(c.popupElement.style.bottom=c.viewport.height-c.clientY+e+"px",c.popupElement.style.right=c.viewport.width-c.clientX+d+"px"):(c.popupElement.style.bottom=c.viewport.height-c.clientY+e+"px",c.popupElement.style.left=c.clientX+d+"px");50>c.clientY&&(c.popupElement.style.bottom=c.viewport.height-c.clientY+e-50+"px");document.body.appendChild(c.popupElement)}; +SocialCalc.TooltipHide=function(){var a=SocialCalc.TooltipInfo;a.popupElement&&(a.popupElement.parentNode.removeChild(a.popupElement),a.popupElement=null)};SocialCalc.TooltipWaitDone=function(){var a=SocialCalc.TooltipInfo;a.timer=null;SocialCalc.TooltipDisplay(a.tooltipElement)};SocialCalc.ButtonInfo={registeredElements:[],buttonElement:null,doingHover:!1,buttonDown:!1,timer:null,horizontalScroll:0,verticalScroll:0,clientX:0,clientY:0}; SocialCalc.ButtonRegister=function(a,c,b){var d=SocialCalc.ButtonInfo;c||(c={});d.registeredElements.push({name:c.name,element:a,normalstyle:c.normalstyle,hoverstyle:c.hoverstyle,downstyle:c.downstyle,repeatwait:c.repeatwait,repeatinterval:c.repeatinterval,functionobj:b});if(a.addEventListener)a.addEventListener("mousedown",SocialCalc.ButtonMouseDown,!1),a.addEventListener("mouseover",SocialCalc.ButtonMouseOver,!1),a.addEventListener("mouseout",SocialCalc.ButtonMouseOut,!1);else if(a.attachEvent)a.attachEvent("onmousedown", SocialCalc.ButtonMouseDown),a.attachEvent("onmouseover",SocialCalc.ButtonMouseOver),a.attachEvent("onmouseout",SocialCalc.ButtonMouseOut);else throw SocialCalc.Constants.s_BrowserNotSupported;}; -SocialCalc.ButtonMouseOver=function(a){var a=a||window.event,c=SocialCalc.ButtonInfo,b=SocialCalc.LookupElement(a.target||a.srcElement,c.registeredElements);if(b)if(c.buttonDown){if(c.buttonElement==b)c.doingHover=!0}else 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)}; -SocialCalc.ButtonMouseOut=function(a){var a=a||window.event,c=SocialCalc.ButtonInfo;if(c.buttonDown)c.doingHover=!1;else{var b=SocialCalc.LookupElement(a.target||a.srcElement,c.registeredElements);if(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)}}; +SocialCalc.ButtonMouseOver=function(a){var a=a||window.event,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)))}; +SocialCalc.ButtonMouseOut=function(a){var a=a||window.event,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)}}; SocialCalc.ButtonMouseDown=function(a){var a=a||window.event,c=SocialCalc.ButtonInfo,b=SocialCalc.GetViewportInfo(),d=SocialCalc.LookupElement(a.target||a.srcElement,c.registeredElements);if(d&&(!d||!d.functionobj||!d.functionobj.Disabled||!d.functionobj.Disabled(a,c,d)))if(c.buttonElement=d,c.buttonDown=!0,SocialCalc.setStyles(d.element,c.buttonElement.downstyle),document.addEventListener?document.addEventListener("mouseup",SocialCalc.ButtonMouseUp,!0):d.element.attachEvent&&(d.element.setCapture(), d.element.attachEvent("onmouseup",SocialCalc.ButtonMouseUp),d.element.attachEvent("onlosecapture",SocialCalc.ButtonMouseUp)),a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,a.preventDefault?a.preventDefault():a.returnValue=!1,c.horizontalScroll=b.horizontalScroll,c.verticalScroll=b.verticalScroll,c.clientX=a.clientX+c.horizontalScroll,c.clientY=a.clientY+c.verticalScroll,d&&d.functionobj&&d.functionobj.MouseDown&&d.functionobj.MouseDown(a,c,d),d.repeatwait)c.timer=window.setTimeout(SocialCalc.ButtonRepeat, d.repeatwait)}; -SocialCalc.ButtonMouseUp=function(a){var a=a||window.event,c=SocialCalc.ButtonInfo,b=c.buttonElement;if(c.timer)window.clearTimeout(c.timer),c.timer=null;if(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), -b.element.releaseCapture()),c.buttonElement.downstyle&&(c.doingHover?SocialCalc.setStyles(b.element,c.buttonElement.hoverstyle):SocialCalc.setStyles(b.element,c.buttonElement.normalstyle)),c.buttonDown=!1,b&&b.functionobj&&b.functionobj.MouseUp&&b.functionobj.MouseUp(a,c,b)}; -SocialCalc.ButtonRepeat=function(){var a=SocialCalc.ButtonInfo,c=a.buttonElement;if(c)c&&c.functionobj&&c.functionobj.Repeat&&c.functionobj.Repeat(null,a,c),a.timer=window.setTimeout(SocialCalc.ButtonRepeat,c.repeatinterval||100)};SocialCalc.MouseWheelInfo={registeredElements:[]}; +SocialCalc.ButtonMouseUp=function(a){var a=a||window.event,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), +b.element.releaseCapture()),c.buttonElement.downstyle&&(c.doingHover?SocialCalc.setStyles(b.element,c.buttonElement.hoverstyle):SocialCalc.setStyles(b.element,c.buttonElement.normalstyle)),c.buttonDown=!1,b&&b.functionobj&&b.functionobj.MouseUp&&b.functionobj.MouseUp(a,c,b))}; +SocialCalc.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))};SocialCalc.MouseWheelInfo={registeredElements:[]}; SocialCalc.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;}; -SocialCalc.ProcessMouseWheel=function(a){var a=a||window.event,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);if(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}}; +SocialCalc.ProcessMouseWheel=function(a){var a=a||window.event,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)}}; SocialCalc.keyboardTables={specialKeysCommon:{8:"[backspace]",9:"[tab]",13:"[enter]",25:"[tab]",27:"[esc]",33:"[pgup]",34:"[pgdn]",35:"[end]",36:"[home]",37:"[aleft]",38:"[aup]",39:"[aright]",40:"[adown]",45:"[ins]",46:"[del]",113:"[f2]"},specialKeysIE:{8:"[backspace]",9:"[tab]",13:"[enter]",25:"[tab]",27:"[esc]",33:"[pgup]",34:"[pgdn]",35:"[end]",36:"[home]",37:"[aleft]",38:"[aup]",39:"[aright]",40:"[adown]",45:"[ins]",46:"[del]",113:"[f2]"},controlKeysIE:{67:"[ctrl-c]",83:"[ctrl-s]",86:"[ctrl-v]", 88:"[ctrl-x]",90:"[ctrl-z]"},specialKeysOpera:{8:"[backspace]",9:"[tab]",13:"[enter]",25:"[tab]",27:"[esc]",33:"[pgup]",34:"[pgdn]",35:"[end]",36:"[home]",37:"[aleft]",38:"[aup]",39:"[aright]",40:"[adown]",45:"[ins]",46:"[del]",113:"[f2]"},controlKeysOpera:{67:"[ctrl-c]",83:"[ctrl-s]",86:"[ctrl-v]",88:"[ctrl-x]",90:"[ctrl-z]"},specialKeysSafari:{8:"[backspace]",9:"[tab]",13:"[enter]",25:"[tab]",27:"[esc]",63232:"[aup]",63233:"[adown]",63234:"[aleft]",63235:"[aright]",63272:"[del]",63273:"[home]", 63275:"[end]",63276:"[pgup]",63277:"[pgdn]",63237:"[f2]"},controlKeysSafari:{99:"[ctrl-c]",115:"[ctrl-s]",118:"[ctrl-v]",120:"[ctrl-x]",122:"[ctrl-z]"},ignoreKeysSafari:{63236:"[f1]",63238:"[f3]",63239:"[f4]",63240:"[f5]",63241:"[f6]",63242:"[f7]",63243:"[f8]",63244:"[f9]",63245:"[f10]",63246:"[f11]",63247:"[f12]",63289:"[numlock]"},specialKeysFirefox:{8:"[backspace]",9:"[tab]",13:"[enter]",25:"[tab]",27:"[esc]",33:"[pgup]",34:"[pgdn]",35:"[end]",36:"[home]",37:"[aleft]",38:"[aup]",39:"[aright]", 40:"[adown]",45:"[ins]",46:"[del]",113:"[f2]"},controlKeysFirefox:{99:"[ctrl-c]",115:"[ctrl-s]",118:"[ctrl-v]",120:"[ctrl-x]",122:"[ctrl-z]"},ignoreKeysFirefox:{16:"[shift]",17:"[ctrl]",18:"[alt]",20:"[capslock]",19:"[pause]",44:"[printscreen]",91:"[windows]",92:"[windows]",112:"[f1]",114:"[f3]",115:"[f4]",116:"[f5]",117:"[f6]",118:"[f7]",119:"[f8]",120:"[f9]",121:"[f10]",122:"[f11]",123:"[f12]",144:"[numlock]",145:"[scrolllock]",224:"[cmd]"}}; SocialCalc.Keyboard={areListener:!1,focusTable:null,passThru:null,didProcessKey:!1,statusFromProcessKey:!1,repeatingKeyPress:!1,chForProcessKey:""}; -SocialCalc.KeyboardSetFocus=function(a){SocialCalc.Keyboard.focusTable=a;if(!SocialCalc.Keyboard.areListener)document.onkeydown=SocialCalc.ProcessKeyDown,document.onkeypress=SocialCalc.ProcessKeyPress,SocialCalc.Keyboard.areListener=!0;if(SocialCalc.Keyboard.passThru)SocialCalc.Keyboard.passThru.blur&&SocialCalc.Keyboard.passThru.blur(),SocialCalc.Keyboard.passThru=null;switch(typeof window.focus){case "function":window.focus();break;case "boolean":window.focus=!0}}; +SocialCalc.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);switch(typeof window.focus){case "function":window.focus();break;case "boolean":window.focus=!0}}; SocialCalc.KeyboardFocus=function(){SocialCalc.Keyboard.passThru=null;switch(typeof window.focus){case "function":window.focus();break;case "boolean":window.focus=!0}}; -SocialCalc.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(a.which==void 0||typeof a.keyIdentifier=="string"){b=c.specialKeysCommon[a.keyCode];if(!b&&(a.ctrlKey&&(b=c.controlKeysIE[a.keyCode]),!b))return!0;d=SocialCalc.ProcessKey(b,a);if(!d)a.preventDefault&&a.preventDefault(),a.returnValue=!1}else{b=c.specialKeysCommon[a.keyCode];if(!b){if(a.ctrlKey|| +SocialCalc.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||"string"==typeof a.keyIdentifier){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];if(!b)return!0}d=SocialCalc.ProcessKey(b,a);c.didProcessKey=!0;c.statusFromProcessKey=d;c.chForProcessKey=b}return d}}; -SocialCalc.ProcessKeyPress=function(a){var c=SocialCalc.keyboardTables,b="",a=a||window.event;if(!SocialCalc.Keyboard.passThru){if(c.didProcessKey)return c.repeatingKeyPress?SocialCalc.ProcessKey(c.chForProcessKey,a):(c.repeatingKeyPress=!0,c.statusFromProcessKey);if(a.which==void 0)b=String.fromCharCode(a.keyCode);else{if(!a.which)return!1;if(a.charCode==void 0)if(a.which!=0)if(a.which<32||a.which==144){if(b=c.specialKeysOpera[a.which])return!0}else b=a.ctrlKey?c.controlKeysOpera[a.keyCode]:String.fromCharCode(a.which); -else return!0;else if(a.keyCode==0&&a.charCode==0)return;else if(a.keyCode==a.charCode){if(b=c.specialKeysSafari[a.keyCode],!b){if(c.ignoreKeysSafari[a.keyCode])return!0;b=a.metaKey?c.controlKeysSafari[a.keyCode]:String.fromCharCode(a.which)}}else{if(c.specialKeysFirefox[a.keyCode])return!0;b=String.fromCharCode(a.which);if(a.ctrlKey||a.metaKey)b=c.controlKeysFirefox[a.which]}}c=SocialCalc.ProcessKey(b,a);if(!c)a.preventDefault&&a.preventDefault(),a.returnValue=!1;return c}}; -SocialCalc.ProcessKey=function(a,c){var b=SocialCalc.Keyboard.focusTable;return!b?!0:b.EditorProcessKey(a,c)};SocialCalc||(SocialCalc={});SocialCalc.FormatNumber={};SocialCalc.FormatNumber.format_definitions={};SocialCalc.FormatNumber.separatorchar=",";SocialCalc.FormatNumber.decimalchar=".";SocialCalc.FormatNumber.daynames=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];SocialCalc.FormatNumber.daynames3=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];SocialCalc.FormatNumber.monthnames3=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; -SocialCalc.FormatNumber.monthnames=["January","February","March","April","May","June","July","August","September","October","November","December"];SocialCalc.FormatNumber.allowedcolors={BLACK:"#000000",BLUE:"#0000FF",CYAN:"#00FFFF",GREEN:"#00FF00",MAGENTA:"#FF00FF",RED:"#FF0000",WHITE:"#FFFFFF",YELLOW:"#FFFF00"};SocialCalc.FormatNumber.alloweddates={H:"h]",M:"m]",MM:"mm]",S:"s]",SS:"ss]"}; -SocialCalc.FormatNumber.commands={copy:1,color:2,integer_placeholder:3,fraction_placeholder:4,decimal:5,currency:6,general:7,separator:8,date:9,comparison:10,section:11,style:12};SocialCalc.FormatNumber.datevalues={julian_offset:2415019,seconds_in_a_day:86400,seconds_in_an_hour:3600}; -SocialCalc.FormatNumber.formatNumberWithFormat=function(a,c){var b=SocialCalc.Constants,d=SocialCalc.FormatNumber,e,g,h,j,k,m,n,s,q,p,r,u="",t,w,x,y,z,B,A,E,J,G,I,v;a-=0;v=a;if(!isFinite(v))return"NaN";var D=v<0?1:0;D&&(v=-v);y=v==0?1:0;d.parse_format_string(d.format_definitions,c);t=d.format_definitions[c];if(!t)throw"Format not parsed error!";w=t.sectioninfo.length-1;if(t.hascomparison)for(y=r=w=0;;y++){e=t.operators[y];g=t.operands[y];if(!e){r&&(c="General",d.parse_format_string(d.format_definitions, -c),t=d.format_definitions[c],w=0);break}if(e==d.commands.section){if(!r)break;r=0;w++}else if(e==d.commands.comparison){r=g.indexOf(":");x=g.substring(0,r);g=g.substring(r+1)-0;if(x=="<"&&a"&&a!=g||x==">="&&a>=g||x==">"&&a>g)break;r=1}}else w>0&&(w==1?D?(D=0,w=1):w=0:w==2&&(D?(D=0,w=1):w=y?2:0));w=t.sectioninfo[w];if(w.commas>0)for(r=0;r0)for(r=0;r=0)return a+"";g=g.match(/^\+{0,1}(\d*)(?:\.(\d*)){0,1}$/);if(!g)return"NaN";y=g[1];if(!y||y=="0")y="";(x=g[2])||(x="");if(w.hasdate){if(a<0)return"??-???-?? ??:??:??";h=(a-Math.floor(a))*d.datevalues.seconds_in_a_day;j=a*d.datevalues.seconds_in_a_day;k=Math.floor(h/d.datevalues.seconds_in_an_hour);n=Math.floor(j/d.datevalues.seconds_in_an_hour); -h-=k*d.datevalues.seconds_in_an_hour;m=Math.floor(h/60);s=Math.floor(j/60);g=1;for(r=0;r=60&&(h=0,m++,s++,m>=60&&(m=0,k++,n++,k>=24&&(k=0,a++)));x=h-Math.floor(h)+"";x=x.substring(2);p=SocialCalc.FormatNumber.convert_date_julian_to_gregorian(Math.floor(a+d.datevalues.julian_offset));r=0;for(mspos=w.sectionstart;;mspos++){e=t.operators[mspos];g=t.operands[mspos];if(!e)break;if(e==d.commands.section)break;if(e== -d.commands.date){if((g.toLowerCase()=="am/pm"||g.toLowerCase()=="a/p")&&!q)k>=12?(k-=12,q=g.toLowerCase()=="a/p"?b.s_FormatNumber_pm1:b.s_FormatNumber_pm):q=g.toLowerCase()=="a/p"?b.s_FormatNumber_am1:b.s_FormatNumber_am,g.indexOf(q)<0&&(q=q.toLowerCase());if(r&&(g=="m"||g=="mm"))t.operands[mspos]+="in";r=g.charAt(0)=="h"?1:0}else e!=d.commands.copy&&(r=0)}r=0;for(--mspos;;mspos--){e=t.operators[mspos];g=t.operands[mspos];if(!e)break;if(e==d.commands.section)break;if(e==d.commands.date){if(r&&(g== -"m"||g=="mm"))t.operands[mspos]+="in";r=g=="ss"?1:0}else e!=d.commands.copy&&(r=0)}}A=B=z=0;J=E="";G=b.FormatNumber_separatorchar;G.indexOf(" ")>=0&&(G=G.replace(/ /g," "));I=b.FormatNumber_decimalchar;I.indexOf(" ")>=0&&(I=I.replace(/ /g," "));for(r=w.sectionstart;e=t.operators[r];)if(g=t.operands[r++],e==d.commands.copy)u+=g;else if(e==d.commands.color)E=g;else if(e==d.commands.style)J=g;else if(e==d.commands.integer_placeholder){D&&(u+="-",D=0);z++;if(z==1&&y.length>w.integerdigits)for(;B< -y.length-w.integerdigits;B++)u+=y.charAt(B),w.thousandssep&&(e=y.length-B-1,e>2&&e%3==0&&(u+=G));if(y.length2&&e%3==0&&(u+=G))}else u+=y.charAt(B),w.thousandssep&&(e=y.length-B-1,e>2&&e%3==0&&(u+=G)),B++}else if(e==d.commands.fraction_placeholder){if(A>=x.length){if(g=="0"||g=="?")u+=g=="0"?"0":" "}else u+=x.charAt(A);A++}else if(e==d.commands.decimal)D&&(u+="-",D=0), -u+=I;else if(e==d.commands.currency)D&&(u+="-",D=0),u+=g;else if(e==d.commands.general){if(v!=0&&(g=Math.floor(Math.LOG10E*Math.log(v)),g=Math.pow(10,13-g),v=Math.floor(g*v+0.5)/g,!isFinite(v)))return"NaN";D&&(u+="-");g=v+"";if(g.indexOf("e")>=0)u+=g;else{g=g.match(/^\+{0,1}(\d*)(?:\.(\d*)){0,1}$/);y=g[1];if(!y||y=="0")y="";(x=g[2])||(x="");A=B=0;if(y.length)for(;B2&&e%3==0&&(u+=G));else u+="0";if(x.length)for(u+=I;A'+u+"");J&&(u=''+u+"");return u}; -SocialCalc.FormatNumber.parse_format_string=function(a,c){var b=SocialCalc.FormatNumber,d,e,g=1,h,j,k,m,n,s,q,p,r,u,t,w,x;if(!a[c]){d={operators:[],operands:[],sectioninfo:[{}]};a[c]=d;e=0;sectioninfo=d.sectioninfo[e];sectioninfo.sectionstart=0;sectioninfo.integerdigits=0;sectioninfo.fractiondigits=0;sectioninfo.commas=0;for(x=sectioninfo.percent=0;x=0?w=r:(h=0,d.operators.push(b.commands.copy),d.operands.push(r))}if(w)d.operators.push(b.commands.date), -d.operands.push(w),sectioninfo.hasdate=1}}; -SocialCalc.FormatNumber.parse_format_bracket=function(a){var c=SocialCalc.FormatNumber,b=SocialCalc.Constants,d={},e;a.charAt(0)=="$"?(d.operator=c.commands.currency,e=a.match(/^\$(.+?)(\-.+?){0,1}$/),d.operand=e?e[1]||b.FormatNumber_defaultCurrency||"$":a.substring(1)||b.FormatNumber_defaultCurrency||"$"):a=="?$"?(d.operator=c.commands.currency,d.operand="[?$]"):c.allowedcolors[a.toUpperCase()]?(d.operator=c.commands.color,d.operand=c.allowedcolors[a.toUpperCase()]):(e=a.match(/^style=([^"]*)$/))? -(d.operator=c.commands.style,d.operand=e[1]):a==","?(d.operator=c.commands.separator,d.operand=a):c.alloweddates[a.toUpperCase()]?(d.operator=c.commands.date,d.operand=c.alloweddates[a.toUpperCase()]):a.match(/^[<>=]/)?(e=a.match(/^([<>=]+)(.+)$/),d.operator=c.commands.comparison,d.operand=e[1]+":"+e[2]):(d.operator=c.commands.copy,d.operand="["+a+"]");return d}; -SocialCalc.FormatNumber.convert_date_gregorian_to_julian=function(a,c,b){b=b-32075+SocialCalc.intFunc(1461*(a+4800+SocialCalc.intFunc((c-14)/12))/4);b+=SocialCalc.intFunc(367*(c-2-SocialCalc.intFunc((c-14)/12)*12)/12);b-=SocialCalc.intFunc(3*SocialCalc.intFunc((a+4900+SocialCalc.intFunc((c-14)/12))/100)/4);return b}; -SocialCalc.FormatNumber.convert_date_julian_to_gregorian=function(a){var c,b,d,e;a+=68569;c=Math.floor(4*a/146097);a-=Math.floor((146097*c+3)/4);b=Math.floor(4E3*(a+1)/1461001);a=a-Math.floor(1461*b/4)+31;d=Math.floor(80*a/2447);e=a-Math.floor(2447*d/80);a=Math.floor(d/11);return{year:100*(c-49)+b+a,month:d+2-12*a,day:e}};SocialCalc.intFunc=function(a){return a<0?-Math.floor(-a):Math.floor(a)};SocialCalc||(SocialCalc={});SocialCalc.Formula={};SocialCalc.Formula.ParseState={num:1,alpha:2,coord:3,string:4,stringquote:5,numexp1:6,numexp2:7,alphanumeric:8,specialvalue:9};SocialCalc.Formula.TokenType={num:1,coord:2,op:3,name:4,error:5,string:6,space:7};SocialCalc.Formula.CharClass={num:1,numstart:2,op:3,eof:4,alpha:5,incoord:6,error:7,quote:8,space:9,specialstart:10}; -SocialCalc.Formula.CharClassTable={" ":9,"!":3,'"':8,"#":10,$:6,"%":3,"&":3,"(":3,")":3,"*":3,"+":3,",":3,"-":3,".":2,"/":3,0:1,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:1,9:1,":":3,"<":3,"=":3,">":3,A:5,B:5,C:5,D:5,E:5,F:5,G:5,H:5,I:5,J:5,K:5,L:5,M:5,N:5,O:5,P:5,Q:5,R:5,S:5,T:5,U:5,V:5,W:5,X:5,Y:5,Z:5,"^":3,_:5,a:5,b:5,c:5,d:5,e:5,f:5,g:5,h:5,i:5,j:5,k:5,l:5,m:5,n:5,o:5,p:5,q:5,r:5,s:5,t:5,u:5,v:5,w:5,x:5,y:5,z:5}; +SocialCalc.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]: +String.fromCharCode(a.which);else return!0;else{if(0==a.keyCode&&0==a.charCode)return;if(a.keyCode==a.charCode){if(b=c.specialKeysSafari[a.keyCode],!b){if(c.ignoreKeysSafari[a.keyCode])return!0;b=a.metaKey?c.controlKeysSafari[a.keyCode]:String.fromCharCode(a.which)}}else{if(c.specialKeysFirefox[a.keyCode])return!0;b=String.fromCharCode(a.which);if(a.ctrlKey||a.metaKey)b=c.controlKeysFirefox[a.which]}}}c=SocialCalc.ProcessKey(b,a);c||(a.preventDefault&&a.preventDefault(),a.returnValue=!1);return c}}; +SocialCalc.ProcessKey=function(a,c){var b=SocialCalc.Keyboard.focusTable;return!b?!0:b.EditorProcessKey(a,c)};SocialCalc||(SocialCalc={});SocialCalc.FormatNumber={};SocialCalc.FormatNumber.format_definitions={};SocialCalc.FormatNumber.separatorchar=",";SocialCalc.FormatNumber.decimalchar=".";SocialCalc.FormatNumber.daynames="Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(",");SocialCalc.FormatNumber.daynames3="Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(",");SocialCalc.FormatNumber.monthnames3="Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(",");SocialCalc.FormatNumber.monthnames="January,February,March,April,May,June,July,August,September,October,November,December".split(","); +SocialCalc.FormatNumber.allowedcolors={BLACK:"#000000",BLUE:"#0000FF",CYAN:"#00FFFF",GREEN:"#00FF00",MAGENTA:"#FF00FF",RED:"#FF0000",WHITE:"#FFFFFF",YELLOW:"#FFFF00"};SocialCalc.FormatNumber.alloweddates={H:"h]",M:"m]",MM:"mm]",S:"s]",SS:"ss]"};SocialCalc.FormatNumber.commands={copy:1,color:2,integer_placeholder:3,fraction_placeholder:4,decimal:5,currency:6,general:7,separator:8,date:9,comparison:10,section:11,style:12}; +SocialCalc.FormatNumber.datevalues={julian_offset:2415019,seconds_in_a_day:86400,seconds_in_an_hour:3600}; +SocialCalc.FormatNumber.formatNumberWithFormat=function(a,c){var b=SocialCalc.Constants,d=SocialCalc.FormatNumber,e,g,h,j,k,m,n,r,q,p,t,s="",u,v,x,w,y,A,B,E,H,J,I,z;z=a-=0;if(!isFinite(z))return"NaN";var C=0>z?1:0;C&&(z=-z);w=0==z?1:0;d.parse_format_string(d.format_definitions,c);u=d.format_definitions[c];if(!u)throw"Format not parsed error!";v=u.sectioninfo.length-1;if(u.hascomparison)for(w=t=v=0;;w++){e=u.operators[w];g=u.operands[w];if(!e){t&&(c="General",d.parse_format_string(d.format_definitions, +c),u=d.format_definitions[c],v=0);break}if(e==d.commands.section){if(!t)break;t=0;v++}else if(e==d.commands.comparison){t=g.indexOf(":");x=g.substring(0,t);g=g.substring(t+1)-0;if("<"==x&&a"==x&&a!=g||">="==x&&a>=g||">"==x&&a>g)break;t=1}}else 0a)return"??-???-?? ??:??:??";h=(a-Math.floor(a))*d.datevalues.seconds_in_a_day;j=a*d.datevalues.seconds_in_a_day;k=Math.floor(h/d.datevalues.seconds_in_an_hour);n=Math.floor(j/d.datevalues.seconds_in_an_hour);h-=k*d.datevalues.seconds_in_an_hour; +m=Math.floor(h/60);r=Math.floor(j/60);g=1;for(t=0;tg.indexOf(q)&&(q=q.toLowerCase());if(t&&("m"==g||"mm"==g))u.operands[mspos]+="in";t="h"==g.charAt(0)?1:0}else e!=d.commands.copy&&(t=0)}t=0;for(--mspos;;mspos--){e=u.operators[mspos];g=u.operands[mspos];if(!e)break;if(e==d.commands.section)break;if(e==d.commands.date){if(t&&("m"==g||"mm"==g))u.operands[mspos]+="in";t="ss"== +g?1:0}else e!=d.commands.copy&&(t=0)}}B=A=y=0;H=E="";J=b.FormatNumber_separatorchar;0<=J.indexOf(" ")&&(J=J.replace(/ /g," "));I=b.FormatNumber_decimalchar;0<=I.indexOf(" ")&&(I=I.replace(/ /g," "));for(t=v.sectionstart;e=u.operators[t];)if(g=u.operands[t++],e==d.commands.copy)s+=g;else if(e==d.commands.color)E=g;else if(e==d.commands.style)H=g;else if(e==d.commands.integer_placeholder){C&&(s+="-",C=0);y++;if(1==y&&w.length>v.integerdigits)for(;A=x.length){if("0"==g||"?"==g)s+="0"==g?"0":" "}else s+=x.charAt(B);B++}else if(e==d.commands.decimal)C&&(s+="-",C=0),s+=I;else if(e==d.commands.currency)C&&(s+= +"-",C=0),s+=g;else if(e==d.commands.general){if(0!=z&&(g=Math.floor(Math.LOG10E*Math.log(z)),g=Math.pow(10,13-g),z=Math.floor(g*z+0.5)/g,!isFinite(z)))return"NaN";C&&(s+="-");g=z+"";if(0<=g.indexOf("e"))s+=g;else{g=g.match(/^\+{0,1}(\d*)(?:\.(\d*)){0,1}$/);w=g[1];if(!w||"0"==w)w="";(x=g[2])||(x="");B=A=0;if(w.length)for(;Ar?(g=1E3+r+"",s+=g.substr(2)):s+=r+"":"min"==g?s+=m+"":"m]"==g?s+=r+"":"hh"==g?(g=1E3+k+"",s+=g.substr(2)):"s"==g?(g=Math.floor(h),s+=g+""):"ss"==g?(g=1E3+Math.floor(h)+"",s+=g.substr(2)):"am/pm"==g||"a/p"==g?s+=q:"ss]"==g&&(100>j?(g=1E3+Math.floor(j)+"",s+=g.substr(2)):(g=Math.floor(j),s+=g+""));else if(e==d.commands.section)break;else e!=d.commands.comparison&&(s+="!! Parse error !!");E&&(s=''+s+""); +H&&(s=''+s+"");return s}; +SocialCalc.FormatNumber.parse_format_string=function(a,c){var b=SocialCalc.FormatNumber,d,e,g=1,h,j,k,m,n,r,q,p,t,s,u,v,x;if(!a[c]){d={operators:[],operands:[],sectioninfo:[{}]};a[c]=d;e=0;sectioninfo=d.sectioninfo[e];sectioninfo.sectionstart=0;sectioninfo.integerdigits=0;sectioninfo.fractiondigits=0;sectioninfo.commas=0;for(x=sectioninfo.percent=0;x=]/)?(e=a.match(/^([<>=]+)(.+)$/),d.operator=c.commands.comparison,d.operand=e[1]+":"+e[2]):(d.operator=c.commands.copy,d.operand="["+a+"]");return d}; +SocialCalc.FormatNumber.convert_date_gregorian_to_julian=function(a,c,b){b=b-32075+SocialCalc.intFunc(1461*(a+4800+SocialCalc.intFunc((c-14)/12))/4);b+=SocialCalc.intFunc(367*(c-2-12*SocialCalc.intFunc((c-14)/12))/12);return b-=SocialCalc.intFunc(3*SocialCalc.intFunc((a+4900+SocialCalc.intFunc((c-14)/12))/100)/4)}; +SocialCalc.FormatNumber.convert_date_julian_to_gregorian=function(a){var c,b,d,e,a=a+68569;c=Math.floor(4*a/146097);a-=Math.floor((146097*c+3)/4);b=Math.floor(4E3*(a+1)/1461001);a=a-Math.floor(1461*b/4)+31;d=Math.floor(80*a/2447);e=a-Math.floor(2447*d/80);a=Math.floor(d/11);return{year:100*(c-49)+b+a,month:d+2-12*a,day:e}};SocialCalc.intFunc=function(a){return 0>a?-Math.floor(-a):Math.floor(a)};SocialCalc||(SocialCalc={});SocialCalc.Formula={};SocialCalc.Formula.ParseState={num:1,alpha:2,coord:3,string:4,stringquote:5,numexp1:6,numexp2:7,alphanumeric:8,specialvalue:9};SocialCalc.Formula.TokenType={num:1,coord:2,op:3,name:4,error:5,string:6,space:7};SocialCalc.Formula.CharClass={num:1,numstart:2,op:3,eof:4,alpha:5,incoord:6,error:7,quote:8,space:9,specialstart:10}; +SocialCalc.Formula.CharClassTable={" ":9,"!":3,'"':8,"#":10,$:6,"%":3,"&":3,"(":3,")":3,"*":3,"+":3,",":3,"-":3,".":2,"/":3,"0":1,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:1,9:1,":":3,"<":3,"=":3,">":3,A:5,B:5,C:5,D:5,E:5,F:5,G:5,H:5,I:5,J:5,K:5,L:5,M:5,N:5,O:5,P:5,Q:5,R:5,S:5,T:5,U:5,V:5,W:5,X:5,Y:5,Z:5,"^":3,_:5,a:5,b:5,c:5,d:5,e:5,f:5,g:5,h:5,i:5,j:5,k:5,l:5,m:5,n:5,o:5,p:5,q:5,r:5,s:5,t:5,u:5,v:5,w:5,x:5,y:5,z:5}; SocialCalc.Formula.UpperCaseTable={a:"A",b:"B",c:"C",d:"D",e:"E",f:"F",g:"G",h:"H",i:"I",j:"J",k:"K",l:"L",m:"M",n:"N",o:"O",p:"P",q:"Q",r:"R",s:"S",t:"T",u:"U",v:"V",w:"W",x:"X",y:"Y",z:"Z"};SocialCalc.Formula.SpecialConstants={"#NULL!":"0,e#NULL!","#NUM!":"0,e#NUM!","#DIV/0!":"0,e#DIV/0!","#VALUE!":"0,e#VALUE!","#REF!":"0,e#REF!","#NAME?":"0,e#NAME?"};SocialCalc.Formula.TokenPrecedence={"!":1,":":2,",":2,M:-3,P:-3,"%":4,"^":5,"*":6,"/":6,"+":7,"-":7,"&":8,"<":9,">":9,G:9,L:9,N:9}; SocialCalc.Formula.TokenOpExpansion={G:">=",L:"<=",M:"-",N:"<>",P:"+"}; SocialCalc.Formula.TypeLookupTable={unaryminus:{"n*":"|n*:1|","e*":"|e*:1|","t*":"|t*:e#VALUE!|",b:"|b:n|"},unaryplus:{"n*":"|n*:1|","e*":"|e*:1|","t*":"|t*:e#VALUE!|",b:"|b:n|"},unarypercent:{"n*":"|n:n%|n*:n|","e*":"|e*:1|","t*":"|t*:e#VALUE!|",b:"|b:n|"},plus:{"n%":"|n%:n%|nd:n|nt:n|ndt:n|n$:n|n:n|n*:n|b:n|e*:2|t*:e#VALUE!|",nd:"|n%:n|nd:nd|nt:ndt|ndt:ndt|n$:n|n:nd|n*:n|b:n|e*:2|t*:e#VALUE!|",nt:"|n%:n|nd:ndt|nt:nt|ndt:ndt|n$:n|n:nt|n*:n|b:n|e*:2|t*:e#VALUE!|",ndt:"|n%:n|nd:ndt|nt:ndt|ndt:ndt|n$:n|n:ndt|n*:n|b:n|e*:2|t*:e#VALUE!|", n$:"|n%:n|nd:n|nt:n|ndt:n|n$:n$|n:n$|n*:n|b:n|e*:2|t*:e#VALUE!|",nl:"|n%:n|nd:n|nt:n|ndt:n|n$:n|n:n|n*:n|b:n|e*:2|t*:e#VALUE!|",n:"|n%:n|nd:nd|nt:nt|ndt:ndt|n$:n$|n:n|n*:n|b:n|e*:2|t*:e#VALUE!|",b:"|n%:n%|nd:nd|nt:nt|ndt:ndt|n$:n$|n:n|n*:n|b:n|e*:2|t*:e#VALUE!|","t*":"|n*:e#VALUE!|t*:e#VALUE!|b:e#VALUE!|e*:2|","e*":"|e*:1|n*:1|t*:1|b:1|"},concat:{t:"|t:t|th:th|tw:tw|tl:t|t*:2|e*:2|",th:"|t:th|th:th|tw:t|tl:th|t*:t|e*:2|",tw:"|t:tw|th:t|tw:tw|tl:tw|t*:t|e*:2|",tl:"|t:tl|th:th|tw:tw|tl:tl|t*:t|e*:2|", "e*":"|e*:1|n*:1|t*:1|"},oneargnumeric:{"n*":"|n*:n|","e*":"|e*:1|","t*":"|t*:e#VALUE!|",b:"|b:n|"},twoargnumeric:{"n*":"|n*:n|t*:e#VALUE!|e*:2|","e*":"|e*:1|n*:1|t*:1|","t*":"|t*:e#VALUE!|n*:e#VALUE!|e*:2|"},propagateerror:{"n*":"|n*:2|e*:2|","e*":"|e*:2|","t*":"|t*:2|e*:2|",b:"|b:2|e*:2|"}}; -SocialCalc.Formula.ParseFormulaIntoTokens=function(a){var c,b,d,e,g,h;c=SocialCalc.Formula;var j=SocialCalc.Constants,k=c.ParseState,m=c.TokenType,n=c.CharClass,s=c.CharClassTable,q=c.UpperCaseTable,p=c.ParsePushToken,r=/^\$?[A-Z]{1,2}\$?[1-9]\d*$/i,u=[],t="";g=0;d=!1;for(c=0;c<=a.length;c++){c0){if(e=u[u.length-1],g=e.type,e=e.text,g==n.op&&(e=="<"||e==">"))t=e+t,u.pop(),u.length>0?(e=u[u.length-1],g=e.type, -e=e.text):(g=n.eof,e="EOF")}else g=n.eof,e="EOF";h=m.op;if(u.length==0||g==n.op&&e!=")"&&e!="%")if(t=="-")b=t="M";else if(t=="+")b=t="P";else{if(!(t==")"&&e=="(")&&t!="(")h=m.error,t=j.s_parseerrtwoops}else if(t.length>1)t==">="?b=t="G":t=="<="?b=t="L":t=="<>"?b=t="N":(h=m.error,t=j.s_parseerrtwoops);p(u,t,h,b);g=0}else cclass==n.quote?(t="",g=k.string):cclass==n.space?p(u," ",m.space,0):cclass!=n.eof&&p(u,j.s_parseerrchar,m.error,0)}return u}; -SocialCalc.Formula.ParsePushToken=function(a,c,b,d){a.push({text:c,type:b,opcode:d})};SocialCalc.Formula.evaluate_parsed_formula=function(a,c,b){var d=SocialCalc.Formula,e;e=d.ConvertInfixToPolish(a);return d.EvaluatePolish(a,e,c,b)}; -SocialCalc.Formula.ConvertInfixToPolish=function(a){var c=SocialCalc.Formula,b=SocialCalc.Constants,d=c.TokenType,c=c.TokenPrecedence,e=[],g=[],h="",j,k,m,n;for(j=0;j=0&&m -0;){if(a[g[g.length-1]].text=="("){h=b.s_parseerrmissingcloseparen;break}e.push(g.pop())}return h?h:e}; -SocialCalc.Formula.EvaluatePolish=function(a,c,b,d){var e=SocialCalc.Formula,g=SocialCalc.Constants,h=e.TokenType,j=e.LookupResultType,k=e.TypeLookupTable,m=e.OperandAsNumber,n=e.OperandAsText,s=e.OperandValueAndType,q=e.OperandsAsCoordOnSheet,p=SocialCalc.format_number_for_display||function(a){return a+""},r="",u={value:"",type:"e#VALUE!",error:g.s_parseerrmissingoperand},t=[],w=function(a,c){t.push({type:a,value:c})},x,y,z,B,A,E;if(!a.length||!(c instanceof Array))return{value:"",type:"e#VALUE!", -error:typeof c=="string"?c:""};for(x=0;x"||y=="N"){if(t.length<=1){r=g.s_parseerrmissingoperand;break}B=s(b,t);z=s(b,t);if(z.type.charAt(0)=="n"&&B.type.charAt(0)=="n")A=0,y=="<"?A=z.value=B.value?1:0:y==">"?A=z.value>B.value?1:0:y=="N"&&(A=z.value!=B.value?1:0),w("nl",A);else if(z.type.charAt(0)=="e")w(z.type,0);else if(B.type.charAt(0)=="e")w(B.type,0);else{A=z.type.charAt(0);E=B.type.charAt(0);if(A=="n")z.value=p(z.value,"n","");else if(A=="b")z.value="";if(E=="n")B.value=p(B.value,"n","");else if(E=="b")B.value="";A=0;z.value=z.value.toLowerCase();B.value=B.value.toLowerCase();y=="<"?A=z.value=B.value?1:0:y==">"?A=z.value>B.value?1:0:y=="N"&&(A=z.value!=B.value?1:0);w("nl",A)}}else{if(t.length<=1){r=g.s_parseerrmissingoperand;break}B=m(b,t);z=m(b,t);if(y=="+")y=j(z.type,B.type,k.plus),w(y,z.value+B.value);else if(y=="-")y=j(z.type,B.type,k.plus),w(y,z.value-B.value);else if(y=="*")y=j(z.type,B.type,k.plus),w(y,z.value*B.value);else if(y=="/")B.value!=0?w("n",z.value/B.value):w("e#DIV/0!",0);else if(y=="^"){z.value=Math.pow(z.value,B.value);z.type= -"n";if(isNaN(z.value))z.value=0,z.type="e#NUM!";w(z.type,z.value)}}}else if(z==h.name){if(r=e.CalculateFunction(y,t,b))break}else{r=g.s_InternalError+"Unknown token "+z+" ("+y+"). ";break}value=t[0]?t[0].value:"";A=t[0]?t[0].type:"";if(A=="name")z=SocialCalc.Formula.LookupName(b,value),value=z.value,A=z.type,r=r||z.error;if(A=="coord")z=s(b,t),value=z.value,A=z.type,A=="b"&&(A="n",value=0);t.length>1&&!r&&(r+=g.s_parseerrerrorinformula);a=A;A.charAt(0)=="e"?r=r||A.substring(1)||g.s_calcerrerrorvalueinformula: -A=="range"&&(c=value.match(/^(.*)\|(.*)\|/),b=c[1].indexOf("!"),c[1]=b>=0?c[1].substring(b+1)+"!"+c[1].substring(0,b).toUpperCase():c[1].toUpperCase(),value=c[1]+":"+c[2].toUpperCase(),d||(r=g.s_formularangeresult+" "+value));r&&a.charAt(0)!="e"&&(value=r,a="e");if(a.charAt(0)=="n"&&(isNaN(value)||!isFinite(value)))value=0,a="e#NUM!",r=isNaN(value)?g.s_calcerrnumericnan:g.s_calcerrnumericoverflow;return{value:value,type:a,error:r}}; -SocialCalc.Formula.LookupResultType=function(a,c,b){var d,e;e=b[a];if(!e&&(e=b[a.charAt(0)+"*"],!e))return"e#VALUE! (internal error, missing LookupResultType "+a.charAt(0)+"*)";b=e.indexOf("|"+c+":");if(b>=0){d=e.indexOf("|",b+1);if(d<0)return"e#VALUE! (internal error, incorrect LookupResultType "+e+")";e=e.substring(b+c.length+2,d);return e=="1"?a:e=="2"?c:e}b=e.indexOf("|"+c.charAt(0)+"*:");if(b>=0){d=e.indexOf("|",b+1);if(d<0)return"e#VALUE! (internal error, incorrect LookupResultType "+e+")"; -e=e.substring(b+4,d);return e=="1"?a:e=="2"?c:e}return"e#VALUE!"};SocialCalc.Formula.TopOfStackValueAndType=function(a,c){var b=SocialCalc.Formula,d={type:"",value:""},e=c.length;if(!e)return d.error=SocialCalc.Constants.s_InternalError+"no operand on stack",d;d.value=c[e-1].value;d.type=c[e-1].type;c.pop();d.type=="name"&&(d=b.LookupName(a,d.value));return d}; -SocialCalc.Formula.OperandAsNumber=function(a,c){var b,d=SocialCalc.Formula.OperandValueAndType(a,c);b=d.type.charAt(0);b=="n"?d.value-=0:b=="b"?(d.type="n",d.value=0):b=="e"?d.value=0:(b=SocialCalc.DetermineValueType?SocialCalc.DetermineValueType(d.value):{value:d.value-0,type:"n"},d.value=b.type.charAt(0)=="n"?b.value-0:0,d.type=b.type);return d}; -SocialCalc.Formula.OperandAsText=function(a,c){var b,d=SocialCalc.Formula.OperandValueAndType(a,c);b=d.type.charAt(0);if(b!="t")b=="n"?(d.value=SocialCalc.format_number_for_display?SocialCalc.format_number_for_display(d.value,d.type,""):d.value+="",d.type="t"):b=="b"?(d.value="",d.type="t"):b=="e"?d.value="":(c.value=d.value+"",c.type="t");return d}; -SocialCalc.Formula.OperandValueAndType=function(a,c){var b,d,e;b=SocialCalc.Formula;var g={type:"",value:""};d=c.length;if(!d)return g.error=SocialCalc.Constants.s_InternalError+"no operand on stack",g;g.value=c[d-1].value;g.type=c[d-1].type;c.pop();g.type=="name"&&(g=b.LookupName(a,g.value));g.type=="range"&&(g=b.StepThroughRangeDown(c,g.value));if(g.type=="coord"){e=a;d=g.value.indexOf("!");if(d!=-1){e=b.FindInSheetCache(g.value.substring(d+1));if(e==null)return g.type="e#REF!",g.error=SocialCalc.Constants.s_sheetunavailable+ -" "+g.value.substring(d+1),g.value=0,g;g.value=g.value.substring(0,d)}e?(d=e.cells[SocialCalc.Formula.PlainCoord(g.value)])?(b=d.valuetype,g.value=d.datavalue):b="b":(b="e#N/A",g.value=0);g.type=b||"b";if(g.type=="b")g.value=0}return g}; -SocialCalc.Formula.OperandAsCoord=function(a,c){var b={type:"",value:""},d=c.length;b.value=c[d-1].value;b.type=c[d-1].type;c.pop();b.type=="name"&&(b=SocialCalc.Formula.LookupName(a,b.value));if(b.type!="coord")b.value=SocialCalc.Constants.s_calcerrcellrefmissing,b.type="e#REF!";return b}; -SocialCalc.Formula.OperandsAsCoordOnSheet=function(a,c){var b,d,e,g={},h={};e=SocialCalc.Formula;b=c.length;g.value=c[b-1].value;g.type=c[b-1].type;c.pop();b=e.OperandAsSheetName(a,c);d=e.FindInSheetCache(b.value);if(d==null)return h.type="e#REF!",h.value=0,h.error=SocialCalc.Constants.s_sheetunavailable+" "+b.value,h;g.type=="name"&&(g=e.LookupName(d,g.value));h.type=g.type;g.type=="coord"?h.value=g.value+"!"+b.value:g.type=="range"?(e=g.value.indexOf("|"),d=g.value.indexOf("|",e+1),h.value=g.value.substring(0, -e)+"!"+b.value+"|"+g.value.substring(e+1,d)+"|"):g.type.charAt(0)=="e"?h.value=g.value:(h.error=SocialCalc.Constants.s_calcerrcellrefmissing,h.type="e#REF!",h.value=0);return h}; -SocialCalc.Formula.OperandsAsRangeOnSheet=function(a,c){var b,d,e,g,h={},j=SocialCalc.Formula,k=SocialCalc.Constants;b=c.length;h.value=c[b-1].value;h.type=c[b-1].type;c.pop();b=j.OperandAsCoord(a,c);if(b.type!="coord")return{value:0,type:"e#REF!"};d=a;e=b.value.indexOf("!");if(e!=-1){g=b.value.indexOf("|",e+1);if(g<0)g=b.value.length;d=j.FindInSheetCache(b.value.substring(e+1,g));if(d==null)return{value:0,type:"e#REF!",errortext:k.s_sheetunavailable+" "+b.value.substring(e+1,g)}}h.type=="name"&& -(h=j.LookupName(d,h.value));return h.type=="coord"?{value:b.value+"|"+h.value+"|",type:"range"}:{value:k.s_calcerrcellrefmissing,type:"e#REF!"}}; -SocialCalc.Formula.OperandAsSheetName=function(a,c){var b,d={type:"",value:""};b=c.length;d.value=c[b-1].value;d.type=c[b-1].type;c.pop();if(d.type=="name"){b=SocialCalc.Formula.LookupName(a,d.value);if(!b.value)return d;d.value=b.value;d.type=b.type}if(d.type=="coord")(b=a.cells[SocialCalc.Formula.PlainCoord(d.value)])?(d.value=b.datavalue,d.type=b.valuetype):(d.value="",d.type="b");if(d.type.charAt(0)!="t")d.value="",d.error=SocialCalc.Constants.s_calcerrsheetnamemissing;return d}; -SocialCalc.Formula.LookupName=function(a,c){var b,d,e;d=a.names;e={};b=!1;if(d[c.toUpperCase()]){e.value=d[c.toUpperCase()].definition;if(e.value.charAt(0)=="="){if(a.checknamecirc){if(a.checknamecirc[c])return e.type="e#NAME?",e.error=SocialCalc.Constants.s_circularnameref+' "'+c+'".',e}else a.checknamecirc={},b=!0;a.checknamecirc[c]=!0;e=SocialCalc.Formula.ParseFormulaIntoTokens(e.value.substring(1));e=SocialCalc.Formula.evaluate_parsed_formula(e,a,1);delete a.checknamecirc[c];b&&delete a.checknamecirc; -if(e.type!="range")return e}b=e.value.indexOf(":");b!=-1?(e.type="range",e.value=e.value.substring(0,b)+"|"+e.value.substring(b+1)+"|"):e.type="coord";e.value=e.value.toUpperCase()}else(d=SocialCalc.Formula.SpecialConstants[c.toUpperCase()])?(b=d.indexOf(","),e.value=d.substring(0,b)-0,e.type=d.substring(b+1)):(e.value="",e.type="e#NAME?",e.error=SocialCalc.Constants.s_calcerrunknownname+' "'+c+'"');return e}; -SocialCalc.Formula.StepThroughRangeDown=function(a,c){var b,d,e,g,h,j,k,m,n=SocialCalc.Formula;g=c.indexOf("|");e=c.indexOf("|",g+1);b=c.substring(0,g);d=c.substring(g+1,e);e=c.substring(e+1)-0;g=b.indexOf("!");g!=-1?(h=b.substring(g),b=b.substring(0,g)):h="";g=d.indexOf("!");g!=-1&&(d=d.substring(0,g));g=n.OrderRangeParts(b,d);m=0;for(k=g.r1;k<=g.r2;k++)for(j=g.c1;j<=g.c2;j++)if(m++,m>e)return(k!=g.r2||j!=g.c2)&&n.PushOperand(a,"range",b+h+"|"+d+"|"+m),{value:SocialCalc.crToCoord(j,k)+h,type:"coord"}}; -SocialCalc.Formula.DecodeRangeParts=function(a,c){var b,d,e,g,h=SocialCalc.Formula;e=c.indexOf("|");g=c.indexOf("|",e+1);b=c.substring(0,e);d=c.substring(e+1,g);e=b.indexOf("!");e!=-1?(g=b.substring(e+1),b=b.substring(0,e)):g="";e=d.indexOf("!");e!=-1&&(d=d.substring(0,e));e=a;if(g&&(e=h.FindInSheetCache(g),e==null))return null;b=h.OrderRangeParts(b,d);return{sheetdata:e,sheetname:g,col1num:b.c1,ncols:b.c2-b.c1+1,row1num:b.r1,nrows:b.r2-b.r1+1}}; -if(!SocialCalc.Formula.FunctionList)SocialCalc.Formula.FunctionList={};SocialCalc.Formula.FunctionClasses=null;SocialCalc.Formula.FunctionArgDefs={}; -SocialCalc.Formula.CalculateFunction=function(a,c,b){var d,e,g,h=SocialCalc.Formula;e="";if(d=h.FunctionList[a]){e=[];g=d[0];d=d[1];h.CopyFunctionArgs(c,e);if(d!=100)if(d<0){if(e.length<-d)return e=h.FunctionArgsError(a,c)}else if(e.length!=d)return e=h.FunctionArgsError(a,c);e=g(a,c,e,b)}else c.length&&c[c.length-1].type=="start"?(c.pop(),h.PushOperand(c,"name",a)):e=SocialCalc.Constants.s_sheetfuncunknownfunction+" "+a+". ";return e}; +SocialCalc.Formula.ParseFormulaIntoTokens=function(a){var c,b,d,e,g,h;c=SocialCalc.Formula;var j=SocialCalc.Constants,k=c.ParseState,m=c.TokenType,n=c.CharClass,r=c.CharClassTable,q=c.UpperCaseTable,p=c.ParsePushToken,t=/^\$?[A-Z]{1,2}\$?[1-9]\d*$/i,s=[],u="";g=0;d=!1;for(c=0;c<=a.length;c++)if(c"==e))u=e+u,s.pop(),0="==u?b=u="G":"<="==u?b=u="L":"<>"==u?b=u="N":(h=m.error,u=j.s_parseerrtwoops));p(s,u,h,b);g=0}else cclass==n.quote?(u="",g=k.string):cclass==n.space?p(s," ",m.space,0):cclass!=n.eof&&p(s,j.s_parseerrchar,m.error,0);return s};SocialCalc.Formula.ParsePushToken=function(a,c,b,d){a.push({text:c,type:b,opcode:d})}; +SocialCalc.Formula.evaluate_parsed_formula=function(a,c,b){var d=SocialCalc.Formula,e;e=d.ConvertInfixToPolish(a);return d.EvaluatePolish(a,e,c,b)}; +SocialCalc.Formula.ConvertInfixToPolish=function(a){var c=SocialCalc.Formula,b=SocialCalc.Constants,d=c.TokenType,c=c.TokenPrecedence,e=[],g=[],h="",j,k,m,n;for(j=0;jm&&(m=-m,0>n&&(n=-n),m<=n))break;e.push(g.pop())}g.push(j)}else{h=m==d.error?n:"Internal error while processing parsed formula. ";break}for(;0< +g.length;){if("("==a[g[g.length-1]].text){h=b.s_parseerrmissingcloseparen;break}e.push(g.pop())}return h?h:e}; +SocialCalc.Formula.EvaluatePolish=function(a,c,b,d){var e=SocialCalc.Formula,g=SocialCalc.Constants,h=e.TokenType,j=e.LookupResultType,k=e.TypeLookupTable,m=e.OperandAsNumber,n=e.OperandAsText,r=e.OperandValueAndType,q=e.OperandsAsCoordOnSheet,p=SocialCalc.format_number_for_display||function(a){return a+""},t="",s={value:"",type:"e#VALUE!",error:g.s_parseerrmissingoperand},u=[],v=function(a,c){u.push({type:a,value:c})},x,w,y,A,B,E;if(!a.length||!(c instanceof Array))return{value:"",type:"e#VALUE!", +error:"string"==typeof c?c:""};for(x=0;x=u.length)return s;if("M"==w)y=m(b,u),w=j(y.type,y.type,k.unaryminus),v(w,-y.value);else if("P"==w)y=m(b,u),w=j(y.type,y.type,k.unaryplus),v(w,y.value);else if("%"==w)y=m(b,u),w=j(y.type,y.type,k.unarypercent),v(w,0.01*y.value);else if("&"==w){if(1>=u.length)return s;A=n(b,u);y=n(b, +u);w=j(y.type,y.type,k.concat);v(w,y.value+A.value)}else if(":"==w){if(1>=u.length)return s;y=e.OperandsAsRangeOnSheet(b,u);y.error&&(t=t||y.error);v(y.type,y.value)}else if("!"==w){if(1>=u.length)return s;y=q(b,u);y.error&&(t=t||y.error);v(y.type,y.value)}else if("<"==w||"L"==w||"="==w||"G"==w||">"==w||"N"==w){if(1>=u.length){t=g.s_parseerrmissingoperand;break}A=r(b,u);y=r(b,u);"n"==y.type.charAt(0)&&"n"==A.type.charAt(0)?(B=0,"<"==w?B=y.value=A.value?1:0:">"==w?B=y.value>A.value?1:0:"N"==w&&(B=y.value!=A.value?1:0),v("nl",B)):"e"==y.type.charAt(0)?v(y.type,0):"e"==A.type.charAt(0)?v(A.type,0):(B=y.type.charAt(0),E=A.type.charAt(0),"n"==B?y.value=p(y.value,"n",""):"b"==B&&(y.value=""),"n"==E?A.value=p(A.value,"n",""):"b"==E&&(A.value=""),B=0,y.value=y.value.toLowerCase(),A.value=A.value.toLowerCase(),"<"==w?B=y.value= +A.value?1:0:">"==w?B=y.value>A.value?1:0:"N"==w&&(B=y.value!=A.value?1:0),v("nl",B))}else{if(1>=u.length){t=g.s_parseerrmissingoperand;break}A=m(b,u);y=m(b,u);"+"==w?(w=j(y.type,A.type,k.plus),v(w,y.value+A.value)):"-"==w?(w=j(y.type,A.type,k.plus),v(w,y.value-A.value)):"*"==w?(w=j(y.type,A.type,k.plus),v(w,y.value*A.value)):"/"==w?0!=A.value?v("n",y.value/A.value):v("e#DIV/0!",0):"^"==w&&(y.value=Math.pow(y.value,A.value),y.type="n",isNaN(y.value)&&(y.value=0,y.type="e#NUM!"),v(y.type,y.value))}}else if(y== +h.name){if(t=e.CalculateFunction(w,u,b))break}else{t=g.s_InternalError+"Unknown token "+y+" ("+w+"). ";break}value=u[0]?u[0].value:"";B=u[0]?u[0].type:"";"name"==B&&(y=SocialCalc.Formula.LookupName(b,value),value=y.value,B=y.type,t=t||y.error);"coord"==B&&(y=r(b,u),value=y.value,B=y.type,"b"==B&&(B="n",value=0));1d)return"e#VALUE! (internal error, incorrect LookupResultType "+e+")";e=e.substring(b+c.length+2,d);return"1"==e?a:"2"==e?c:e}b=e.indexOf("|"+c.charAt(0)+"*:");if(0<=b){d=e.indexOf("|",b+1);if(0>d)return"e#VALUE! (internal error, incorrect LookupResultType "+e+")";e= +e.substring(b+4,d);return"1"==e?a:"2"==e?c:e}return"e#VALUE!"};SocialCalc.Formula.TopOfStackValueAndType=function(a,c){var b=SocialCalc.Formula,d={type:"",value:""},e=c.length;if(!e)return d.error=SocialCalc.Constants.s_InternalError+"no operand on stack",d;d.value=c[e-1].value;d.type=c[e-1].type;c.pop();"name"==d.type&&(d=b.LookupName(a,d.value));return d}; +SocialCalc.Formula.OperandAsNumber=function(a,c){var b,d=SocialCalc.Formula.OperandValueAndType(a,c);b=d.type.charAt(0);"n"==b?d.value-=0:"b"==b?(d.type="n",d.value=0):"e"==b?d.value=0:(b=SocialCalc.DetermineValueType?SocialCalc.DetermineValueType(d.value):{value:d.value-0,type:"n"},d.value="n"==b.type.charAt(0)?b.value-0:0,d.type=b.type);return d}; +SocialCalc.Formula.OperandAsText=function(a,c){var b,d=SocialCalc.Formula.OperandValueAndType(a,c);b=d.type.charAt(0);"t"!=b&&("n"==b?(d.value=SocialCalc.format_number_for_display?SocialCalc.format_number_for_display(d.value,d.type,""):d.value+="",d.type="t"):"b"==b?(d.value="",d.type="t"):"e"==b?d.value="":(c.value=d.value+"",c.type="t"));return d}; +SocialCalc.Formula.OperandValueAndType=function(a,c){var b,d,e;b=SocialCalc.Formula;var g={type:"",value:""};d=c.length;if(!d)return g.error=SocialCalc.Constants.s_InternalError+"no operand on stack",g;g.value=c[d-1].value;g.type=c[d-1].type;c.pop();"name"==g.type&&(g=b.LookupName(a,g.value));"range"==g.type&&(g=b.StepThroughRangeDown(c,g.value));if("coord"==g.type){e=a;d=g.value.indexOf("!");if(-1!=d){e=b.FindInSheetCache(g.value.substring(d+1));if(null==e)return g.type="e#REF!",g.error=SocialCalc.Constants.s_sheetunavailable+ +" "+g.value.substring(d+1),g.value=0,g;g.value=g.value.substring(0,d)}e?(d=e.cells[SocialCalc.Formula.PlainCoord(g.value)])?(b=d.valuetype,g.value=d.datavalue):b="b":(b="e#N/A",g.value=0);g.type=b||"b";"b"==g.type&&(g.value=0)}return g}; +SocialCalc.Formula.OperandAsCoord=function(a,c){var b={type:"",value:""},d=c.length;b.value=c[d-1].value;b.type=c[d-1].type;c.pop();"name"==b.type&&(b=SocialCalc.Formula.LookupName(a,b.value));if("coord"==b.type)return b;b.value=SocialCalc.Constants.s_calcerrcellrefmissing;b.type="e#REF!";return b}; +SocialCalc.Formula.OperandsAsCoordOnSheet=function(a,c){var b,d,e,g={},h={};e=SocialCalc.Formula;b=c.length;g.value=c[b-1].value;g.type=c[b-1].type;c.pop();b=e.OperandAsSheetName(a,c);d=e.FindInSheetCache(b.value);if(null==d)return h.type="e#REF!",h.value=0,h.error=SocialCalc.Constants.s_sheetunavailable+" "+b.value,h;"name"==g.type&&(g=e.LookupName(d,g.value));h.type=g.type;"coord"==g.type?h.value=g.value+"!"+b.value:"range"==g.type?(e=g.value.indexOf("|"),d=g.value.indexOf("|",e+1),h.value=g.value.substring(0, +e)+"!"+b.value+"|"+g.value.substring(e+1,d)+"|"):"e"==g.type.charAt(0)?h.value=g.value:(h.error=SocialCalc.Constants.s_calcerrcellrefmissing,h.type="e#REF!",h.value=0);return h}; +SocialCalc.Formula.OperandsAsRangeOnSheet=function(a,c){var b,d,e,g,h={},j=SocialCalc.Formula,k=SocialCalc.Constants;b=c.length;h.value=c[b-1].value;h.type=c[b-1].type;c.pop();b=j.OperandAsCoord(a,c);if("coord"!=b.type)return{value:0,type:"e#REF!"};d=a;e=b.value.indexOf("!");if(-1!=e&&(g=b.value.indexOf("|",e+1),0>g&&(g=b.value.length),d=j.FindInSheetCache(b.value.substring(e+1,g)),null==d))return{value:0,type:"e#REF!",errortext:k.s_sheetunavailable+" "+b.value.substring(e+1,g)};"name"==h.type&&(h= +j.LookupName(d,h.value));return"coord"==h.type?{value:b.value+"|"+h.value+"|",type:"range"}:{value:k.s_calcerrcellrefmissing,type:"e#REF!"}}; +SocialCalc.Formula.OperandAsSheetName=function(a,c){var b,d={type:"",value:""};b=c.length;d.value=c[b-1].value;d.type=c[b-1].type;c.pop();if("name"==d.type){b=SocialCalc.Formula.LookupName(a,d.value);if(!b.value)return d;d.value=b.value;d.type=b.type}"coord"==d.type&&((b=a.cells[SocialCalc.Formula.PlainCoord(d.value)])?(d.value=b.datavalue,d.type=b.valuetype):(d.value="",d.type="b"));"t"!=d.type.charAt(0)&&(d.value="",d.error=SocialCalc.Constants.s_calcerrsheetnamemissing);return d}; +SocialCalc.Formula.LookupName=function(a,c){var b,d,e;d=a.names;e={};b=!1;if(d[c.toUpperCase()]){e.value=d[c.toUpperCase()].definition;if("="==e.value.charAt(0)){if(a.checknamecirc){if(a.checknamecirc[c])return e.type="e#NAME?",e.error=SocialCalc.Constants.s_circularnameref+' "'+c+'".',e}else a.checknamecirc={},b=!0;a.checknamecirc[c]=!0;e=SocialCalc.Formula.ParseFormulaIntoTokens(e.value.substring(1));e=SocialCalc.Formula.evaluate_parsed_formula(e,a,1);delete a.checknamecirc[c];b&&delete a.checknamecirc; +if("range"!=e.type)return e}b=e.value.indexOf(":");-1!=b?(e.type="range",e.value=e.value.substring(0,b)+"|"+e.value.substring(b+1)+"|"):e.type="coord";e.value=e.value.toUpperCase()}else(d=SocialCalc.Formula.SpecialConstants[c.toUpperCase()])?(b=d.indexOf(","),e.value=d.substring(0,b)-0,e.type=d.substring(b+1)):(e.value="",e.type="e#NAME?",e.error=SocialCalc.Constants.s_calcerrunknownname+' "'+c+'"');return e}; +SocialCalc.Formula.StepThroughRangeDown=function(a,c){var b,d,e,g,h,j,k,m,n=SocialCalc.Formula;g=c.indexOf("|");e=c.indexOf("|",g+1);b=c.substring(0,g);d=c.substring(g+1,e);e=c.substring(e+1)-0;g=b.indexOf("!");-1!=g?(h=b.substring(g),b=b.substring(0,g)):h="";g=d.indexOf("!");-1!=g&&(d=d.substring(0,g));g=n.OrderRangeParts(b,d);m=0;for(k=g.r1;k<=g.r2;k++)for(j=g.c1;j<=g.c2;j++)if(m++,m>e)return(k!=g.r2||j!=g.c2)&&n.PushOperand(a,"range",b+h+"|"+d+"|"+m),{value:SocialCalc.crToCoord(j,k)+h,type:"coord"}}; +SocialCalc.Formula.DecodeRangeParts=function(a,c){var b,d,e,g,h=SocialCalc.Formula;e=c.indexOf("|");g=c.indexOf("|",e+1);b=c.substring(0,e);d=c.substring(e+1,g);e=b.indexOf("!");-1!=e?(g=b.substring(e+1),b=b.substring(0,e)):g="";e=d.indexOf("!");-1!=e&&(d=d.substring(0,e));e=a;if(g&&(e=h.FindInSheetCache(g),null==e))return null;b=h.OrderRangeParts(b,d);return{sheetdata:e,sheetname:g,col1num:b.c1,ncols:b.c2-b.c1+1,row1num:b.r1,nrows:b.r2-b.r1+1}}; +SocialCalc.Formula.FunctionList||(SocialCalc.Formula.FunctionList={});SocialCalc.Formula.FunctionClasses=null;SocialCalc.Formula.FunctionArgDefs={}; +SocialCalc.Formula.CalculateFunction=function(a,c,b){var d,e,g,h=SocialCalc.Formula;e="";if(d=h.FunctionList[a]){e=[];g=d[0];d=d[1];h.CopyFunctionArgs(c,e);if(d!=100)if(d<0){if(e.length<-d)return e=h.FunctionArgsError(a,c)}else if(e.length!=d)return e=h.FunctionArgsError(a,c);e=g(a,c,e,b)}else if(c.length&&c[c.length-1].type=="start"){c.pop();h.PushOperand(c,"name",a)}else e=SocialCalc.Constants.s_sheetfuncunknownfunction+" "+a+". ";return e}; SocialCalc.Formula.PushOperand=function(a,c,b){a.push({type:c,value:b})};SocialCalc.Formula.CopyFunctionArgs=function(a,c){for(;a.length>0&&a[a.length-1].type!="start";)c.push(a.pop());a.pop()};SocialCalc.Formula.FunctionArgsError=function(a,c){var b=SocialCalc.Constants.s_calcerrincorrectargstofunction+" "+a+". ";SocialCalc.Formula.PushOperand(c,"e#VALUE!",b);return b};SocialCalc.Formula.FunctionSpecificError=function(a,c,b,d){SocialCalc.Formula.PushOperand(c,b,d);return d}; -SocialCalc.Formula.CheckForErrorValue=function(a,c){return c.type.charAt(0)=="e"?(a.push(c),!0):!1}; -SocialCalc.Formula.FillFunctionInfo=function(){var a=SocialCalc.Formula,c=SocialCalc.Constants,b,d,e;if(!a.FunctionClasses){for(b in a.FunctionList)d=a.FunctionList[b],d[2]&&(a.FunctionArgDefs[d[2]]=c["s_farg_"+d[2]]||""),d[3]||c["s_fdef_"+b]&&(a.FunctionList[b][3]=c["s_fdef_"+b]);a.FunctionClasses={};for(d=0;d0){b="v1";for(c=2;c<=a;c++)b+=", v"+c;return b}else if(a<0){b="v1";for(c=2;c<-a;c++)b+=", v"+c;return b+", ..."}else return"nargs: "+a;return b=c.FunctionArgDefs[b]||b}; -SocialCalc.Formula.SeriesFunctions=function(a,c,b,d){var e,g;e=SocialCalc.Formula;for(var h=e.OperandValueAndType,j=e.LookupResultType,k=e.TypeLookupTable.plus,m=function(a,b){c.push({type:a,value:b})},n=0,s="",q=0,p=0,r=0,u=1,t,w,x,y,z,B;b.length>0;)if(e=h(d,b),g=e.type.charAt(0),g=="n"&&(q+=1),g!="b"&&(p+=1),g=="b"&&(r+=1),g=="n")g=e.value-0,n+=g,u*=g,t=t!=void 0?g>t?g:t:g,w=w!=void 0?g0?m(s,n/q):m("e#DIV/0!",0);break;case "STDEV":q>1?m(s,Math.sqrt(y/(q-1))):m("e#DIV/0!",0);break;case "STDEVP":q>1?m(s,Math.sqrt(y/q)):m("e#DIV/0!",0);break;case "VAR":q>1?m(s,y/(q-1)):m("e#DIV/0!",0);break;case "VARP":q>1?m(s,y/q):m("e#DIV/0!",0)}return null}; -SocialCalc.Formula.FunctionList.AVERAGE=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.COUNT=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.COUNTA=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.COUNTBLANK=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.MAX=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"]; +SocialCalc.Formula.CheckForErrorValue=function(a,c){if(c.type.charAt(0)=="e"){a.push(c);return true}return false}; +SocialCalc.Formula.FillFunctionInfo=function(){var a=SocialCalc.Formula,c=SocialCalc.Constants,b,d,e;if(!a.FunctionClasses){for(b in a.FunctionList){d=a.FunctionList[b];d[2]&&(a.FunctionArgDefs[d[2]]=c["s_farg_"+d[2]]||"");d[3]||c["s_fdef_"+b]&&(a.FunctionList[b][3]=c["s_fdef_"+b])}a.FunctionClasses={};for(d=0;d0){b="v1";for(c=2;c<=a;c++)b=b+(", v"+c);return b}if(a<0){b="v1";for(c=2;c<-a;c++)b=b+(", v"+c);return b+", ..."}return"nargs: "+a}}return b=c.FunctionArgDefs[b]||b}; +SocialCalc.Formula.SeriesFunctions=function(a,c,b,d){var e,g;e=SocialCalc.Formula;for(var h=e.OperandValueAndType,j=e.LookupResultType,k=e.TypeLookupTable.plus,m=function(a,b){c.push({type:a,value:b})},n=0,r="",q=0,p=0,t=0,s=1,u,v,x,w,y,A;b.length>0;){e=h(d,b);g=e.type.charAt(0);g=="n"&&(q=q+1);g!="b"&&(p=p+1);g=="b"&&(t=t+1);if(g=="n"){g=e.value-0;n=n+g;s=s*g;u=u!=void 0?g>u?g:u:g;v=v!=void 0?g0?m(r,n/q):m("e#DIV/0!",0);break;case "STDEV":q>1?m(r,Math.sqrt(w/(q-1))):m("e#DIV/0!",0);break;case "STDEVP":q>1?m(r,Math.sqrt(w/q)):m("e#DIV/0!",0);break;case "VAR":q>1?m(r,w/(q-1)):m("e#DIV/0!",0);break;case "VARP":q>1?m(r,w/q):m("e#DIV/0!", +0)}return null};SocialCalc.Formula.FunctionList.AVERAGE=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.COUNT=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.COUNTA=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.COUNTBLANK=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.MAX=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"]; SocialCalc.Formula.FunctionList.MIN=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.PRODUCT=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.STDEV=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.STDEVP=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.SUM=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"]; SocialCalc.Formula.FunctionList.VAR=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"];SocialCalc.Formula.FunctionList.VARP=[SocialCalc.Formula.SeriesFunctions,-1,"vn",null,"stat"]; -SocialCalc.Formula.DSeriesFunctions=function(a,c,b,d){var e,g,h,j,k,m,n,s,q,p=SocialCalc.Formula,r=p.LookupResultType,u=p.TypeLookupTable.plus,t=function(a,b){c.push({type:a,value:b})};e={};var w=0,x="",y=0,z=0,B=0,A=1,E,J,G,I,v;h=p.TopOfStackValueAndType(d,b);j=p.OperandValueAndType(d,b);b=p.TopOfStackValueAndType(d,b);if(h.type!="range"||b.type!="range")return p.FunctionArgsError(a,c);h=p.DecodeRangeParts(d,h.value);d=p.DecodeRangeParts(d,b.value);j=p.FieldToColnum(h.sheetdata,h.col1num,h.ncols, -h.row1num,j.value,j.type);if(j<=0)t("e#VALUE!",0);else{j=h.col1num+j-1;n=[];for(b=0;bE?v1:E:v1,J=J!=void 0?v10?t(x,w/y):t("e#DIV/0!",0);break;case "DSTDEV":y>1?t(x,Math.sqrt(G/(y-1))):t("e#DIV/0!",0);break;case "DSTDEVP":y>1?t(x,Math.sqrt(G/y)):t("e#DIV/0!",0);break;case "DVAR":y>1?t(x,G/(y-1)):t("e#DIV/0!",0);break;case "DVARP":y> -1?t(x,G/y):t("e#DIV/0!",0);break;case "DGET":y==1?t(x,w):y==0?t("e#VALUE!",0):t("e#NUM!",0)}}};SocialCalc.Formula.FunctionList.DAVERAGE=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"];SocialCalc.Formula.FunctionList.DCOUNT=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"];SocialCalc.Formula.FunctionList.DCOUNTA=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"];SocialCalc.Formula.FunctionList.DGET=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"]; +SocialCalc.Formula.DSeriesFunctions=function(a,c,b,d){var e,g,h,j,k,m,n,r,q=SocialCalc.Formula,p=q.LookupResultType,t=q.TypeLookupTable.plus,s=function(a,b){c.push({type:a,value:b})};g=e=void 0;var u=0,v="",x=0,w=0,y=1,A,B,E,H,J;h=q.TopOfStackValueAndType(d,b);j=q.OperandValueAndType(d,b);k=q.TopOfStackValueAndType(d,b);if(h.type!="range"||k.type!="range")return q.FunctionArgsError(a,c);b=q.DecodeRangeParts(d,h.value);d=q.DecodeRangeParts(d,k.value);j=q.FieldToColnum(b.sheetdata,b.col1num,b.ncols, +b.row1num,j.value,j.type);if(j<=0)s("e#VALUE!",0);else{j=b.col1num+j-1;k=[];for(h=0;hA?v1:A:v1;B=B!=void 0?v10?s(v,u/x):s("e#DIV/0!",0);break;case "DSTDEV":x>1?s(v,Math.sqrt(E/(x-1))):s("e#DIV/0!",0);break;case "DSTDEVP":x>1?s(v,Math.sqrt(E/x)):s("e#DIV/0!",0);break;case "DVAR":x>1?s(v,E/(x-1)):s("e#DIV/0!",0);break;case "DVARP":x>1?s(v,E/x):s("e#DIV/0!",0); +break;case "DGET":x==1?s(v,u):x==0?s("e#VALUE!",0):s("e#NUM!",0)}}};SocialCalc.Formula.FunctionList.DAVERAGE=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"];SocialCalc.Formula.FunctionList.DCOUNT=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"];SocialCalc.Formula.FunctionList.DCOUNTA=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"];SocialCalc.Formula.FunctionList.DGET=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"]; SocialCalc.Formula.FunctionList.DMAX=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"];SocialCalc.Formula.FunctionList.DMIN=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"];SocialCalc.Formula.FunctionList.DPRODUCT=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"];SocialCalc.Formula.FunctionList.DSTDEV=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"];SocialCalc.Formula.FunctionList.DSTDEVP=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"]; SocialCalc.Formula.FunctionList.DSUM=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"];SocialCalc.Formula.FunctionList.DVAR=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"];SocialCalc.Formula.FunctionList.DVARP=[SocialCalc.Formula.DSeriesFunctions,3,"dfunc","","stat"]; -SocialCalc.Formula.FieldToColnum=function(a,c,b,d,e,g){var h;if(g.charAt(0)=="n")return g=e-0,g<=0||g>b?0:Math.floor(g);if(g.charAt(0)!="t")return 0;e=e?e.toLowerCase():"";for(g=0;gb.nrows){u("e#REF!",0);return}}else if(a=="VLOOKUP"){if(m=1,j>b.ncols){u("e#REF!",0);return}}else if(a=="MATCH")if(b.ncols>1){if(b.nrows>1){u("e#N/A", -0);return}k=1}else m=1;else return r.FunctionArgsError(a,c),0;if(j<1&&a!="MATCH")return u("e#VALUE!",0),0;for(;;){r=SocialCalc.crToCoord(b.col1num+d,b.row1num+g);p=b.sheetdata.GetAssuredCell(r);r=p.datavalue;p=p.valuetype?p.valuetype.charAt(0):"b";p=="n"&&(r-=0);if(h)if(e.type=="n"&&p=="n"){if(e.value==r)break;if(h>0&&e.value>r||h<0&&e.value0&&e.value>r||h<0&&e.value< -r)n=1,s=d,q=g;else if(n){n=2;break}}}else if(e.type=="n"&&p=="n"){if(e.value==r)break}else if(e.type=="t"&&p=="t"&&(r=typeof r=="string"?r.toLowerCase():"",e.value==r))break;g+=m;d+=k;if(g>=b.nrows||d>=b.ncols){if(n){n=2;break}u("e#N/A",0);return}}n==2&&(g=q,d=s);a=="MATCH"?(r=d+g+1,p="n"):(r=SocialCalc.crToCoord(b.col1num+d+(a=="VLOOKUP"?j-1:0),b.row1num+g+(a=="HLOOKUP"?j-1:0)),p=b.sheetdata.GetAssuredCell(r),r=p.datavalue,p=p.valuetype);u(p,r)}else u("e#REF!",0)}; +SocialCalc.Formula.FieldToColnum=function(a,c,b,d,e,g){var h;if(g.charAt(0)=="n"){g=e-0;return g<=0||g>b?0:Math.floor(g)}if(g.charAt(0)!="t")return 0;e=e?e.toLowerCase():"";for(g=0;gb.nrows){s("e#REF!",0);return}}else if(a=="VLOOKUP"){m=1;if(j>b.ncols){s("e#REF!",0);return}}else if(a=="MATCH")if(b.ncols>1){if(b.nrows> +1){s("e#N/A",0);return}k=1}else m=1;else{t.FunctionArgsError(a,c);return 0}if(j<1&&a!="MATCH"){s("e#VALUE!",0);return 0}for(n;;){t=SocialCalc.crToCoord(b.col1num+d,b.row1num+g);p=b.sheetdata.GetAssuredCell(t);t=p.datavalue;p=p.valuetype?p.valuetype.charAt(0):"b";p=="n"&&(t=t-0);if(h)if(e.type=="n"&&p=="n"){if(e.value==t)break;if(h>0&&e.value>t||h<0&&e.value0&&e.value> +t||h<0&&e.value=b.nrows||d>=b.ncols){if(n){n=2;break}s("e#N/A",0);return}}if(n==2){g=q;d=r}if(a=="MATCH"){t=d+g+1;p="n"}else{t=SocialCalc.crToCoord(b.col1num+d+(a=="VLOOKUP"?j-1:0),b.row1num+g+(a=="HLOOKUP"?j-1:0));p=b.sheetdata.GetAssuredCell(t);t=p.datavalue;p=p.valuetype}s(p,t)}else s("e#REF!",0)}; SocialCalc.Formula.FunctionList.HLOOKUP=[SocialCalc.Formula.LookupFunctions,-3,"hlookup","","lookup"];SocialCalc.Formula.FunctionList.MATCH=[SocialCalc.Formula.LookupFunctions,-2,"match","","lookup"];SocialCalc.Formula.FunctionList.VLOOKUP=[SocialCalc.Formula.LookupFunctions,-3,"vlookup","","lookup"]; -SocialCalc.Formula.IndexFunction=function(a,c,b,d){var e,g,h,j,k=SocialCalc.Formula,m=function(a,b){c.push({type:a,value:b})};e=k.TopOfStackValueAndType(d,b);if(e.type!="range")return k.FunctionArgsError(a,c),0;g=k.DecodeRangeParts(d,e.value,e.type);e=g.sheetname?"!"+g.sheetname:"";h={value:0};j={value:0};if(b.length){h=k.OperandAsNumber(d,b);if(h.type.charAt(0)!="n"||h.value<0){m("e#VALUE!",0);return}if(b.length){j=k.OperandAsNumber(d,b);if(j.type.charAt(0)!="n"||j.value<0){m("e#VALUE!",0);return}if(b.length)return k.FunctionArgsError(a, -c),0}else if(g.nrows==1)j.value=h.value,h.value=0}h.value>g.nrows||j.value>g.ncols?m("e#REF!",0):(h.value==0?j.value==0?g.nrows==1&&g.ncols==1?(a=SocialCalc.crToCoord(g.col1num,g.row1num)+e,b="coord"):(a=SocialCalc.crToCoord(g.col1num,g.row1num)+e+"|"+SocialCalc.crToCoord(g.col1num+g.ncols-1,g.row1num+g.nrows-1)+"|",b="range"):g.nrows==1?(a=SocialCalc.crToCoord(g.col1num+j.value-1,g.row1num)+e,b="coord"):(a=SocialCalc.crToCoord(g.col1num+j.value-1,g.row1num)+e+"|"+SocialCalc.crToCoord(g.col1num+j.value- -1,g.row1num+g.nrows-1)+"|",b="range"):j.value==0?g.ncols==1?(a=SocialCalc.crToCoord(g.col1num,g.row1num+h.value-1)+e,b="coord"):(a=SocialCalc.crToCoord(g.col1num,g.row1num+h.value-1)+e+"|"+SocialCalc.crToCoord(g.col1num+g.ncols-1,g.row1num+h.value-1)+"|",b="range"):(a=SocialCalc.crToCoord(g.col1num+j.value-1,g.row1num+h.value-1)+e,b="coord"),m(b,a))};SocialCalc.Formula.FunctionList.INDEX=[SocialCalc.Formula.IndexFunction,-1,"index","","lookup"]; -SocialCalc.Formula.CountifSumifFunctions=function(a,c,b,d){var e,g,h,j,k=0,m="",n=0,s=SocialCalc.Formula,q=s.OperandValueAndType,p=s.LookupResultType,r=s.TypeLookupTable.plus;e=s.TopOfStackValueAndType(d,b);g=s.OperandAsText(d,b);if(a=="SUMIF")if(b.length==1)h=s.TopOfStackValueAndType(d,b);else if(b.length==0)h={value:e.value,type:e.type};else return s.FunctionArgsError(a,c),0;else h={value:e.value,type:e.type};if(g.type.charAt(0)=="n")g.value+="";else if(g.type.charAt(0)=="e")g.value=null;else if(g.type.charAt(0)== -"b")g.value=null;if(e.type!="coord"&&e.type!="range")return s.FunctionArgsError(a,c),0;if(a=="SUMIF"&&h.type!="coord"&&h.type!="range")return s.FunctionArgsError(a,c),0;b.push(e);e=[];for(e.push(h);b.length;)if(h=q(d,b),j=q(d,e),s.TestCriteria(h.value,h.type,g.value))if(n+=1,j.type.charAt(0)=="n")k+=j.value-0,m=p(j.type,m||j.type,r);else if(j.type.charAt(0)=="e"&&m.charAt(0)!="e")m=j.type;a=="SUMIF"?c.push({type:m||"n",value:k}):a=="COUNTIF"&&c.push({type:"n",value:n})}; -SocialCalc.Formula.FunctionList.COUNTIF=[SocialCalc.Formula.CountifSumifFunctions,2,"rangec","","stat"];SocialCalc.Formula.FunctionList.SUMIF=[SocialCalc.Formula.CountifSumifFunctions,-2,"sumif","","stat"];SocialCalc.Formula.IfFunction=function(a,c,b,d){a=SocialCalc.Formula.OperandValueAndType(d,b);d=a.type.charAt(0);if(d!="n"&&d!="b")c.push({type:"e#VALUE!",value:0});else return a.value||b.pop(),c.push(b.pop()),a.value&&b.pop(),null}; +SocialCalc.Formula.IndexFunction=function(a,c,b,d){var e,g,h,j,k=SocialCalc.Formula,m=function(a,b){c.push({type:a,value:b})};e=k.TopOfStackValueAndType(d,b);if(e.type!="range"){k.FunctionArgsError(a,c);return 0}g=k.DecodeRangeParts(d,e.value,e.type);e=g.sheetname?"!"+g.sheetname:"";h={value:0};j={value:0};if(b.length){h=k.OperandAsNumber(d,b);if(h.type.charAt(0)!="n"||h.value<0){m("e#VALUE!",0);return}if(b.length){j=k.OperandAsNumber(d,b);if(j.type.charAt(0)!="n"||j.value<0){m("e#VALUE!",0);return}if(b.length){k.FunctionArgsError(a, +c);return 0}}else if(g.nrows==1){j.value=h.value;h.value=0}}if(h.value>g.nrows||j.value>g.ncols)m("e#REF!",0);else{if(h.value==0)if(j.value==0)if(g.nrows==1&&g.ncols==1){a=SocialCalc.crToCoord(g.col1num,g.row1num)+e;b="coord"}else{a=SocialCalc.crToCoord(g.col1num,g.row1num)+e+"|"+SocialCalc.crToCoord(g.col1num+g.ncols-1,g.row1num+g.nrows-1)+"|";b="range"}else if(g.nrows==1){a=SocialCalc.crToCoord(g.col1num+j.value-1,g.row1num)+e;b="coord"}else{a=SocialCalc.crToCoord(g.col1num+j.value-1,g.row1num)+ +e+"|"+SocialCalc.crToCoord(g.col1num+j.value-1,g.row1num+g.nrows-1)+"|";b="range"}else if(j.value==0)if(g.ncols==1){a=SocialCalc.crToCoord(g.col1num,g.row1num+h.value-1)+e;b="coord"}else{a=SocialCalc.crToCoord(g.col1num,g.row1num+h.value-1)+e+"|"+SocialCalc.crToCoord(g.col1num+g.ncols-1,g.row1num+h.value-1)+"|";b="range"}else{a=SocialCalc.crToCoord(g.col1num+j.value-1,g.row1num+h.value-1)+e;b="coord"}m(b,a)}};SocialCalc.Formula.FunctionList.INDEX=[SocialCalc.Formula.IndexFunction,-1,"index","","lookup"]; +SocialCalc.Formula.CountifSumifFunctions=function(a,c,b,d){var e,g,h,j,k=0,m="",n=0,r=SocialCalc.Formula,q=r.OperandValueAndType,p=r.LookupResultType,t=r.TypeLookupTable.plus;e=r.TopOfStackValueAndType(d,b);g=r.OperandAsText(d,b);if(a=="SUMIF")if(b.length==1)h=r.TopOfStackValueAndType(d,b);else if(b.length==0)h={value:e.value,type:e.type};else{r.FunctionArgsError(a,c);return 0}else h={value:e.value,type:e.type};if(g.type.charAt(0)=="n")g.value=g.value+"";else if(g.type.charAt(0)=="e")g.value=null; +else if(g.type.charAt(0)=="b")g.value=null;if(e.type!="coord"&&e.type!="range"){r.FunctionArgsError(a,c);return 0}if(a=="SUMIF"&&h.type!="coord"&&h.type!="range"){r.FunctionArgsError(a,c);return 0}b.push(e);e=[];for(e.push(h);b.length;){h=q(d,b);j=q(d,e);if(r.TestCriteria(h.value,h.type,g.value)){n=n+1;if(j.type.charAt(0)=="n"){k=k+(j.value-0);m=p(j.type,m||j.type,t)}else if(j.type.charAt(0)=="e"&&m.charAt(0)!="e")m=j.type}}a=="SUMIF"?c.push({type:m||"n",value:k}):a=="COUNTIF"&&c.push({type:"n",value:n})}; +SocialCalc.Formula.FunctionList.COUNTIF=[SocialCalc.Formula.CountifSumifFunctions,2,"rangec","","stat"];SocialCalc.Formula.FunctionList.SUMIF=[SocialCalc.Formula.CountifSumifFunctions,-2,"sumif","","stat"];SocialCalc.Formula.IfFunction=function(a,c,b,d){a=SocialCalc.Formula.OperandValueAndType(d,b);d=a.type.charAt(0);if(d!="n"&&d!="b")c.push({type:"e#VALUE!",value:0});else{a.value||b.pop();c.push(b.pop());a.value&&b.pop();return null}}; SocialCalc.Formula.FunctionList.IF=[SocialCalc.Formula.IfFunction,3,"iffunc","","test"]; -SocialCalc.Formula.DateFunction=function(a,c,b,d){var a=SocialCalc.Formula,e=0,g=a.OperandAsNumber(d,b),h=a.OperandAsNumber(d,b),b=a.OperandAsNumber(d,b),d=a.LookupResultType(g.type,h.type,a.TypeLookupTable.twoargnumeric),d=a.LookupResultType(d,b.type,a.TypeLookupTable.twoargnumeric);d.charAt(0)=="n"&&(e=SocialCalc.FormatNumber.convert_date_gregorian_to_julian(Math.floor(g.value),Math.floor(h.value),Math.floor(b.value))-SocialCalc.FormatNumber.datevalues.julian_offset,d="nd");a.PushOperand(c,d,e)}; -SocialCalc.Formula.FunctionList.DATE=[SocialCalc.Formula.DateFunction,3,"date","","datetime"];SocialCalc.Formula.TimeFunction=function(a,c,b,d){var a=SocialCalc.Formula,e=0,g=a.OperandAsNumber(d,b),h=a.OperandAsNumber(d,b),b=a.OperandAsNumber(d,b),d=a.LookupResultType(g.type,h.type,a.TypeLookupTable.twoargnumeric),d=a.LookupResultType(d,b.type,a.TypeLookupTable.twoargnumeric);d.charAt(0)=="n"&&(e=(g.value*3600+h.value*60+b.value)/86400,d="nt");a.PushOperand(c,d,e)}; +SocialCalc.Formula.DateFunction=function(a,c,b,d){var a=SocialCalc.Formula,e=0,g=a.OperandAsNumber(d,b),h=a.OperandAsNumber(d,b),b=a.OperandAsNumber(d,b),d=a.LookupResultType(g.type,h.type,a.TypeLookupTable.twoargnumeric),d=a.LookupResultType(d,b.type,a.TypeLookupTable.twoargnumeric);if(d.charAt(0)=="n"){e=SocialCalc.FormatNumber.convert_date_gregorian_to_julian(Math.floor(g.value),Math.floor(h.value),Math.floor(b.value))-SocialCalc.FormatNumber.datevalues.julian_offset;d="nd"}a.PushOperand(c,d,e)}; +SocialCalc.Formula.FunctionList.DATE=[SocialCalc.Formula.DateFunction,3,"date","","datetime"];SocialCalc.Formula.TimeFunction=function(a,c,b,d){var a=SocialCalc.Formula,e=0,g=a.OperandAsNumber(d,b),h=a.OperandAsNumber(d,b),b=a.OperandAsNumber(d,b),d=a.LookupResultType(g.type,h.type,a.TypeLookupTable.twoargnumeric),d=a.LookupResultType(d,b.type,a.TypeLookupTable.twoargnumeric);if(d.charAt(0)=="n"){e=(g.value*3600+h.value*60+b.value)/86400;d="nt"}a.PushOperand(c,d,e)}; SocialCalc.Formula.FunctionList.TIME=[SocialCalc.Formula.TimeFunction,3,"hms","","datetime"]; -SocialCalc.Formula.DMYFunctions=function(a,c,b,d){var e,g=SocialCalc.Formula,h=0,j=g.OperandAsNumber(d,b),k=g.LookupResultType(j.type,j.type,g.TypeLookupTable.oneargnumeric);if(k.charAt(0)=="n")switch(e=SocialCalc.FormatNumber.convert_date_julian_to_gregorian(Math.floor(j.value+SocialCalc.FormatNumber.datevalues.julian_offset)),a){case "DAY":h=e.day;break;case "MONTH":h=e.month;break;case "YEAR":h=e.year;break;case "WEEKDAY":e={value:1};if(b.length){e=g.OperandAsNumber(d,b);if(e.type.charAt(0)!="n"|| -e.value<1||e.value>3){g.PushOperand(c,"e#VALUE!",0);return}if(b.length){g.FunctionArgsError(a,c);return}}a=6;e.value>1&&(a-=1);h=Math.floor(j.value+a)%7+(e.value<3?1:0)}g.PushOperand(c,k,h)};SocialCalc.Formula.FunctionList.DAY=[SocialCalc.Formula.DMYFunctions,1,"v","","datetime"];SocialCalc.Formula.FunctionList.MONTH=[SocialCalc.Formula.DMYFunctions,1,"v","","datetime"];SocialCalc.Formula.FunctionList.YEAR=[SocialCalc.Formula.DMYFunctions,1,"v","","datetime"]; +SocialCalc.Formula.DMYFunctions=function(a,c,b,d){var e,g=SocialCalc.Formula,h=0,j=g.OperandAsNumber(d,b),k=g.LookupResultType(j.type,j.type,g.TypeLookupTable.oneargnumeric);if(k.charAt(0)=="n"){e=SocialCalc.FormatNumber.convert_date_julian_to_gregorian(Math.floor(j.value+SocialCalc.FormatNumber.datevalues.julian_offset));switch(a){case "DAY":h=e.day;break;case "MONTH":h=e.month;break;case "YEAR":h=e.year;break;case "WEEKDAY":e={value:1};if(b.length){e=g.OperandAsNumber(d,b);if(e.type.charAt(0)!= +"n"||e.value<1||e.value>3){g.PushOperand(c,"e#VALUE!",0);return}if(b.length){g.FunctionArgsError(a,c);return}}a=6;e.value>1&&(a=a-1);h=Math.floor(j.value+a)%7+(e.value<3?1:0)}}g.PushOperand(c,k,h)};SocialCalc.Formula.FunctionList.DAY=[SocialCalc.Formula.DMYFunctions,1,"v","","datetime"];SocialCalc.Formula.FunctionList.MONTH=[SocialCalc.Formula.DMYFunctions,1,"v","","datetime"];SocialCalc.Formula.FunctionList.YEAR=[SocialCalc.Formula.DMYFunctions,1,"v","","datetime"]; SocialCalc.Formula.FunctionList.WEEKDAY=[SocialCalc.Formula.DMYFunctions,-1,"weekday","","datetime"]; -SocialCalc.Formula.HMSFunctions=function(a,c,b,d){var e,g=SocialCalc.Formula,h=0,j=g.OperandAsNumber(d,b),k=g.LookupResultType(j.type,j.type,g.TypeLookupTable.oneargnumeric);if(k.charAt(0)=="n"){if(j.value<0){g.PushOperand(c,"e#NUM!",0);return}e=j.value-Math.floor(j.value);e*=24;b=Math.floor(e);e-=Math.floor(e);e*=60;d=Math.floor(e);e-=Math.floor(e);e*=60;e=Math.floor(e+(j.value>=0?0.5:-0.5));a=="HOUR"?h=b:a=="MINUTE"?h=d:a=="SECOND"&&(h=e)}g.PushOperand(c,k,h)}; +SocialCalc.Formula.HMSFunctions=function(a,c,b,d){var e,g=SocialCalc.Formula,h=0,j=g.OperandAsNumber(d,b),k=g.LookupResultType(j.type,j.type,g.TypeLookupTable.oneargnumeric);if(k.charAt(0)=="n"){if(j.value<0){g.PushOperand(c,"e#NUM!",0);return}e=j.value-Math.floor(j.value);e=e*24;b=Math.floor(e);e=e-Math.floor(e);e=e*60;d=Math.floor(e);e=e-Math.floor(e);e=Math.floor(e*60+(j.value>=0?0.5:-0.5));a=="HOUR"?h=b:a=="MINUTE"?h=d:a=="SECOND"&&(h=e)}g.PushOperand(c,k,h)}; SocialCalc.Formula.FunctionList.HOUR=[SocialCalc.Formula.HMSFunctions,1,"v","","datetime"];SocialCalc.Formula.FunctionList.MINUTE=[SocialCalc.Formula.HMSFunctions,1,"v","","datetime"];SocialCalc.Formula.FunctionList.SECOND=[SocialCalc.Formula.HMSFunctions,1,"v","","datetime"]; -SocialCalc.Formula.ExactFunction=function(a,c,b,d){var a=SocialCalc.Formula,e=0,g="nl",h=a.OperandValueAndType(d,b),j=h.type.charAt(0),b=a.OperandValueAndType(d,b),d=b.type.charAt(0);if(j=="t")d=="t"?e=h.value==b.value?1:0:d=="b"?e=h.value.length?0:1:d=="n"?e=h.value==b.value+""?1:0:d=="e"?(e=b.value,g=b.type):e=0;else if(j=="n")d=="n"?e=h.value-0==b.value-0?1:0:d=="b"?e=0:d=="t"?e=h.value+""==b.value?1:0:d=="e"?(e=b.value,g=b.type):e=0;else if(j=="b")d=="t"?e=b.value.length?0:1:d=="b"?e=1:d=="n"? -e=0:d=="e"?(e=b.value,g=b.type):e=0;else if(j=="e")e=h.value,g=h.type;a.PushOperand(c,g,e)};SocialCalc.Formula.FunctionList.EXACT=[SocialCalc.Formula.ExactFunction,2,"","","text"];SocialCalc.Formula.ArgList={FIND:[1,1,0],LEFT:[1,0],LEN:[1],LOWER:[1],MID:[1,0,0],PROPER:[1],REPLACE:[1,0,0,1],REPT:[1,0],RIGHT:[1,0],SUBSTITUTE:[1,1,1,0],TRIM:[1],UPPER:[1]}; -SocialCalc.Formula.StringFunctions=function(a,c,b,d){var e,g,h,j=SocialCalc.Formula;h=0;var k="e#VALUE!",m=b.length,n=j.ArgList[a],s=[],q=[];for(e=1;e<=m;e++){if(e>n.length){j.FunctionArgsError(a,c);return}n[e-1]==0?g=j.OperandAsNumber(d,b):n[e-1]==1?g=j.OperandAsText(d,b):n[e-1]==-1&&(g=j.OperandValueAndType(d,b));s[e]=g.value;q[e]=g.type;if(g.type.charAt(0)=="e"){j.PushOperand(c,g.type,h);return}}switch(a){case "FIND":h=q[3]?s[3]-1:0;h<0?h="Start is before string":(h=s[2].indexOf(s[1],h),h>=0?(h+= -1,k="n"):h="Not found");break;case "LEFT":h=q[2]?s[2]-0:1;h<0?h="Negative length":(h=s[1].substring(0,h),k="t");break;case "LEN":h=s[1].length;k="n";break;case "LOWER":h=s[1].toLowerCase();k="t";break;case "MID":a=s[2]-0;h=s[3]-0;h<1||a<1?h="Bad arguments":(h=s[1].substring(a-1,a+h-1),k="t");break;case "PROPER":h=s[1].replace(/\b\w+\b/g,function(a){return a.substring(0,1).toUpperCase()+a.substring(1)});k="t";break;case "REPLACE":a=s[2]-0;h=s[3]-0;h<0||a<1?h="Bad arguments":(h=s[1].substring(0,a-1)+ -s[4]+s[1].substring(a-1+h),k="t");break;case "REPT":a=s[2]-0;if(a<0)h="Negative count";else{for(h="";a>0;a--)h+=s[1];k="t"}break;case "RIGHT":h=q[2]?s[2]-0:1;h<0?h="Negative length":(h=s[1].slice(-h),k="t");break;case "SUBSTITUTE":fulltext=s[1];oldtext=s[2];newtext=s[3];if(s[4]!=null){if(which=s[4]-0,which<=0){h="Non-positive instance number";break}}else which=0;oldpos=a=0;for(h="";;)if(pos=fulltext.indexOf(oldtext,oldpos),pos>=0){a++;h+=fulltext.substring(oldpos,pos);if(which==0)h+=newtext;else if(which== -a){h+=newtext+fulltext.substring(pos+oldtext.length);break}else h+=oldtext;oldpos=pos+oldtext.length}else{h+=fulltext.substring(oldpos);break}k="t";break;case "TRIM":h=s[1];h=h.replace(/^ */,"");h=h.replace(/ *$/,"");h=h.replace(/ +/g," ");k="t";break;case "UPPER":h=s[1].toUpperCase(),k="t"}j.PushOperand(c,k,h)};SocialCalc.Formula.FunctionList.FIND=[SocialCalc.Formula.StringFunctions,-2,"find","","text"];SocialCalc.Formula.FunctionList.LEFT=[SocialCalc.Formula.StringFunctions,-2,"tc","","text"]; -SocialCalc.Formula.FunctionList.LEN=[SocialCalc.Formula.StringFunctions,1,"txt","","text"];SocialCalc.Formula.FunctionList.LOWER=[SocialCalc.Formula.StringFunctions,1,"txt","","text"];SocialCalc.Formula.FunctionList.MID=[SocialCalc.Formula.StringFunctions,3,"mid","","text"];SocialCalc.Formula.FunctionList.PROPER=[SocialCalc.Formula.StringFunctions,1,"v","","text"];SocialCalc.Formula.FunctionList.REPLACE=[SocialCalc.Formula.StringFunctions,4,"replace","","text"]; -SocialCalc.Formula.FunctionList.REPT=[SocialCalc.Formula.StringFunctions,2,"tc","","text"];SocialCalc.Formula.FunctionList.RIGHT=[SocialCalc.Formula.StringFunctions,-1,"tc","","text"];SocialCalc.Formula.FunctionList.SUBSTITUTE=[SocialCalc.Formula.StringFunctions,-3,"subs","","text"];SocialCalc.Formula.FunctionList.TRIM=[SocialCalc.Formula.StringFunctions,1,"v","","text"];SocialCalc.Formula.FunctionList.UPPER=[SocialCalc.Formula.StringFunctions,1,"v","","text"]; +SocialCalc.Formula.ExactFunction=function(a,c,b,d){var a=SocialCalc.Formula,e=0,g="nl",h=a.OperandValueAndType(d,b),j=h.type.charAt(0),b=a.OperandValueAndType(d,b),d=b.type.charAt(0);if(j=="t")if(d=="t")e=h.value==b.value?1:0;else if(d=="b")e=h.value.length?0:1;else if(d=="n")e=h.value==b.value+""?1:0;else if(d=="e"){e=b.value;g=b.type}else e=0;else if(j=="n")if(d=="n")e=h.value-0==b.value-0?1:0;else if(d=="b")e=0;else if(d=="t")e=h.value+""==b.value?1:0;else if(d=="e"){e=b.value;g=b.type}else e= +0;else if(j=="b")if(d=="t")e=b.value.length?0:1;else if(d=="b")e=1;else if(d=="n")e=0;else if(d=="e"){e=b.value;g=b.type}else e=0;else if(j=="e"){e=h.value;g=h.type}a.PushOperand(c,g,e)};SocialCalc.Formula.FunctionList.EXACT=[SocialCalc.Formula.ExactFunction,2,"","","text"];SocialCalc.Formula.ArgList={FIND:[1,1,0],LEFT:[1,0],LEN:[1],LOWER:[1],MID:[1,0,0],PROPER:[1],REPLACE:[1,0,0,1],REPT:[1,0],RIGHT:[1,0],SUBSTITUTE:[1,1,1,0],TRIM:[1],UPPER:[1]}; +SocialCalc.Formula.StringFunctions=function(a,c,b,d){var e,g,h,j=SocialCalc.Formula;h=0;var k="e#VALUE!",m=b.length,n=j.ArgList[a],r=[],q=[];for(e=1;e<=m;e++){if(e>n.length){j.FunctionArgsError(a,c);return}n[e-1]==0?g=j.OperandAsNumber(d,b):n[e-1]==1?g=j.OperandAsText(d,b):n[e-1]==-1&&(g=j.OperandValueAndType(d,b));r[e]=g.value;q[e]=g.type;if(g.type.charAt(0)=="e"){j.PushOperand(c,g.type,h);return}}switch(a){case "FIND":h=q[3]?r[3]-1:0;if(h<0)h="Start is before string";else{h=r[2].indexOf(r[1],h); +if(h>=0){h=h+1;k="n"}else h="Not found"}break;case "LEFT":h=q[2]?r[2]-0:1;if(h<0)h="Negative length";else{h=r[1].substring(0,h);k="t"}break;case "LEN":h=r[1].length;k="n";break;case "LOWER":h=r[1].toLowerCase();k="t";break;case "MID":a=r[2]-0;h=r[3]-0;if(h<1||a<1)h="Bad arguments";else{h=r[1].substring(a-1,a+h-1);k="t"}break;case "PROPER":h=r[1].replace(/\b\w+\b/g,function(a){return a.substring(0,1).toUpperCase()+a.substring(1)});k="t";break;case "REPLACE":a=r[2]-0;h=r[3]-0;if(h<0||a<1)h="Bad arguments"; +else{h=r[1].substring(0,a-1)+r[4]+r[1].substring(a-1+h);k="t"}break;case "REPT":a=r[2]-0;if(a<0)h="Negative count";else{for(h="";a>0;a--)h=h+r[1];k="t"}break;case "RIGHT":h=q[2]?r[2]-0:1;if(h<0)h="Negative length";else{h=r[1].slice(-h);k="t"}break;case "SUBSTITUTE":fulltext=r[1];oldtext=r[2];newtext=r[3];if(r[4]!=null){which=r[4]-0;if(which<=0){h="Non-positive instance number";break}}else which=0;oldpos=a=0;for(h="";;){pos=fulltext.indexOf(oldtext,oldpos);if(pos>=0){a++;h=h+fulltext.substring(oldpos, +pos);if(which==0)h=h+newtext;else if(which==a){h=h+(newtext+fulltext.substring(pos+oldtext.length));break}else h=h+oldtext;oldpos=pos+oldtext.length}else{h=h+fulltext.substring(oldpos);break}}k="t";break;case "TRIM":h=r[1];h=h.replace(/^ */,"");h=h.replace(/ *$/,"");h=h.replace(/ +/g," ");k="t";break;case "UPPER":h=r[1].toUpperCase();k="t"}j.PushOperand(c,k,h)};SocialCalc.Formula.FunctionList.FIND=[SocialCalc.Formula.StringFunctions,-2,"find","","text"]; +SocialCalc.Formula.FunctionList.LEFT=[SocialCalc.Formula.StringFunctions,-2,"tc","","text"];SocialCalc.Formula.FunctionList.LEN=[SocialCalc.Formula.StringFunctions,1,"txt","","text"];SocialCalc.Formula.FunctionList.LOWER=[SocialCalc.Formula.StringFunctions,1,"txt","","text"];SocialCalc.Formula.FunctionList.MID=[SocialCalc.Formula.StringFunctions,3,"mid","","text"];SocialCalc.Formula.FunctionList.PROPER=[SocialCalc.Formula.StringFunctions,1,"v","","text"]; +SocialCalc.Formula.FunctionList.REPLACE=[SocialCalc.Formula.StringFunctions,4,"replace","","text"];SocialCalc.Formula.FunctionList.REPT=[SocialCalc.Formula.StringFunctions,2,"tc","","text"];SocialCalc.Formula.FunctionList.RIGHT=[SocialCalc.Formula.StringFunctions,-1,"tc","","text"];SocialCalc.Formula.FunctionList.SUBSTITUTE=[SocialCalc.Formula.StringFunctions,-3,"subs","","text"];SocialCalc.Formula.FunctionList.TRIM=[SocialCalc.Formula.StringFunctions,1,"v","","text"]; +SocialCalc.Formula.FunctionList.UPPER=[SocialCalc.Formula.StringFunctions,1,"v","","text"]; SocialCalc.Formula.IsFunctions=function(a,c,b,d){var e=SocialCalc.Formula,g=0,b=e.OperandValueAndType(d,b),d=b.type.charAt(0);switch(a){case "ISBLANK":g=b.type=="b"?1:0;break;case "ISERR":g=d=="e"?b.type=="e#N/A"?0:1:0;break;case "ISERROR":g=d=="e"?1:0;break;case "ISLOGICAL":g=b.type=="nl"?1:0;break;case "ISNA":g=b.type=="e#N/A"?1:0;break;case "ISNONTEXT":g=d=="t"?0:1;break;case "ISNUMBER":g=d=="n"?1:0;break;case "ISTEXT":g=d=="t"?1:0}e.PushOperand(c,"nl",g)}; SocialCalc.Formula.FunctionList.ISBLANK=[SocialCalc.Formula.IsFunctions,1,"v","","test"];SocialCalc.Formula.FunctionList.ISERR=[SocialCalc.Formula.IsFunctions,1,"v","","test"];SocialCalc.Formula.FunctionList.ISERROR=[SocialCalc.Formula.IsFunctions,1,"v","","test"];SocialCalc.Formula.FunctionList.ISLOGICAL=[SocialCalc.Formula.IsFunctions,1,"v","","test"];SocialCalc.Formula.FunctionList.ISNA=[SocialCalc.Formula.IsFunctions,1,"v","","test"]; SocialCalc.Formula.FunctionList.ISNONTEXT=[SocialCalc.Formula.IsFunctions,1,"v","","test"];SocialCalc.Formula.FunctionList.ISNUMBER=[SocialCalc.Formula.IsFunctions,1,"v","","test"];SocialCalc.Formula.FunctionList.ISTEXT=[SocialCalc.Formula.IsFunctions,1,"v","","test"]; -SocialCalc.Formula.NTVFunctions=function(a,c,b,d){var e=SocialCalc.Formula,g=0,h="e#VALUE!",b=e.OperandValueAndType(d,b),d=b.type.charAt(0);switch(a){case "N":g=d=="n"?b.value-0:0;h="n";break;case "T":g=d=="t"?b.value+"":"";h="t";break;case "VALUE":d=="n"||d=="b"?(g=b.value||0,h="n"):d=="t"&&(b=SocialCalc.DetermineValueType(b.value),b.type.charAt(0)!="n"?(g=0,h="e#VALUE!"):(g=b.value-0,h="n"))}if(d=="e")h=b.type;e.PushOperand(c,h,g)}; +SocialCalc.Formula.NTVFunctions=function(a,c,b,d){var e=SocialCalc.Formula,g=0,h="e#VALUE!",b=e.OperandValueAndType(d,b),d=b.type.charAt(0);switch(a){case "N":g=d=="n"?b.value-0:0;h="n";break;case "T":g=d=="t"?b.value+"":"";h="t";break;case "VALUE":if(d=="n"||d=="b"){g=b.value||0;h="n"}else if(d=="t"){b=SocialCalc.DetermineValueType(b.value);if(b.type.charAt(0)!="n"){g=0;h="e#VALUE!"}else{g=b.value-0;h="n"}}}if(d=="e")h=b.type;e.PushOperand(c,h,g)}; SocialCalc.Formula.FunctionList.N=[SocialCalc.Formula.NTVFunctions,1,"v","","math"];SocialCalc.Formula.FunctionList.T=[SocialCalc.Formula.NTVFunctions,1,"v","","text"];SocialCalc.Formula.FunctionList.VALUE=[SocialCalc.Formula.NTVFunctions,1,"v","","text"]; -SocialCalc.Formula.Math1Functions=function(a,c,b,d){var e={},g=SocialCalc.Formula,d=g.OperandAsNumber(d,b),b=d.value;e.type=g.LookupResultType(d.type,d.type,g.TypeLookupTable.oneargnumeric);if(e.type=="n")switch(a){case "ABS":b=Math.abs(b);break;case "ACOS":b>=-1&&b<=1?b=Math.acos(b):e.type="e#NUM!";break;case "ASIN":b>=-1&&b<=1?b=Math.asin(b):e.type="e#NUM!";break;case "ATAN":b=Math.atan(b);break;case "COS":b=Math.cos(b);break;case "DEGREES":b=b*180/Math.PI;break;case "EVEN":b=b<0?-b:b;b!=Math.floor(b)? -b=Math.floor(b+1)+Math.floor(b+1)%2:b+=b%2;d.value<0&&(b=-b);break;case "EXP":b=Math.exp(b);break;case "FACT":a=1;for(b=Math.floor(b);b>0;b--)a*=b;b=a;break;case "INT":b=Math.floor(b);break;case "LN":if(b<=0)e.type="e#NUM!",e.error=SocialCalc.Constants.s_sheetfunclnarg;b=Math.log(b);break;case "LOG10":if(b<=0)e.type="e#NUM!",e.error=SocialCalc.Constants.s_sheetfunclog10arg;b=Math.log(b)/Math.log(10);break;case "ODD":b=b<0?-b:b;b!=Math.floor(b)?b=Math.floor(b+1)+(1-Math.floor(b+1)%2):b+=1-b%2;d.value< +SocialCalc.Formula.Math1Functions=function(a,c,b,d){var e={},g=SocialCalc.Formula,d=g.OperandAsNumber(d,b),b=d.value;e.type=g.LookupResultType(d.type,d.type,g.TypeLookupTable.oneargnumeric);if(e.type=="n")switch(a){case "ABS":b=Math.abs(b);break;case "ACOS":b>=-1&&b<=1?b=Math.acos(b):e.type="e#NUM!";break;case "ASIN":b>=-1&&b<=1?b=Math.asin(b):e.type="e#NUM!";break;case "ATAN":b=Math.atan(b);break;case "COS":b=Math.cos(b);break;case "DEGREES":b=b*180/Math.PI;break;case "EVEN":b=b<0?-b:b;b=b!=Math.floor(b)? +Math.floor(b+1)+Math.floor(b+1)%2:b+b%2;d.value<0&&(b=-b);break;case "EXP":b=Math.exp(b);break;case "FACT":a=1;for(b=Math.floor(b);b>0;b--)a=a*b;b=a;break;case "INT":b=Math.floor(b);break;case "LN":if(b<=0){e.type="e#NUM!";e.error=SocialCalc.Constants.s_sheetfunclnarg}b=Math.log(b);break;case "LOG10":if(b<=0){e.type="e#NUM!";e.error=SocialCalc.Constants.s_sheetfunclog10arg}b=Math.log(b)/Math.log(10);break;case "ODD":b=b<0?-b:b;b=b!=Math.floor(b)?Math.floor(b+1)+(1-Math.floor(b+1)%2):b+(1-b%2);d.value< 0&&(b=-b);break;case "RADIANS":b=b*Math.PI/180;break;case "SIN":b=Math.sin(b);break;case "SQRT":b>=0?b=Math.sqrt(b):e.type="e#NUM!";break;case "TAN":Math.cos(b)!=0?b=Math.tan(b):e.type="e#NUM!"}e.value=b;c.push(e);return null};SocialCalc.Formula.FunctionList.ABS=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.ACOS=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.ASIN=[SocialCalc.Formula.Math1Functions,1,"v","","math"]; SocialCalc.Formula.FunctionList.ATAN=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.COS=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.DEGREES=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.EVEN=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.EXP=[SocialCalc.Formula.Math1Functions,1,"v","","math"]; SocialCalc.Formula.FunctionList.FACT=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.INT=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.LN=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.LOG10=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.ODD=[SocialCalc.Formula.Math1Functions,1,"v","","math"]; SocialCalc.Formula.FunctionList.RADIANS=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.SIN=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.SQRT=[SocialCalc.Formula.Math1Functions,1,"v","","math"];SocialCalc.Formula.FunctionList.TAN=[SocialCalc.Formula.Math1Functions,1,"v","","math"]; -SocialCalc.Formula.Math2Functions=function(a,c,b,d){var e,g,h={};g=SocialCalc.Formula;e=g.OperandAsNumber(d,b);b=g.OperandAsNumber(d,b);h.type=g.LookupResultType(e.type,b.type,g.TypeLookupTable.twoargnumeric);if(h.type=="n")switch(a){case "ATAN2":e.value==0&&b.value==0?h.type="e#DIV/0!":h.value=Math.atan2(b.value,e.value);break;case "POWER":h.value=Math.pow(e.value,b.value);if(isNaN(h.value))h.value=0,h.type="e#NUM!";break;case "MOD":b.value==0?h.type="e#DIV/0!":(a=e.value/b.value,a=Math.floor(a), -h.value=e.value-a*b.value);break;case "TRUNC":a=1;if(b.value>=0){b.value=Math.floor(b.value);for(g=0;g=0){b.value=Math.floor(b.value);for(g=0;g -0){a=1;b.value=Math.floor(b.value);for(g=0;g0){a=1;b.value=Math.floor(b.value);for(g=0;g0&&(e=g.OperandAsNumber(d,b));if(b.length!=0)return g.FunctionArgsError(a,c),0;if(!g.CheckForErrorValue(c, -e)){b=a=0;for(d=1;d<=m.value-0&&d<=k.value;d++)a=(h.value-b)*(e.value/k.value),h.value-b-a0&&(e=g.OperandAsNumber(d,b));if(b.length!=0){g.FunctionArgsError(a,c);return 0}if(!g.CheckForErrorValue(c, +e)){b=a=0;for(d=1;d<=m.value-0&&d<=k.value;d++){a=(h.value-b)*(e.value/k.value);h.value-b-a=0?delta:-delta)>epsilon&&k!=s;)if(delta=h+m*Math.pow(1+k,a)+n*(1+k*j)*(Math.pow(1+k,a)-1)/k,q!=null?(q=(delta-q)/(k-s)||0.0010,s=k,k-=delta/q):(s=k,k*=1.1),q=delta,b++,b>=100){p.PushOperand(c,"e#NUM!",0);return}g=k;e="n%"}p.PushOperand(c,e,g)}; +SocialCalc.Formula.InterestFunctions=function(a,c,b,d){var e,g,h,j,k,m,n,r,q,p=SocialCalc.Formula,t=p.OperandAsNumber(d,b);n=p.OperandAsNumber(d,b);m=p.OperandAsNumber(d,b);e=p.LookupResultType(t.type,n.type,p.TypeLookupTable.twoargnumeric);e=p.LookupResultType(e,m.type,p.TypeLookupTable.twoargnumeric);if(b.length){h=p.OperandAsNumber(d,b);e=p.LookupResultType(e,h.type,p.TypeLookupTable.twoargnumeric);if(b.length){j=p.OperandAsNumber(d,b);e=p.LookupResultType(e,j.type,p.TypeLookupTable.twoargnumeric); +if(b.length){if(a!="RATE"){p.FunctionArgsError(a,c);return 0}k=p.OperandAsNumber(d,b);e=p.LookupResultType(e,k.type,p.TypeLookupTable.twoargnumeric)}}}if(e=="n")switch(a){case "FV":k=t.value;a=n.value;n=m.value;m=h!=null?h.value:0;j=j!=null?j.value?1:0:0;g=h=k==0?-m-n*a:-(m*Math.pow(1+k,a)+n*(1+k*j)*(Math.pow(1+k,a)-1)/k);e="n$";break;case "NPER":k=t.value;n=n.value;m=m.value;h=h!=null?h.value:0;j=j!=null?j.value?1:0:0;if(k==0){if(n==0){p.PushOperand(c,"e#NUM!",0);return}a=(m+h)/-n}else{r=n*(1+k* +j)/k;q=m+r;if(q==0||k<=-1){p.PushOperand(c,"e#NUM!",0);return}r=(r-h)/q;if(r<=0){p.PushOperand(c,"e#NUM!",0);return}r=Math.log(r);q=Math.log(1+k);a=r/q}g=a;e="n";break;case "PMT":k=t.value;a=n.value;m=m.value;h=h!=null?h.value:0;j=j!=null?j.value?1:0:0;if(a==0){p.PushOperand(c,"e#NUM!",0);return}g=n=k==0?(h-m)/a:(0-h-m*Math.pow(1+k,a))/((1+k*j)*(Math.pow(1+k,a)-1)/k);e="n$";break;case "PV":k=t.value;a=n.value;n=m.value;h=h!=null?h.value:0;j=j!=null?j.value?1:0:0;if(k==-1){p.PushOperand(c,"e#DIV/0!", +0);return}g=m=k==0?-h-n*a:(-h-n*(1+k*j)*(Math.pow(1+k,a)-1)/k)/Math.pow(1+k,a);e="n$";break;case "RATE":a=t.value;n=n.value;m=m.value;h=h!=null?h.value:0;j=j!=null?j.value?1:0:0;k=k!=null?k.value:0.1;b=0;delta=1;epsilon=1.0E-7;for(k=k||1.0E-8;(delta>=0?delta:-delta)>epsilon&&k!=r;){delta=h+m*Math.pow(1+k,a)+n*(1+k*j)*(Math.pow(1+k,a)-1)/k;if(q!=null){q=(delta-q)/(k-r)||0.0010;r=k;k=k-delta/q}else{r=k;k=1.1*k}q=delta;b++;if(b>=100){p.PushOperand(c,"e#NUM!",0);return}}g=k;e="n%"}p.PushOperand(c,e,g)}; SocialCalc.Formula.FunctionList.FV=[SocialCalc.Formula.InterestFunctions,-3,"fv","","financial"];SocialCalc.Formula.FunctionList.NPER=[SocialCalc.Formula.InterestFunctions,-3,"nper","","financial"];SocialCalc.Formula.FunctionList.PMT=[SocialCalc.Formula.InterestFunctions,-3,"pmt","","financial"];SocialCalc.Formula.FunctionList.PV=[SocialCalc.Formula.InterestFunctions,-3,"pv","","financial"];SocialCalc.Formula.FunctionList.RATE=[SocialCalc.Formula.InterestFunctions,-3,"rate","","financial"]; -SocialCalc.Formula.NPVFunction=function(a,c,b,d){var e,g,h,j,k=SocialCalc.Formula;e=k.OperandAsNumber(d,b);if(!k.CheckForErrorValue(c,e)){g=0;a="n";for(h=1;b.length;)if(j=k.OperandValueAndType(d,b),j.type.charAt(0)=="n"){h*=1+e.value;if(h==0){k.PushOperand(c,"e#DIV/0!",0);return}g+=j.value/h;a=k.LookupResultType(j.type,a||j.type,k.TypeLookupTable.plus)}else if(j.type.charAt(0)=="e"&&a.charAt(0)!="e"){a=j.type;break}a.charAt(0)=="n"&&(a="n$");k.PushOperand(c,a,g)}}; +SocialCalc.Formula.NPVFunction=function(a,c,b,d){var e,g,h,j,k=SocialCalc.Formula;e=k.OperandAsNumber(d,b);if(!k.CheckForErrorValue(c,e)){g=0;a="n";for(h=1;b.length;){j=k.OperandValueAndType(d,b);if(j.type.charAt(0)=="n"){h=h*(1+e.value);if(h==0){k.PushOperand(c,"e#DIV/0!",0);return}g=g+j.value/h;a=k.LookupResultType(j.type,a||j.type,k.TypeLookupTable.plus)}else if(j.type.charAt(0)=="e"&&a.charAt(0)!="e"){a=j.type;break}}a.charAt(0)=="n"&&(a="n$");k.PushOperand(c,a,g)}}; SocialCalc.Formula.FunctionList.NPV=[SocialCalc.Formula.NPVFunction,-2,"npv","","financial"]; -SocialCalc.Formula.IRRFunction=function(a,c,b,d){var e,g,h,j;j=[];var k=[],m=SocialCalc.Formula;for(j.push(b.pop());j.length;)if(e=m.OperandValueAndType(d,j),e.type.charAt(0)=="n")k.push(e.value);else if(e.type.charAt(0)=="e"){m.PushOperand(c,"e#VALUE!",0);return}if(k.length){e={value:0};if(b.length){e=m.OperandAsNumber(d,b);if(e.type.charAt(0)!="n"&&e.type.charAt(0)!="b"){m.PushOperand(c,"e#VALUE!",0);return}if(b.length){m.FunctionArgsError(a,c);return}}e.value=e.value||0.1;a=0;b=e.value;for(d=1;(d>= -0?d:-d)>1.0E-7&&b!=h;){d=0;e=1;for(j=0;j=20){m.PushOperand(c,"e#NUM!",0);return}}m.PushOperand(c,"n%",b)}else m.PushOperand(c,"e#NUM!",0)};SocialCalc.Formula.FunctionList.IRR=[SocialCalc.Formula.IRRFunction,-1,"irr","","financial"];SocialCalc.Formula.SheetCache={sheets:{},waitingForLoading:null,constants:{asloaded:0,recalcing:1,recalcdone:2},loadsheet:null}; +SocialCalc.Formula.IRRFunction=function(a,c,b,d){var e,g,h,j;j=[];var k=[],m=SocialCalc.Formula;for(j.push(b.pop());j.length;){e=m.OperandValueAndType(d,j);if(e.type.charAt(0)=="n")k.push(e.value);else if(e.type.charAt(0)=="e"){m.PushOperand(c,"e#VALUE!",0);return}}if(k.length){e={value:0};if(b.length){e=m.OperandAsNumber(d,b);if(e.type.charAt(0)!="n"&&e.type.charAt(0)!="b"){m.PushOperand(c,"e#VALUE!",0);return}if(b.length){m.FunctionArgsError(a,c);return}}e.value=e.value||0.1;a=0;b=e.value;for(d= +1;(d>=0?d:-d)>1.0E-7&&b!=h;){d=0;e=1;for(j=0;j=20){m.PushOperand(c,"e#NUM!",0);return}}m.PushOperand(c,"n%",b)}else m.PushOperand(c,"e#NUM!",0)};SocialCalc.Formula.FunctionList.IRR=[SocialCalc.Formula.IRRFunction,-1,"irr","","financial"];SocialCalc.Formula.SheetCache={sheets:{},waitingForLoading:null,constants:{asloaded:0,recalcing:1,recalcdone:2},loadsheet:null}; SocialCalc.Formula.FindInSheetCache=function(a){var c=SocialCalc.Formula.SheetCache,a=SocialCalc.Formula.NormalizeSheetName(a);if(c.sheets[a])return c.sheets[a].sheet;if(c.waitingForLoading)return null;c.waitingForLoading=a;return null}; -SocialCalc.Formula.AddSheetToCache=function(a,c){var b=null,d=SocialCalc.Formula.SheetCache,e=d.constants,g=SocialCalc.Formula.NormalizeSheetName(a);c&&(b=new SocialCalc.Sheet,b.ParseSheetSave(c));d.sheets[g]={sheet:b,recalcstate:e.asloaded,name:g};SocialCalc.Formula.FreshnessInfo.sheets[g]=!0;return b};SocialCalc.Formula.NormalizeSheetName=function(a){return SocialCalc.Callbacks.NormalizeSheetName?SocialCalc.Callbacks.NormalizeSheetName(a):a.toLowerCase()};SocialCalc.Formula.RemoteFunctionInfo={waitingForServer:null}; -SocialCalc.Formula.FreshnessInfo={sheets:{},"volatile":{},recalc_completed:!1};SocialCalc.Formula.FreshnessInfoReset=function(){var a=SocialCalc.Formula.FreshnessInfo;a.sheets={};a["volatile"]={};a.recalc_completed=!1};SocialCalc.Formula.PlainCoord=function(a){return a.indexOf("$")==-1?a:a.replace(/\$/g,"")}; -SocialCalc.Formula.OrderRangeParts=function(a,c){var b,d,e={};b=SocialCalc.coordToCr(a);d=SocialCalc.coordToCr(c);b.col>d.col?(e.c1=d.col,e.c2=b.col):(e.c1=b.col,e.c2=d.col);b.row>d.row?(e.r1=d.row,e.r2=b.row):(e.r1=b.row,e.r2=d.row);return e}; -SocialCalc.Formula.TestCriteria=function(a,c,b){var d,e,g;if(b==null)return!1;b+="";d=b.charAt(0);d=="="||d=="<"||d==">"?b=b.substring(1):(d=b.substring(0,2),d=="<="||d=="<>"||d==">="?b=b.substring(2):d="none");b=SocialCalc.DetermineValueType(b);if(!b.type){if(d=="none")return!1;if(c.charAt(0)=="b"){if(d=="=")return!0}else if(d=="<>")return!0;return!1}e=!1;if(b.type.charAt(0)=="n"&&c.charAt(0)=="t"&&(g=SocialCalc.DetermineValueType(a),g.type.charAt(0)=="n"))a=g.value,c=g.type;if(c.charAt(0)=="n"&& -b.type.charAt(0)=="n")switch(a-=0,b.value-=0,d){case "<":e=a=":e=a>=b.value;break;case ">":e=a>b.value;break;case "<>":e=a!=b.value}else if(c.charAt(0)=="e")e=!1;else if(b.type.charAt(0)=="e")e=!1;else{c.charAt(0)=="n"&&(a=SocialCalc.format_number_for_display(a,"n",""));if(b.type.charAt(0)=="n")return!1;a=a?a.toLowerCase():"";b.value=b.value?b.value.toLowerCase():"";switch(d){case "<":e=a=":e=a>=b.value;break;case ">":e=a>b.value;break;case "<>":e=a!=b.value}}return e};SocialCalc||(SocialCalc={});SocialCalc.Popup={};SocialCalc.Popup.Types={};SocialCalc.Popup.Controls={};SocialCalc.Popup.Current={};SocialCalc.Popup.imagePrefix="images/sc-";SocialCalc.Popup.LocalizeString=function(a){return a};SocialCalc.Popup.Create=function(a,c,b){var d=SocialCalc.Popup.Types[a];d&&d.Create&&d.Create(a,c,b)}; +SocialCalc.Formula.AddSheetToCache=function(a,c){var b=null,d=SocialCalc.Formula.SheetCache,e=d.constants,g=SocialCalc.Formula.NormalizeSheetName(a);if(c){b=new SocialCalc.Sheet;b.ParseSheetSave(c)}d.sheets[g]={sheet:b,recalcstate:e.asloaded,name:g};SocialCalc.Formula.FreshnessInfo.sheets[g]=true;return b};SocialCalc.Formula.NormalizeSheetName=function(a){return SocialCalc.Callbacks.NormalizeSheetName?SocialCalc.Callbacks.NormalizeSheetName(a):a.toLowerCase()}; +SocialCalc.Formula.RemoteFunctionInfo={waitingForServer:null};SocialCalc.Formula.FreshnessInfo={sheets:{},"volatile":{},recalc_completed:!1};SocialCalc.Formula.FreshnessInfoReset=function(){var a=SocialCalc.Formula.FreshnessInfo;a.sheets={};a["volatile"]={};a.recalc_completed=false};SocialCalc.Formula.PlainCoord=function(a){return a.indexOf("$")==-1?a:a.replace(/\$/g,"")}; +SocialCalc.Formula.OrderRangeParts=function(a,c){var b,d,e={};b=SocialCalc.coordToCr(a);d=SocialCalc.coordToCr(c);if(b.col>d.col){e.c1=d.col;e.c2=b.col}else{e.c1=b.col;e.c2=d.col}if(b.row>d.row){e.r1=d.row;e.r2=b.row}else{e.r1=b.row;e.r2=d.row}return e}; +SocialCalc.Formula.TestCriteria=function(a,c,b){var d,e,g;if(b==null)return false;b=b+"";d=b.charAt(0);if(d=="="||d=="<"||d==">")b=b.substring(1);else{d=b.substring(0,2);d=="<="||d=="<>"||d==">="?b=b.substring(2):d="none"}b=SocialCalc.DetermineValueType(b);if(!b.type){if(d=="none")return false;if(c.charAt(0)=="b"){if(d=="=")return true}else if(d=="<>")return true;return false}e=false;if(b.type.charAt(0)=="n"&&c.charAt(0)=="t"){g=SocialCalc.DetermineValueType(a);if(g.type.charAt(0)=="n"){a=g.value; +c=g.type}}if(c.charAt(0)=="n"&&b.type.charAt(0)=="n"){a=a-0;b.value=b.value-0;switch(d){case "<":e=a=":e=a>=b.value;break;case ">":e=a>b.value;break;case "<>":e=a!=b.value}}else if(c.charAt(0)=="e")e=false;else if(b.type.charAt(0)=="e")e=false;else{c.charAt(0)=="n"&&(a=SocialCalc.format_number_for_display(a,"n",""));if(b.type.charAt(0)=="n")return false;a=a?a.toLowerCase():"";b.value=b.value?b.value.toLowerCase(): +"";switch(d){case "<":e=a=":e=a>=b.value;break;case ">":e=a>b.value;break;case "<>":e=a!=b.value}}return e};SocialCalc||(SocialCalc={});SocialCalc.Popup={};SocialCalc.Popup.Types={};SocialCalc.Popup.Controls={};SocialCalc.Popup.Current={};SocialCalc.Popup.imagePrefix="images/sc-";SocialCalc.Popup.LocalizeString=function(a){return a};SocialCalc.Popup.Create=function(a,c,b){var d=SocialCalc.Popup.Types[a];d&&d.Create&&d.Create(a,c,b)}; SocialCalc.Popup.SetValue=function(a,c){var b=SocialCalc.Popup,d=b.Types,e=b.Controls;e[a]?(b=e[a].type,d=d[b],e=e[a].data,d&&d.Create&&(d.SetValue(b,a,c),e.attribs&&e.attribs.changedcallback&&e.attribs.changedcallback(e.attribs,a,c))):alert("Unknown control "+a)}; -SocialCalc.Popup.SetDisabled=function(a,c){var b=SocialCalc.Popup,d=b.Types,e=b.Controls;if(e[a]){if(e=e[a].type,(d=d[e])&&d.Create){if(b.Current.id&&a==b.Current.id)d.Hide(e,b.Current.id),b.Current.id=null;d.SetDisabled(e,a,c)}}else alert("Unknown control "+a)};SocialCalc.Popup.GetValue=function(a){var c=SocialCalc.Popup,b=c.Types,c=c.Controls;if(c[a])return c=c[a].type,(b=b[c])&&b.Create?b.GetValue(c,a):null;else alert("Unknown control "+a)}; +SocialCalc.Popup.SetDisabled=function(a,c){var b=SocialCalc.Popup,d=b.Types,e=b.Controls;if(e[a]){if(e=e[a].type,(d=d[e])&&d.Create)b.Current.id&&a==b.Current.id&&(d.Hide(e,b.Current.id),b.Current.id=null),d.SetDisabled(e,a,c)}else alert("Unknown control "+a)};SocialCalc.Popup.GetValue=function(a){var c=SocialCalc.Popup,b=c.Types,c=c.Controls;if(c[a])return c=c[a].type,(b=b[c])&&b.Create?b.GetValue(c,a):null;alert("Unknown control "+a)}; SocialCalc.Popup.Initialize=function(a,c){var b=SocialCalc.Popup,d=b.Types,b=b.Controls;b[a]?(b=b[a].type,(d=d[b])&&d.Initialize&&d.Initialize(b,a,c)):alert("Unknown control "+a)};SocialCalc.Popup.Reset=function(a){var c=SocialCalc.Popup.Types;c[a].Reset&&c[a].Reset(a)}; SocialCalc.Popup.CClick=function(a){var c=SocialCalc.Popup,b=c.Types,d=c.Controls;if(d[a]){if(!d[a].data||!d[a].data.disabled){var e=d[a].type,g=b[e];if(c.Current.id&&(b[d[c.Current.id].type].Hide(e,c.Current.id),a==c.Current.id)){c.Current.id=null;return}g&&g.Show&&g.Show(e,a);c.Current.id=a}}else alert("Unknown control "+a)};SocialCalc.Popup.Close=function(){var a=SocialCalc.Popup;a.Current.id&&a.CClick(a.Current.id)}; SocialCalc.Popup.Cancel=function(){var a=SocialCalc.Popup;if(a.Current.id){var c=a.Controls[a.Current.id].type;a.Types[c].Cancel(c,a.Current.id);a.Current.id=null}}; -SocialCalc.Popup.CreatePopupDiv=function(a,c){var b,d=SocialCalc.Popup.Controls[a].data,e=document.createElement("div");e.style.position="absolute";b=SocialCalc.GetElementPositionWithScroll(d.mainele);e.style.top=b.top+d.mainele.offsetHeight+"px";e.style.left=b.left+"px";e.style.zIndex=100;e.style.backgroundColor="#FFF";e.style.border="1px solid black";if(c.width)e.style.width=c.width;d.mainele.appendChild(e);if(c.title&&(e.innerHTML='
'+ -c.title+' X 
',c.moveable))d.dragregistered=e.firstChild.firstChild.firstChild.firstChild,SocialCalc.DragRegister(d.dragregistered,!0,!0,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,positionobj:e});return e}; -SocialCalc.Popup.EnsurePosition=function(a,c){function b(a){var c=SocialCalc.GetElementPositionWithScroll(a);c.height=a.offsetHeight;c.width=a.offsetWidth;c.bottom=c.top+c.height;c.right=c.left+c.width;return c}var d=SocialCalc.Popup.Controls[a].data,e=d.mainele.firstChild;if(e){var d=d.popupele,g=b(d),h=b(c),e=b(e);if(e.bottom+g.heighth.top&&e.left+g.widthh.left)d.style.top=e.bottom+"px",d.style.left=e.right-g.width+"px";else if(e.top-g.height>h.top&&e.right-g.width>h.left)d.style.top=e.top-g.height+"px",d.style.left=e.right-g.width+"px";else if(e.bottom+g.heighth.top&&g.widthh.left)d.style.top=h.top+Math.floor((h.height-g.height)/2)+"px",d.style.left=e.left-g.width+"px"}else alert("No main popup element firstChild.")};SocialCalc.Popup.DestroyPopupDiv=function(a,c){if(a)a.innerHTML="",SocialCalc.DragUnregister(c),a.parentNode&&a.parentNode.removeChild(a)}; -SocialCalc.Popup.RGBToHex=function(a){var c=SocialCalc.Popup;return a==""?"000000":(a=a.match(/(\d+)\D+(\d+)\D+(\d+)/))?c.ToHex(a[1])+c.ToHex(a[2])+c.ToHex(a[3]):"000000"};SocialCalc.Popup.HexDigits="0123456789ABCDEF";SocialCalc.Popup.ToHex=function(a){var c=SocialCalc.Popup,b=a%16;return c.HexDigits.charAt(Math.floor(a/16))+c.HexDigits.charAt(b)}; -SocialCalc.Popup.FromHex=function(a){var c=SocialCalc.Popup,b=c.HexDigits.indexOf(a.charAt(0).toUpperCase()),a=c.HexDigits.indexOf(a.charAt(1).toUpperCase());return(b>=0?b:0)*16+(a>=0?a:0)};SocialCalc.Popup.HexToRGB=function(a){var c=SocialCalc.Popup;return"rgb("+c.FromHex(a.substring(1,3))+","+c.FromHex(a.substring(3,5))+","+c.FromHex(a.substring(5,7))+")"};SocialCalc.Popup.makeRGB=function(a,c,b){return"rgb("+(a>0?a:0)+","+(c>0?c:0)+","+(b>0?b:0)+")"}; +SocialCalc.Popup.CreatePopupDiv=function(a,c){var b,d=SocialCalc.Popup.Controls[a].data,e=document.createElement("div");e.style.position="absolute";b=SocialCalc.GetElementPositionWithScroll(d.mainele);e.style.top=b.top+d.mainele.offsetHeight+"px";e.style.left=b.left+"px";e.style.zIndex=100;e.style.backgroundColor="#FFF";e.style.border="1px solid black";c.width&&(e.style.width=c.width);d.mainele.appendChild(e);c.title&&(e.innerHTML='
'+ +c.title+' X 
',c.moveable&&(d.dragregistered=e.firstChild.firstChild.firstChild.firstChild,SocialCalc.DragRegister(d.dragregistered,!0,!0,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,positionobj:e})));return e}; +SocialCalc.Popup.EnsurePosition=function(a,c){function b(a){var c=SocialCalc.GetElementPositionWithScroll(a);c.height=a.offsetHeight;c.width=a.offsetWidth;c.bottom=c.top+c.height;c.right=c.left+c.width;return c}var d=SocialCalc.Popup.Controls[a].data,e=d.mainele.firstChild;if(e){var d=d.popupele,g=b(d),h=b(c),e=b(e);e.bottom+g.heighth.top&&e.left+g.widthh.left?(d.style.top=e.bottom+"px",d.style.left=e.right-g.width+"px"):e.top-g.height>h.top&&e.right-g.width>h.left?(d.style.top=e.top-g.height+"px",d.style.left=e.right-g.width+"px"):e.bottom+g.heighth.top&&g.widthh.left&&(d.style.top=h.top+Math.floor((h.height-g.height)/2)+"px",d.style.left=e.left-g.width+"px")}else alert("No main popup element firstChild.")};SocialCalc.Popup.DestroyPopupDiv=function(a,c){a&&(a.innerHTML="",SocialCalc.DragUnregister(c),a.parentNode&&a.parentNode.removeChild(a))}; +SocialCalc.Popup.RGBToHex=function(a){var c=SocialCalc.Popup;return""==a?"000000":(a=a.match(/(\d+)\D+(\d+)\D+(\d+)/))?c.ToHex(a[1])+c.ToHex(a[2])+c.ToHex(a[3]):"000000"};SocialCalc.Popup.HexDigits="0123456789ABCDEF";SocialCalc.Popup.ToHex=function(a){var c=SocialCalc.Popup,b=a%16;return c.HexDigits.charAt(Math.floor(a/16))+c.HexDigits.charAt(b)}; +SocialCalc.Popup.FromHex=function(a){var c=SocialCalc.Popup,b=c.HexDigits.indexOf(a.charAt(0).toUpperCase()),a=c.HexDigits.indexOf(a.charAt(1).toUpperCase());return 16*(0<=b?b:0)+(0<=a?a:0)};SocialCalc.Popup.HexToRGB=function(a){var c=SocialCalc.Popup;return"rgb("+c.FromHex(a.substring(1,3))+","+c.FromHex(a.substring(3,5))+","+c.FromHex(a.substring(5,7))+")"};SocialCalc.Popup.makeRGB=function(a,c,b){return"rgb("+(0',d.options=[]):alert("Missing element "+c))}; -SocialCalc.Popup.Types.List.SetValue=function(a,c,b){a=SocialCalc.Popup.Controls[c].data;a.value=b;a.custom=!1;for(b=0;b'+e+"",d.customele=b.firstChild.firstChild.childNodes[1],d.listdiv=null):(e=SocialCalc.Popup.Types.List.MakeList(a,c),b=document.createElement("div"),b.innerHTML='
'+ -e+"
",d.customele=null,d.listdiv=b.firstChild);d.contentele=b;if(d.mainele&&d.mainele.firstChild)d.mainele.firstChild.disabled=!0;d.popupele.appendChild(b);d.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(c,d.attribs.ensureWithin)}; -SocialCalc.Popup.Types.List.MakeList=function(a,c){var b,d,e,g=SocialCalc.Popup.Controls[c].data,h='';h+='
';g.ncols=1;for(b=0;b    ';g.ncols+=1;continue}if(d.a.skip){h+='
'+d.o+"
";continue}}e=d.v==g.value&&(!d.a|| -!d.a.custom&&!d.a.cancel)?"background-color:#DDF;":"";h+='
"+d.o+"
"}h+="
";return h}; +e+"",d.customele=null,d.listdiv=b.firstChild);d.contentele=b;d.mainele&&d.mainele.firstChild&&(d.mainele.firstChild.disabled=!0);d.popupele.appendChild(b);d.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(c,d.attribs.ensureWithin)}; +SocialCalc.Popup.Types.List.MakeList=function(a,c){var b,d,e,g=SocialCalc.Popup.Controls[c].data,h;h='
';g.ncols=1;for(b=0;b    ';g.ncols+=1;continue}if(d.a.skip){h+='
'+d.o+"
";continue}}e=d.v==g.value&&(!d.a||!d.a.custom&& +!d.a.cancel)?"background-color:#DDF;":"";h+='
"+d.o+"
"}return h+"
"}; SocialCalc.Popup.Types.List.MakeCustom=function(a,c){var b=SocialCalc.Popup.LocalizeString,d="",d=SocialCalc.Popup.Controls[c].data.value,d=SocialCalc.special_chars(d);return d='




'}; SocialCalc.Popup.Types.List.ItemClicked=function(a,c){var b,d,e,g=SocialCalc.Popup.Controls[a].data;(b=g.options[c].a)&&b.custom?(b=g.contentele,d=SocialCalc.Popup.Types.List.MakeCustom("List",a),e=document.createElement("div"),e.innerHTML='
'+d+"
",g.customele=e.firstChild.firstChild.childNodes[1],g.listdiv=null,g.contentele=e,g.popupele.replaceChild(e,b),g.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(a,g.attribs.ensureWithin)): ((!b||!b.cancel)&&SocialCalc.Popup.SetValue(a,g.options[c].v),SocialCalc.Popup.Close())};SocialCalc.Popup.Types.List.CustomToList=function(a){var c,b,d,e=SocialCalc.Popup.Controls[a].data;c=e.contentele;b=SocialCalc.Popup.Types.List.MakeList("List",a);d=document.createElement("div");d.innerHTML='
'+b+"
";e.customele=null;e.listdiv=d.firstChild;e.contentele=d;e.popupele.replaceChild(d,c);e.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(a,e.attribs.ensureWithin)}; -SocialCalc.Popup.Types.List.CustomOK=function(a){SocialCalc.Popup.SetValue(a,SocialCalc.Popup.Controls[a].data.customele.value);SocialCalc.Popup.Close()};SocialCalc.Popup.Types.List.MouseMove=function(a,c){var b,d,e=SocialCalc.Popup.Controls[a].data;if(b=e.listdiv){var g=b.firstChild.firstChild.firstChild;for(b=0;b "): alert("Missing element "+c))}; -SocialCalc.Popup.Types.ColorChooser.SetValue=function(a,c,b){var a=SocialCalc.Popup,c=a.Controls[c].data,d=c.attribs;c.value=b;c.custom=!1;if(c.mainele&&c.mainele.firstChild)c.value?(c.mainele.firstChild.style.backgroundColor=c.value,b=d.backgroundImage?"url("+a.imagePrefix+d.backgroundImage+")":"",a="center center"):(c.mainele.firstChild.style.backgroundColor="#FFF",d.backgroundImageDefault?(b="url("+a.imagePrefix+d.backgroundImageDefault+")",a="center center"):(b="url("+a.imagePrefix+"defaultcolor.gif)", -a="left top")),c.mainele.firstChild.style.backgroundPosition=a,c.mainele.firstChild.style.backgroundImage=b}; -SocialCalc.Popup.Types.ColorChooser.SetDisabled=function(a,c,b){var a=SocialCalc.Popup,d=a.Controls[c].data,e=d.attribs;d.disabled=b;if(d.mainele&&d.mainele.firstChild)b?(d.mainele.firstChild.style.backgroundColor="#DDD",e.backgroundImageDisabled?(img="url("+a.imagePrefix+e.backgroundImageDisabled+")",pos="center center"):(img="url("+a.imagePrefix+"defaultcolor.gif)",pos="left top"),d.mainele.firstChild.style.backgroundPosition=pos,d.mainele.firstChild.style.backgroundImage=img):a.SetValue(c,d.value)}; -SocialCalc.Popup.Types.ColorChooser.GetValue=function(a,c){return SocialCalc.Popup.Controls[c].data.value};SocialCalc.Popup.Types.ColorChooser.Initialize=function(a,c,b){var d,a=SocialCalc.Popup,e=a.Controls[c].data;for(d in b.attribs)e.attribs[d]=b.attribs[d];b.value&&a.SetValue(c,b.value)};SocialCalc.Popup.Types.ColorChooser.Reset=function(a){var c=SocialCalc.Popup,b=c.Types,d=c.Controls;if(c.Current.id&&d[c.Current.id].type==a)b[a].Hide(a,c.Current.id),c.Current.id=null}; +SocialCalc.Popup.Types.ColorChooser.SetValue=function(a,c,b){var a=SocialCalc.Popup,c=a.Controls[c].data,d=c.attribs;c.value=b;c.custom=!1;c.mainele&&c.mainele.firstChild&&(c.value?(c.mainele.firstChild.style.backgroundColor=c.value,b=d.backgroundImage?"url("+a.imagePrefix+d.backgroundImage+")":"",a="center center"):(c.mainele.firstChild.style.backgroundColor="#FFF",d.backgroundImageDefault?(b="url("+a.imagePrefix+d.backgroundImageDefault+")",a="center center"):(b="url("+a.imagePrefix+"defaultcolor.gif)", +a="left top")),c.mainele.firstChild.style.backgroundPosition=a,c.mainele.firstChild.style.backgroundImage=b)}; +SocialCalc.Popup.Types.ColorChooser.SetDisabled=function(a,c,b){var a=SocialCalc.Popup,d=a.Controls[c].data,e=d.attribs;d.disabled=b;d.mainele&&d.mainele.firstChild&&(b?(d.mainele.firstChild.style.backgroundColor="#DDD",e.backgroundImageDisabled?(img="url("+a.imagePrefix+e.backgroundImageDisabled+")",pos="center center"):(img="url("+a.imagePrefix+"defaultcolor.gif)",pos="left top"),d.mainele.firstChild.style.backgroundPosition=pos,d.mainele.firstChild.style.backgroundImage=img):a.SetValue(c,d.value))}; +SocialCalc.Popup.Types.ColorChooser.GetValue=function(a,c){return SocialCalc.Popup.Controls[c].data.value};SocialCalc.Popup.Types.ColorChooser.Initialize=function(a,c,b){var d,a=SocialCalc.Popup,e=a.Controls[c].data;for(d in b.attribs)e.attribs[d]=b.attribs[d];b.value&&a.SetValue(c,b.value)};SocialCalc.Popup.Types.ColorChooser.Reset=function(a){var c=SocialCalc.Popup,b=c.Types,d=c.Controls;c.Current.id&&d[c.Current.id].type==a&&(b[a].Hide(a,c.Current.id),c.Current.id=null)}; SocialCalc.Popup.Types.ColorChooser.Show=function(a,c){var b,d;b=SocialCalc.Popup;var e=b.Controls[c].data;d="";e.oldvalue=e.value;e.popupele=b.CreatePopupDiv(c,e.attribs);e.custom?(d=SocialCalc.Popup.Types.ColorChooser.MakeCustom(a,c),b=document.createElement("div"),b.innerHTML='
'+d+"
",e.customele=b.firstChild.firstChild.childNodes[2]):(d=SocialCalc.Popup.Types.ColorChooser.CreateGrid(a,c),b=document.createElement("div"),b.style.padding= "3px",b.style.backgroundColor="#CCC",b.appendChild(d),e.customele=null);e.contentele=b;e.popupele.appendChild(b);e.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(c,e.attribs.ensureWithin)}; SocialCalc.Popup.Types.ColorChooser.MakeCustom=function(a,c){var b=SocialCalc.Popup,d=b.LocalizeString,e="";return e='

#


"};SocialCalc.Popup.Types.ColorChooser.ItemClicked=function(){SocialCalc.Popup.Close()};SocialCalc.Popup.Types.ColorChooser.CustomToList=function(){};SocialCalc.Popup.Types.ColorChooser.CustomOK=function(a){var c=SocialCalc.Popup;c.SetValue(a,c.Controls[a].data.customele.value);c.Close()};SocialCalc.Popup.Types.ColorChooser.Hide=function(a,c){var b=SocialCalc.Popup,d=b.Controls[c].data;b.DestroyPopupDiv(d.popupele,d.dragregistered);d.popupele=null}; SocialCalc.Popup.Types.ColorChooser.Cancel=function(a,c){var b=SocialCalc.Popup;b.SetValue(c,b.Controls[c].data.oldvalue);SocialCalc.Popup.Types.ColorChooser.Hide(a,c)}; -SocialCalc.Popup.Types.ColorChooser.CreateGrid=function(a,c){var b,d,e,g,h,j=SocialCalc.Popup,k=j.Types,m=j.LocalizeString;b=j.Controls[c].data;b.grid={};var n=b.grid,s=document.createElement("div");b=document.createElement("table");b.cellSpacing=0;b.cellPadding=0;b.style.width="100px";n.table=b;b=document.createElement("tbody");n.table.appendChild(b);n.tbody=b;for(d=0;d<16;d++){e=document.createElement("tr");for(g=0;g<5;g++)h={},n[d+","+g]=h,b=document.createElement("td"),b.style.fontSize="1px", -b.innerHTML=" ",b.style.height="10px",g<=1?(b.style.width="17px",b.style.borderRight="3px solid white"):(b.style.width="20px",b.style.backgroundRepeat="no-repeat"),e.appendChild(b),h.ele=b;n.tbody.appendChild(e)}s.appendChild(n.table);b=document.createElement("div");b.style.marginTop="3px";b.innerHTML='
d;d++){e=document.createElement("tr");for(g=0;5>g;g++)h={},n[d+","+g]=h,b=document.createElement("td"),b.style.fontSize="1px", +b.innerHTML=" ",b.style.height="10px",1>=g?(b.style.width="17px",b.style.borderRight="3px solid white"):(b.style.width="20px",b.style.backgroundRepeat="no-repeat"),e.appendChild(b),h.ele=b;n.tbody.appendChild(e)}r.appendChild(n.table);b=document.createElement("div");b.style.marginTop="3px";b.innerHTML='
 #'+m("OK")+"
";n.defaultbox=b.firstChild.firstChild.firstChild.childNodes[0];n.defaultbox.onclick=k.ColorChooser.DefaultClicked;n.custom=b.firstChild.firstChild.firstChild.childNodes[1];n.custom.onclick=k.ColorChooser.CustomClicked;n.msg=b.firstChild.firstChild.firstChild.childNodes[2]; -n.msg.onclick=k.ColorChooser.CloseOK;s.appendChild(b);n.table.onmousedown=k.ColorChooser.GridMouseDown;k.ColorChooser.DetermineColors(c);k.ColorChooser.SetColors(c);return s};SocialCalc.Popup.Types.ColorChooser.gridToG=function(a,c,b){return a[c+","+b]}; -SocialCalc.Popup.Types.ColorChooser.DetermineColors=function(a){var c=SocialCalc.Popup,b=c.Types.ColorChooser,d=c.Controls[a].data,a=d.grid,e,g=c.splitRGB(d.value),d=2;e=16-Math.floor((g.r+16)/16);a["selectedrow"+d]=e;for(e=0;e<16;e++)b.gridToG(a,e,d).rgb=c.makeRGB(17*(15-e),0,0);d=3;e=16-Math.floor((g.g+16)/16);a["selectedrow"+d]=e;for(e=0;e<16;e++)b.gridToG(a,e,d).rgb=c.makeRGB(0,17*(15-e),0);d=4;e=16-Math.floor((g.b+16)/16);a["selectedrow"+d]=e;for(e=0;e<16;e++)b.gridToG(a,e,d).rgb=c.makeRGB(0, -0,17*(15-e));d=1;for(e=0;e<16;e++)b.gridToG(a,e,d).rgb=c.makeRGB(17*(15-e),17*(15-e),17*(15-e));var d=0,c=[0,68,153,204,255],g=["400","310","420","440","442","340","040","042","032","044","024","004","204","314","402","414"],h;for(e=0;e<16;e++)h=g[e],b.gridToG(a,e,d).rgb="rgb("+c[h.charAt(0)-0]+","+c[h.charAt(1)-0]+","+c[h.charAt(2)-0]+")"}; -SocialCalc.Popup.Types.ColorChooser.SetColors=function(a){var c,b,d,e=SocialCalc.Popup,g=e.Types.ColorChooser,h=e.Controls[a].data,j=h.grid;for(c=0;c<16;c++)for(b=0;b<5;b++)d=g.gridToG(j,c,b),d.ele.style.backgroundColor=d.rgb,d.ele.title=e.RGBToHex(d.rgb),d.ele.style.backgroundImage=j["selectedrow"+b]==c?"url("+e.imagePrefix+"chooserarrow.gif)":"";e.SetValue(a,h.value);j.msg.style.backgroundColor=h.value;a=e.splitRGB(h.value||"rgb(255,255,255)");j.msg.style.color=a.r+a.g+a.b<220?"#FFF":"#000";h.value? +n.msg.onclick=k.ColorChooser.CloseOK;r.appendChild(b);n.table.onmousedown=k.ColorChooser.GridMouseDown;k.ColorChooser.DetermineColors(c);k.ColorChooser.SetColors(c);return r};SocialCalc.Popup.Types.ColorChooser.gridToG=function(a,c,b){return a[c+","+b]}; +SocialCalc.Popup.Types.ColorChooser.DetermineColors=function(a){var c=SocialCalc.Popup,b=c.Types.ColorChooser,d=c.Controls[a].data,a=d.grid,e,g=c.splitRGB(d.value),d=2;e=16-Math.floor((g.r+16)/16);a["selectedrow"+d]=e;for(e=0;16>e;e++)b.gridToG(a,e,d).rgb=c.makeRGB(17*(15-e),0,0);d=3;e=16-Math.floor((g.g+16)/16);a["selectedrow"+d]=e;for(e=0;16>e;e++)b.gridToG(a,e,d).rgb=c.makeRGB(0,17*(15-e),0);d=4;e=16-Math.floor((g.b+16)/16);a["selectedrow"+d]=e;for(e=0;16>e;e++)b.gridToG(a,e,d).rgb=c.makeRGB(0, +0,17*(15-e));d=1;for(e=0;16>e;e++)b.gridToG(a,e,d).rgb=c.makeRGB(17*(15-e),17*(15-e),17*(15-e));var d=0,c=[0,68,153,204,255],g="400,310,420,440,442,340,040,042,032,044,024,004,204,314,402,414".split(","),h;for(e=0;16>e;e++)h=g[e],b.gridToG(a,e,d).rgb="rgb("+c[h.charAt(0)-0]+","+c[h.charAt(1)-0]+","+c[h.charAt(2)-0]+")"}; +SocialCalc.Popup.Types.ColorChooser.SetColors=function(a){var c,b,d,e=SocialCalc.Popup,g=e.Types.ColorChooser,h=e.Controls[a].data,j=h.grid;for(c=0;16>c;c++)for(b=0;5>b;b++)d=g.gridToG(j,c,b),d.ele.style.backgroundColor=d.rgb,d.ele.title=e.RGBToHex(d.rgb),d.ele.style.backgroundImage=j["selectedrow"+b]==c?"url("+e.imagePrefix+"chooserarrow.gif)":"";e.SetValue(a,h.value);j.msg.style.backgroundColor=h.value;a=e.splitRGB(h.value||"rgb(255,255,255)");j.msg.style.color=220>a.r+a.g+a.b?"#FFF":"#000";h.value? (j.msg.style.backgroundImage="",j.msg.title=e.RGBToHex(h.value)):(j.msg.style.backgroundColor="#FFF",j.msg.style.backgroundImage="url("+e.imagePrefix+"defaultcolor.gif)",j.msg.title="Default")}; -SocialCalc.Popup.Types.ColorChooser.GridMouseDown=function(a){var c=a||window.event,a=SocialCalc.Popup,b=a.Types.ColorChooser,d=a.Current.id;if(d){var e=a.Controls[d].data,g=e.grid;switch(c.type){case "mousedown":g.mousedown=!0;break;case "mouseup":g.mousedown=!1;break;case "mousemove":if(!g.mousedown)return}var h=SocialCalc.GetViewportInfo(),j=c.clientX+h.horizontalScroll,h=c.clientY+h.verticalScroll,c=SocialCalc.GetElementPosition(g.table),h=Math.floor((h-c.top-2)/10),h=h<0?0:h,j=Math.floor((j- -c.left)/20),j=j<0?0:j>4?4:j,g=b.gridToG(g,h<0?0:h>15?15:h,j).ele.style.backgroundColor,c=a.splitRGB(g),h=a.splitRGB(e.value);switch(j){case 2:e.value=a.makeRGB(c.r,h.g,h.b);break;case 3:e.value=a.makeRGB(h.r,c.g,h.b);break;case 4:e.value=a.makeRGB(h.r,h.g,c.b);break;case 0:case 1:e.value=g}b.DetermineColors(d);b.SetColors(d)}};SocialCalc.Popup.Types.ColorChooser.ControlClicked=function(a){var c=SocialCalc.Popup,b=c.Types.ColorChooser,d=c.Current.id;!d||a!=d?c.CClick(a):b.CloseOK()}; -SocialCalc.Popup.Types.ColorChooser.DefaultClicked=function(){var a=SocialCalc.Popup,c=a.Current.id;if(c)a=a.Controls[c].data,a.value="",SocialCalc.Popup.SetValue(c,a.value),SocialCalc.Popup.Close()}; +SocialCalc.Popup.Types.ColorChooser.GridMouseDown=function(a){var c=a||window.event,a=SocialCalc.Popup,b=a.Types.ColorChooser,d=a.Current.id;if(d){var e=a.Controls[d].data,g=e.grid;switch(c.type){case "mousedown":g.mousedown=!0;break;case "mouseup":g.mousedown=!1;break;case "mousemove":if(!g.mousedown)return}var h=SocialCalc.GetViewportInfo(),j=c.clientX+h.horizontalScroll,h=c.clientY+h.verticalScroll,c=SocialCalc.GetElementPosition(g.table),h=Math.floor((h-c.top-2)/10),h=0>h?0:h,j=Math.floor((j- +c.left)/20),j=0>j?0:4h?0:15'+e+"";b.customele=g.firstChild.firstChild.childNodes[2];b.contentele=g;b.popupele.replaceChild(g,d);b.customele.value=a.RGBToHex(b.value);b.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(c, b.attribs.ensureWithin)}}; SocialCalc.Popup.Types.ColorChooser.CustomToGrid=function(a){var c,b;c=SocialCalc.Popup;var d=c.Controls[a].data;SocialCalc.Popup.SetValue(a,c.HexToRGB("#"+d.customele.value));var e;c=d.contentele;e=SocialCalc.Popup.Types.ColorChooser.CreateGrid("ColorChooser",a);b=document.createElement("div");b.style.padding="3px";b.style.backgroundColor="#CCC";b.appendChild(e);d.customele=null;d.contentele=b;d.popupele.replaceChild(b,c);d.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(a,d.attribs.ensureWithin)}; SocialCalc.Popup.Types.ColorChooser.CustomOK=function(a){var c=SocialCalc.Popup;SocialCalc.Popup.SetValue(a,c.HexToRGB("#"+c.Controls[a].data.customele.value));SocialCalc.Popup.Close()};SocialCalc.Popup.Types.ColorChooser.CloseOK=function(){var a=SocialCalc.Popup,c=a.Current.id;c&&(SocialCalc.Popup.SetValue(c,a.Controls[c].data.value),SocialCalc.Popup.Close())};SocialCalc||(alert("Main SocialCalc code module needed"),SocialCalc={});SocialCalc.TableEditor||alert("SocialCalc TableEditor code module needed");SocialCalc.CurrentSpreadsheetControlObject=null; SocialCalc.SpreadsheetControl=function(){var a=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="SocialCalc-";this.multipartBoundary="SocialCalcSpreadsheetControlSave";this.imagePrefix= -a.defaultImagePrefix;this.toolbarbackground=a.SCToolbarbackground;this.tabbackground=a.SCTabbackground;this.tabselectedCSS=a.SCTabselectedCSS;this.tabplainCSS=a.SCTabplainCSS;this.toolbartext=a.SCToolbartext;this.formulabarheight=a.SCFormulabarheight;this.statuslineheight=a.SCStatuslineheight;this.statuslineCSS=a.SCStatuslineCSS;this.ExportCallback=null;this.sheet=new SocialCalc.Sheet;this.context=new SocialCalc.RenderContext(this.sheet);this.context.showGrid=!0;this.context.showRCHeaders=!0;this.editor= -new SocialCalc.TableEditor(this.context);this.editor.StatusCallback.statusline={func:SocialCalc.SpreadsheetControlStatuslineCallback,params:{statuslineid:this.idPrefix+"statusline",recalcid1:this.idPrefix+"divider_recalc",recalcid2:this.idPrefix+"button_recalc"}};SocialCalc.CurrentSpreadsheetControlObject=this;this.editor.MoveECellCallback.movefrom=function(a){var b=SocialCalc.GetSpreadsheetControlObject();b.context.cursorsuffix="";if(a.range2.hasrange&&!a.cellhandles.noCursorSuffix){if(a.ecell.row== +a.defaultImagePrefix;this.toolbarbackground=a.SCToolbarbackground;this.tabbackground=a.SCTabbackground;this.tabselectedCSS=a.SCTabselectedCSS;this.tabplainCSS=a.SCTabplainCSS;this.toolbartext=a.SCToolbartext;this.formulabarheight=a.SCFormulabarheight;this.statuslineheight=a.SCStatuslineheight;this.statuslineCSS=a.SCStatuslineCSS;this.ExportCallback=null;this.sheet=new SocialCalc.Sheet;this.context=new SocialCalc.RenderContext(this.sheet);this.context.showGrid=true;this.context.showRCHeaders=true; +this.editor=new SocialCalc.TableEditor(this.context);this.editor.StatusCallback.statusline={func:SocialCalc.SpreadsheetControlStatuslineCallback,params:{statuslineid:this.idPrefix+"statusline",recalcid1:this.idPrefix+"divider_recalc",recalcid2:this.idPrefix+"button_recalc"}};SocialCalc.CurrentSpreadsheetControlObject=this;this.editor.MoveECellCallback.movefrom=function(a){var b=SocialCalc.GetSpreadsheetControlObject();b.context.cursorsuffix="";if(a.range2.hasrange&&!a.cellhandles.noCursorSuffix){if(a.ecell.row== a.range2.top&&(a.ecell.cola.range2.right+1))b.context.cursorsuffix="insertleft";if(a.ecell.col==a.range2.left&&(a.ecell.rowa.range2.bottom+1))b.context.cursorsuffix="insertup"}};this.formulabuttons={formulafunctions:{image:"formuladialog.gif",tooltip:"Functions",command:SocialCalc.SpreadsheetControl.DoFunctionList},multilineinput:{image:"multilinedialog.gif",tooltip:"Multi-line Input Box",command:SocialCalc.SpreadsheetControl.DoMultiline},link:{image:"linkdialog.gif", tooltip:"Link Input Box",command:SocialCalc.SpreadsheetControl.DoLink},sum:{image:"sumdialog.gif",tooltip:"Auto Sum",command:SocialCalc.SpreadsheetControl.DoSum}};this.tabnums.edit=this.tabs.length;this.tabs.push({name:"edit",text:"Edit",html:'
                              
', oncreate:null,onclick:null});this.tabnums.settings=this.tabs.length;this.tabs.push({name:"settings",text:"Format",html:'', view:"settings",onclick:function(a){SocialCalc.SettingsControls.idPrefix=a.idPrefix;SocialCalc.SettingControlReset();var b=a.sheet.EncodeSheetAttributes(),d=a.sheet.EncodeCellAttributes(a.editor.ecell.coord);SocialCalc.SettingsControlLoadPanel(a.views.settings.values.sheetspanel,b);SocialCalc.SettingsControlLoadPanel(a.views.settings.values.cellspanel,d);document.getElementById(a.idPrefix+"settingsecell").innerHTML=a.editor.ecell.coord;SocialCalc.SpreadsheetControlSettingsSwitch("cell");a.views.settings.element.style.height= -a.viewheight+"px";a.views.settings.element.firstChild.style.height=a.viewheight+"px";b=a.editor.range.hasrange?SocialCalc.crToCoord(a.editor.range.left,a.editor.range.top)+":"+SocialCalc.crToCoord(a.editor.range.right,a.editor.range.bottom):a.editor.ecell.coord;document.getElementById(a.idPrefix+"settings-savecell").value=SocialCalc.LocalizeString("Save to")+": "+b},onclickFocus:!0});this.views.settings={name:"settings",values:{},oncreate:function(a,b){var d=SocialCalc.Constants;b.values.sheetspanel= +a.viewheight+"px";a.views.settings.element.firstChild.style.height=a.viewheight+"px";b=a.editor.range.hasrange?SocialCalc.crToCoord(a.editor.range.left,a.editor.range.top)+":"+SocialCalc.crToCoord(a.editor.range.right,a.editor.range.bottom):a.editor.ecell.coord;document.getElementById(a.idPrefix+"settings-savecell").value=SocialCalc.LocalizeString("Save to")+": "+b},onclickFocus:true});this.views.settings={name:"settings",values:{},oncreate:function(a,b){var d=SocialCalc.Constants;b.values.sheetspanel= {colorchooser:{id:a.idPrefix+"scolorchooser"},formatnumber:{setting:"numberformat",type:"PopupList",id:a.idPrefix+"formatnumber",initialdata:d.SCFormatNumberFormats},formattext:{setting:"textformat",type:"PopupList",id:a.idPrefix+"formattext",initialdata:d.SCFormatTextFormats},fontfamily:{setting:"fontfamily",type:"PopupList",id:a.idPrefix+"fontfamily",initialdata:d.SCFormatFontfamilies},fontlook:{setting:"fontlook",type:"PopupList",id:a.idPrefix+"fontlook",initialdata:d.SCFormatFontlook},fontsize:{setting:"fontsize", type:"PopupList",id:a.idPrefix+"fontsize",initialdata:d.SCFormatFontsizes},textalignhoriz:{setting:"textalignhoriz",type:"PopupList",id:a.idPrefix+"textalignhoriz",initialdata:d.SCFormatTextAlignhoriz},numberalignhoriz:{setting:"numberalignhoriz",type:"PopupList",id:a.idPrefix+"numberalignhoriz",initialdata:d.SCFormatNumberAlignhoriz},alignvert:{setting:"alignvert",type:"PopupList",id:a.idPrefix+"alignvert",initialdata:d.SCFormatAlignVertical},textcolor:{setting:"textcolor",type:"ColorChooser",id:a.idPrefix+ "textcolor"},bgcolor:{setting:"bgcolor",type:"ColorChooser",id:a.idPrefix+"bgcolor"},padtop:{setting:"padtop",type:"PopupList",id:a.idPrefix+"padtop",initialdata:d.SCFormatPadsizes},padright:{setting:"padright",type:"PopupList",id:a.idPrefix+"padright",initialdata:d.SCFormatPadsizes},padbottom:{setting:"padbottom",type:"PopupList",id:a.idPrefix+"padbottom",initialdata:d.SCFormatPadsizes},padleft:{setting:"padleft",type:"PopupList",id:a.idPrefix+"padleft",initialdata:d.SCFormatPadsizes},colwidth:{setting:"colwidth", @@ -697,7 +696,7 @@ sectiontitle:{regex:/\%sectiontitle\./g,replacement:'style="padding:16px 10px 0p divStyle:"border:1px solid black;overflow:auto;",html:'

%loc!Format!:
%loc!Number!
%loc!Text!

%loc!Alignment!:
%loc!Horizontal!
%loc!Vertical!

%loc!Font!:
%loc!Family!
%loc!Bold & Italics!
%loc!Size!
%loc!Color!
%loc!Background!

%loc!Borders!:
%loc!Top Border!
%loc!Right Border!
%loc!Bottom Border!
%loc!Left Border!
    
    
    
    

%loc!Padding!:
%loc!Top!
%loc!Right!
%loc!Bottom!
%loc!Left!
%loc!This is a
sample!
-1234.5

'}; this.tabnums.sort=this.tabs.length;this.tabs.push({name:"sort",text:"Sort",html:' ', onclick:SocialCalc.SpreadsheetControlSortOnclick});this.editor.SettingsCallbacks.sort={save:SocialCalc.SpreadsheetControlSortSave,load:SocialCalc.SpreadsheetControlSortLoad};this.tabnums.audit=this.tabs.length;this.tabs.push({name:"audit",text:"Audit",html:'',view:"audit",onclick:function(a){var b=SocialCalc.LocalizeString,d,e,g='
'+ -b("Audit Trail This Session")+":

",h=a.sheet.changes.stack,j=a.sheet.changes.tos;for(d=0;d
'+b("UNDONE STEPS")+":
");for(e=0;e"}a.views.audit.element.innerHTML=g+"
";SocialCalc.CmdGotFocus(!0)},onclickFocus:!0});this.views.audit={name:"audit",divStyle:"border:1px solid black;overflow:auto;", +b("Audit Trail This Session")+":

",h=a.sheet.changes.stack,j=a.sheet.changes.tos;for(d=0;d
'+b("UNDONE STEPS")+":
"));for(e=0;e")}a.views.audit.element.innerHTML=g+"
";SocialCalc.CmdGotFocus(true)},onclickFocus:true});this.views.audit={name:"audit",divStyle:"border:1px solid black;overflow:auto;", html:"Audit Trail"};this.tabnums.comment=this.tabs.length;this.tabs.push({name:"comment",text:"Comment",html:'', view:"sheet",onclick:SocialCalc.SpreadsheetControlCommentOnclick,onunclick:SocialCalc.SpreadsheetControlCommentOnunclick});this.tabnums.names=this.tabs.length;this.tabs.push({name:"names",text:"Names",html:'', view:"sheet",onclick:SocialCalc.SpreadsheetControlNamesOnclick,onunclick:SocialCalc.SpreadsheetControlNamesOnunclick});this.tabnums.clipboard=this.tabs.length;this.tabs.push({name:"clipboard",text:"Clipboard",html:'',view:"clipboard",onclick:SocialCalc.SpreadsheetControlClipboardOnclick, @@ -705,309 +704,329 @@ onclickFocus:"clipboardtext"});this.views.clipboard={name:"clipboard",divStyle:" SocialCalc.SpreadsheetControl.prototype.InitializeSpreadsheetControl=function(a,c,b,d){return SocialCalc.InitializeSpreadsheetControl(this,a,c,b,d)};SocialCalc.SpreadsheetControl.prototype.DoOnResize=function(){return SocialCalc.DoOnResize(this)};SocialCalc.SpreadsheetControl.prototype.SizeSSDiv=function(){return SocialCalc.SizeSSDiv(this)};SocialCalc.SpreadsheetControl.prototype.ExecuteCommand=function(a,c){return SocialCalc.SpreadsheetControlExecuteCommand(this,a,c)}; SocialCalc.SpreadsheetControl.prototype.CreateSheetHTML=function(){return SocialCalc.SpreadsheetControlCreateSheetHTML(this)};SocialCalc.SpreadsheetControl.prototype.CreateSpreadsheetSave=function(a){return SocialCalc.SpreadsheetControlCreateSpreadsheetSave(this,a)};SocialCalc.SpreadsheetControl.prototype.DecodeSpreadsheetSave=function(a){return SocialCalc.SpreadsheetControlDecodeSpreadsheetSave(this,a)}; SocialCalc.SpreadsheetControl.prototype.CreateCellHTML=function(a){return SocialCalc.SpreadsheetControlCreateCellHTML(this,a)};SocialCalc.SpreadsheetControl.prototype.CreateCellHTMLSave=function(a){return SocialCalc.SpreadsheetControlCreateCellHTMLSave(this,a)};SocialCalc.SpreadsheetControl.prototype.ParseSheetSave=function(a){return this.sheet.ParseSheetSave(a)};SocialCalc.SpreadsheetControl.prototype.CreateSheetSave=function(){return this.sheet.CreateSheetSave()}; -SocialCalc.InitializeSpreadsheetControl=function(a,c,b,d,e){var g=SocialCalc.Constants,h=SocialCalc.LocalizeString,j=SocialCalc.LocalizeSubstrings,k,m,n,s=a.tabs,q=a.views;a.requestedHeight=b;a.requestedWidth=d;a.requestedSpaceBelow=e;typeof c=="string"&&(c=document.getElementById(c));c==null&&alert("SocialCalc.SpreadsheetControl not given parent node.");a.parentNode=c;a.spreadsheetDiv=document.createElement("div");a.SizeSSDiv();for(b=c.firstChild;b!=null;b=c.firstChild)c.removeChild(b);b='
';for(d=0;d
';for(d=0;d'+h(s[d].text)+"";b+="
";a.currentTab=0;for(m in a.tabreplacements)b=b.replace(a.tabreplacements[m].regex, +SocialCalc.InitializeSpreadsheetControl=function(a,c,b,d,e){var g=SocialCalc.Constants,h=SocialCalc.LocalizeString,j=SocialCalc.LocalizeSubstrings,k,m,n,r=a.tabs,q=a.views;a.requestedHeight=b;a.requestedWidth=d;a.requestedSpaceBelow=e;typeof c=="string"&&(c=document.getElementById(c));c==null&&alert("SocialCalc.SpreadsheetControl not given parent node.");a.parentNode=c;a.spreadsheetDiv=document.createElement("div");a.SizeSSDiv();for(b=c.firstChild;b!=null;b=c.firstChild)c.removeChild(b);b='
';for(d=0;d
');for(d=0;d'+h(r[d].text)+"");b=b+"
";a.currentTab=0;for(m in a.tabreplacements)b=b.replace(a.tabreplacements[m].regex, a.tabreplacements[m].replacement);b=b.replace(/\%s\./g,"SocialCalc.");b=b.replace(/\%id\./g,a.idPrefix);b=b.replace(/\%tbt\./g,a.toolbartext);b=b.replace(/\%img\./g,a.imagePrefix);b=j(b);a.spreadsheetDiv.innerHTML=b;c.appendChild(a.spreadsheetDiv);a.Buttons={button_undo:{tooltip:"Undo",command:"undo"},button_redo:{tooltip:"Redo",command:"redo"},button_copy:{tooltip:"Copy",command:"copy"},button_cut:{tooltip:"Cut",command:"cut"},button_paste:{tooltip:"Paste",command:"paste"},button_pasteformats:{tooltip:"Paste Formats", command:"pasteformats"},button_delete:{tooltip:"Delete Contents",command:"delete"},button_filldown:{tooltip:"Fill Down",command:"filldown"},button_fillright:{tooltip:"Fill Right",command:"fillright"},button_movefrom:{tooltip:"Set/Clear Move From",command:"movefrom"},button_movepaste:{tooltip:"Move Paste",command:"movepaste"},button_moveinsert:{tooltip:"Move Insert",command:"moveinsert"},button_alignleft:{tooltip:"Align Left",command:"align-left"},button_aligncenter:{tooltip:"Align Center",command:"align-center"}, button_alignright:{tooltip:"Align Right",command:"align-right"},button_borderon:{tooltip:"Borders On",command:"borderon"},button_borderoff:{tooltip:"Borders Off",command:"borderoff"},button_swapcolors:{tooltip:"Swap Colors",command:"swapcolors"},button_merge:{tooltip:"Merge Cells",command:"merge"},button_unmerge:{tooltip:"Unmerge Cells",command:"unmerge"},button_insertrow:{tooltip:"Insert Row",command:"insertrow"},button_insertcol:{tooltip:"Insert Column",command:"insertcol"},button_deleterow:{tooltip:"Delete Row", -command:"deleterow"},button_deletecol:{tooltip:"Delete Column",command:"deletecol"},button_recalc:{tooltip:"Recalc",command:"recalc"}};for(n in a.Buttons)(c=document.getElementById(a.idPrefix+n))?(c.style.border="1px solid "+g.ISCButtonBorderNormal,SocialCalc.TooltipRegister(c,h(a.Buttons[n].tooltip),{}),SocialCalc.ButtonRegister(c,{normalstyle:"border:1px solid "+g.ISCButtonBorderNormal+";backgroundColor:"+g.ISCButtonBorderNormal+";",hoverstyle:"border:1px solid "+g.ISCButtonBorderHover+";backgroundColor:"+ -g.ISCButtonBorderNormal+";",downstyle:"border:1px solid "+g.ISCButtonBorderDown+";backgroundColor:"+g.ISCButtonDownBackground+";"},{MouseDown:SocialCalc.DoButtonCmd,command:a.Buttons[n].command})):alert("Button "+(a.idPrefix+n)+" missing");a.formulabarDiv=document.createElement("div");a.formulabarDiv.style.height=a.formulabarheight+"px";a.formulabarDiv.innerHTML=' ';a.spreadsheetDiv.appendChild(a.formulabarDiv);new SocialCalc.InputBox(a.formulabarDiv.firstChild, -a.editor);for(n in a.formulabuttons)c=document.createElement("img"),c.id=a.idPrefix+n,c.src=a.imagePrefix+a.formulabuttons[n].image,c.style.verticalAlign="middle",c.style.border="1px solid #FFF",c.style.marginLeft="4px",SocialCalc.TooltipRegister(c,h(a.formulabuttons[n].tooltip),{}),SocialCalc.ButtonRegister(c,{normalstyle:"border:1px solid #FFF;backgroundColor:#FFF;",hoverstyle:"border:1px solid #CCC;backgroundColor:#FFF;",downstyle:"border:1px solid #000;backgroundColor:#FFF;"},{MouseDown:a.formulabuttons[n].command}), -a.formulabarDiv.appendChild(c);for(d=0;d ';a.spreadsheetDiv.appendChild(a.formulabarDiv);new SocialCalc.InputBox(a.formulabarDiv.firstChild, +a.editor);for(n in a.formulabuttons){c=document.createElement("img");c.id=a.idPrefix+n;c.src=a.imagePrefix+a.formulabuttons[n].image;c.style.verticalAlign="middle";c.style.border="1px solid #FFF";c.style.marginLeft="4px";SocialCalc.TooltipRegister(c,h(a.formulabuttons[n].tooltip),{});SocialCalc.ButtonRegister(c,{normalstyle:"border:1px solid #FFF;backgroundColor:#FFF;",hoverstyle:"border:1px solid #CCC;backgroundColor:#FFF;",downstyle:"border:1px solid #000;backgroundColor:#FFF;"},{MouseDown:a.formulabuttons[n].command}); +a.formulabarDiv.appendChild(c)}for(d=0;d1&&g<=h.cr2.col-h.cr1.col+1?g:1;e=document.getElementById(a.idPrefix+"minorsort");g=e.selectedIndex;e.options.length=0;e.options[e.options.length]=new Option(c("[None]"),"");for(b=h.cr1.col;b<=h.cr2.col;b++)d=SocialCalc.rcColname(b),e.options[e.options.length]=new Option(d,d);e.selectedIndex=g>0&&g<=h.cr2.col-h.cr1.col+1?g:0;e=document.getElementById(a.idPrefix+"lastsort");g=e.selectedIndex;e.options.length=0;e.options[e.options.length]= -new Option(c("[None]"),"");for(b=h.cr1.col;b<=h.cr2.col;b++)d=SocialCalc.rcColname(b),e.options[e.options.length]=new Option(d,d);e.selectedIndex=g>0&&g<=h.cr2.col-h.cr1.col+1?g:0};SocialCalc.CmdGotFocus=function(a){SocialCalc.Keyboard.passThru=a};SocialCalc.DoButtonCmd=function(a,c,b){SocialCalc.DoCmd(b.element,b.functionobj.command)}; +SocialCalc.LoadColumnChoosers=function(a){var c=SocialCalc.LocalizeString,b,d,e,g;if(a.sortrange&&a.sortrange.indexOf(":")==-1){b=SocialCalc.Formula.LookupName(a.sheet,a.sortrange||"");if(b.type=="range"){b=b.value.match(/^(.*)\|(.*)\|$/);b=b[1]+":"+b[2]}else b="A1:A1"}else b=a.sortrange;var h=SocialCalc.ParseRange(b);e=document.getElementById(a.idPrefix+"majorsort");g=e.selectedIndex;e.options.length=0;e.options[e.options.length]=new Option(c("[None]"),"");for(b=h.cr1.col;b<=h.cr2.col;b++){d=SocialCalc.rcColname(b); +e.options[e.options.length]=new Option(c("Column ")+d,d)}e.selectedIndex=g>1&&g<=h.cr2.col-h.cr1.col+1?g:1;e=document.getElementById(a.idPrefix+"minorsort");g=e.selectedIndex;e.options.length=0;e.options[e.options.length]=new Option(c("[None]"),"");for(b=h.cr1.col;b<=h.cr2.col;b++){d=SocialCalc.rcColname(b);e.options[e.options.length]=new Option(d,d)}e.selectedIndex=g>0&&g<=h.cr2.col-h.cr1.col+1?g:0;e=document.getElementById(a.idPrefix+"lastsort");g=e.selectedIndex;e.options.length=0;e.options[e.options.length]= +new Option(c("[None]"),"");for(b=h.cr1.col;b<=h.cr2.col;b++){d=SocialCalc.rcColname(b);e.options[e.options.length]=new Option(d,d)}e.selectedIndex=g>0&&g<=h.cr2.col-h.cr1.col+1?g:0};SocialCalc.CmdGotFocus=function(a){SocialCalc.Keyboard.passThru=a};SocialCalc.DoButtonCmd=function(a,c,b){SocialCalc.DoCmd(b.element,b.functionobj.command)}; SocialCalc.DoCmd=function(a,c){var b,d,e,g,h,j;g=SocialCalc.GetSpreadsheetControlObject();e=g.editor;switch(c){case "undo":g.ExecuteCommand("undo","");break;case "redo":g.ExecuteCommand("redo","");break;case "fill-rowcolstuff":case "fill-text":e=c.substring(5);d=document.getElementById(g.idPrefix+e+"list");for(b=d.length=0;b0&&(d=document.getElementById(g.idPrefix+"minorsortup"),b+=" "+e.options[e.selectedIndex].value+(d.checked?" up":" down"));e=document.getElementById(g.idPrefix+"lastsort");e.selectedIndex>0&&(d=document.getElementById(g.idPrefix+"lastsortup"),b+=" "+e.options[e.selectedIndex].value+(d.checked?" up":" down"));g.ExecuteCommand(b,"");break;case "merge":b=SocialCalc.SpreadsheetCmdLookup[c]||"";d=SocialCalc.SpreadsheetCmdSLookup[c]||"";g.ExecuteCommand(b,d);e.range.hasrange&& -(e.MoveECell(SocialCalc.crToCoord(e.range.left,e.range.top)),e.RangeRemove());break;case "movefrom":e.range2.hasrange?(g.context.cursorsuffix="",e.Range2Remove(),g.ExecuteCommand("redisplay","")):e.range.hasrange?(e.range2.top=e.range.top,e.range2.right=e.range.right,e.range2.bottom=e.range.bottom,e.range2.left=e.range.left,e.range2.hasrange=!0,e.MoveECell(SocialCalc.crToCoord(e.range.left,e.range.top))):(e.range2.top=e.ecell.row,e.range2.right=e.ecell.col,e.range2.bottom=e.ecell.row,e.range2.left= -e.ecell.col,e.range2.hasrange=!0);b=e.range2.hasrange?"":"off";d=document.getElementById(g.idPrefix+"button_movefrom");d.src=g.imagePrefix+"movefrom"+b+".gif";d=document.getElementById(g.idPrefix+"button_movepaste");d.src=g.imagePrefix+"movepaste"+b+".gif";d=document.getElementById(g.idPrefix+"button_moveinsert");d.src=g.imagePrefix+"moveinsert"+b+".gif";e.range2.hasrange&&e.RangeRemove();break;case "movepaste":case "moveinsert":if(e.range2.hasrange)g.context.cursorsuffix="",b=c+" "+SocialCalc.crToCoord(e.range2.left, -e.range2.top)+":"+SocialCalc.crToCoord(e.range2.right,e.range2.bottom)+" "+e.ecell.coord,g.ExecuteCommand(b,""),e.Range2Remove(),d=document.getElementById(g.idPrefix+"button_movefrom"),d.src=g.imagePrefix+"movefromoff.gif",d=document.getElementById(g.idPrefix+"button_movepaste"),d.src=g.imagePrefix+"movepasteoff.gif",d=document.getElementById(g.idPrefix+"button_moveinsert"),d.src=g.imagePrefix+"moveinsertoff.gif";break;case "swapcolors":b=g.sheet;h=b.GetAssuredCell(e.ecell.coord);d=b.attribs.defaultcolor? -b.colors[b.attribs.defaultcolor]:"rgb(0,0,0)";j=b.attribs.defaultbgcolor?b.colors[b.attribs.defaultbgcolor]:"rgb(255,255,255)";e=h.color?b.colors[h.color]:d;e==j&&(e="");b=h.bgcolor?b.colors[h.bgcolor]:j;b==d&&(b="");g.ExecuteCommand("set %C color "+b+"%Nset %C bgcolor "+e,"");break;default:b=SocialCalc.SpreadsheetCmdLookup[c]||"",d=SocialCalc.SpreadsheetCmdSLookup[c]||"",g.ExecuteCommand(b,d)}a&&a.blur&&a.blur();SocialCalc.KeyboardFocus()}; +a&&a.blur&&a.blur();SocialCalc.KeyboardFocus();return;case "dosort":if(g.sortrange&&g.sortrange.indexOf(":")==-1){e=SocialCalc.Formula.LookupName(g.sheet,g.sortrange||"");if(e.type!="range")return;e=e.value.match(/^(.*)\|(.*)\|$/);e=e[1]+":"+e[2]}else e=g.sortrange;if(e=="A1:A1")return;b="sort "+e+" ";e=document.getElementById(g.idPrefix+"majorsort");d=document.getElementById(g.idPrefix+"majorsortup");b=b+(e.options[e.selectedIndex].value+(d.checked?" up":" down"));e=document.getElementById(g.idPrefix+ +"minorsort");if(e.selectedIndex>0){d=document.getElementById(g.idPrefix+"minorsortup");b=b+(" "+e.options[e.selectedIndex].value+(d.checked?" up":" down"))}e=document.getElementById(g.idPrefix+"lastsort");if(e.selectedIndex>0){d=document.getElementById(g.idPrefix+"lastsortup");b=b+(" "+e.options[e.selectedIndex].value+(d.checked?" up":" down"))}g.ExecuteCommand(b,"");break;case "merge":b=SocialCalc.SpreadsheetCmdLookup[c]||"";d=SocialCalc.SpreadsheetCmdSLookup[c]||"";g.ExecuteCommand(b,d);if(e.range.hasrange){e.MoveECell(SocialCalc.crToCoord(e.range.left, +e.range.top));e.RangeRemove()}break;case "movefrom":if(e.range2.hasrange){g.context.cursorsuffix="";e.Range2Remove();g.ExecuteCommand("redisplay","")}else if(e.range.hasrange){e.range2.top=e.range.top;e.range2.right=e.range.right;e.range2.bottom=e.range.bottom;e.range2.left=e.range.left;e.range2.hasrange=true;e.MoveECell(SocialCalc.crToCoord(e.range.left,e.range.top))}else{e.range2.top=e.ecell.row;e.range2.right=e.ecell.col;e.range2.bottom=e.ecell.row;e.range2.left=e.ecell.col;e.range2.hasrange=true}b= +e.range2.hasrange?"":"off";d=document.getElementById(g.idPrefix+"button_movefrom");d.src=g.imagePrefix+"movefrom"+b+".gif";d=document.getElementById(g.idPrefix+"button_movepaste");d.src=g.imagePrefix+"movepaste"+b+".gif";d=document.getElementById(g.idPrefix+"button_moveinsert");d.src=g.imagePrefix+"moveinsert"+b+".gif";e.range2.hasrange&&e.RangeRemove();break;case "movepaste":case "moveinsert":if(e.range2.hasrange){g.context.cursorsuffix="";b=c+" "+SocialCalc.crToCoord(e.range2.left,e.range2.top)+ +":"+SocialCalc.crToCoord(e.range2.right,e.range2.bottom)+" "+e.ecell.coord;g.ExecuteCommand(b,"");e.Range2Remove();d=document.getElementById(g.idPrefix+"button_movefrom");d.src=g.imagePrefix+"movefromoff.gif";d=document.getElementById(g.idPrefix+"button_movepaste");d.src=g.imagePrefix+"movepasteoff.gif";d=document.getElementById(g.idPrefix+"button_moveinsert");d.src=g.imagePrefix+"moveinsertoff.gif"}break;case "swapcolors":b=g.sheet;h=b.GetAssuredCell(e.ecell.coord);d=b.attribs.defaultcolor?b.colors[b.attribs.defaultcolor]: +"rgb(0,0,0)";j=b.attribs.defaultbgcolor?b.colors[b.attribs.defaultbgcolor]:"rgb(255,255,255)";e=h.color?b.colors[h.color]:d;e==j&&(e="");b=h.bgcolor?b.colors[h.bgcolor]:j;b==d&&(b="");g.ExecuteCommand("set %C color "+b+"%Nset %C bgcolor "+e,"");break;default:b=SocialCalc.SpreadsheetCmdLookup[c]||"";d=SocialCalc.SpreadsheetCmdSLookup[c]||"";g.ExecuteCommand(b,d)}a&&a.blur&&a.blur();SocialCalc.KeyboardFocus()}; SocialCalc.SpreadsheetCmdLookup={copy:"copy %C all",cut:"cut %C all",paste:"paste %C all",pasteformats:"paste %C formats","delete":"erase %C formulas",filldown:"filldown %C all",fillright:"fillright %C all",erase:"erase %C all",borderon:"set %C bt %S%Nset %C br %S%Nset %C bb %S%Nset %C bl %S",borderoff:"set %C bt %S%Nset %C br %S%Nset %C bb %S%Nset %C bl %S",merge:"merge %C",unmerge:"unmerge %C","align-left":"set %C cellformat left","align-center":"set %C cellformat center","align-right":"set %C cellformat right", "align-default":"set %C cellformat",insertrow:"insertrow %C",insertcol:"insertcol %C",deleterow:"deleterow %C",deletecol:"deletecol %C",undo:"undo",redo:"redo",recalc:"recalc"};SocialCalc.SpreadsheetCmdSLookup={borderon:"1px solid rgb(0,0,0)",borderoff:""}; -SocialCalc.SpreadsheetControlExecuteCommand=function(a,c,b){var a=SocialCalc.GetSpreadsheetControlObject().editor,d={P:"%",N:"\n"};a.range.hasrange?(d.R=SocialCalc.crToCoord(a.range.left,a.range.top)+":"+SocialCalc.crToCoord(a.range.right,a.range.bottom),d.C=d.R,d.W=SocialCalc.rcColname(a.range.left)+":"+SocialCalc.rcColname(a.range.right)):(d.C=a.ecell.coord,d.R=a.ecell.coord+":"+a.ecell.coord,d.W=SocialCalc.rcColname(SocialCalc.coordToCr(a.ecell.coord).col));d.S=b;c=c.replace(/%C/g,d.C);c=c.replace(/%R/g, -d.R);c=c.replace(/%N/g,d.N);c=c.replace(/%S/g,d.S);c=c.replace(/%W/g,d.W);c=c.replace(/%P/g,d.P);a.EditorScheduleSheetCommands(c,!0,!1)};SocialCalc.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}; +SocialCalc.SpreadsheetControlExecuteCommand=function(a,c,b){var a=SocialCalc.GetSpreadsheetControlObject().editor,d,e,g;if(a.range.hasrange){e=d=SocialCalc.crToCoord(a.range.left,a.range.top)+":"+SocialCalc.crToCoord(a.range.right,a.range.bottom);g=SocialCalc.rcColname(a.range.left)+":"+SocialCalc.rcColname(a.range.right)}else{e=a.ecell.coord;d=a.ecell.coord+":"+a.ecell.coord;g=SocialCalc.rcColname(SocialCalc.coordToCr(a.ecell.coord).col)}c=c.replace(/%C/g,e);c=c.replace(/%R/g,d);c=c.replace(/%N/g, +"\n");c=c.replace(/%S/g,b);c=c.replace(/%W/g,g);c=c.replace(/%P/g,"%");a.EditorScheduleSheetCommands(c,true,false)};SocialCalc.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}; SocialCalc.SpreadsheetControlCreateCellHTML=function(a,c,b){var d="",d=a.sheet.cells[c];if(!d)return"";d=d.displaystring==void 0?SocialCalc.FormatValueForDisplay(a.sheet,d.datavalue,c,b||a.context.defaultHTMLlinkstyle):d.displaystring;d==" "&&(d="");return d}; -SocialCalc.SpreadsheetControlCreateCellHTMLSave=function(a,c,b){var d,e,g,h,j,k=[];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;k.push("version:1.0");for(e=c.row;e<=d.row;e++)for(g=c.col;g<=d.col;g++)if(h=SocialCalc.crToCoord(g,e),j=a.sheet.cells[h])j=j.displaystring==void 0?SocialCalc.FormatValueForDisplay(a.sheet,j.datavalue,h,b||a.context.defaultHTMLlinkstyle):j.displaystring,j!=" "&&k.push(h+":"+SocialCalc.encodeForSave(j)); -k.push("");return k.join("\n")}; +SocialCalc.SpreadsheetControlCreateCellHTMLSave=function(a,c,b){var d,e,g,h,j,k=[];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;k.push("version:1.0");for(e=c.row;e<=d.row;e++)for(g=c.col;g<=d.col;g++){h=SocialCalc.crToCoord(g,e);if(j=a.sheet.cells[h]){j=j.displaystring==void 0?SocialCalc.FormatValueForDisplay(a.sheet,j.datavalue,h,b||a.context.defaultHTMLlinkstyle):j.displaystring;j!=" "&&k.push(h+":"+SocialCalc.encodeForSave(j))}}k.push(""); +return k.join("\n")}; SocialCalc.SpreadsheetControl.DoFunctionList=function(){var a,c,b=SocialCalc.Formula,d=SocialCalc.Constants.function_classlist,e=SocialCalc.GetSpreadsheetControlObject(),g=e.idPrefix+"function";c=document.getElementById(g+"dialog");if(!c){b.FillFunctionInfo();c='
%loc!Category!
  %loc!Functions!
'+SocialCalc.SpreadsheetControl.GetFunctionInfoStr(b.FunctionClasses[d[0]].items[0])+'
 
'; +0;a":">")+SocialCalc.special_chars(b.FunctionClasses[d[a]].name)+"");c=c+('  %loc!Functions!
 
'); b=document.createElement("div");b.id=g+"dialog";b.style.position="absolute";d=SocialCalc.GetViewportInfo();b.style.top=d.height/3+"px";b.style.left=d.width/3+"px";b.style.zIndex=100;b.style.backgroundColor="#FFF";b.style.border="1px solid black";b.style.width="400px";c=SocialCalc.LocalizeSubstrings('
 %loc!Function List! X 
'+ -c+"
");b.innerHTML=c;SocialCalc.DragRegister(b.firstChild.firstChild.firstChild.firstChild,!0,!0,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,positionobj:b});e.spreadsheetDiv.appendChild(b);c=document.getElementById(g+"name");c.focus();SocialCalc.CmdGotFocus(c)}}; -SocialCalc.SpreadsheetControl.GetFunctionNamesStr=function(a){var c,b="";c=SocialCalc.Formula.FunctionClasses[a];for(a=0;a":">")+c.items[a]+"";return b};SocialCalc.SpreadsheetControl.FillFunctionNames=function(a,c){var b,d;b=SocialCalc.Formula;c.length=0;d=b.FunctionClasses[a];for(b=0;b"+a+"("+d(c.FunctionArgString(a))+")
";a+=d(b[3]);return a};SocialCalc.SpreadsheetControl.FunctionClassChosen=function(a){var c=SocialCalc.GetSpreadsheetControlObject().idPrefix+"function",b=SocialCalc.Formula;SocialCalc.SpreadsheetControl.FillFunctionNames(a,document.getElementById(c+"name"));SocialCalc.SpreadsheetControl.FunctionChosen(b.FunctionClasses[a].items[0])}; +c+"
");b.innerHTML=c;SocialCalc.DragRegister(b.firstChild.firstChild.firstChild.firstChild,true,true,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,positionobj:b});e.spreadsheetDiv.appendChild(b);c=document.getElementById(g+"name");c.focus();SocialCalc.CmdGotFocus(c)}}; +SocialCalc.SpreadsheetControl.GetFunctionNamesStr=function(a){var c,b="";c=SocialCalc.Formula.FunctionClasses[a];for(a=0;a":">")+c.items[a]+"");return b};SocialCalc.SpreadsheetControl.FillFunctionNames=function(a,c){var b,d;b=SocialCalc.Formula;c.length=0;d=b.FunctionClasses[a];for(b=0;b"+a+"("+d(c.FunctionArgString(a))+")
";return a=a+d(b[3])};SocialCalc.SpreadsheetControl.FunctionClassChosen=function(a){var c=SocialCalc.GetSpreadsheetControlObject().idPrefix+"function",b=SocialCalc.Formula;SocialCalc.SpreadsheetControl.FillFunctionNames(a,document.getElementById(c+"name"));SocialCalc.SpreadsheetControl.FunctionChosen(b.FunctionClasses[a].items[0])}; SocialCalc.SpreadsheetControl.FunctionChosen=function(a){var c=SocialCalc.GetSpreadsheetControlObject().idPrefix+"function";document.getElementById(c+"desc").innerHTML=SocialCalc.SpreadsheetControl.GetFunctionInfoStr(a)};SocialCalc.SpreadsheetControl.HideFunctions=function(){var a=SocialCalc.GetSpreadsheetControlObject(),a=document.getElementById(a.idPrefix+"functiondialog");a.innerHTML="";SocialCalc.DragUnregister(a);SocialCalc.KeyboardFocus();a.parentNode&&a.parentNode.removeChild(a)}; -SocialCalc.SpreadsheetControl.DoFunctionPaste=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,b=document.getElementById(a.idPrefix+"functionname"),a=document.getElementById(a.idPrefix+"multilinetextarea"),b=b.value+"(";SocialCalc.SpreadsheetControl.HideFunctions();a?(a.value+=b,a.focus(),SocialCalc.CmdGotFocus(a)):c.EditorAddToInput(b,"=")}; +SocialCalc.SpreadsheetControl.DoFunctionPaste=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,b=document.getElementById(a.idPrefix+"functionname"),a=document.getElementById(a.idPrefix+"multilinetextarea"),b=b.value+"(";SocialCalc.SpreadsheetControl.HideFunctions();if(a){a.value=a.value+b;a.focus();SocialCalc.CmdGotFocus(a)}else c.EditorAddToInput(b,"=")}; SocialCalc.SpreadsheetControl.DoMultiline=function(){var a=SocialCalc.LocalizeSubstrings,c,b,d=SocialCalc.GetSpreadsheetControlObject(),e=d.editor,g=e.workingvalues,d=SocialCalc.GetSpreadsheetControlObject(),h=d.idPrefix+"multiline";c=document.getElementById(h+"dialog");if(!c){switch(e.state){case "start":g.ecoord=e.ecell.coord;g.erow=e.ecell.row;g.ecol=e.ecell.col;e.RangeRemove();b=SocialCalc.GetCellContents(e.context.sheetobj,g.ecoord);break;case "input":case "inputboxdirect":b=e.inputBox.GetText()}e.inputBox.element.disabled= -!0;b=SocialCalc.special_chars(b);c='
'+a('  
'); +true;b=SocialCalc.special_chars(b);c='
'+a('  
'); b=document.createElement("div");b.id=h+"dialog";b.style.position="absolute";e=SocialCalc.GetViewportInfo();b.style.top=e.height/3+"px";b.style.left=e.width/3+"px";b.style.zIndex=100;b.style.backgroundColor="#FFF";b.style.border="1px solid black";b.style.width="400px";b.innerHTML='
'+a(" %loc!Multi-line Input Box!")+' X 
'+ -c+"
";SocialCalc.DragRegister(b.firstChild.firstChild.firstChild.firstChild,!0,!0,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,positionobj:b});d.spreadsheetDiv.appendChild(b);c=document.getElementById(h+"textarea");c.focus();SocialCalc.CmdGotFocus(c)}}; -SocialCalc.SpreadsheetControl.HideMultiline=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,a=document.getElementById(a.idPrefix+"multilinedialog");a.innerHTML="";SocialCalc.DragUnregister(a);SocialCalc.KeyboardFocus();a.parentNode&&a.parentNode.removeChild(a);switch(c.state){case "start":c.inputBox.DisplayCellContents(null);break;case "input":case "inputboxdirect":c.inputBox.element.disabled=!1,c.inputBox.Focus()}}; +c+"";SocialCalc.DragRegister(b.firstChild.firstChild.firstChild.firstChild,true,true,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,positionobj:b});d.spreadsheetDiv.appendChild(b);c=document.getElementById(h+"textarea");c.focus();SocialCalc.CmdGotFocus(c)}}; +SocialCalc.SpreadsheetControl.HideMultiline=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,a=document.getElementById(a.idPrefix+"multilinedialog");a.innerHTML="";SocialCalc.DragUnregister(a);SocialCalc.KeyboardFocus();a.parentNode&&a.parentNode.removeChild(a);switch(c.state){case "start":c.inputBox.DisplayCellContents(null);break;case "input":case "inputboxdirect":c.inputBox.element.disabled=false;c.inputBox.Focus()}}; SocialCalc.SpreadsheetControl.DoMultilineClear=function(){var a=SocialCalc.GetSpreadsheetControlObject(),a=document.getElementById(a.idPrefix+"multilinetextarea");a.value="";a.focus()}; -SocialCalc.SpreadsheetControl.DoMultilinePaste=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,b=c.workingvalues,a=document.getElementById(a.idPrefix+"multilinetextarea").value;SocialCalc.SpreadsheetControl.HideMultiline();switch(c.state){case "start":b.partialexpr="";b.ecoord=c.ecell.coord;b.erow=c.ecell.row;b.ecol=c.ecell.col;break;case "input":case "inputboxdirect":c.inputBox.Blur(),c.inputBox.ShowInputBox(!1),c.state="start"}c.EditorSaveEdit(a)}; +SocialCalc.SpreadsheetControl.DoMultilinePaste=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,b=c.workingvalues,a=document.getElementById(a.idPrefix+"multilinetextarea").value;SocialCalc.SpreadsheetControl.HideMultiline();switch(c.state){case "start":b.partialexpr="";b.ecoord=c.ecell.coord;b.erow=c.ecell.row;b.ecol=c.ecell.col;break;case "input":case "inputboxdirect":c.inputBox.Blur();c.inputBox.ShowInputBox(false);c.state="start"}c.EditorSaveEdit(a)}; SocialCalc.SpreadsheetControl.DoLink=function(){var a=SocialCalc.LocalizeString,c,b,d,e,g=SocialCalc.GetSpreadsheetControlObject();d=g.editor;e=d.workingvalues;var g=SocialCalc.GetSpreadsheetControlObject(),h=g.idPrefix+"link";b=document.getElementById(h+"dialog");if(!b){switch(d.state){case "start":e.ecoord=d.ecell.coord;e.erow=d.ecell.row;e.ecol=d.ecell.col;d.RangeRemove();c=SocialCalc.GetCellContents(d.context.sheetobj,e.ecoord);break;case "input":case "inputboxdirect":c=d.inputBox.GetText()}d.inputBox.element.disabled= -!0;c.charAt(0)=="'"&&(c=c.slice(1));b=SocialCalc.ParseCellLinkText(c);SocialCalc.special_chars(c);c=g.sheet.cells[d.ecell.coord];d=!c||!c.textvalueformat?" checked":"";e=b.newwin?" checked":"";c='
'+a("Description")+'

'+a("URL")+'

';SocialCalc.Callbacks.MakePageLink&&(c+=''+a("Page Name")+'

'+a("Workspace")+'

');c+=SocialCalc.LocalizeSubstrings(' %loc!Set to Link format!
 %loc!Show in new browser window!
  
'); +true;c.charAt(0)=="'"&&(c=c.slice(1));b=SocialCalc.ParseCellLinkText(c);SocialCalc.special_chars(c);c=g.sheet.cells[d.ecell.coord];d=!c||!c.textvalueformat?" checked":"";e=b.newwin?" checked":"";c='
'+a("Description")+'

'+a("URL")+'

';SocialCalc.Callbacks.MakePageLink&&(c=c+(''+a("Page Name")+'

'+a("Workspace")+'

'));c=c+SocialCalc.LocalizeSubstrings(' %loc!Set to Link format!
 %loc!Show in new browser window!
  
'); b=document.createElement("div");b.id=h+"dialog";b.style.position="absolute";d=SocialCalc.GetViewportInfo();b.style.top=d.height/3+"px";b.style.left=d.width/3+"px";b.style.zIndex=100;b.style.backgroundColor="#FFF";b.style.border="1px solid black";b.style.width="400px";b.innerHTML='
 '+a("Link Input Box")+' X 
'+ -c+"
";SocialCalc.DragRegister(b.firstChild.firstChild.firstChild.firstChild,!0,!0,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,positionobj:b});g.spreadsheetDiv.appendChild(b);b=document.getElementById(h+"url");b.focus();SocialCalc.CmdGotFocus(b)}}; -SocialCalc.SpreadsheetControl.HideLink=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,a=document.getElementById(a.idPrefix+"linkdialog");a.innerHTML="";SocialCalc.DragUnregister(a);SocialCalc.KeyboardFocus();a.parentNode&&a.parentNode.removeChild(a);switch(c.state){case "start":c.inputBox.DisplayCellContents(null);break;case "input":case "inputboxdirect":c.inputBox.element.disabled=!1,c.inputBox.Focus()}}; +c+"";SocialCalc.DragRegister(b.firstChild.firstChild.firstChild.firstChild,true,true,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,positionobj:b});g.spreadsheetDiv.appendChild(b);b=document.getElementById(h+"url");b.focus();SocialCalc.CmdGotFocus(b)}}; +SocialCalc.SpreadsheetControl.HideLink=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,a=document.getElementById(a.idPrefix+"linkdialog");a.innerHTML="";SocialCalc.DragUnregister(a);SocialCalc.KeyboardFocus();a.parentNode&&a.parentNode.removeChild(a);switch(c.state){case "start":c.inputBox.DisplayCellContents(null);break;case "input":case "inputboxdirect":c.inputBox.element.disabled=false;c.inputBox.Focus()}}; SocialCalc.SpreadsheetControl.DoLinkClear=function(){var a=SocialCalc.GetSpreadsheetControlObject();document.getElementById(a.idPrefix+"linkdesc").value="";document.getElementById(a.idPrefix+"linkpagename").value="";document.getElementById(a.idPrefix+"linkworkspace").value="";a=document.getElementById(a.idPrefix+"linkurl");a.value="";a.focus()}; -SocialCalc.SpreadsheetControl.DoLinkPaste=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,b=c.workingvalues,d=document.getElementById(a.idPrefix+"linkdesc"),e=document.getElementById(a.idPrefix+"linkurl"),g=document.getElementById(a.idPrefix+"linkpagename"),h=document.getElementById(a.idPrefix+"linkworkspace"),j=document.getElementById(a.idPrefix+"linkformat"),k="",m,n;document.getElementById(a.idPrefix+"linkpopup").checked?(a="<<",k=">>",m="[[",n="]]"):(a="<",k=">",m="[",n="]"); -k=g&&g.value?h.value?d.value+"{"+h.value+m+g.value+n+"}":d.value+m+g.value+n:d.value+a+e.value+k;SocialCalc.SpreadsheetControl.HideLink();switch(c.state){case "start":b.partialexpr="";b.ecoord=c.ecell.coord;b.erow=c.ecell.row;b.ecol=c.ecell.col;break;case "input":case "inputboxdirect":c.inputBox.Blur(),c.inputBox.ShowInputBox(!1),c.state="start"}j.checked&&SocialCalc.SpreadsheetControlExecuteCommand(null,"set %C textvalueformat text-link","");c.EditorSaveEdit(k)}; -SocialCalc.SpreadsheetControl.DoSum=function(){var a,c,b,d,e=SocialCalc.GetSpreadsheetControlObject().editor,g=e.context.sheetobj;if(e.range.hasrange)a=SocialCalc.crToCoord(e.range.left,e.range.top)+":"+SocialCalc.crToCoord(e.range.right,e.range.bottom),a="set "+SocialCalc.crToCoord(e.range.right,e.range.bottom+1)+" formula sum("+a+")";else if(a=e.ecell.row-1,b=e.ecell.col,a<=1)a="set "+e.ecell.coord+" constant e#REF! 0 #REF!";else{for(d=!1;a>0;){c=SocialCalc.crToCoord(b,a);c=g.GetAssuredCell(c); -if(!c.datatype||c.datatype=="t"){if(d){a++;break}}else d=!0;a--}a="set "+e.ecell.coord+" formula sum("+SocialCalc.crToCoord(b,a)+":"+SocialCalc.crToCoord(b,e.ecell.row-1)+")"}e.EditorScheduleSheetCommands(a,!0,!1)}; -SocialCalc.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>";m="[[";n="]]"}else{a="<";k=">";m="["; +n="]"}k=g&&g.value?h.value?d.value+"{"+h.value+m+g.value+n+"}":d.value+m+g.value+n:d.value+a+e.value+k;SocialCalc.SpreadsheetControl.HideLink();switch(c.state){case "start":b.partialexpr="";b.ecoord=c.ecell.coord;b.erow=c.ecell.row;b.ecol=c.ecell.col;break;case "input":case "inputboxdirect":c.inputBox.Blur();c.inputBox.ShowInputBox(false);c.state="start"}j.checked&&SocialCalc.SpreadsheetControlExecuteCommand(null,"set %C textvalueformat text-link","");c.EditorSaveEdit(k)}; +SocialCalc.SpreadsheetControl.DoSum=function(){var a,c,b,d,e=SocialCalc.GetSpreadsheetControlObject().editor,g=e.context.sheetobj;if(e.range.hasrange){a=SocialCalc.crToCoord(e.range.left,e.range.top)+":"+SocialCalc.crToCoord(e.range.right,e.range.bottom);a="set "+SocialCalc.crToCoord(e.range.right,e.range.bottom+1)+" formula sum("+a+")"}else{a=e.ecell.row-1;b=e.ecell.col;if(a<=1)a="set "+e.ecell.coord+" constant e#REF! 0 #REF!";else{for(d=false;a>0;){c=SocialCalc.crToCoord(b,a);c=g.GetAssuredCell(c); +if(!c.datatype||c.datatype=="t"){if(d){a++;break}}else d=true;a--}a="set "+e.ecell.coord+" formula sum("+SocialCalc.crToCoord(b,a)+":"+SocialCalc.crToCoord(b,e.ecell.row-1)+")"}}e.EditorScheduleSheetCommands(a,true,false)}; +SocialCalc.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;b0?(d=document.getElementById(a.idPrefix+"minorsortup"),c+=":"+b.selectedIndex+(d.checked?":up":":down")):c+="::";b=document.getElementById(a.idPrefix+ -"lastsort");b.selectedIndex>0?(d=document.getElementById(a.idPrefix+"lastsortup"),c+=":"+b.selectedIndex+(d.checked?":up":":down")):c+="::";return c+"\n"}; -SocialCalc.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= -!0;sele=document.getElementById(a.idPrefix+"minorsort");b[4]?(sele.selectedIndex=b[4]-0,document.getElementById(a.idPrefix+"minorsort"+b[5]).checked=!0):(sele.selectedIndex=0,document.getElementById(a.idPrefix+"minorsortup").checked=!0);sele=document.getElementById(a.idPrefix+"lastsort");b[6]?(sele.selectedIndex=b[6]-0,document.getElementById(a.idPrefix+"lastsort"+b[7]).checked=!0):(sele.selectedIndex=0,document.getElementById(a.idPrefix+"lastsortup").checked=!0);return!0}; +SocialCalc.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=c+(b.selectedIndex+(d.checked?":up":":down"));b=document.getElementById(a.idPrefix+"minorsort");if(b.selectedIndex>0){d=document.getElementById(a.idPrefix+"minorsortup");c=c+(":"+b.selectedIndex+(d.checked?":up":":down"))}else c=c+"::";b=document.getElementById(a.idPrefix+ +"lastsort");if(b.selectedIndex>0){d=document.getElementById(a.idPrefix+"lastsortup");c=c+(":"+b.selectedIndex+(d.checked?":up":":down"))}else c=c+"::";return c+"\n"}; +SocialCalc.SpreadsheetControlSortLoad=function(a,c,b){a=SocialCalc.GetSpreadsheetControlObject();b=b.split(":");a.sortrange=SocialCalc.decodeFromSave(b[1]);c=document.getElementById(a.idPrefix+"sortbutton");if(a.sortrange){c.value=SocialCalc.LocalizeString("Sort ")+a.sortrange;c.style.visibility="visible"}else 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= +true;sele=document.getElementById(a.idPrefix+"minorsort");if(b[4]){sele.selectedIndex=b[4]-0;document.getElementById(a.idPrefix+"minorsort"+b[5]).checked=true}else{sele.selectedIndex=0;document.getElementById(a.idPrefix+"minorsortup").checked=true}sele=document.getElementById(a.idPrefix+"lastsort");if(b[6]){sele.selectedIndex=b[6]-0;document.getElementById(a.idPrefix+"lastsort"+b[7]).checked=true}else{sele.selectedIndex=0;document.getElementById(a.idPrefix+"lastsortup").checked=true}return true}; SocialCalc.SpreadsheetControlCommentOnclick=function(a,c){a.editor.MoveECellCallback.comment=SocialCalc.SpreadsheetControlCommentMoveECell;SocialCalc.SpreadsheetControlCommentDisplay(a,c);SocialCalc.KeyboardFocus()};SocialCalc.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}; SocialCalc.SpreadsheetControlCommentMoveECell=function(){SocialCalc.SpreadsheetControlCommentDisplay(SocialCalc.GetSpreadsheetControlObject(),"comment")}; SocialCalc.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.UpdateCellCSS(c,a.editor.ecell.row,a.editor.ecell.col);SocialCalc.KeyboardFocus()};SocialCalc.SpreadsheetControlCommentOnunclick=function(a){delete a.editor.MoveECellCallback.comment}; SocialCalc.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()}; -SocialCalc.SpreadsheetControlNamesFillNameList=function(){var a=SocialCalc.LocalizeString,c,b=[],d=SocialCalc.GetSpreadsheetControlObject(),e=document.getElementById(d.idPrefix+"nameslist"),g=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]=b.length>0?new Option(a("[New]")):new Option(a("[None]"));for(a=0;a0?new Option(a("[New]")):new Option(a("[None]"));for(a=0;a"+d);b.childNodes[1].innerHTML= -a}};SocialCalc.SettingsControls.PopupListSetValue=function(a,c,b){if(b){var d=SocialCalc.Popup;b.def?d.SetValue(a[c].id,""):d.SetValue(a[c].id,b.val)}else alert(c+" no value")};SocialCalc.SettingsControls.PopupListGetValue=function(a,c){var b=a[c];return!b?null:(b=SocialCalc.Popup.GetValue(b.id))?{def:!1,val:b}:{def:!0,val:0}}; -SocialCalc.SettingsControls.PopupListInitialize=function(a,c){var b,d,e,g;b=SocialCalc.SettingsControls;b=a[c].initialdata||b.Controls[a[c].type].InitialData||"";b=SocialCalc.LocalizeSubstrings(b);var h=b.split(/\|/),j=[];for(b=0;b<(h.length||0);b++)d=h[b],e=d.indexOf(":"),g=d.substring(0,e),g.indexOf("\\")!=-1&&(g=g.replace(/\\c/g,":"),g=g.replace(/\\b/g,"\\")),g=SocialCalc.special_chars(g),j[b]=g=="[custom]"?{o:SocialCalc.Constants.s_PopupListCustom,v:d.substring(e+1),a:{custom:!0}}:g=="[cancel]"? -{o:SocialCalc.Constants.s_PopupListCancel,v:"",a:{cancel:!0}}:g=="[break]"?{o:"-----",v:"",a:{skip:!0}}:g=="[newcol]"?{o:"",v:"",a:{newcol:!0}}:{o:g,v:d.substring(e+1)};SocialCalc.Popup.Create("List",a[c].id,{});SocialCalc.Popup.Initialize(a[c].id,{options:j,attribs:{changedcallback:SocialCalc.SettingsControls.PopupChangeCallback,panelobj:a}})};SocialCalc.SettingsControls.PopupListReset=function(){SocialCalc.Popup.Reset("List")}; +h[2]],paddingBottom:["padbottom",h[3]],paddingLeft:["padleft",h[4]],verticalAlign:["alignvert",h[5]]};for(g in h){c=SocialCalc.Popup.GetValue(d+e+h[g][0])||h[g][1]||"";b.style[g]=c}if(e=="c"){h={borderTop:"cbt",borderRight:"cbr",borderBottom:"cbb",borderLeft:"cbl"};for(g in h){c=SocialCalc.SettingsControls.BorderSideGetValue(a.panelobj,h[g]);b.style[g]=c?c.val||"":""}c=SocialCalc.Popup.GetValue(d+"calignhoriz");b.style.textAlign=c||"left"}else{b.style.border="";c=SocialCalc.Popup.GetValue(d+"textalignhoriz"); +b.style.textAlign=c||"left";c=SocialCalc.Popup.GetValue(d+"numberalignhoriz")}b.childNodes[1].style.textAlign=c||"right";h=(c=SocialCalc.Popup.GetValue(d+e+"fontlook"))?c.match(/^(\S+) (\S+)$/)||[]:[];b.style.fontStyle=h[1]||"";b.style.fontWeight=h[2]||"";c=SocialCalc.Popup.GetValue(d+e+"formatnumber")||"General";a=SocialCalc.FormatNumber.formatNumberWithFormat(9.8765,c,"");d=SocialCalc.FormatNumber.formatNumberWithFormat(-1234.5,c,"");d!="??-???-?? ??:??:??"&&(a=a+("
"+d));b.childNodes[1].innerHTML= +a}};SocialCalc.SettingsControls.PopupListSetValue=function(a,c,b){if(b){var d=SocialCalc.Popup;b.def?d.SetValue(a[c].id,""):d.SetValue(a[c].id,b.val)}else alert(c+" no value")};SocialCalc.SettingsControls.PopupListGetValue=function(a,c){var b=a[c];if(!b)return null;return(b=SocialCalc.Popup.GetValue(b.id))?{def:false,val:b}:{def:true,val:0}}; +SocialCalc.SettingsControls.PopupListInitialize=function(a,c){var b,d,e,g;b=SocialCalc.SettingsControls;b=a[c].initialdata||b.Controls[a[c].type].InitialData||"";b=SocialCalc.LocalizeSubstrings(b);var h=b.split(/\|/),j=[];for(b=0;b<(h.length||0);b++){d=h[b];e=d.indexOf(":");g=d.substring(0,e);if(g.indexOf("\\")!=-1){g=g.replace(/\\c/g,":");g=g.replace(/\\b/g,"\\")}g=SocialCalc.special_chars(g);j[b]=g=="[custom]"?{o:SocialCalc.Constants.s_PopupListCustom,v:d.substring(e+1),a:{custom:true}}:g=="[cancel]"? +{o:SocialCalc.Constants.s_PopupListCancel,v:"",a:{cancel:true}}:g=="[break]"?{o:"-----",v:"",a:{skip:true}}:g=="[newcol]"?{o:"",v:"",a:{newcol:true}}:{o:g,v:d.substring(e+1)}}SocialCalc.Popup.Create("List",a[c].id,{});SocialCalc.Popup.Initialize(a[c].id,{options:j,attribs:{changedcallback:SocialCalc.SettingsControls.PopupChangeCallback,panelobj:a}})};SocialCalc.SettingsControls.PopupListReset=function(){SocialCalc.Popup.Reset("List")}; SocialCalc.SettingsControls.Controls.PopupList={SetValue:SocialCalc.SettingsControls.PopupListSetValue,GetValue:SocialCalc.SettingsControls.PopupListGetValue,Initialize:SocialCalc.SettingsControls.PopupListInitialize,OnReset:SocialCalc.SettingsControls.PopupListReset,ChangedCallback:null};SocialCalc.SettingsControls.ColorChooserSetValue=function(a,c,b){if(b){var d=SocialCalc.Popup;b.def?d.SetValue(a[c].id,""):d.SetValue(a[c].id,b.val)}else alert(c+" no value")}; -SocialCalc.SettingsControls.ColorChooserGetValue=function(a,c){var b=SocialCalc.Popup.GetValue(a[c].id);return b?{def:!1,val:b}:{def:!0,val:0}};SocialCalc.SettingsControls.ColorChooserInitialize=function(a,c){SocialCalc.Popup.Create("ColorChooser",a[c].id,{});SocialCalc.Popup.Initialize(a[c].id,{attribs:{title:" ",moveable:!0,width:"106px",changedcallback:SocialCalc.SettingsControls.PopupChangeCallback,panelobj:a}})};SocialCalc.SettingsControls.ColorChooserReset=function(){SocialCalc.Popup.Reset("ColorChooser")}; +SocialCalc.SettingsControls.ColorChooserGetValue=function(a,c){var b=SocialCalc.Popup.GetValue(a[c].id);return b?{def:false,val:b}:{def:true,val:0}};SocialCalc.SettingsControls.ColorChooserInitialize=function(a,c){SocialCalc.Popup.Create("ColorChooser",a[c].id,{});SocialCalc.Popup.Initialize(a[c].id,{attribs:{title:" ",moveable:true,width:"106px",changedcallback:SocialCalc.SettingsControls.PopupChangeCallback,panelobj:a}})};SocialCalc.SettingsControls.ColorChooserReset=function(){SocialCalc.Popup.Reset("ColorChooser")}; SocialCalc.SettingsControls.Controls.ColorChooser={SetValue:SocialCalc.SettingsControls.ColorChooserSetValue,GetValue:SocialCalc.SettingsControls.ColorChooserGetValue,Initialize:SocialCalc.SettingsControls.ColorChooserInitialize,OnReset:SocialCalc.SettingsControls.ColorChooserReset,ChangedCallback:null}; -SocialCalc.SettingsControls.BorderSideSetValue=function(a,c,b){a=a[c].id;if(b){if(c=document.getElementById(a+"-onoff-bcb"))b.val?(c.checked=!0,c.value=b.val,b=b.val.match(/(\S+)\s+(\S+)\s+(\S.+)/),a+="-color",SocialCalc.Popup.SetValue(a,b[3]),SocialCalc.Popup.SetDisabled(a,!1)):(c.checked=!1,c.value=b.val,a+="-color",SocialCalc.Popup.SetValue(a,""),SocialCalc.Popup.SetDisabled(a,!0))}else alert(c+" no value")}; -SocialCalc.SettingsControls.BorderSideGetValue=function(a,c){var b,d=a[c].id;if(b=document.getElementById(d+"-onoff-bcb"))return b.checked?(b=SocialCalc.Popup.GetValue(d+"-color"),{def:!1,val:"1px solid "+(b||"rgb(0,0,0)")}):{def:!1,val:""}}; -SocialCalc.SettingsControls.BorderSideInitialize=function(a,c){var b=a[c].id;SocialCalc.Popup.Create("ColorChooser",b+"-color",{});SocialCalc.Popup.Initialize(b+"-color",{attribs:{title:" ",width:"106px",moveable:!0,changedcallback:SocialCalc.SettingsControls.PopupChangeCallback,panelobj:a}})}; -SocialCalc.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:""})}}}; +SocialCalc.SettingsControls.BorderSideSetValue=function(a,c,b){a=a[c].id;if(b){if(c=document.getElementById(a+"-onoff-bcb"))if(b.val){c.checked=true;c.value=b.val;b=b.val.match(/(\S+)\s+(\S+)\s+(\S.+)/);a=a+"-color";SocialCalc.Popup.SetValue(a,b[3]);SocialCalc.Popup.SetDisabled(a,false)}else{c.checked=false;c.value=b.val;a=a+"-color";SocialCalc.Popup.SetValue(a,"");SocialCalc.Popup.SetDisabled(a,true)}}else alert(c+" no value")}; +SocialCalc.SettingsControls.BorderSideGetValue=function(a,c){var b,d=a[c].id;if(b=document.getElementById(d+"-onoff-bcb")){if(b.checked){b=SocialCalc.Popup.GetValue(d+"-color");return{def:false,val:"1px solid "+(b||"rgb(0,0,0)")}}return{def:false,val:""}}}; +SocialCalc.SettingsControls.BorderSideInitialize=function(a,c){var b=a[c].id;SocialCalc.Popup.Create("ColorChooser",b+"-color",{});SocialCalc.Popup.Initialize(b+"-color",{attribs:{title:" ",width:"106px",moveable:true,changedcallback:SocialCalc.SettingsControls.PopupChangeCallback,panelobj:a}})}; +SocialCalc.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:false,val:a.value||"1px solid rgb(0,0,0)"}):c.Controls[b].SetValue(c.CurrentPanel,e,{def:false,val:""})}}}; SocialCalc.SettingsControls.Controls.BorderSide={SetValue:SocialCalc.SettingsControls.BorderSideSetValue,GetValue:SocialCalc.SettingsControls.BorderSideGetValue,OnClick:SocialCalc.SettingsControls.ColorComboOnClick,Initialize:SocialCalc.SettingsControls.BorderSideInitialize,InitialData:{thickness:"1 pixel:1px",style:"Solid:solid"},ChangedCallback:null};SocialCalc.SettingControlReset=function(){var a=SocialCalc.SettingsControls,c;for(c in a.Controls)a.Controls[c].OnReset&&a.Controls[c].OnReset(c)}; SocialCalc.OtherSaveParts={}; -SocialCalc.CtrlSEditor=function(a){var c,b;if(a.length>0)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+'



';document.body.appendChild(b);a=document.getElementById("socialcalc-editbox-textarea");a.focus();SocialCalc.CmdGotFocus(a)};SocialCalc.CtrlSEditorDone=function(a,c){var b=document.getElementById(a+"-textarea").value;c.length>0&&(b.length>0?SocialCalc.OtherSaveParts[c]=b:delete SocialCalc.OtherSaveParts[c]);b=document.getElementById(a);SocialCalc.KeyboardFocus();b.parentNode.removeChild(b)};(function(){Class=function(a,c){if(!a)throw"Class requires a class definition string as its first argument";if(!c)throw"Class requires a class wrapper function as its second argument";if(!a.match(/^([\w\.]+)(?:\(\s*([\w\.]+)\s*\))?(?:\s+(.*?)\s*)?$/))throw"Can't parse Class Definition: '"+a+"'";var b=RegExp.$1,d=RegExp.$2||"",e=[];RegExp.$3&&(e=RegExp.$3.split(/\s+/));for(var g=[],h=!0,j=0,k=e.length;j";break;case "html":this.output+='Raw HTML section. Edit in Wiki Text mode.';break;case "waflparagraph":case "waflphrase":case "im":if(a._wafl.match(/^image:\s*(\S+)(?:\s+size=(\w+))?/)){var a="if (typeof(ss) != 'undefined' && ss.editor) { var recalc = function () { try { ss.editor.DoPositionCalculations() } catch (e) { setTimeout(recalc, 500) } }; recalc() } if (!window.image_dimension_cache) window.image_dimension_cache = {};window.image_dimension_cache['/data/wafl/"+ +SocialCalc.CtrlSEditor=function(a){var c,b;if(a.length>0)c=SocialCalc.special_chars(SocialCalc.OtherSaveParts[a]||"");else{c="Listing of Parts\n";for(b in SocialCalc.OtherSaveParts)c=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+'



';document.body.appendChild(b);a=document.getElementById("socialcalc-editbox-textarea");a.focus();SocialCalc.CmdGotFocus(a)};SocialCalc.CtrlSEditorDone=function(a,c){var b=document.getElementById(a+"-textarea").value;c.length>0&&(b.length>0?SocialCalc.OtherSaveParts[c]=b:delete SocialCalc.OtherSaveParts[c]);b=document.getElementById(a);SocialCalc.KeyboardFocus();b.parentNode.removeChild(b)};SocialCalc||(alert("Main SocialCalc code module needed"),SocialCalc={});SocialCalc.TableEditor||alert("SocialCalc TableEditor code module needed");SocialCalc.CurrentSpreadsheetViewerObject=null; +SocialCalc.SpreadsheetViewer=function(){var a=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="SocialCalc-";this.imagePrefix=a.defaultImagePrefix;this.statuslineheight=a.SVStatuslineheight;this.statuslineCSS=a.SVStatuslineCSS;this.sheet=new SocialCalc.Sheet;this.context=new SocialCalc.RenderContext(this.sheet); +this.context.showGrid=true;this.context.showRCHeaders=true;this.editor=new SocialCalc.TableEditor(this.context);this.editor.noEdit=true;this.editor.StatusCallback.statusline={func:SocialCalc.SpreadsheetViewerStatuslineCallback,params:{}};this.hasStatusLine=true;this.statuslineHTML='
{status} 
';this.noRecalc=this.statuslineFull=true;this.repeatingMacroTimer=null;this.repeatingMacroInterval= +60;this.repeatingMacroCommands="";SocialCalc.CurrentSpreadsheetViewerObject=this};SocialCalc.SpreadsheetViewer.prototype.InitializeSpreadsheetViewer=function(a,c,b,d){return SocialCalc.InitializeSpreadsheetViewer(this,a,c,b,d)};SocialCalc.SpreadsheetViewer.prototype.LoadSave=function(a){return SocialCalc.SpreadsheetViewerLoadSave(this,a)};SocialCalc.SpreadsheetViewer.prototype.DoOnResize=function(){return SocialCalc.DoOnResize(this)};SocialCalc.SpreadsheetViewer.prototype.SizeSSDiv=function(){return SocialCalc.SizeSSDiv(this)}; +SocialCalc.SpreadsheetViewer.prototype.DecodeSpreadsheetSave=function(a){return SocialCalc.SpreadsheetViewerDecodeSpreadsheetSave(this,a)};SocialCalc.SpreadsheetViewer.prototype.ParseSheetSave=function(a){return this.sheet.ParseSheetSave(a)}; +SocialCalc.InitializeSpreadsheetViewer=function(a,c,b,d,e){a.requestedHeight=b;a.requestedWidth=d;a.requestedSpaceBelow=e;typeof c=="string"&&(c=document.getElementById(c));c==null&&alert("SocialCalc.SpreadsheetControl not given parent node.");a.parentNode=c;a.spreadsheetDiv=document.createElement("div");a.SizeSSDiv();for(b=c.firstChild;b!=null;b=c.firstChild)c.removeChild(b);c.appendChild(a.spreadsheetDiv);a.nonviewheight=a.hasStatusLine?a.statuslineheight:0;a.viewheight=a.height-a.nonviewheight; +a.editorDiv=a.editor.CreateTableEditor(a.width,a.viewheight);a.spreadsheetDiv.appendChild(a.editorDiv);if(a.hasStatusLine){a.statuslineDiv=document.createElement("div");a.statuslineDiv.style.cssText=a.statuslineCSS;a.statuslineDiv.style.height=a.statuslineheight-(a.statuslineDiv.style.paddingTop.slice(0,-2)-0)-(a.statuslineDiv.style.paddingBottom.slice(0,-2)-0)+"px";a.statuslineDiv.id=a.idPrefix+"statusline";a.spreadsheetDiv.appendChild(a.statuslineDiv);a.editor.StatusCallback.statusline={func:SocialCalc.SpreadsheetViewerStatuslineCallback, +params:{spreadsheetobj:a}}}}; +SocialCalc.SpreadsheetViewerLoadSave=function(a,c){var b,d,e;if(b=a.DecodeSpreadsheetSave(c)){if(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),false,true);if(b.repeatingmacro){b=c.substring(b.repeatingmacro.start,b.repeatingmacro.end);b=b.replace("\r","");d=b.indexOf("\n"); +if(d>0){e=b.substring(0,d)-0;a.repeatingMacroInterval=e;a.repeatingMacroCommands=b.substring(d+1);if(e>0)a.repeatingMacroTimer=window.setTimeout(SocialCalc.SpreadsheetViewerDoRepeatingMacro,a.repeatingMacroInterval*1E3)}}}a.editor.context.sheetobj.attribs.recalc=="off"||a.noRecalc?a.editor.ScheduleRender():a.editor.EditorScheduleSheetCommands("recalc")}; +SocialCalc.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)}; +SocialCalc.SpreadsheetViewerRepeatMacroCommand=function(a,c,b,d){a=SocialCalc.GetSpreadsheetViewerObject();d=d.RestOfString()-0;if(!(d>0))d=a.repeatingMacroInterval;a.repeatingMacroInterval=d;a.repeatingMacroTimer=window.setTimeout(SocialCalc.SpreadsheetViewerDoRepeatingMacro,a.repeatingMacroInterval*1E3)}; +SocialCalc.SpreadsheetViewerStopRepeatingMacro=function(){var a=SocialCalc.GetSpreadsheetViewerObject();if(a.repeatingMacroTimer){window.clearTimeout(a.repeatingMacroTimer);a.repeatingMacroTimer=null}};SocialCalc.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()}; +SocialCalc.LocalizeString=function(a){var c=SocialCalc.LocalizeStringList[a];if(!c){c=SocialCalc.Constants["s_loc_"+a.toLowerCase().replace(/\s/g,"_").replace(/\W/g,"X")]||a;SocialCalc.LocalizeStringList[a]=c}return c};SocialCalc.LocalizeStringList={};SocialCalc.LocalizeSubstrings=function(a){var c=SocialCalc.LocalizeString;return a.replace(/%(loc|ssc)!(.*?)!/g,function(a,d,e){return d=="ssc"?SocialCalc.Constants[e]||alert("Missing constant: "+e):c(e)})}; +SocialCalc.GetSpreadsheetViewerObject=function(){var a=SocialCalc.CurrentSpreadsheetViewerObject;if(a)return a;throw"No current SpreadsheetViewer object.";};SocialCalc.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)}}; +SocialCalc.SizeSSDiv=function(a){var c,b,d,e;d=false;c=SocialCalc.GetViewportInfo();b=SocialCalc.GetElementPosition(a.parentNode);b.bottom=0;b.right=0;e=a.parentNode.style;if(e.marginTop)b.top=b.top+(e.marginTop.slice(0,-2)-0);if(e.marginBottom)b.bottom=b.bottom+(e.marginBottom.slice(0,-2)-0);if(e.marginLeft)b.left=b.left+(e.marginLeft.slice(0,-2)-0);if(e.marginRight)b.right=b.right+(e.marginRight.slice(0,-2)-0);e=a.requestedHeight||c.height-(b.top+b.bottom+10)-(a.requestedSpaceBelow||0);if(a.height!= +e){a.height=e;a.spreadsheetDiv.style.height=e+"px";d=true}e=a.requestedWidth||c.width-(b.left+b.right+10)||700;if(a.width!=e){a.width=e;a.spreadsheetDiv.style.width=e+"px";d=true}return d};SocialCalc.SpreadsheetViewerStatuslineCallback=function(a,c,b,d){var e=d.spreadsheetobj,g="";if(e&&e.statuslineDiv){g=e.statuslineFull?a.GetStatuslineString(c,b,d):a.ecell.coord;g=e.statuslineHTML.replace(/\{status\}/,g);e.statuslineDiv.innerHTML=g}}; +SocialCalc.CmdGotFocus=function(a){SocialCalc.Keyboard.passThru=a};SocialCalc.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}; +SocialCalc.SpreadsheetViewerDecodeSpreadsheetSave=function(a,c){var b,d,e,g,h,j,k,m={},n=[];/[^\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(b<0)return m;d=/^Content-Type:\s*multipart\/mixed;\s*boundary=(\S+)/mig;d.lastIndex=b;e=d.exec(c);if(d.lastIndex<=0)return m;b=e[1];g=RegExp("^--"+b+"(?:\r\n|\n)","mg");g.lastIndex=d.lastIndex;g.exec(c);d=/(?:\r\n|\n)(?:\r\n|\n)/gm;d.lastIndex=g.lastIndex;e=d.exec(c);if(!e)return m;h=d.lastIndex;g.lastIndex= +h;e=g.exec(c);if(!e)return m;e=e.index;h=c.substring(h,e).split(/\r\n|\n/);for(j=0;j";break;case "html":this.output+='Raw HTML section. Edit in Wiki Text mode.';break;case "waflparagraph":case "waflphrase":case "im":if(a._wafl.match(/^image:\s*(\S+)(?:\s+size=(\w+))?/)){var a="if (typeof(ss) != 'undefined' && ss.editor) { var recalc = function () { try { ss.editor.DoPositionCalculations() } catch (e) { setTimeout(recalc, 500) } }; recalc() } if (!window.image_dimension_cache) window.image_dimension_cache = {};window.image_dimension_cache['/data/wafl/"+ a._label.replace(/&/g,"&").replace(/"/g,""").replace(//g,">").replace(/'/g,"\\'").replace(/\\/g,"\\\\")+"'] = [ this.offsetWidth, this.offsetHeight ]; this.style.width = this.offsetWidth + 'px'; this.style.height = this.offsetHeight + 'px'",b=RegExp.$1,d=RegExp.$2;switch(d){case "small":d="100";break;case "medium":d="300";break;case "large":d="600"}d&&(d=' width="'+d+'"');this.output+='/g, ">")+'" onload="'+a+'"'+d+" />";break}this.output+=''+a._label.replace(/&/g,"&").replace(/"/g,""").replace(//g,">").replace(/'/g,"\\'").replace(/\\/g,"\\\\")+"";break;case "a":case "wikilink":this.output+='';break;case "file":this.output+='';break;case "ul":case "ol":case "table":case "tr":this.output+="<"+b+">\n";break;default:this.output+="<"+ -b+">"}};a.end_node=function(a){a=a.type;switch(a){case "asis":case "br":case "hr":case "html":case "waflparagraph":case "waflphrase":case "im":break;case "line":this.output+="
";break;case "file":case "wikilink":this.output+="
";break;default:this.output+=a.search(/^(?:p|ul|ol|li|h\d|table|tr|td)$/)==0?"\n":""}};a.text_node=function(a){this.output+=a.replace(/&/g,"&").replace(/>/g,">").replace(/"}};a.end_node=function(a){a=a.type;switch(a){case "asis":case "br":case "hr":case "html":case "waflparagraph":case "waflphrase":case "im":break;case "line":this.output+="
";break;case "file":case "wikilink":this.output+="";break;default:this.output=0==a.search(/^(?:p|ul|ol|li|h\d|table|tr|td)$/)?this.output+("\n"):this.output+("")}};a.text_node=function(a){this.output+=a.replace(/&/g,"&").replace(/>/g,">").replace(/=b)throw this.classname+": Reduction error for:\n"+this.input+"\n"+JSON.stringify(this);}};a.handle_match=function(a,b){var d=this.grammar[a];this.subparse(d.blocks?"parse_blocks":"parse_phrases",b,a,d.filter)};a.find_match=function(a,b){var d=this.grammar[b].match;if(!d)throw"no regexp for type: "+b;if(d=this.input.match(d))return d=this[a].call(this, -d,this.grammar[b].lookbehind),d.type=this.grammar[b].type||b,d};a.parse_phrases=function(a){if(a=this.grammar[a].phrases)for(;this.input.length;){for(var b=null,d=0;d\\)]+))");j=function(a,c){var b=RegExp("(^|\n)"+c+" *","g");return{match:RegExp("^("+a+"+ .*\n(?:[*-+#]+ .*\n)*)(?:s*\n)?"),blocks:["ul","ol","subl","li"],filter:function(a){return a.text.replace(b,"$1")}}};return{_all_blocks:a,_all_phrases:b,top:{blocks:a},ol:j("#","[*#]"), -ul:j("[-+*]","[-+*#]"),blockquote:{match:/^((?:>[^\n]*\n)+)(?:\s*\n)?/,blocks:["blockquote","line"],filter:function(a){return a.text.replace(/(^|\n)>\ ?/g,"$1")}},line:{match:/([^\n]*)\n/,phrases:b},subl:{type:"li",match:/^(([^\n]*)\n[*#]+\ [^\n]*\n(?:[*#]+\ [^\n]*\n)*)(?:\s*\n)?/,blocks:["ul","ol","li2"]},li:{match:/([^\n]*)\n/,phrases:b},li2:{type:"",match:/([^\n]*)\n/,phrases:b},html:{match:/^(\.html\ *\n(?:[^\n]*\n)*?\.html)\ *\n(?:\s*\n)?/,filter:function(a){a._html=a.text;return""}},pre:{match:/^\.pre\ *\n((?:[^\n]*\n)*?)\.pre\ *\n(?:\s*\n)?/}, -hr:{match:/^--+(?:\s*\n)?/},hx:{match:/^((\^+) *([^\n]*?)(\s+=+)?\s*?\n+)/,phrases:b,filter:function(a){a.type="h"+a["1"].length;return a[2]}},p:{match:/^((?:(?!(?:(?:\^+|\#+|\*+|\-+) |\>|\.\w+\s*\n|\{[^\}]+\}\s*\n))[^\n]*\S[^\n]*\n)+(?:(?=^|\n)\s*\n)*)/,phrases:b,filter:function(a){return a.text.replace(/\n$/,"")}},empty:{match:/^(\s*\n)/,filter:function(a){a.type=""}},"else":{match:/^(([^\n]*)\n)/,phrases:[],filter:function(a){a.type="p"}},waflparagraph:{match:/^\{(.*)\}[\ \t]*\n(?:\s*\n)?/,filter:function(a){a._wafl= -a._label=a.text;return""}},waflphrase:{match:/(?:^|[\s\-])((?:"([^\n]+?)")?\{([\w-]+(?=[\:\ \}])(?:\s*:)?\s*[^\n]*?\s*)\}(?=[\W_]|$))/,filter:function(a){a._wafl=a[2];a._label=a[1]||a._wafl;return""},lookbehind:!0},asis:{match:/(\{\{([^\n]*?)\}\}(\}*))/,filter:function(a){a.type="";return a[1]+a[2]}},wikilink:{match:/(?:^|[_\W])(\[()(?=[^\s\[\]])(.*?)\](?=[_\W]|$))/,filter:function(a){a._href="?"+a[2];return a.text||a[2]},lookbehind:!0},wikilink2:{type:"wikilink",match:/(?:"([^"]*)"\s*)(\[(?=[^\s\[\]])(.*?)\](?=[_\W]|$))/, +d,this.grammar[b].lookbehind),d.type=this.grammar[b].type||b,d};a.parse_phrases=function(a){if(a=this.grammar[a].phrases)for(;this.input.length;){for(var b=null,d=0;d\\)]+))");j=function(a,c){var b=RegExp("(^|\n)"+c+" *","g");return{match:RegExp("^("+a+"+ .*\n(?:[*-+#]+ .*\n)*)(?:s*\n)?"),blocks:["ul","ol","subl","li"],filter:function(a){return a.text.replace(b,"$1")}}};return{_all_blocks:a,_all_phrases:b,top:{blocks:a},ol:j("#","[*#]"),ul:j("[-+*]","[-+*#]"),blockquote:{match:/^((?:>[^\n]*\n)+)(?:\s*\n)?/, +blocks:["blockquote","line"],filter:function(a){return a.text.replace(/(^|\n)>\ ?/g,"$1")}},line:{match:/([^\n]*)\n/,phrases:b},subl:{type:"li",match:/^(([^\n]*)\n[*#]+\ [^\n]*\n(?:[*#]+\ [^\n]*\n)*)(?:\s*\n)?/,blocks:["ul","ol","li2"]},li:{match:/([^\n]*)\n/,phrases:b},li2:{type:"",match:/([^\n]*)\n/,phrases:b},html:{match:/^(\.html\ *\n(?:[^\n]*\n)*?\.html)\ *\n(?:\s*\n)?/,filter:function(a){a._html=a.text;return""}},pre:{match:/^\.pre\ *\n((?:[^\n]*\n)*?)\.pre\ *\n(?:\s*\n)?/},hr:{match:/^--+(?:\s*\n)?/}, +hx:{match:/^((\^+) *([^\n]*?)(\s+=+)?\s*?\n+)/,phrases:b,filter:function(a){a.type="h"+a["1"].length;return a[2]}},p:{match:/^((?:(?!(?:(?:\^+|\#+|\*+|\-+) |\>|\.\w+\s*\n|\{[^\}]+\}\s*\n))[^\n]*\S[^\n]*\n)+(?:(?=^|\n)\s*\n)*)/,phrases:b,filter:function(a){return a.text.replace(/\n$/,"")}},empty:{match:/^(\s*\n)/,filter:function(a){a.type=""}},"else":{match:/^(([^\n]*)\n)/,phrases:[],filter:function(a){a.type="p"}},waflparagraph:{match:/^\{(.*)\}[\ \t]*\n(?:\s*\n)?/,filter:function(a){a._wafl=a._label= +a.text;return""}},waflphrase:{match:/(?:^|[\s\-])((?:"([^\n]+?)")?\{([\w-]+(?=[\:\ \}])(?:\s*:)?\s*[^\n]*?\s*)\}(?=[\W_]|$))/,filter:function(a){a._wafl=a[2];a._label=a[1]||a._wafl;return""},lookbehind:!0},asis:{match:/(\{\{([^\n]*?)\}\}(\}*))/,filter:function(a){a.type="";return a[1]+a[2]}},wikilink:{match:/(?:^|[_\W])(\[()(?=[^\s\[\]])(.*?)\](?=[_\W]|$))/,filter:function(a){a._href="?"+a[2];return a.text||a[2]},lookbehind:!0},wikilink2:{type:"wikilink",match:/(?:"([^"]*)"\s*)(\[(?=[^\s\[\]])(.*?)\](?=[_\W]|$))/, filter:function(a){a._href="?"+a[2];return a[1]||a[2]}},a:{match:/((?:"([^"]*)"\s*)??)/,filter:function(a){a._href=a[2];return a[1]||a[2]}},file:{match:/((?:"([^"]*)")?<(\\\\[^\s\>\)]+)>)/,filter:function(a){var c=a[2].replace(/^\\\\/,"");a._href="file://"+c.replace(/\\/g,"/");return a["1"]||c}},im:{match:RegExp(h),filter:function(a){a._wafl=a[1]+": "+a[2];a._label=(g[e[a[1]]]||"%1").replace(/%1/g, -a[2]);return""}},mail:{match:/([\w+%\-\.]+@(?:[\w\-]+\.)+[\w\-]+)/,filter:function(a){a.type="a";a._href="mailto:"+a.text.replace(/%/g,"%25")}},tt:d("`"),b:d("*"),i:d("_"),del:d("-")}}});(function(a,c){function b(a){return l.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function d(a){if(!ga[a]){var c=v.body,b=l("<"+a+">").appendTo(c),d=b.css("display");b.remove();if(d==="none"||d===""){N||(N=v.createElement("iframe"),N.frameBorder=N.width=N.height=0);c.appendChild(N);if(!U||!N.createElement)U=(N.contentWindow||N.contentDocument).document,U.write((v.compatMode==="CSS1Compat"?"":"")+""),U.close();b=U.createElement(a);U.body.appendChild(b); -d=l.css(b,"display");c.removeChild(N)}ga[a]=d}return ga[a]}function e(a,c){var b={};l.each(ra.concat.apply([],ra.slice(0,c)),function(){b[this]=a});return b}function g(){ba=c}function h(){setTimeout(g,0);return ba=l.now()}function j(){try{return new a.XMLHttpRequest}catch(c){}}function k(a,c,b,d){if(l.isArray(c))l.each(c,function(c,e){b||Ra.test(a)?d(a,e):k(a+"["+(typeof e=="object"||l.isArray(e)?c:"")+"]",e,b,d)});else if(!b&&c!=null&&typeof c=="object")for(var e in c)k(a+"["+e+"]",c[e],b,d);else d(a, -c)}function m(a,b,d,e,g,h){g=g||b.dataTypes[0];h=h||{};h[g]=!0;for(var g=a[g],j=0,k=g?g.length:0,l=a===ha,n;j0)return b!=="border"&&l.each(e,function(){b||(d-=parseFloat(l.css(a,"padding"+this))||0);b==="margin"?d+=parseFloat(l.css(a,b+this))||0:d-=parseFloat(l.css(a,"border"+this+"Width"))||0}),d+"px";d=V(a,c,c);if(d<0||d==null)d=a.style[c]||0;d=parseFloat(d)||0;b&&l.each(e,function(){d+=parseFloat(l.css(a,"padding"+this))||0;b!=="padding"&&(d+=parseFloat(l.css(a,"border"+this+"Width"))||0);b==="margin"&&(d+=parseFloat(l.css(a, -b+this))||0)});return d+"px"}function q(a,c){c.src?l.ajax({url:c.src,async:!1,dataType:"script"}):l.globalEval((c.text||c.textContent||c.innerHTML||"").replace(Ua,"/*$0*/"));c.parentNode&&c.parentNode.removeChild(c)}function p(a){l.nodeName(a,"input")?r(a):"getElementsByTagName"in a&&l.grep(a.getElementsByTagName("input"),r)}function r(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function u(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in -a?a.querySelectorAll("*"):[]}function t(a,c){var b;if(c.nodeType===1){c.clearAttributes&&c.clearAttributes();c.mergeAttributes&&c.mergeAttributes(a);b=c.nodeName.toLowerCase();if(b==="object")c.outerHTML=a.outerHTML;else if(b!=="input"||a.type!=="checkbox"&&a.type!=="radio")if(b==="option")c.selected=a.defaultSelected;else{if(b==="input"||b==="textarea")c.defaultValue=a.defaultValue}else a.checked&&(c.defaultChecked=c.checked=a.checked),c.value!==a.value&&(c.value=a.value);c.removeAttribute(l.expando)}} -function w(a,c){if(c.nodeType===1&&l.hasData(a)){var b=l.expando,d=l.data(a),e=l.data(c,d);if(d=d[b]){var g=d.events,e=e[b]=l.extend({},d);if(g){delete e.handle;e.events={};for(var h in g){b=0;for(d=g[h].length;b=0===b})}function y(a,c){return(a&&a!=="*"?a+".":"")+c.replace(Wa,"`").replace(Xa,"&")}function z(a){var c,b,d,e,g,h,j,k,m,n,p,q=[];e=[];g=l._data(this,"events");if(!(a.liveFired===this||!g||!g.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(p=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)"));a.liveFired=this;var s= -g.live.slice(0);for(j=0;jb)break;a.currentTarget=e.elem;a.data=e.handleObj.data;a.handleObj=e.handleObj;p=e.handleObj.origHandler.apply(e.elem,arguments);if(p===!1||a.isPropagationStopped())if(b=e.level,p===!1&&(c=!1),a.isImmediatePropagationStopped())break}return c}}function B(a,b,d){var e=l.extend({},d[0]);e.type=a;e.originalEvent={};e.liveFired=c;l.event.handle.call(b,e);e.isDefaultPrevented()&&d[0].preventDefault()}function A(){return!0}function E(){return!1}function J(a, -b,d){var e=b+"defer",g=b+"queue",h=b+"mark",j=l.data(a,e,c,!0);j&&(d==="queue"||!l.data(a,g,c,!0))&&(d==="mark"||!l.data(a,h,c,!0))&&setTimeout(function(){!l.data(a,g,c,!0)&&!l.data(a,h,c,!0)&&(l.removeData(a,e,!0),j.resolve())},0)}function G(a){for(var c in a)if(c!=="toJSON")return!1;return!0}function I(a,b,d){if(d===c&&a.nodeType===1)if(d="data-"+b.replace(Oa,"$1-$2").toLowerCase(),d=a.getAttribute(d),typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:l.isNaN(d)?Na.test(d)?l.parseJSON(d): -d:parseFloat(d)}catch(e){}l.data(a,b,d)}else d=c;return d}var v=a.document,D=a.navigator,C=a.location,l=function(){function b(){if(!d.isReady){try{v.documentElement.doScroll("left")}catch(a){setTimeout(b,1);return}d.ready()}}var d=function(a,c){return new d.fn.init(a,c,h)},e=a.jQuery,g=a.$,h,j=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,k=/\S/,l=/^\s+/,m=/\s+$/,n=/\d/,p=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,q=/^[\],:{}\s]*$/,s=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,r=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, -t=/(?:^|:|,)(?:\s*\[)+/g,u=/(webkit)[ \/]([\w.]+)/,w=/(opera)(?:.*version)?[ \/]([\w.]+)/,x=/(msie) ([\w.]+)/,y=/(mozilla)(?:.*? rv:([\w.]+))?/,Za=/-([a-z])/ig,$a=function(a,c){return c.toUpperCase()},Z=D.userAgent,ca,W,ab=Object.prototype.toString,z=Object.prototype.hasOwnProperty,ja=Array.prototype.push,A=Array.prototype.slice,B=String.prototype.trim,C=Array.prototype.indexOf,E={};d.fn=d.prototype={constructor:d,init:function(a,b,e){var g,h;if(!a)return this;if(a.nodeType)return this.context=this[0]= -a,this.length=1,this;if(a==="body"&&!b&&v.body)return this.context=v,this[0]=v.body,this.selector=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=j.exec(a):g=[null,a,null];if(g&&(g[1]||!b)){if(g[1])return h=(b=b instanceof d?b[0]:b)?b.ownerDocument||b:v,(e=p.exec(a))?d.isPlainObject(b)?(a=[v.createElement(e[1])],d.fn.attr.call(a,b,!0)):a=[h.createElement(e[1])]:(e=d.buildFragment([g[1]],[h]),a=(e.cacheable?d.clone(e.fragment):e.fragment).childNodes), -d.merge(this,a);if((b=v.getElementById(g[2]))&&b.parentNode){if(b.id!==g[2])return e.find(a);this.length=1;this[0]=b}this.context=v;this.selector=a;return this}return!b||b.jquery?(b||e).find(a):this.constructor(b).find(a)}if(d.isFunction(a))return e.ready(a);a.selector!==c&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return A.call(this,0)},get:function(a){return a==null?this.toArray(): -a<0?this[this.length+a]:this[a]},pushStack:function(a,c,b){var e=this.constructor();d.isArray(a)?ja.apply(e,a):d.merge(e,a);e.prevObject=this;e.context=this.context;c==="find"?e.selector=this.selector+(this.selector?" ":"")+b:c&&(e.selector=this.selector+"."+c+"("+b+")");return e},each:function(a,c){return d.each(this,a,c)},ready:function(a){d.bindReady();ca.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)}, -slice:function(){return this.pushStack(A.apply(this,arguments),"slice",A.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(c,b){return a.call(c,b,c)}))},end:function(){return this.prevObject||this.constructor(null)},push:ja,sort:[].sort,splice:[].splice};d.fn.init.prototype=d.fn;d.extend=d.fn.extend=function(){var a,b,e,g,h,F,j=arguments[0]||{},k=1,l=arguments.length,P=!1;typeof j=="boolean"&&(P=j,j=arguments[1]||{},k=2);typeof j!="object"&&!d.isFunction(j)&&(j= -{});for(l===k&&(j=this,--k);k0||(ca.resolveWith(v,[d]),d.fn.trigger&&d(v).trigger("ready").unbind("ready"))}},bindReady:function(){if(!ca){ca=d._Deferred();if(v.readyState==="complete")return setTimeout(d.ready,1);if(v.addEventListener)v.addEventListener("DOMContentLoaded",W,!1),a.addEventListener("load",d.ready,!1);else if(v.attachEvent){v.attachEvent("onreadystatechange",W);a.attachEvent("onload",d.ready);var c=!1;try{c=a.frameElement==null}catch(e){}v.documentElement.doScroll&&c&&b()}}}, -isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!n.test(a)||isNaN(a)},type:function(a){return a==null?String(a):E[ab.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!z.call(a,"constructor")&&!z.call(a.constructor.prototype,"isPrototypeOf"))return!1; -for(var b in a);return b===c||z.call(a,b)},isEmptyObject:function(a){for(var c in a)return!1;return!0},error:function(a){throw a;},parseJSON:function(c){if(typeof c!="string"||!c)return null;c=d.trim(c);if(a.JSON&&a.JSON.parse)return a.JSON.parse(c);if(q.test(c.replace(s,"@").replace(r,"]").replace(t,"")))return(new Function("return "+c))();d.error("Invalid JSON: "+c)},parseXML:function(c,b,e){a.DOMParser?(e=new DOMParser,b=e.parseFromString(c,"text/xml")):(b=new ActiveXObject("Microsoft.XMLDOM"), -b.async="false",b.loadXML(c));e=b.documentElement;(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+c);return b},noop:function(){},globalEval:function(c){c&&k.test(c)&&(a.execScript||function(c){a.eval.call(a,c)})(c)},camelCase:function(a){return a.replace(Za,$a)},nodeName:function(a,c){return a.nodeName&&a.nodeName.toUpperCase()===c.toUpperCase()},each:function(a,b,e){var g,h=0,F=a.length,j=F===c||d.isFunction(a);if(e)if(j)for(g in a){if(b.apply(a[g],e)===!1)break}else for(;h< -F;){if(b.apply(a[h++],e)===!1)break}else if(j)for(g in a){if(b.call(a[g],g,a[g])===!1)break}else for(;h0&&a[0]&&a[k-1]||k===0||d.isArray(a)))for(;j1?pa.call(arguments,0):c;--g|| -h.resolveWith(h,pa.call(b,0))}}var b=arguments,d=0,e=b.length,g=e,h=e<=1&&a&&l.isFunction(a.promise)?a:l.Deferred();if(e>1){for(;d
a"; -b=a.getElementsByTagName("*");d=a.getElementsByTagName("a")[0];if(!b||!b.length||!d)return{};e=v.createElement("select");g=e.appendChild(v.createElement("option"));b=a.getElementsByTagName("input")[0];j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.55$/.test(d.style.opacity),cssFloat:!!d.style.cssFloat, -checkOn:b.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0};b.checked=!0;j.noCloneChecked=b.cloneNode(!0).checked;e.disabled=!0;j.optDisabled=!g.disabled;try{delete a.test}catch(m){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){j.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")); -b=v.createElement("input");b.value="t";b.setAttribute("type","radio");j.radioValue=b.value==="t";b.setAttribute("checked","checked");a.appendChild(b);d=v.createDocumentFragment();d.appendChild(a.firstChild);j.checkClone=d.cloneNode(!0).cloneNode(!0).lastChild.checked;a.innerHTML="";a.style.width=a.style.paddingLeft="1px";e=v.getElementsByTagName("body")[0];d=v.createElement(e?"div":"body");g={visibility:"hidden",width:0,height:0,border:0,margin:0};e&&l.extend(g,{position:"absolute",left:-1E3,top:-1E3}); -for(k in g)d.style[k]=g[k];d.appendChild(a);c=e||c;c.insertBefore(d,c.firstChild);j.appendChecked=b.checked;j.boxModel=a.offsetWidth===2;"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",j.shrinkWrapBlocks=a.offsetWidth!==2);a.innerHTML="
t
";e=a.getElementsByTagName("td");b=e[0].offsetHeight===0;e[0].style.display= -"";e[1].style.display="none";j.reliableHiddenOffsets=b&&e[0].offsetHeight===0;a.innerHTML="";v.defaultView&&v.defaultView.getComputedStyle&&(h=v.createElement("div"),h.style.width="0",h.style.marginRight="0",a.appendChild(h),j.reliableMarginRight=(parseInt((v.defaultView.getComputedStyle(h,null)||{marginRight:0}).marginRight,10)||0)===0);d.innerHTML="";c.removeChild(d);if(a.attachEvent)for(k in{submit:1,change:1,focusin:1})h="on"+k,(b=h in a)||(a.setAttribute(h,"return;"),b=typeof a[h]=="function"), -j[k+"Bubbles"]=b;d=d=e=g=e=h=a=b=null;return j}();l.boxModel=l.support.boxModel;var Na=/^(?:\{.*\}|\[.*\])$/,Oa=/([a-z])([A-Z])/g;l.extend({cache:{},uuid:0,expando:"jQuery"+(l.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?l.cache[a[l.expando]]:a[l.expando];return!!a&&!G(a)},data:function(a,b,d,e){if(l.acceptData(a)){var g=l.expando,h=typeof b=="string",j=a.nodeType,k=j?l.cache:a,m=j?a[l.expando]: -a[l.expando]&&l.expando;if(m&&(!e||!m||k[m][g])||!(h&&d===c)){m||(j?a[l.expando]=m=++l.uuid:m=l.expando);k[m]||(k[m]={},j||(k[m].toJSON=l.noop));if(typeof b=="object"||typeof b=="function")e?k[m][g]=l.extend(k[m][g],b):k[m]=l.extend(k[m],b);a=k[m];e&&(a[g]||(a[g]={}),a=a[g]);d!==c&&(a[l.camelCase(b)]=d);return b==="events"&&!a[b]?a[g]&&a[g].events:h?a[l.camelCase(b)]||a[b]:a}}},removeData:function(c,b,d){if(l.acceptData(c)){var e=l.expando,g=c.nodeType,h=g?l.cache:c,j=g?c[l.expando]:l.expando;if(h[j]){if(b){var k= -d?h[j][e]:h[j];if(k&&(delete k[b],!G(k)))return}if(d&&(delete h[j][e],!G(h[j])))return;b=h[j][e];l.support.deleteExpando||h!=a?delete h[j]:h[j]=null;b?(h[j]={},g||(h[j].toJSON=l.noop),h[j][e]=b):g&&(l.support.deleteExpando?delete c[l.expando]:c.removeAttribute?c.removeAttribute(l.expando):c[l.expando]=null)}}},_data:function(a,c,b){return l.data(a,c,b,!0)},acceptData:function(a){if(a.nodeName){var c=l.noData[a.nodeName.toLowerCase()];if(c)return c!==!0&&a.getAttribute("classid")===c}return!0}});l.fn.extend({data:function(a, -b){var d=null;if(typeof a=="undefined"){if(this.length&&(d=l.data(this[0]),this[0].nodeType===1))for(var e=this[0].attributes,g,h=0,j=e.length;h-1)return!0;return!1},val:function(a){var b,d,e=this[0];if(!arguments.length){if(e){if((b=l.valHooks[e.nodeName.toLowerCase()]||l.valHooks[e.type])&&"get"in b&&(d=b.get(e,"value"))!==c)return d;d=e.value;return typeof d=="string"?d.replace(Pa,""):d==null?"":d}return c}var g=l.isFunction(a);return this.each(function(d){var e=l(this),h;if(this.nodeType===1&&(g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h== -"number"?h+="":l.isArray(h)&&(h=l.map(h,function(a){return a==null?"":a+""})),b=l.valHooks[this.nodeName.toLowerCase()]||l.valHooks[this.type],!b||!("set"in b)||b.set(this,h,"value")===c))this.value=h})}});l.extend({valHooks:{option:{get:function(a){var c=a.attributes.value;return!c||c.specified?a.value:a.text}},select:{get:function(a){var c,b=a.selectedIndex,d=[],e=a.options,a=a.type==="select-one";if(b<0)return null;for(var g=a?b:0,h=a?b+1:e.length;g=0});b.length||(a.selectedIndex=-1);return b}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,b,d,e){var g=a.nodeType; -if(!a||g===3||g===8||g===2)return c;if(e&&b in l.attrFn)return l(a)[b](d);if(!("getAttribute"in a))return l.prop(a,b,d);var h,j;(e=g!==1||!l.isXMLDoc(a))&&(b=l.attrFix[b]||b,j=l.attrHooks[b],j||(ta.test(b)?j=ua:L&&b!=="className"&&(l.nodeName(a,"form")||db.test(b))&&(j=L)));if(d!==c){if(d===null)return l.removeAttr(a,b),c;if(j&&"set"in j&&e&&(h=j.set(a,d,b))!==c)return h;a.setAttribute(b,""+d);return d}if(j&&"get"in j&&e&&(h=j.get(a,b))!==null)return h;h=a.getAttribute(b);return h===null?c:h},removeAttr:function(a, -c){var b;a.nodeType===1&&(c=l.attrFix[c]||c,l.support.getSetAttribute?a.removeAttribute(c):(l.attr(a,c,""),a.removeAttributeNode(a.getAttributeNode(c))),ta.test(c)&&(b=l.propFix[c]||c)in a&&(a[b]=!1))},attrHooks:{type:{set:function(a,c){if(Qa.test(a.nodeName)&&a.parentNode)l.error("type property can't be changed");else if(!l.support.radioValue&&c==="radio"&&l.nodeName(a,"input")){var b=a.value;a.setAttribute("type",c);b&&(a.value=b);return c}}},tabIndex:{get:function(a){var b=a.getAttributeNode("tabIndex"); -return b&&b.specified?parseInt(b.value,10):bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:c}},value:{get:function(a,c){return L&&l.nodeName(a,"button")?L.get(a,c):c in a?a.value:null},set:function(a,c,b){if(L&&l.nodeName(a,"button"))return L.set(a,c,b);a.value=c}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder", -contenteditable:"contentEditable"},prop:function(a,b,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return c;var g,h;(e!==1||!l.isXMLDoc(a))&&(b=l.propFix[b]||b,h=l.propHooks[b]);return d!==c?h&&"set"in h&&(g=h.set(a,d,b))!==c?g:a[b]=d:h&&"get"in h&&(g=h.get(a,b))!==c?g:a[b]},propHooks:{}});ua={get:function(a,b){return l.prop(a,b)?b.toLowerCase():c},set:function(a,c,b){var d;c===!1?l.removeAttr(a,b):(d=l.propFix[b]||b,d in a&&(a[d]=!0),a.setAttribute(b,b.toLowerCase()));return b}};l.support.getSetAttribute|| -(l.attrFix=l.propFix,L=l.attrHooks.name=l.attrHooks.title=l.valHooks.button={get:function(a,b){var d;return(d=a.getAttributeNode(b))&&d.nodeValue!==""?d.nodeValue:c},set:function(a,c,b){if(a=a.getAttributeNode(b))return a.nodeValue=c}},l.each(["width","height"],function(a,c){l.attrHooks[c]=l.extend(l.attrHooks[c],{set:function(a,b){if(b==="")return a.setAttribute(c,"auto"),b}})}));l.support.hrefNormalized||l.each(["href","src","width","height"],function(a,b){l.attrHooks[b]=l.extend(l.attrHooks[b], -{get:function(a){a=a.getAttribute(b,2);return a===null?c:a}})});l.support.style||(l.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||c},set:function(a,c){return a.style.cssText=""+c}});l.support.optSelected||(l.propHooks.selected=l.extend(l.propHooks.selected,{get:function(){}}));l.support.checkOn||l.each(["radio","checkbox"],function(){l.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}});l.each(["radio","checkbox"],function(){l.valHooks[this]= -l.extend(l.valHooks[this],{set:function(a,c){if(l.isArray(c))return a.checked=l.inArray(l(a).val(),c)>=0}})});var ia=/\.(.*)$/,ka=/^(?:textarea|input|select)$/i,Wa=/\./g,Xa=/ /g,eb=/[^\w\s.|`]/g,fb=function(a){return a.replace(eb,"\\$&")};l.event={add:function(a,b,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler);d.guid||(d.guid=l.guid++);if(h=l._data(a)){var j=h.events,k=h.handle;j||(h.events=j={});k||(h.handle=k=function(a){return typeof l!= -"undefined"&&(!a||l.event.triggered!==a.type)?l.event.handle.apply(k.elem,arguments):c});k.elem=a;for(var b=b.split(" "),m,n=0,p;m=b[n++];){h=g?l.extend({},g):{handler:d,data:e};m.indexOf(".")>-1?(p=m.split("."),m=p.shift(),h.namespace=p.slice(0).sort().join(".")):(p=[],h.namespace="");h.type=m;h.guid||(h.guid=d.guid);var q=j[m],s=l.event.special[m]||{};if(!q&&(q=j[m]=[],!s.setup||s.setup.call(a,e,p,k)===!1))a.addEventListener?a.addEventListener(m,k,!1):a.attachEvent&&a.attachEvent("on"+m,k);s.add&& -(s.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid));q.push(h);l.event.global[m]=!0}a=null}}},global:{},remove:function(a,b,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,j=0,k,m,n,p,q,s,r=l.hasData(a)&&l._data(a),t=r&&r.events;if(r&&t)if(b&&b.type&&(d=b.handler,b=b.type),!b||typeof b=="string"&&b.charAt(0)===".")for(g in b=b||"",t)l.event.remove(a,g+b);else{for(b=b.split(" ");g=b[j++];)if(p=g,k=g.indexOf(".")<0,m=[],k||(m=g.split("."),g=m.shift(),n=RegExp("(^|\\.)"+l.map(m.slice(0).sort(), -fb).join("\\.(?:.*\\.)?")+"(\\.|$)")),q=t[g])if(d){p=l.event.special[g]||{};for(h=e||0;h=0&&(h=h.slice(0,-1),k=!0);h.indexOf(".")>=0&&(j=h.split("."),h=j.shift(),j.sort());if(e&&!l.event.customEvent[h]||l.event.global[h]){b=typeof b=="object"?b[l.expando]?b:new l.Event(h,b):new l.Event(h);b.type=h;b.exclusive=k;b.namespace=j.join(".");b.namespace_re=RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)"); -if(g||!e)b.preventDefault(),b.stopPropagation();if(e){if(!(e.nodeType===3||e.nodeType===8)){b.result=c;b.target=e;d=d!=null?l.makeArray(d):[];d.unshift(b);j=e;g=h.indexOf(":")<0?"on"+h:"";do k=l._data(j,"handle"),b.currentTarget=j,k&&k.apply(j,d),g&&l.acceptData(j)&&j[g]&&j[g].apply(j,d)===!1&&(b.result=!1,b.preventDefault()),j=j.parentNode||j.ownerDocument||j===b.target.ownerDocument&&a;while(j&&!b.isPropagationStopped());if(!b.isDefaultPrevented()){var m,j=l.event.special[h]||{};if((!j._default|| -j._default.call(e.ownerDocument,b)===!1)&&(h!=="click"||!l.nodeName(e,"a"))&&l.acceptData(e)){try{g&&e[h]&&(m=e[g],m&&(e[g]=null),l.event.triggered=h,e[h]())}catch(n){}m&&(e[g]=m);l.event.triggered=c}}return b.result}}else l.each(l.cache,function(){var a=this[l.expando];a&&a.events&&a.events[h]&&l.event.trigger(b,d,a.handle.elem)})}},handle:function(b){var b=l.event.fix(b||a.event),d=((l._data(this,"events")||{})[b.type]||[]).slice(0),e=!b.exclusive&&!b.namespace,g=Array.prototype.slice.call(arguments, -0);g[0]=b;b.currentTarget=this;for(var h=0,j=d.length;h-1?l.map(a.options,function(a){return a.selected}).join("-"):"":l.nodeName(a,"select")&&(b=a.selectedIndex);return b},da=function(a,b){var d=a.target,e,g;if(ka.test(d.nodeName)&&!d.readOnly&&(e=l._data(d,"_change_data"),g=xa(d),(a.type!=="focusout"||d.type!=="radio")&&l._data(d,"_change_data",g),!(e===c||g===e)))if(e!=null|| -g)a.type="change",a.liveFired=c,l.event.trigger(a,b,d)};l.event.special.change={filters:{focusout:da,beforedeactivate:da,click:function(a){var c=a.target,b=l.nodeName(c,"input")?c.type:"";(b==="radio"||b==="checkbox"||l.nodeName(c,"select"))&&da.call(this,a)},keydown:function(a){var c=a.target,b=l.nodeName(c,"input")?c.type:"";(a.keyCode===13&&!l.nodeName(c,"textarea")||a.keyCode===32&&(b==="checkbox"||b==="radio")||b==="select-multiple")&&da.call(this,a)},beforeactivate:function(a){a=a.target;l._data(a, -"_change_data",xa(a))}},setup:function(){if(this.type==="file")return!1;for(var a in aa)l.event.add(this,a+".specialChange",aa[a]);return ka.test(this.nodeName)},teardown:function(){l.event.remove(this,".specialChange");return ka.test(this.nodeName)}};aa=l.event.special.change.filters;aa.focus=aa.beforeactivate}l.support.focusinBubbles||l.each({focus:"focusin",blur:"focusout"},function(a,c){function b(a){var d=l.event.fix(a);d.type=c;d.originalEvent={};l.event.trigger(d,null,d.target);d.isDefaultPrevented()&& -a.preventDefault()}var d=0;l.event.special[c]={setup:function(){d++===0&&v.addEventListener(a,b,!0)},teardown:function(){--d===0&&v.removeEventListener(a,b,!0)}}});l.each(["bind","one"],function(a,b){l.fn[b]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[b](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=c;b==="one"?(g=function(a){l(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||l.guid++):g=e;if(a==="unload"&&b!=="one")this.one(a,d,e);else{h=0;for(var j= -this.length;h0?this.bind(c,a,b):this.trigger(c)};l.attrFn&&(l.attrFn[c]= -!0)});(function(){function a(c,b,d,e,g,h){for(var g=0,j=e.length;g0){l=k;break}k=k[c]}e[g]=l}}}function b(a,c,d,e,g,h){for(var g=0,j=e.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,g=Object.prototype.toString,h=!1,j=!0,k=/\\/g,m=/\W/;[0,0].sort(function(){j=!1;return 0});var n=function(a,c,b,e){var b=b||[],h=c=c||v;if(c.nodeType!==1&&c.nodeType!==9)return[];if(!a||typeof a!="string")return b;var j,k,l,F,m,M,Q=!0,s=n.isXML(c),r=[],u=a;do if(d.exec(""),j=d.exec(u))if(u=j[3],r.push(j[1]),j[2]){F=j[3];break}while(j); -if(r.length>1&&q.exec(a))if(r.length===2&&p.relative[r[0]])k=y(r[0]+r[1],c);else for(k=p.relative[r[0]]?[c]:n(r.shift(),c);r.length;)a=r.shift(),p.relative[a]&&(a+=r.shift()),k=y(a,k);else if(!e&&r.length>1&&c.nodeType===9&&!s&&p.match.ID.test(r[0])&&!p.match.ID.test(r[r.length-1])&&(m=n.find(r.shift(),c,s),c=m.expr?n.filter(m.expr,m.set)[0]:m.set[0]),c){m=e?{expr:r.pop(),set:t(e)}:n.find(r.pop(),r.length===1&&(r[0]==="~"||r[0]==="+")&&c.parentNode?c.parentNode:c,s);k=m.expr?n.filter(m.expr,m.set): -m.set;for(r.length>0?l=t(k):Q=!1;r.length;)j=M=r.pop(),p.relative[M]?j=r.pop():M="",j==null&&(j=c),p.relative[M](l,j,s)}else l=[];l||(l=k);l||n.error(M||a);if(g.call(l)==="[object Array]")if(Q)if(c&&c.nodeType===1)for(a=0;l[a]!=null;a++)l[a]&&(l[a]===!0||l[a].nodeType===1&&n.contains(c,l[a]))&&b.push(k[a]);else for(a=0;l[a]!=null;a++)l[a]&&l[a].nodeType===1&&b.push(k[a]);else b.push.apply(b,l);else t(l,b);F&&(n(F,h,b,e),n.uniqueSort(b));return b};n.uniqueSort=function(a){if(w&&(h=j,a.sort(w),h))for(var c= -1;c0};n.find=function(a,c,b){var d;if(!a)return[];for(var e=0,g=p.order.length;e":function(a,c){var b,d=typeof c=="string",e=0,g=a.length;if(d&&!m.test(c))for(c=c.toLowerCase();e=0)?b||d.push(h):b&&(c[g]=!1));return!1},ID:function(a){return a[1].replace(k,"")},TAG:function(a){return a[1].replace(k,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||n.error(a[0]); -a[2]=a[2].replace(/^\+|\s*/g,"");var c=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=c[1]+(c[2]||1)-0;a[3]=c[3]-0}else a[2]&&n.error(a[0]);a[0]=e++;return a},ATTR:function(a,c,b,d,e,g){c=a[1]=a[1].replace(k,"");!g&&p.attrMap[c]&&(a[1]=p.attrMap[c]);a[4]=(a[4]||a[5]||"").replace(k,"");a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(a,c,b,e,g){if(a[1]==="not")if((d.exec(a[3])||"").length>1||/^\w/.test(a[3]))a[3]=n(a[3], -null,null,c);else return a=n.filter(a[3],c,b,1^g),b||e.push.apply(e,a),!1;else if(p.match.POS.test(a[0])||p.match.CHILD.test(a[0]))return!0;return a},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,c,b){return!!n(b[3], -a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var c=a.getAttribute("type"),b=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===b&&(c===b||c===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"=== -a.type},submit:function(a){var c=a.nodeName.toLowerCase();return(c==="input"||c==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var c=a.nodeName.toLowerCase();return(c==="input"||c==="button")&&"reset"===a.type},button:function(a){var c=a.nodeName.toLowerCase();return c==="input"&&"button"===a.type||c==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}}, -setFilters:{first:function(a,c){return c===0},last:function(a,c,b,d){return c===d.length-1},even:function(a,c){return c%2===0},odd:function(a,c){return c%2===1},lt:function(a,c,b){return cb[3]-0},nth:function(a,c,b){return b[3]-0===c},eq:function(a,c,b){return b[3]-0===c}},filter:{PSEUDO:function(a,c,b,d){var e=c[1],g=p.filters[e];if(g)return g(a,b,c,d);if(e==="contains")return(a.textContent||a.innerText||n.getText([a])||"").indexOf(c[3])>=0;if(e==="not"){c=c[3]; -b=0;for(d=c.length;b=0}},ID:function(a,c){return a.nodeType===1&&a.getAttribute("id")===c},TAG:function(a,c){return c==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===c},CLASS:function(a,c){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(c)>-1},ATTR:function(a,c){var b=c[1],b=p.attrHandle[b]?p.attrHandle[b](a):a[b]!=null?a[b]:a.getAttribute(b),d=b+"",e=c[2],g=c[4];return b==null?e==="!=":e==="="?d===g:e==="*="?d.indexOf(g)>=0:e==="~="?(" "+d+" ").indexOf(g)>= -0:g?e==="!="?d!==g:e==="^="?d.indexOf(g)===0:e==="$="?d.substr(d.length-g.length)===g:e==="|="?d===g||d.substr(0,g.length+1)===g+"-":!1:d&&b!==!1},POS:function(a,c,b,d){var e=p.setFilters[c[2]];if(e)return e(a,b,c,d)}}},q=p.match.POS,s=function(a,c){return"\\"+(c-0+1)},r;for(r in p.match)p.match[r]=RegExp(p.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),p.leftMatch[r]=RegExp(/(^(?:.|\r|\n)*?)/.source+p.match[r].source.replace(/\\(\d+)/g,s));var t=function(a,c){a=Array.prototype.slice.call(a,0); -return c?(c.push.apply(c,a),c):a};try{Array.prototype.slice.call(v.documentElement.childNodes,0)}catch(u){t=function(a,c){var b=0,d=c||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;b";d.insertBefore(a,d.firstChild);v.getElementById(b)&&(p.find.ID=function(a,b,d){if(typeof b.getElementById!="undefined"&&!d)return(b=b.getElementById(a[1]))?b.id===a[1]||typeof b.getAttributeNode!="undefined"&&b.getAttributeNode("id").nodeValue=== -a[1]?[b]:c:[]},p.filter.ID=function(a,c){var b=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&b&&b.nodeValue===c});d.removeChild(a);d=a=null})();(function(){var a=v.createElement("div");a.appendChild(v.createComment(""));a.getElementsByTagName("*").length>0&&(p.find.TAG=function(a,c){var b=c.getElementsByTagName(a[1]);if(a[1]==="*"){for(var d=[],e=0;b[e];e++)b[e].nodeType===1&&d.push(b[e]);b=d}return b});a.innerHTML="";a.firstChild&&typeof a.firstChild.getAttribute!= -"undefined"&&a.firstChild.getAttribute("href")!=="#"&&(p.attrHandle.href=function(a){return a.getAttribute("href",2)});a=null})();v.querySelectorAll&&function(){var a=n,c=v.createElement("div");c.innerHTML="

";if(!c.querySelectorAll||c.querySelectorAll(".TEST").length!==0){n=function(c,b,d,e){b=b||v;if(!e&&!n.isXML(b)){var g=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(c);if(g&&(b.nodeType===1||b.nodeType===9)){if(g[1])return t(b.getElementsByTagName(c),d);if(g[2]&&p.find.CLASS&&b.getElementsByClassName)return t(b.getElementsByClassName(g[2]), -d)}if(b.nodeType===9){if(c==="body"&&b.body)return t([b.body],d);if(g&&g[3]){var h=b.getElementById(g[3]);if(!h||!h.parentNode)return t([],d);if(h.id===g[3])return t([h],d)}try{return t(b.querySelectorAll(c),d)}catch(j){}}else if(b.nodeType===1&&b.nodeName.toLowerCase()!=="object"){var g=b,k=(h=b.getAttribute("id"))||"__sizzle__",l=b.parentNode,F=/^\s*[+~]/.test(c);h?k=k.replace(/'/g,"\\$&"):b.setAttribute("id",k);F&&l&&(b=b.parentNode);try{if(!F||l)return t(b.querySelectorAll("[id='"+k+"'] "+c), -d)}catch(m){}finally{h||g.removeAttribute("id")}}}return a(c,b,d,e)};for(var b in a)n[b]=a[b];c=null}}();(function(){var a=v.documentElement,c=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(c){var b=!c.call(v.createElement("div"),"div"),d=!1;try{c.call(v.documentElement,"[test!='']:sizzle")}catch(e){d=!0}n.matchesSelector=function(a,e){e=e.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!n.isXML(a))try{if(d||!p.match.PSEUDO.test(e)&&!/!=/.test(e)){var g=c.call(a, -e);if(g||!b||a.document&&a.document.nodeType!==11)return g}}catch(h){}return n(e,null,null,[a]).length>0}}})();(function(){var a=v.createElement("div");a.innerHTML="
";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0&&(a.lastChild.className="e",a.getElementsByClassName("e").length!==1))p.order.splice(1,0,"CLASS"),p.find.CLASS=function(a,c,b){if(typeof c.getElementsByClassName!="undefined"&&!b)return c.getElementsByClassName(a[1])}, -a=null})();v.documentElement.contains?n.contains=function(a,c){return a!==c&&(a.contains?a.contains(c):!0)}:v.documentElement.compareDocumentPosition?n.contains=function(a,c){return!!(a.compareDocumentPosition(c)&16)}:n.contains=function(){return!1};n.isXML=function(a){return(a=(a?a.ownerDocument||a:0).documentElement)?a.nodeName!=="HTML":!1};var y=function(a,c){for(var b,d=[],e="",g=c.nodeType?[c]:c;b=p.match.PSEUDO.exec(a);)e+=b[0],a=a.replace(p.match.PSEUDO,"");a=p.relative[a]?a+"*":a;b=0;for(var h= -g.length;b0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,c){var b=[],d,e,g=this[0];if(l.isArray(a)){var h,j={},k=1;if(g&&a.length){d=0;for(e=a.length;d-1:l(g).is(d))&&b.push({selector:h,elem:g,level:k});g=g.parentNode;k++}}return b}h=ya.test(a)||typeof a!="string"?l(a,c||this.context):0;d=0;for(e=this.length;d --1:l.find.matchesSelector(g,a)){b.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===c||g.nodeType===11)break}b=b.length>1?l.unique(b):b;return this.pushStack(b,"closest",a)},index:function(a){return!a||typeof a=="string"?l.inArray(this[0],a?l(a):this.parent().children()):l.inArray(a.jquery?a[0]:a,this)},add:function(a,c){var b=typeof a=="string"?l(a,c):l.makeArray(a&&a.nodeType?[a]:a),d=l.merge(this.get(),b);return this.pushStack(!b[0]||!b[0].parentNode||b[0].parentNode.nodeType===11||!d[0]|| -!d[0].parentNode||d[0].parentNode.nodeType===11?d:l.unique(d))},andSelf:function(){return this.add(this.prevObject)}});l.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return l.dir(a,"parentNode")},parentsUntil:function(a,c,b){return l.dir(a,"parentNode",b)},next:function(a){return l.nth(a,2,"nextSibling")},prev:function(a){return l.nth(a,2,"previousSibling")},nextAll:function(a){return l.dir(a,"nextSibling")},prevAll:function(a){return l.dir(a,"previousSibling")}, -nextUntil:function(a,c,b){return l.dir(a,"nextSibling",b)},prevUntil:function(a,c,b){return l.dir(a,"previousSibling",b)},siblings:function(a){return l.sibling(a.parentNode.firstChild,a)},children:function(a){return l.sibling(a.firstChild)},contents:function(a){return l.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:l.makeArray(a.childNodes)}},function(a,c){l.fn[a]=function(b,d){var e=l.map(this,c,b),g=jb.call(arguments);gb.test(a)||(d=b);d&&typeof d=="string"&&(e=l.filter(d,e)); -e=this.length>1&&!kb[a]?l.unique(e):e;(this.length>1||ib.test(d))&&hb.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}});l.extend({filter:function(a,c,b){b&&(a=":not("+a+")");return c.length===1?l.find.matchesSelector(c[0],a)?[c[0]]:[]:l.find.matches(a,c)},dir:function(a,b,d){for(var e=[],a=a[b];a&&a.nodeType!==9&&(d===c||a.nodeType!==1||!l(a).is(d));)a.nodeType===1&&e.push(a),a=a[b];return e},nth:function(a,c,b){for(var c=c||1,d=0;a;a=a[b])if(a.nodeType===1&&++d===c)break;return a}, -sibling:function(a,c){for(var b=[];a;a=a.nextSibling)a.nodeType===1&&a!==c&&b.push(a);return b}});var lb=/ jQuery\d+="(?:\d+|null)"/g,ma=/^\s+/,za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Aa=/<([\w:]+)/,mb=/",""],legend:[1,"
","
"],thead:[1, -"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};K.optgroup=K.option;K.tbody=K.tfoot=K.colgroup=K.caption=K.thead;K.th=K.td;l.support.htmlSerialize||(K._default=[1,"div
","
"]);l.fn.extend({text:function(a){return l.isFunction(a)?this.each(function(c){var b=l(this);b.text(a.call(this,c,b.text()))}):typeof a!="object"&& -a!==c?this.empty().append((this[0]&&this[0].ownerDocument||v).createTextNode(a)):l.text(this)},wrapAll:function(a){if(l.isFunction(a))return this.each(function(c){l(this).wrapAll(a.call(this,c))});if(this[0]){var c=l(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&c.insertBefore(this[0]);c.map(function(){for(var a=this;a.firstChild&&a.firstChild.nodeType===1;)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return l.isFunction(a)?this.each(function(c){l(this).wrapInner(a.call(this, -c))}):this.each(function(){var c=l(this),b=c.contents();b.length?b.wrapAll(a):c.append(a)})},wrap:function(a){return this.each(function(){l(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){l.nodeName(this,"body")||l(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})}, +a[2]);return""}},mail:{match:/([\w+%\-\.]+@(?:[\w\-]+\.)+[\w\-]+)/,filter:function(a){a.type="a";a._href="mailto:"+a.text.replace(/%/g,"%25")}},tt:d("`"),b:d("*"),i:d("_"),del:d("-")}}});(function(a,c){function b(a){return l.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}function d(a){if(!ha[a]){var c=z.body,b=l("<"+a+">").appendTo(c),d=b.css("display");b.remove();if("none"===d||""===d){O||(O=z.createElement("iframe"),O.frameBorder=O.width=O.height=0);c.appendChild(O);if(!U||!O.createElement)U=(O.contentWindow||O.contentDocument).document,U.write(("CSS1Compat"===z.compatMode?"":"")+""),U.close();b=U.createElement(a);U.body.appendChild(b); +d=l.css(b,"display");c.removeChild(O)}ha[a]=d}return ha[a]}function e(a,c){var b={};l.each(sa.concat.apply([],sa.slice(0,c)),function(){b[this]=a});return b}function g(){ca=c}function h(){setTimeout(g,0);return ca=l.now()}function j(){try{return new a.XMLHttpRequest}catch(c){}}function k(a,c,b,d){if(l.isArray(c))l.each(c,function(c,e){b||Sa.test(a)?d(a,e):k(a+"["+("object"==typeof e||l.isArray(e)?c:"")+"]",e,b,d)});else if(!b&&null!=c&&"object"==typeof c)for(var e in c)k(a+"["+e+"]",c[e],b,d);else d(a, +c)}function m(a,b,d,e,g,h){g=g||b.dataTypes[0];h=h||{};h[g]=!0;for(var g=a[g],j=0,k=g?g.length:0,l=a===ia,n;jd||null==d)d=a.style[c]||0;d=parseFloat(d)||0;b&&l.each(e,function(){d+=parseFloat(l.css(a,"padding"+this))||0;"padding"!==b&&(d+=parseFloat(l.css(a,"border"+this+"Width"))||0);"margin"===b&&(d+=parseFloat(l.css(a, +b+this))||0)});return d+"px"}function q(a,c){c.src?l.ajax({url:c.src,async:!1,dataType:"script"}):l.globalEval((c.text||c.textContent||c.innerHTML||"").replace(Va,"/*$0*/"));c.parentNode&&c.parentNode.removeChild(c)}function p(a){l.nodeName(a,"input")?t(a):"getElementsByTagName"in a&&l.grep(a.getElementsByTagName("input"),t)}function t(a){if("checkbox"===a.type||"radio"===a.type)a.defaultChecked=a.checked}function s(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in +a?a.querySelectorAll("*"):[]}function u(a,c){var b;if(1===c.nodeType){c.clearAttributes&&c.clearAttributes();c.mergeAttributes&&c.mergeAttributes(a);b=c.nodeName.toLowerCase();if("object"===b)c.outerHTML=a.outerHTML;else if("input"!==b||"checkbox"!==a.type&&"radio"!==a.type)if("option"===b)c.selected=a.defaultSelected;else{if("input"===b||"textarea"===b)c.defaultValue=a.defaultValue}else a.checked&&(c.defaultChecked=c.checked=a.checked),c.value!==a.value&&(c.value=a.value);c.removeAttribute(l.expando)}} +function v(a,c){if(1===c.nodeType&&l.hasData(a)){var b=l.expando,d=l.data(a),e=l.data(c,d);if(d=d[b]){var g=d.events,e=e[b]=l.extend({},d);if(g){delete e.handle;e.events={};for(var h in g){b=0;for(d=g[h].length;bb)break;a.currentTarget=e.elem;a.data=e.handleObj.data;a.handleObj=e.handleObj;p=e.handleObj.origHandler.apply(e.elem,arguments);if(!1===p||a.isPropagationStopped())if(b=e.level,!1===p&&(c=!1),a.isImmediatePropagationStopped())break}return c}}function A(a,b,d){var e=l.extend({},d[0]);e.type=a;e.originalEvent={};e.liveFired=c;l.event.handle.call(b,e);e.isDefaultPrevented()&&d[0].preventDefault()}function B(){return!0}function E(){return!1}function H(a, +b,d){var e=b+"defer",g=b+"queue",h=b+"mark",j=l.data(a,e,c,!0);j&&("queue"===d||!l.data(a,g,c,!0))&&("mark"===d||!l.data(a,h,c,!0))&&setTimeout(function(){!l.data(a,g,c,!0)&&!l.data(a,h,c,!0)&&(l.removeData(a,e,!0),j.resolve())},0)}function J(a){for(var c in a)if("toJSON"!==c)return!1;return!0}function I(a,b,d){if(d===c&&1===a.nodeType)if(d="data-"+b.replace(Pa,"$1-$2").toLowerCase(),d=a.getAttribute(d),"string"==typeof d){try{d="true"===d?!0:"false"===d?!1:"null"===d?null:l.isNaN(d)?Oa.test(d)?l.parseJSON(d): +d:parseFloat(d)}catch(e){}l.data(a,b,d)}else d=c;return d}var z=a.document,C=a.navigator,D=a.location,l=function(){function b(){if(!d.isReady){try{z.documentElement.doScroll("left")}catch(a){setTimeout(b,1);return}d.ready()}}var d=function(a,c){return new d.fn.init(a,c,h)},e=a.jQuery,g=a.$,h,j=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,k=/\S/,l=/^\s+/,m=/\s+$/,n=/\d/,p=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,q=/^[\],:{}\s]*$/,s=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,r=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, +t=/(?:^|:|,)(?:\s*\[)+/g,u=/(webkit)[ \/]([\w.]+)/,w=/(opera)(?:.*version)?[ \/]([\w.]+)/,v=/(msie) ([\w.]+)/,x=/(mozilla)(?:.*? rv:([\w.]+))?/,Za=/-([a-z])/ig,$a=function(a,c){return c.toUpperCase()},aa=C.userAgent,da,W,ab=Object.prototype.toString,y=Object.prototype.hasOwnProperty,ka=Array.prototype.push,A=Array.prototype.slice,B=String.prototype.trim,D=Array.prototype.indexOf,E={};d.fn=d.prototype={constructor:d,init:function(a,b,e){var g,h;if(!a)return this;if(a.nodeType)return this.context=this[0]= +a,this.length=1,this;if("body"===a&&!b&&z.body)return this.context=z,this[0]=z.body,this.selector=a,this.length=1,this;if("string"==typeof a){"<"!==a.charAt(0)||">"!==a.charAt(a.length-1)||3>a.length?g=j.exec(a):g=[null,a,null];if(g&&(g[1]||!b)){if(g[1])return h=(b=b instanceof d?b[0]:b)?b.ownerDocument||b:z,(e=p.exec(a))?d.isPlainObject(b)?(a=[z.createElement(e[1])],d.fn.attr.call(a,b,!0)):a=[h.createElement(e[1])]:(e=d.buildFragment([g[1]],[h]),a=(e.cacheable?d.clone(e.fragment):e.fragment).childNodes), +d.merge(this,a);if((b=z.getElementById(g[2]))&&b.parentNode){if(b.id!==g[2])return e.find(a);this.length=1;this[0]=b}this.context=z;this.selector=a;return this}return!b||b.jquery?(b||e).find(a):this.constructor(b).find(a)}if(d.isFunction(a))return e.ready(a);a.selector!==c&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return A.call(this,0)},get:function(a){return null==a?this.toArray(): +0>a?this[this.length+a]:this[a]},pushStack:function(a,c,b){var e=this.constructor();d.isArray(a)?ka.apply(e,a):d.merge(e,a);e.prevObject=this;e.context=this.context;"find"===c?e.selector=this.selector+(this.selector?" ":"")+b:c&&(e.selector=this.selector+"."+c+"("+b+")");return e},each:function(a,c){return d.each(this,a,c)},ready:function(a){d.bindReady();da.done(a);return this},eq:function(a){return-1===a?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)}, +slice:function(){return this.pushStack(A.apply(this,arguments),"slice",A.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(c,b){return a.call(c,b,c)}))},end:function(){return this.prevObject||this.constructor(null)},push:ka,sort:[].sort,splice:[].splice};d.fn.init.prototype=d.fn;d.extend=d.fn.extend=function(){var a,b,e,g,h,G,j=arguments[0]||{},k=1,l=arguments.length,K=!1;"boolean"==typeof j&&(K=j,j=arguments[1]||{},k=2);"object"!=typeof j&&!d.isFunction(j)&&(j= +{});for(l===k&&(j=this,--k);ka.indexOf("compatible")&&x.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},sub:function(){function a(c,b){return new a.fn.init(c,b)}d.extend(!0,a,this);a.superclass=this;a.fn=a.prototype=this();a.fn.constructor=a;a.sub=this.sub;a.fn.init=function(b,e){e&&e instanceof d&&!(e instanceof a)&&(e=a(e));return d.fn.init.call(this,b,e,c)};a.fn.init.prototype=a.fn;var c=a(z);return a}, +browser:{}});d.each("Boolean,Number,String,Function,Array,Date,RegExp,Object".split(","),function(a,c){E["[object "+c+"]"]=c.toLowerCase()});aa=d.uaMatch(aa);aa.browser&&(d.browser[aa.browser]=!0,d.browser.version=aa.version);d.browser.webkit&&(d.browser.safari=!0);k.test("\u00a0")&&(l=/^[\s\xA0]+/,m=/[\s\xA0]+$/);h=d(z);z.addEventListener?W=function(){z.removeEventListener("DOMContentLoaded",W,!1);d.ready()}:z.attachEvent&&(W=function(){"complete"===z.readyState&&(z.detachEvent("onreadystatechange", +W),d.ready())});return d}(),F="done,fail,isResolved,isRejected,promise,then,always,pipe".split(","),qa=[].slice;l.extend({_Deferred:function(){var a=[],c,b,d,e={done:function(){if(!d){var b=arguments,g,h,j,k,K;c&&(K=c,c=0);g=0;for(h=b.length;g=e&&a&&l.isFunction(a.promise)?a:l.Deferred();if(1
a";b=a.getElementsByTagName("*"); +d=a.getElementsByTagName("a")[0];if(!b||!b.length||!d)return{};e=z.createElement("select");g=e.appendChild(z.createElement("option"));b=a.getElementsByTagName("input")[0];j={leadingWhitespace:3===a.firstChild.nodeType,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:"/a"===d.getAttribute("href"),opacity:/^0.55$/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:"on"===b.value,optSelected:g.selected, +getSetAttribute:"t"!==a.className,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0};b.checked=!0;j.noCloneChecked=b.cloneNode(!0).checked;e.disabled=!0;j.optDisabled=!g.disabled;try{delete a.test}catch(m){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){j.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick"));b=z.createElement("input");b.value= +"t";b.setAttribute("type","radio");j.radioValue="t"===b.value;b.setAttribute("checked","checked");a.appendChild(b);d=z.createDocumentFragment();d.appendChild(a.firstChild);j.checkClone=d.cloneNode(!0).cloneNode(!0).lastChild.checked;a.innerHTML="";a.style.width=a.style.paddingLeft="1px";e=z.getElementsByTagName("body")[0];d=z.createElement(e?"div":"body");g={visibility:"hidden",width:0,height:0,border:0,margin:0};e&&l.extend(g,{position:"absolute",left:-1E3,top:-1E3});for(k in g)d.style[k]=g[k];d.appendChild(a); +c=e||c;c.insertBefore(d,c.firstChild);j.appendChecked=b.checked;j.boxModel=2===a.offsetWidth;"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=2===a.offsetWidth,a.style.display="",a.innerHTML="
",j.shrinkWrapBlocks=2!==a.offsetWidth);a.innerHTML="
t
";e=a.getElementsByTagName("td");b=0===e[0].offsetHeight;e[0].style.display="";e[1].style.display="none";j.reliableHiddenOffsets= +b&&0===e[0].offsetHeight;a.innerHTML="";z.defaultView&&z.defaultView.getComputedStyle&&(h=z.createElement("div"),h.style.width="0",h.style.marginRight="0",a.appendChild(h),j.reliableMarginRight=0===(parseInt((z.defaultView.getComputedStyle(h,null)||{marginRight:0}).marginRight,10)||0));d.innerHTML="";c.removeChild(d);if(a.attachEvent)for(k in{submit:1,change:1,focusin:1})h="on"+k,(b=h in a)||(a.setAttribute(h,"return;"),b="function"==typeof a[h]),j[k+"Bubbles"]=b;d=d=e=g=e=h=a=b=null;return j}(); +l.boxModel=l.support.boxModel;var Oa=/^(?:\{.*\}|\[.*\])$/,Pa=/([a-z])([A-Z])/g;l.extend({cache:{},uuid:0,expando:"jQuery"+(l.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?l.cache[a[l.expando]]:a[l.expando];return!!a&&!J(a)},data:function(a,b,d,e){if(l.acceptData(a)){var g=l.expando,h="string"==typeof b,j=a.nodeType,k=j?l.cache:a,m=j?a[l.expando]:a[l.expando]&&l.expando;if(m&&(!e||!m||k[m][g])|| +!(h&&d===c)){m||(j?a[l.expando]=m=++l.uuid:m=l.expando);k[m]||(k[m]={},j||(k[m].toJSON=l.noop));if("object"==typeof b||"function"==typeof b)e?k[m][g]=l.extend(k[m][g],b):k[m]=l.extend(k[m],b);a=k[m];e&&(a[g]||(a[g]={}),a=a[g]);d!==c&&(a[l.camelCase(b)]=d);return"events"===b&&!a[b]?a[g]&&a[g].events:h?a[l.camelCase(b)]||a[b]:a}}},removeData:function(c,b,d){if(l.acceptData(c)){var e=l.expando,g=c.nodeType,h=g?l.cache:c,j=g?c[l.expando]:l.expando;if(h[j]){if(b){var k=d?h[j][e]:h[j];if(k&&(delete k[b], +!J(k)))return}if(d&&(delete h[j][e],!J(h[j])))return;b=h[j][e];l.support.deleteExpando||h!=a?delete h[j]:h[j]=null;b?(h[j]={},g||(h[j].toJSON=l.noop),h[j][e]=b):g&&(l.support.deleteExpando?delete c[l.expando]:c.removeAttribute?c.removeAttribute(l.expando):c[l.expando]=null)}}},_data:function(a,c,b){return l.data(a,c,b,!0)},acceptData:function(a){if(a.nodeName){var c=l.noData[a.nodeName.toLowerCase()];if(c)return!0!==c&&a.getAttribute("classid")===c}return!0}});l.fn.extend({data:function(a,b){var d= +null;if("undefined"==typeof a){if(this.length&&(d=l.data(this[0]),1===this[0].nodeType))for(var e=this[0].attributes,g,h=0,j=e.length;hb)return null;for(var g=a?b:0,h=a?b+1:e.length;gg.indexOf("."), +m=[],k||(m=g.split("."),g=m.shift(),n=RegExp("(^|\\.)"+l.map(m.slice(0).sort(),fb).join("\\.(?:.*\\.)?")+"(\\.|$)")),q=t[g])if(d){p=l.event.special[g]||{};for(h=e||0;hh.indexOf(":")?"on"+h:"";do k=l._data(j,"handle"),b.currentTarget=j,k&&k.apply(j,d),g&&l.acceptData(j)&&j[g]&&!1===j[g].apply(j,d)&&(b.result=!1,b.preventDefault()),j=j.parentNode||j.ownerDocument||j===b.target.ownerDocument&&a;while(j&&!b.isPropagationStopped()); +if(!b.isDefaultPrevented()){var m,j=l.event.special[h]||{};if((!j._default||!1===j._default.call(e.ownerDocument,b))&&("click"!==h||!l.nodeName(e,"a"))&&l.acceptData(e)){try{g&&e[h]&&(m=e[g],m&&(e[g]=null),l.event.triggered=h,e[h]())}catch(n){}m&&(e[g]=m);l.event.triggered=c}}return b.result}}else l.each(l.cache,function(){var a=this[l.expando];a&&a.events&&a.events[h]&&l.event.trigger(b,d,a.handle.elem)})}},handle:function(b){var b=l.event.fix(b||a.event),d=((l._data(this,"events")||{})[b.type]|| +[]).slice(0),e=!b.exclusive&&!b.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=b;b.currentTarget=this;for(var h=0,j=d.length;h0?this.bind(b,a,c):this.trigger(b)};l.attrFn&&(l.attrFn[b]= +true)});(function(){function a(b,c,d,e,g,h){for(var g=0,j=e.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,g=Object.prototype.toString,h=!1,j=!0,k=/\\/g,m=/\W/;[0,0].sort(function(){j=!1;return 0});var n=function(a,b,c,e){var c=c||[],h=b=b||z;if(1!==b.nodeType&&9!==b.nodeType)return[];if(!a||"string"!=typeof a)return c;var j,k,l,G,m,N,Q=!0,s=n.isXML(b),r=[],u=a;do if(d.exec(""),j=d.exec(u))if(u=j[3],r.push(j[1]),j[2]){G=j[3];break}while(j); +if(1":function(a,b){var c,d="string"==typeof b,e=0,g=a.length;if(d&&!m.test(b))for(b=b.toLowerCase();ec[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],g=p.filters[e];if(g)return g(a,c,b,d);if("contains"===e)return 0<=(a.textContent||a.innerText||n.getText([a])||"").indexOf(b[3]); +if("not"===e){b=b[3];c=0;for(d=b.length;c";d.insertBefore(a,d.firstChild);z.getElementById(b)&&(p.find.ID=function(a,b,d){if("undefined"!=typeof b.getElementById&&!d)return(b=b.getElementById(a[1]))?b.id===a[1]||"undefined"!= +typeof b.getAttributeNode&&b.getAttributeNode("id").nodeValue===a[1]?[b]:c:[]},p.filter.ID=function(a,b){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return 1===a.nodeType&&c&&c.nodeValue===b});d.removeChild(a);d=a=null})();(function(){var a=z.createElement("div");a.appendChild(z.createComment(""));0

";if(!b.querySelectorAll||0!==b.querySelectorAll(".TEST").length){n=function(b,c,d,e){c=c||z;if(!e&&!n.isXML(c)){var g=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(g&&(1===c.nodeType||9===c.nodeType)){if(g[1])return t(c.getElementsByTagName(b), +d);if(g[2]&&p.find.CLASS&&c.getElementsByClassName)return t(c.getElementsByClassName(g[2]),d)}if(9===c.nodeType){if("body"===b&&c.body)return t([c.body],d);if(g&&g[3]){var h=c.getElementById(g[3]);if(!h||!h.parentNode)return t([],d);if(h.id===g[3])return t([h],d)}try{return t(c.querySelectorAll(b),d)}catch(j){}}else if(1===c.nodeType&&"object"!==c.nodeName.toLowerCase()){var g=c,k=(h=c.getAttribute("id"))||"__sizzle__",l=c.parentNode,G=/^\s*[+~]/.test(b);h?k=k.replace(/'/g,"\\$&"):c.setAttribute("id", +k);G&&l&&(c=c.parentNode);try{if(!G||l)return t(c.querySelectorAll("[id='"+k+"'] "+b),d)}catch(m){}finally{h||g.removeAttribute("id")}}}return a(b,c,d,e)};for(var c in a)n[c]=a[c];b=null}}();(function(){var a=z.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var c=!b.call(z.createElement("div"),"div"),d=!1;try{b.call(z.documentElement,"[test!='']:sizzle")}catch(e){d=!0}n.matchesSelector=function(a,e){e=e.replace(/\=\s*([^'"\]]*)\s*\]/g, +"='$1']");if(!n.isXML(a))try{if(d||!p.match.PSEUDO.test(e)&&!/!=/.test(e)){var g=b.call(a,e);if(g||!c||a.document&&11!==a.document.nodeType)return g}}catch(h){}return 0
";a.getElementsByClassName&&0!==a.getElementsByClassName("e").length&&(a.lastChild.className="e",1!==a.getElementsByClassName("e").length&&(p.order.splice(1,0,"CLASS"),p.find.CLASS=function(a,b,c){if("undefined"!= +typeof b.getElementsByClassName&&!c)return b.getElementsByClassName(a[1])},a=null))})();z.documentElement.contains?n.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:z.documentElement.compareDocumentPosition?n.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:n.contains=function(){return!1};n.isXML=function(a){return(a=(a?a.ownerDocument||a:0).documentElement)?"HTML"!==a.nodeName:!1};var x=function(a,b){for(var c,d=[],e="",g=b.nodeType?[b]:b;c=p.match.PSEUDO.exec(a);)e+= +c[0],a=a.replace(p.match.PSEUDO,"");a=p.relative[a]?a+"*":a;c=0;for(var h=g.length;c]*)\/>/ig,Ba=/<([\w:]+)/,mb=/",""],legend:[1,"
","
"], +thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};L.optgroup=L.option;L.tbody=L.tfoot=L.colgroup=L.caption=L.thead;L.th=L.td;l.support.htmlSerialize||(L._default=[1,"div
","
"]);l.fn.extend({text:function(a){return l.isFunction(a)?this.each(function(b){var c=l(this);c.text(a.call(this,b,c.text()))}):"object"!= +typeof a&&a!==c?this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a)):l.text(this)},wrapAll:function(a){if(l.isFunction(a))return this.each(function(b){l(this).wrapAll(a.call(this,b))});if(this[0]){var b=l(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var a=this;a.firstChild&&1===a.firstChild.nodeType;)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return l.isFunction(a)?this.each(function(b){l(this).wrapInner(a.call(this, +b))}):this.each(function(){var b=l(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){l(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){l.nodeName(this,"body")||l(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})}, before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=l(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,l(arguments[0]).toArray()); -return a}},remove:function(a,c){for(var b=0,d;(d=this[b])!=null;b++)if(!a||l.filter(a,[d]).length)!c&&d.nodeType===1&&(l.cleanData(d.getElementsByTagName("*")),l.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,c;(c=this[a])!=null;a++)for(c.nodeType===1&&l.cleanData(c.getElementsByTagName("*"));c.firstChild;)c.removeChild(c.firstChild);return this},clone:function(a,c){a=a==null?!1:a;c=c==null?a:c;return this.map(function(){return l.clone(this,a,c)})}, -html:function(a){if(a===c)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(lb,""):null;if(typeof a=="string"&&!Ba.test(a)&&(l.support.leadingWhitespace||!ma.test(a))&&!K[(Aa.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(za,"<$1>");try{for(var b=0,d=this.length;b1&&g0?this.clone(!0):this).get();l(b[e])[c](h);d=d.concat(h)}return this.pushStack(d,a,b.selector)}});l.extend({clone:function(a,c,b){var d=a.cloneNode(!0),e,g,h;if((!l.support.noCloneEvent||!l.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!l.isXMLDoc(a)){t(a,d);e=u(a);g=u(d);for(h=0;e[h];++h)t(e[h],g[h])}if(c&&(w(a,d),b)){e=u(a);g=u(d);for(h=0;e[h];++h)w(e[h],g[h])}return d},clean:function(a,c,b,d){c=c||v;typeof c.createElement=="undefined"&&(c=c.ownerDocument|| -c[0]&&c[0].ownerDocument||v);for(var e=[],g,h=0,j;(j=a[h])!=null;h++)if(typeof j=="number"&&(j+=""),j){if(typeof j=="string")if(nb.test(j)){j=j.replace(za,"<$1>");g=(Aa.exec(j)||["",""])[1].toLowerCase();var k=K[g]||K._default,m=k[0],n=c.createElement("div");for(n.innerHTML=k[1]+j+k[2];m--;)n=n.lastChild;if(!l.support.tbody){m=mb.test(j);k=g==="table"&&!m?n.firstChild&&n.firstChild.childNodes:k[1]===""&&!m?n.childNodes:[];for(g=k.length-1;g>=0;--g)l.nodeName(k[g],"tbody")&&!k[g].childNodes.length&& -k[g].parentNode.removeChild(k[g])}!l.support.leadingWhitespace&&ma.test(j)&&n.insertBefore(c.createTextNode(ma.exec(j)[0]),n.firstChild);j=n.childNodes}else j=c.createTextNode(j);var q;if(!l.support.appendChecked)if(j[0]&&typeof(q=j.length)=="number")for(g=0;g=0)return c+"px"}}});l.support.opacity||(l.cssHooks.opacity={get:function(a,c){return pb.test((c&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":c?"1":""},set:function(a,c){var b=a.style,d=a.currentStyle;b.zoom=1;var e=l.isNaN(c)?"":"alpha(opacity="+ -c*100+")",d=d&&d.filter||b.filter||"";b.filter=Da.test(d)?d.replace(Da,e):d+" "+e}});l(function(){l.support.reliableMarginRight||(l.cssHooks.marginRight={get:function(a,c){var b;l.swap(a,{display:"inline-block"},function(){c?b=V(a,"margin-right","marginRight"):b=a.style.marginRight});return b}})});v.defaultView&&v.defaultView.getComputedStyle&&(Fa=function(a,b){var d,e,b=b.replace(qb,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return c;if(e=e.getComputedStyle(a,null))d=e.getPropertyValue(b), -d===""&&!l.contains(a.ownerDocument.documentElement,a)&&(d=l.style(a,b));return d});v.documentElement.currentStyle&&(Ga=function(a,c){var b,d=a.currentStyle&&a.currentStyle[c],e=a.runtimeStyle&&a.runtimeStyle[c],g=a.style;!Ea.test(d)&&rb.test(d)&&(b=g.left,e&&(a.runtimeStyle.left=a.currentStyle.left),g.left=c==="fontSize"?"1em":d||0,d=g.pixelLeft+"px",g.left=b,e&&(a.runtimeStyle.left=e));return d===""?"auto":d});V=Fa||Ga;l.expr&&l.expr.filters&&(l.expr.filters.hidden=function(a){var c=a.offsetHeight; -return a.offsetWidth===0&&c===0||!l.support.reliableHiddenOffsets&&(a.style.display||l.css(a,"display"))==="none"},l.expr.filters.visible=function(a){return!l.expr.filters.hidden(a)});var wb=/%20/g,Ra=/\[\]$/,Ha=/\r?\n/g,xb=/#.*$/,yb=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,zb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,Ab=/^(?:GET|HEAD)$/,Bb=/^\/\//,Ia=/\?/,Cb=/)<[^<]*)*<\/script>/gi,Db=/^(?:select|textarea)/i,sa=/\s+/, -Eb=/([?&])_=[^&]*/,Ja=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,Ka=l.fn.load,ha={},La={},O,R;try{O=C.href}catch(Kb){O=v.createElement("a"),O.href="",O=O.href}R=Ja.exec(O.toLowerCase())||[];l.fn.extend({load:function(a,b,d){if(typeof a!="string"&&Ka)return Ka.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0)var g=a.slice(e,a.length),a=a.slice(0,e);e="GET";b&&(l.isFunction(b)?(d=b,b=c):typeof b=="object"&&(b=l.param(b,l.ajaxSettings.traditional),e="POST"));var h= -this;l.ajax({url:a,type:e,dataType:"html",data:b,complete:function(a,c,b){b=a.responseText;a.isResolved()&&(a.done(function(a){b=a}),h.html(g?l("
").append(b.replace(Cb,"")).find(g):b));d&&h.each(d,[b,c,a])}});return this},serialize:function(){return l.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?l.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||Db.test(this.nodeName)||zb.test(this.type))}).map(function(a, -c){var b=l(this).val();return b==null?null:l.isArray(b)?l.map(b,function(a){return{name:c.name,value:a.replace(Ha,"\r\n")}}):{name:c.name,value:b.replace(Ha,"\r\n")}}).get()}});l.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,c){l.fn[c]=function(a){return this.bind(c,a)}});l.each(["get","post"],function(a,b){l[b]=function(a,d,e,g){l.isFunction(d)&&(g=g||e,e=d,d=c);return l.ajax({type:b,url:a,data:d,success:e,dataType:g})}});l.extend({getScript:function(a, -b){return l.get(a,c,b,"script")},getJSON:function(a,c,b){return l.get(a,c,b,"json")},ajaxSetup:function(a,c){c?l.extend(!0,a,l.ajaxSettings,c):(c=a,a=l.extend(!0,l.ajaxSettings,c));for(var b in{context:1,url:1})b in c?a[b]=c[b]:b in l.ajaxSettings&&(a[b]=l.ajaxSettings[b]);return a},ajaxSettings:{url:O,isLocal:/^(?:about|app|app\-storage|.+\-extension|file|widget):$/.test(R[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml", -html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":l.parseJSON,"text xml":l.parseXML}},ajaxPrefilter:n(ha),ajaxTransport:n(La),ajax:function(a,b){function d(a,b,m,q){if(x!==2){x=2;v&&clearTimeout(v);u=c;s=q||"";A.readyState=a?4:0;var r,F,t;if(m){var q=e,M=A,w=q.contents,z=q.dataTypes,P=q.responseFields,B,C, -D,E;for(C in P)C in m&&(M[P[C]]=m[C]);for(;z[0]==="*";)z.shift(),B===c&&(B=q.mimeType||M.getResponseHeader("content-type"));if(B)for(C in w)if(w[C]&&w[C].test(B)){z.unshift(C);break}if(z[0]in m)D=z[0];else{for(C in m){if(!z[0]||q.converters[C+" "+z[0]]){D=C;break}E||(E=C)}D=D||E}D?(D!==z[0]&&z.unshift(D),m=m[D]):m=void 0}else m=c;if(a>=200&&a<300||a===304){if(e.ifModified){if(B=A.getResponseHeader("Last-Modified"))l.lastModified[p]=B;if(B=A.getResponseHeader("Etag"))l.etag[p]=B}if(a===304)b="notmodified", -r=!0;else try{B=e;B.dataFilter&&(m=B.dataFilter(m,B.dataType));var H=B.dataTypes;C={};var G,I,Ya=H.length,J,T=H[0],K,N,S,L,O;for(G=1;G0&&(v=setTimeout(function(){A.abort("timeout")},e.timeout));try{x=1,u.send(q,d)}catch(C){status<2?d(-1,C):l.error(C)}}else d(-1,"No Transport");return A},param:function(a,b){var d=[],e=function(a,b){b=l.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};b===c&&(b=l.ajaxSettings.traditional);if(l.isArray(a)||a.jquery&&!l.isPlainObject(a))l.each(a,function(){e(this.name,this.value)});else for(var g in a)k(g,a[g],b,e);return d.join("&").replace(wb, -"+")}});l.extend({active:0,lastModified:{},etag:{}});var Fb=l.now(),ea=/(\=)\?(&|$)|\?\?/i;l.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return l.expando+"_"+Fb++}});l.ajaxPrefilter("json jsonp",function(b,c,d){c=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ea.test(b.url)||c&&ea.test(b.data))){var e,g=b.jsonpCallback=l.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h=a[g],j=b.url,k=b.data,m="$1"+g+ -"$2";b.jsonp!==!1&&(j=j.replace(ea,m),b.url===j&&(c&&(k=k.replace(ea,m)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+g)));b.url=j;b.data=k;a[g]=function(a){e=[a]};d.always(function(){a[g]=h;e&&l.isFunction(h)&&a[g](e[0])});b.converters["script json"]=function(){e||l.error(g+" was not called");return e[0]};b.dataTypes[0]="json";return"script"}});l.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/}, -converters:{"text script":function(a){l.globalEval(a);return a}}});l.ajaxPrefilter("script",function(a){a.cache===c&&(a.cache=!1);a.crossDomain&&(a.type="GET",a.global=!1)});l.ajaxTransport("script",function(a){if(a.crossDomain){var b,d=v.head||v.getElementsByTagName("head")[0]||v.documentElement;return{send:function(e,g){b=v.createElement("script");b.async="async";a.scriptCharset&&(b.charset=a.scriptCharset);b.src=a.url;b.onload=b.onreadystatechange=function(a,e){if(e||!b.readyState||/loaded|complete/.test(b.readyState))b.onload= -b.onreadystatechange=null,d&&b.parentNode&&d.removeChild(b),b=c,e||g(200,"success")};d.insertBefore(b,d.firstChild)},abort:function(){b&&b.onload(0,1)}}}});var na=a.ActiveXObject?function(){for(var a in X)X[a](0,1)}:!1,Gb=0,X;l.ajaxSettings.xhr=a.ActiveXObject?function(){var b;if(!(b=!this.isLocal&&j()))a:{try{b=new a.ActiveXObject("Microsoft.XMLHTTP");break a}catch(c){}b=void 0}return b}:j;(function(a){l.extend(l.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})})(l.ajaxSettings.xhr());l.support.ajax&& +return a}},remove:function(a,b){for(var c=0,d;null!=(d=this[c]);c++)if(!a||l.filter(a,[d]).length)!b&&1===d.nodeType&&(l.cleanData(d.getElementsByTagName("*")),l.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;null!=(b=this[a]);a++)for(1===b.nodeType&&l.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);return this},clone:function(a,b){a=null==a?!1:a;b=null==b?a:b;return this.map(function(){return l.clone(this,a,b)})}, +html:function(a){if(a===c)return this[0]&&1===this[0].nodeType?this[0].innerHTML.replace(lb,""):null;if("string"==typeof a&&!Ca.test(a)&&(l.support.leadingWhitespace||!na.test(a))&&!L[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1>");try{for(var b=0,d=this.length;ba[0].length&&h===z&&"<"===a[0].charAt(0)&&!Ca.test(a[0])&& +(l.support.checkClone||!Da.test(a[0]))&&(e=!0,g=l.fragments[a[0]],g&&1!==g&&(d=g));d||(d=h.createDocumentFragment(),l.clean(a,h,d,c));e&&(l.fragments[a[0]]=g?d:1);return{fragment:d,cacheable:e}};l.fragments={};l.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){l.fn[a]=function(c){var d=[],c=l(c),e=1===this.length&&this[0].parentNode;if(e&&11===e.nodeType&&1===e.childNodes.length&&1===c.length)return c[b](this[0]),this;for(var e= +0,g=c.length;e");g=(Ba.exec(j)||["",""])[1].toLowerCase();var k=L[g]||L._default,m=k[0],n=b.createElement("div");for(n.innerHTML=k[1]+j+k[2];m--;)n=n.lastChild;if(!l.support.tbody){m=mb.test(j);k="table"===g&&!m?n.firstChild&&n.firstChild.childNodes:"
"===k[1]&&!m?n.childNodes:[];for(g=k.length-1;0<=g;--g)l.nodeName(k[g],"tbody")&&!k[g].childNodes.length&& +k[g].parentNode.removeChild(k[g])}!l.support.leadingWhitespace&&na.test(j)&&n.insertBefore(b.createTextNode(na.exec(j)[0]),n.firstChild);j=n.childNodes}else j=b.createTextNode(j);var q;if(!l.support.appendChecked)if(j[0]&&"number"==typeof(q=j.length))for(g=0;g)<[^<]*)*<\/script>/gi,Db=/^(?:select|textarea)/i,ta=/\s+/, +Eb=/([?&])_=[^&]*/,Ka=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,La=l.fn.load,ia={},Ma={},P,R;try{P=D.href}catch(Kb){P=z.createElement("a"),P.href="",P=P.href}R=Ka.exec(P.toLowerCase())||[];l.fn.extend({load:function(a,b,d){if("string"!=typeof a&&La)return La.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(0<=e)var g=a.slice(e,a.length),a=a.slice(0,e);e="GET";b&&(l.isFunction(b)?(d=b,b=c):"object"==typeof b&&(b=l.param(b,l.ajaxSettings.traditional),e="POST"));var h= +this;l.ajax({url:a,type:e,dataType:"html",data:b,complete:function(a,b,c){c=a.responseText;a.isResolved()&&(a.done(function(a){c=a}),h.html(g?l("
").append(c.replace(Cb,"")).find(g):c));d&&h.each(d,[c,b,a])}});return this},serialize:function(){return l.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?l.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||Db.test(this.nodeName)||zb.test(this.type))}).map(function(a, +b){var c=l(this).val();return null==c?null:l.isArray(c)?l.map(c,function(a){return{name:b.name,value:a.replace(Ia,"\r\n")}}):{name:b.name,value:c.replace(Ia,"\r\n")}}).get()}});l.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(a,b){l.fn[b]=function(a){return this.bind(b,a)}});l.each(["get","post"],function(a,b){l[b]=function(a,d,e,g){l.isFunction(d)&&(g=g||e,e=d,d=c);return l.ajax({type:b,url:a,data:d,success:e,dataType:g})}});l.extend({getScript:function(a, +b){return l.get(a,c,b,"script")},getJSON:function(a,b,c){return l.get(a,b,c,"json")},ajaxSetup:function(a,b){b?l.extend(!0,a,l.ajaxSettings,b):(b=a,a=l.extend(!0,l.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in l.ajaxSettings&&(a[c]=l.ajaxSettings[c]);return a},ajaxSettings:{url:P,isLocal:/^(?:about|app|app\-storage|.+\-extension|file|widget):$/.test(R[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml", +html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":l.parseJSON,"text xml":l.parseXML}},ajaxPrefilter:n(ia),ajaxTransport:n(Ma),ajax:function(a,b){function d(a,b,m,q){if(2!==x){x=2;w&&clearTimeout(w);u=c;s=q||"";A.readyState=a?4:0;var r,G,t;if(m){var q=e,N=A,v=q.contents,K=q.dataTypes,z=q.responseFields,C,B, +D,E;for(B in z)B in m&&(N[z[B]]=m[B]);for(;"*"===K[0];)K.shift(),C===c&&(C=q.mimeType||N.getResponseHeader("content-type"));if(C)for(B in v)if(v[B]&&v[B].test(C)){K.unshift(B);break}if(K[0]in m)D=K[0];else{for(B in m){if(!K[0]||q.converters[B+" "+K[0]]){D=B;break}E||(E=B)}D=D||E}D?(D!==K[0]&&K.unshift(D),m=m[D]):m=void 0}else m=c;if(200<=a&&300>a||304===a){if(e.ifModified){if(C=A.getResponseHeader("Last-Modified"))l.lastModified[p]=C;if(C=A.getResponseHeader("Etag"))l.etag[p]=C}if(304===a)b="notmodified", +r=!0;else try{C=e;C.dataFilter&&(m=C.dataFilter(m,C.dataType));var F=C.dataTypes;B={};var Z,H,J=F.length,I,T=F[0],L,O,S,M,P;for(Z=1;Za&&(a=0);A.status=a;A.statusText=b;r?j.resolveWith(g,[G,b,A]):j.rejectWith(g,[A,b,t]);A.statusCode(n);n=c;y&&h.trigger("ajax"+(r?"Success":"Error"),[A,e,r?G:t]);k.resolveWith(g,[A,b]);y&&(h.trigger("ajaxComplete",[A,e]),--l.active||l.event.trigger("ajaxStop"))}}"object"==typeof a&&(b=a,a=c);var b=b||{},e=l.ajaxSetup({},b),g=e.context||e,h=g!==e&&(g.nodeType||g instanceof l)?l(g):l.event,j=l.Deferred(),k=l._Deferred(), +n=e.statusCode||{},p,q={},r={},s,t,u,w,v,x=0,y,z,A={readyState:0,setRequestHeader:function(a,b){if(!x){var c=a.toLowerCase(),a=r[c]=r[c]||a;q[a]=b}return this},getAllResponseHeaders:function(){return 2===x?s:null},getResponseHeader:function(a){var b;if(2===x){if(!t)for(t={};b=yb.exec(s);)t[b[1].toLowerCase()]=b[2];b=t[a.toLowerCase()]}return b===c?null:b},overrideMimeType:function(a){x||(e.mimeType=a);return this},abort:function(a){a=a||"abort";u&&u.abort(a);d(0,a);return this}};j.promise(A);A.success= +A.done;A.error=A.fail;A.complete=k.done;A.statusCode=function(a){if(a){var b;if(2>x)for(b in a)n[b]=[n[b],a[b]];else b=a[A.status],A.then(b,b)}return this};e.url=((a||e.url)+"").replace(xb,"").replace(Bb,R[1]+"//");e.dataTypes=l.trim(e.dataType||"*").toLowerCase().split(ta);null==e.crossDomain&&(v=Ka.exec(e.url.toLowerCase()),e.crossDomain=!(!v||v[1]==R[1]&&v[2]==R[2]&&(v[3]||("http:"===v[1]?80:443))==(R[3]||("http:"===R[1]?80:443))));e.data&&e.processData&&"string"!=typeof e.data&&(e.data=l.param(e.data, +e.traditional));m(ia,e,b,A);if(2===x)return!1;y=e.global;e.type=e.type.toUpperCase();e.hasContent=!Ab.test(e.type);y&&0===l.active++&&l.event.trigger("ajaxStart");if(!e.hasContent&&(e.data&&(e.url+=(Ja.test(e.url)?"&":"?")+e.data),p=e.url,!1===e.cache)){v=l.now();var C=e.url.replace(Eb,"$1_="+v);e.url=C+(C===e.url?(Ja.test(e.url)?"&":"?")+"_="+v:"")}(e.data&&e.hasContent&&!1!==e.contentType||b.contentType)&&A.setRequestHeader("Content-Type",e.contentType);e.ifModified&&(p=p||e.url,l.lastModified[p]&& +A.setRequestHeader("If-Modified-Since",l.lastModified[p]),l.etag[p]&&A.setRequestHeader("If-None-Match",l.etag[p]));A.setRequestHeader("Accept",e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+("*"!==e.dataTypes[0]?", */*; q=0.01":""):e.accepts["*"]);for(z in e.headers)A.setRequestHeader(z,e.headers[z]);if(e.beforeSend&&(!1===e.beforeSend.call(g,A,e)||2===x))return A.abort(),!1;for(z in{success:1,error:1,complete:1})A[z](e[z]);if(u=m(Ma,e,b,A)){A.readyState=1;y&&h.trigger("ajaxSend", +[A,e]);e.async&&0status?d(-1,B):l.error(B)}}else d(-1,"No Transport");return A},param:function(a,b){var d=[],e=function(a,b){b=l.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};b===c&&(b=l.ajaxSettings.traditional);if(l.isArray(a)||a.jquery&&!l.isPlainObject(a))l.each(a,function(){e(this.name,this.value)});else for(var g in a)k(g,a[g],b,e);return d.join("&").replace(wb, +"+")}});l.extend({active:0,lastModified:{},etag:{}});var Fb=l.now(),fa=/(\=)\?(&|$)|\?\?/i;l.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return l.expando+"_"+Fb++}});l.ajaxPrefilter("json jsonp",function(b,c,d){c="application/x-www-form-urlencoded"===b.contentType&&"string"==typeof b.data;if("jsonp"===b.dataTypes[0]||!1!==b.jsonp&&(fa.test(b.url)||c&&fa.test(b.data))){var e,g=b.jsonpCallback=l.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h=a[g],j=b.url,k=b.data,m="$1"+g+ +"$2";!1!==b.jsonp&&(j=j.replace(fa,m),b.url===j&&(c&&(k=k.replace(fa,m)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+g)));b.url=j;b.data=k;a[g]=function(a){e=[a]};d.always(function(){a[g]=h;e&&l.isFunction(h)&&a[g](e[0])});b.converters["script json"]=function(){e||l.error(g+" was not called");return e[0]};b.dataTypes[0]="json";return"script"}});l.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/}, +converters:{"text script":function(a){l.globalEval(a);return a}}});l.ajaxPrefilter("script",function(a){a.cache===c&&(a.cache=!1);a.crossDomain&&(a.type="GET",a.global=!1)});l.ajaxTransport("script",function(a){if(a.crossDomain){var b,d=z.head||z.getElementsByTagName("head")[0]||z.documentElement;return{send:function(e,g){b=z.createElement("script");b.async="async";a.scriptCharset&&(b.charset=a.scriptCharset);b.src=a.url;b.onload=b.onreadystatechange=function(a,e){if(e||!b.readyState||/loaded|complete/.test(b.readyState))b.onload= +b.onreadystatechange=null,d&&b.parentNode&&d.removeChild(b),b=c,e||g(200,"success")};d.insertBefore(b,d.firstChild)},abort:function(){b&&b.onload(0,1)}}}});var oa=a.ActiveXObject?function(){for(var a in X)X[a](0,1)}:!1,Gb=0,X;l.ajaxSettings.xhr=a.ActiveXObject?function(){var b;if(!(b=!this.isLocal&&j()))a:{try{b=new a.ActiveXObject("Microsoft.XMLHTTP");break a}catch(c){}b=void 0}return b}:j;(function(a){l.extend(l.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})})(l.ajaxSettings.xhr());l.support.ajax&& l.ajaxTransport(function(b){if(!b.crossDomain||l.support.cors){var d;return{send:function(e,g){var h=b.xhr(),j,k;b.username?h.open(b.type,b.url,b.async,b.username,b.password):h.open(b.type,b.url,b.async);if(b.xhrFields)for(k in b.xhrFields)h[k]=b.xhrFields[k];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType);!b.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(k in e)h.setRequestHeader(k,e[k])}catch(m){}h.send(b.hasContent&&b.data||null);d=function(a, -e){var k,m,n,p,q;try{if(d&&(e||h.readyState===4))if(d=c,j&&(h.onreadystatechange=l.noop,na&&delete X[j]),e)h.readyState!==4&&h.abort();else{k=h.status;n=h.getAllResponseHeaders();p={};(q=h.responseXML)&&q.documentElement&&(p.xml=q);p.text=h.responseText;try{m=h.statusText}catch(r){m=""}!k&&b.isLocal&&!b.crossDomain?k=p.text?200:404:k===1223&&(k=204)}}catch(s){e||g(-1,s)}p&&g(k,m,p,n)};!b.async||h.readyState===4?d():(j=++Gb,na&&(X||(X={},l(a).unload(na)),X[j]=d),h.onreadystatechange=d)},abort:function(){d&& -d(0,1)}}}});var ga={},N,U,Hb=/^(?:toggle|show|hide)$/,Ib=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,Y,ra=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],ba,oa=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;l.fn.extend({show:function(a,b,c){var g;if(a||a===0)return this.animate(e("show",3),a,b,c);b=0;for(c=this.length;b=e.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!= -null&&!l.support.shrinkWrapBlocks&&l.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]});e.hide&&l(d).hide();if(e.hide||e.show)for(var k in e.animatedProperties)l.style(d,k,e.orig[k]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(j=b-this.startTime,this.state=j/e.duration,this.pos=l.easing[e.animatedProperties[this.prop]](this.state,j,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos);this.update();return!0}};l.extend(l.fx,{tick:function(){for(var a= -l.timers,b=0;b=e.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)!0!==e.animatedProperties[g]&&(c=!1);if(c){null!= +e.overflow&&!l.support.shrinkWrapBlocks&&l.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]});e.hide&&l(d).hide();if(e.hide||e.show)for(var k in e.animatedProperties)l.style(d,k,e.orig[k]);e.complete.call(d)}return!1}Infinity==e.duration?this.now=b:(j=b-this.startTime,this.state=j/e.duration,this.pos=l.easing[e.animatedProperties[this.prop]](this.state,j,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos);this.update();return!0}};l.extend(l.fx,{tick:function(){for(var a= +l.timers,b=0;b-1?(m=e.position(),n=m.top,p=m.left):(n=parseFloat(h)||0,p=parseFloat(j)||0);l.isFunction(b)&&(b=b.call(a,c,g));b.top!=null&&(k.top=b.top-g.top+n);b.left!=null&&(k.left=b.left-g.left+p);"using"in b? -b.using.call(a,k):e.css(k)}};l.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=Ma.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(l.css(a,"marginTop"))||0;c.left-=parseFloat(l.css(a,"marginLeft"))||0;d.top+=parseFloat(l.css(b[0],"borderTopWidth"))||0;d.left+=parseFloat(l.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent|| -v.body;a&&!Ma.test(a.nodeName)&&l.css(a,"position")==="static";)a=a.offsetParent;return a})}});l.each(["Left","Top"],function(a,d){var e="scroll"+d;l.fn[e]=function(d){var g,h;return d===c?(g=this[0],!g?null:(h=b(g))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:l.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:g[e]):this.each(function(){(h=b(this))?h.scrollTo(a?l(h).scrollLeft():d,a?d:l(h).scrollTop()):this[e]=d})}});l.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); -l.fn["inner"+b]=function(){var a=this[0];return a&&a.style?parseFloat(l.css(a,d,"padding")):null};l.fn["outer"+b]=function(a){var b=this[0];return b&&b.style?parseFloat(l.css(b,d,a?"margin":"border")):null};l.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(l.isFunction(a))return this.each(function(b){var c=l(this);c[d](a.call(this,b,c[d]()))});if(l.isWindow(e)){var g=e.document.documentElement["client"+b];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+b]|| -g}return e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):a===c?(e=l.css(e,d),g=parseFloat(e),l.isNaN(g)?e:g):this.css(d,typeof a=="string"?a:a+"px")}});a.jQuery=a.$=l})(window); +null):b.currentStyle;for(var j=b.offsetTop,k=b.offsetLeft;(b=b.parentNode)&&b!==h&&b!==g&&!(l.offset.supportsFixedPosition&&"fixed"===c.position);)c=e?e.getComputedStyle(b,null):b.currentStyle,j-=b.scrollTop,k-=b.scrollLeft,b===d&&(j+=b.offsetTop,k+=b.offsetLeft,l.offset.doesNotAddBorder&&(!l.offset.doesAddBorderForTableAndCells||!Jb.test(b.nodeName))&&(j+=parseFloat(c.borderTopWidth)||0,k+=parseFloat(c.borderLeftWidth)||0),d=b.offsetParent),l.offset.subtractsBorderForOverflowNotVisible&&"visible"!== +c.overflow&&(j+=parseFloat(c.borderTopWidth)||0,k+=parseFloat(c.borderLeftWidth)||0);if("relative"===c.position||"static"===c.position)j+=h.offsetTop,k+=h.offsetLeft;l.offset.supportsFixedPosition&&"fixed"===c.position&&(j+=Math.max(g.scrollTop,h.scrollTop),k+=Math.max(g.scrollLeft,h.scrollLeft));return{top:j,left:k}};l.offset={initialize:function(){var a=z.body,b=z.createElement("div"),c,d,e,g=parseFloat(l.css(a,"marginTop"))||0;l.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0, +width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="
";a.insertBefore(b,a.firstChild);c=b.firstChild;d=c.firstChild;e=c.nextSibling.firstChild.firstChild;this.doesNotAddBorder=5!==d.offsetTop;this.doesAddBorderForTableAndCells= +5===e.offsetTop;d.style.position="fixed";d.style.top="20px";this.supportsFixedPosition=20===d.offsetTop||15===d.offsetTop;d.style.position=d.style.top="";c.style.overflow="hidden";c.style.position="relative";this.subtractsBorderForOverflowNotVisible=-5===d.offsetTop;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==g;a.removeChild(b);l.offset.initialize=l.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;l.offset.initialize();l.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(l.css(a, +"marginTop"))||0,c+=parseFloat(l.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=l.css(a,"position");"static"===d&&(a.style.position="relative");var e=l(a),g=e.offset(),h=l.css(a,"top"),j=l.css(a,"left"),k={},m={},n,p;("absolute"===d||"fixed"===d)&&-1