if(typeof (_localeLookup)=="undefined"){
_localeLookup=function(s){
return null;
};
}
function loc(){
var _2=_localeLookup(arguments[0]);
if(!_2){
_2=arguments[0].replace(/\[_(\d+)\]/g,"&$1");
}
for(var i=1;i<arguments.length;++i){
var _4=new RegExp("&"+i,"g");
_2=_2.replace(_4,arguments[i]);
}
return _2;
}
std={};
std.browser={isFF:null,isIE:null,isMoz:null,isOpera:null,isAppleWebKit:null,isSupport:null,major:null,minor:null,gecko:null,isSafariWin:null,isSafariMobile:null};
std.browser.platform={};
std.browser.applewebkit={};
std.browser.applewebkit.parseVersion=function(_5){
var _6=_5.split(".");
var _7=(_5[_5.length-1]=="+");
if(_7){
var _8="+";
}else{
var _8=parseInt(_6[1]);
if(isNaN(_8)){
_8="";
}
}
return {major:parseInt(_6[0]),minor:_8,is_nightly:_7};
};
std.browser.applewebkit.getVersion=function(){
var _9=new RegExp("\\(.*\\) AppleWebKit/(.*) \\((.*)");
var _a=_9.exec(navigator.userAgent);
if(_a){
var _b=std.browser.applewebkit.parseVersion(_a[1]);
}
return {major:_b["major"],minor:_b["minor"],is_nightly:_b["is_nightly"]};
};
(function(){
var i,_d;
var ua=navigator.userAgent;
if((std.browser.isOpera=(i=ua.indexOf("Opera"))>=0)){
std.browser.major=parseFloat(ua.substr(i+6));
}else{
if((std.browser.isAppleWebKit=((i=ua.indexOf("AppleWebKit"))>=0))){
var _f=std.browser.applewebkit.getVersion();
std.browser.major=_f["major"];
std.browser.minor=_f["minor"];
std.browser.isSafariWin=navigator.platform.indexOf("Win")==0;
std.browser.isSafariMobile=(ua.indexOf("Mobile")!=-1);
std.browser.isChrome=(ua.indexOf("Chrome")!=-1);
}else{
if((std.browser.isIE=(i=ua.indexOf("MSIE "))>=0)){
std.browser.major=parseFloat(ua.substr(i+5));
}else{
if(std.browser.isMoz=(_d=/^Mozilla.+ rv:([0-9]+\.[0-9]+)(\.[0-9]+(?:\.[0-9]+)?)?/.exec(ua))!=null){
std.browser.major=_d[1];
std.browser.minor=_d[2];
std.browser.isFF=ua.indexOf("Firefox/")!=-1;
_d=/Gecko\/([0-9]+)/.exec(ua);
if(_d){
std.browser.gecko=_d[1];
}
}
}
}
}
std.browser.platform.isWin=navigator.platform.indexOf("Win")==0;
std.browser.platform.isMacOS=(ua.indexOf("Mac OS")!=-1);
std.browser.isSupport=(std.browser.isIE&&std.browser.major>=6)||(std.browser.isMoz&&std.browser.major>=1.7&&std.browser.gecko!="20060127")||(std.browser.isOpera&&std.browser.major>=9)||(std.browser.isAppleWebKit&&std.browser.major>=3);
std.browser.isIEQuirksMode=(document.compatMode=="BackCompat"&&std.browser.isIE);
std.browser.isBorderBox=!(document.compatMode=="CSS1Compat"&&std.browser.isIE)||(std.browser.isAppleWebKit&&std.browser.major<3);
})();
std.browser.no={};
std.browser.buggy={};
(std.browser.recalcRules=function(){
if(std.browser.isSafariMobile){
std.browser.no.ondblclick=true;
}
})();
std.lang={};
std.lang.bind=function(){
var _10=std.array.from(arguments);
var obj=_10.shift(),_12=_10.shift();
if(!_12||typeof (_12)!="function"){
null.assert;
}
if(_10.length==0){
return function binded(){
return arguments.length?_12.apply(obj,arguments):_12.call(obj);
};
}else{
return function binded(){
if(arguments.length==0){
return _12.apply(obj,_10);
}else{
var _13=_10.concat();
for(var i=0;i<arguments.length;i++){
_13.push(arguments[i]);
}
return _12.apply(obj,_13);
}
};
}
};
std.lang.later=function(){
var _15=std.array.from(arguments);
var _16=_15.shift(),obj=_15.shift(),_18=_15.shift();
return setTimeout(function(){
return _18.apply(obj,_15);
},_16);
};
std.lang.defaultize=function(_19,_1a){
return typeof (_19)=="undefined"?_1a:_19;
};
std.lang.evaluate=function(ref){
return typeof (ref)=="function"?ref():ref;
};
std.lang.undef=function(val){
return typeof (val)=="undefined";
};
std.lang.isArray=function(val){
for(var i=0;i<arguments.length;i++){
var val=arguments[i];
if(typeof (val)=="undefined"||val==null||val.constructor!=Array){
return false;
}
}
return true;
};
std.lang.isString=function(val){
return (typeof (val)=="string")||(val instanceof String);
};
std.list={};
std.list.iterate=function(_20,_21){
if(typeof (_20.forEach)=="function"){
_20.forEach(_21);
}else{
for(var i=0;i<_20.length;i++){
_21(_20[i],i);
}
}
};
std.list.map=function(_23,_24){
if(typeof (_23.map)=="function"){
return _23.map(_24);
}else{
var _25=new Array();
for(var i=0;i<_23.length;i++){
_25.push(_24(_23[i],i));
}
return _25;
}
};
std.list.grep=function(_27,_28){
if(typeof (_27.filter)=="function"){
return _27.filter(_28);
}else{
var _29=new Array();
for(var i=0;i<_27.length;i++){
if(_28(_27[i],i)){
_29.push(_27[i]);
}
}
return _29;
}
};
std.list.max=function(_2b,_2c){
var max=Number.NEGATIVE_INFINITY;
for(var i=0;i<_2b.length;i++){
if(_2b[i]!=null){
max=Math.max(max,_2c(_2b[i]));
}
}
return max;
};
std.list.min=function(_2f,_30){
var min=Number.POSITIVE_INFINITY;
for(var i=0;i<_2f.length;i++){
if(_2f[i]!=null){
min=Math.min(min,_30(_2f[i]));
}
}
return min;
};
std.list.find=function(_33,_34){
for(var i=0;i<_33.length;i++){
if(_34(_33[i],i)){
return _33[i];
}
}
return null;
};
std.list.findIndex=function(_36,_37){
if(typeof (_36.indexOf)=="function"){
return _36.indexOf(_37);
}else{
for(var i=0;i<_36.length;i++){
if(_36[i]==_37){
return i;
}
}
return -1;
}
};
std.string={};
std.string._scriptFragment="(?:<script.*?>)((\n|\r|.)*?)(?:</script>)";
std.string.enclose=function(_39,_3a,end,_3c){
return _3c?_3a+_39+end:_39;
};
std.string.stripTags=function(_3d){
return _3d.replace(/<\/?[^>]+>/gi,"");
};
std.string.stripScripts=function(_3e){
return _3e.replace(new RegExp(std.string._scriptFragment,"img"),"");
};
std.string.extractScripts=function(_3f){
var _40=new RegExp(std.string._scriptFragment,"img");
var _41=new RegExp(std.string._scriptFragment,"im");
return std.list.map(_3f.match(_40)||[],function(_42){
return (_42.match(_41)||["",""])[1];
});
};
std.string.evalScripts=function(_43){
return std.list.map(std.string.extractScripts(_43),function(_44){
eval(_44);
});
};
std.string.escapeHTML=function(s){
return String(s).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");
};
std.string.fullEscapeHTML=function(s){
return std.string.escapeHTML(s).replace(/\n/g,"<br/>").replace(/  /g,"&nbsp; ");
};
std.string.autoLink=function(s){
s=s.replace(/([\d\w-+]+:\/\/[\S]+)/g,"<a href=\"$1\" target=\"_blank\" title=\"link\">$1</a>");
s=s.replace(/([\d\w-+]+@[\d\w-]+\.[\d\w-\.]{2,})/g,"<a href=\"mailto:$1\" title=\"email\">$1</a>");
return s;
};
std.string.autoLink2=function(s){
return s.replace(/\b((?:(?:http|https|ftp|news|file):\/\/)[^, \r\n"\(\)'<>]+)/g,"<a\thref=\"$1\"\ttarget=\"_blank\">$1</a>").replace(/\b([\w!#\$\%&'\*\+\-\/=\?\^`\{\|\}~\.]*[\w!#\$\%&'\*\+\-\/=\?\^`\{\|\}~]@[\w\-]+(?:\.[\w\-]+)+)/g,"<a\thref=\"mailto:$1\"\ttarget=\"_blank\">$1</a>");
};
std.string.isWhiteListURL=function(url){
return url.indexOf("#")==0||url.match(/^(http|https|ftp|news|file|mailto||editgrid):/i);
};
std.string.unescapeHTML=function(_4a){
var div=document.createElement("div");
div.innerHTML=std.string.stripTags(_4a);
return div.childNodes[0]?div.childNodes[0].nodeValue:"";
};
std.string.htmlEntities=function(s){
var div=document.createElement("div");
var _4e=document.createTextNode(s);
div.appendChild(_4e);
return div.innerHTML;
};
std.string.encodeUTF8=function(_4f){
_4f=_4f.replace(/\r\n/g,"\n");
var _50=[],ac=0;
for(var n=0;n<_4f.length;n++){
var c=_4f.charCodeAt(n);
if(c<128){
_50[ac++]=String.fromCharCode(c);
}else{
if((c>127)&&(c<2048)){
_50[ac++]=String.fromCharCode((c>>6)|192);
_50[ac++]=String.fromCharCode((c&63)|128);
}else{
_50[ac++]=String.fromCharCode((c>>12)|224);
_50[ac++]=String.fromCharCode(((c>>6)&63)|128);
_50[ac++]=String.fromCharCode((c&63)|128);
}
}
}
return _50.join("");
};
std.string.decodeUTF8=function(_54){
var _55=[],i=ac=c=c1=c2=0;
while(i<_54.length){
c=_54.charCodeAt(i);
if(c<128){
_55[ac++]=String.fromCharCode(c);
i++;
}else{
if((c>191)&&(c<224)){
c2=_54.charCodeAt(i+1);
_55[ac++]=String.fromCharCode(((c&31)<<6)|(c2&63));
i+=2;
}else{
c2=_54.charCodeAt(i+1);
c3=_54.charCodeAt(i+2);
_55[ac++]=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));
i+=3;
}
}
}
return _55.join("");
};
std.string.toArray=function(_57){
return _57.split("");
};
std.string.camelize=function(_58){
var _59=_58.split("-");
if(_59.length==1){
return _59[0];
}
var _5a=_58.indexOf("-")==0?_59[0].charAt(0).toUpperCase()+_59[0].substring(1):_59[0];
for(var i=1,len=_59.length;i<len;i++){
var s=_59[i];
_5a+=s.charAt(0).toUpperCase()+s.substring(1);
}
return _5a;
};
std.string.capitalize=function(_5e){
return _5e.charAt(0).toUpperCase()+_5e.substring(1);
};
std.string.trim=function(_5f){
return _5f.replace(/^\s*(.*)\s*$/,"$1");
};
std.string.parsePosition=function(s){
s=s.split(" ");
p={top:0,bottom:0,left:0,right:0};
for(var i=0;i<s.length;i++){
switch(s[i]){
case "top":
if(!p.bottom){
p.top=1;
}
break;
case "bottom":
if(!p.top){
p.bottom=1;
}
break;
case "left":
if(!p.right){
p.left=1;
}
break;
case "right":
if(!p.left){
p.right=1;
}
break;
}
}
return p;
};
std.string.printPosition=function(p){
s=[];
if(p.top){
s.push("top");
}else{
if(p.bottom){
s.push("bottom");
}
}
if(p.left){
s.push("left");
}else{
if(p.right){
s.push("right");
}
}
return s.join(" ");
};
std.string.times=function(s,_64){
for(var i=1;i<_64;i<<=1){
s=s+s;
}
return s.substr(0,_64);
};
std.string.lpad=function(s,len,c){
var _69=std.string.times(c,len-s.length);
return _69+s;
};
std.string.right=function(s,len){
return s.length<len?s:s.substr(s.length-len,len);
};
std.jexpr={};
std.jexpr.evaluate=function(_6c){
var _6d=typeof (_6c);
if(_6d=="function"){
return _6c.call();
}else{
if(_6d=="number"||_6d=="boolean"||_6d=="string"||_6d=="undefined"||_6c==null){
return _6c;
}else{
if(typeof (_6c.not)!="undefined"){
return !std.jexpr.evaluate(_6c.not);
}else{
if(typeof (_6c.and)=="object"){
_6c=_6c.and;
for(var i=0;i<_6c.length;i++){
if(!std.jexpr.evaluate(_6c[i])){
return false;
}
}
return true;
}else{
_6c=typeof (_6c.or)=="object"?_6c.or:_6c;
for(var i=0;i<_6c.length;i++){
if(std.jexpr.evaluate(_6c[i])){
return true;
}
}
return false;
}
}
}
}
};
std.jexpr.functor=function(_6f){
return function(){
return std.jexpr.evaluate(_6f);
};
};
std.keytable={BACKSPACE:[8,"Backspace"],TAB:[9,"Tab"],ENTER:[13,"Enter"],SHIFT:[16,"Shift"],CTRL:[17,"Ctrl"],ALT:[18,"Alt"],PAUSE:[19,"Pause"],CAPS_LOCK:[20,"Caps"],ESCAPE:[27,"Esc"],SPACE:[32,"Space"],PAGE_UP:[33,"Page Up"],PAGE_DOWN:[34,"Page Down"],END:[35,"End"],HOME:[36,"Home"],LEFT_ARROW:[37,"Left"],UP_ARROW:[38,"Up"],RIGHT_ARROW:[39,"Right"],DOWN_ARROW:[40,"Down"],INSERT:[45,"Ins"],DELETE:[46,"Del"],LEFT_WINDOW:[91,""],RIGHT_WINDOW:[92,""],SELECT:[93,""],NUM_LOCK:[144,""],SCROLL_LOCK:[145,""],";":[186,";"],"=":[187,"="],",":[188,","],".":[190,"."],"/":[191,"/"],"`":[192,"`"],"[":[219,"["],"\\":[220,"\\"],"]":[221,"]"],"'":[222,"'"],CMD:[224,""],IME:[229,""]};
for(var i=48;i<=57;i++){
std.keytable[String.fromCharCode(i)]=[i,String.fromCharCode(i)];
}
for(var i=65;i<=90;i++){
std.keytable[String.fromCharCode(i)]=[i,String.fromCharCode(i)];
}
for(var i=112;i<=123;i++){
std.keytable["F"+(i-111)]=[i,"F"+(i-111)];
}
std.action={};
std.action.AbstractAction=function(){
};
std.action.AbstractAction.prototype._initAbstractAction=function(_70){
_70=_70||{};
this._icon=_70.icon||"";
this._text=_70.text||"";
this._mnemonic=_70.mnemonic||"";
this._selected=_70.selected||"";
this._disabled=_70.disabled||false;
this.setShortcutList(_70.shortcutList||[]);
};
std.action.AbstractAction.prototype.getIcon=function(){
return std.lang.evaluate(this._icon);
};
std.action.AbstractAction.prototype.getText=function(){
return std.lang.evaluate(this._text);
};
std.action.AbstractAction.prototype.getMnemonic=function(){
return std.lang.evaluate(this._mnemonic);
};
std.action.AbstractAction.prototype.isSelected=function(){
return std.jexpr.evaluate(this._selected);
};
std.action.AbstractAction.prototype.setSelected=function(_71){
this._selected=_71;
};
std.action.AbstractAction.prototype.getShortcutList=function(){
return this._shortcutList;
};
std.action.AbstractAction.prototype.setShortcutList=function(_72){
if(_72 instanceof Array){
this._shortcutList=_72;
}else{
this._shortcutList=std.action.KeyComb.fromString(_72);
}
};
std.action.AbstractAction.prototype.addShortcut=function(_73){
if(_73 instanceof std.action.KeyComb){
this._shortcutList.push(_73);
}else{
this._shortcutList.push(new std.action.KeyComb(_73));
}
};
std.action.AbstractAction.prototype.isDisabled=function(){
return std.jexpr.evaluate(this._disabled);
};
std.action.AbstractAction.prototype.setDisabled=function(_74){
this._disabled=_74;
};
std.action.AbstractAction.prototype.getValue=function(){
return this._value;
};
std.action.AbstractAction.prototype.setValue=function(_75){
this._value=_75;
};
std.action.AbstractAction.prototype.performAction=function(){
};
std.action.Nil=function(_76){
this._initAbstractAction(_76);
};
std.action.Nil.prototype=new std.action.AbstractAction();
std.action.Script=function(_77){
this._initAbstractAction(_77);
this._script=_77.script;
};
std.action.Script.prototype=new std.action.AbstractAction();
std.action.Script.prototype.performAction=function(){
var _78=[this];
for(var i=0;i<arguments.length;i++){
_78.push(arguments[i]);
}
this._script.apply(null,_78);
};
std.action.Url=function(_7a){
this._initAbstractAction(_7a);
this._url=_7a.url;
this._popup=_7a.popup;
};
std.action.Url.prototype=new std.action.AbstractAction();
std.action.Url.prototype.performAction=function(){
std.host.open(std.lang.evaluate(this._url),this._popup);
};
std.action.KeyComb=function(_7b){
this._key=null;
this._reqCtrl=false;
this._reqAlt=false;
this._reqShift=false;
std.list.iterate(_7b.toUpperCase().split(" "),std.lang.bind(this,function(key){
switch(key){
case "CTRL":
this._reqCtrl=true;
break;
case "ALT":
this._reqAlt=true;
break;
case "SHIFT":
this._reqShift=true;
break;
default:
if(key){
this._key=std.keytable[key];
}
}
}));
};
std.action.KeyComb.fromString=function(str){
var _7e=[];
std.list.iterate(str.split(";;"),function(_7f){
_7f=std.string.trim(_7f);
if(_7f){
_7e.push(new std.action.KeyComb(_7f));
}
});
return _7e;
};
std.action.KeyComb.prototype.toString=function(){
if(!this._string){
var _80=[];
if(this._reqCtrl){
_80.push("Ctrl");
}
if(this._reqAlt){
_80.push("Alt");
}
if(this._reqShift){
_80.push("Shift");
}
_80.push(this._key[1]);
this._string=_80.join("+");
}
return this._string;
};
std.action.KeyComb.prototype.check=function(_81,_82,_83,_84,_85){
_82=_82?true:false;
_83=_83?true:false;
_84=_84?true:false;
return (_82==this._reqCtrl||(std.browser.platform.isMacOS&&(_85==this._reqCtrl)))&&_83==this._reqAlt&&_84==this._reqShift&&_81==this._key[0];
};
std.array={};
std.array.from=function(_86){
var arr=[];
for(var i=0;i<_86.length;i++){
arr.push(_86[i]);
}
return arr;
};
std.array.contains=function(_89,_8a){
for(var i=0;i<_89.length;i++){
if(_89[i]==_8a){
return true;
}
}
return false;
};
std.array.without=function(_8c,_8d,_8e){
var _8f=new Array();
if(_8e){
for(var i=0;i<_8c.length;i++){
if(!_8e(_8c[i],_8d)){
_8f.push(_8c[i]);
}
}
}else{
for(var i=0;i<_8c.length;i++){
if(_8c[i]!=_8d){
_8f.push(_8c[i]);
}
}
}
return _8f;
};
std.event={KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46};
std.event.observers=false;
std.event._observeAndCache=function(_91,_92,_93,_94){
if(!this.observers){
this.observers=[];
}
if(_91.addEventListener){
this.observers.push([_91,_92,_93,_94]);
_91.addEventListener(_92,_93,_94);
}else{
if(_91.attachEvent){
this.observers.push([_91,_92,_93,_94]);
_91.attachEvent("on"+_92,_93);
}
}
};
std.event.unloadCache=function(){
if(!std.event.observers){
return;
}
for(var i=0;i<std.event.observers.length;i++){
std.event.stopObserving.apply(this,std.event.observers[i]);
std.event.observers[i][0]=null;
}
std.event.observers=false;
};
std.event.nativeSetObserved=function(_96,_97,_98,_99,_9a){
return _96?std.event.nativeObserve(_97,_98,_99,_9a):std.event.nativeStopObserving(_97,_98,_99,_9a);
};
std.event.nativeObserve=function(_9b,_9c,_9d,_9e){
_9b=typeof (_9b)=="string"?document.getElementById(_9b):_9b;
_9b.tagName;
_9e=_9e||false;
std.event._observeAndCache(_9b,_9c,_9d,_9e);
};
std.event.nativeStopObserving=function(_9f,_a0,_a1,_a2){
_9f=typeof (_9f)=="string"?document.getElementById(_9f):_9f;
_a2=_a2||false;
if(_9f.removeEventListener){
_9f.removeEventListener(_a0,_a1,_a2);
}else{
if(_9f.detachEvent){
_9f.detachEvent("on"+_a0,_a1);
}
}
};
std.event.observe=function(_a3,_a4,_a5,_a6){
if(_a4=="keypress"&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||document.attachEvent)){
_a4="keydown";
}
std.event.nativeObserve(_a3,_a4,_a5,_a6);
};
std.event.stopObserving=function(_a7,_a8,_a9,_aa){
if(_a8=="keypress"&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||document.detachEvent)){
_a8="keydown";
}
std.event.nativeStopObserving(_a7,_a8,_a9,_aa);
};
std.event.observe(window,"unload",std.event.unloadCache,false);
std.event.listener=function(obj,_ac){
var _ad=std.array.from(arguments);
var obj=_ad.shift();
var _ac=_ad.shift();
_ac.prototype;
if(typeof _ac!="function"){
throw "Invalid method: "+_ac;
}
return function(e){
return _ac.apply(obj,[e||window.event].concat(_ad));
};
};
std.hash={};
std.hash.merge=function(){
var _af=std.array.from(arguments);
var _b0={};
for(var i=0;i<_af.length;i++){
var _b2=_af[i];
for(var _b3 in _b2){
_b0[_b3]=_b2[_b3];
}
}
return _b0;
};
std.hash.iterate=function(_b4,_b5){
for(var k in _b4){
_b5(k,_b4[k]);
}
};
std.hash.keys=function(_b7){
var _b8=[];
for(var k in _b7){
_b8.push(k);
}
return _b8;
};
std.hash.values=function(_ba){
var _bb=[];
for(var k in _ba){
_bb.push(_ba[k]);
}
return _bb;
};
std.hash.map=function(_bd,_be){
var _bf={};
for(var i=0;i<_bd.length;i++){
var _c1=_be(_bd[i],i);
_bf[_c1[0]]=_c1[1];
}
return _bf;
};
std.hash.size=function(_c2){
var cnt=0;
for(var k in _c2){
cnt++;
}
return cnt;
};
std.hash.notEmpty=function(_c5){
for(var k in _c5){
return true;
}
return false;
};
std.hash.empty=function(_c7){
for(var k in _c7){
return false;
}
return true;
};
std.dom={};
std.dom.element=function(_c9){
if(_c9){
return typeof (_c9)=="string"?document.getElementById(_c9):_c9;
}else{
return null;
}
};
std.dom.newTree=function(_ca){
var _cb=std.dom.newElement("div");
_cb.innerHTML=_ca;
return _cb.firstChild;
};
std.dom.update=function(_cc,_cd){
std.dom.element(_cc).innerHTML=std.string.stripScripts(_cd);
setTimeout(function(){
std.string.evalScripts(_cd);
},10);
};
std.conv={};
std.conv._hexTab=[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70];
std.conv.intToRGB=function(num){
return String.fromCharCode(this._hexTab[(num>>20)&15],this._hexTab[(num>>16)&15],this._hexTab[(num>>12)&15],this._hexTab[(num>>8)&15],this._hexTab[(num>>4)&15],this._hexTab[num&15]);
};
std.conv.hexToInt=function(c){
var _d0=c.toUpperCase().charCodeAt(0);
if(48<=_d0&&_d0<=58){
return _d0-48;
}
if(65<=_d0&&_d0<=70){
return _d0-65+10;
}
return 0;
};
std.conv.rgbToIntArray=function(s){
if(s===null){
return null;
}
if(s===undefined||!s.charAt){
return undefined;
}
return [16*std.conv.hexToInt(s.charAt(0))+std.conv.hexToInt(s.charAt(1)),16*std.conv.hexToInt(s.charAt(2))+std.conv.hexToInt(s.charAt(3)),16*std.conv.hexToInt(s.charAt(4))+std.conv.hexToInt(s.charAt(5))];
};
std.conv.rgbToInt=function(s){
var arr=std.conv.rgbToIntArray(s);
if(!arr){
return undefined;
}
return arr[0]*65536+arr[1]*256+arr[2];
};
std.conv.rgbArrayToInt=function(r,g,b){
return r*65536+g*256+b;
};
std.conv.anyRGBToInt=function(any){
if(any===undefined){
return any;
}else{
if(any===null||any===-1){
return -1;
}else{
if(typeof any=="number"){
return any;
}else{
if(typeof any=="string"){
return std.conv.rgbToInt(any);
}else{
if(typeof any=="object"){
if(any.r!==undefined&&any.g!==undefined&&any.b!==undefined){
return std.conv.rgbArrayToInt(any.r,any.g,any.b);
}else{
if(any[0]!==undefined&&any[1]!==undefined&&any[2]!==undefined){
return std.conv.rgbArrayToInt(any[0],any[1],any[2]);
}
}
}
}
}
}
}
throw new Error("Cannot convert ["+any+"] into an integer");
};
std.ajax={};
std.ajax._processorCount=0;
std.ajax._jsonpProcessors={};
std.ajax._emptyFunction=function(){
};
std.ajax.obtainProcessorId=function(){
if(std.ajax._processorCount>100000){
std.ajax._processorCount=0;
}
return std.ajax._processorCount++;
};
std.ajax.registerJsonpProcessor=function(id,_d9){
std.ajax._jsonpProcessors[id]=_d9;
};
std.ajax.removeJsonpProcessor=function(id){
delete std.ajax._jsonpProcessors[id];
};
std.ajax.jsonp=function(_db,_dc,_dd,_de){
if(typeof _dd=="undefined"){
_dd=200;
}
if(typeof _de=="undefined"){
_de="";
}
std.ajax._jsonpProcessors[_db](_dd,_de,_dc);
};
std.ajax.ScriptTagRequest=function(){
this._jsonpId=std.ajax.obtainProcessorId();
this._tag=null;
this._url=null;
this._content=null;
this._responseSuccess=false;
this._processError=false;
this.onreadystatechange=null;
this.readyState=0;
this.responseText="";
this.status=0;
this.statusText="";
this._headers=null;
this._maxLength=std.ajax.ScriptTagRequest.MAX_LENGTH;
};
std.ajax.ScriptTagRequest.MAX_LENGTH=1800;
std.ajax.ScriptTagRequest._idPrefix=Math.random()+"."+new Date().getTime();
std.ajax.ScriptTagRequest.prototype._reset=function(){
this._removeScriptTag();
this._content=null;
this._responseSuccess=false;
this._processError=false;
this.readyState=0;
this.responseText="";
this.status=0;
this.statusText="";
this._headers=null;
this._maxLength=std.ajax.ScriptTagRequest.MAX_LENGTH;
};
std.ajax.ScriptTagRequest.prototype._removeScriptTag=function(){
if(this._tag){
document.getElementsByTagName("HEAD")[0].removeChild(this._tag);
}
this._tag=null;
if(this._jsonpId){
std.ajax.removeJsonpProcessor(this._jsonpId);
}
};
std.ajax.ScriptTagRequest.prototype._createScriptTag=function(_df,_e0,_e1){
this._removeScriptTag();
this._responseSuccess=false;
this._processError=false;
std.ajax.registerJsonpProcessor(this._jsonpId,std.lang.bind(this,this._processResponse));
this._tag=document.createElement("script");
this._tag.type="text/javascript";
this._tag.charset="utf-8";
var url=this._url+(this._url.indexOf("?")==-1?"?":"&")+"i="+std.ajax.ScriptTagRequest._idPrefix;
url+="&jsonp="+this._jsonpId;
url+="&c="+_df;
if(_e0){
url+="&f=1";
}
if(_e1){
url+="&l=1";
}
this._tag.src=url;
std.event.observe(this._tag,"load",std.event.listener(this,this._onload));
std.event.observe(this._tag,"error",std.event.listener(this,this._onerror));
std.event.observe(this._tag,"readystatechange",std.event.listener(this,this._onreadystatechange));
document.getElementsByTagName("HEAD")[0].appendChild(this._tag);
};
std.ajax.ScriptTagRequest.prototype._onload=function(){
this._removeScriptTag();
if(!this._responseSuccess){
this._onerror();
}else{
this._sendContent();
}
};
std.ajax.ScriptTagRequest.prototype._onerror=function(){
this._removeScriptTag();
if(!this._processError){
this._processError=true;
this.status=500;
this.statusText="Error";
this.readyState=4;
this.responseText="";
if(this.onreadystatechange&&typeof this.onreadystatechange=="function"){
this.onreadystatechange();
}
}
};
std.ajax.ScriptTagRequest.prototype._onreadystatechange=function(){
if(this._tag&&this._tag.readyState&&this._tag.readyState=="loaded"){
this._onload();
}
};
std.ajax.ScriptTagRequest.prototype._sendContent=function(_e3){
if(_e3==null&&this._content==null){
return;
}
var _e4=(_e3!=null);
var _e5;
if(_e4){
this._content=_e3;
}
var c;
if(this._content.length>this._maxLength){
var _e7=this._getMaxLength();
c=this._content.substring(0,_e7);
this._content=this._content.substring(_e7);
_e5=false;
}else{
c=this._content;
this._content=null;
_e5=true;
}
this._createScriptTag(c,_e4,_e5);
};
std.ajax.ScriptTagRequest.prototype._getMaxLength=function(){
var _e8=this._maxLength;
var _e9=this._content;
while(true){
if(_e9.charAt(_e8-1)=="%"){
_e8-=1;
}else{
if(_e9.charAt(_e8-2)=="%"){
_e8-=2;
}else{
if(_e9.charAt(_e8-3)=="%"){
var _ea=std.conv.hexToInt(_e9.charAt(_e8-2));
if(_ea<=7){
break;
}
if(_ea>=8&&_ea<=11){
_e8-=3;
}
if(_ea>=12){
_e8-=3;
break;
}
}else{
break;
}
}
}
}
return _e8;
};
std.ajax.ScriptTagRequest.prototype._processResponse=function(_eb,_ec,_ed){
this._responseSuccess=true;
if(_eb!=-1){
this.status=_eb;
this._headers=_ec;
this.responseText=_ed;
this.readyState=4;
if(this.onreadystatechange&&typeof this.onreadystatechange=="function"){
this.onreadystatechange();
}
}
};
std.ajax.ScriptTagRequest.prototype.open=function(_ee,url,_f0,_f1,_f2){
this._reset();
this._url=url;
this._maxLength-=url.length;
};
std.ajax.ScriptTagRequest.prototype.send=function(_f3){
this._reset();
_f3=_f3==null?"":encodeURIComponent(_f3);
this._sendContent(_f3);
};
std.ajax.ScriptTagRequest.prototype.setRequestHeader=function(){
};
std.ajax.ScriptTagRequest.prototype.getAllResponseHeaders=function(){
return this._headers;
};
std.ajax.ScriptTagRequest.prototype.getResponseHeader=function(key){
if(!key){
return null;
}
var _f5=null;
key=key.toLowerCase()+":";
var _f6=this._headers.toLowerCase();
var i=-1;
if((i=_f6.indexOf(key))!=-1){
_f5=this._headers.substring(i+key.length,this._headers.indexOf("\n",i));
_f5=std.string.trim(_f5);
}
return _f5;
};
std.ajax.ScriptTagRequest.prototype.abort=function(){
this._removeScriptTag();
};
std.ajax.getTransport=function(_f8){
if(typeof _f8=="string"){
return eval(_f8)();
}
return std.ajax.getDefaultTransport();
};
std.ajax.getScriptTagTransport=function(){
return new std.ajax.ScriptTagRequest();
};
std.ajax.getDefaultTransport=function(){
try{
return new XMLHttpRequest();
}
catch(e){
}
finally{
}
try{
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
}
finally{
}
try{
return new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
}
finally{
}
return false;
};
std.ajax._activeRequestCount=0;
std.ajax.responders={};
std.ajax.responders._list=[];
std.ajax.responders._register=function(_f9){
if(!std.array.contains(this._list,_f9)){
this._list.push(_f9);
}
};
std.ajax.responders._unregister=function(_fa){
this._list=std.array.without(this._list,_fa);
};
std.ajax.responders._dispatch=function(_fb,_fc,_fd,_fe){
std.list.iterate(this._list,function(_ff){
if(_ff[_fb]&&typeof _ff[_fb]=="function"){
try{
_ff[_fb].apply(_ff,[_fc,_fd,_fe]);
}
catch(e){
}
}
});
};
std.ajax.responders._register({onCreate:function(){
std.ajax._activeRequestCount++;
},onComplete:function(){
std.ajax._activeRequestCount--;
}});
std.ajax.Base=function(){
};
std.ajax.Base.prototype.setOptions=function(_100){
this.options={method:"post",asynchronous:true,parameters:""};
if(_100){
this.options=std.hash.merge(this.options,_100);
}
};
std.ajax.Base.prototype.responseIsSuccess=function(){
return this.transport.status==undefined||this.transport.status==0||(this.transport.status>=200&&this.transport.status<300);
};
std.ajax.Base.prototype.responseIsFailure=function(){
return !this.responseIsSuccess();
};
std.ajax.Request=function(url,_102){
this.setOptions(_102);
this.transport=std.ajax.getTransport(this.options.transportFactory);
this.request(url);
};
std.ajax.Request.prototype=new std.ajax.Base();
std.ajax.Request.Events=["Uninitialized","Loading","Loaded","Interactive","Complete"];
std.ajax.Request.prototype.request=function(url){
var _104=this.options.parameters||"";
if(_104.length>0){
_104+="&_=";
}
try{
this.url=url;
if(this.options.method=="get"&&_104.length>0){
this.url+=(this.url.match(/\?/)?"&":"?")+_104;
}
std.ajax.responders._dispatch("onCreate",this,this.transport);
this.transport.open(this.options.method,this.url,this.options.asynchronous);
if(this.options.asynchronous){
this.transport.onreadystatechange=std.lang.bind(this,this.onStateChange);
setTimeout(std.lang.bind(this,function(){
this.respondToReadyState(1);
}),10);
}
this.setRequestHeaders();
var body=this.options.postBody?this.options.postBody:_104;
this.transport.send(this.options.method.toLowerCase()=="post"||this.options.method.toLowerCase()=="put"?body:null);
}
catch(e){
this.dispatchException(e);
}
};
std.ajax.Request.prototype.setRequestHeaders=function(){
var _106=[];
if(this.options.method.toLowerCase()=="post"){
_106.push("Content-type",this.options.contentType?this.options.contentType:"application/x-www-form-urlencoded");
if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005){
_106.push("Connection","close");
}
}
if(this.options.requestHeaders){
_106.push.apply(_106,this.options.requestHeaders);
}
for(var i=0;i<_106.length;i+=2){
this.transport.setRequestHeader(_106[i],_106[i+1]);
}
};
std.ajax.Request.prototype.onStateChange=function(){
var _108=this.transport.readyState;
if(_108!=1){
this.respondToReadyState(this.transport.readyState);
}
};
std.ajax.Request.prototype.header=function(name){
try{
return this.transport.getResponseHeader(name);
}
catch(e){
}
};
std.ajax.Request.prototype.evalJSON=function(){
try{
return eval(this.header("X-JSON"));
}
catch(e){
}
};
std.ajax.Request.prototype.evalResponse=function(){
try{
return eval(this.transport.responseText);
}
catch(e){
this.dispatchException(e);
}
};
std.ajax.Request.prototype.respondToReadyState=function(_10a){
if(typeof (std)=="undefined"){
return;
}
var _10b=std.ajax.Request.Events[_10a];
var _10c=this.transport,json=this.evalJSON();
if(_10b=="Complete"){
try{
(this.options["on"+this.transport.status]||this.options["on"+(this.responseIsSuccess()?"Success":"Failure")]||std.ajax._emptyFunction)(_10c,json);
}
catch(e){
this.dispatchException(e);
}
if((this.header("Content-type")||"").match(/^text\/javascript/i)){
this.evalResponse();
}
}
try{
(this.options["on"+_10b]||std.ajax._emptyFunction)(_10c,json);
std.ajax.responders._dispatch("on"+_10b,this,_10c,json);
}
catch(e){
this.dispatchException(e);
}
if(_10b=="Complete"){
this.transport.onreadystatechange=std.ajax._emptyFunction;
}
};
std.ajax.Request.prototype.dispatchException=function(_10e){
(this.options.onException||std.ajax._emptyFunction)(this,_10e);
std.ajax.responders._dispatch("onException",this,_10e);
};
std.ajax.Updater=function(_10f,url,_111){
this.containers={success:_10f.success?std.dom.element(_10f.success):std.dom.element(_10f),failure:_10f.failure?std.dom.element(_10f.failure):(_10f.success?null:std.dom.element(_10f))};
this.transport=std.ajax.getTransport();
this.setOptions(_111);
var _112=this.options.onComplete||std.ajax._emptyFunction;
this.options.onComplete=std.lang.bind(this,function(_113,_114){
this.updateContent();
_112(_113,_114);
});
this.request(url);
};
std.ajax.Updater.prototype=new std.ajax.Request();
std.ajax.Updater.prototype.updateContent=function(){
var _115=this.responseIsSuccess()?this.containers.success:this.containers.failure;
var _116=this.transport.responseText;
if(!this.options.evalScripts){
_116=std.string.stripScripts(_116);
}
if(_115){
if(this.options.insertion){
new this.options.insertion(_115,_116);
}else{
std.dom.update(_115,_116);
}
}
if(this.responseIsSuccess()){
if(this.onComplete){
setTimeout(std.lang.bind(this,this.onComplete),10);
}
}
};
std.ajax.getText=function(url,_118){
var ajax=new std.ajax.Request(url,{method:_118||"post",asynchronous:false});
return ajax.transport.responseText;
};
std.ajax.newTree=function(url){
var text=std.ajax.getText(url);
return std.dom.newTree(text);
};
std.ajax.ping=function(url,_11d){
new std.ajax.Request(url,std.hash.merge(_11d,{method:"post",asynchronous:true}));
};
std.ajax.loadMap=function(map,_11f,_120){
var len=0;
var dst={};
for(var i in map){
len++;
}
for(var i in map){
(function(idx){
new std.ajax.Request(map[i],std.hash.merge(_120,{onSuccess:function(_125){
dst[idx]={responseText:_125.responseText};
if(!--len){
_11f(dst);
}
}}));
})(i);
}
};
std.ani={};
std.ani.Interpolator=function(){
this._onEvent=null;
this._cp=null;
this._timer=null;
};
std.ani.Interpolator.prototype.restart=function(sp,ep,_128,step){
this.reset(sp);
this.start(sp,ep,_128,step);
};
std.ani.Interpolator.prototype.start=function(sp,ep,_12c,step){
this.stop();
if(this._cp==null){
this._cp=sp;
}
if(sp>ep){
this._cp=Math.min(sp,this._cp);
this._cp=Math.max(ep,this._cp);
}else{
this._cp=Math.max(sp,this._cp);
this._cp=Math.min(ep,this._cp);
}
this._sp=parseFloat(sp);
this._ep=parseFloat(ep);
this._period=parseFloat(_12c);
this._step=parseFloat(step);
this._st=this._calStartTime();
this._timer=setTimeout(std.lang.bind(this,this._onStep),this._step);
this._fireEvent(true,false,false);
};
std.ani.Interpolator.prototype._onStep=function(){
this._cp=this._calCurPoint();
if((this._sp>this._ep&&this._cp<=this._ep)||(this._sp<this._ep&&this._cp>=this._ep)){
this._cp=this._ep;
this._timer=null;
this._fireEvent(false,true,true);
}else{
this._timer=setTimeout(std.lang.bind(this,this._onStep),this._step);
this._fireEvent(false,false,false);
}
};
std.ani.Interpolator.prototype.stop=function(){
if(this._timer!=null){
clearTimeout(this._timer);
this._timer=null;
this._fireEvent(false,true,false);
}
};
std.ani.Interpolator.prototype.reset=function(cp){
this.stop();
this._cp=cp;
this._fireEvent(false,true,false);
};
std.ani.Interpolator.prototype.getCurPoint=function(){
return this._cp;
};
std.ani.Interpolator.prototype.setOnEvent=function(_12f){
this._onEvent=_12f;
};
std.ani.Interpolator.prototype._calStartTime=function(){
return new Date()-this._period*(this._cp-this._sp)/(this._ep-this._sp);
};
std.ani.Interpolator.prototype._calCurPoint=function(){
return this._sp+(this._ep-this._sp)*(new Date()-this._st)/this._period;
};
std.ani.Interpolator.prototype._fireEvent=function(_130,_131,_132){
if(this._onEvent!=null){
this._onEvent(this,_130,_131,_132);
}
};
std.console={};
std.console.firefoxConsole={};
std.console.firefoxConsole.log=function(_133,_134){
switch(_133){
case "DEBUG":
console.debug(_134);
break;
case " INFO":
console.info(_134);
break;
case " WARN":
console.warn(_134);
break;
case "ERROR":
console.error(_134);
break;
}
};
std.console.webkitConsole={};
std.console.webkitConsole.log=function(_135,_136){
console.log("["+_135+"] "+_136);
};
std.console.operaConsole={};
std.console.operaConsole.log=function(_137,_138){
opera.postError("["+_137+"] "+_138);
};
std.console.nullConsole={};
std.console.nullConsole.log=function(_139,_13a){
};
std.console.defaultConsole=(function(){
if(typeof console!="undefined"){
return std.browser.isAppleWebKit?std.console.webkitConsole:std.console.firefoxConsole;
}else{
if(typeof opera!="undefined"){
return std.console.operaConsole;
}
}
return std.console.nullConsole;
})();
std.log={};
std.log._console=std.console.defaultConsole;
std.log.debug=function(_13b){
std.log._console.log("DEBUG",_13b);
};
std.log.info=function(_13c){
std.log._console.log(" INFO",_13c);
};
std.log.warn=function(_13d){
std.log._console.log(" WARN",_13d);
};
std.log.error=function(_13e){
std.log._console.log("ERROR",_13e);
};
std.log.setConsole=function(_13f){
std.log._console=_13f;
};
std.log.getConsole=function(){
return std.log._console;
};
std.async={};
std.async.call=function(obj,func){
var args=[];
if(func.__async__){
args.push(function(){
});
args.push(func.__throw__?func.__throw__:function(e){
setTimeout(function(){
throw e;
},0);
});
}
for(var i=2;i<arguments.length;i++){
args.push(arguments[i]);
}
func.apply(obj,args);
};
std.cookies={};
std.cookies.set=function(name,_146,days){
if(days){
var date=new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var _149="; expires="+date.toGMTString();
}else{
var _149="";
}
document.cookie=name+"="+_146+_149+"; path=/";
};
std.cookies.get=function(name){
var _14b=name+"=";
var ca=document.cookie.split(";");
for(var i=0;i<ca.length;i++){
var c=ca[i];
while(c.charAt(0)==" "){
c=c.substring(1,c.length);
}
if(c.indexOf(_14b)==0){
return c.substring(_14b.length,c.length);
}
}
return null;
};
std.cookies.remove=function(name){
std.cookies.set(name,"",-1);
};
std.css={};
std.css.bulkset=function(){
var attr=arguments[0];
for(var i=1;i<arguments.length;i++){
var data=arguments[i];
var _153=data[0];
for(var j=1;j<data.length;j++){
std.dom.element(data[j]).style[attr]=_153;
}
}
};
std.css.getStyle=function(_155,_156){
std.css.getElementStyle(std.dom.element(_155),_156);
};
std.css.getElementStyle=function(_157,_158){
var _159=_157.style[std.string.camelize(_158)];
if(!_159){
if(document.defaultView&&document.defaultView.getComputedStyle){
var css=document.defaultView.getComputedStyle(_157,null);
_159=css?css.getPropertyValue(_158):null;
}else{
if(_157.currentStyle){
_159=_157.currentStyle[std.string.camelize(_158)];
}
}
}
if(window.opera&&(_158=="left"||_158=="top"||_158=="right"||_158=="bottom")){
if(std.css.getStyle(_157,"position")=="static"){
_159="auto";
}
}
return _159=="auto"?null:_159;
};
std.css.setStyle=function(_15b,_15c){
_15b=std.dom.element(_15b);
for(name in _15c){
_15b.style[std.string.camelize(name)]=_15c[name];
}
};
std.css.includeClass=function(_15d,_15e){
var _15f=_15d.className.split(" ");
var _160=0;
for(var i=0;i<_15f.length;i++){
if(_15f[i]==_15e){
_160=1;
break;
}
}
if(!_160){
_15f.push(_15e);
_15d.className=_15f.join(" ");
}
};
std.css.excludeClass=function(_162,_163){
var _164=_162.className.split(" ");
var _165=[];
for(var i=0;i<_164.length;i++){
if(_164[i]!=_163){
_165.push(_164[i]);
}
}
if(_164.length!=_165.length){
_162.className=_165.join(" ");
}
};
std.css._switchOnEvent=function(_167,_168,_169,_16a){
std.css.includeClass(_167,_169);
if(!_167[_168]){
if(_16a){
std.event.observe(_167,_16a,std.lang.bind(null,std.css.excludeClass,_167,_169));
}
_167[_168]=true;
}
};
std.css.hoverClass=function(_16b,_16c){
std.css._switchOnEvent(_16b,"std.css.hoverClass.set",_16c,"mouseout");
};
std.css.clickClass=function(_16d,_16e){
std.css._switchOnEvent(_16d,"std.css.clickClass.set",_16e,"mouseup");
};
std.css.focusClass=function(_16f,_170){
std.css._switchOnEvent(_16f,"std.css.focusClass.set",_170,"blur");
};
std.customfocus={};
std.customfocus.Manager=function(){
this._focusList={next:null};
this._docFocusListenerList=[];
this._docBlurListenerList=[];
std.event.observe(document,"mousedown",std.event.listener(this,this._onDocMouseDown));
};
std.customfocus.Manager.prototype.newDelegator=function(_171,_172,_173){
return new std.customfocus.Delegator(this,_171,_172,_173);
};
std.customfocus.Manager.prototype.focus=function(obj,_175,_176){
this.detach(obj);
var _177=this._focusList.next;
var _178={obj:obj,onfocus:_175,onblur:_176,next:this._focusList.next};
this._focusList.next=_178;
if(_177&&_177.onblur){
_177.onblur.call();
}
if(_178.onfocus){
_178.onfocus.call();
}
};
std.customfocus.Manager.prototype.blur=function(obj){
if(this.isFocused(obj)){
var _17a=this._focusList.next;
var _17b=this._focusList.next.next;
this._focusList.next=_17b;
if(_17a.onblur){
_17a.onblur.call();
}
if(_17b&&_17b.onfocus){
_17b.onfocus.call();
}
}
};
std.customfocus.Manager.prototype.detach=function(obj){
for(var edge=this._focusList;edge.next;edge=edge.next){
if(edge.next.obj==obj){
edge.next=edge.next.next;
return;
}
}
};
std.customfocus.Manager.prototype.focusOnEvent=function(obj,_17f,_180){
if(!this._inEvent){
this._inEvent=true;
setTimeout(std.lang.bind(this,this._afterEvent),0);
this.focus(obj,_17f,_180);
}
};
std.customfocus.Manager.prototype._afterEvent=function(){
this._inEvent=false;
};
std.customfocus.Manager.prototype.isFocused=function(obj){
return this._focusList.next&&this._focusList.next.obj==obj;
};
std.customfocus.Manager.prototype.attachDocFocusListener=function(_182){
this._docFocusListenerList.push(_182);
};
std.customfocus.Manager.prototype.attachDocBlurListener=function(_183){
this._docBlurListenerList.push(_183);
};
std.customfocus.Manager.prototype.detachDocFocusListener=function(_184){
for(var i=0;i<this._docFocusListenerList.length;i++){
if(this._docFocusListenerList[i]==_184){
this._docFocusListenerList.splice(i,1);
break;
}
}
};
std.customfocus.Manager.prototype.detachDocBlurListener=function(_186){
for(var i=0;i<this._docBlurListenerList.length;i++){
if(this._docBlurListenerList[i]==_186){
this._docBlurListenerList.splice(i,1);
break;
}
}
};
std.customfocus.Manager.prototype._onDocMouseDown=function(e){
this.focusOnEvent(document,std.lang.bind(this,this._onDocFocus),std.lang.bind(this,this._onDocBlur));
};
std.customfocus.Manager.prototype._onDocFocus=function(){
std.list.iterate(this._docFocusListenerList,function(_189){
_189.call();
});
};
std.customfocus.Manager.prototype._onDocBlur=function(){
std.list.iterate(this._docBlurListenerList,function(_18a){
_18a.call();
});
};
std.customfocus.getManager=function(){
return std.customfocus._manager||(std.customfocus._manager=new std.customfocus.Manager());
};
std.customfocus.Delegator=function(_18b,_18c,_18d,_18e){
this._manager=_18b;
this._relative=_18c;
this._onfocus=_18d;
this._onblur=_18e;
};
std.customfocus.Delegator.prototype.focus=function(){
this._manager.focus(this,this._onfocus,this._onblur);
};
std.customfocus.Delegator.prototype.focusOnEvent=function(){
this._manager.focusOnEvent(this,this._onfocus,this._onblur);
};
std.customfocus.Delegator.prototype.blur=function(){
this._manager.blur(this);
};
std.customfocus.Delegator.prototype.isFocused=function(){
return this._manager.isFocused(this);
};
std.customfocus.Delegator.prototype.detach=function(){
this._manager.detach(this);
};
std.date={};
std.date.fromSqlUTC=function(str){
var time=Date.UTC(str.substr(0,4),str.substr(4,2)-1,str.substr(6,2),str.substr(8,2),str.substr(10,2),str.substr(12,2));
return new Date(time);
};
std.date.asTimeStrUTC=function(date){
return date.toUTCString().split(" ")[4]+(date.getUTCMilliseconds()/1000).toFixed(3).substring(1);
};
std.date.format=function(dt,fmt){
var _194={y:"getFullYear",M:"getMonth",d:"getDate",H:"getHours",m:"getMinutes",s:"getSeconds"};
var _195={};
var _196=["yyyy","yy","MM","dd","HH","mm","ss"];
var _197=[4,2,2,2,2,2,2];
var _198=[0,0,1,0,0,0,0];
var _199=[12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11];
var _19a=[1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0];
var _19b=["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
var val,res;
while(fmt.indexOf("MMM")!=-1){
if(val==null){
val=""+_19b[_195["M"]=dt.getMonth()+1];
}
fmt=fmt.replace("MMM",val);
}
val=null;
while(fmt.indexOf("hh")!=-1){
if(val==null){
val=dt.getHours();
}
fmt=fmt.replace("hh",_199[val]);
}
while(fmt.indexOf("a")!=-1){
if(val==null){
val=dt.getHours();
}
fmt=fmt.replace("a",_19a[val]?"AM":"PM");
}
for(var i=0;i<_196.length;++i){
var pat=_196[i],val=null;
while(fmt.indexOf(pat)!=-1){
if(val==null){
var c=pat.charAt(0);
var r=_197[i];
if((res=_195[c])==null){
res=_195[c]=""+((dt[_194[c]]()-0)+_198[i]);
}
val=std.string.lpad(std.string.right(res,r),r,"0");
}
fmt=fmt.replace(pat,val);
}
}
return fmt;
};
std.dom.newElement=function(_1a2,_1a3,_1a4,_1a5,doc){
var ele=(doc||document).createElement(_1a2);
if(_1a4){
for(var key in _1a4){
ele[key]=_1a4[key];
}
}
if(_1a5){
for(var key in _1a5){
ele.style[key]=_1a5[key];
}
}
if(_1a3){
_1a3.appendChild(ele);
}
return ele;
};
std.dom.setStyles=function(node,_1aa){
for(var key in _1aa){
node.style[key]=_1aa[key];
}
};
std.dom.remove=function(_1ac){
_1ac=std.dom.element(_1ac);
_1ac.parentNode.removeChild(_1ac);
};
std.dom.getDimensions=function(_1ad){
_1ad=std.dom.element(_1ad);
if(_1ad==document.body){
return std.dom.getBodyExtent();
}
if(std.css.getStyle(_1ad,"display")!="none"){
return {width:_1ad.offsetWidth,height:_1ad.offsetHeight};
}
var els=_1ad.style;
var _1af=els.visibility;
var _1b0=els.position;
els.visibility="hidden";
els.position="absolute";
els.display="";
var _1b1=_1ad.clientWidth;
var _1b2=_1ad.clientHeight;
els.display="none";
els.position=_1b0;
els.visibility=_1af;
return {width:_1b1,height:_1b2};
};
std.dom.newDiv=function(_1b3,_1b4,_1b5,doc){
return std.dom.newElement("div",_1b3,_1b4,_1b5,doc);
};
std.dom.newText=function(data,_1b8,doc){
doc=doc||document;
var node=doc.createTextNode(data);
if(_1b8){
_1b8.appendChild(node);
}
return node;
};
std.dom.newComment=function(data,_1bc,doc){
doc=doc||document;
var node=doc.createComment(data);
if(_1bc){
_1bc.appendChild(node);
}
return node;
};
std.dom.parentForm=function(_1bf){
_1bf=std.dom.element(_1bf);
while(_1bf.parentNode){
_1bf=_1bf.parentNode;
if(_1bf.tagName.toLowerCase()=="form"){
return _1bf;
}
}
return null;
};
std.dom.backtrack=function(_1c0,func){
_1c0=std.dom.element(_1c0);
while(_1c0&&func(_1c0)){
_1c0=_1c0.parentNode;
}
return _1c0;
};
std.dom.findPrev=function(_1c2,func){
_1c2=std.dom.element(_1c2);
do{
_1c2=_1c2.previousSibling;
}while(_1c2&&!func(_1c2));
return _1c2;
};
std.dom.findNext=function(_1c4,func){
_1c4=std.dom.element(_1c4);
do{
_1c4=_1c4.nextSibling;
}while(_1c4&&!func(_1c4));
return _1c4;
};
std.dom.show=function(_1c6){
_1c6=std.dom.element(_1c6);
_1c6.style.display="";
_1c6._showAtTime=new Date();
};
std.dom.hide=function(_1c7,_1c8){
var now=new Date();
_1c8=_1c8||0;
_1c7=std.dom.element(_1c7);
if(_1c8>0){
var _1ca=_1c7._showAtTime||0;
var _1cb=now-_1c7._showAtTime;
if(_1cb>=_1c8){
_1c7.style.display="none";
}else{
setTimeout(std.lang.bind(null,std.dom.hide,_1c7,0),_1c8-_1cb);
}
}else{
_1c7.style.display="none";
}
};
std.dom.toggleShowHide=function(_1cc,_1cd){
_1cc=std.dom.element(_1cc);
if(_1cc.style.display=="none"){
this.show(_1cc);
}else{
this.hide(_1cc,_1cd);
}
};
std.dom.Builder=function(_1ce,doc){
this.current=_1ce;
this.doc=doc;
};
std.dom.Builder.prototype.push=function(_1d0,_1d1,_1d2){
return this.current=this.append(_1d0,_1d1,_1d2);
};
std.dom.Builder.prototype.pushElement=function(_1d3){
return this.push(std.lang.isString(_1d3)?[_1d3]:_1d3);
};
std.dom.Builder.prototype.pop=function(){
var node=this.current;
this.current=this.current.parentNode;
return node;
};
std.dom.Builder.prototype.peek=function(){
return this.current;
};
std.dom.Builder.prototype.next=function(_1d5,_1d6,_1d7){
this.pop();
return this.push(_1d5,_1d6,_1d7);
};
std.dom.Builder.prototype.nextElement=function(_1d8){
return this.next(std.lang.isString(_1d8)?[_1d8]:_1d8);
};
std.dom.Builder.prototype.append=function(_1d9,_1da,_1db){
if(typeof (_1d9.join)=="function"){
return std.dom.newText(_1d9.join("\n"),this.current,this.doc);
}else{
if(typeof (_1d9.nodeType)=="number"){
this.current.appendChild(_1d9);
return _1d9;
}else{
if(_1d9){
return std.dom.newElement(_1d9,this.current,_1da,_1db,this.doc);
}
}
}
};
std.dom.Builder.prototype.appendElement=function(_1dc){
return this.append(std.lang.isString(_1dc)?[_1dc]:_1dc);
};
std.dom.Builder.prototype.reset=function(){
this.current=null;
};
std.dom.addOption=function(_1dd,_1de){
if(_1dd.options&&_1dd.options.add){
_1dd.options.add(_1de);
}else{
_1dd.add(_1de,null);
}
};
std.dom.clearOptions=function(_1df){
while(_1df.length){
_1df.remove(0);
}
};
std.dom.clearChildren=function(node){
if(std.browser.isIE){
var _1e1;
while(_1e1=node.lastChild){
node.removeChild(_1e1);
}
}else{
node.innerHTML="";
}
};
std.dom.appendChildren=function(node,_1e3){
if(!std.lang.isArray(_1e3)){
_1e3=[_1e3];
}
for(var i=0;i<_1e3.length;i++){
node.appendChild(_1e3[i]);
}
};
std.dom.setChildren=function(node,_1e6){
std.dom.clearChildren(node);
std.dom.appendChildren(node,_1e6);
};
std.dom.opacity=function(_1e7,op){
_1e7=std.dom.element(_1e7);
if(std.browser.isIE){
_1e7.style.filter=op==1?"":"progid:DXImageTransform.Microsoft.Alpha(opacity="+parseInt(op*100)+")";
}else{
_1e7.style.opacity=op;
}
};
std.dom.extractAttachmentPoints=function(root,_1ea){
root=std.dom.element(root);
var _1eb=_1ea?_1ea:"attachPoint";
var _1ec=root.getElementsByTagName("*");
var map={};
for(var i=_1ec.length-1;i>=0;i--){
var node=_1ec.item(i);
var attr=node.getAttribute(_1eb);
if(attr){
if(map[attr]){
if(map[attr] instanceof Array){
map[attr].push(node);
}else{
map[attr]=[map[attr],node];
}
}else{
map[attr]=node;
}
}
}
if(root.getAttribute(_1eb)){
map[root.getAttribute(_1eb)]=root;
}
return map;
};
std.dom.getEventTarget=function(e){
var e=e?e:window.event;
return e.target?e.target:e.srcElement;
};
std.dom.getTargetPos=function(_1f2){
var pos={x:0,y:0};
if(_1f2.x&&_1f2.y){
pos.x+=_1f2.x;
pos.y+=_1f2.y;
}else{
do{
pos.x+=_1f2.offsetLeft||0;
pos.y+=_1f2.offsetTop||0;
_1f2=_1f2.offsetParent;
if(_1f2&&_1f2!=document.body){
pos.x-=_1f2.scrollLeft;
pos.y-=_1f2.scrollTop;
}
}while(_1f2);
}
return pos;
};
std.dom.getBounds=function(node){
var pos=std.dom.getTargetPos(node);
var size=std.dom.getDimensions(node);
return {top:pos.y,left:pos.x,bottom:pos.y+size.height-1,right:pos.x+size.width-1,height:size.height,width:size.width};
};
std.dom.getEventPos=function(e){
return std.dom.getTargetPos(std.dom.getEventTarget(e));
};
std.dom.getOffsetMid=function(node){
return node.offsetLeft+parseInt(node.offsetWidth/2);
};
std.dom.getOffset=function(node){
return node.offsetLeft;
};
std.dom.getBodyExtent=function(){
if(std.browser.isSafariMobile){
return {width:window.innerWidth,height:window.innerHeight};
}else{
if(!std.dom._bodyExtendProbe){
std.dom._bodyExtendProbe=std.dom.newElement("div",document.body,null,{position:"absolute",top:"100%",left:"100%",visibility:"hidden"});
}
var pos=std.dom.getTargetPos(std.dom._bodyExtendProbe);
return {width:pos.x,height:pos.y};
}
};
std.dom.noselect=function(node){
node.style.MozUserSelect="none";
node.unselectable="on";
};
std.event.KeyCodes={};
std.event.KeyCodes.generic={KEY_BACKSPACE:8,KEY_TAB:9,KEY_ENTER:13,KEY_SHIFT:16,KEY_CTRL:17,KEY_ALT:18,KEY_PAUSE:19,KEY_CAPS_LOCK:20,KEY_ESCAPE:27,KEY_SPACE:32,KEY_PAGE_UP:33,KEY_PAGE_DOWN:34,KEY_END:35,KEY_HOME:36,KEY_LEFT_ARROW:37,KEY_UP_ARROW:38,KEY_RIGHT_ARROW:39,KEY_DOWN_ARROW:40,KEY_INSERT:45,KEY_DELETE:46,KEY_LEFT_WINDOW:91,KEY_RIGHT_WINDOW:92,KEY_SELECT:93,KEY_F1:112,KEY_F2:113,KEY_F3:114,KEY_F4:115,KEY_F5:116,KEY_F6:117,KEY_F7:118,KEY_F8:119,KEY_F9:120,KEY_F10:121,KEY_F11:122,KEY_F12:123,KEY_NUM_LOCK:144,KEY_SCROLL_LOCK:145,KEY_CMD:224,KEY_IME:229};
std.event.KeyCodes.webkit418={KEY_BACKSPACE:8,KEY_TAB:9,KEY_ENTER:13,KEY_SHIFT:16,KEY_CTRL:17,KEY_ALT:18,KEY_PAUSE:63250,KEY_CAPS_LOCK:20,KEY_ESCAPE:27,KEY_SPACE:32,KEY_PAGE_UP:63276,KEY_PAGE_DOWN:63277,KEY_END:63275,KEY_HOME:63273,KEY_LEFT_ARROW:63234,KEY_UP_ARROW:63232,KEY_RIGHT_ARROW:63235,KEY_DOWN_ARROW:63233,KEY_INSERT:63302,KEY_DELETE:63272,KEY_LEFT_WINDOW:91,KEY_RIGHT_WINDOW:92,KEY_SELECT:93,KEY_F1:63236,KEY_F2:63237,KEY_F3:63238,KEY_F4:63239,KEY_F5:63240,KEY_F6:63241,KEY_F7:63242,KEY_F8:63243,KEY_F9:63244,KEY_F10:63245,KEY_F11:63246,KEY_F12:63247,KEY_NUM_LOCK:144,KEY_SCROLL_LOCK:145};
std.event.KeyMap={AppleWebKit:{63250:19,63276:33,63277:34,63275:35,63273:36,63234:37,63232:38,63235:39,63233:40,63302:45,63272:46,63236:112,63237:113,63238:114,63239:115,63240:116,63241:117,63242:118,63243:119,63244:120,63245:121,63246:122,63247:123}};
std.event.getKeyCodes=function(e){
if(e&&e.type!="keypress"){
return std.event.KeyCodes.generic;
}
if(std.browser.isAppleWebKit&&!std.browser.isSafariWin){
return std.event.KeyCodes.webkit418;
}
return std.event.KeyCodes.generic;
};
std.event.getKeyCode=function(e){
if(std.browser.isSafariWin&&std.browser.major>=3){
var key=e.keyIdentifier.toLowerCase();
var _1ff=std.event.getKeyCodes(e);
var _200={"up":_1ff.KEY_UP_ARROW,"down":_1ff.KEY_DOWN_ARROW,"left":_1ff.KEY_LEFT_ARROW,"right":_1ff.KEY_RIGHT_ARROW,"home":_1ff.KEY_HOME,"end":_1ff.KEY_END,"pageup":_1ff.KEY_PAGE_UP,"pagedown":_1ff.KEY_PAGE_DOWN,"insert":_1ff.KEY_INSERT,"u+00007f":_1ff.KEY_DELETE,"f2":_1ff.KEY_F2};
if(_200[key]){
return _200[key];
}
}
return e.keyCode||e.which;
};
std.event.getChar=function(e){
var code=std.browser.isIE||std.browser.isOpera?e.keyCode:e.charCode;
if(std.browser.isAppleWebKit){
if(e.ctrlKey&&code<96){
code+=96;
}
}
return String.fromCharCode(code).toUpperCase();
};
std.event.getCharCode=function(e){
return std.browser.isIE?e.keyCode:std.browser.isOpera?e.which:e.charCode;
};
std.event.getOffset=function(e){
return {x:e.offsetX||e.layerX,y:e.offsetY||e.layerY};
};
std.event.listener=function(){
var _205=std.array.from(arguments);
var obj=_205.shift(),_207=_205.shift();
if(!_207||typeof (_207)!="function"){
null.assert;
}
if(_205.length==0){
return function listener(e){
return _207.call(obj,e||window.event);
};
}else{
return function listener(e){
return _207.apply(obj,[e||window.event].concat(_205));
};
}
};
std.event.element=function(_20a){
return _20a.target||_20a.srcElement;
};
std.event.toElement=function(_20b){
return _20b.relatedTarget||_20b.toElement;
};
std.event.fromElement=function(_20c){
return _20c.relatedTarget||_20c.fromElement;
};
std.event.isLeftClick=function(_20d){
return (((_20d.which)&&(_20d.which==1))||((_20d.button)&&(_20d.button==1)));
};
std.event.isCmdDown=function(_20e){
return _20e.metaKey&&std.browser.platform.isMacOS;
};
std.event.pointerX=function(_20f){
return _20f.pageX||(_20f.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft));
};
std.event.pointerY=function(_210){
return _210.pageY||(_210.clientY+(document.documentElement.scrollTop||document.body.scrollTop));
};
std.event.vanish=function(_211){
std.event.stop(_211);
std.event.preventDefault(_211);
};
std.event.stop=function(_212){
_212=_212||window.event;
if(_212.stopPropagation){
_212.stopPropagation();
}else{
_212.cancelBubble=true;
}
};
std.event.dispatchMouseEvent=function(node,_214,evt){
if(node.dispatchEvent){
if(evt==null){
evt={bubbles:true,cancelable:true,view:window,detail:0,screenX:0,screenY:0,clientX:0,clientY:0,ctrlKey:false,altKey:false,shiftKey:false,metaKey:false,button:0,relatedTarget:null};
}
var e=document.createEvent("MouseEvents");
e.initMouseEvent(_214,evt.bubbles,evt.cancelable,evt.view,evt.detail,evt.screenX,evt.screenY,evt.clientX,evt.clientY,evt.ctrlKey,evt.altKey,evt.shiftKey,evt.metaKey,evt.button,evt.relatedTarget);
return node.dispatchEvent(e);
}
return true;
};
std.event.preventDefault=function(_217){
_217=_217||window.event;
if(_217.preventDefault){
_217.preventDefault();
}else{
_217.returnValue=false;
}
};
std.event.ObserverChain=function(_218,name){
this.clz=std.event.ObserverChain;
this.element=_218;
this.name=name;
this.observers=[];
this.listener=std.event.listener(this,this._observer);
std.event.observe(_218,name,this.listener,false);
};
std.event.ObserverChain._instances=[];
std.event.ObserverChain.getInstance=function(_21a,name){
var _21c=std.event.ObserverChain._instances;
for(var i=0;i<_21c.length;i++){
var _21e=_21c[i];
if(_21e.element==_21a&&_21e.name==name){
return _21e;
}
}
var _21e=new std.event.ObserverChain(_21a,name);
_21c.push(_21e);
return _21e;
};
std.event.ObserverChain.removeInstance=function(_21f){
std.event.ObserverChain._instances=std.array.without(std.event.ObserverChain._instances,_21f);
};
std.event.ObserverChain.prototype.addObserver=function(_220){
this.observers.push(_220);
};
std.event.ObserverChain.prototype.removeObserver=function(_221){
this.observers=std.array.without(this.observers,_221);
if(this.observers.length==0){
std.event.stopObserving(this.listener);
this.clz.removeInstance(this);
}
};
std.event.ObserverChain.prototype._observer=function(e){
for(var i=0;i<this.observers.length;i++){
this.observers[i](e);
}
};
std.event.chainObserve=function(_224,name,_226){
std.event.ObserverChain.getInstance(_224,name).addObserver(_226);
};
std.event.stopChainObserving=function(_227,name,_229){
std.event.ObserverChain.getInstance(_227,name).removeObserver(_229);
};
std.event.keyObserve=function(_22a,name,_22c,_22d){
return std.event.keySetObserved(true,_22a,name,_22c,_22d);
};
std.event.keyStopObserving=function(_22e,name,_230,_231){
return std.event.keySetObserved(false,_22e,name,_230,_231);
};
std.event.keySetObserved=function(_232,_233,name,_235,_236){
var _237=null;
var _238;
if((_238=this._keyListenerTable[name])==null){
_238=this._keyListenerTable[name]=[];
}
if(_232){
_237=std.event._keyListener(_235,name);
_238.push({observer:_235,keyObserver:_237});
}else{
for(var i=0;i<_238.length;++i){
if(_238[i]&&_238[i].observer===_235){
_237=_238[i].keyObserver;
_238[i]=null;
break;
}
}
if(_237==null){
return;
}
}
switch(name){
case "keydown":
case "keyup":
std.event.nativeSetObserved(_232,_233,name,_237,_236);
break;
case "keypress":
if(std.browser.isIE){
std.event.nativeSetObserved(_232,_233,"keydown",_237,_236);
}else{
if(std.browser.isAppleWebKit){
if(std.browser.major<=525&&std.browser.platform.IsMacOS){
std.event.nativeSetObserved(_232,_233,"keypress",_237,_236);
std.event.nativeSetObserved(_232,_233,"keydown",_237,_236);
}else{
std.event.nativeSetObserved(_232,_233,"keydown",_237,_236);
}
}else{
std.event.nativeSetObserved(_232,_233,"keypress",_237,_236);
}
}
break;
case "keyinput":
if(std.browser.isAppleWebKit&&std.browser.platform.isMacOS){
if(std.browser.major==522){
std.event.nativeSetObserved(_232,_233,"keydown",_237,_236);
}
std.event.nativeSetObserved(_232,_233,"keypress",_237,_236);
}else{
if(std.browser.isAppleWebKit){
std.event.nativeSetObserved(_232,_233,"keypress",_237,_236);
}else{
std.event.nativeSetObserved(_232,_233,"keypress",_237,_236);
}
}
break;
default:
throw "Unsupported event: "+name;
}
};
std.event._keyListenerTable={};
std.event._keyListener=function(_23a,name){
return function(e){
var ke={keyIdentifier:null,evt:e||window.event};
switch(name){
case "keydown":
case "keyup":
if(std.browser.isFF){
if(ke.evt.keyCode==59){
ke.keyIdentifier=186;
}else{
ke.keyIdentifier=ke.evt.keyCode;
}
}else{
if(std.browser.isOpera){
if(ke.evt.keyCode==44){
ke.keyIdentifier=188;
}else{
if(ke.evt.keyCode==47){
ke.keyIdentifier=191;
}else{
if(ke.evt.keyCode==59){
ke.keyIdentifier=186;
}else{
if(ke.evt.keyCode==96){
ke.keyIdentifier=192;
}else{
ke.keyIdentifier=ke.evt.keyCode;
}
}
}
}
}else{
ke.keyIdentifier=ke.evt.keyCode;
}
}
break;
case "keypress":
if(std.browser.isFF){
if(ke.evt.keyCode){
ke.keyIdentifier=ke.evt.keyCode;
}else{
if(ke.evt.charCode==59){
ke.keyIdentifier=186;
}else{
if(ke.evt.charCode==32||(ke.evt.charCode>=65&&ke.evt.charCode<=90)||(ke.evt.charCode>=48&&ke.evt.charCode<=57)){
ke.keyIdentifier=ke.evt.charCode;
}else{
if(ke.evt.charCode>=97&&ke.evt.charCode<=122){
ke.keyIdentifier=ke.evt.charCode-32;
}else{
ke.keyIdentifier=0;
}
}
}
}
}else{
if(std.browser.isAppleWebKit){
if(ke.evt.type=="keydown"){
ke.keyIdentifier=ke.evt.keyCode;
}else{
if(ke.evt.charCode==32||(ke.evt.charCode>=65&&ke.evt.charCode<=90)||(ke.evt.charCode>=48&&ke.evt.charCode<=57)){
ke.keyIdentifier=ke.evt.charCode;
}else{
if(ke.evt.charCode>=97&&ke.evt.charCode<=122){
ke.keyIdentifier=ke.evt.charCode-32;
}else{
ke.keyIdentifier=std.event.KeyMap.AppleWebKit[ke.evt.charCode]||0;
}
}
}
}else{
if(std.browser.isOpera){
if(!ke.evt.which){
ke.keyIdentifier=ke.evt.keyCode;
}else{
if(ke.evt.keyCode==59){
ke.keyIdentifier=186;
}else{
if(ke.evt.keyCode==32||(ke.evt.keyCode>=65&&ke.evt.keyCode<=90)||(ke.evt.keyCode>=48&&ke.evt.keyCode<=57)){
ke.keyIdentifier=ke.evt.keyCode;
}else{
if(ke.evt.keyCode>=97&&ke.evt.keyCode<=122){
ke.keyIdentifier=ke.evt.keyCode-32;
}else{
ke.keyIdentifier=ke.evt.keyCode;
}
}
}
}
}else{
ke.keyIdentifier=ke.evt.keyCode;
}
}
}
break;
case "keyinput":
if(std.browser.isIE){
ke.keyIdentifier=ke.evt.keyCode;
}else{
if(std.browser.isOpera){
ke.keyIdentifier=ke.evt.keyCode==ke.evt.which?ke.evt.keyCode:0;
}else{
ke.keyIdentifier=ke.evt.charCode;
}
}
break;
default:
throw "Illegal event: "+name;
}
return _23a(ke);
};
};
std.event.onContextMenu=function(_23e,_23f,_240){
var _241=std.event.listener(null,function(e){
var _243=std.dom.getEventTarget(e);
if(_243.tagName.match(/^a$/i)||(_243.tagName.match(/input/i)&&_243.type.match(/button/i))){
return;
}
if(e.button==0&&e.ctrlKey){
_23f(e);
}
});
std.event.observe(_23e,"mousedown",_241,_240);
std.event.observe(_23e,"contextmenu",_23f,_240);
};
std.event.getEventTarget=function(_244){
return _244.target||_244.srcElement;
};
std.event.afterLoaded=function(func){
std.event.observe(window,"load",func,false);
};
std.external={};
std.external.addFavorite=function(url,_247){
if(window.sidebar&&window.sidebar.addPanel){
try{
window.sidebar.addPanel(_247,url,"");
}
catch(e){
}
}else{
if(window.external){
window.external.AddFavorite(url,_247);
}else{
alert("To add bookmark, please press "+(std.browser.isMacOS?"Cmd+D":"Ctrl+D"));
}
}
};
std.form={};
std.form.submit=function(form){
if(typeof form.onsubmit=="function"){
if(form.onsubmit()){
form.submit();
}
}else{
form.submit();
}
};
std.form.serialize=function(form){
var _24a=std.form.getElements(std.dom.element(form));
var _24b=new Array();
for(var i=0;i<_24a.length;i++){
var _24d=std.form.element.serialize(_24a[i]);
if(_24d){
_24b.push(_24d);
}
}
return _24b.join("&");
};
std.form.getElements=function(form){
form=std.dom.element(form);
var _24f=new Array();
for(tagName in std.form.element.serializer){
var _250=form.getElementsByTagName(tagName);
for(var j=0;j<_250.length;j++){
_24f.push(_250[j]);
}
}
return _24f;
};
std.form.getInputs=function(form,_253,name){
form=std.dom.element(form);
var _255=form.getElementsByTagName("input");
if(!_253&&!name){
return _255;
}
var _256=new Array();
for(var i=0;i<_255.length;i++){
var _258=_255[i];
if((_253&&_258.type!=_253)||(name&&_258.name!=name)){
continue;
}
_256.push(_258);
}
return _256;
};
std.form.calculateChecked=function(form,name){
var _25b=std.form.getInputs(form,"checkbox",name);
var c=0;
for(var i=0;i<_25b.length;i++){
if(_25b[i].checked){
c++;
}
}
return c;
};
std.form.checkboxSync=function(_25e,name){
std.list.iterate(std.form.getInputs(_25e.form,"checkbox",name),function(_260){
_260.checked=_25e.checked;
});
};
std.form.value=function(form,name){
return std.form.values(form,name)[0];
};
std.form.values=function(form,name){
var _265=std.list.grep(form.elements,function(ele){
return (ele.name==name)&&!ele.disabled&&((ele.type!="radio"&&ele.type!="checkbox")||ele.checked);
});
return std.list.map(_265,function(ele){
return std.form.element.getValue(ele);
});
};
std.form.disable=function(form){
var _269=std.form.getElements(form);
for(var i=0;i<_269.length;i++){
var _26b=_269[i];
_26b.blur();
_26b.disabled="true";
}
};
std.form.enable=function(form){
var _26d=std.form.getElements(form);
for(var i=0;i<_26d.length;i++){
var _26f=_26d[i];
_26f.disabled="";
}
};
std.form.findFirstElement=function(node){
var _271=node.tagName.toLowerCase()=="form"?[node]:node.getElementsByTagName("form");
for(var i=0;i<_271.length;i++){
var _273=std.form.getElements(_271[i]);
for(var j=0;j<_273.length;j++){
var _275=_273[j].tagName.toLowerCase();
if(_273[j].type!="hidden"&&!_273[j].disabled&&("input"==_275||"select"==_275||"textarea"==_275)){
return _273[j];
}
}
}
return null;
};
std.form.isIntrinsicControl=function(node){
return "|BUTTON|INPUT|TEXTAREA|SELECT|OPTION|A|".indexOf(node.tagName)!=-1;
};
std.form.focusFirstElement=function(node){
var _278=std.form.findFirstElement(node);
if(_278){
_278.focus();
if(_278.select){
_278.select();
}
return true;
}else{
return false;
}
};
std.form.focusDocumentFirstElement=function(){
var _279=document.forms;
for(var i=0;i<_279.length;i++){
if(std.form.focusFirstElement(_279[i])){
break;
}
}
};
std.form.reset=function(form){
std.dom.element(form).reset();
};
std.form.element={};
std.form.element.serialize=function(_27c){
_27c=std.dom.element(_27c);
var _27d=_27c.tagName.toLowerCase();
var _27e=std.form.element.serializer[_27d](_27c);
if(_27e){
var key=encodeURIComponent(_27e[0]);
if(key.length==0){
return;
}
if(_27e[1].constructor!=Array){
_27e[1]=[_27e[1]];
}
return std.list.map(_27e[1],function(_280){
return key+"="+encodeURIComponent(_280);
}).join("&");
}
};
std.form.element.getValue=function(_281){
_281=std.dom.element(_281);
var _282=_281.tagName.toLowerCase();
var _283=std.form.element.serializer[_282](_281);
if(_283){
return _283[1];
}
};
std.form.element.serializer={};
std.form.element.serializer.input=function(_284){
switch(_284.type.toLowerCase()){
case "submit":
case "hidden":
case "password":
case "text":
return std.form.element.serializer.textarea(_284);
case "checkbox":
case "radio":
return std.form.element.serializer.inputSelector(_284);
}
return false;
};
std.form.element.serializer.inputSelector=function(_285){
if(_285.checked){
return [_285.name,_285.value];
}
};
std.form.element.serializer.textarea=function(_286){
return [_286.name,_286.value];
};
std.form.element.serializer.select=function(_287){
return std.form.element.serializer[_287.type=="select-one"?"selectOne":"selectMany"](_287);
};
std.form.element.serializer.selectOne=function(_288){
var _289="",opt,_28b=_288.selectedIndex;
if(_28b>=0){
opt=_288.options[_28b];
_289=opt.value;
if(!_289&&!("value" in opt)){
_289=opt.text;
}
}
return [_288.name,_289];
};
std.form.element.serializer.selectMany=function(_28c){
var _28d=new Array();
for(var i=0;i<_28c.length;i++){
var opt=_28c.options[i];
if(opt.selected){
var _290=opt.value;
if(!_290&&!("value" in opt)){
_290=opt.text;
}
_28d.push(_290);
}
}
return [_28c.name,_28d];
};
std.form._ifEmptyDisableHandler=function(_291,_292){
for(var i=0;i<_292.length;++i){
(function(){
_292[i].disabled=_291.value=="";
})();
}
};
std.form.ifEmptyDisable=function(_294,_295){
std.event.observe(_294,"keyup",function(){
setTimeout(function(){
std.form._ifEmptyDisableHandler(_294,_295);
},1);
});
std.form._ifEmptyDisableHandler(_294,_295);
};
std.functor={};
std.functor.not=function(func){
return function(){
return !func();
};
};
std.functor.and=function(){
var _297=std.array.from(arguments);
return function(){
for(var i=0;i<_297.length;i++){
if(!_297[i]()){
return false;
}
}
return true;
};
};
std.functor.or=function(){
var _299=std.array.from(arguments);
return function(){
for(var i=0;i<_299.length;i++){
if(_299[i]()){
return true;
}
}
return false;
};
};
std.host={};
std.host.bookmark=function(_29b,url){
if(window.sidebar){
window.sidebar.addPanel(_29b,url,"");
}else{
if(window.external){
window.external.AddFavorite(url,_29b);
}else{
if(window.opera&&window.print){
return true;
}
}
}
};
std.host.open=function(url,_29e){
if(_29e){
if(typeof (_29e)=="string"){
var w=window.open(url,_29e);
w.focus();
}else{
window.open(url);
}
}else{
window.location.href=url;
}
};
std.host.reload=function(){
window.location.href=window.location.href;
};
std.json={};
std.json.arrayToJSONString=function(self){
var a=["["],b=0,i,l=self.length;
for(i=0;i<l;i+=1){
var s=std.json.toJSONString(self[i]);
if(b++){
a.push(",");
}
a.push(s);
}
a.push("]");
return a.join("");
};
std.json.booleanToJSONString=function(self){
return String(self);
};
std.json.dateToJSONString=function(self){
return std.date.format(self,"\"yyyy-MM-ddThh:mm:ss\"");
};
std.json.numberToJSONString=function(self){
return isFinite(self)?String(self):"null";
};
std.json.toJSONString=function(self){
switch(typeof self){
case "object":
if(self){
if(typeof self.toJSONString==="function"){
return (self.toJSONString());
}
var clz=self.constructor;
if(clz==Array){
return std.json.arrayToJSONString(self);
}else{
if(clz==Date){
return std.json.dateToJSONString(self);
}else{
if(clz==Object){
return std.json.mapToJSONString(self);
}
}
}
}else{
return "null";
}
case "string":
return std.json.stringToJSONString(self);
case "number":
return std.json.numberToJSONString(self);
case "boolean":
return std.json.booleanToJSONString(self);
}
};
std.json.mapToJSONString=function(self){
var a=["{"],b=0,k;
for(k in self){
if(self.hasOwnProperty(k)){
var s=std.json.toJSONString(self[k]);
if(b++){
a.push(",");
}
a.push(std.json.toJSONString(k),":",s);
}
}
a.push("}");
return a.join("");
};
std.json.parse=function(str){
var res={json:null,error:null,isSuccess:true,isError:false};
try{
res.json=eval("("+str+")");
}
catch(e){
res.error=e;
res.isSuccess=true;
res.isError=true;
}
return res;
};
std.json.parseJSON=function(self,_2b3){
try{
if(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(self)){
var j=eval("("+self+")");
if(typeof _2b3==="function"){
std.log.warn("std.json.parseJSON(): filter not supported");
}
return j;
}
}
catch(e){
}
throw new SyntaxError("parseJSON");
};
std.json.stringToJSONString=function(self){
if(/["\\\x00-\x1f]/.test(self)){
return "\""+self.replace(/([\x00-\x1f\\"])/g,std.json._replaceFunc)+"\"";
}
return "\""+self+"\"";
};
std.json._replaceFunc=function(a,b){
var m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\"":"\\\"","\\":"\\\\"};
var c=m[b];
if(c){
return c;
}
c=b.charCodeAt();
return "\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16);
};
std.math={};
std.math.compareQuad=function(a1,a2,b1,b2){
var res={};
if(a1[0]==b1[0]&&a1[1]==b1[1]&&a2[0]==b2[0]&&a2[1]==b2[1]){
res.enclose=0;
res.overlap=2;
}else{
if(a2[0]<b1[0]||a1[0]>b2[0]||a2[1]<b1[1]||a1[1]>b2[1]){
res.enclose=0;
res.overlap=0;
}else{
if(a1[0]<=b1[0]&&a1[1]<=b1[1]&&a2[0]>=b2[0]&&a2[1]>=b2[1]){
res.enclose=1;
res.overlap=1;
}else{
if(a1[0]>=b1[0]&&a1[1]>=b1[1]&&a2[0]<=b2[0]&&a2[1]<=b2[1]){
res.enclose=-1;
res.overlap=1;
}else{
res.enclose=0;
res.overlap=1;
}
}
}
}
return res;
};
std.math.calcPointAlign=function(x,y,w,h,W,H){
var _2c5={"bottom":0,"top":0,"right":0,"left":0};
var _2c6=H-(y+h);
var _2c7=y-h;
var _2c8=W-(x+w);
var _2c9=x-w;
_2c5[(_2c6<0&&_2c7>_2c6)?"bottom":"top"]=1;
_2c5[(_2c8<0&&_2c9>_2c8)?"right":"left"]=1;
return _2c5;
};
std.math.calcPointPlacement=function(x,y,w,h,W,H){
var _2d0=std.math.calcPointAlign(x,y,w,h,W,H);
return {align:_2d0,x:x-_2d0.right*w,y:y-_2d0.bottom*h};
};
std.math.calcBoxAlign=function(bx,by,bw,bh,w,h,W,H,_2d9){
var hori=_2d9?1:0;
var vert=_2d9?0:1;
var _2dc={"bottom":0,"top":0,"right":0,"left":0};
var _2dd=H-(by+(bh*hori)+h);
var _2de=by+(bh*vert)-h;
var _2df=W-(bx+(bw*vert)+w);
var _2e0=bx+(bw*hori)-w;
_2dc[(_2dd<0&&_2de>_2dd)?"bottom":"top"]=1;
_2dc[(_2df<0&&_2e0>_2df)?"right":"left"]=1;
return _2dc;
};
std.math.calcBoxPlacement=function(bx,by,bw,bh,w,h,W,H,_2e9){
var _2ea=std.math.calcBoxAlign(bx,by,bw,bh,w,h,W,H,_2e9);
if(_2e9){
return {align:_2ea,x:bx+_2ea.right*(bw-w),y:by+_2ea.top*bh-_2ea.bottom*h};
}else{
return {align:_2ea,x:bx+_2ea.left*bw-_2ea.right*w,y:by+_2ea.bottom*(bh-h)};
}
};
std.topic={};
std.topic.define=function(obj,name){
obj[name]={src:obj,subscribers:[]};
};
std.topic.subscribe=function(obj,name,func){
obj[name].subscribers.push(func);
};
std.topic.unsubscribe=function(obj,name,func){
obj[name].subscribers=std.array.without(obj[name].subscribers,func);
};
std.topic.hasSubscribers=function(obj,name){
return obj[name].subscribers.length>0;
};
std.topic.publish=function(obj,name){
var subs=obj[name].subscribers;
if(arguments.length<=2){
for(var i=0;i<subs.length;i++){
subs[i].call(this.src);
}
}else{
if(arguments.length<=3){
for(var i=0;i<subs.length;i++){
subs[i].call(this.src,arguments[2]);
}
}else{
var args=[];
for(var i=2;i<arguments.length;i++){
args[i-2]=arguments[i];
}
for(var i=0;i<subs.length;i++){
subs[i].apply(this.src,args);
}
}
}
};
std.mocker={instances:new Array(),regExpNodes:{},extractNodeContent:function(_2fa,html){
var re,res;
if(!(re=std.mocker.regExpNodes[_2fa])){
std.mocker.regExpNodes[_2fa]=re=new RegExp("<"+_2fa+"[^>]*>","im");
}
res=re.exec(html);
return res?html.substring(res.index+res[0].length,html.indexOf("</"+_2fa+">")):"";
},release:function(){
for(var k in std.mocker.instances){
std.mocker.instances[k].release();
}
}};
std.mocker.mock=function(_2ff,url,_301,_302,_303,_304){
var _305=new std.mocker.MockInstance(_2ff,url,_303,_304);
std.topic.subscribe(_305,"onLoad",_302);
if(_301){
window.setTimeout(std.lang.bind(_305,_305.load),0);
}
return _305;
};
std.mocker.MockInstance=function(_306,_307,_308,_309){
this.target=std.dom.element(_306);
this.initUrl=_307;
this.instanceId=std.mocker.instances.length;
this.transportFactory=_308;
this.extraUrlParams=_309||{};
std.mocker.instances.push(this);
std.topic.define(this,"onLoad");
std.topic.define(this,"onRefresh");
};
std.mocker.MockInstance.prototype.load=function(){
this.loaded=false;
var ajax=new std.ajax.Request(this._constructUrl(this.initUrl),{transportFactory:this.transportFactory,method:"get",asynchronous:true,onSuccess:std.lang.bind(this,this._transfer)});
};
std.mocker.MockInstance.prototype._constructUrl=function(url){
for(var key in this.extraUrlParams){
url+=(url.indexOf("?")==-1?"?":"&")+encodeURIComponent(key)+"="+encodeURIComponent(this.extraUrlParams[key]);
}
return url;
};
std.mocker.MockInstance.prototype._handleSubmit=function(form){
var ajax=new std.ajax.Request(this._constructUrl(form.action),{transportFactory:this.transportFactory,method:"post",asynchronous:true,postBody:std.form.serialize(form),onSuccess:std.lang.bind(this,this._transfer)});
};
std.mocker.MockInstance.prototype._handleLink=function(link){
this.reload(link.href);
};
std.mocker.MockInstance.prototype.reload=function(url){
var ajax=new std.ajax.Request(this._constructUrl(url),{transportFactory:this.transportFactory,method:"get",asynchronous:true,onSuccess:std.lang.bind(this,this._transfer)});
};
std.mocker.MockInstance.prototype._transfer=function(req){
var self=this;
var html=req.responseText;
var _315=std.mocker.extractNodeContent("body",html);
this.target.innerHTML=std.string.stripScripts(_315);
std.list.iterate(this.target.getElementsByTagName("a"),function(link,idx){
if(link.getAttribute("preserve")){
return;
}
if(!link.href.indexOf("javascript:")){
return;
}
var _318=link.onclick;
link.onclick=function(e){
try{
if(_318){
_318.call(link,e);
}
self._handleLink(link);
}
catch(ex){
alert("Exception executing Mocker link: "+ex);
}
return false;
};
});
std.list.iterate(this.target.getElementsByTagName("form"),function(form,idx){
if(form.getAttribute("preserve")){
return;
}
if(!form.action.indexOf("javascript:")){
return;
}
var _31c=form.onsubmit;
form.onsubmit=function(e){
try{
var ret;
if(_31c){
ret=_31c.call(form,e);
}
if(typeof (ret)=="undefined"||ret){
self._handleSubmit(form);
}
}
catch(ex){
alert("Exception executing Mocker submit: "+ex);
}
return false;
};
});
try{
eval(std.mocker.extractNodeContent("script",_315));
}
catch(e){
std.log.warn(e);
}
if(!this.loaded){
this.loaded=true;
std.topic.publish(this,"onLoad");
}else{
std.topic.publish(this,"onRefresh");
}
};
std.mocker.MockInstance.prototype.release=function(req){
std.list.iterate(this.target.getElementsByTagName("a"),function(link,idx){
link.onclick=null;
link.innerHTML="";
});
std.list.iterate(this.target.getElementsByTagName("form"),function(form,idx){
form.onsubmit=null;
form.innerHTML="";
});
this.target.innerHTML="";
this.target=null;
};
std.perf={};
std.perf.base=new Date();
std.perf.data={};
std.perf.mark=function(_324,_325){
if(_325||typeof (this.data[_324])=="undefined"){
this.data[_324]=new Date()-std.perf.base;
}
};
std.perf.list=function(){
var _326=[];
var last=0;
for(var _328 in this.data){
var time=this.data[_328];
_326.push(_328+": "+(time-last)+" @"+time+"ms");
last=time;
}
return _326;
};
std.perf.csv=function(){
var _32a=[];
var _32b=[];
var last=0;
for(var _32d in this.data){
var time=this.data[_32d];
_32a.push(_32d);
_32b.push(time-last);
last=time;
}
_32a.push(_32b);
return _32a.join(",");
};
std.queue={};
std.queue.AsyncQueue=function(){
};
std.queue.AsyncQueue.prototype.init=function(_32f,prop){
this._callback=_32f;
this._prop=prop||{};
this._timeout=this._prop.timeout||0;
this._queue=[];
this._lock=false;
return this;
};
std.queue.AsyncQueue.prototype.enqueue=function(obj){
this._queue.push(obj);
var self=this;
if(!this._lock){
this._lock=true;
setTimeout(function(){
self._dequeue();
},this._timeout);
}
};
std.queue.AsyncQueue.prototype._dequeue=function(){
while(this._queue.length>0){
this._callback(this._queue.shift());
}
this._lock=false;
};
std.queue.BatchAsyncQueue=function(){
};
std.queue.BatchAsyncQueue.prototype=new std.queue.AsyncQueue();
std.queue.BatchAsyncQueue.prototype._dequeue=function(){
var objs=[];
while(this._queue.length>0){
objs.push(this._queue.shift());
}
this._callback(objs);
this._lock=false;
};
std.global=this;
std.range={};
std.range.moveCaretEnd=function(_334){
if(_334.setSelectionRange){
_334.focus();
_334.setSelectionRange(_334.value.length,_334.value.length);
}else{
if(_334.createTextRange){
var _335=_334.createTextRange();
_335["mo"+"ve"]("textedit",1);
_335.select();
}else{
throw "No suitable range impl";
}
}
};
std.range.moveCaretBegin=function(_336){
if(_336.setSelectionRange){
_336.focus();
_336.setSelectionRange(0,0);
}else{
if(_336.createTextRange){
var _337=_336.createTextRange();
_337["mo"+"ve"]("textedit",-1);
_337.select();
}else{
throw "No suitable range impl";
}
}
};
std.range.getInputSelection=function(_338){
var ret={start:0,end:0,size:0};
if(_338.selectionStart||_338.selectionStart=="0"){
ret.start=_338.selectionStart;
ret.end=_338.selectionEnd;
ret.size=ret.end-ret.start;
}else{
if(document.selection){
var sel=document.selection.createRange();
var full=sel.duplicate();
if(_338.tagName=="INPUT"){
full=_338.createTextRange();
}else{
full.moveToElementText(_338);
}
for(ret.size=0;sel.compareEndPoints("EndToStart",sel)==1;++ret.size){
sel.moveEnd("character",-1);
}
for(ret.start=0;sel.compareEndPoints("StartToStart",full)==1;++ret.start){
sel.moveStart("character",-1);
}
ret.end=ret.start+ret.size;
}else{
throw "No suitable range impl";
}
}
return ret;
};
std.range.insertAtCursor=function(_33c,str){
if(document.selection){
var sel=document.selection.createRange();
sel.text=str;
if(std.browser.isOpera&&std.browser.platform.isWin){
_33c.selectionStart+=str.replace("\n","\r\n").length;
}else{
sel.select();
}
}else{
if(_33c.selectionStart||_33c.selectionStart=="0"){
var _33f=_33c.selectionStart;
_33c.value=_33c.value.substring(0,_33f)+str+_33c.value.substring(_33c.selectionEnd,_33c.value.length);
_33c.selectionStart=_33f+=str.length;
_33c.selectionEnd=_33f;
}else{
_33c.value+=str;
}
}
};
std.global=this;
std.storage={};
std.storage.CookieStorage=function(_340){
this.expireDays=_340;
};
std.storage.CookieStorage.prototype.setItem=function(key,val){
std.cookies.set(key,val,this.expireDays);
};
std.storage.CookieStorage.prototype.getItem=function(key){
return std.cookies.get(key);
};
std.storage.CookieStorage.prototype.removeItem=function(key){
std.cookies.remove(key);
};
std.storage.cookieGlobalStorage=new std.storage.CookieStorage(365*25);
std.storage.global={};
std.storage.global.getStorage=function(_345){
try{
var key=_345||location.hostname;
return key.indexOf(".")!=-1?window.globalStorage[key]:std.storage.cookieGlobalStorage;
}
catch(e){
return std.storage.cookieGlobalStorage;
}
};
std.tunnel={};
std.tunnel.newTunnel=function(prop){
if(window.postMessage){
return new std.tunnel.PostMessageTunnel().init(prop);
}else{
if(std.browser.isIE){
return new std.tunnel.IEIFrameTunnel().init(prop);
}else{
return new std.tunnel.IFrameTunnel().init(prop);
}
}
};
std.tunnel.AbstractTunnel=function(){
};
std.tunnel.AbstractTunnel.prototype.DONE="d";
std.tunnel.AbstractTunnel.prototype.CALL="c";
std.tunnel.AbstractTunnel.prototype.RETURN="r";
std.tunnel.AbstractTunnel.prototype.SHUTDOWN="s";
std.tunnel.AbstractTunnel.prototype.DEFAULT_RATE_LIMIT=500;
std.tunnel.AbstractTunnel.prototype.init=function(prop){
this._done=false;
this._inited=false;
this._shutdown=false;
this._funcs={};
this._callbacks={};
this._errHandlers={};
this._pendingCalls=[];
this._rates={};
var self=this;
this._queue=new std.queue.BatchAsyncQueue().init(function(objs){
self._send(objs);
});
this._lastReceiveCid=-1;
this._lastCallCid=0;
this._debug=prop.debug;
this._rateLimit=prop.rateLimit||this.DEFAULT_RATE_LIMIT;
this.doInit(prop);
return this;
};
std.tunnel.AbstractTunnel.prototype.shutdown=function(_34b){
if(this._debug){
this.log("SHUTDO","Shutdown");
}
if(this._onShutdown){
this._onShutdown();
}
if(!this._remote){
this._send([this.SHUTDOWN]);
}
this._shutdown=true;
this._inited=false;
this._funcs=null;
this._callbacks=null;
this._errHandlers=null;
this._calls=null;
this._queue=null;
};
std.tunnel.AbstractTunnel.prototype.setConsole=function(_34c){
std.log.setConsole(_34c);
};
std.tunnel.AbstractTunnel.prototype.setOnShutdown=function(f){
this._onShutdown=f;
};
std.tunnel.AbstractTunnel.prototype.log=function(func,msg){
if(this._debug){
var msg="["+location.host+"] "+func+" - "+msg;
std.log.debug(msg);
}
};
std.tunnel.AbstractTunnel.prototype.register=function(fid,func){
if(this._debug){
this.log("REGIST",fid);
}
this._funcs[fid]=func;
};
std.tunnel.AbstractTunnel.prototype._send=function(msg){
};
std.tunnel.AbstractTunnel.prototype.send=function(cmd,msg){
if(this._debug){
this.log("SEND  ","["+cmd+"] "+msg);
}
this._queue.enqueue(cmd+msg);
};
std.tunnel.AbstractTunnel.prototype._receive=function(msgs){
if(this._debug){
this.log("Q-RECE",msgs);
}
var msgs=msgs.split("|");
for(var i=0;i<msgs.length;i++){
var msg=msgs[i];
this.receive(msg.charAt(0),msg.substring(1));
}
};
std.tunnel.AbstractTunnel.prototype.receive=function(cmd,msg){
if(this._shutdown){
return;
}
switch(cmd){
case this.DONE:
this.receiveDone(msg);
break;
case this.CALL:
this.receiveCall(msg);
break;
case this.RETURN:
this.receiveReturn(msg);
break;
case this.SHUTDOWN:
this.shutdown(true);
break;
default:
throw new Error("Unknown command ["+cmd+"]");
}
};
std.tunnel.AbstractTunnel.prototype.call=function(fid,args,_35c,_35d){
if(this._shutdown){
return;
}
if(!this._inited){
this._appendPendingCall(fid,args,_35c,_35d);
return;
}
var cid=this._lastCallCid++;
if(this._debug){
this.log("CALL  ",fid+"("+args+") - "+cid);
}
if(_35c){
this._callbacks[cid]=_35c;
}
if(_35d){
this._errHandlers[cid]=_35d;
}
var msg=encodeURIComponent(fid)+"&";
msg+=encodeURIComponent(args)+"&";
msg+=encodeURIComponent(cid);
this.send(this.CALL,msg);
};
std.tunnel.AbstractTunnel.prototype.receiveCall=function(s){
var s=s.split("&");
var fid=decodeURIComponent(s[0]);
var args=decodeURIComponent(s[1]);
var cid=parseInt(decodeURIComponent(s[2]));
if(this._debug){
this.log("R-CALL",fid+"("+args+") - "+cid);
}
this._enqueue(fid,args,cid);
};
std.tunnel.AbstractTunnel.prototype.returz=function(cid,ret,err){
if(!this._inited){
return;
}
if(this._debug){
this.log("RETURN",cid+"("+ret+", "+err+")");
}
var msg=encodeURIComponent(cid)+"&";
msg+=(ret===undefined?"@":(ret===null?"$":encodeURIComponent(ret)))+"&";
msg+=(err===undefined?"@":(err===null?"$":encodeURIComponent(err)));
this.send(this.RETURN,msg);
};
std.tunnel.AbstractTunnel.prototype.receiveReturn=function(s){
var s=s.split("&");
var cid=decodeURIComponent(s[0]);
var ret=s[1]=="@"?undefined:(s[1]=="$"?null:decodeURIComponent(s[1]));
var err=s[2]=="@"?undefined:(s[2]=="$"?null:decodeURIComponent(s[2]));
if(this._debug){
this.log("R-RETU",cid+"("+ret+", "+err+")");
}
var _36c=this._callbacks[cid];
var _36d=this._errHandlers[cid];
if(_36c){
delete this._callbacks[cid];
}
if(_36d){
delete this._errHandlers[cid];
}
if(err){
if(_36d){
try{
_36d(err);
}
catch(e){
setTimeout(function(){
throw e;
},0);
}
}else{
setTimeout(function(){
throw new Error(err);
},0);
}
}else{
if(_36c){
try{
_36c(ret);
}
catch(e){
setTimeout(function(){
throw e;
},0);
}
}
}
};
std.tunnel.AbstractTunnel.prototype.done=function(){
if(this._shutdown){
return;
}
if(this._debug){
this.log("DONE  ","Initialization done");
}
this._done=true;
this.send(this.DONE,"");
};
std.tunnel.AbstractTunnel.prototype.receiveDone=function(msg){
if(this._shutdown){
return;
}
if(this._debug){
this.log("R-DONE","Initialization done");
}
if(!this._inited){
this._inited=true;
if(this._done){
this.send(this.DONE,"");
}
this._firePendingCalls();
}
};
std.tunnel.AbstractTunnel.prototype._appendPendingCall=function(fid,args,_371,_372){
this._pendingCalls.push({fid:fid,args:args,callback:_371,errHandler:_372});
};
std.tunnel.AbstractTunnel.prototype._firePendingCalls=function(){
for(var i=0;i<this._pendingCalls.length;i++){
var call=this._pendingCalls[i];
this.call(call.fid,call.args,call.callback,call.errHandler);
}
this._pendingCalls=null;
};
std.tunnel.AbstractTunnel.prototype._enqueue=function(fid,args,cid){
this._queue[cid]={fid:fid,args:args,cid:cid};
if(cid==this._lastReceiveCid+1){
this._dequeue(cid);
}
};
std.tunnel.AbstractTunnel.prototype._dequeue=function(cid){
var call;
while((call=this._queue[cid])){
if(this._recordRate()){
return;
}
var ret,err;
var fid=call.fid;
var args=call.args;
delete this._queue[cid];
var func=this._funcs[fid];
if(!func){
err="Cannot find function: "+fid;
}else{
if(args!=""){
args=args.split(",");
for(var i=0;i<args.length;i++){
args[i]=decodeURIComponent(args[i]);
}
}
ret=func(args);
if(ret.error){
err=ret.error.message?ret.error.message:ret.error;
}
}
if(this._debug){
this.log("DEQUEU",fid+" - "+cid+"("+(ret?ret.result:"null")+", "+err+")");
}
try{
top.frames[location.host].tunnel.returz(cid,ret?ret.result:undefined,err);
}
catch(e){
top.frames["gridContainer"].frames[location.host].tunnel.returz(cid,ret?ret.result:undefined,err);
}
this._lastReceiveCid=cid;
cid=cid+1;
}
};
std.tunnel.AbstractTunnel.prototype._recordRate=function(){
var time=parseInt(new Date().getTime()/100);
if(!this._rates[time]){
this._rates[time]=1;
}else{
this._rates[time]++;
}
return this._checkRate(time);
};
std.tunnel.AbstractTunnel.prototype._checkRate=function(time){
var rate=0;
for(var i in this._rates){
if(i<time-600){
delete this._rates[i];
}else{
rate+=this._rates[i];
}
}
if(rate>this._rateLimit){
this.shutdown();
return true;
}
return false;
};
std.tunnel.IFrameTunnel=function(){
};
std.tunnel.IFrameTunnel.prototype=new std.tunnel.AbstractTunnel();
std.tunnel.IFrameTunnel.prototype.doInit=function(prop){
this._courierUrl=prop.remoteBase+"tunnel/courier";
if(prop.remoteDomain){
this._courierUrl+="?d="+prop.remoteDomain;
}
var self=this;
window.receive=function(s){
self._receive(s);
};
};
std.tunnel.IFrameTunnel.prototype._send=function(msgs){
var url=this._courierUrl+"#"+msgs.join("|");
this._createIFrame(url);
};
std.tunnel.IFrameTunnel.prototype._createIFrame=function(url){
if(this._debug){
this.log("I-SEND",url);
}
var _38a=document.createElement("iframe");
if(!std.browser.isIE){
document.body.appendChild(_38a);
}
function __onload(){
setTimeout(function(){
document.body.removeChild(_38a);
},0);
}
if(_38a.attachEvent){
_38a.attachEvent("onload",__onload);
}else{
if(_38a.addEventListener){
_38a.addEventListener("load",__onload,false);
}
}
_38a.src=url;
if(std.browser.isIE){
document.body.appendChild(_38a);
}
};
std.tunnel.IEIFrameTunnel=function(){
this._id=0;
this._buffers={};
};
std.tunnel.IEIFrameTunnel.prototype=new std.tunnel.IFrameTunnel();
std.tunnel.IEIFrameTunnel.prototype.MAX_LENGTH=3800;
std.tunnel.IEIFrameTunnel.prototype._send=function(msgs){
var msg=msgs.join("|");
var p=Math.ceil(msg.length/this.MAX_LENGTH);
var id=this._id++;
for(var i=0;i<p;i++){
var hash=id+"|"+i+"|"+p+"|"+msg.substring(i*this.MAX_LENGTH,(i+1)*this.MAX_LENGTH);
var url=this._courierUrl+"#"+hash;
this._createIFrame(url);
}
};
std.tunnel.IEIFrameTunnel.prototype._receive=function(msgs){
if(this._debug){
this.log("IE-REC",msgs);
}
msgs=msgs.split("|");
var id=msgs.shift();
var pos=msgs.shift();
var max=msgs.shift();
msgs=msgs.join("|");
if(max==1){
this._superReceive(msgs);
}else{
if(this._fillBuffer(id,pos,max,msgs)){
var m=this._flushBuffer(id);
this._superReceive(m);
}
}
};
std.tunnel.IEIFrameTunnel.prototype._superReceive=function(msgs){
std.tunnel.IFrameTunnel.prototype._receive.call(this,msgs);
};
std.tunnel.IEIFrameTunnel.prototype._getBuffer=function(id,max){
var _39a=this._buffers[id];
if(!_39a){
_39a=this._buffers[id]={buffer:[],count:0,max:max};
}
return _39a;
};
std.tunnel.IEIFrameTunnel.prototype._fillBuffer=function(id,pos,max,msgs){
var _39f=this._getBuffer(id,max);
_39f.buffer[pos]=msgs;
_39f.count++;
return _39f.count==_39f.max;
};
std.tunnel.IEIFrameTunnel.prototype._flushBuffer=function(id){
var _3a1=this._getBuffer(id);
if(_3a1.count!=_3a1.max){
throw new Error("Buffer is not ready for flush");
}
var ret=_3a1.buffer.join("");
delete this._buffers[id];
return ret;
};
std.tunnel.PostMessageTunnel=function(){
};
std.tunnel.PostMessageTunnel.prototype=new std.tunnel.AbstractTunnel();
std.tunnel.PostMessageTunnel.prototype.doInit=function(prop){
this._host=prop.remoteHost;
var self=this;
function _onMessage(e){
var msgs=e.data;
self._receive(msgs);
}
if(window.addEventListener){
window.addEventListener("message",_onMessage,false);
document.addEventListener("message",_onMessage,false);
}else{
if(window.attachEvent){
window.attachEvent("onmessage",_onMessage);
document.attachEvent("onmessage",_onMessage);
}
}
};
std.tunnel.PostMessageTunnel.prototype._send=function(msgs){
try{
try{
top.frames[this._host].postMessage(msgs.join("|"),"*");
}
catch(e){
top.frames["gridContainer"].frames[this._host].postMessage(msgs.join("|"),"*");
}
}
catch(e){
if(this._debug){
this.log("ERROR ",e.message);
}
}
};
std.updater={};
std.updater._beginUpdate=function(_3a8){
_3a8.src._std_updater_updating=true;
if(_3a8.busyElementId){
std.dom.element(_3a8.busyElementId).style.display="";
}
if(_3a8.busyDisableForm){
std.form.disable(_3a8.src);
}
if(_3a8.preUpdate&&_3a8.preUpdate!=""){
setTimeout(function(){
eval(_3a8.preUpdate);
},0);
}
};
std.updater._endUpdate=function(_3a9){
_3a9.src._std_updater_updating=null;
if(_3a9.busyElementId){
std.dom.element(_3a9.busyElementId).style.display="none";
}
if(_3a9.busyDisableForm){
std.form.enable(_3a9.src);
}
if(_3a9.postUpdate&&_3a9.postUpdate!=""){
setTimeout(function(){
eval(_3a9.postUpdate);
},0);
}
};
std.updater._responseHandler=function(resp,_3ab){
if(_3ab.updateElementId){
var div=document.createElement("div");
div.innerHTML=resp.responseText;
var _3ad=div.getElementsByTagName("*");
for(var i=0;i<_3ad.length;i++){
var id=_3ad[i].getAttribute("id");
if(id&&id==_3ab.updateElementId){
var dest=document.getElementById(_3ab.updateElementId);
if(dest){
dest.innerHTML=_3ad[i].innerHTML;
}
break;
}
}
}
};
std.updater.handleForm=function(form){
if(form._std_updater_updating){
return;
}
var url=form.action;
var _3b3=std.form.serialize(form);
var _3b4=form.getAttribute("busyDisableForm");
var _3b5={src:form,updateElementId:form.getAttribute("updateElement"),busyElementId:form.getAttribute("busyElement"),busyDisableForm:_3b4?"true"==_3b4.toLowerCase():false,preUpdate:form.getAttribute("preUpdate"),postUpdate:form.getAttribute("postUpdate")};
std.updater._beginUpdate(_3b5);
var req=new std.ajax.Request(url,{method:"post",parameters:_3b3,onComplete:function(resp){
std.updater._endUpdate(_3b5);
std.updater._responseHandler(resp,_3b5);
},onFailure:function(resp){
alert("ERROR "+resp.status+" -- "+resp.statusText);
}});
};
std.updater.handleLink=function(link){
if(link._std_updater_updating){
return;
}
var url=link.href;
var _3bb={src:link,updateElementId:link.getAttribute("updateElement"),busyElementId:link.getAttribute("busyElement"),preUpdate:link.getAttribute("preUpdate"),postUpdate:link.getAttribute("postUpdate")};
std.updater._beginUpdate(_3bb);
var req=new std.ajax.Request(url,{method:"get",onComplete:function(resp){
std.updater._endUpdate(_3bb);
std.updater._responseHandler(resp,_3bb);
},onFailure:function(resp){
alert("ERROR "+resp.status+" -- "+resp.statusText);
}});
};
std.viewport={};
std.viewport._resizeListeners=[];
std.viewport._resizeSeq=0;
std.viewport._resizeTimeout=40;
std.viewport.addResizeListener=function(_3bf){
if(!std.viewport._initialized){
std.event.observe(window,"resize",std.viewport._onResizeEvent);
std.event.observe(window,"load",std.viewport._onResizeEvent);
std.viewport._initialized=true;
if(std.browser.isSafariMobile){
setInterval(function(){
if(std.viewport._innerWidth==window.innerWidth&&std.viewport._innerHeight==window.innerHeight){
return;
}
std.viewport._onResizeEvent();
},300);
}
}
std.viewport._resizeListeners.push(_3bf);
};
std.viewport._lastWidth=0;
std.viewport._lastHeight=0;
std.viewport.fireResize=function(){
var clz=std.viewport;
var dim=std.dom.getBodyExtent();
for(var i=0;i<std.viewport._resizeListeners.length;i++){
std.viewport._resizeListeners[i](dim.width,dim.height,dim.width-clz._lastWidth,dim.height-clz._lastHeight);
}
clz._lastWidth=dim.width;
clz._lastHeight=dim.height;
};
std.viewport._onResizeEvent=function(){
std.viewport._innerWidth=window.innerWidth;
std.viewport._innerHeight=window.innerHeight;
std.viewport._resizeSeq++;
if(std.viewport._resizeListeners.length){
var seq=std.viewport._resizeSeq;
setTimeout(function(){
if(seq==std.viewport._resizeSeq){
std.viewport.fireResize();
}
},std.viewport._resizeTimeout);
}
};
std.viewport.enclose=function(x1,y1,x2,y2){
if(typeof (x1)!="number"){
var _3c8=std.dom.getBounds(std.dom.element(x1));
x1=_3c8.left;
y1=_3c8.top;
x2=_3c8.right;
y2=_3c8.bottom;
}
var dim=std.dom.getBodyExtent();
return std.math.compareQuad([0,0],[dim.width,dim.height],[x1,y1],[x2,y2]).enclose==1;
};
std.global=this;
var ui={};
ui.menu={};
ui.menu.ItemGroup=function(_3ca,_3cb){
_3ca=_3ca||{};
this.setHeader(_3ca.header||null);
this.setHeaderStyle(_3ca.headerStyle||{});
this._itemList=_3cb||[];
};
ui.menu.ItemGroup.prototype.setHeader=function(_3cc){
this._header=_3cc;
};
ui.menu.ItemGroup.prototype.getHeader=function(){
return this._header;
};
ui.menu.ItemGroup.prototype.setHeaderStyle=function(_3cd){
this._headerStyle=_3cd;
};
ui.menu.ItemGroup.prototype.getHeaderStyle=function(){
return this._headerStyle;
};
ui.menu.ItemGroup.prototype.getList=function(){
return this._itemList;
};
ui.menu.ItemGroup.prototype._indexOf=function(ref){
if(typeof (ref)=="string"){
ref=this.get(ref);
}
return std.list.findIndex(this._itemList,ref);
};
ui.menu.ItemGroup.prototype.locate=function(path){
path=path||"";
path=path.replace("^/","");
path=path.replace("/$","");
path=path.split("/");
var id=path.shift();
var item=this.get(id);
return item?(path.length?item.locate(path.join("/")):item):null;
};
ui.menu.ItemGroup.prototype.get=function(pos){
return typeof (pos)=="number"?this._itemList[pos]:std.list.find(this._itemList,function(item){
return item.getId()==pos;
});
};
ui.menu.ItemGroup.prototype.add=function(_3d4){
if(!(_3d4 instanceof Array)){
_3d4=[_3d4];
}
var _3d5=this._itemList;
std.list.iterate(_3d4,function(item){
_3d5.push(item);
});
};
ui.menu.ItemGroup.prototype.insert=function(pos,_3d8){
if(typeof (pos)!="number"){
pos=this._indexOf(pos);
}
if(!(_3d8 instanceof Array)){
_3d8=[_3d8];
}
var _3d9=this._itemList;
std.list.iterate(_3d8,function(item){
_3d9.splice(pos,0,item);
pos++;
});
};
ui.menu.ItemGroup.prototype.remove=function(ref){
this._itemList.splice(typeof (ref)=="number"?ref:this._indexOf(ref),1);
};
ui.menu.MenuItem=function(type,_3dd){
_3dd=_3dd||{};
if(typeof (type)!="undefined"&&type!="button"&&type!="checkbox"&&type!="radio"&&type!="menu"){
throw "Invalid MenuItem type: "+type;
}
this._type=type;
this.setId(_3dd.id||null);
this.setIcon(_3dd.icon||null);
this.setAdditionalIcons(_3dd.additionalIcons||null);
this.setText(_3dd.text||null);
this.setMnemonic(_3dd.mnemonic||null);
this.setStyle(_3dd.style||{});
this.setDisabled(_3dd.disabled||null);
this.setHidden(_3dd.hidden||false);
this.setAction(_3dd.action||null);
this.setValue(_3dd.value||null);
this.setShortcut(_3dd.shortcut||null);
this.setGroup(_3dd.group||null);
};
ui.menu.MenuItem.prototype.getType=function(){
return this._type;
};
ui.menu.MenuItem.prototype.getId=function(){
return this._id;
};
ui.menu.MenuItem.prototype.setId=function(id){
this._id=id;
};
ui.menu.MenuItem.prototype.setIcon=function(icon){
this._icon=icon;
};
ui.menu.MenuItem.prototype.getIcon=function(){
return std.lang.evaluate(this._firstSet(this._icon,this._action.getIcon()));
};
ui.menu.MenuItem.prototype.setAdditionalIcons=function(icon){
this._additionalIcons=icon;
};
ui.menu.MenuItem.prototype.getAdditionalIcons=function(){
return this._additionalIcons;
};
ui.menu.MenuItem.prototype.setText=function(text){
this._text=text;
};
ui.menu.MenuItem.prototype.getText=function(){
return std.lang.evaluate(this._firstSet(this._text,this._action.getText()));
};
ui.menu.MenuItem.prototype.setMnemonic=function(_3e2){
this._mnemonic=_3e2;
};
ui.menu.MenuItem.prototype.getMnemonic=function(){
return std.lang.evaluate(this._firstSet(this._mnemonic,this._action.getMnemonic()));
};
ui.menu.MenuItem.prototype.setStyle=function(_3e3){
this._style=_3e3;
};
ui.menu.MenuItem.prototype.getStyle=function(){
return std.lang.evaluate(this._style);
};
ui.menu.MenuItem.prototype.setDisabled=function(bool){
this._disabled=bool;
};
ui.menu.MenuItem.prototype.isDisabled=function(bool){
return std.lang.evaluate(this._firstSet(this._disabled,this._action.isDisabled()));
};
ui.menu.MenuItem.prototype.setHidden=function(bool){
this._hidden=bool;
};
ui.menu.MenuItem.prototype.isHidden=function(){
return std.lang.evaluate(this._hidden);
};
ui.menu.MenuItem.prototype.setShortcut=function(_3e7){
this._shortcut=_3e7;
};
ui.menu.MenuItem.prototype.getShortcut=function(){
return std.lang.evaluate(this._firstSet(this._shortcut,(this._action.getShortcutList()||[])[0]));
};
ui.menu.MenuItem.prototype.setGroup=function(_3e8){
this._group=_3e8;
};
ui.menu.MenuItem.prototype.getGroup=function(){
return std.lang.evaluate(this._group);
};
ui.menu.MenuItem.prototype.setParent=function(_3e9){
this._parent=_3e9;
};
ui.menu.MenuItem.prototype.getParent=function(){
return this._parent;
};
ui.menu.MenuItem.prototype.getRoot=function(){
var root=this._parent;
while(root&&root._parent){
root=root._parent;
}
return root;
};
ui.menu.MenuItem.prototype.setAction=function(_3eb){
this._action=_3eb||new std.action.Nil();
};
ui.menu.MenuItem.prototype.setValue=function(_3ec){
this._value=_3ec;
};
ui.menu.MenuItem.prototype.isSelected=function(){
return this._action&&this._action.isSelected();
};
ui.menu.MenuItem.prototype.setSelected=function(_3ed){
if(this._action){
this._action.setSelected(_3ed);
}
};
ui.menu.MenuItem.prototype.performAction=function(){
switch(this._type){
case "checkbox":
case "radio":
this._action.setSelected(!this._action.isSelected());
}
this._action.setValue(std.lang.evaluate(this._value));
this._action.performAction();
if(this._parent.onChildActionPerformed){
this._parent.onChildActionPerformed();
}
};
ui.menu.MenuItem.prototype._firstSet=function(){
for(var i=0;i<arguments.length;i++){
var arg=arguments[i];
if((typeof (arg)!="undefined")&&(arg!=null)){
return arg;
}
}
return null;
};
ui.menu.Menu=function(_3f0,_3f1){
_3f0=_3f0||{};
ui.menu.MenuItem.call(this,"menu",_3f0);
this._delay=_3f0.delay||250;
this._visible=false;
this._itemGroupList=[];
if(_3f1){
std.list.iterate(_3f1,std.lang.bind(this,this.add));
}
this._focusDelegator=std.customfocus.getManager().newDelegator(this,std.lang.bind(this,this._onFocus),std.lang.bind(this,this._onBlur));
};
ui.menu.Menu.prototype=new ui.menu.MenuItem();
ui.menu.Menu.prototype._createView=function(){
var _3f2={};
var _3f3=new std.dom.Builder();
_3f2.root=_3f3.push("div",{className:"PopupMenu"});
if(std.browser.isIE&&std.browser.major<7){
_3f2.hackIFrame=_3f3.append("iframe",{frameBorder:0,scrolling:"no",src:"javascript:'';"});
}
_3f2.pane=_3f3.push("div",{className:"PopupMenuPane"});
_3f3.push("div",{className:"PopupMenuShadow"});
_3f2.cavity=_3f3.push("div",{className:"PopupMenuBorder"});
std.event.observe(_3f2.pane,"mousedown",std.event.listener(this,this._onMenuMouseDown));
std.event.observe(_3f2.pane,"mouseover",std.event.listener(this,this._onButtonMouseOver));
std.event.observe(_3f2.pane,"mouseout",std.event.listener(this,this._onButtonMouseOut));
std.event.observe(_3f2.pane,"mousedown",std.event.listener(this,this._onButtonMouseDown));
std.event.observe(_3f2.pane,"click",std.event.listener(this,this._onButtonClick));
return _3f2;
};
ui.menu.Menu.prototype._getNodes=function(){
return this._nodes||(this._nodes=this._createView());
};
ui.menu.Menu.prototype.updateUI=function(){
this._elementList=[];
var html=[];
html.push("<table><tbody>");
var _3f5=0;
for(var i=0;i<this._itemGroupList.length;i++){
var _3f7=this._itemGroupList[i];
var _3f8=_3f7.getList();
var _3f9=0;
for(var j=0;j<_3f8.length;j++){
if(!_3f8[j].isHidden()){
_3f9++;
}
}
if(_3f9==0){
continue;
}
if(i>0){
html.push("<tr class=\"PopupMenuSep\">");
html.push("<td colspan=\"6\"><div><!-- --></div></td>");
html.push("</tr>");
}
if(_3f7.getHeader()){
html.push("<tr class=\"PopupMenuSection\">");
html.push("<td colspan=\"6\">"+std.string.fullEscapeHTML(_3f7.getHeader())+"</td>");
html.push("</tr>");
}
for(var j=0;j<_3f8.length;j++){
var item=_3f8[j];
if(item.isHidden()){
continue;
}
var _3fc={item:item,type:item.getType(),index:_3f5++,iconStyle:null,additionalIconsStyle:[],nodes:{}};
this._elementList.push(_3fc);
item.setParent(this);
var _3fd=item.getShortcut();
html.push("<tr class=\""+(item.isDisabled()?"PopupMenuDisabledItem":"PopupMenuItem")+"\">");
html.push("<td class=\"PopupMenuItemIcon\">");
var _3fe=null;
switch(_3fc.type){
case "checkbox":
_3fe=item.isSelected()?"PopupMenuIcon PopupMenuIconCheckBox":"PopupMenuIcon";
break;
case "radio":
_3fe=item.isSelected()?"PopupMenuIcon PopupMenuIconRadio":"PopupMenuIcon";
break;
default:
var icon=item.getIcon();
if(icon){
_3fe="PopupMenuIcon";
if(typeof (icon)=="string"){
_3fc.iconStyle={backgroundImage:"url("+icon+")"};
}else{
if(icon.className){
_3fe=_3fe+" "+icon.className;
}
_3fc.iconStyle=icon;
}
}
break;
}
html.push("<div"+(_3fe?(" class=\""+_3fe+"\""):"")+"><!-- --></div>");
html.push("</td>");
html.push("<td class=\"PopupMenuItemAdditionalIcons\">");
var _400=item.getAdditionalIcons();
if(_400){
var _401=std.lang.isArray(_400)?_400:[_400];
var _402="PopupMenuAdditionalIcons";
for(var x=0;x<_401.length;x++){
var _404=_401[x];
if(_404==null){
continue;
}
var _405="PopupMenuAdditionalIcons_"+x;
if(typeof (_404)=="string"){
_3fc.additionalIconsStyle[x]={backgroundImage:"url("+_404+")"};
}else{
if(_404.className){
_405=_405+" "+_404.className;
}
_3fc.additionalIconsStyle[x]=_404;
}
html.push("<div class=\""+_402+" "+_405+"\"><!-- --></div>");
}
}else{
html.push("<div><!-- --></div>");
}
html.push("</td>");
html.push("<td class=\"PopupMenuItemName\""+(_3fd?"":" colspan=\"2\"")+">");
var text=item.getText();
var _407=item.getMnemonic();
var _408=_407?text.toLowerCase().indexOf(_407.toLowerCase()):text.length;
var _409=_408>=0?text.substr(0,_408):"";
var _40a=_408>=0?text.substr(_408,1):"";
var _40b=text.substr(_408+1);
if(_409){
html.push(std.string.fullEscapeHTML(_409));
}
if(_40a){
html.push("<span style=\"text-decoration: underline\">"+std.string.fullEscapeHTML(_40a)+"</span>");
}
if(_40b){
html.push(std.string.fullEscapeHTML(_40b));
}
html.push("</td>");
if(_3fd){
html.push("<td class=\"PopupMenuItemShortcut\">");
html.push(std.string.fullEscapeHTML(_3fd.toString()||""));
html.push("</td>");
}
html.push("<td class=\"PopupMenuItemExpand\">");
if(_3fc.type=="menu"){
html.push("<div class=\"PopupMenuIcon PopupMenuIconExpand\"><!-- --></div>");
}
html.push("</td>");
html.push("</tr>");
}
}
html.push("</tbody></table>");
var _40c=this._getNodes().cavity;
_40c.innerHTML=html.join("");
var _40d=this._elementList;
var _40e=0;
std.list.iterate(_40c.getElementsByTagName("tr"),function(row){
if(row.className=="PopupMenuItem"||row.className=="PopupMenuDisabledItem"){
row._index=_40e;
var _410=_40d[_40e];
_410.nodes.root=row;
std.list.iterate(row.getElementsByTagName("td"),function(td){
std.dom.noselect(td);
});
if(_410.iconStyle){
std.list.iterate(row.getElementsByTagName("div"),function(div){
if(div.className.match(/\bPopupMenuIcon\b/)){
std.dom.setStyles(div,_410.iconStyle);
}
});
}
if(_410.additionalIconsStyle&&std.lang.isArray(_410.additionalIconsStyle)){
for(var x=0;x<_410.additionalIconsStyle.length;x++){
var _414=_410.additionalIconsStyle[x];
std.list.iterate(row.getElementsByTagName("div"),function(div){
var re=new RegExp("PopupMenuAdditionalIcons_"+x);
if(div.className.match(re)){
std.dom.setStyles(div,_414);
}
});
}
}
if(_410.item.getStyle()){
std.dom.setStyles(row,_410.item.getStyle());
}
_40e++;
}
});
};
ui.menu.Menu.prototype.locate=function(path){
path=path||"";
path=path.replace("^/","");
path=path.replace("/$","");
path=path.split("/");
var id=path.shift();
var item=(id==parseInt(id))?this.getList()[parseInt(id)]:this.getItem(id);
return item?(path.length?item.locate(path.join("/")):item):null;
};
ui.menu.Menu.prototype.getList=function(){
return this._itemGroupList;
};
ui.menu.Menu.prototype.getItem=function(id){
for(var i=0;i<this._itemGroupList.length;i++){
var item=this._itemGroupList[i].get(id);
if(item){
return item;
}
}
return null;
};
ui.menu.Menu.prototype._indexOf=function(ref){
return std.list.findIndex(this._itemGroupList,ref);
};
ui.menu.Menu.prototype.get=function(pos){
return this._itemGroupList[pos];
};
ui.menu.Menu.prototype.add=function(_41f){
if(_41f instanceof ui.menu.MenuItem){
if(this._itemGroupList.length==0){
this._itemGroupList[0]=new ui.menu.ItemGroup();
}
this._itemGroupList[this._itemGroupList.length-1].add(_41f);
}else{
this._itemGroupList.push(_41f);
}
};
ui.menu.Menu.prototype.insert=function(pos,_421){
this._itemGroupList.splice(typeof (pos)=="number"?pos:this._indexOf(pos),0,_421);
};
ui.menu.Menu.prototype.remove=function(pos){
this._itemGroupList.splice(typeof (pos)=="number"?pos:this._indexOf(pos),1);
};
ui.menu.Menu.prototype.removeItem=function(id){
for(var i=0;i<this._itemGroupList.length;i++){
var item=this._itemGroupList[i].get(id);
if(item){
this._itemGroupList[i].remove(item);
}
}
};
ui.menu.Menu.prototype.select=function(_426){
var _427=typeof (_426)=="number"?this._elementList[_426]:null;
if(this._selectedElement&&this._selectedElement!=_427){
this._selectedElement.nodes.root.className=this._selectedElement.item.isDisabled()?"PopupMenuDisabledItem":"PopupMenuItem";
}
this._selectedElement=_427;
if(this._selectedElement){
ui.menu.getMenuManager().setActiveMenu(this);
this._selectedElement.nodes.root.className=this._selectedElement.item.isDisabled()?"PopupMenuDisabledItemHover":"PopupMenuItemHover";
}
};
ui.menu.Menu.prototype.selectOffset=function(_428){
var _429=this._selectedElement?this._selectedElement.index:0;
_429=(_429+_428+this._elementList.length)%this._elementList.length;
this.select(_429);
};
ui.menu.Menu.prototype.getSelectedItem=function(){
return this._selectedElement?this._selectedElement.item:null;
};
ui.menu.Menu.prototype.setExpanded=function(bool){
var _42b=this._getExpandedElement();
if(_42b&&(!bool||_42b!=this._selectedElement)){
_42b.item.hide();
_42b.item.setParent(null);
}
if(bool&&this._selectedElement&&this._selectedElement.item.getType()=="menu"&&_42b!=this._selectedElement){
var _42c=std.dom.getBounds(this._selectedElement.nodes.root);
this._selectedElement.item.setParent(this);
this._selectedElement.item.show(_42c.right,_42c.top,"top left");
}
};
ui.menu.Menu.prototype._getExpandedElement=function(){
for(var i=0;i<this._elementList.length;i++){
var _42e=this._elementList[i];
if(_42e.item.getType()=="menu"&&_42e.item.isVisible()){
return _42e;
}
}
return null;
};
ui.menu.Menu.prototype.getMnemonicIndex=function(_42f){
for(var i=0;i<this._elementList.length;i++){
if(this._elementList[i].item.getMnemonic().toLowerCase()==_42f.toLowerCase()){
return i;
}
}
return -1;
};
ui.menu.Menu.prototype.isVisible=function(){
return this._visible;
};
ui.menu.Menu.prototype.onChildActionPerformed=function(){
if(this.getParent()){
this.getParent().onChildActionPerformed();
}else{
this.hide();
}
};
ui.menu.Menu.prototype._onFocus=function(){
ui.menu.getMenuManager().menuFocused();
};
ui.menu.Menu.prototype._onBlur=function(){
ui.menu.getMenuManager().menuBlurred();
this.hide();
};
ui.menu.Menu.prototype.getActivator=function(){
return this._activator||(this._activator=new ui.menu.Activator(this));
};
ui.menu.Menu.prototype._findEventElement=function(e){
return std.dom.backtrack(std.event.element(e),function(ele){
return ele.tagName!="TR";
});
};
ui.menu.Menu.prototype._onMenuMouseDown=function(e){
if(this._visible){
std.event.vanish(e);
}
};
ui.menu.Menu.prototype._onButtonMouseOver=function(e){
var node=this._findEventElement(e);
if(node){
this.select(node._index);
this.buttonHoverTimer=setTimeout(std.lang.bind(this,this._onButtonHover),this._delay);
}
};
ui.menu.Menu.prototype._onButtonMouseOut=function(e){
var node=this._findEventElement(e);
if(node){
if(!this._getExpandedElement()){
this.select(null);
}
clearTimeout(this.buttonHoverTimer);
}
};
ui.menu.Menu.prototype._onButtonMouseDown=function(e){
var node=this._findEventElement(e);
if(node){
this.setExpanded(true);
}
};
ui.menu.Menu.prototype._onButtonClick=function(e){
var node=this._findEventElement(e);
if(node){
var item=this._elementList[node._index].item;
switch(item.getType()){
case "button":
case "radio":
case "checkbox":
if(!item.isDisabled()){
item.performAction();
}
}
}
};
ui.menu.Menu.prototype._onButtonHover=function(){
this.setExpanded(true);
};
ui.menu.Menu.prototype.relocate=function(x,y,_43f){
var _440=this._getNodes();
var dim=std.dom.getDimensions(_440.pane);
var posX=x-(/right/.test(_43f)?(dim.width-1):0);
var posY=y-(/bottom/.test(_43f)?(dim.height-1):0);
_440.root.style.left=posX+"px";
_440.root.style.top=posY+"px";
if(_440.hackIFrame){
_440.hackIFrame.style.width=dim.width+"px";
_440.hackIFrame.style.height=dim.height+"px";
}
};
ui.menu.Menu.prototype.show=function(x,y,_446){
if(!this._visible){
this._visible=true;
var root=this._getNodes().root;
this.updateUI();
root.style.left="-10000px";
root.style.top="-10000px";
root.style.visibility="hidden";
document.body.appendChild(root);
this.relocate(x,y,_446);
root.style.visibility="";
ui.menu.getMenuManager().setActiveMenu(this);
if(!(this._parent instanceof ui.menu.Menu)){
this._focusDelegator.focus();
}
}else{
this.relocate(x,y,_446);
}
};
ui.menu.Menu.prototype.hide=function(){
if(this._visible){
this._visible=false;
if(this._getExpandedElement()){
this._getExpandedElement().item.hide();
}
this._selectedElement=null;
document.body.removeChild(this._getNodes().root);
this._focusDelegator.blur();
this._focusDelegator.detach();
}
};
ui.menu.Menu.prototype.toggle=function(x,y,_44a){
if(this._visible){
this.hide();
}else{
this.relocate(x,y,_44a);
}
};
ui.menu.Menu.prototype.populateWith=function(data){
for(var i=0;i<data.items.length;i++){
var _44d=data.items[i];
var _44e=new ui.menu.ItemGroup();
this.add(_44e);
for(var j=0;j<_44d.length;j++){
var item=_44d[j];
if(data.children&&data.children[item.id]){
var _451=new ui.menu.Menu({id:item.id,text:item.display,mnemonic:item.mnemonic,icon:item.icon});
_44e.add(_451);
_451.populateWith(data.children[item.id]);
}else{
var _452=null;
switch(typeof (item.action)){
case "string":
_452=new std.action.Url({url:item.action});
break;
case "function":
_452=new std.action.Script({script:item.action});
break;
case "object":
_452=item.action||new std.action.Nil();
break;
}
var type=item.type||"button";
_44e.add(new ui.menu.MenuItem(type,{id:item.id,text:item.display,mnemonic:item.mnemonic,icon:item.icon,additionalIcons:item.additionalIcons,style:item.style,disabled:item.disabled,hidden:item.hidden,action:_452,value:item.value,group:item.group}));
}
}
}
};
ui.menu.Activator=function(menu){
this._menu=menu;
};
ui.menu.Activator.prototype.getMenu=function(){
return this._menu;
};
ui.menu.Activator.prototype.getSrcDomNode=function(){
return this._srcDomNode;
};
ui.menu.Activator.prototype.observe=function(_455,_456,_457){
_455=std.dom.element(_455);
var _458=std.event.listener(this,this._onEventObserved,_455,_457);
std.event.observe(_455,_456,_458);
return _458;
};
ui.menu.Activator.prototype.stopObserving=function(_459,_45a,_45b){
std.event.stopObserving(_459,_45a,_45b);
};
ui.menu.Activator.prototype._onEventObserved=function(e,_45d,_45e){
var _45f=this._srcDomNode;
this._srcDomNode=_45d;
if(!this._menu.isVisible()||_45f!=_45d){
setTimeout(std.lang.bind(this,this._showMenu,_45e),0);
}
};
ui.menu.Activator.prototype._showMenu=function(_460){
var ret=_460(this);
if(ret){
var x=ret.shift();
var y=ret.shift();
var _464=ret.shift();
this._menu.show(x,y,_464);
}
};
ui.menu.MenuBar=function(_465,_466){
_465=_465||{};
ui.menu.ItemGroup.call(this,_465,_466);
std.event.observe(document,"mousedown",std.lang.bind(this,this.select,null));
std.event.keyObserve(document,"keydown",std.event.listener(this,this._onKeyDown,null));
};
ui.menu.MenuBar.prototype=new ui.menu.ItemGroup();
ui.menu.MenuBar.prototype._createView=function(){
var _467={};
_467.root=std.dom.newElement("div");
_467.cavity=_467.root;
return _467;
};
ui.menu.MenuBar.prototype._getNodes=function(){
if(!this._nodes){
this._nodes=this._createView();
this.updateUI();
}
return this._nodes;
};
ui.menu.MenuBar.prototype.getRoot=function(){
return this._getNodes().root;
};
ui.menu.MenuBar.prototype.updateUI=function(){
this._elementList=[];
var _468=this._getNodes().cavity;
std.dom.clearChildren(_468);
var _469=new std.dom.Builder(_468);
for(var i=0,_46b=0;i<this._itemList.length;i++){
var item=this._itemList[i];
if(!item.isHidden()){
var _46d={item:item,index:_46b,nodes:{}};
this._elementList.push(_46d);
_46d.nodes.root=_469.push("div",{className:"MenuBarItem"});
_46d.nodes.root._index=_46b;
_46b++;
_46d.nodes.icon=_469.push("div");
_469.appendElement(std.dom.newComment(" "));
_469.pop();
_46d.nodes.text=_469.push("div");
_469.appendElement(std.dom.newText(_46d.item.getText()));
_469.pop();
std.dom.noselect(_46d.nodes.icon);
std.dom.noselect(_46d.nodes.text);
std.event.observe(_46d.nodes.root,"mouseover",std.event.listener(this,this._onButtonMouseOver,_46d));
std.event.observe(_46d.nodes.root,"mouseout",std.event.listener(this,this._onButtonMouseOut,_46d));
std.event.observe(_46d.nodes.root,"mousedown",std.event.listener(this,this._onButtonMouseDown,_46d));
if(_46d.item.getStyle()){
std.dom.setStyles(_46d.nodes.root,_46d.item.getStyle());
}
_469.pop();
}
}
};
ui.menu.MenuBar.prototype.select=function(_46e){
var _46f=this._selectedElement;
var _470=typeof (_46e)=="number"?this._elementList[_46e]:null;
if(_46f!=_470){
var _471=this.isExpanded();
if(_46f){
if(_471){
_46f.item.hide();
_46f.item.setParent(null);
}
_46f.nodes.root.className="MenuBarItem";
}
if(_470){
if(_471){
var _472=std.dom.getBounds(_470.nodes.root);
_470.item.setParent(this);
_470.item.show(_472.left,_472.bottom,"top left");
_470.nodes.root.className="MenuBarItemActive";
}else{
_470.nodes.root.className="MenuBarItemHover";
}
}
this._selectedElement=_470;
}
};
ui.menu.MenuBar.prototype.selectOffset=function(_473){
var _474=this._selectedElement?this._selectedElement.index:0;
_474=(_474+_473+this._elementList.length)%this._elementList.length;
this.select(_474);
};
ui.menu.MenuBar.prototype.setExpanded=function(bool){
if(this._selectedElement){
var _476=this.isExpanded();
if(bool&&!_476){
var _477=std.dom.getBounds(this._selectedElement.nodes.root);
this._selectedElement.item.setParent(this);
this._selectedElement.item.show(_477.left,_477.bottom,"top left");
this._selectedElement.nodes.root.className="MenuBarItemActive";
}else{
if(!bool&&_476){
this._selectedElement.item.hide();
this._selectedElement.item.setParent(null);
this._selectedElement.nodes.root.className="MenuBarItemHover";
}
}
}
};
ui.menu.MenuBar.prototype.getSelectedItem=function(){
return this._selectedElement?this._selectedElement.item:null;
};
ui.menu.MenuBar.prototype.isExpanded=function(){
return this._selectedElement&&this._selectedElement.item.isVisible();
};
ui.menu.MenuBar.prototype.onChildActionPerformed=function(){
this.setExpanded(false);
this.select(null);
};
ui.menu.MenuBar.prototype._onButtonMouseOver=function(e,_479){
this.select(_479.index);
};
ui.menu.MenuBar.prototype._onButtonMouseOut=function(e,_47b){
if(!this.isExpanded()){
this.select(null);
}
};
ui.menu.MenuBar.prototype._onButtonMouseDown=function(e,_47d){
this.setExpanded(!this.isExpanded());
std.event.vanish(e);
};
ui.menu.MenuBar.prototype._onKeyDown=function(ke){
if(ke.keyIdentifier==std.event.KeyCodes.generic.KEY_ESCAPE){
this.select(null);
}
};
ui.menu.MenuBar.prototype.populateWith=function(data){
for(var i=0;i<data.items.length;i++){
var item=data.items[i];
var _482=new ui.menu.Menu({id:item.id,text:item.display,mnemonic:item.mnemonic,style:item.style,disabled:item.disabled,hidden:item.hidden});
this.add(_482);
_482.populateWith(data.children[item.id]);
}
};
ui.menu.MenuManager=function(){
std.event.keyObserve(document,"keypress",std.lang.bind(this,this._onKeyPress));
std.event.keyObserve(document,"keydown",std.event.listener(this,this._onKeyDown));
};
ui.menu.MenuManager.prototype.setActiveMenu=function(menu){
this._activeMenu=menu;
};
ui.menu.MenuManager.prototype.select=function(_484){
if(this._activeMenu&&this._activeMenu.isVisible()){
var menu=this._activeMenu;
var _486=menu.getSelectedItem();
switch(_484){
case "up":
menu.selectOffset(-1);
break;
case "down":
_486?menu.selectOffset(1):menu.select(0);
break;
case "left":
if(menu.getParent()){
var _487=menu.getParent();
if(_487 instanceof ui.menu.Menu){
menu.hide();
_487.selectOffset(0);
}else{
if(_487 instanceof ui.menu.MenuBar){
_487.selectOffset(-1);
_487.setExpanded(true);
_487.getSelectedItem().select(0);
}
}
}
break;
case "right":
if(!_486){
menu.select(0);
}else{
if(_486 instanceof ui.menu.Menu){
menu.setExpanded(true);
_486.select(0);
}else{
if(menu.getRoot()&&(menu.getRoot() instanceof ui.menu.MenuBar)){
var _488=menu.getRoot();
_488.selectOffset(1);
_488.setExpanded(true);
_488.getSelectedItem().select(0);
}
}
}
break;
}
}
};
ui.menu.MenuManager.prototype.doAction=function(){
if(this._activeMenu&&this._activeMenu.isVisible()){
var menu=this._activeMenu;
var _48a=menu.getSelectedItem();
switch(_48a.getType()){
case "menu":
menu.setExpanded(true);
_48a.select(0);
break;
default:
if(!_48a.isDisabled()){
_48a.performAction();
}
break;
}
}
};
ui.menu.MenuManager.prototype._onKeyPress=function(ke){
if(this._activeMenu&&this._activeMenu.isVisible()&&this._hasFocusedMenu){
var k=ke.keyIdentifier;
var e=ke.evt;
var _48e=std.event.KeyCodes.generic;
switch(k){
case _48e.KEY_LEFT_ARROW:
this.select("left");
std.event.vanish(e);
break;
case _48e.KEY_RIGHT_ARROW:
this.select("right");
std.event.vanish(e);
break;
case _48e.KEY_UP_ARROW:
this.select("up");
std.event.vanish(e);
break;
case _48e.KEY_DOWN_ARROW:
this.select("down");
std.event.vanish(e);
break;
case _48e.KEY_ENTER:
this.doAction();
std.event.vanish(e);
break;
default:
var _48f=std.event.getChar(e);
var _490=this._activeMenu.getMnemonicIndex(_48f);
if(_490>=0){
this._activeMenu.select(_490);
this.doAction();
}
std.event.vanish(e);
break;
}
}
};
ui.menu.MenuManager.prototype._onKeyDown=function(ke){
if(this._activeMenu&&this._activeMenu.isVisible()){
if(ke.keyIdentifier==std.event.KeyCodes.generic.KEY_ESCAPE){
this._activeMenu.hide();
}
}
};
ui.menu.MenuManager.prototype.menuFocused=function(){
this._hasFocusedMenu=true;
};
ui.menu.MenuManager.prototype.menuBlurred=function(){
this._hasFocusedMenu=false;
};
ui.menu.getMenuManager=function(){
if(!this._menuManager){
this._menuManager=new ui.menu.MenuManager();
}
return this._menuManager;
};
ui.menu2=ui.menu;
ui.hintbox={};
ui.hintbox.HintBox=function(_492){
_492=_492||{};
this.content=_492.content||null;
this.style=_492.style||{};
this.anchor=_492.anchor||null;
this.offsetX=_492.offsetX||0;
this.offsetY=_492.offsetY||0;
this.align=_492.align||"bottom right";
this.snap=_492.snap||"top left";
this.fader=new std.ani.Interpolator();
this.fader.setOnEvent(std.lang.bind(this,this._onFaderEvent));
};
ui.hintbox.HintBox.prototype.getRootNode=function(){
this._realize();
return this.elements.root;
};
ui.hintbox.HintBox.prototype.setAnchorPosition=function(_493){
this._realize();
_493=std.string.parsePosition(_493);
this.elements.upAnchor.style.visibility=_493.top?"visible":"hidden";
this.elements.downAnchor.style.visibility=_493.top?"hidden":"visible";
this.elements.upAnchor.style.left=this.elements.downAnchor.style.left=_493.left?"0":"";
this.elements.upAnchor.style.right=this.elements.downAnchor.style.right=_493.left?"":"0";
};
ui.hintbox.HintBox.prototype.show=function(){
this._realize();
this._updatePosition();
this.fader.reset(1);
};
ui.hintbox.HintBox.prototype.fade=function(){
this._realize();
this.fader.start(1,0,350,25);
};
ui.hintbox.HintBox.prototype._updatePosition=function(){
if(this.anchor){
var root=this.elements.root;
var _495=this.elements.hintboxPane;
var _496=this.elements.coverframe;
var _497=std.string.parsePosition(this.align);
var snap=std.string.parsePosition(this.snap);
var _499=root.style.display;
root.style.display="";
this.setAnchorPosition(std.string.printPosition({top:_497.bottom,bottom:_497.top,left:_497.right,right:_497.left}));
var _49a=std.dom.getDimensions(root);
var _49b=std.dom.getDimensions(this.elements.upAnchor);
var _49c=Math.round(_49b.width/2);
var _49d=std.dom.getDimensions(this.elements.outerbox);
var _49e=std.dom.getDimensions(this.elements.hintboxPane);
root.style.display=_499;
var pos={};
if(this.anchor.length==2&&typeof (this.anchor[0])=="number"){
pos.top=pos.bottom=this.anchor;
}else{
var _4a0=std.dom.getBounds(this.anchor);
var x=Math.round((_4a0.left+_4a0.right)/2);
pos.top=[x,_4a0.top];
pos.bottom=[x,_4a0.bottom];
}
var _4a2=[];
if(_497.right){
_4a2[0]=this.offsetX+pos.top[0]-_49c;
}else{
_4a2[0]=this.offsetX+pos.top[0]-_49a.width+_49c;
}
if(_497.bottom){
_4a2[1]=this.offsetY+pos.bottom[1];
}else{
_4a2[1]=this.offsetY+pos.top[1]-_49a.height;
}
var _4a3=std.dom.getBodyExtent();
if(snap.right){
root.style.left="";
root.style.right=_4a3.width-_4a2[0]-_49a.width+"px";
}else{
root.style.left=_4a2[0]+"px";
root.style.right="";
}
if(snap.bottom){
root.style.top="";
root.style.bottom=_4a3.height-_4a2[1]-_49a.height+"px";
if(_496){
_496.style.bottom=root.style.bottom;
}
}else{
root.style.top=_4a2[1]+"px";
root.style.bottom="";
if(_496){
_496.style.top=(_49e.height-_49d.height)/2+"px";
}
}
if(_496){
_496.style.left=this.elements.outerbox.style.left;
_496.style.right=this.elements.outerbox.style.right;
_496.height=_49d.height+"px";
_496.width=_49d.width+"px";
}
}
};
ui.hintbox.HintBox.prototype._onFaderEvent=function(_4a4){
std.dom.opacity(this.elements.root,_4a4.getCurPoint());
this.elements.root.style.display=_4a4.getCurPoint()<=0?"none":"";
if(this.elements.coverframe){
this.elements.coverframe.style.display=_4a4.getCurPoint()<=0?"none":"";
}
};
ui.hintbox.HintBox.prototype._onRelayout=function(){
if(this.elements.root.style.display!="none"){
this._updatePosition();
}
};
ui.hintbox.HintBox.prototype._realize=function(){
if(!this.elements){
this.elements={};
var _4a5=new std.dom.Builder();
this.elements.root=_4a5.push("div",{className:"HintBoxRoot"},{display:"none"});
if(std.browser.isIE&&std.browser.major<7){
this.elements.coverframe=_4a5.append("iframe",{frameBorder:0,scrolling:"no",src:"javascript:'';",id:"HintBoxUnderCoverFrame"});
}
this.elements.hintboxPane=_4a5.push("div",{className:"HintBox"});
_4a5.push("div",{className:"HintBoxUp"});
this.elements.upAnchor=_4a5.push("div",{className:"HintBoxAnchor"});
_4a5.push("div");
_4a5.peek().appendChild(document["create"+"Comment"](" "));
_4a5.pop();
_4a5.pop();
_4a5.pop();
this.elements.outerbox=_4a5.push("div",{className:"HintBoxBorderOuter"});
_4a5.push("div",{className:"HintBoxBorderInner"});
this.elements.content=_4a5.append("div",{className:"HintBoxContent"});
_4a5.pop();
_4a5.pop();
_4a5.push("div",{className:"HintBoxDown"});
this.elements.downAnchor=_4a5.push("div",{className:"HintBoxAnchor"});
_4a5.push("div");
_4a5.peek().appendChild(document["create"+"Comment"](" "));
_4a5.pop();
_4a5.pop();
_4a5.pop();
if(this.content){
this.elements.content.appendChild(this.content);
}
std.css.setStyle(this.elements.hintboxPane,this.style);
document.body.appendChild(this.elements.root);
std.viewport.addResizeListener(std.lang.bind(this,this._onRelayout));
}
};
ui.notif={};
ui.notif.Notif=function(_4a6,name){
this.baseUri=_4a6.replace(/\/?$/,"/");
this.name=name;
};
ui.notif.Notif.prototype.accept=function(){
std.ajax.ping(this.baseUri+"notif/accept/"+this.name);
};
ui.notif.Notif.prototype.ifShallShow=function(_4a8){
new std.ajax.Request(this.baseUri+"notif/shallshow/"+this.name,{method:"post",asynchronous:true,onComplete:std.lang.bind(this,this._onShallShowComplete,_4a8)});
};
ui.notif.Notif.prototype._onShallShowComplete=function(_4a9,resp){
if(resp.responseText=="1"){
_4a9();
}
};
ui.util={};
ui.util.StackingOrderManager=function(args){
args=args||{};
this._inc=args.increment||50;
this._zIndex=args.zIndex;
this._list=[{id:null,zIndex:this._zIndex}];
};
ui.util.StackingOrderManager.prototype._peek=function(){
return this._list[this._list.length-1];
};
ui.util.StackingOrderManager.prototype._push=function(id,_4ad){
this._list[this._list.length]={id:id,zIndex:_4ad};
};
ui.util.StackingOrderManager.prototype.alloc=function(id){
var peek=this._peek();
if(id!=peek.id){
this.free(id);
this._push(id,peek.zIndex+this._inc);
}
return this._peek().zIndex;
};
ui.util.StackingOrderManager.prototype.free=function(id){
var temp=[];
for(var i=0;i<this._list.length;i++){
if(this._list[i].id!=id){
temp[temp.length]=this._list[i];
}
}
this._list=temp;
};
ui.component={};
ui.component.Box=function(_4b3){
this.domNode=_4b3;
};
ui.component.Box.prototype.setBounds=function(x,y,w,h){
this.setPosition(x,y);
this.setSize(w,h);
};
ui.component.Box.prototype.setPosition=function(x,y){
this.setLeft(x);
this.setTop(y);
};
ui.component.Box.prototype.setSize=function(w,h){
this.setWidth(w);
this.setHeight(h);
};
ui.component.Box.prototype.setLeft=function(x){
this.domNode.style.left=x+"px";
};
ui.component.Box.prototype.setTop=function(y){
this.domNode.style.top=y+"px";
};
ui.component.Box.prototype.setWidth=function(w){
this.domNode.style.width=w+"px";
};
ui.component.Box.prototype.setHeight=function(h){
this.domNode.style.height=h+"px";
};
ui.component.Box.prototype.getLeft=function(){
return parseInt(this.domNode.offsetLeft);
};
ui.component.Box.prototype.getTop=function(){
return parseInt(this.domNode.offsetTop);
};
ui.component.Box.prototype.getWidth=function(){
return std.dom.getDimensions(this.domNode).width;
};
ui.component.Box.prototype.getHeight=function(){
return std.dom.getDimensions(this.domNode).height;
};
ui.component.CompositeBox=function(_4c0){
this.boxes=_4c0;
};
ui.component.CompositeBox.prototype.setLeft=function(x){
std.list.iterate(this.boxes,std.lang.bind(this,function(box){
box.setLeft(x);
}));
};
ui.component.CompositeBox.prototype.setTop=function(y){
std.list.iterate(this.boxes,std.lang.bind(this,function(box){
box.setTop(y);
}));
};
ui.component.CompositeBox.prototype.setWidth=function(w){
std.list.iterate(this.boxes,std.lang.bind(this,function(box){
box.setWidth(w);
}));
};
ui.component.CompositeBox.prototype.setHeight=function(h){
std.list.iterate(this.boxes,std.lang.bind(this,function(box){
box.setHeight(h);
}));
};
ui.component.CompositeBox.prototype.getLeft=function(){
return this.boxes[0].getLeft();
};
ui.component.CompositeBox.prototype.getTop=function(){
return this.boxes[0].getTop();
};
ui.component.CompositeBox.prototype.getWidth=function(){
return this.boxes[0].getWidth();
};
ui.component.CompositeBox.prototype.getHeight=function(){
return this.boxes[0].getHeight();
};
ui.behaviour={};
ui.behaviour.BehaviourImpl=function(){
};
ui.behaviour.BehaviourImpl.prototype.installPlugin=function(_4c9){
if(!this._behaviourEvent){
this._behaviourEvent=[];
}
std.list.iterate(this._behaviourEvent,std.lang.bind(this,function(evt){
std.topic.subscribe(this,evt,std.lang.bind(_4c9,_4c9.processEvent));
}));
return this;
};
ui.behaviour.BehaviourImpl.prototype.defineEvent=function(_4cb){
if(!this._behaviourEvent){
this._behaviourEvent=[];
}
this._behaviourEvent.push(_4cb);
std.topic.define(this,_4cb);
};
ui.behaviour.BehaviourImpl.prototype.fireEvent=function(_4cc,ctx,_4ce){
ctx.eventType=_4cc;
ctx.cancel=false;
ctx.evt=_4ce;
ctx.instance=this;
std.topic.publish(this,_4cc,ctx);
};
ui.behaviour.BaseDragBehaviour=function(){
};
ui.behaviour.BaseDragBehaviour.prototype=new ui.behaviour.BehaviourImpl();
ui.behaviour.BaseDragBehaviour.STATE_INACTIVE="";
ui.behaviour.BaseDragBehaviour.STATE_ARMED="armed";
ui.behaviour.BaseDragBehaviour.STATE_ACTIVE="active";
ui.behaviour.BaseDragBehaviour._classInit=function(){
var clz=ui.behaviour.BaseDragBehaviour;
clz._instances=[];
std.event.observe(document,"mousemove",std.event.listener(clz,clz._classOnmousemove));
std.event.observe(document,"mouseup",std.event.listener(clz,clz._classOnmouseup));
clz._classCancelOnmousedown=std.event.listener(clz,clz._classOnmousedown);
clz._classInited=true;
};
ui.behaviour.BaseDragBehaviour._classOnmousemove=function(e){
if(this._currentInstance){
this._currentInstance._onmousemove(e);
}
};
ui.behaviour.BaseDragBehaviour._classOnmouseup=function(e){
if(this._currentInstance){
this._currentInstance._onmouseup(e);
this._currentInstance=null;
if(document.releaseCapture){
document.releaseCapture();
}
}
};
ui.behaviour.BaseDragBehaviour._classOnmousedown=function(e){
std.event.vanish(e);
};
ui.behaviour.BaseDragBehaviour.prototype.init=function(_4d3,args){
var clz=this._clz=ui.behaviour.BaseDragBehaviour;
if(!clz._classInited){
clz._classInit();
}
clz._instances.push(this);
if(args==null){
args={};
}
this.args=args;
this.borderOffset=args.border||0;
this.domNode=_4d3;
var dd=this._dragData={state:clz.STATE_INACTIVE};
dd.domNode=this.domNode;
dd.borderOffset=this.borderOffset;
dd.box=this.box=new ui.component.Box(dd.domNode);
dd.begin={x:this.box.getLeft(),y:this.box.getTop(),w:this.box.getWidth(),h:this.box.getHeight()};
std.event.chainObserve(_4d3,"mousedown",std.event.listener(this,this._onmousedown));
if(args.listenOnMouseMove){
std.event.chainObserve(_4d3,"mousemove",std.event.listener(this,this._onMymousemove));
}
};
ui.behaviour.BaseDragBehaviour.prototype._onmousedown=function(e){
if(!std.event.isLeftClick(e)){
return;
}
var clz=this._clz;
var dd=this._dragData;
if(dd.state==clz.STATE_ACTIVE){
return;
}
dd.begin={x:this.box.getLeft(),y:this.box.getTop(),w:this.box.getWidth(),h:this.box.getHeight(),mouseOffset:{x:e.clientX,y:e.clientY}};
this.onMouseDown(dd,e);
if(dd.cancel){
return;
}
dd.state=clz.STATE_ARMED;
if(clz._currentInstance){
clz._currentInstance._dragData.state=clz.STATE_INACTIVE;
}
clz._currentInstance=this;
if(dd.domNode.setCapture){
dd.domNode.setCapture();
}
std.event.observe(document,"mousedown",clz._classCancelOnmousedown);
};
ui.behaviour.BaseDragBehaviour.prototype._onMymousemove=function(e){
var clz=this._clz;
var dd=this._dragData;
if(dd.state==clz.STATE_INACTIVE){
dd.mx=e.clientX;
dd.my=e.clientY;
dd.ox=e.offsetX||e.layerX;
dd.oy=e.offsetY||e.layerY;
this.onMyMouseMove(dd,e);
}
};
ui.behaviour.BaseDragBehaviour.prototype._onmousemove=function(e){
var clz=this._clz;
var dd=this._dragData;
if(dd.state==clz.STATE_ARMED){
this.preMouseMove(dd,e);
if(dd.cancel){
return;
}
dd.state=clz.STATE_ACTIVE;
}
if(dd.state==clz.STATE_ACTIVE){
dd.mx=e.clientX;
dd.my=e.clientY;
this.onMouseMove(dd,e);
if(dd.cancel){
return;
}
this.postMouseMove(dd,e);
}
std.event.vanish(e);
};
ui.behaviour.BaseDragBehaviour.prototype._onmouseup=function(e){
var clz=this._clz;
var dd=this._dragData;
if(dd.state==clz.STATE_ACTIVE){
this.onMouseUp(dd,e);
}
if(dd.domNode.releaseCapture){
dd.domNode.releaseCapture();
}
std.event.stopObserving(document,"mousedown",clz._classCancelOnmousedown);
if(dd.state==clz.STATE_ACTIVE&&!dd.cancel){
this.postMouseUp(dd,e);
}
dd.state=clz.STATE_INACTIVE;
};
ui.plugin={};
ui.behaviour.Draggable=function(_4e3,args){
this.init(_4e3,args);
this.defineEvent("onDragMouseDown");
this.defineEvent("onDragMouseMove");
this.defineEvent("onDragBegin");
this.defineEvent("onBeforeDrag");
this.defineEvent("onDrag");
this.defineEvent("onBeforeDragEnd");
this.defineEvent("onDragEnd");
};
ui.behaviour.Draggable.prototype=new ui.behaviour.BaseDragBehaviour();
ui.behaviour.Draggable.prototype.onMouseDown=function(dd,e){
this.fireEvent("onDragMouseDown",dd,e);
};
ui.behaviour.Draggable.prototype.onMyMouseMove=function(dd,e){
this.fireEvent("onDragMouseMove",dd,e);
};
ui.behaviour.Draggable.prototype.preMouseMove=function(dd,e){
this.fireEvent("onDragBegin",dd,e);
};
ui.behaviour.Draggable.prototype.onMouseMove=function(dd,e){
dd.x=dd.mx+dd.begin.x-dd.begin.mouseOffset.x;
dd.y=dd.my+dd.begin.y-dd.begin.mouseOffset.y;
this.fireEvent("onBeforeDrag",dd,e);
};
ui.behaviour.Draggable.prototype.postMouseMove=function(dd,e){
dd.box.setPosition(dd.x,dd.y);
this.fireEvent("onDrag",dd,e);
};
ui.behaviour.Draggable.prototype.onMouseUp=function(dd,e){
this.fireEvent("onBeforeDragEnd",dd,e);
};
ui.behaviour.Draggable.prototype.postMouseUp=function(dd,e){
dd.box.setPosition(dd.x,dd.y);
this.fireEvent("onDragEnd",dd,e);
};
ui.behaviour.resize={};
ui.behaviour.Resizable=function(_4f3,args){
this.init(_4f3,args);
this.defineEvent("onResizeMouseMove");
this.defineEvent("onResizeMouseDown");
this.defineEvent("onResizeBegin");
this.defineEvent("onBeforeResize");
this.defineEvent("onResize");
this.defineEvent("onBeforeResizeEnd");
this.defineEvent("onResizeEnd");
this.threshold=this.args.threshold||10;
};
ui.behaviour.Resizable.prototype=new ui.behaviour.BaseDragBehaviour();
ui.behaviour.Resizable.prototype.DIRECTIONS={"N":{x:0,y:1,w:0,h:-1},"S":{x:0,y:0,w:0,h:1},"W":{x:1,y:0,w:-1,h:0},"E":{x:0,y:0,w:1,h:0},"NE":{x:0,y:1,w:1,h:-1},"NW":{x:1,y:1,w:-1,h:-1},"SE":{x:0,y:0,w:1,h:1},"SW":{x:1,y:0,w:-1,h:1}};
ui.behaviour.Resizable.prototype.onMyMouseMove=function(dd,e){
dd.direction=this._resolveDirection(dd,dd.box,e);
if(dd.direction!=""){
dd.begin.x=dd.box.getLeft();
dd.begin.y=dd.box.getTop();
dd.begin.w=dd.box.getWidth();
dd.begin.h=dd.box.getHeight();
this.fireEvent("onResizeMouseMove",dd,e);
}
};
ui.behaviour.Resizable.prototype.onMouseDown=function(dd,e){
var _4f9=dd.begin;
_4f9.h=dd.box.getHeight();
_4f9.w=dd.box.getWidth();
dd.direction=this._resolveDirection(dd,dd.box,e);
if(dd.direction){
this.fireEvent("onResizeMouseDown",dd,e);
}else{
dd.cancel=true;
}
};
ui.behaviour.Resizable.prototype.preMouseMove=function(dd,e){
if(dd.direction==""){
return;
}
this.fireEvent("onResizeBegin",dd,e);
};
ui.behaviour.Resizable.prototype.onMouseMove=function(dd,e){
this._updateBound(dd);
this.fireEvent("onBeforeResize",dd,e);
};
ui.behaviour.Resizable.prototype.postMouseMove=function(dd,e){
this._setBound(dd);
this.fireEvent("onResize",dd,e);
};
ui.behaviour.Resizable.prototype.onMouseUp=function(dd,e){
if(!dd.direction){
return;
}
this._updateBound(dd);
this.fireEvent("onBeforeResizeEnd",dd,e);
};
ui.behaviour.Resizable.prototype.postMouseUp=function(dd,e){
this._setBound(dd);
this.fireEvent("onResizeEnd",dd,e);
};
ui.behaviour.Resizable.prototype._updateBound=function(dd){
var dir=this.DIRECTIONS[dd.direction];
if(dir.x){
dd.x=dd.begin.x+dir.x*(dd.mx-dd.begin.mouseOffset.x);
}
if(dir.y){
dd.y=dd.begin.y+dir.y*(dd.my-dd.begin.mouseOffset.y);
}
if(dir.w){
dd.w=dd.begin.w+dir.w*(dd.mx-dd.begin.mouseOffset.x);
}
if(dir.h){
dd.h=dd.begin.h+dir.h*(dd.my-dd.begin.mouseOffset.y);
}
};
ui.behaviour.Resizable.prototype._setBound=function(dd){
var dir=this.DIRECTIONS[dd.direction];
if(dir.x){
dd.box.setLeft(dd.x);
}
if(dir.y){
dd.box.setTop(dd.y);
}
if(dir.w){
dd.box.setWidth(dd.w);
}
if(dir.h){
dd.box.setHeight(dd.h);
}
};
ui.behaviour.Resizable.prototype._resolveDirection=function(dd,box,e){
var _50b="";
var _50c=this.threshold;
var _50d=std.event.getOffset(e);
var elm=std.event.element(e);
var x=_50d.x;
var y=_50d.y;
while(elm&&elm!=dd.domNode){
x+=elm.offsetLeft;
y+=elm.offsetTop;
elm=elm.parentNode;
}
if(!elm){
return "";
}
var w=box.getWidth();
var h=box.getHeight();
if(y<_50c){
_50b+="N";
}else{
if(h-y<_50c){
_50b+="S";
}
}
if(x<_50c){
_50b+="W";
}else{
if(w-x<_50c){
_50b+="E";
}
}
return _50b;
};
ui.plugin={};
ui.plugin.Axis=function(_513,args){
this._direction=_513||"x";
};
ui.plugin.Axis.prototype.processEvent=function(dd){
switch(dd.eventType){
case "onBeforeDrag":
var _516=std.browser.isIE||std.browser.isAppleWebKit?0:dd.borderOffset;
if(this._direction=="x"){
dd.y=dd.begin.y-_516;
}else{
if(this._direction=="y"){
dd.x=dd.begin.x-_516;
}
}
break;
}
};
ui.plugin.Handle=function(_517){
this._handle=std.dom.element(std.lang.evaluate(_517));
this._handle.style.cursor="default";
};
ui.plugin.Handle.prototype.processEvent=function(dd){
switch(dd.eventType){
case "onDragMouseDown":
var node=std.dom.getEventTarget(dd.evt);
var _51a=dd.domNode;
while(node&&node!=_51a&&node!=this._handle){
node=node.parentNode;
}
if(node!=this._handle){
dd.cancel=true;
}
break;
}
};
ui.plugin.CheckNode=function(args){
this._reject=args.reject;
this._accept=args.accept;
};
ui.plugin.CheckNode.prototype.processEvent=function(dd){
switch(dd.eventType){
case "onDragMouseDown":
var node=std.dom.getEventTarget(dd.evt);
var _51e=dd.domNode;
var _51f=this._accept||{};
var _520=this._reject||{};
while(node&&node!=_51e){
if(this._accept&&this._accept(node)){
return true;
}
if(this._reject&&this._reject(node)){
dd.cancel=true;
return false;
}
node=node.parentNode;
}
break;
}
};
ui.plugin.Helper=function(_521){
this._helper=std.dom.element(std.lang.evaluate(_521));
};
ui.plugin.Helper.prototype.processEvent=function(dd){
switch(dd.eventType){
case "onDragBegin":
dd.domNode.parentNode.appendChild(this._helper);
var _523=this._box=dd.box;
var _524=dd.box=new ui.component.Box(this._helper);
var sty=this._helper.style;
_524.setBounds(_523.getLeft(),_523.getTop(),_523.getWidth(),_523.getHeight());
this._display=sty.display;
sty.display="block";
break;
case "onBeforeDragEnd":
dd.box=this._box;
this._helper.style.display=this._display;
break;
}
};
ui.plugin.Inside=function(_526,args){
this._container=std.dom.element(std.lang.evaluate(_526));
args=args||{};
this._margin=args.margin||0;
this._child=args.child!=null?args.child:true;
};
ui.plugin.Inside.prototype.processEvent=function(dd){
switch(dd.eventType){
case "onDragBegin":
this._containerBox=new ui.component.Box(this._container);
break;
case "onBeforeDrag":
var _529=dd.box;
var _52a=this._containerBox;
var m=this._margin;
var ix=dd.x,iy=dd.y,iw=_529.getWidth(),ih=_529.getHeight();
var ow=_52a.getWidth(),oh=_52a.getHeight();
var ox=this._child?0:_52a.getLeft();
var oy=this._child?0:_52a.getTop();
var _534=dd.borderOffset;
if(m<0){
ox-=iw+m;
ow+=(iw+m)*2;
oy-=ih+m;
oh+=(ih+m)*2;
}else{
ox-=m;
ow+=m*2;
oy-=m;
oh+=m*2;
}
if(ix<ox){
dd.x=ox;
}
if(iy<oy){
dd.y=oy;
}
if(ix+iw>ox+ow-2*_534){
dd.x=ox+ow-2*_534-iw;
}
if(iy+ih>oy+oh-2*_534){
dd.y=oy+oh-2*_534-ih;
}
break;
}
};
ui.plugin.Cursor=function(_535){
this._cursorNew=_535;
};
ui.plugin.Cursor.prototype.processEvent=function(dd){
switch(dd.eventType){
case "onDragBegin":
case "onDragMouseMove":
var sty=dd.domNode.style;
this._cursorOld=sty.cursor;
sty.cursor=this._cursorNew;
break;
case "onResizeBegin":
case "onResizeMouseMove":
var sty=dd.domNode.style;
this._cusrorOld=sty.cursor;
sty.cursor=dd.direction.toLowerCase()+"-resize";
break;
case "onBeforeDragEnd":
case "onBeforeResizeEnd":
var sty=dd.domNode.style;
sty.cursor=this._cursorOld;
break;
}
};
ui.plugin.Snap=function(_538,args){
this._distance=_538;
var args=args||{};
this._relX=(args.relative||args.relativeX)?1:0;
this._relY=(args.relative||args.relativeY)?1:0;
};
ui.plugin.Snap.prototype.processEvent=function(dd){
var d=this._distance;
switch(dd.eventType){
case "onBeforeResize":
dd.w=dd.w+(dd.begin.w%d)-dd.w%d;
dd.h=dd.h+(dd.begin.h%d)-dd.h%d;
case "onBeforeDrag":
dd.x=dd.x+this._relX*(dd.begin.x%d)-dd.x%d;
dd.y=dd.y+this._relY*(dd.begin.y%d)-dd.y%d;
break;
}
};
ui.plugin.Opacity=function(_53c){
this._opacity=_53c;
};
ui.plugin.Opacity.prototype.processEvent=function(dd){
switch(dd.eventType){
case "onDragBegin":
case "onResizeBegin":
std.dom.opacity(dd.domNode,0.3);
break;
case "onDragEnd":
case "onResizeEnd":
std.dom.opacity(dd.domNode,1);
break;
}
};
ui.plugin.Overlay=function(_53e){
this._zIndex=_53e;
this._overlay=null;
};
ui.plugin.Overlay.prototype._createOverlay=function(){
if(!this._overlay){
var _53f={position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",zIndex:this._zIndex,display:"none"};
if(std.browser.isIE){
_53f.backgroundColor="white";
_53f.filter="alpha(opacity=1)";
}
var _540=this._overlay=std.dom.newElement("div",null,{innerHTML:"&nbsp;"},_53f);
document.body.appendChild(_540);
}
return this._overlay;
};
ui.plugin.Overlay.prototype.processEvent=function(dd){
switch(dd.eventType){
case "onDragBegin":
case "onResizeBegin":
var _542=this._createOverlay().style;
_542.display="block";
if(dd.domNode){
_542.cursor=dd.domNode.style.cursor;
}
break;
case "onDragEnd":
case "onResizeEnd":
var _542=this._createOverlay().style;
_542.display="none";
_542.cursor="";
break;
}
};
ui.plugin.overlay=new ui.plugin.Overlay(30000000);
var mesgLoaded=false;
var privateMessageBoxOpened=false;
std.event.observe(window,"load",function(){
if(window.unreadHighMesg!=undefined&&unreadHighMesg>0){
displayPrivateMessageBox();
}
});
function showNextPrivateMessage(){
if(curMesg<maxMesg){
curMesg++;
updatePrivateMessageBox();
}
}
function showPrevPrivateMessage(){
if(curMesg>1){
curMesg--;
updatePrivateMessageBox();
}
}
function updatePrivateMessageBox(){
for(var i=1;i<=maxMesg;i++){
document.getElementById("PrivateMessage_N"+i).style.display=(i==curMesg)?"block":"none";
}
if(curMesg>1){
document.getElementById("PrevPrivateMesg").className="PrivateMessageButton";
}else{
document.getElementById("PrevPrivateMesg").className="PrivateMessageButtonDisabled";
}
if(curMesg<maxMesg){
document.getElementById("NextPrivateMesg").className="PrivateMessageButton";
}else{
document.getElementById("NextPrivateMesg").className="PrivateMessageButtonDisabled";
}
document.getElementById("TotalMesgCount").innerHTML=maxMesg;
document.getElementById("CurMesgNum").innerHTML=curMesg;
var _544=document.getElementById("PrivateMessage_N"+curMesg);
if(_544.getAttribute("priority")>1){
document.getElementById("PrivateMessageBoxCriticalHead").style.display="block";
}else{
if(!_544.setRead){
setMessageRead(_544.getAttribute("private_mesg_id"));
unreadMesg--;
_544.setRead=true;
}
document.getElementById("PrivateMessageBoxCriticalHead").style.display="none";
}
}
var privateMessageBox;
function displayPrivateMessageBox(){
var _545=document.getElementById("PrivateMessageIndicator");
if(!privateMessageBox){
privateMessageBox=new ui.hintbox.HintBox({content:std.dom.element("PrivateMessageBox"),anchor:_545,align:"bottom left",snap:"top left",offsetX:-230,offsetY:0,style:{padding:"0px",width:"220px"}});
}
var _546=document.getElementById("PrivateMessageBox");
var _547=document.getElementById("PrivateMessageIndicator");
if(_546){
privateMessageBoxOpened=true;
_546.style.display="block";
if(!mesgLoaded){
ajax=new std.ajax.Updater("PrivateMessageContent",base_uri+"privatemesg/private_mesg_box",{evalScripts:true});
mesgLoaded=true;
}
}
var p=std.lang.bind(privateMessageBox,privateMessageBox.show);
p();
}
function closePrivateMessageBox(){
privateMessageBox.fade();
var _549=document.getElementById("PrivateMessageBox");
var _54a=document.getElementById("PrivateMessageIndicator");
var _54b=document.getElementById("PrivateMessageIndicatorCount");
if(_549){
privateMessageBoxOpened=false;
if(curMesg>0){
for(var i=1;i<=maxMesg;i++){
var _54d=document.getElementById("PrivateMessage_N"+i);
if(_54d.getAttribute("priority")>1&&!_54d.setRead){
setMessageRead(_54d.getAttribute("private_mesg_id"));
unreadMesg--;
_54d.setRead=true;
}
}
}
if(_54b){
if(unreadMesg){
_54b.innerHTML=unreadMesg;
}else{
var link=document.getElementById("PrivateMessageIndicatorLink");
link.innerHTML=loc("No New Message");
link.style.color="black";
}
}
}
if(unreadMesg==0){
document.getElementById("PrivateMessageIndicator").style.display="none";
}
}
function setMessageRead(_54f){
ajax=new std.ajax.Request(base_uri+"privatemesg/set_private_mesg_read?private_mesg_id="+_54f);
}
var userModeSwitchingBox;
function displayModeSwitchingBox(){
var _550=document.getElementById("UserModeIndicator");
if(!userModeSwitchingBox){
userModeSwitchingBox=new ui.hintbox.HintBox({content:std.dom.element("UserModeSwitchingBox"),anchor:_550,align:"bottom right",snap:"top left",offsetX:0,offsetY:0,style:{padding:"0px",width:"480px"}});
}
var p=std.lang.bind(userModeSwitchingBox,userModeSwitchingBox.show);
p();
}
function closeModeSwitchingBox(){
userModeSwitchingBox.fade();
}
var editgrid=editgrid||{};
editgrid.auth={};
editgrid.auth.AuthForm=function(form,base,_554,_555){
this._form=form;
this._base=base;
this._onError=_554;
this._onLoading=_555;
std.event.observe(form,"submit",std.event.listener(this,function(e){
this._onSubmit();
std.event.preventDefault(e);
return false;
}));
};
editgrid.auth.AuthForm.prototype.setUsernameGetter=function(_557){
this._usernameGetter=_557;
};
editgrid.auth.AuthForm.prototype.submit=function(){
this._onSubmit();
};
editgrid.auth.AuthForm.prototype._onSubmit=function(){
var _558=this._usernameGetter?this._usernameGetter(this._form):this._form.elements["username"].value;
var _559=this._form.elements["password"].value;
var _55a=this._form.elements["remember"].checked?"1":"";
var _55b=this._form.elements["return"].value;
var _55c=this._form.elements["direct"].value;
new std.ajax.Request(this._base+"login/ajax_check",{parameters:"username="+encodeURIComponent(_558)+"&password="+encodeURIComponent(_559)+"&remember="+encodeURIComponent(_55a)+"&return="+encodeURIComponent(_55b)+"&direct="+encodeURIComponent(_55c),method:"post",asynchronous:true,onSuccess:std.lang.bind(this,function(_55d,json){
var _55f=eval(_55d.responseText);
if(_55f.success){
location.href=_55f.redirect;
return;
}else{
if(this._onError){
this._onError(_55f.error);
this._form.elements["password"].focus();
}
}
}),onFailure:std.lang.bind(this,function(){
})});
this._onLoading(loc("processing..."));
};
var eventd={};
eventd._workerFile="worker";
eventd._minInterval=2000;
eventd._workers=[];
eventd.domain="";
eventd.isSupported=function(){
if(std.browser.isFF&&std.browser.major<1.8){
return false;
}
if(std.browser.isOpera&&std.browser.major<9){
return false;
}
if(std.browser.isIE&&std.browser.major<6){
return false;
}
if(std.browser.isMoz&&std.browser.gecko=="20060127"){
return false;
}
return true;
};
eventd.init=function(_560,_561){
this._clients={};
window.eventd=this;
if(_560==-1){
return true;
}
if(_561.match(/^[\d]*\.[\d]*\.[\d]*\.[\d]*(:[\d]*)?$/)){
try{
document.domain=_561;
}
catch(e){
std.log.error(e);
return false;
}
eventd.domain=document.domain;
return true;
}
var arr=document.domain.split(".");
if(_560>0&&arr.length!=1){
while(arr.length>_560){
arr.shift();
}
if(arr.length!=_560){
return false;
}
try{
document.domain=arr.join(".");
}
catch(e){
std.log.error(e);
return false;
}
eventd.domain=document.domain;
}
return eventd.domain||_561==location.host;
};
eventd.getClient=function(_563){
return this._clients[_563];
};
eventd.setClient=function(_564,_565){
this._clients[_564]=_565;
};
eventd.getStatus=function(){
var _566=[];
for(var key in this._clients){
var _568=this._clients[key];
_566.push("["+_568.token+"] "+_568.status+", "+_568.serverbase);
}
return _566.length?_566.join("\n"):"no created eventd client";
};
eventd.createClient=function(_569){
var _56a=null;
var _56b=_569.clientFactory;
if(typeof _56b=="string"){
_56a=eval(_56b)(_569);
}else{
_56a=eventd.createDefaultClient(_569);
}
eventd.setClient(_569.token,_56a);
return _56a;
};
eventd.createDefaultClient=function(_56c){
return new eventd.Client(_56c);
};
eventd.Client=function(_56d){
if(_56d===undefined){
return;
}
this.serverbase=_56d.serverbase;
this.scriptbase=_56d.scriptbase;
this.token=_56d.token;
this.id=_56d.id||"";
this.transportFactory=_56d.transportFactory;
this.funcGetSeq=_56d.funcGetSeq;
this.listeners={trigger:[],running:[]};
this.tracer=_56d.tracer;
this.status="initializing";
};
eventd.Client.prototype.start=function(){
this.status="starting";
if(!this.frame){
this.frame=std.dom.newElement("iframe",null,{},{display:"none"});
this.frame.setAttribute("src",std.browser.isIE?"javascript:'';":"about:blank");
document.body.appendChild(this.frame);
}
var url=this.serverbase+eventd._workerFile+"?domain="+eventd.domain+"&scriptbase="+this.scriptbase+"&token="+this.token+"&id="+this.id;
this.trace("Client::start(), url = "+url);
this.frame.src=url;
};
eventd.Client.prototype.stop=function(){
this.trace("Client::stop()");
this.frame.setAttribute("src",this.serverbase+"blank.html?");
};
eventd.Client.prototype.attachListener=function(name,func){
this.listeners[name].push(func);
};
eventd.Client.prototype.detachListener=function(name,func){
for(var i=0;i<this.listeners[name].length;i++){
if(this.listeners[name][i]==func){
this.listeners[name][i]=null;
}
}
};
eventd.Client.prototype.trigger=function(data,cb){
for(var i=0;i<this.listeners["trigger"].length;i++){
if(this.listeners["trigger"][i]!=null){
this.listeners["trigger"][i](data,cb);
}
}
};
eventd.Client.prototype.onRunning=function(){
this.status="running";
for(var i=0;i<this.listeners["running"].length;i++){
if(this.listeners["running"][i]!=null){
this.listeners["running"][i]();
}
}
};
eventd.Client.prototype.trace=function(str){
if(this.tracer){
this.tracer("["+this.token+"] "+str);
}
};
eventd.initWorker=function(_579,_57a,_57b,id){
var _57d=new eventd.Worker(_579,_57a,_57b,id);
_57d.start();
};
eventd.Worker=function(_57e,_57f,_580,id){
if(arguments.length!=0){
eventd._workers.push(this);
this.serverbase="";
this.domain=_57e;
this.scriptbase=_57f;
this.token=_580;
this.id=id;
this.data=null;
this.lastSeq=null;
this.timeout=60000;
this._requestTimer=null;
this._hasTimedOut=false;
this.reqSeq=0;
std.event.observe(window,"beforeunload",std.lang.bind(this,this._abortWorker));
}
};
eventd.Worker.prototype.start=function(){
if(this.domain){
document.domain=this.domain;
}
this._trace("Worker::_start()");
this._request();
};
eventd.Worker.prototype._request=function(){
var _582=eventd._minInterval-(new Date()-this.lastRequest);
if(_582>(0.2*eventd._minInterval)){
this._trace("Worker::_request(), need to wait");
setTimeout(std.lang.bind(this,this._request),_582);
return;
}
this.lastRequest=new Date();
var _583=window.parent.eventd.getClient(this.token);
this.reqSeq++;
this._trace("Worker::_request(), reqSeq = "+this.reqSeq+", hasClient = "+(_583&&true));
if(_583){
this.lastSeq=_583.funcGetSeq?_583.funcGetSeq():0;
setTimeout(std.lang.bind(this,this._requestDelayed),0);
}
return;
};
eventd.Worker.prototype._requestDelayed=function(){
var url=this.serverbase+"-/"+this.token+"?seq="+this.lastSeq+"&id="+this.id;
this._trace("Worker::requestDelayed(), reqSeq = "+this.reqSeq+", timeout = "+this.timeout+", url = "+url);
try{
this._transport=std.ajax.getTransport(this.transportFactory);
this._transport.lastReadyState=null;
this._transport.onreadystatechange=std.lang.bind(this,this._onResponse,this._transport,this.reqSeq);
this._transport.open("POST",url);
this._transport.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT");
this._transport.send("");
if(!(this._transport instanceof std.ajax.ScriptTagRequest)){
this._requestTimer=setTimeout(std.lang.bind(this,this._onTimeout,this._transport,this.reqSeq),this.timeout);
}
this._onRunning();
}
catch(e){
std.log.error("Error connecting to eventd: "+e);
}
};
eventd.Worker.prototype._onTimeout=function(_585,_586){
this._trace("Worker::onTimeout(), reqSeq = "+_586);
this._cancelTimeout();
this._hasTimedOut=true;
_585.abort();
};
eventd.Worker.prototype._cancelTimeout=function(){
if(this._requestTimer){
clearTimeout(this._requestTimer);
this._requestTimer=null;
}
};
eventd.Worker.prototype._abortWorker=function(){
if(this._transport){
this._workerAborted=true;
this._trace("Worker::abort()");
this._transport.abort();
this._cancelTimeout();
}
};
eventd.Worker.prototype._onResponse=function(_587,_588){
this._trace("Worker::_onResponse(), reqSeq = "+_588+", readyState = "+_587.readyState+", lastReadyState = "+_587.lastReadyState+", workerAborted = "+(this._workerAborted?"true":"false"));
var _589=_587.lastReadyState;
_587.lastReadyState=_587.readyState;
if(_587.readyState==4&&_589!=4){
_587.onreadystatechange=null;
if(!this._workerAborted){
if(this._hasTimedOut){
this._hasTimedOut=false;
this._request();
}else{
this._cancelTimeout();
this.data={responseText:null,status:null,statusText:null};
try{
this.data.responseText=_587.responseText;
}
catch(e){
}
try{
this.data.status=_587.status;
}
catch(e){
}
try{
this.data.statusText=_587.statusText;
}
catch(e){
}
this._transferData();
}
}
}
};
eventd.Worker.prototype._transferData=function(){
this._trace("Worker::_transferData(), status = "+this.data.status+", statusText = "+this.data.statusText+", responseText = "+this.data.responseText);
var _58a=window.parent.eventd.getClient(this.token);
if(_58a){
_58a.trigger(this.data,std.lang.bind(this,this._transferDataCallback));
}
this.data=null;
};
eventd.Worker.prototype._transferDataCallback=function(){
this._trace("Worker::_transferDataCallback()");
this._request();
};
eventd.Worker.prototype._trace=function(str){
var _58c=window.parent.eventd.getClient(this.token);
if(_58c){
_58c.trace(str);
}
};
eventd.Worker.prototype._onRunning=function(){
if(!this._running){
this._running=true;
var _58d=window.parent.eventd.getClient(this.token);
if(_58d){
_58d.onRunning();
}
}
};
eventd.createCrossDomainClient=function(_58e){
return new eventd.CrossDomainClient(_58e);
};
eventd.CrossDomainClient=function(_58f){
eventd.Client.call(this,_58f);
};
eventd.CrossDomainClient.prototype=new eventd.Client();
eventd.CrossDomainClient.prototype.start=function(){
var _590="<html><head>"+"<script type=\"text/javascript\" src=\""+this.scriptbase+"eventd.js\"></script>"+"<script type=\"text/javascript\">window.onload = function(){ eventd.initCrossDomainWorker(\""+this.token+"\", \""+this.serverbase+"\", \""+this.transportFactory+"\"); };</script>"+"</head>"+"<body></body>"+"</html>";
if(this.frame){
document.body.removeChild(this.frame);
}
this.frame=std.dom.newElement("iframe",null,{},{display:"none"});
if(std.browser.isOpera){
this.frame.src="javascript:'"+_590+"'";
}
document.body.appendChild(this.frame);
if(!std.browser.isOpera){
this.frame.src="javascript:'"+_590+"'";
}
};
eventd.initCrossDomainWorker=function(_591,_592,_593){
var _594=new eventd.CrossDomainWorker(_591,_592,_593);
_594.start();
};
eventd.CrossDomainWorker=function(_595,_596,_597){
eventd._workers.push(this);
this.serverbase=_596;
this.domain=null;
this.scriptbase=null;
this.token=_595;
this.data=null;
this.eventdDomain=null;
this.transportFactory=_597;
this.lastSeq=null;
};
eventd.CrossDomainWorker.prototype=new eventd.Worker();
if(typeof editgrid=="undefined"){
editgrid={};
}
editgrid.getSessionId=function(){
return std.cookies.get("editgrid_session");
};
var BORDER_TOP=0;
var BORDER_BOTTOM=1;
var BORDER_LEFT=2;
var BORDER_RIGHT=3;
var BORDER_HORIZ=6;
var BORDER_VERT=7;
var BORDER_NULL=-1;
var BORDER_NONE=0;
var BORDER_THIN=1;
var BORDER_MEDIUM=2;
var BORDER_DASHED=3;
var BORDER_DOTTED=4;
var BORDER_THICK=5;
var BORDER_DOUBLE=6;
var BORDER_HAIR=7;
var BORDER_MEDIUM_DASH=8;
var BORDER_DASH_DOT=9;
var BORDER_MEDIUM_DASH_DOT=10;
var BORDER_DASH_DOT_DOT=11;
var BORDER_MEDIUM_DASH_DOT_DOT=12;
var BORDER_SLANTED_DASH_DOT=13;
var MOVE_HORIZONTAL=0;
var MOVE_VERTICAL=1;
var SSS_SHEET_OBJECT_EXTENSION_JSON=1024;
var SSS_SHEET_OBJECT_EXTENSION_REMOTE_IMAGE=1027;
var SSS_SHEET_OBJECT_EXTENSION_GRIDLET=1028;
var SSS_SHEET_OPERATIONS=["Add","Delete","Move","Rename"];
var SSS_PASTE_CONTENT=1<<0;
var SSS_PASTE_AS_VALUES=1<<1;
var SSS_PASTE_FORMATS=1<<2;
var SSS_PASTE_COMMENTS=1<<3;
var SSS_PASTE_OBJECTS=1<<4;
var SSS_PASTE_DEFAULT=SSS_PASTE_CONTENT|SSS_PASTE_FORMATS|SSS_PASTE_COMMENTS|SSS_PASTE_OBJECTS;
var SSS_PASTE_OPER_ADD=1<<5;
var SSS_PASTE_OPER_SUB=1<<6;
var SSS_PASTE_OPER_MULT=1<<7;
var SSS_PASTE_OPER_DIV=1<<8;
var SSS_PASTE_TRANSPOSE=1<<9;
var SSS_PASTE_LINK=1<<10;
var SSS_PASTE_SKIP_BLANKS=1<<11;
var FILL_DIR_DOWN=2;
var FILL_DIR_RIGHT=6;
var AUTOFILL=16;
var AUTOFILL_DIR_DOWN=AUTOFILL|FILL_DIR_DOWN;
var AUTOFILL_DIR_RIGHT=AUTOFILL|FILL_DIR_RIGHT;
var SSS_CLEAR_CONTENTS=1;
var SSS_CLEAR_FORMATS=2;
var SSS_CLEAR_COMMENTS=4;
var SSS_CLEAR_ALL=7;
var SSS_ERROR_TYPE_REMOTE_DATA=0;
editgrid.fontTable={"Arial":"Arial, Helvetica, sans-serif","Times New Roman":"Times New Roman, Times, serif","Courier New":"Courier New, Courier, monospace","Georgia":"Georgia, Times New Roman, Times, serif","Verdana":"Verdana, Arial, Helvetica, sans-serif","Geneva":"Geneva, Arial, Helvetica, sans-serif","Century Gothic":"Century Gothic, Arial, Helvetica, sans-serif","Comic Sans MS":"Comic Sans MS, cursive","Garamond":"Garamond, Times, serif","Tahoma":"Tahoma, Arial, Helvetica, sans-serif","Trebuchet MS":"Trebuchet MS, Arial, Helvetica, sans-serif"};
editgrid.network={};
editgrid.network.Network=function(_598){
this.gridSessionId=_598.gridSessionId;
this.endpoint=_598.endpoint;
this.transportFactory=_598.transportFactory;
this.endpointSuffix="";
var _599=2000;
this.timeout=_599*20;
this.timeoutDisabledProbeInterval=_599*2;
this.errorRetryInterval=_599;
this.timeoutRetryInterval=_599*5;
this.suppressErrorInterval=_599*10;
this._preCommands={};
this._commandQueue=[];
this._queuedChangeCommands=null;
this._lastUsedSequence=0;
std.topic.define(this,"onError");
this.errorType=0;
this.errorInfo=null;
this.errorState=this.ST_NORMAL;
std.topic.define(this,"onResponse");
std.topic.define(this,"onResponseError");
this.onNextResponse=[];
this.onActivity=null;
this.onNewCommand=null;
this.onRequestDone=null;
this.timeoutDisabled=0;
this.tracer=_598.tracer;
this.debug=false;
this.traceMessage=false;
this.lastSessionId=null;
this.sentAttempt=0;
this.sendEnabled=true;
std.topic.define(this,"onVersionUnsupported");
std.topic.define(this,"onVersionDeprecated");
std.event.observe(window,"unload",std.lang.bind(this,this._cleanup));
};
editgrid.network.Network.prototype.setEndpointSuffix=function(_59a){
this.endpointSuffix=_59a;
};
editgrid.network.Network.prototype.isConnected=function(){
return this._commandSendBuf!=null;
};
editgrid.network.Network.prototype._cleanup=function(){
if(this._transport){
this._transport.onreadystatechange=function(){
};
this._transport=null;
}
};
editgrid.network.Network.prototype._trace=function(_59b){
this.tracer(_59b);
if(this.debug){
std.log.debug("["+this.sentAttempt+"] "+_59b);
}
};
editgrid.network.Network.prototype.ERR_CONNECT=1;
editgrid.network.Network.prototype.ERR_SERVER=2;
editgrid.network.Network.prototype.ERR_TIMEOUT=3;
editgrid.network.Network.prototype.ERR_BUSY=4;
editgrid.network.Network.prototype.ST_NORMAL=0;
editgrid.network.Network.prototype.ST_SUPPRESS=1;
editgrid.network.Network.prototype.ST_ERROR=2;
editgrid.network.Network.prototype._updateError=function(_59c,_59d){
this.errorType=_59c;
this.errorInfo=_59d;
if(this.errorType){
this._trace("Network::_updateError(), errorType = "+_59c+", errorInfo = "+_59d);
if(this.errorState==this.ST_NORMAL){
this._errorTimer=setTimeout(std.lang.bind(this,this._endSuppressError),this.suppressErrorInterval);
this.errorState=this.ST_SUPPRESS;
}else{
if(this.errorState==this.ST_ERROR){
std.topic.publish(this,"onError",[this.errorType,this.errorInfo]);
}
}
}else{
this.errorState=this.ST_NORMAL;
if(this._errorTimer){
clearTimeout(this._errorTimer);
this._errorTimer=null;
}
std.topic.publish(this,"onError",[this.errorType,this.errorInfo]);
}
};
editgrid.network.Network.prototype._endSuppressError=function(){
this._errorTimer=null;
this.errorState=this.ST_ERROR;
std.topic.publish(this,"onError",[this.errorType,this.errorInfo]);
};
editgrid.network.Network.prototype.prependExtraCommand=function(key,name,_5a0){
_5a0.gridSessionId=this.gridSessionId;
var _5a1=new editgrid.network.Command(name,_5a0);
this._preCommands[key]=_5a1;
};
editgrid.network.Network.prototype.prependCommand=function(name,_5a3,_5a4,_5a5,_5a6,_5a7){
_5a3.gridSessionId=this.gridSessionId;
var _5a8=new editgrid.network.Command(name,_5a3,_5a4,_5a5,_5a6,_5a7);
if(_5a8._isChangeCommand()){
this._queuedChangeCommands=true;
}
this._commandQueue.unshift(_5a8);
this._fireNextPacket();
if(this.onNewCommand){
this.onNewCommand(_5a8._isChangeCommand());
}
};
editgrid.network.Network.prototype.appendCommand=function(name,_5aa,_5ab,_5ac,_5ad,_5ae){
_5aa.gridSessionId=this.gridSessionId;
var _5af=new editgrid.network.Command(name,_5aa,_5ab,_5ac,_5ad,_5ae);
if(_5af._isChangeCommand()){
this._queuedChangeCommands=true;
}
this._commandQueue.push(_5af);
this._fireNextPacket();
if(this.onNewCommand){
this.onNewCommand(_5af._isChangeCommand());
}
};
editgrid.network.Network.prototype.appendNoop=function(){
var _5b0=editgrid.network.NoopCommand;
this._commandQueue.push(_5b0);
this._fireNextPacket();
if(this.onNewCommand){
this.onNewCommand(_5b0._isChangeCommand());
}
};
editgrid.network.Network.prototype._fireNextPacket=function(){
this._trace("Network::_fireNextPacket(), sendEnabled = "+(this.sendEnabled?"true":"false"));
setTimeout(std.lang.bind(this,this._onNextPacket),0);
};
editgrid.network.Network.prototype._onNextPacket=function(){
if(!this.isConnected()&&this._commandQueue.length){
var cnt=1;
while(cnt<this._commandQueue.length){
if(this._commandQueue[cnt-1].follow){
cnt++;
}else{
break;
}
}
var _5b2=[];
for(key in this._preCommands){
_5b2.push(this._preCommands[key]);
}
for(key in _5b2){
_5b2[key].attrs["cseq"]=++this._lastUsedSequence;
}
this._preCommandSendBuf=_5b2;
this._preCommands={};
var _5b3=this._commandQueue.splice(0,cnt);
for(key in _5b3){
_5b3[key].attrs["cseq"]=++this._lastUsedSequence;
}
this._commandSendBuf=_5b3;
this._queuedChangeCommands=false;
this._sendRequest();
}
};
editgrid.network.Network.prototype.enableTimeout=function(){
this.timeoutDisabled=0;
};
editgrid.network.Network.prototype.disableTimeout=function(){
this.timeoutDisabled=1;
};
editgrid.network.Network.prototype._sendRequest=function(){
this._trace("Network::_sendRequest()");
if(this.sendEnabled){
this.sentAttempt++;
var _5b4=this._preCommandSendBuf;
var _5b5=this._commandSendBuf;
var _5b6=this.timeout;
if(typeof (_5b6)!="number"||isNaN(_5b6)){
null.assert;
}
var _5b7=true;
var body=[].concat("<?xml version=\"1.0\"?>","<Request>",_5b4,_5b5,"</Request>").join("\r\n");
for(var i=0;i<_5b5.length;i++){
_5b6=Math.max(_5b6,_5b5[i].timeout);
_5b7=_5b7&&_5b5[i].background;
}
clearTimeout(this._timer);
var _5ba=isNaN(_5b6)?this.timeout:_5b6;
this._timer=setTimeout(std.lang.bind(this,this._onTimeout),_5ba);
this._trace("Network::_sendRequest()::timeout = "+_5b6+", timeoutSafe = "+_5ba);
if(!_5b7&&this.onActivity){
this.onActivity(true);
}
this._transport=std.ajax.getTransport(this.transportFactory);
this._transport.onreadystatechange=std.lang.bind(this,this._onTransportStateChange);
var url=this.endpoint+this.gridSessionId+"/"+this.endpointSuffix;
this._transport.open("POST",url);
this._transport.setRequestHeader("Content-Type","application/xml");
this.checkSessionId("before request");
this._transport.send(body);
this._trace("Network::_sendRequest()::sentBody = \r\n"+body);
}else{
this._trace("Network::_sendRequest()::sendEnabled = false");
}
};
editgrid.network.Network.prototype._onTimeout=function(){
this._trace("Network::_onTimeout()");
if(this.timeoutDisabled){
this._timer=setTimeout(std.lang.bind(this,this._onTimeoutDisabled),this.timeoutDisabledProbeInterval);
}else{
this._updateError(this.ERR_TIMEOUT);
this._timer=setTimeout(std.lang.bind(this,this._retryRequestImpl),this.timeoutRetryInterval);
}
};
editgrid.network.Network.prototype._onTimeoutDisabled=function(){
this._trace("Network::_onTimeoutDisabled()");
if(this.timeoutDisabled){
this._timer=setTimeout(std.lang.bind(this,this._onTimeoutDisabled),this.timeoutDisabledProbeInterval);
}else{
this._timer=setTimeout(std.lang.bind(this,this._onTimeout),this.timeoutDisabledProbeInterval);
}
};
editgrid.network.Network.prototype.retryRequest=function(){
this._updateError(0,null);
this._retryRequestImpl();
};
editgrid.network.Network.prototype._retryRequestImpl=function(){
clearTimeout(this._timer);
if(this._transport){
this._trace("Network::_retryRequestImpl()");
this._transport.onreadystatechange=function(){
};
this._transport.abort();
this._transport=null;
}
this._sendRequest();
};
editgrid.network.Network.prototype._onTransportStateChange=function(){
if(this._transport.readyState==4){
clearTimeout(this._timer);
this.checkSessionId("after request");
var _5bc=0,_5bd=0,_5be=null;
try{
_5bc=this._transport.status;
}
catch(e){
_5be=e.message;
}
this._trace("Network::readyState == 4, statusCode == "+_5bc);
if(_5be){
_5bd=this.ERR_CONNECT;
}else{
if(_5bc==200){
var res=null;
std.perf.mark("network");
try{
try{
if(this.traceMessage){
this._trace("Network::res_text\n"+this._transport.responseText);
}
res=eval(this._transport.responseText);
}
catch(_e){
try{
var _5c0=this._transport.responseText;
_5c0=_5c0.replace(/\u2028/g,"\\u2028");
_5c0=_5c0.replace(/\u2029/g,"\\u2029");
_5c0=_5c0.replace(/\u0085/g,"\\u0085");
res=eval(_5c0);
}
catch(_e2){
this._trace("Network::responseText == "+this._transport.responseText.substring(0,30*1024));
this._trace("Network::responseText.length == "+this._transport.responseText.length);
throw new Error("Malformed responseText - "+_e2);
}
}
std.perf.mark("json");
if(res==null){
throw new Error("Null response");
}
if(res.error){
if(res.error.code=="UNSUPPORTED_JSON_VER"){
std.topic.publish(this,"onVersionUnsupported");
}else{
throw new Error("Unknown error '"+res.error.code+"'");
}
}else{
if(res.deprecated){
std.topic.publish(this,"onVersionDeprecated");
}
std.topic.publish(this,"onResponse",res.commandResponses);
var _5c1=this.onNextResponse;
this.onNextResponse=[];
for(var i=0;i<_5c1.length;++i){
(_5c1[i])(res.commandResponses);
}
}
if(this.onRequestDone){
this.onRequestDone(this._queuedChangeCommands);
}
for(var i=0;i<this._commandSendBuf.length;i++){
if(typeof (this._commandSendBuf[i].onSent)=="function"){
this._commandSendBuf[i].onSent();
}
}
this._commandSendBuf=null;
}
catch(e){
if(res==null){
_5bd=this.ERR_SERVER;
_5be="status=200 (";
var _5c3={};
for(var k in e){
_5c3[k]=e[k];
}
_5be+=std.json.toJSONString(_5c3)+")";
}else{
std.topic.publish(this,"onResponseError",e,this._transport.responseText,res?res.commandResponses:null);
setTimeout(function(){
throw e;
},0);
}
}
}else{
if(_5bc==502){
_5bd=this.ERR_BUSY;
_5be="status="+_5bc;
}else{
if(_5bc>=100&&_5bc<1000){
_5bd=this.ERR_SERVER;
_5be="status="+_5bc;
}else{
_5bd=this.ERR_CONNECT;
_5be="MSIE-status="+_5bc;
}
}
}
}
this._transport.onreadystatechange=function(){
};
this._transport=null;
this._updateError(_5bd,_5be);
this._trace("Network::errorType == "+_5bd);
if(_5bd){
this._timer=setTimeout(std.lang.bind(this,this._sendRequest),this.errorRetryInterval);
}else{
this._fireNextPacket();
}
if(this.onActivity){
this.onActivity(false);
}
}
};
editgrid.network.Network.prototype.shutdown=function(){
setTimeout(std.lang.bind(this,function(){
this._trace("Network::shutdown()");
this.sendEnabled=false;
if(this._transport){
this._transport.abort();
this._transport=null;
}
}),0);
};
editgrid.network.Network.prototype.checkSessionId=function(note){
var _5c6=editgrid.getSessionId();
if(this.lastSessionId&&this.lastSessionId!=_5c6){
this._trace("*ERROR* SessionId has been changed: "+this.lastSessionId+"->"+_5c6+" ("+note+")");
}
this.lastSessionId=_5c6;
};
editgrid.network.Command=function(name,_5c8,_5c9,_5ca,_5cb,_5cc){
this.name=name;
this.attrs=_5c8||{};
this.timeout=_5c9||0;
this.follow=!_5ca;
this.background=_5cb;
this.onSent=_5cc;
if(typeof (this.timeout)!="number"||isNaN(this.timeout)){
null.assert;
}
};
editgrid.network.Command.prototype._isChangeCommand=function(){
switch(this.name){
case "GetBookInfo":
case "GetBookSessionInfo":
case "CheckGridMesg":
case "CheckOutLayout":
case "CheckOutSheetLink":
case "CheckOutRangeContent":
case "KeepAlive":
case "LoadRangeHTML":
case "SheetDiff":
case "Search":
return false;
default:
return true;
}
};
editgrid.network.Command.prototype.toString=function(){
var s=["<"+this.name];
var _5ce={};
for(var key in this.attrs){
if(undefined===_5ce[key]){
var val=this.attrs[key];
s.push(" "+key+"=\""+(val==null?"null":std.string.escapeHTML(val.toString()).replace(/\r?\n/g,"&#xA;").replace(/[\u0000-\u0008\u000b-\u000c\u000e-\u001f]/g,""))+"\"");
}
}
s.push("/>");
return s.join("");
};
editgrid.network.NoopCommand=new editgrid.network.Command();
editgrid.network.NoopCommand.toString=function(){
return "";
};
editgrid.network.NoopCommand._isChangeCommand=function(){
return false;
};
editgrid.CommandProcessor=function(_5d1){
this._response=null;
this.tracer=_5d1.tracer;
this.network=_5d1.network;
this.yieldTime=_5d1.yieldTime;
this.timingSheetDiff=_5d1.timingSheetDiff;
this.timingKeepAlive=_5d1.timingKeepAlive;
std.topic.subscribe(this.network,"onResponse",std.lang.bind(this,this.processResponse));
std.topic.define(this,"onLocalUpdate");
std.topic.define(this,"onRemoteUpdate");
std.topic.define(this,"onRestoreCursorPos");
std.topic.define(this,"onPreRTU");
std.topic.define(this,"onPosRTU");
std.topic.define(this,"onPostSubCommands");
std.topic.define(this,"onAppMessage");
std.topic.define(this,"onPostResponse");
this.onProcessResponseItem=null;
this.onProcessResponseItemContext=null;
};
editgrid.CommandProcessor.prototype.setBookRevId=function(_5d2){
this.bookRevId=_5d2;
this.seq=0;
this.network.setEndpointSuffix(_5d2);
};
editgrid.CommandProcessor.prototype.fireKeepAlive=function(){
if(this._keepAliveTimer){
clearTimeout(this._keepAliveTimer);
this._keepAliveTimer=null;
}
this.network.appendCommand("KeepAlive",{bookRevId:this.bookRevId},null,false,true,std.lang.bind(this,this.onKeepAliveSent));
};
editgrid.CommandProcessor.prototype.onKeepAliveSent=function(){
this._keepAliveTimer=setTimeout(std.lang.bind(this,this.fireKeepAlive),this.timingKeepAlive);
};
editgrid.CommandProcessor.prototype._scheduleSheetDiff=function(){
if(typeof this._sheetDiffTimeoutId=="number"){
clearTimeout(this._sheetDiffTimeoutId);
}
this._sheetDiffTimeoutId=setTimeout(std.lang.bind(this,function(){
this._sheetDiffTimeoutId=null;
this.fireSheetDiff();
}),this.timingSheetDiff);
};
editgrid.CommandProcessor.prototype.fireSheetDiff=function(_5d3){
if(_5d3){
this.network.onNextResponse.push(_5d3);
}
if(!this.network.isConnected()){
this.network.appendNoop();
}
};
editgrid.CommandProcessor.prototype.processResponse=function(_5d4){
if(this._response){
this._response.commandStack[0]=this._response.commandStack[0].concat(_5d4);
this.tracer("new response appended");
}else{
var ctx=new editgrid.CommandProcessor.ResponseContext();
this._response={commandStack:[_5d4],currentStack:[0]};
std.topic.publish(this,"onPreRTU");
this._processResponse(ctx);
std.topic.publish(this,"onPosRTU");
}
};
editgrid.CommandProcessor.prototype._processResponse=function(ctx){
var _5d7=this._response.commandStack;
var _5d8=this._response.currentStack;
var _5d9=_5d8.length-1;
var _5da=new Date().getTime()+this.yieldTime;
this.tracer("(re)start processing response");
while(_5d9>=0){
var _5db=false;
for(var i=_5d8[_5d9],_5dd=_5d7[_5d9],l=_5dd.length;i<l;++i){
var item=_5dd[i];
if(item.returned){
std.topic.publish(this,"onPostSubCommands",item,ctx);
}else{
while(item.subCommands&&item.subCommands.length){
this._processResponseItem(item,ctx);
_5d7.push(_5dd=item.subCommands);
_5d8[_5d9]=i;
_5d8.push(i=0);
item=_5dd[0];
++_5d9;
l=_5dd.length;
}
this._processResponseItem(item,ctx);
if(item.subCommands){
std.topic.publish(this,"onPostSubCommands",item);
}
}
if((_5db=new Date().getTime()>=_5da)&&i<l-1){
_5d8[_5d9]=i+1;
item=_5dd=_5d8=_5d7=null;
std.lang.later(1,this,this._processResponse,ctx);
this.tracer("yield");
return;
}
}
if(--_5d9>=0){
_5d7.pop();
_5d8.pop();
_5d7[_5d9][_5d8[_5d9]].returned=true;
if(_5db){
item=_5dd=_5d8=_5d7=null;
std.lang.later(1,this,this._processResponse,ctx);
return;
}
}
}
this.tracer("finished processing response");
this._response=null;
this.network.prependExtraCommand(this.bookRevId,"SheetDiff",{bookRevId:this.bookRevId,after:this.seq});
std.topic.publish(this,"onPostResponse");
std.topic.publish(this,"onLocalUpdate",ctx.localUpdates);
std.topic.publish(this,"onRemoteUpdate",ctx.remoteUpdates);
if(ctx.restoreCursor!=null){
if(ctx.isUndoRedo&&!ctx.restoreCursor.cancelled){
std.topic.publish(this,"onRestoreCursorPos",ctx.restoreCursor.sheet,ctx.restoreCursor.range,ctx.restoreCursor.type);
}
ctx.restoreCursor=null;
}
};
editgrid.CommandProcessor.prototype._processResponseItem=function(item,ctx){
var seq=item.seq!=undefined?parseInt(item.seq):0;
if(seq){
if(this.seq>=seq){
return;
}
if(!item.nop){
this.seq=seq;
}
}
switch(item.type){
case 11:
case 12:
ctx.isUndoRedo=1;
break;
case 13:
ctx.isUndoRedo=0;
break;
case 14:
var seq=item.seq;
if(seq){
if(this.seq<seq){
this.seq=seq;
}
}
break;
case 15:
var seq=item.seq;
if(seq){
if(this.seq<seq){
this.seq=seq;
}
}
break;
case 16:
var seq=item.seq;
if(seq){
if(this.seq<seq){
this.seq=seq;
}
}
ctx.skipRTU=true;
break;
case 100:
std.topic.publish(this,"onAppMessage",item.message,item.warn_level);
break;
case 101:
std.topic.publish(this,"onAppMessage");
break;
}
this.onProcessResponseItem.call(this.onProcessResponseItemContext,item,ctx);
};
editgrid.CommandProcessor.ResponseContext=function(){
this.localUpdates={};
this.remoteUpdates={};
};
editgrid.CommandProcessor.ResponseContext.prototype.addUpdate=function(_5e3,_5e4,_5e5,type){
var _5e7=_5e3?this.localUpdates:this.remoteUpdates;
if(!_5e7[_5e4.id]){
_5e7[_5e4.id]={};
}
_5e7[_5e4.id][_5e5.getName()+"!"+type]={sheet:_5e4,range:_5e5,type:type};
};
editgrid.CommandProcessor.ResponseContext.prototype.setRestoreCursor=function(_5e8,_5e9,_5ea){
if(this.restoreCursor==null||_5ea==7||_5ea==8){
this.restoreCursor={};
this.restoreCursor.sheet=_5e8;
this.restoreCursor.range=_5e9.clone();
this.restoreCursor.type=_5ea;
}
};
editgrid.CommandProcessor.ResponseContext.prototype.dontRestoreCursor=function(){
this.restoreCursor={cancelled:1};
};
editgrid.ContextMenu=function(){
var self=this;
this.nodes={};
this.element=std.dom.newElement("div",null,{className:"ContextMenu"});
var _5ec=this.nodes.table=std.dom.newElement("table",this.element);
var _5ed=this.nodes.tbody=std.dom.newElement("tbody",_5ec);
this.items={};
this.itemArray=[];
this.hide();
document.body.appendChild(this.element);
if(std.browser.isIE&&std.browser.major<7&&this.useIFrameHack){
var _5ee=this.iframeHack=std.dom.newElement("iframe",null,{frameBorder:"0",scrolling:"no"},{position:"absolute",display:"none"});
_5ee.setAttribute("src","javascript:'';");
this.element.appendChild(_5ee);
document.body.appendChild(_5ee);
std.dom.opacity(_5ee,0);
}
std.event.observe(document,"mousedown",std.event.listener(this,function(e){
if(this.visible&&!this.isBounded(e.clientX,e.clientY)){
this.hide();
}
}));
};
editgrid.ContextMenu.prototype.useIFrameHack=true;
editgrid.ContextMenu.prototype.addItem=function(name,text,_5f2,_5f3){
var item;
if(name=="-"){
item=new editgrid.ContextMenuSep();
}else{
this.items[name]=item=new editgrid.ContextMenuItem(this,name,text,_5f2,_5f3);
}
this.nodes.tbody.appendChild(item.element);
this.itemArray.push(item);
return item;
};
editgrid.ContextMenu.prototype.getItem=function(name){
return this.items[name];
};
editgrid.ContextMenu.prototype.showAtEvent=function(_5f6,_5f7){
this.showAtPos({x:_5f6.clientX,y:_5f6.clientY},_5f7);
};
editgrid.ContextMenu.prototype.showAtPos=function(pos,_5f9){
for(var key in this.items){
this.items[key].underContexts(_5f9);
}
this._refreshSeparators();
var _5fb=this._calcAlignment(pos);
var _5fc=_5fb&&_5fb.indexOf("right")!=-1;
var _5fd=_5fb&&_5fb.indexOf("bottom")!=-1;
var _5fe=this.element.style.zIndex=100000000;
this.element.style.left=pos.x-(_5fc?this.element.offsetWidth:0)+"px";
this.element.style.top=pos.y-(_5fd?this.element.offsetHeight:0)+"px";
this.element.style.visibility="visible";
this.visible=true;
if(this.iframeHack){
this._cloneBounds(this.iframeHack);
this.iframeHack.style.zIndex=_5fe-10;
this.iframeHack.style.display="";
}
};
editgrid.ContextMenu.prototype._refreshSeparators=function(){
var _5ff=this.itemArray.length;
for(var i=0;i<this.itemArray.length;++i){
if(this.itemArray[i].name=="-"){
var show=false;
for(j=i-1;j>=0;--j){
if(this.itemArray[j].isVisible()){
show=(this.itemArray[j].name!="-");
break;
}
}
this.itemArray[i].setVisible(show);
if(show){
_5ff=i;
}
}
}
var show=false;
for(var i=_5ff;i<this.itemArray.length;++i){
if(this.itemArray[i].isVisible()&&this.itemArray[i].name!="-"){
show=true;
break;
}
}
if(this.itemArray.length>_5ff){
this.itemArray[_5ff].setVisible(show);
}
};
editgrid.ContextMenu.prototype._calcAlignment=function(pos){
var _603,_604,_605="";
var _606=std.dom.getBodyExtent();
var W=_606.width;
var H=_606.height;
var w=this.element.offsetWidth;
var h=this.element.offsetHeight;
var mx=pos.x;
var my=pos.y;
var _60d=H-(my+h);
var _60e=my-h;
var _60f=W-(mx+w);
var _610=mx-w;
if(_60d<0&&_60e>_60d){
_605+="bottom";
}
if(_60f<0&&_610>_60f){
_605+="right";
}
return _605;
};
editgrid.ContextMenu.prototype.hide=function(){
if(this.iframeHack){
this.iframeHack.style.display="none";
}
this.element.style.visibility="hidden";
this.element.style.top="0px";
this.element.style.left="0px";
this.visible=false;
};
editgrid.ContextMenu.prototype.isBounded=function(x,y){
x-=this.element.offsetLeft;
y-=this.element.offsetTop;
return x>=0&&x<=this.element.offsetWidth&&y>=0&&y<=this.element.offsetHeight;
};
editgrid.ContextMenu.prototype._onContextMenu=function(e,_614,_615,_616){
var _617,_618,_619="";
var ctx=_614.getContext(_615);
if(ctx!=null){
std.event.vanish(e);
this.showAtEvent(e,ctx);
}
return false;
};
editgrid.ContextMenu.prototype.addOwner=function(_61b,_61c,_61d){
if(!_61d){
_61d={};
}
std.event.onContextMenu(_61c,std.event.listener(this,function(e){
this._onContextMenu(e,_61b,_61c,_61d);
}));
};
editgrid.ContextMenu.prototype._cloneBounds=function(el){
var _620=el.style;
_620.top=this.element.offsetTop+"px";
_620.left=this.element.offsetLeft+"px";
_620.width=this.element.offsetWidth+"px";
_620.height=this.element.offsetHeight+"px";
};
editgrid.ContextMenuItem=function(_621,name,text,_624,_625){
this.parent=_621;
this.name=name;
this.contextMap={};
this.allowMap={};
if(typeof (_624)=="string"){
_624=[_624];
}
for(var i=0;i<_624.length;i++){
this.contextMap[_624[i]]=true;
}
if(typeof (_625)=="undefined"){
_625=["any"];
}
if(typeof (_625)=="string"){
_625=[_625];
}
for(var i=0;i<_625.length;i++){
this.allowMap[_625[i]]=true;
}
var tr=this.element=std.dom.newElement("tr",null);
var th=std.dom.newElement("th",tr);
var icon=std.dom.newElement("div",th,{className:"ToolIcon ToolIcon_"+name});
var td=std.dom.newElement("td",tr);
td.innerHTML=text;
std.event.observe(tr,"mouseover",std.event.listener(this,this._onMouseOver));
std.event.observe(tr,"mouseout",std.event.listener(this,this._onMouseOut));
std.event.observe(tr,"click",std.event.listener(this,this._onClick));
};
editgrid.ContextMenuItem.prototype.underContexts=function(_62b){
var show=false;
var _62d=false;
if(this.contextMap["any"]==true){
show=true;
}else{
if(typeof (_62b)=="string"){
_62b=[_62b];
}
for(var i=0;i<_62b.length;i++){
if(this.contextMap[_62b[i]]==true){
show=true;
break;
}
}
}
if(this.allowMap["any"]==true){
_62d=true;
}else{
if(typeof (_62b)=="string"){
_62b=[_62b];
}
for(var i=0;i<_62b.length;i++){
if(this.allowMap[_62b[i]]==true){
_62d=true;
break;
}
}
}
this.setVisible(show);
this.setDisabled(!_62d);
};
editgrid.ContextMenuItem.prototype.setVisible=function(_62f){
if(this._visible!==_62f){
this.element.style.display=_62f?"":"none";
this._visible=_62f;
}
};
editgrid.ContextMenuItem.prototype.setDisabled=function(_630){
if(this._disabled!==_630){
this.element.className=_630?"Disabled":"";
this._disabled=_630;
}
};
editgrid.ContextMenuItem.prototype.isVisible=function(){
return this._visible;
};
editgrid.ContextMenuItem.prototype.isDisabled=function(){
return this._disabled;
};
editgrid.ContextMenuItem.prototype._onMouseOver=function(){
if(this._disabled){
return;
}
this.element.className="Over";
};
editgrid.ContextMenuItem.prototype._onMouseOut=function(){
if(this._disabled){
return;
}
this.element.className="";
};
editgrid.ContextMenuItem.prototype._onClick=function(){
if(this._disabled){
return;
}
if(typeof (this.onClick)=="function"){
this.parent.hide();
if(this.parent.context){
this.onClick.call(this.parent.context);
}else{
this.onClick();
}
}
};
editgrid.ContextMenuSep=function(){
this.name="-";
var tr=this.element=std.dom.newElement("tr",null,{className:"Sep"});
var th=std.dom.newElement("th",tr);
var td=std.dom.newElement("td",tr);
var div=std.dom.newElement("div",td);
};
editgrid.ContextMenuSep.prototype.setVisible=editgrid.ContextMenuItem.prototype.setVisible;
editgrid.ContextMenuSep.prototype.isVisible=editgrid.ContextMenuItem.prototype.isVisible;
editgrid.SheetTabPane=function(_635){
std.topic.define(this,"onSelect");
std.topic.define(this,"onMove");
std.topic.define(this,"onCopy");
std.topic.define(this,"onInsert");
std.topic.define(this,"onRemove");
std.topic.define(this,"onRename");
std.topic.define(this,"onBeforeRename");
std.topic.define(this,"onAfterRename");
std.topic.define(this,"onUpdateLinked");
std.topic.define(this,"onShowProperties");
std.topic.define(this,"onHideSheet");
std.topic.define(this,"onUnhideSheet");
this.tabs=[];
this.tabHash={};
this.selectedId=-1;
this.scrollIndex=0;
this.container=std.dom.newElement("div",std.dom.element(_635),{className:"SheetTabPane"});
this.scroller=std.dom.newElement("div",this.container,{className:"SheetTabPaneScroller"});
this.scrollpane=std.dom.newElement("div",this.scroller,{},{width:"10000px",position:"relative"});
this.anchorHolder=std.dom.newElement("div",this.scrollpane,{className:"SheetTabAnchor"});
this.anchor=std.dom.newElement("div",this.anchorHolder);
this.body=std.dom.newElement("div",this.scrollpane,{className:"SheetTabPaneBody"});
this.allowTabDrag=this.allowTabInsert=function(){
return this.writable;
};
this.selectListeners=[];
this.moveListeners=[];
this.copyListeners=[];
this.insertListeners=[];
this.removeListeners=[];
this.renameListeners=[];
this.updateLinkListeners=[];
this.showPropertiesListeners=[];
std.event.observe(document,"mousedown",std.event.listener(this,this._hideContextMenu));
std.event.observe(document,"mousemove",std.event.listener(this,this._tabOnMouseMove));
std.event.observe(document,"mouseup",std.event.listener(this,this._tabOnMouseUp));
std.event.onContextMenu(this.container,std.event.listener(this,function(e){
std.event.vanish(e);
return false;
}));
this.control=std.dom.newElement("div",this.container,{},{position:"absolute",left:0,top:0});
this.controlDivAdd=std.dom.newElement("div",this.control,{className:"SheetTabControl SheetTabControlAdd"});
this.controlAdd=std.dom.newElement("a",this.controlDivAdd,{href:"javascript:;"});
this.controlDivPrev=std.dom.newElement("div",this.control,{className:"SheetTabControl SheetTabControlPrev"});
this.controlPrev=std.dom.newElement("a",this.controlDivPrev,{href:"javascript:;"});
this.controlDivNext=std.dom.newElement("div",this.control,{className:"SheetTabControl SheetTabControlNext"});
this.controlNext=std.dom.newElement("a",this.controlDivNext,{href:"javascript:;"});
std.event.observe(this.controlAdd,"click",std.lang.bind(this,this._onClickInsert));
std.event.observe(this.controlPrev,"click",std.lang.bind(this,this._onClickPrev));
std.event.observe(this.controlNext,"click",std.lang.bind(this,this._onClickNext));
};
editgrid.SheetTabPane.prototype._onClickInsert=function(){
if(this.allowTabInsert()){
std.topic.publish(this,"onInsert",this.tabs[this.tabs.length-1].id,true);
}
};
editgrid.SheetTabPane.prototype._onClickPrev=function(){
this.shift(-1);
};
editgrid.SheetTabPane.prototype._onClickNext=function(){
this.shift(1);
};
editgrid.SheetTabPane.prototype._getContextMenu=function(){
if(!this.contextMenu){
this.contextMenu=new editgrid.ContextMenu();
var item;
var self=this;
this.contextMenu.addItem("insertsheetbefore",loc("Insert Sheet Before"),["writable"]).onClick=function(){
std.topic.publish(self,"onInsert",self.contextTargetId,false);
};
this.contextMenu.addItem("insertsheetafter",loc("Insert Sheet After"),["writable"]).onClick=function(){
std.topic.publish(self,"onInsert",self.contextTargetId,true);
};
this.contextMenu.addItem("copysheet",loc("Copy Sheet"),["writable"]).onClick=function(){
std.topic.publish(self,"onCopy",self.contextTargetId);
};
this.contextMenu.addItem("removesheet",loc("Delete Sheet"),["writable multiple"]).onClick=function(){
std.topic.publish(self,"onRemove",self.contextTargetId);
};
this.contextMenu.addItem("renamesheet",loc("Rename Sheet"),["writable"]).onClick=function(){
std.topic.publish(self,"onRename",self.contextTargetId);
};
this.contextMenu.addItem("updatelink",loc("Update Linked Sheet"),["formal readable link"]).onClick=function(){
std.topic.publish(self,"onUpdateLinked",self.contextTargetId);
};
this.contextMenu.addItem("hidesheet",loc("Hide Sheet"),["is hidden sheet"]).onClick=function(){
std.topic.publish(self,"onHideSheet",self.contextTargetId);
};
this.contextMenu.addItem("unhideesheet",loc("Unhide Sheet"),["hidden sheet existed"]).onClick=function(){
std.topic.publish(self,"onUnhideSheet",self.contextTargetId);
};
this.contextMenu.addItem("properties",loc("Properties"),["any"]).onClick=function(){
std.topic.publish(self,"onShowProperties",self.contextTargetId);
};
}
return this.contextMenu;
};
editgrid.SheetTabPane.prototype._findTabHolder=function(_639){
var _63a=_639;
if(_63a._id){
return _63a;
}
while(_63a=_63a.parentNode){
if(_63a._id){
return _63a;
}
}
return null;
};
editgrid.SheetTabPane.prototype._tabOnContextMenu=function(e){
var menu=this._getContextMenu();
std.event.vanish(e);
var _63d=this.writable?["readable","writable"]:["readable"];
_63d.push("any");
if(this.formalReadable){
_63d.push("formal readable");
}
if(this.writable&&this.tabs.length>1){
_63d.push("writable multiple");
}
if(this.writable&&this.hasHiddenSheet){
_63d.push("hidden sheet existed");
}
var _63e=e.target?e.target:e.srcElement;
_63e=this._findTabHolder(_63e);
this.contextTargetId=parseInt(_63e._id);
if(this.writable&&this.hasUnhiddenSheets&&!this.tabHash[this.contextTargetId].hidden){
_63d.push("is hidden sheet");
}
if(this.tabHash[this.contextTargetId].linkSheet){
_63d.push("link");
}
if(this.tabHash[this.contextTargetId].linkSheet&&this.formalReadable){
_63d.push("formal readable link");
}
menu.showAtEvent(e,_63d,"bottom left");
return false;
};
editgrid.SheetTabPane.prototype._hideContextMenu=function(e){
if(!this._getContextMenu().isBounded(e.clientX,e.clientY)){
this._getContextMenu().hide();
}
};
editgrid.SheetTabPane.prototype.setSelectedId=function(id){
this.selectedId=id;
};
editgrid.SheetTabPane.prototype.addTab=function(_641,id,_643,_644){
this.tabHash[id]={title:_641,id:id,linkSheet:_643,hidden:_644};
this.tabs.push(this.tabHash[id]);
};
editgrid.SheetTabPane.prototype.tabForeach=function(f,_646){
var tabs=this.tabs;
for(var i=0;i<tabs.length;++i){
f(tabs[i],_646);
}
};
editgrid.SheetTabPane.prototype.getTabById=function(id){
return this.tabHash[id];
};
editgrid.SheetTabPane.prototype.removeAll=function(){
this.tabs=[];
this.tabHash={};
};
editgrid.SheetTabPane.prototype.redraw=function(){
std.dom.clearChildren(this.body);
this.anchorSlots=[];
this.tabBody=[];
this.tabText=[];
this._resizeInterval=20;
this._resizePadding=4;
for(var i=0;i<this.tabs.length;i++){
var prev=i>0?this.tabs[i-1]:null;
var curr=this.tabs[i];
var next=i<this.tabs.length-1?this.tabs[i+1]:null;
var _64e=this.selectedId==curr.id;
var _64f=curr.linkSheet;
var _650=std.dom.newElement("div",this.body);
_650._id=this.tabs[i].id;
_650._index=i;
std.event.onContextMenu(_650,std.event.listener(this,this._tabOnContextMenu));
std.event.observe(_650,"mousedown",std.event.listener(this,this._tabOnMouseDown));
std.event.observe(_650,"dblclick",std.event.listener(this,this._tabOnDblClick),true);
if(_64e||!prev){
var sep=std.dom.newElement("div",_650,{className:"SheetTabSep"+" "+(_64e?"Active":"Inactive")+"_"+(prev?"LX":"L")});
this.anchorSlots.push(std.dom.getOffset(sep));
}
var _652=this.tabBody[i]=std.dom.newElement("div",_650,{className:"SheetTab"+" "+(_64e?"Active":"Inactive")},{color:curr.hidden?"#999":""});
_652.unselectable="on";
_652.style.MozUserSelect="none";
if(_64f){
std.dom.newElement("div",_652,{className:"LinkSheetIcon"});
}
var _653=this.tabText[i]=std.dom.newElement("span",_652);
_653.innerHTML="<span>"+std.string.fullEscapeHTML(this.tabs[i].title)+"</span>";
if(!next||next.id!=this.selectedId){
var sep=std.dom.newElement("div",_650,{className:"SheetTabSep"+" "+(_64e?"Active":"Inactive")+"_"+(next?"RX":"R")});
this.anchorSlots.push(std.dom.getOffset(sep));
}
}
this.shift(0);
};
editgrid.SheetTabPane.prototype._getNearestPos=function(x){
if(!this.anchorSlots||x<this.anchorSlots[0]){
return 0;
}
for(var i=1;i<this.anchorSlots.length;i++){
var prev=this.anchorSlots[i-1];
var next=this.anchorSlots[i];
if(x>=prev&&x<=next){
return x-prev<next-x?i-1:i;
}
}
return this.anchorSlots.length-1;
};
editgrid.SheetTabPane.prototype._tabOnMouseDown=function(e){
if(e.button==editgrid.event.mouseButtons.LEFT){
if(!this._getContextMenu().isBounded(e.clientX,e.clientY)){
this._getContextMenu().hide();
}
var _659=e.target?e.target:e.srcElement;
_659=this._findTabHolder(_659);
var id=parseInt(_659._id);
var _65b=parseInt(_659._index);
if(this.allowTabDrag()){
this.dragId=id;
this.dragIndex=_65b;
this.dragTargetX=std.dom.getOffsetMid(_659.firstChild);
this.drag=1;
this.dragFromX=e.clientX;
}
this._commitRenamingInput();
this.select(id);
}
};
editgrid.SheetTabPane.prototype._tabOnMouseMove=function(e){
if(this.drag==1&&Math.abs(this.dragFromX-e.clientX)>8){
var self=this;
self.drag=2;
setTimeout(function(){
if(self.drag==2){
self.anchor.style.visibility="visible";
self.drag=3;
}
},100);
}
if(this.drag==2||this.drag==3){
this.dragToPos=this._getNearestPos(this.dragTargetX+e.clientX-this.dragFromX);
this.anchor.style.left=this.anchorSlots[this.dragToPos]+"px";
}
};
editgrid.SheetTabPane.prototype._tabOnMouseUp=function(e){
if(this.drag){
if(this.drag==3){
this.anchor.style.visibility="hidden";
std.topic.publish(this,"onMove",this.dragId,this.dragToPos>this.dragIndex?this.dragToPos-1:this.dragToPos);
}
this.drag=0;
}
};
editgrid.SheetTabPane.prototype._deactivateRenamingInput=function(){
var ctx=this._renamingTab;
if(ctx!=null){
ctx.container.replaceChild(ctx.label,ctx.input);
this._renamingTab=null;
ctx.parent.unselectable="on";
ctx.parent.style.MozUserSelect="none";
if(ctx.dummy){
ctx.parent.removeChild(ctx.dummy);
}
}
};
editgrid.SheetTabPane.prototype._commitRenamingInput=function(){
var ctx=this._renamingTab;
if(ctx!=null){
this._deactivateRenamingInput();
var _661=ctx.input.value;
if(_661!=""){
std.topic.publish(this,"onAfterRename",ctx.id,_661);
}
}
};
editgrid.SheetTabPane.prototype._resizeRenamingInput=function(){
var ctx=this._renamingTab;
if(ctx==null){
return;
}
if(this._keypressed){
if(ctx.dummy==null){
ctx.dummy=std.dom.newElement("span",ctx.parent,{className:"SheetTabTextbox"},{position:"absolute",left:"-1000px",top:"0px",overflow:"visible",whiteSpace:"nowrap"});
}
ctx.dummy.innerHTML=std.string.fullEscapeHTML(ctx.input.value);
var _663=std.dom.getDimensions(ctx.dummy);
var _664=ctx.input.style;
_664.width=(_663.width+this._resizePadding)+"px";
_664.height=_663.height+"px";
this._keypressed=false;
}
var self=this;
setTimeout(function(){
self._resizeRenamingInput();
},this._resizeInterval);
};
editgrid.SheetTabPane.prototype._tabOnDblClick=function(e){
if(this._renamingTab||std.browser.isOpera){
return;
}
var idx=this._getNearestPos(this.dragTargetX+e.clientX-this.dragFromX);
if(this.tabs[idx]==null){
return;
}
var _668=this.tabText[idx];
var _669=std.dom.newElement("textarea",null,{wrap:"off",className:"SheetTabTextbox",value:this.tabs[idx].title});
var _66a=e.target?e.target:e.srcElement;
_66a=this._findTabHolder(_66a);
var id=parseInt(_66a._id);
var _66c=this.tabBody[idx];
_66c.unselectable="off";
_66c.style.MozUserSelect="";
var size=std.dom.getDimensions(_668);
var _66e=_669.style;
_66e.position="relative";
_66e.left=-1;
_66e.top=-3;
_66e.width=size.width+this._resizePadding+"px";
_66e.height=size.height+"px";
var self=this;
var _670=_668.firstChild;
std.event.observe(_669,"blur",function(){
self._commitRenamingInput();
});
std.event.observe(_669,"keypress",function(e){
var k=std.event.getKeyCode(e);
var _673=std.event.getKeyCodes();
if(k==_673.KEY_ENTER){
self._commitRenamingInput();
std.event.vanish(e);
}else{
if(k==_673.KEY_ESCAPE){
self._deactivateRenamingInput();
std.event.vanish(e);
}
}
self._keypressed=true;
});
std.event.observe(_669,"mousedown",function(e){
std.event.stop(e);
});
std.event.observe(_669,"click",function(e){
std.event.stop(e);
});
_668.replaceChild(_669,_670);
std.topic.publish(this,"onBeforeRename",id);
_669.focus();
_669.select(0,_669.value.length);
this._renamingTab={id:id,container:_668,parent:_66c,label:_670,input:_669};
self._keypressed=true;
setTimeout(function(){
self._resizeRenamingInput();
},this._resizeInterval);
std.event.vanish(e);
};
editgrid.SheetTabPane.prototype.select=function(_676){
std.topic.publish(this,"onSelect",_676);
};
editgrid.SheetTabPane.prototype.shift=function(_677){
this.scrollIndex+=_677;
if(this.scrollIndex<0){
this.scrollIndex=0;
}
if(this.scrollIndex>=this.anchorSlots.length-1){
this.scrollIndex=this.anchorSlots.length-2;
}
this.scroller.scrollLeft=Math.max(0,this.anchorSlots[this.scrollIndex]-5);
};
editgrid.SheetTabPane.prototype.setWritable=function(bool){
this.writable=bool?true:false;
if(this.writable){
std.css.excludeClass(this.controlAdd,"disabled");
}else{
std.css.includeClass(this.controlAdd,"disabled");
}
};
editgrid.SheetTabPane.prototype.setFormalReadable=function(bool){
this.formalReadable=bool?true:false;
};
if(typeof (editgrid)=="undefined"){
editgrid={};
}
if(typeof (editgrid.toolbox)=="undefined"){
editgrid.toolbox={};
}
editgrid.toolbox.Toolbox=function(_67a){
this.active=1;
this.blinkInterval=1000;
this.onFocus=std.lang.bind(this,this._onFocus);
this.onBlur=std.lang.bind(this,this._onBlur);
this._autoFocus=true;
this._focusDelegator=std.customfocus.getManager().newDelegator(this,this.onFocus,this.onBlur);
this._initImpl(_67a||{});
std.topic.define(this,"onShow");
std.topic.define(this,"onClose");
std.topic.define(this,"onRelease");
std.topic.subscribe(this,"onShow",std.lang.bind(this,function(){
if(this.onload){
this.onload();
this.onload=null;
}
if(this.onshow){
this.onshow();
}
}));
var clz=editgrid.toolbox.Toolbox;
if(clz._docKeyEventListener==null){
clz._docKeyEventListener=std.event.listener(clz,clz.onDocKeyEvent);
std.event.keyObserve(document,"keypress",clz._docKeyEventListener);
}
if(std.browser.isMoz&&std.browser.major<1.8&&!clz.keyboardFocusHack){
clz.keyboardFocusHack=document.createElement("input");
clz.keyboardFocusHack.style.display="none";
document.body.appendChild(clz.keyboardFocusHack);
}
};
editgrid.toolbox.Toolbox._focus=null;
editgrid.toolbox.Toolbox._instances=[];
editgrid.toolbox.Toolbox.prototype.useIFrameHack=true;
editgrid.toolbox.Toolbox._keyboardFocusHack=null;
editgrid.toolbox.Toolbox._stackingOrderManager=new ui.util.StackingOrderManager({increment:50,zIndex:20043333});
editgrid.toolbox.Toolbox.prototype._createView=function(){
var _67c=new std.dom.Builder();
var _67d={};
_67d.root=_67c.push("table",{className:"Toolbox"});
_67d.head=_67c.push("thead");
_67c.push("tr");
_67c.push("td",{className:"ToolboxL"});
_67c.append("div",{className:"Spacer"});
_67c.pop();
_67c.push("td",{className:"ToolboxH"});
_67d.title=_67c.append("div",{className:"ToolboxTitle"});
_67c.pop();
_67c.push("td",{className:"ToolboxH"});
_67c.push("div",{className:"ToolboxButtonContainer"});
_67c.push("table",{cellPadding:"0",cellSpacing:"0"});
_67c.push("tbody");
_67c.push("tr");
if(this.minimize){
_67c.append("td",{className:"ToolboxButtonSpacer"});
_67c.push("td");
_67c.push("div",{className:"ToolboxButton"});
_67d.miniLink=_67c.append("a",{href:"#",className:"Minimize"});
_67c.pop();
_67c.pop();
}
_67c.append("td",{className:"ToolboxButtonSpacer"});
_67c.push("td");
_67c.push("div",{className:"ToolboxButton"});
_67d.closeLink=_67c.append("a",{href:"#",className:"Close"});
_67c.pop();
_67c.pop();
_67c.pop();
_67c.pop();
_67c.pop();
_67c.pop();
_67c.pop();
_67c.push("td",{className:"ToolboxR"});
_67c.append("div",{className:"Spacer"});
_67c.pop();
_67c.pop();
_67c.pop();
_67d.body=_67c.push("tbody");
_67c.push("tr");
_67c.push("td",{className:"ToolboxL"});
_67c.append("div",{className:"Spacer"});
_67c.pop();
_67d.contentHolder=_67c.append("td",{colSpan:2,className:"ToolboxContent"});
_67c.push("td",{className:"ToolboxR"});
_67c.append("div",{className:"Spacer"});
_67c.pop();
_67c.pop();
_67c.pop();
_67d.foot=_67c.push("tfoot");
_67c.push("tr");
_67c.push("td",{className:"ToolboxL"});
_67c.append("div",{className:"Spacer"});
_67c.pop();
_67c.push("td",{colSpan:2,className:"ToolboxH"});
_67c.append("div",{className:"Spacer"});
_67c.pop();
_67c.push("td",{className:"ToolboxR"});
_67c.append("div",{className:"Spacer"});
_67c.pop();
_67c.pop();
_67c.pop();
return _67d;
};
editgrid.toolbox.Toolbox.prototype.init=function(_67e){
this.setRoot(_67e);
};
editgrid.toolbox.Toolbox.prototype.release=function(){
std.topic.publish(this,"onRelease");
if(this.element.parentNode){
this.element.parentNode.removeChild(this.element);
}
};
editgrid.toolbox.Toolbox.prototype.initLoader=function(_67f){
_67f=_67f||{};
if(null!=_67f.w){
this.contentHolder.style.width=_67f.w+"px";
}
if(null!=_67f.h){
this.contentHolder.style.height=_67f.h+"px";
}
if(null!=_67f.onload){
this.onload=_67f.onload;
}
};
editgrid.toolbox.Toolbox.prototype.reset=function(){
this.element.style.visibility="hidden";
this.element.style.top="-100000px";
this.element.style.left="-100000px";
this.visible=false;
this.dragHappened=false;
this.centerAligned=false;
};
editgrid.toolbox.Toolbox.prototype.relocate=function(x,y,_682){
var _683=_682&&/right/.test(_682);
var _684=_682&&/bottom/.test(_682);
var w=this.element.offsetWidth;
var h=this.element.offsetHeight;
this.element.style.left=x-(_683?w:0)+"px";
this.element.style.top=y-(_684?h:0)+"px";
this._updateIFrameHackBounds();
};
editgrid.toolbox.Toolbox.prototype._updateIFrameHackBounds=function(){
if(this.iframeHack){
var _687=this.element;
var _688=this.iframeHack.style;
_688.top=_687.offsetTop+"px";
_688.left=_687.offsetLeft+"px";
_688.width=_687.offsetWidth+"px";
_688.height=_687.offsetHeight+"px";
}
};
editgrid.toolbox.Toolbox.prototype._updateIFrameHackVisibility=function(_689){
if(this.iframeHack){
var _68a=this.element.style;
var _68b=this.iframeHack.style;
_68b.visibility=_68a.visibility;
_68b.display=_68a.display;
}
};
editgrid.toolbox.Toolbox.prototype._updateIFrameHackZIndex=function(){
if(this.iframeHack){
this.iframeHack.style.zIndex=this.element.style.zIndex-10;
}
};
editgrid.toolbox.Toolbox.prototype._preShow=function(){
this.element.style.display="";
};
editgrid.toolbox.Toolbox.prototype.bringToFront=function(){
if(null==this.overlay){
this._updateZIndex();
this._updateActive();
}
this._updateIFrameHackZIndex();
};
editgrid.toolbox.Toolbox.prototype._updateZIndex=function(){
this.element.style.zIndex=editgrid.toolbox.Toolbox._stackingOrderManager.alloc(this.element);
};
editgrid.toolbox.Toolbox.prototype._updateActive=function(){
var _68c=editgrid.toolbox.Toolbox._instances;
for(var i=0;i<_68c.length;++i){
var obj=_68c[i];
if(obj!=this&&obj.visible&&!obj.overlay){
obj.setActive(0);
}
}
this.setActive(1);
};
editgrid.toolbox.Toolbox.prototype.setActive=function(_68f){
if(this._active==_68f){
return;
}
this._active=_68f;
if(!this._blink){
editgrid.toolbox.ToolboxSetActiveImpl(this.nodes,_68f);
}
};
editgrid.toolbox.Toolbox.prototype.setBlink=function(_690){
if(this.blink==_690){
return;
}
this.blink=_690;
if(_690){
this.blickActive=this.active;
this._doBlink();
}else{
editgrid.toolbox.ToolboxSetActiveImpl(this.nodes,this.active);
}
};
editgrid.toolbox.Toolbox.prototype._doBlink=function(){
if(!this.blink){
editgrid.toolbox.ToolboxSetActiveImpl(this.nodes,this.active);
return;
}
this.blinkActive=!this.blinkActive;
editgrid.toolbox.ToolboxSetActiveImpl(this.nodes,this.blinkActive);
setTimeout(std.lang.bind(this,this._doBlink),this.blinkInterval);
};
editgrid.toolbox.ToolboxSetActiveImpl=function(_691,_692){
var _693=_692==1?"":"inactive";
_691.head.className=_693;
_691.body.className=_693;
_691.foot.className=_693;
};
editgrid.toolbox.Toolbox.prototype.focus=function(){
this._focusDelegator.focus();
};
editgrid.toolbox.Toolbox.prototype.setAutoFocus=function(_694){
this._autoFocus=_694;
};
editgrid.toolbox.Toolbox.prototype._onFocus=function(){
var clz=editgrid.toolbox.Toolbox;
if(clz._focus!=this){
clz._focus=this;
if(typeof (this.onfocus)=="function"){
this.onfocus();
}
}
};
editgrid.toolbox.Toolbox.prototype._onBlur=function(){
var clz=editgrid.toolbox.Toolbox;
if(clz._focus==this){
clz._focus=null;
if(typeof (this.onblur)=="function"){
this.onblur();
}
}
};
editgrid.toolbox.Toolbox.prototype._showAt=function(pos,_698){
this.visible=true;
this.bringToFront();
if(this._autoFocus){
this.focus();
}
this.relocate(pos.x,pos.y,_698);
this.element.style.visibility="visible";
if(this.overlay){
this.overlay.show();
this.element.style.zIndex=Math.round(std.css.getElementStyle(this.overlay.element,"z-index"))+1000;
this._lastFocus=editgrid.toolbox._focus;
}
this._updateIFrameHackVisibility();
this._updateIFrameHackZIndex();
std.topic.publish(this,"onShow");
};
editgrid.toolbox.Toolbox.prototype.showAt=function(pos,_69a){
this._preShow();
this._showAt(pos,_69a);
};
editgrid.toolbox.Toolbox.prototype.showAtCenter=function(){
var ext=std.dom.getBodyExtent();
this._preShow();
this._showAt({x:(ext.width-this.element.offsetWidth)>>1,y:(ext.height-this.element.offsetHeight)>>1});
this.centerAligned=true;
};
editgrid.toolbox.Toolbox.prototype.moveToCenter=function(){
var ext=std.dom.getBodyExtent();
this.relocate((ext.width-this.element.offsetWidth)>>1,(ext.height-this.element.offsetHeight)>>1);
this.centerAligned=true;
};
editgrid.toolbox.Toolbox.prototype.showAutoAligned=function(_69d,x,y){
var _6a0=_69d.offsetParent;
var _6a1=true;
var _6a2=true;
var _6a3;
var pos=std.dom.getTargetPos(_69d);
var _6a5=document.body;
this._preShow();
if(x+this.element.offsetWidth+pos.x-_6a5.scrollLeft>_6a5.offsetWidth){
_6a2=false;
}else{
_6a2=true;
}
if(y+this.element.offsetHeight+pos.y-_6a5.scrollTop>_6a5.offsetHeight){
_6a1=false;
}else{
_6a1=true;
}
_6a3=(_6a1?"top ":"bottom ")+(_6a2?"left ":"right ");
this.show(_69d,_6a3,x,y);
};
editgrid.toolbox.Toolbox.prototype.show=function(_6a6,_6a7,x,y){
var pos=std.dom.getTargetPos(_6a6);
var _6ab=_6a7&&/right/.test(_6a7);
var _6ac=_6a7&&/bottom/.test(_6a7);
pos.x+=x?x:0;
pos.y+=y?y:0;
pos.x+=(_6ab?_6a6.clientWidth:0);
pos.y+=(_6ac?0:_6a6.clientHeight);
this.showAt(pos,_6a7);
var _6ad=this.element;
var _6ae=std.dom.getBodyExtent();
var bw=_6ae.width;
var bh=_6ae.height;
var _6b1=std.math.calcBoxPlacement(pos.x,pos.y,bw-pos.x,0,_6ad.offsetWidth,_6ad.offsetHeight,bw,bh,true);
this.relocate(_6b1.x,_6b1.y);
};
editgrid.toolbox.Toolbox.prototype.isVisible=function(){
return this.visible;
};
editgrid.toolbox.Toolbox.prototype.toggle=function(_6b2,_6b3,x,y){
if(this.visible){
this.close(true);
}else{
this.show(_6b2,_6b3,x,y);
}
};
editgrid.toolbox.Toolbox.prototype.toggleAt=function(pos,_6b7){
if(this.visible){
this.close(true);
}else{
this.showAt(pos,_6b7);
}
};
editgrid.toolbox.Toolbox.prototype.toggleAtCenter=function(){
if(this.visible){
this.close(true);
}else{
this.showAtCenter();
}
};
editgrid.toolbox.Toolbox.prototype.close=function(_6b8){
if(this.dragHappened&&!_6b8){
return;
}
var clz=editgrid.toolbox.Toolbox;
if(clz.keyboardFocusHack){
clz.keyboardFocusHack.focus();
clz.keyboardFocusHack.blur();
}
this._focusDelegator.blur();
this.reset();
if(typeof (this.onclose)=="function"){
this.onclose();
}
if(this.overlay){
this.overlay.hide();
if(this._lastFocus){
if(this._lastFocus!=this){
this._lastFocus.focus();
}
this._lastFocus=null;
}
}else{
editgrid.toolbox.Toolbox._stackingOrderManager.free(this.element,this.element.style.zIndex);
}
this._updateIFrameHackVisibility();
std.topic.publish(this,"onClose");
};
editgrid.toolbox.Toolbox.prototype.setOverlay=function(_6ba){
this.overlay=_6ba;
};
editgrid.toolbox.Toolbox._addOk=function(b,_6bc,name){
if(name==null){
name=" "+loc("OK")+" ";
}
var btn=editgrid.toolbox.Toolbox._addStockButton(b,name,_6bc);
return btn;
};
editgrid.toolbox.Toolbox._addCancel=function(b,_6c0,name){
if(name==null){
name=loc("Cancel");
}
var btn=editgrid.toolbox.Toolbox._addStockButton(b,name,_6c0);
return btn;
};
editgrid.toolbox.Toolbox._addStockButton=function(b,name,_6c5){
var btn=b.append("input",{type:"button",value:name,className:"InputButton"},{fontSize:"11px",paddingLeft:"5px",paddingRight:"5px"});
std.event.observe(btn,"click",_6c5);
return btn;
};
editgrid.toolbox.Toolbox.prototype.loadCompleteHandler=function(){
this.onloadcomplete();
};
editgrid.toolbox.Toolbox.prototype.loadCompleteNotifier=function(){
return std.lang.bind(this,this.loadCompleteHandler);
};
editgrid.toolbox.Toolbox.prototype.setRoot=function(_6c7){
var _6c8=this.nodes;
_6c7=std.dom.element(_6c7);
this.setTitle(_6c7.title);
this._setContentNode(_6c7);
};
editgrid.toolbox.Toolbox.prototype.setTitle=function(_6c9){
this.nodes.title.innerHTML=std.string.escapeHTML(_6c9);
};
editgrid.toolbox.Toolbox.prototype._setContentNode=function(_6ca){
var _6cb=this.nodes.contentHolder;
if(_6cb.firstChild){
_6cb.replaceChild(_6ca,_6cb.firstChild);
}else{
_6cb.appendChild(_6ca);
}
};
editgrid.toolbox.Toolbox.prototype._initImpl=function(_6cc){
this._initTemplate(_6cc.w,_6cc.h,_6cc.className,_6cc.minimize);
this._initDragBehaviour();
var _6cd=editgrid.toolbox.Toolbox._instances;
_6cd[_6cd.length]=this;
};
editgrid.toolbox.Toolbox.prototype._initDragBehaviour=function(){
this._drag=new ui.behaviour.Draggable(this.element);
this._drag.installPlugin(this);
this._drag.installPlugin(new ui.plugin.Inside(document.body,{margin:-24}));
this._drag.installPlugin(new ui.plugin.CheckNode({accept:function(node){
return node.className.match(/\bdraggable\b/);
},reject:function(node){
return node.className.match(/\bundraggable\b/)||std.form.isIntrinsicControl(node);
}}));
this._drag.installPlugin(ui.plugin.overlay);
};
editgrid.toolbox.Toolbox.prototype.processEvent=function(dd){
switch(dd.eventType){
case "onDrag":
this._updateIFrameHackBounds();
break;
case "onDragBegin":
this.dragHappened=true;
break;
}
};
editgrid.toolbox.Toolbox.prototype._initTemplate=function(w,h,_6d3,_6d4){
var self=this;
this.minimize=_6d4;
var _6d6=this._createView();
this.element=_6d6.root;
this.element.tabIndex=-1;
this.element.id=null;
if(_6d3){
std.css.includeClass(this.element,_6d3);
}
var _6d7=this.contentHolder=_6d6.contentHolder;
if(w){
_6d7.style.width=w+"px";
}
if(h){
_6d7.style.height=h+"px";
}
this.reset();
document.body.appendChild(this.element);
if(_6d6.head==null){
throw "Element not found";
}
if(_6d6.title==null){
throw "Element not found";
}
if(_6d6.closeLink==null){
throw "Element not found";
}
if(this.minimize&&_6d6.miniLink==null){
throw "Element not found";
}
if(_6d6.contentHolder==null){
throw "Element not found";
}
if(std.browser.isIE&&std.browser.major<7&&this.useIFrameHack){
var _6d8=this.iframeHack=std.dom.newElement("iframe",null,{frameBorder:"0",scrolling:"no"},{position:"absolute",display:"none"});
_6d8.setAttribute("src","javascript:'';");
this._updateIFrameHackBounds();
this.element.appendChild(_6d8);
document.body.appendChild(_6d8);
std.dom.opacity(_6d8,0);
}
_6d6.title.unselectable="on";
std.event.observe(this.element,"mousedown",std.event.listener(self,function(e){
self.bringToFront(e);
}));
std.event.observe(this.element,"mousedown",std.event.listener(self,self._onMouseDown));
std.event.observe(_6d6.closeLink,"click",std.event.listener(self,function(e){
std.event.vanish(e);
self.close(true);
}));
if(this.minimize){
std.event.observe(_6d6.miniLink,"click",std.event.listener(self,function(e){
std.event.vanish(e);
self.minimize();
}));
}
std.event.observe(this.element,"resize",std.event.listener(self,self._onResize));
this.nodes=_6d6;
};
editgrid.toolbox.Toolbox.prototype._onMouseDown=function(e){
var src=p=std.event.getEventTarget(e);
while(p&&p!=this.element){
if(p.className.match(/\ballowselect\b/)){
std.event.stop(e);
return;
}
p=p.parentNode;
}
this.focus();
if(std.form.isIntrinsicControl(src)||src.className.match(/\bundraggable\b/)){
std.event.stop(e);
}else{
std.event.vanish(e);
}
};
editgrid.toolbox.Toolbox.onDocKeyEvent=function(ke){
if(this._focus){
this._focus.onKeyEvent(ke);
}
};
editgrid.toolbox.Toolbox.prototype.onKeyEvent=function(ke){
if(ke.keyIdentifier==std.keytable.ESCAPE[0]){
if(this.visible){
this.close(true);
}
}
};
editgrid.toolbox.Toolbox.prototype._onResize=function(e){
this._updateIFrameHackBounds();
};
editgrid.toolbox.ModalToolbox={};
editgrid.toolbox.ModalToolbox.setOverlay=function(_6e1){
editgrid.toolbox.ModalToolbox._overlay=_6e1;
};
editgrid.toolbox.ModalToolbox.getOverlay=function(){
return editgrid.toolbox.ModalToolbox._overlay;
};
if(!editgrid.toolbox){
editgrid.toolbox={};
}
editgrid.toolbox.AbstractToolbox=function(id,_6e3,_6e4){
if(arguments.length==0){
return;
}
this.id=id;
this.title=_6e3;
this.attrs=_6e4;
};
editgrid.toolbox.AbstractToolbox.prototype.init=function(ctx){
this.ctx=ctx;
this._toolbox=ctx.initToolbox(this.id,this.title,std.lang.bind(this,this.doCreate),this.attrs);
this.doInit();
return this;
};
editgrid.toolbox.AbstractToolbox.prototype.doInit=function(){
};
editgrid.toolbox.AbstractToolbox.prototype.doCreate=function(_6e6,_6e7,root){
throw new Error("AbstractToolbox.doCreate is not implemented");
};
editgrid.toolbox.AbstractToolbox.prototype.open=function(){
this._toolbox.open();
};
editgrid.toolbox.AbstractToolbox.prototype.close=function(){
this._toolbox.close();
};
editgrid.toolbox.AbstractToolbox.prototype.setSize=function(_6e9,_6ea){
std.async.call(this._toolbox,this._toolbox.setSize,_6e9,_6ea);
};
editgrid.toolbox.AbstractToolbox.prototype.addOnOpenListener=function(_6eb){
std.async.call(this._toolbox,this._toolbox.addOnOpenListener,_6eb);
};
editgrid.toolbox.AbstractToolbox.prototype.addOnCloseListener=function(_6ec){
std.async.call(this._toolbox,this._toolbox.addOnCloseListener,_6ec);
};
editgrid.toolbox.HtmlToolbox=function(id,_6ee,_6ef,html){
if(arguments.length==0){
return;
}
editgrid.toolbox.AbstractToolbox.apply(this,arguments);
this.html=html;
this.win=null;
this.doc=null;
this.root=null;
this.prefix=this.attrs.prefix?this.attrs.prefix:"";
};
editgrid.toolbox.HtmlToolbox.prototype=new editgrid.toolbox.AbstractToolbox();
editgrid.toolbox.HtmlToolbox.prototype.init=function(ctx){
return editgrid.toolbox.AbstractToolbox.prototype.init.apply(this,arguments);
};
editgrid.toolbox.HtmlToolbox.prototype.doInit=function(){
};
editgrid.toolbox.HtmlToolbox.prototype.doCreate=function(win,doc,root){
this.win=win;
this.doc=doc;
this.root=root;
if(this.html.match(/<html/)){
doc.open();
doc.write(this.html);
setTimeout(function(){
doc.close();
},1000);
std.event.observe(win,"load",std.lang.bind(this,this._load));
}else{
root.innerHTML=this.html;
this._load();
}
};
editgrid.toolbox.HtmlToolbox.prototype._load=function(){
this._extraElements(this.doc.getElementsByTagName("*"));
this._bindEvents();
this.win.std=std;
this.onLoad();
};
editgrid.toolbox.HtmlToolbox.prototype._extraElements=function(elms){
for(var i=0;i<elms.length;i++){
var elm=elms[i];
var id=elm.getAttribute("id");
if(id){
var name=this.prefix+id;
this[name]=elm;
}
}
};
editgrid.toolbox.HtmlToolbox.prototype._bindEvents=function(){
for(var _6fa in this){
var _6fb=new RegExp("^"+this.prefix+"on(.*)([A-Z][a-z]+)$");
if(_6fa.match(_6fb)){
var _6fc=RegExp.$1;
_6fc=_6fc.substring(0,1).toLowerCase()+_6fc.substring(1);
var evt=RegExp.$2.toLowerCase();
var elm=this[this.prefix+_6fc];
var func=this[_6fa];
if(elm&&typeof (func)=="function"){
std.event.observe(elm,evt,std.lang.bind(this,function(func,e){
return std.async.call(this,func,e);
},func),true);
}
}
}
};
editgrid.toolbox.HtmlToolbox.prototype.onLoad=function(){
};
if(!editgrid.sheetobject){
editgrid.sheetobject={};
}
editgrid.sheetobject.AbstractSheetObject=function(){
};
editgrid.sheetobject.AbstractSheetObject.prototype.init=function(ctrl,_703,_704,_705,_706,win,doc,root){
this._ctrl=ctrl;
this.id=ctrl._id;
this.width=ctrl._width;
this.height=ctrl._height;
this.data=ctrl._data;
this.rdata=ctrl._rdata;
this.win=win;
this.doc=doc;
this.root=root;
this._setHeader=_703;
this._setSize=_705;
this._setData=_706;
var item=this.getContextMenuItems();
for(var i=0;i<item.length;i++){
_704(item[i].name,item[i].func,item[i].readOnly);
}
return this;
};
editgrid.sheetobject.AbstractSheetObject.prototype.setHeader=function(_70c){
this._setHeader(_70c);
};
editgrid.sheetobject.AbstractSheetObject.prototype.setSize=function(_70d,_70e){
this._setSize(_70d,_70e);
};
editgrid.sheetobject.AbstractSheetObject.prototype.setData=function(data){
this._setData(data);
};
editgrid.sheetobject.AbstractSheetObject.prototype.doCreate=function(){
throw new Error("AbstractSheetObject.doCreate is not implemented");
};
editgrid.sheetobject.AbstractSheetObject.prototype.doUpdate=function(){
throw new Error("AbstractSheetObject.doUpdate is not implemented");
};
editgrid.sheetobject.AbstractSheetObject.prototype.doResize=function(){
};
editgrid.sheetobject.AbstractSheetObject.prototype.getContextMenuItems=function(){
return [];
};
editgrid.sheetobject.AbstractSheetObject.prototype.release=function(){
};
if(typeof (editgrid.toolbox)=="undefined"){
editgrid.toolbox={};
}
editgrid.toolbox.PromptBox=function(_710,_711,_712,_713,_714,opts){
this.opts=opts||{};
this.overlay=_710;
this.question=_711;
this.defaultAnswer=_712;
this.onAnswer=_713;
this.onCancel=_714;
this.toolbox=new editgrid.toolbox.Toolbox();
this.toolbox.onclose=std.event.listener(this,function(){
if(!this.answered&&this.onCancel){
this.onCancel();
}
});
this.toolbox.init(this._getContentElement(_711));
this.toolbox.setOverlay(this.overlay);
this.toolbox.showAtCenter();
this.toolbox.focus();
this.inputElement.focus();
this.inputElement.select();
};
editgrid.toolbox.PromptBox.prototype._onKeyPress=function(e){
var _717=editgrid.event.keyCodes;
var _718=editgrid.event.getSrcElement(e);
var _719=e.keyCode;
if(_719==_717.KEY_ENTER){
this.answered=true;
this.toolbox.close(true);
this.onAnswer(this.inputElement.value);
std.event.vanish(e);
return false;
}else{
if(_719==_717.KEY_ESCAPE){
this.toolbox.close(true);
std.event.vanish(e);
return false;
}
}
return true;
};
editgrid.toolbox.PromptBox.prototype._onAnswer=function(){
this.answered=true;
this.toolbox.close(true);
this.onAnswer(this.inputElement.value);
};
editgrid.toolbox.PromptBox.prototype._onCancel=function(){
this.toolbox.close(true);
};
editgrid.toolbox.PromptBox.prototype._getContentElement=function(){
var _71a=std.dom.newElement("div",null,{title:loc("EditGrid asks")});
var _71b=new std.dom.Builder(_71a);
_71b.push("div",{},{padding:"3px 0px 0px 0px",fontSize:"11px",width:"350px"});
var _71c=_71b.append("div");
_71c.innerHTML=this.question;
_71b.pop();
_71b.push("div",{className:"ToolboxSubTitle"});
if(this.opts.useTextArea){
this.inputElement=_71b.append("textarea",{name:"answer",value:this.defaultAnswer},{width:"100%",height:"150px"});
}else{
this.inputElement=_71b.append("input",{name:"answer",value:this.defaultAnswer},{width:"100%"});
std.event.observe(this.inputElement,"keypress",std.event.listener(this,this._onKeyPress));
}
_71b.pop();
_71b.append("div",{},{width:"170px",height:"1px",fontSize:"0px",overflow:"hidden"});
_71b.push("div",{},{textAlign:"right"});
_71b.push("nobr");
_71b.append("div",{className:"ToolboxBreakLine"});
editgrid.toolbox.Toolbox._addOk(_71b,std.event.listener(this,function(e){
this._onAnswer();
}));
_71b.append("span",{innerHTML:"&nbsp;"});
editgrid.toolbox.Toolbox._addCancel(_71b,std.event.listener(this,function(e){
this._onCancel();
}));
return _71a;
};
editgrid.toolbox.ConfirmBox=function(_71f,_720,_721,opts){
this.overlay=_71f;
this.question=_720;
this.onAnswer=_721;
this.opts=opts||{};
this.toolbox=new editgrid.toolbox.Toolbox();
this.toolbox.onclose=std.event.listener(this,function(){
if(this.answer){
this.onAnswer(this.answer);
}else{
this.onAnswer(false);
}
});
this.toolbox.init(this._getContentElement(_720));
this.toolbox.setOverlay(this.overlay);
this.toolbox.showAtCenter();
this.toolbox.focus();
this.btnOk.focus();
};
editgrid.toolbox.ConfirmBox.prototype._onKeyPress=function(e){
var _724=editgrid.event.keyCodes;
var _725=editgrid.event.getSrcElement(e);
var _726=e.keyCode;
if(_726==_724.KEY_ENTER){
this.answer=true;
this.toolbox.close(true);
std.event.vanish(e);
return false;
}else{
if(_726==_724.KEY_ESCAPE){
this.toolbox.close(true);
std.event.vanish(e);
return false;
}
}
return true;
};
editgrid.toolbox.ConfirmBox.prototype._onOk=function(){
this.answered=true;
this.toolbox.close(true);
};
editgrid.toolbox.ConfirmBox.prototype._onCancel=function(){
this.toolbox.close(true);
};
editgrid.toolbox.ConfirmBox.prototype._getContentElement=function(){
var _727=std.dom.newElement("div",null,{title:loc("EditGrid asks")});
var _728=new std.dom.Builder(_727);
_728.push("div",{},{padding:"4px 0px 0px 0px",fontSize:"11px",width:"350px"});
var _729=_728.append("div");
_729.innerHTML=this.question;
_728.pop();
_728.append("div",{},{width:"170px",height:"1px",fontSize:"0px",overflow:"hidden"});
_728.push("div",{},{textAlign:"right",padding:"0px"});
_728.push("nobr");
_728.append("div",{className:"ToolboxBreakLine"});
this.btnOk=editgrid.toolbox.Toolbox._addOk(_728,std.event.listener(this,function(e){
this.answer=true;
this._onOk();
}),this.opts.ok);
_728.append("span",{innerHTML:"&nbsp;"});
this.btnCancel=editgrid.toolbox.Toolbox._addCancel(_728,std.event.listener(this,function(e){
this._onCancel();
}),this.opts.cancel);
return _727;
};
editgrid.toolbox.AlertBox=function(_72c,msg,_72e){
this.overlay=_72c;
this.msg=msg;
this.onAnswer=_72e;
this.toolbox=new editgrid.toolbox.Toolbox();
this.toolbox.init(this._getContentElement(msg));
this.toolbox.setOverlay(this.overlay);
this.toolbox.showAtCenter();
this.toolbox.focus();
this.btnOk.focus();
this.toolbox.onclose=std.event.listener(this,function(){
if(this.onAnswer){
this.onAnswer();
}
});
};
editgrid.toolbox.AlertBox.prototype._onOk=function(){
this.toolbox.close(true);
};
editgrid.toolbox.AlertBox.prototype._getContentElement=function(){
var _72f=std.dom.newElement("div",null,{title:loc("EditGrid says")});
var _730=new std.dom.Builder(_72f);
_730.push("div",{},{padding:"4px 0px 0px 0px",fontSize:"11px",color:"#666"});
var _731=_730.append("div",{},{padding:"0px"});
_731.innerHTML=this.msg;
_730.pop();
_730.append("div",{},{width:"170px",height:"1px",fontSize:"0px",overflow:"hidden"});
_730.append("div",{className:"ToolboxBreakLine"});
_730.push("div",{},{textAlign:"right",padding:"0px"});
this.btnOk=editgrid.toolbox.Toolbox._addOk(_730,std.event.listener(this,function(e){
this._onOk();
}));
return _72f;
};
editgrid._alert=function(msg,_734){
new editgrid.toolbox.AlertBox(editgrid.toolbox.ModalToolbox.getOverlay(),msg,_734);
};
editgrid._confirm=function(_735,_736,opts){
new editgrid.toolbox.ConfirmBox(editgrid.toolbox.ModalToolbox.getOverlay(),_735,_736,opts);
};
editgrid._prompt=function(_738,_739,_73a,_73b,opts){
new editgrid.toolbox.PromptBox(editgrid.toolbox.ModalToolbox.getOverlay(),_738,_739,_73a,_73b,opts);
};
editgrid.toolbar={};
editgrid.toolbar.AbstractToolbarItem=function(){
};
editgrid.toolbar.AbstractToolbarItem.prototype.redraw=function(){
};
editgrid.toolbar.ButtonGroup=function(){
this.itemList=[];
};
editgrid.toolbar.ButtonGroup.prototype=new editgrid.toolbar.AbstractToolbarItem();
editgrid.toolbar.ButtonGroup.prototype._createView=function(){
var _73d={};
_73d.root=std.dom.newElement("div");
return _73d;
};
editgrid.toolbar.ButtonGroup.prototype._getNodes=function(){
return this._nodes||(this._nodes=this._createView());
};
editgrid.toolbar.ButtonGroup.prototype.getRoot=function(){
return this._getNodes().root;
};
editgrid.toolbar.ButtonGroup.prototype.redraw=function(){
std.list.iterate(this.itemList,function(item){
item.redraw();
});
};
editgrid.toolbar.ButtonGroup.prototype.add=function(item){
item.group=this;
this.getRoot().appendChild(item.getRoot());
this.itemList.push(item);
return item;
};
editgrid.toolbar.ButtonGroup.prototype.getItemList=function(){
return this.itemList;
};
editgrid.toolbar.Button=function(_740){
if(_740==null){
return;
}
this.group=null;
this.mousedown=false;
this.mouseover=false;
this.selected=false;
this.id=_740.id;
this.type=_740.type||"button";
this.title=_740.title;
this.value=_740.value;
this.disabled=_740.disabled;
this.hidden=_740.hidden;
this.action=_740.action;
this.width=_740.width||25;
this.height=_740.height||25;
this.priority=_740.priority||0;
};
editgrid.toolbar.Button.prototype=new editgrid.toolbar.AbstractToolbarItem();
editgrid.toolbar.Button.prototype._createView=function(){
var _741={};
_741.root=std.dom.newElement("div");
_741.body=std.dom.newElement("div",_741.root);
std.event.observe(_741.root,"mouseover",std.event.listener(this,this._onMouseOver));
std.event.observe(_741.root,"mouseout",std.event.listener(this,this._onMouseOut));
std.event.observe(_741.root,"mousedown",std.event.listener(this,this._onMouseDown));
std.event.observe(_741.root,"mouseup",std.event.listener(this,this._onMouseUp));
std.event.observe(_741.root,"click",std.event.listener(this,this._onClick));
return _741;
};
editgrid.toolbar.Button.prototype._getNodes=function(){
if(!this._nodes){
this._nodes=this._createView();
this.redraw();
}
return this._nodes;
};
editgrid.toolbar.Button.prototype.getRoot=function(){
return this._getNodes().root;
};
editgrid.toolbar.Button.prototype.setContent=function(_742){
std.dom.setChildren(this._getNodes().body,_742);
};
editgrid.toolbar.Button.prototype.redraw=function(){
var _743=this._getNodes();
if(this.isHidden()){
if(_743.root.style.display!="none"){
_743.root.style.display="none";
return;
}
}else{
if(_743.root.style.display=="none"){
_743.root.style.display="";
}
}
if(this.title){
_743.root.title=std.lang.evaluate(this.title);
}
std.dom.opacity(_743.root,this.isEnabled()?1:0.33);
if(this.selected){
_743.root.className="ToolbarButtonSelected";
}else{
if(this.mousedown){
_743.root.className="ToolbarButtonActive";
}else{
if(this.mouseover){
_743.root.className="ToolbarButtonMo";
}else{
_743.root.className="ToolbarButton";
}
}
}
if(this._boxSizeInited==null){
this._boxSizeInited=true;
var w=this.width;
var h=this.height;
if(!std.browser.isBorderBox){
w-=2;
h-=2;
}
_743.root.style.width=w+"px";
_743.root.style.height=h+"px";
}
};
editgrid.toolbar.Button.prototype.isHidden=function(){
if(typeof (this.hidden)!="undefined"&&this.hidden!=null){
return std.lang.evaluate(this.hidden);
}else{
return false;
}
};
editgrid.toolbar.Button.prototype.isDisabled=function(){
if(typeof (this.disabled)!="undefined"&&this.disabled!=null){
return std.lang.evaluate(this.disabled);
}else{
if(this.action){
return std.lang.evaluate(this.action.isDisabled());
}else{
return false;
}
}
};
editgrid.toolbar.Button.prototype.isEnabled=function(){
return !this.isDisabled();
};
editgrid.toolbar.Button.prototype._onMouseOver=function(){
if(this.isEnabled()){
this.mouseover=true;
this.redraw();
}
};
editgrid.toolbar.Button.prototype._onMouseOut=function(){
if(this.isEnabled()){
this.mouseover=false;
this.redraw();
}
};
editgrid.toolbar.Button.prototype._onMouseDown=function(){
if(this.isEnabled()){
this.mouseover=true;
this.redraw();
}
};
editgrid.toolbar.Button.prototype._onMouseUp=function(){
if(this.isEnabled()){
this.mouseover=false;
this.redraw();
}
};
editgrid.toolbar.Button.prototype._onClick=function(e){
if(this.isEnabled()){
if(this.type=="toggle"){
this.setSelected(!this.selected);
}else{
if(this.type=="switch"&&!this.selected){
this.setSelected(true);
}
}
this._performAction();
}
if(this.parent&&this.parent.onButtonClick){
this.parent.onButtonClick();
}
};
editgrid.toolbar.Button.prototype.enable=function(){
this.disabled=false;
this.selected=false;
this.redraw();
};
editgrid.toolbar.Button.prototype.disable=function(){
this.disabled=true;
this.mouseover=false;
this.mousedown=false;
this.selected=false;
this.redraw();
};
editgrid.toolbar.Button.prototype.isSelected=function(){
return this.selected;
};
editgrid.toolbar.Button.prototype.setSelected=function(bool){
if((this.type=="switch"||this.type=="toggle")&&this.selected!=bool){
this.selected=bool;
this.redraw();
if(this.selected&&this.group){
std.list.iterate(this.group.getItemList(),std.lang.bind(this,function(item){
if(item!=this){
item.setSelected(false);
}
}));
}
}
};
editgrid.toolbar.Button.prototype._performAction=function(){
if(this.action){
this.action.setSelected(this.selected);
this.action.performAction();
}
};
editgrid.toolbar.Custom=function(_749){
editgrid.toolbar.Button.call(this,_749);
if(_749.image){
this.setContent(std.dom.newElement("img",null,{src:_749.image}));
}else{
this.setContent(std.dom.newText(_749.text));
}
};
editgrid.toolbar.Custom.prototype=new editgrid.toolbar.Button();
editgrid.toolbar.Custom.prototype.redraw=function(){
var _74a=this._getNodes();
if(this.isHidden()){
if(_74a.root.style.display!="none"){
_74a.root.style.display="none";
return;
}
}else{
if(_74a.root.style.display=="none"){
_74a.root.style.display="";
}
}
if(this.title){
_74a.root.title=std.lang.evaluate(this.title);
}
std.dom.opacity(_74a.root,this.isEnabled()?1:0.33);
if(this.selected){
_74a.root.className="ToolbarCustomSelected";
}else{
if(this.mousedown){
_74a.root.className="ToolbarCustomActive";
}else{
if(this.mouseover){
_74a.root.className="ToolbarCustomMo";
}else{
_74a.root.className="ToolbarCustom";
}
}
}
};
editgrid.toolbar.SelectBox=function(_74b){
this.optionMap=_74b.optionMap;
this.title=_74b.title;
this.defaultKey=_74b.defaultKey;
this.disabled=_74b.disabled;
this.action=_74b.action;
this.size=_74b.size;
this.focusDelegator=std.customfocus.getManager().newDelegator(this);
};
editgrid.toolbar.SelectBox.prototype=new editgrid.toolbar.AbstractToolbarItem();
editgrid.toolbar.SelectBox.prototype._createView=function(){
var _74c={};
_74c.root=std.dom.newElement("div",null,{className:"ToolbarSelectBox"});
_74c.select=std.dom.newElement("select",_74c.root);
if(this.size){
_74c.select.style.width=this.size+"px";
}
std.event.observe(_74c.select,"change",std.event.listener(this,this._onChange));
std.event.observe(_74c.select,"mousedown",std.event.listener(this,this._onMouseDown));
std.event.observe(_74c.select,"focus",std.lang.bind(this.focusDelegator,this.focusDelegator.focus));
std.event.observe(_74c.select,"blur",std.lang.bind(this.focusDelegator,this.focusDelegator.blur));
return _74c;
};
editgrid.toolbar.SelectBox.prototype._getNodes=function(){
if(!this._nodes){
this._nodes=this._createView();
this.redraw();
}
return this._nodes;
};
editgrid.toolbar.SelectBox.prototype.getRoot=function(){
return this._getNodes().root;
};
editgrid.toolbar.SelectBox.prototype.redraw=function(){
var _74d=this._getNodes();
_74d.select.title=std.lang.evaluate(this.title);
_74d.select.disabled=!this.isEnabled();
var _74e=_74d.select.value;
while(_74d.select.length){
_74d.select.remove(0);
}
for(var key in this.optionMap){
std.dom.addOption(_74d.select,std.dom.newElement("option",null,{value:key,text:this.optionMap[key]}));
}
_74d.select.value=_74e;
};
editgrid.toolbar.SelectBox.prototype.isDisabled=function(){
if(typeof (this.disabled)!="undefined"&&this.disabled!=null){
return std.lang.evaluate(this.disabled);
}else{
if(this.action){
return std.lang.evaluate(this.action.isDisabled());
}else{
return false;
}
}
};
editgrid.toolbar.SelectBox.prototype.isEnabled=function(){
return !this.isDisabled();
};
editgrid.toolbar.SelectBox.prototype.setValue=function(_750){
var _751=this._getNodes().select;
if(_750==null){
_750=this.defaultKey;
}
if(_750!=_751.value&&this.optionMap[_750]!=null){
_751.value=_750;
}
};
editgrid.toolbar.SelectBox.prototype.getValue=function(){
return this._getNodes().select.value;
};
editgrid.toolbar.SelectBox.prototype._onChange=function(){
if(this.isEnabled()){
this.action.setValue(this.getValue());
this.action.performAction();
}
};
editgrid.toolbar.SelectBox.prototype._onMouseDown=function(e){
std.event.stop(e);
};
editgrid.toolbar.Spacer=function(_753){
this._nodes={};
this._nodes.root=std.dom.newElement("div",null,{className:"Spacer"},{width:_753+"px"});
};
editgrid.toolbar.Spacer.prototype=new editgrid.toolbar.AbstractToolbarItem();
editgrid.toolbar.Spacer.prototype.getRoot=function(){
return this._nodes.root;
};
editgrid.toolbar.Sep=function(){
this._nodes={};
this._nodes.root=std.dom.newElement("div",null,{className:"ToolBarSep"});
};
editgrid.toolbar.Sep.prototype=new editgrid.toolbar.AbstractToolbarItem();
editgrid.toolbar.Sep.prototype.getRoot=function(){
return this._nodes.root;
};
editgrid.toolbar.Toolbar=function(){
this.items={};
this.itemList=[];
this._cacheRecalc=true;
this._moreFocusDelegator=std.customfocus.getManager().newDelegator(this,std.lang.bind(this,this._onMoreFocus),std.lang.bind(this,this._onMoreBlur));
std.topic.define(this,"onLayoutChange");
};
editgrid.toolbar.Toolbar.prototype._createView=function(){
var _754={};
var _755=new std.dom.Builder();
_754.root=_755.push("div",{},{width:"100%"});
_754.more=_755.push("div",{className:"ToolbarMore"},{display:"none"});
var _755=new std.dom.Builder(document.body);
_754.morePopup=_755.push("div",{className:"ToolbarMorePopup"},{display:"none",position:"absolute"});
_755.push("div",{className:"PopupMenuShadow"});
_755.push("div",{className:"PopupMenuBorder"});
_755.push("table",{cellPadding:0,cellSpacing:0,width:"100%"});
_755.push("tbody");
_755.push("tr");
_754.moreCavity=_755.push("td");
std.event.observe(_754.more,"mouseover",std.lang.bind(this,this._moreOver));
std.event.observe(_754.more,"mouseout",std.lang.bind(this,this._moreOut));
std.event.observe(_754.more,"click",std.lang.bind(this,this._moreClick));
std.event.observe(_754.morePopup,"mousedown",std.lang.bind(this,this._morePopupDown));
return _754;
};
editgrid.toolbar.Toolbar.prototype._moreOver=function(){
this._moreHover=true;
this._moreRedraw();
};
editgrid.toolbar.Toolbar.prototype._moreOut=function(){
this._moreHover=false;
this._moreRedraw();
};
editgrid.toolbar.Toolbar.prototype._moreClick=function(){
this._morePopupSetVisible(!this._morePopupVisible);
};
editgrid.toolbar.Toolbar.prototype._morePopupDown=function(e){
std.event.vanish(e);
};
editgrid.toolbar.Toolbar.prototype.onButtonClick=function(){
this._morePopupSetVisible(false);
};
editgrid.toolbar.Toolbar.prototype._morePopupSetVisible=function(_757){
if(this._morePopupVisible!=_757){
this._morePopupVisible=_757;
if(_757){
this._moreFocusDelegator.focus();
}else{
this._moreFocusDelegator.blur();
this._moreFocusDelegator.detach();
}
this._moreRedraw();
}
};
editgrid.toolbar.Toolbar.prototype._onMoreFocus=function(){
};
editgrid.toolbar.Toolbar.prototype._onMoreBlur=function(){
if(!this._moreHover){
this._morePopupSetVisible(false);
}
};
editgrid.toolbar.Toolbar.prototype._moreRedraw=function(){
var _758=this._getNodes();
var more=_758.more;
var _75a=_758.morePopup;
more.className=this._morePopupVisible?"ToolbarMoreSelected":this._moreHover?"ToolbarMoreHover":"ToolbarMore";
if(this._morePopupVisible){
_75a.style.display="";
bodyBounds=std.dom.getBodyExtent();
moreBounds=std.dom.getBounds(more);
morePopupSize=std.dom.getDimensions(_75a);
var pos=std.math.calcBoxPlacement(moreBounds.left,moreBounds.top,moreBounds.width,moreBounds.height,morePopupSize.width,morePopupSize.height,bodyBounds.width,bodyBounds.height,true);
_75a.style.left=pos.x+"px";
_75a.style.top=pos.y+"px";
}else{
_75a.style.display="none";
}
};
editgrid.toolbar.Toolbar.prototype._getNodes=function(){
return this._nodes||(this._nodes=this._createView());
};
editgrid.toolbar.Toolbar.prototype.getRoot=function(){
return this._getNodes().root;
};
editgrid.toolbar.Toolbar.prototype.add=function(item,_75d){
if(std.lang.isArray(item)){
std.list.iterate(item,std.lang.bind(this,function(_75e){
this.add(_75e,_75d);
}));
}else{
var _75f;
if(item instanceof editgrid.toolbar.AbstractToolbarItem){
_75f=item;
}else{
if(item.optionMap){
_75f=new editgrid.toolbar.SelectBox(item);
}else{
if(item.children){
_75f=new editgrid.toolbar.ButtonGroup();
this.add(item.children,_75f);
}else{
if(item.title=="-"){
_75f=new editgrid.toolbar.Sep();
}else{
var img=document.createElement("div");
img.className="ToolIcon ToolIcon_"+item.id;
_75f=new editgrid.toolbar.Button(item);
_75f.setContent(img);
_75f.icon=img;
}
}
}
}
if(_75d){
_75d.add(_75f);
}else{
this._getNodes().root.appendChild(_75f.getRoot());
if(this._getNodes().root.parentNode){
std.topic.publish(this,"onLayoutChange",this);
}
}
_75f.parent=this;
this.items[item.id]=_75f;
this.itemList.push(_75f);
}
};
editgrid.toolbar.Toolbar.prototype.remove=function(id){
var item=this.items[id];
if(!item){
throw new Error("Toolbar item ["+id+"] does not exist.");
}
this._getNodes().root.removeChild(item.getRoot());
this.itemList=std.array.without(this.itemList,item);
delete this.items[id];
if(this._getNodes().root.parentNode){
std.topic.publish(this,"onLayoutChange",this);
}
};
editgrid.toolbar.Toolbar.prototype.redraw=function(){
std.list.iterate(this.itemList,function(item){
item.redraw();
});
var root=this.getRoot();
this.recalcLayout(root.offsetWidth,true);
};
editgrid.toolbar.Toolbar.prototype.recalcLayout=function(w,_766){
if(_766){
this._collapseLastWidth=null;
}
this._collapse(w,_766);
this._moreRedraw();
};
editgrid.toolbar.Toolbar.prototype._collapseThreshold=1/6;
editgrid.toolbar.Toolbar.prototype._collapseSortBy=function(a,b){
return (a.priority-b.priority)*4096+(b.index-a.index);
};
editgrid.toolbar.Toolbar.prototype._findLastShowingItem=function(){
for(var i=this.itemList.length-1;i>=0;--i){
var _76a=this.itemList[i];
if((_76a.isHidden==null||!_76a.isHidden())&&!_76a.collapsed){
return _76a;
}
}
};
editgrid.toolbar.Toolbar.prototype.setCacheRecalc=function(_76b){
var _76c=this._cacheRecalc;
this._cacheRecalc=_76b;
return _76c;
};
editgrid.toolbar.Toolbar.prototype._collapse=function(_76d){
if(_76d==0){
return;
}
if(this._collapseLastWidth==_76d&&this._cacheRecalc){
return;
}else{
this._collapseLastWidth=_76d;
}
if(this.collapsedItems==null){
this.collapsedItems={};
}
if(this.collapsePlaceholders==null){
this.collapsePlaceholders={};
}
var _76e=this._getNodes();
_76e.more.style.display="none";
for(var k in this.collapsedItems){
var item=this.collapsedItems[k];
if((item.isHidden==null||!item.isHidden())){
var _771=this.collapsePlaceholders[k];
if(_771.parentNode){
_771.parentNode.replaceChild(item.getRoot(),_771);
}
item.collapsed=null;
}
}
this.collapsedItems={};
var _772=this._findLastShowingItem();
if(_772==null){
this._morePopupSetVisible(false);
return;
}
var _773=_772.getRoot();
var _774=std.dom.getBounds(_773);
var root=this.getRoot();
var box=std.dom.getBounds(root);
var _777=_774.right-box.left+1;
var _778=this._collapseThreshold;
if(_777/_76d>=_778){
this._morePopupSetVisible(false);
return;
}
_76e.more.style.display="";
var _779=[];
for(var i=0;i<this.itemList.length;++i){
var item=this.itemList[i];
if(item.priority!=null&&(item.isHidden==null||!item.isHidden())){
_779.push({index:i,priority:item.priority});
}
}
_779.sort(this._collapseSortBy);
for(var i=0;i<_779.length;++i){
var cp=_779[i];
var _77c=this.itemList[cp.index];
if(_77c.collapsed){
continue;
}
this.collapsedItems[cp.index]=_77c;
var _77d=this.collapsePlaceholders[cp.index]=std.dom.newElement("div",null,{},{display:"none"});
var _77e=_77c.getRoot();
_77e.parentNode.replaceChild(_77d,_77e);
_76e.moreCavity.insertBefore(_77e,_76e.moreCavity.firstChild);
_77c.collapsed=true;
if(_77c==_772){
_772=this._findLastShowingItem();
if(_772==null){
return;
}
_773=_772.getRoot();
}
_774=std.dom.getBounds(_773);
_777=_774.right-box.left+1;
if(_777/_76d>=_778){
return;
}
}
};
editgrid.UndoRedo=function(){
std.topic.define(this,"onChange");
this.undoCount=0;
this.redoCount=0;
};
editgrid.UndoRedo.prototype.pushUndo=function(){
var grid=grid;
if(this.undoCount++==0){
std.topic.publish(this,"onChange");
}
};
editgrid.UndoRedo.prototype.pushRedo=function(){
if(this.redoCount++==0){
std.topic.publish(this,"onChange");
}
};
editgrid.UndoRedo.prototype.popUndo=function(_780){
this.undoCount-=_780;
if(this.undoCount<=0){
this.undoCount=0;
std.topic.publish(this,"onChange");
}
};
editgrid.UndoRedo.prototype.popRedo=function(_781){
this.redoCount-=_781;
if(this.redoCount<=0){
this.redoCount=0;
std.topic.publish(this,"onChange");
}
};
editgrid.UndoRedo.prototype.clearUndo=function(){
if(this.undoCount>0){
this.undoCount=0;
std.topic.publish(this,"onChange");
}
};
editgrid.UndoRedo.prototype.clearRedo=function(){
if(this.redoCount>0){
this.redoCount=0;
std.topic.publish(this,"onChange");
}
};
editgrid.UndoRedo.prototype.isUndoDisabled=function(){
return (this.undoCount==0);
};
editgrid.UndoRedo.prototype.isRedoDisabled=function(){
return (this.redoCount==0);
};
editgrid.workspace={};
editgrid.workspace._request=function(_782,_783,_784){
var _785=editgrid.config;
var _786=function(req){
_783(eval(req.responseText));
};
var _788=(_784&&_784.onSuccess)?function(req){
_784.onSuccess(req);
_786(req);
}:_786;
var ajax=new std.ajax.Request(_785.baseUrl+_782,std.hash.merge(_784,{method:"get",asynchronous:true,transportFactory:_785.transportFactory,onSuccess:_788}));
};
editgrid.workspace.newBook=function(_78b,_78c){
editgrid.workspace._request("newbook.do",_78b,_78c);
};
editgrid.workspace.copyBook=function(src,_78e,_78f){
var _790=src.bookRevId?("srcbookrevid="+src.bookRevId):src.bookId?("srcbookid="+src.bookId):src.path?("srcbookpath="+src.path):"";
if(_790!=""){
editgrid.workspace._request("newbook.do?"+_790,_78e,_78f);
}else{
throw "source book expected";
}
};
editgrid.numPat=/^\s*[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:E[-+]\d+)?$/i;
editgrid.CellData=function(text,_792,_793,_794,_795,_796,_797){
this.sheet=_797;
this._update_real(text,_792,_793,_794,_795,_796);
};
editgrid.CellData.prototype.updateForCellDiff=function(text,_799,_79a,_79b,_79c,_79d){
if(undefined!=this.lasttext){
delete this.lasttext;
}
if(undefined!=this.lastrtext){
delete this.lastrtext;
}
if(undefined!=this.lastntext){
delete this.lastntext;
}
if(undefined!=this.lastvtype){
delete this.lastvtype;
}
if(undefined!=this.lastintcolor){
delete this.lastintcolor;
}
this._update_real(text,_799,_79a,_79b,_79c,_79d);
};
editgrid.CellData.prototype.update=function(text,_79f,_7a0,_7a1,_7a2,_7a3){
if(undefined===this.lasttext&&undefined!==this.text&&text!==this.text){
this.lasttext=this.text;
}
if(undefined===this.lastrtext&&undefined!==this.rtext&&_79f!==this.rtext){
this.lastrtext=this.rtext;
}
if(undefined===this.lastntext&&undefined!==this.ntext&&_7a0!==this.ntext){
this.lastntext=this.ntext;
}
if(undefined===this.lastvtype&&undefined!==this.vtype&&_7a1!==this.vtype){
this.lastvtype=this.vtype;
}
if(undefined===this.lastintcolor&&undefined!==this.intcolor&&_7a2!==this.intcolor){
this.lastintcolor=this.intcolor;
}
this._update_real(text,_79f,_7a0,_7a1,_7a2,_7a3);
};
editgrid.CellData.prototype._update_real=function(text,_7a5,_7a6,_7a7,_7a8,_7a9){
if(_7a5==null){
if(editgrid.numPat.test(text)){
var t,f;
f=parseFloat(text.toLowerCase());
t=f&&Math.abs(f)<0.0001?f.toExponential(14):f.toPrecision(15);
t=t.replace(/(?:(\.\d*[1-9])|\.)0*(e[\-+]\d+)?$/,"$1$2");
this.rtext=this.ntext=this.text=t.toUpperCase();
this.vtype=40;
}else{
this.text=text;
this.rtext=this.ntext=text.charAt(0)=="'"?text.substr(1):text;
this.vtype=60;
}
}else{
this.text=text;
this.rtext=_7a5;
this.ntext=_7a6;
this.vtype=_7a7;
}
this.intcolor=_7a8;
this.hexstr_color=_7a8?std.conv.intToRGB(_7a8):null;
this.html=null;
this.errors=_7a9;
};
editgrid.CellData.prototype.getText=function(){
return this.text;
};
editgrid.CellData.prototype.getRText=function(){
return this.rtext;
};
editgrid.CellData.prototype.getValueType=function(){
return this.vtype;
};
editgrid.CellData.prototype.getWordWrap=function(_7ac){
return _7ac&&(_7ac.bits&32||(((_7ac.bits>>7)&7)==4));
};
editgrid.CellData.prototype.getFormat=function(_7ad){
return _7ad&&_7ad.format;
};
editgrid.CellData.prototype._regExpUrl=/\b((?:(?:http|https|ftp|news|file):\/\/)[^, \r\n"\(\)'<>]+)/;
editgrid.CellData.prototype._regExpUrlG=/\b((?:(?:http|https|ftp|news|file):\/\/)[^, \r\n"\(\)'<>]+)/g;
editgrid.CellData.prototype._regExpEmail=/\b([\w!#\$\%&'\*\+\-\/=\?\^`\{\|\}~\.]*[\w!#\$\%&'\*\+\-\/=\?\^`\{\|\}~]@[\w\-]+(?:\.[\w\-]+)+)/;
editgrid.CellData.prototype._regExpEmailG=/\b([\w!#\$\%&'\*\+\-\/=\?\^`\{\|\}~\.]*[\w!#\$\%&'\*\+\-\/=\?\^`\{\|\}~]@[\w\-]+(?:\.[\w\-]+)+)/g;
editgrid.CellData.prototype._regExpBadEmailG=/\b(?:(?:(?:http|https|ftp|news|file):\/\/)?([\w!#\$\%&'\*\+\-\/=\?\^`\{\|\}~\.\:]*[\w!#\$\%&'\*\+\-\/=\?\^`\{\|\}~\:]@[\w\-]+(?:\.[\w\-]+)+))/g;
editgrid.CellData.prototype.getDisplayText=function(_7ae,_7af,row,col){
var wrap=this.getWordWrap(_7ae);
var _7b3=this.getFormat(_7ae);
if(this.html==null||this._lastWrap!=wrap||this._lastFormat!=_7b3){
if(this.rtext.match(/^[\w]*$/)&&this.vtype!=20){
return this.html=this.rtext;
}
var done=false;
var text=this.text;
var _7b6=this.rtext;
if(this.vtype==20){
if(_7ae!=null){
if(_7ae.format&&_7ae.format.match(/^"#checkbox.*";.*;.*;/i)){
var _7b7=text==null?null:text.toUpperCase();
this.html="<input\ttype=\"checkbox\"\tclass=\"cellCheckbox\""+(_7b6=="TRUE"?"\tchecked=\"checked\"":"")+(_7af||(_7b7!="TRUE"&&_7b7!="FALSE")?"\tdisabled=\"disabled\"":"")+"\"/>";
done=true;
}
}
}else{
if(this.vtype!=50){
if(text.match(/^=([^(]+)\((.*)\)$/i)){
var func=RegExp.$1.toLowerCase();
var args=RegExp.$2;
if(func=="hyperlink"){
var href=null;
var _7bb=null;
if(_7b6.match(/^=hyperlink\(\s*"([^"]*)"\s*,\s*"([^"]*)"\s*\)$/i)){
href=RegExp.$1;
_7bb=RegExp.$2;
this.html="<a\tclass=\"cellHyperlink\"\thref=\""+encodeURIComponent(href)+"\">"+std.string.escapeHTML(_7bb)+"</a>";
}else{
if(_7b6.match(/^<a[\s]*href="([^"]*)"[^>]*>(.*)<\/a>$/i)){
href=RegExp.$1;
_7bb=RegExp.$2;
if(href){
_7bb=_7bb.replace("<br/>","\n").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/,"\"").replace("&amp;","&");
if(href.charAt(0)=="#"){
this.html="<a\tclass=\"cellHyperlink\"\thref=\""+href+"\"\teg_url=\""+encodeURI(href)+"\">"+std.string.fullEscapeHTML(_7bb)+"</a>";
}else{
this.html="<a\tclass=\"cellHyperlink\"\thref=\""+href+"\"\ttarget=\"_blank\">"+std.string.fullEscapeHTML(_7bb)+"</a>";
}
}else{
this.html=_7b6;
}
}
}
if(href!=null&&_7bb!=null&&std.string.isWhiteListURL(href)){
done=true;
}
if(!done&&_7b6!=text){
_7b6=_7bb;
}
}else{
if((func=="image"&&_7b6!=""&&std.string.isWhiteListURL(_7b6))||func=="alexachart"||func=="competechart"||func=="yfinancechart"||func=="reuterschart"||func=="googlechart"){
this.html="<img\tonmousedown=\"return false\"\tstyle=\"margin-left:-2px\"\tsrc=\""+std.string.escapeHTML(_7b6)+"\"/>";
done=true;
}else{
if(func=="button"){
var name,url,arg;
if(_7b6.match(/^=button\(/i)){
if(_7b6.match(/^=button\(\s*"([^"]*)"\s*,\s*"([^"]*)"\s*\)$/i)){
name=RegExp.$1;
url=RegExp.$2;
}
}else{
var r=_7b6.split(";");
name=r[0];
url=r[1];
arg=r[2];
}
this.html=this._buildCellButton(name,url,arg);
done=true;
}
}
}
}else{
if(_7af){
if(_7b6.match(/^<a[\s]*href="([^"]*)"[^>]*>(.*)<\/a>$/i)){
var href=RegExp.$1;
var _7bb=RegExp.$2;
if(href&&href.charAt(0)=="#"){
this.html=_7bb;
}else{
this.html=_7b6;
}
if(href!=null&&_7bb!=null&&std.string.isWhiteListURL(href)){
done=true;
}
}
}
}
}
}
if(!done){
var str=std.string.escapeHTML(_7b6).replace(/\n/g,"<br/>");
if(this._regExpUrl.test(str)){
var str=std.string.escapeHTML(_7b6).replace(/\n/g,"<br/>");
str=str.replace(this._regExpUrlG,"<a\tclass=\"cellHyperlink\"\thref=\"$1\"\ttarget=\"_blank\">$1</a>");
if(this._regExpEmail.test(str)){
var res=[];
var idx=0;
var _7c3;
while((_7c3=this._regExpBadEmailG.exec(str))!=null){
var curr=_7c3[0];
var last=this._regExpBadEmailG.lastIndex;
if(!this._regExpUrl.test(curr)){
res.push(str.substring(idx,_7c3.index),"<a\tclass=\"cellHyperlink\"\thref=\"mailto:",curr,"\"\ttarget=\"_blank\">",curr,"</a>");
}else{
res.push(str.substring(idx,_7c3.index),curr);
}
idx=last;
}
res.push(str.substring(last));
str=res.join("");
}
}else{
str=str.replace(this._regExpEmailG,"<a\tclass=\"cellHyperlink\"\thref=\"mailto:$1\"\ttarget=\"_blank\">$1</a>");
}
this.html=str;
}
if(!wrap){
this.html=this.html.replace(/ /g,"&nbsp;");
}else{
this.html=this.html.replace(/^ /g,"&nbsp;").replace(/<br\/> /g,"<br/>&nbsp;").replace(/   /g,"&nbsp; &nbsp;").replace(/  /g,"&nbsp; ").replace(/&nbsp; &nbsp;([\S])/,"&nbsp;&nbsp; $1");
}
}
this._lastWrap=wrap;
this._lastFormat=_7b3;
return this.html;
};
editgrid.CellData.prototype.getEscapedText=function(){
return std.string.escapeHTML(this.text).replace(/\n/g,"<br/>").replace(/ /g,"&nbsp;");
};
editgrid.CellData.prototype._buildCellButton=function(name,url,arg){
return ["<input","type=\"button\"","class=\"cellButton\"","value=\""+std.string.escapeHTML(name)+"\"","eg_url=\""+encodeURIComponent(url)+"\"","eg_arg=\""+std.string.escapeHTML(arg)+"\"","eg_sheet=\""+std.string.escapeHTML(this.sheet.id)+"\"","/>",""].join("\t");
};
editgrid.getCellId=function(r,c){
var s="";
if(r!=null){
s+="R"+r;
}
if(c!=null){
s+="C"+c;
}
return s;
};
editgrid.getCellName=function(r,c){
return editgrid.getColName(c)+editgrid.getRowName(r);
};
editgrid.getRowName=function(r){
return (r+1).toString();
};
editgrid.getColName=function(c){
return (c<26)?String.fromCharCode(65+c):String.fromCharCode(64+c/26,65+c%26);
};
editgrid.toColRowIdx=function(r,c){
return c+r*256;
};
editgrid.getRowIdx=function(_7d2){
return _7d2-1;
};
editgrid.getColIdx=function(_7d3){
var _7d3=_7d3.toUpperCase(_7d3);
return (_7d3.length==1)?(_7d3.charCodeAt(0)-65):(_7d3.charCodeAt(0)-64)*26+(_7d3.charCodeAt(1)-65);
};
editgrid.escapeSheetName=function(str){
if(str==null){
return "''";
}
var _7d5=/(['\\])/g;
var _7d6=/([~!@#$%^&*()_+-={}\[\]:";'<>?,.\/|\s\\])/g;
var str=str.replace(_7d5,"\\$1");
if(str.match(_7d6)){
str="'"+str+"'";
}
return str;
};
(function(){
var _7d7=function(name){
var s;
if((s=name.match(/^'.*'!/))){
return s[0].length-1;
}else{
return name.indexOf("!");
}
};
editgrid.parseSheetNameFromAddress=function(name,_7db){
if(_7db==null){
_7db=[];
}
var idx=_7d7(name);
if(idx!=-1){
name=name.substring(0,idx);
var _7dd=name.charAt(0);
var last=name.charAt(name.length-1);
if((_7dd=="'"&&last=="'")){
name=name.substring(1,name.length-1).replace(/''/g,"'");
}else{
if(name.indexOf("'")!=-1){
_7db[_7db.length]=loc("Invalid Sheet Name");
name=null;
}
}
}else{
name=null;
}
return name;
};
editgrid.parseRangeColRowIdxFromAddress=function(name,_7e0){
var _7e1=editgrid.parseRangeColRowIdxFromAddressA1(name,_7e0);
if(_7e1==null){
_7e1=editgrid.parseRangeColRowIdxFromAddressR1C1(name,_7e0);
}
return _7e1;
};
editgrid.parseColRowIdxFromAddress=function(name,_7e3){
var _7e4=editgrid.parseColRowIdxFromAddressA1(name,_7e3);
if(_7e4==null){
_7e4=editgrid.parseColRowIdxFromAddressR1C1(name,_7e3);
}
return _7e4;
};
editgrid._parseRangeWith=function(_7e5,_7e6,_7e7,name,_7e9){
if(_7e9==null){
_7e9=[];
}
name=name.substring(_7d7(name)+1);
var _7ea=name.split(":");
if(_7ea.length==1){
var fr=_7e5(_7ea[0],_7e9);
return fr==null?null:{fr:fr,to:{row:null,col:null}};
}else{
if(_7ea.length==2){
var _7ec=[];
var _7ed={fr:_7e5(_7ea[0],_7ec),to:_7e5(_7ea[1],_7ec)};
if(_7ed.fr==null||_7ed.to==null){
if(_7e7){
_7ed=_7e7(_7ea,_7e9);
}
}
if(_7ed.fr==null||_7ed.to==null){
if(_7e6){
_7ed=_7e6(_7ea,_7e9);
}
}
if(_7ed.fr!=null&&_7ed.to!=null){
var tmp;
if(_7ed.fr.row>_7ed.to.row){
tmp=_7ed.fr.row;
_7ed.fr.row=_7ed.to.row;
_7ed.to.row=tmp;
}
if(_7ed.fr.col>_7ed.to.col){
tmp=_7ed.fr.col;
_7ed.fr.col=_7ed.to.col;
_7ed.to.col=tmp;
}
return _7ed;
}else{
for(var i=0;i<_7ec.length;++i){
_7e9[_7e9.length]=_7ec[i];
}
}
}
}
_7e9[_7e9.length]=loc("Invalid Cell Location");
return null;
};
editgrid.parseRangeColRowIdxFromAddressA1=function(name,_7f1){
return editgrid._parseRangeWith(editgrid.parseColRowIdxFromAddressA1,editgrid.parseFullRowIdxFromAddressA1,editgrid.parseFullColIdxFromAddressA1,name,_7f1);
};
editgrid.parseColRowIdxFromAddressA1=function(name,_7f3){
if(_7f3==null){
_7f3=[];
}
if(name.match(/^[\s]*[$]?([a-zA-Z]{1,2})[$]?([1-9][0-9]*)[\s]*$/)){
var row=editgrid.getRowIdx(RegExp.$2);
var col=editgrid.getColIdx(RegExp.$1);
if(row!=null&&col!=null){
return new editgrid.CellRef(row,col);
}
}
_7f3[_7f3.length]=loc("Invalid Cell Location");
return null;
};
editgrid.parseFullColIdxFromAddressA1=function(_7f6,_7f7){
var _7f8=/^[$]?([a-zA-Z]{1,2})$/;
var _7f9=_7f6[0].match(_7f8)?editgrid.getColIdx(RegExp.$1):null;
var _7fa=_7f6[1].match(_7f8)?editgrid.getColIdx(RegExp.$1):null;
var fr,to;
if(_7f9!=null&&_7fa!=null){
fr={row:null,col:_7f9};
to={row:null,col:_7fa};
}
return {fr:fr,to:to};
};
editgrid.parseFullRowIdxFromAddressA1=function(_7fd,_7fe){
var _7ff=/^[$]?([1-9][0-9]*)$/;
var _800=_7fd[0].match(_7ff)?editgrid.getRowIdx(RegExp.$1):null;
var _801=_7fd[1].match(_7ff)?editgrid.getRowIdx(RegExp.$1):null;
var fr,to;
if(_800!=null&&_801!=null){
fr={row:_800,col:null};
to={row:_801,col:null};
}
return {fr:fr,to:to};
};
editgrid.parseRangeColRowIdxFromAddressR1C1=function(name,_805){
return editgrid._parseRangeWith(editgrid.parseColRowIdxFromAddressR1C1,null,null,name,_805);
};
editgrid.parseColRowIdxFromAddressR1C1=function(name,_807){
if(_807==null){
_807=[];
}
if(name.match(/^[\s]*[Rr][\[]?([1-9][0-9]*)[\]]?[Cc][\[]?([1-9][0-9]*)[\]]?[\s]*$/)){
return new editgrid.CellRef(RegExp.$1-1,RegExp.$2-1);
}
_807[_807.length]=loc("Invalid Cell Location");
return null;
};
editgrid.parseCellAddress=function(name,_809,_80a){
var _80b={};
var _80c=editgrid.parseRangeColRowIdxFromAddress(name,_809);
_80b.sheetName=editgrid.parseSheetNameFromAddress(name,_809);
if(_80c!=null){
_80b.fr=_80c.fr;
_80b.to=_80c.to;
_80a=_80a||{};
if(!_80a.noRangeCheck){
if(_80b.fr.row<0||_80b.fr.row>65535||_80b.to.row<0||_80b.to.row>65535){
_809[_809.length]=loc("Exceeded Row Range Limit");
return null;
}
if(_80b.fr.col<0||_80b.fr.col>255||_80b.to.col<0||_80b.fr.col>255){
_809[_809.length]=loc("Exceeded Column Range Limit");
return null;
}
}
return _80b;
}
return null;
};
})();
editgrid.shiftArrayPoints=function(pts,_80e,_80f,_810,_811){
var _812=_80f-_80e;
var del=_812<0;
var _814=_811?pts:pts.slice(0);
if(del){
_814.splice(_80f,-_812);
}else{
var args=[_80e,0];
args.length=_812+2;
_814.splice.apply(_814,args);
var len=_814.length;
if(len>_810){
_814.splice(_810,len-_810);
}
}
return _814;
};
editgrid.shiftPos=function(pos,_818,_819,_81a){
if(pos>=_818){
pos+=_819-_818;
}else{
if(_818>_819&&_819<=pos){
pos=_819-1;
}
}
if(pos<0){
pos=0;
}
if(pos>_81a){
pos=_81a-1;
}
return pos;
};
editgrid.compareNumbers=function(a,b){
return (a>b)?1:(a<b)?-1:0;
};
editgrid.CellRef=function(row,col){
this.row=row;
this.col=col;
};
editgrid.CellRef.from=function(o){
if(!o){
throw new Error("Cannot construct CellRef from "+o);
}else{
if(typeof (o)=="object"&&o.row!=null&&o.col!=null){
return editgrid.CellRef.fromHash(o);
}else{
if(typeof (o)=="string"){
return editgrid.CellRef.fromName(o);
}else{
if(typeof (o)=="object"&&o[0]!=undefined&&o[1]!=undefined){
return editgrid.CellRef.fromArray(o);
}
}
}
}
throw new Error("Cannot construct CellRef from "+o);
};
editgrid.CellRef.fromHash=function(h){
if(h.row<0||h.row>65535){
throw new Error("Row index ["+h.row+"] must be between 0 to 65535.");
}
if(h.col<0||h.col>255){
throw new Error("Column index ["+h.col+"] must be between 0 to 255.");
}
return new editgrid.CellRef(h.row,h.col);
};
editgrid.CellRef.fromArray=function(a){
if(a[0]<0||a[0]>65535){
throw new Error("Row index ["+a[0]+"] must be between 0 to 65535.");
}
if(a[1]<0||a[1]>255){
throw new Error("Column index ["+a[1]+"] must be between 0 to 255.");
}
return new editgrid.CellRef(a[0],a[1]);
};
editgrid.CellRef.fromName=function(name){
var _823=[];
var ret=editgrid.parseColRowIdxFromAddress(name,_823);
if(ret==null){
throw new Error(_823[0]);
}
if(ret.row<0||ret.row>65535){
throw new Error("Row index ["+h.row+"] must be between 0 to 65535.");
}
if(ret.col<0||ret.col>255){
throw new Error("Column index ["+h.col+"] must be between 0 to 255.");
}
return ret;
};
editgrid.CellRef.prototype.toString=function(){
return editgrid.getCellId(this.row,this.col);
};
editgrid.CellRef.prototype.clone=function(){
return new editgrid.CellRef(this.row,this.col);
};
editgrid.CellRef.prototype.getName=function(){
return editgrid.getColName(this.col)+(this.row+1);
};
editgrid.CellRef.prototype.equal=function(c){
return this.col==c.col&&this.row==c.row;
};
editgrid.RangeRef=function(_826,_827,_828,_829){
if(_828==null){
_828=_826;
}
if(_829==null){
_829=_827;
}
if(_826==null&&_828==null){
_826=0,_828=65535;
}
if(_827==null&&_829==null){
_827=0,_827=255;
}
this.rowFr=_826;
this.rowTo=_828;
this.colFr=_827;
this.colTo=_829;
};
editgrid.RangeRef.normalized=function(_82a,_82b,_82c,_82d){
if(_82a<=_82c&&_82b<=_82d){
return new editgrid.RangeRef(_82a,_82b,_82c,_82d);
}else{
if(_82a<=_82c){
return new editgrid.RangeRef(_82a,_82d,_82c,_82b);
}else{
if(_82b<=_82d){
return new editgrid.RangeRef(_82c,_82b,_82a,_82d);
}else{
return new editgrid.RangeRef(_82c,_82d,_82a,_82b);
}
}
}
};
editgrid.RangeRef.fromName=function(name){
var _82f=[];
var idx=editgrid.parseRangeColRowIdxFromAddress(name,_82f);
if(idx==null){
throw new Error(_82f[0]);
}
if(idx.fr.row<0||idx.fr.row>65535){
throw new Error("Row index ["+idx.fr.row+"] must be between 0 to 65535.");
}
if(idx.fr.col<0||idx.fr.col>255){
throw new Error("Column index ["+idx.fr.col+"] must be between 0 to 255.");
}
if(idx.to.row<0||idx.to.row>65535){
throw new Error("Row index ["+idx.to.row+"] must be between 0 to 65535.");
}
if(idx.to.col<0||idx.to.col>255){
throw new Error("Column index ["+idx.to.col+"] must be between 0 to 255.");
}
return new editgrid.RangeRef(idx.fr.row,idx.fr.col,idx.to.row,idx.to.col);
};
editgrid.RangeRef.fromCellRef=function(_831,_832){
if(_832===undefined){
_832=_831;
}
return new editgrid.RangeRef(_831.row,_831.col,_832.row,_832.col);
};
editgrid.RangeRef.fromRows=function(from,to){
if(to===undefined){
to=from;
}
if(to<from){
throw new Error("To row index must not be less than from row index");
}
if(from<0||from>65535){
throw new Error("From row index must be between 0  to 65535");
}
if(to<0||to>65535){
throw new Error("To row index must be between 0  to 65535");
}
return new editgrid.RangeRef(from,0,to,255);
};
editgrid.RangeRef.fromCols=function(from,to){
if(to===undefined){
to=from;
}
return new editgrid.RangeRef(0,from,65535,to);
};
editgrid.RangeRef.ALL_CELLS=new editgrid.RangeRef(0,0,65535,255);
editgrid.RangeRef.from=function(o){
if(!o){
throw new Error("Cannot construct RangeRef from "+o);
}else{
if(typeof (o)=="object"&&o.rowFr!=null&&o.colFr!=null&&o.rowTo!=null&&o.colTo!=null){
return editgrid.RangeRef.fromHash(o);
}else{
if(typeof (o)=="string"){
return editgrid.RangeRef.fromName(o);
}else{
if(typeof (o)=="object"&&o[0]!=null){
if(typeof (o[0])=="object"){
return editgrid.RangeRef.fromCellRef(o[0],o[1]);
}
if(typeof (o[0])=="number"){
return editgrid.RangeRef.fromArray(o);
}
}
}
}
}
throw new Error("Cannot construct RangeRef from "+o);
};
editgrid.RangeRef.fromHash=function(h){
if(h.rowFr<0||h.rowFr>65535){
throw new Error("Row index ["+h.rowFr+"] must be between 0 to 65535.");
}
if(h.rowTo<0||h.rowTo>65535){
throw new Error("Row index ["+h.rowTo+"] must be between 0 to 65535.");
}
if(h.colFr<0||h.colFr>255){
throw new Error("Column index ["+h.colFr+"] must be between 0 to 255.");
}
if(h.colTo<0||h.colTo>255){
throw new Error("Column index ["+h.colTo+"] must be between 0 to 255.");
}
if(h.rowFr>h.rowTo){
throw new Error("From row index ["+h.rowFr+"] must be not greater than to row index ["+h.rowTo+"].");
}
if(h.colFr>h.colTo){
throw new Error("From column index ["+h.colFr+"] must be not greater than to column index ["+h.colTo+"].");
}
return new editgrid.RangeRef(h.rowFr,h.colFr,h.rowTo,h.colTo);
};
editgrid.RangeRef.fromArray=function(a){
if(a[0]==null||a[0]<0||a[0]>65535){
throw new Error("Row index ["+a[0]+"] must be between 0 to 65535.");
}
if(a[1]==null||a[1]<0||a[1]>255){
throw new Error("Column index ["+a[1]+"] must be between 0 to 255.");
}
if(a[2]==null||a[2]<0||a[2]>65535){
throw new Error("Row index ["+a[2]+"] must be between 0 to 65535.");
}
if(a[3]==null||a[3]<0||a[3]>255){
throw new Error("Column index ["+a[3]+"] must be between 0 to 255.");
}
if(a[0]>a[2]){
throw new Error("From row index ["+a[0]+"] must be not greater than to row index ["+a[2]+"].");
}
if(a[1]>a[3]){
throw new Error("From column index ["+a[1]+"] must be not greater than to column index ["+a[3]+"].");
}
return new editgrid.RangeRef(a[0],a[1],a[2],a[3]);
};
editgrid.RangeRef.prototype.toString=function(){
return editgrid.getCellId(this.rowFr,this.colFr)+":"+editgrid.getCellId(this.rowTo,this.colTo);
};
editgrid.RangeRef.getName=function(_83a,_83b,_83c,_83d,abs){
var mod=abs?"$":"";
if(_83b==0&&_83d==255){
return mod+(_83a+1)+":"+mod+(_83c+1);
}else{
if(_83a==0&&_83c==65535){
return mod+editgrid.getColName(_83b)+":"+mod+editgrid.getColName(_83d);
}else{
var s=mod+editgrid.getColName(_83b)+mod+(_83a+1);
if(_83b!=_83d||_83a!=_83c){
s+=":"+mod+editgrid.getColName(_83d)+mod+(_83c+1);
}
return s;
}
}
};
editgrid.RangeRef.prototype.getName=function(){
return editgrid.RangeRef.getName(this.rowFr,this.colFr,this.rowTo,this.colTo,false);
};
editgrid.RangeRef.prototype.getNameAbs=function(){
return editgrid.RangeRef.getName(this.rowFr,this.colFr,this.rowTo,this.colTo,true);
};
editgrid.RangeRef.prototype.getNameSimple=function(){
return editgrid.getCellName(this.rowFr,this.colFr)+":"+editgrid.getCellName(this.rowTo,this.colTo);
};
editgrid.RangeRef.prototype.getFromCellRef=function(){
return new editgrid.CellRef(this.rowFr,this.colFr);
};
editgrid.RangeRef.prototype.getToCellRef=function(){
return new editgrid.CellRef(this.rowTo,this.colTo);
};
editgrid.RangeRef.prototype.isSingle=function(){
return this.rowFr==this.rowTo&&this.colFr==this.colTo;
};
editgrid.RangeRef.prototype.isCol=function(){
return this.rowFr==0&&this.rowTo==65535;
};
editgrid.RangeRef.prototype.isRow=function(){
return this.colFr==0&&this.colTo==255;
};
editgrid.RangeRef.prototype.area=function(){
return (this.rowTo-this.rowFr+1)*(this.colTo-this.colFr+1);
};
editgrid.RangeRef.prototype.hasCell=function(row,col){
return row>=this.rowFr&&row<=this.rowTo&&col>=this.colFr&&col<=this.colTo;
};
editgrid.RangeRef.prototype.intersects=function(_843){
return !(_843.rowFr>this.rowTo||_843.rowTo<this.rowFr||_843.colFr>this.colTo||_843.colTo<this.colFr);
};
editgrid.RangeRef.prototype.intersection=function(_844){
if(!this.intersects(_844)){
return null;
}
var r=this.clone();
r.rowFr=r.rowFr>_844.rowFr?r.rowFr:_844.rowFr;
r.colFr=r.colFr>_844.colFr?r.colFr:_844.colFr;
r.rowTo=r.rowTo<_844.rowTo?r.rowTo:_844.rowTo;
r.colTo=r.colTo<_844.colTo?r.colTo:_844.colTo;
return r;
};
editgrid.RangeRef.prototype.inside=function(_846){
return _846.rowFr<=this.rowFr&&this.rowTo<=_846.rowTo&&_846.colFr<=this.colFr&&this.colTo<=_846.colTo;
};
editgrid.RangeRef.prototype.equal=function(_847){
return _847.rowFr==this.rowFr&&_847.rowTo==this.rowTo&&_847.colFr==this.colFr&&_847.colTo==this.colTo;
};
editgrid.RangeRef.prototype.clone=function(){
return new editgrid.RangeRef(this.rowFr,this.colFr,this.rowTo,this.colTo);
};
var TILE_TOP_LEVEL=3;
var TILE_SIZE_COL=4,TILE_SIZE_ROW=16;
var tileSizes=[1,TILE_SIZE_COL,TILE_SIZE_ROW,TILE_SIZE_COL*TILE_SIZE_ROW];
var tileWidths=[1,TILE_SIZE_COL,TILE_SIZE_COL*TILE_SIZE_COL,TILE_SIZE_COL*TILE_SIZE_COL*TILE_SIZE_COL,TILE_SIZE_COL*TILE_SIZE_COL*TILE_SIZE_COL*TILE_SIZE_COL];
var tileHeights=[1,TILE_SIZE_ROW,TILE_SIZE_ROW*TILE_SIZE_ROW,TILE_SIZE_ROW*TILE_SIZE_ROW*TILE_SIZE_ROW,TILE_SIZE_ROW*TILE_SIZE_ROW*TILE_SIZE_ROW*TILE_SIZE_ROW];
editgrid.tile={};
editgrid.tile.Tile=function(){
};
editgrid.tile.Tile.prototype.getIndicies=function(_848,size,_84a,from,to,_84d){
var i,j,ii,jj;
i=from-_848;
if(i>0&&i!=(ii=i/size|0)*size){
return false;
}
j=to-_848+1;
if((jj=j/size|0)<=_84a&&j!=jj*size){
return false;
}
_84d.from=i>0?ii:0;
_84d.to=(jj<=_84a?jj:_84a)-1;
return true;
};
editgrid.tile.Tile.prototype.toMat=function(_852,_853,_854,_855,_856,set){
var i,l,r,c;
var tile=this.type==3?this:new editgrid.tile.MatTile();
switch(this.type){
case 0:
for(i=0,l=TILE_SIZE_COL*TILE_SIZE_ROW;i<l;++i){
tile.styles[i]=this.styles[0];
}
break;
case 1:
for(r=0,i=0;r<TILE_SIZE_ROW;++r){
for(c=0;c<TILE_SIZE_COL;++c){
tile.styles[i++]=this.styles[c];
}
}
break;
case 2:
for(r=0,i=0;r<TILE_SIZE_ROW;++r){
for(c=0;c<TILE_SIZE_COL;++c){
tile.styles[i++]=this.styles[r];
}
}
break;
}
if(_853!=undefined){
i=_853*TILE_SIZE_COL;
if(set){
for(r=_853;r<=_855;++r,i+=TILE_SIZE_COL){
for(c=_854;c<=_856;++c){
tile.styles[i+c]=_852;
}
}
}else{
for(r=_853;r<=_855;++r,i+=TILE_SIZE_COL){
for(c=_854;c<=_856;++c){
tile.styles[i+c]=tile.styles[i+c].apply(_852);
}
}
}
}
return tile;
};
editgrid.tile.Tile.prototype.applyStyle=function(_85d,row,col,_860,_861){
var _862=tileWidths[_85d+1];
var _863=tileHeights[_85d+1];
var w=tileWidths[_85d];
var h=tileHeights[_85d];
var _866=_860.rowFr<=row&&_860.rowTo>=row+_863-1;
var _867=_860.colFr<=col&&_860.colTo>=col+_862-1;
var _868={},_869={};
var tile=this;
var type=this.type;
if(_866&&_867){
if(type==0){
this.styles[0]=this.styles[0].apply(_861);
return this;
}
if(type<=3){
for(var i=0,l=tileSizes[type];i<l;++i){
this.styles[i]=this.styles[i].apply(_861);
}
return this;
}
}else{
if(_866&&this.getIndicies(col,w,TILE_SIZE_COL,_860.colFr,_860.colTo,_869)){
if(type==0){
tile=new editgrid.tile.ColTile(this.styles[0]);
type=1;
}
if(type==1){
for(var i=_869.from,l=_869.to;i<=l;++i){
tile.styles[i]=tile.styles[i].apply(_861);
}
return tile;
}
if(type!=4){
return tile.toMat(_861,0,_869.from,TILE_SIZE_ROW-1,_869.to);
}
}else{
if(_867&&this.getIndicies(row,h,TILE_SIZE_ROW,_860.rowFr,_860.rowTo,_868)){
if(type==0){
tile=new editgrid.tile.RowTile(this.styles[0]);
type=2;
}
if(type==2){
for(var i=_868.from,l=_868.to;i<=l;++i){
tile.styles[i]=tile.styles[i].apply(_861);
}
return tile;
}
if(type!=4){
return tile.toMat(_861,_868.from,0,_868.to,TILE_SIZE_COL-1);
}
}else{
if(type!=4&&this.getIndicies(col,w,TILE_SIZE_COL,_860.colFr,_860.colTo,_869)&&this.getIndicies(row,h,TILE_SIZE_ROW,_860.rowFr,_860.rowTo,_868)){
return tile.toMat(_861,_868.from,_869.from,_868.to,_869.to);
}
}
}
}
if(type!=4){
tile=new editgrid.tile.PtrTile(tile);
}
var c1=(_860.colFr-col)/w|0;
var c2=(_860.colTo-col)/w|0;
var r1=(_860.rowFr-row)/h|0;
var r2=(_860.rowTo-row)/h|0;
var cc,cr,c,r,i;
if(c1<0){
c1=0;
}
if(c2>=TILE_SIZE_COL){
c2=TILE_SIZE_COL-1;
}
if(r1<0){
r1=0;
}
if(r2>=TILE_SIZE_ROW){
r2=TILE_SIZE_ROW-1;
}
cr=row+h*r1;
col+=w*c1;
var i=r1*TILE_SIZE_COL;
--_85d;
for(r=r1;r<=r2;++r,cr+=h,i+=TILE_SIZE_COL){
cc=col;
for(c=c1;c<=c2;++c,cc+=w){
tile.ptrs[i+c]=tile.ptrs[i+c].applyStyle(_85d,cr,cc,_860,_861);
}
}
return tile;
};
editgrid.tile.Tile.prototype.setStyle=function(_876,row,col,_879,_87a){
var _87b=tileWidths[_876+1];
var _87c=tileHeights[_876+1];
var w=tileWidths[_876];
var h=tileHeights[_876];
var _87f=_879.rowFr<=row&&_879.rowTo>=row+_87c-1;
var _880=_879.colFr<=col&&_879.colTo>=col+_87b-1;
var _881={},_882={};
var tile=this;
var type=this.type;
if(_87f&&_880){
if(type==0){
this.styles[0]=_87a;
return this;
}else{
return new editgrid.tile.SimpleTile(_87a);
}
}else{
if(_87f&&this.getIndicies(col,w,TILE_SIZE_COL,_879.colFr,_879.colTo,_882)){
if(type==0){
tile=new editgrid.tile.ColTile(this.styles[0]);
type=1;
}
if(type==1){
for(var i=_882.from,l=_882.to;i<=l;++i){
tile.styles[i]=_87a;
}
return tile;
}
if(type!=4){
return tile.toMat(_87a,0,_882.from,TILE_SIZE_ROW-1,_882.to,true);
}
}else{
if(_880&&this.getIndicies(row,h,TILE_SIZE_ROW,_879.rowFr,_879.rowTo,_881)){
if(type==0){
tile=new editgrid.tile.RowTile(this.styles[0]);
type=2;
}
if(type==2){
for(var i=_881.from,l=_881.to;i<=l;++i){
tile.styles[i]=_87a;
}
return tile;
}
if(type!=4){
return tile.toMat(_87a,_881.from,0,_881.to,TILE_SIZE_COL-1,true);
}
}else{
if(type!=4&&this.getIndicies(col,w,TILE_SIZE_COL,_879.colFr,_879.colTo,_882)&&this.getIndicies(row,h,TILE_SIZE_ROW,_879.rowFr,_879.rowTo,_881)){
return tile.toMat(_87a,_881.from,_882.from,_881.to,_882.to,true);
}
}
}
}
if(type!=4){
tile=new editgrid.tile.PtrTile(tile);
}
var c1=(_879.colFr-col)/w|0;
var c2=(_879.colTo-col)/w|0;
var r1=(_879.rowFr-row)/h|0;
var r2=(_879.rowTo-row)/h|0;
var cc,cr,c,r,i;
if(c1<0){
c1=0;
}
if(c2>=TILE_SIZE_COL){
c2=TILE_SIZE_COL-1;
}
if(r1<0){
r1=0;
}
if(r2>=TILE_SIZE_ROW){
r2=TILE_SIZE_ROW-1;
}
cr=row+h*r1;
col+=w*c1;
var i=r1*TILE_SIZE_COL;
--_876;
for(r=r1;r<=r2;++r,cr+=h,i+=TILE_SIZE_COL){
cc=col;
for(c=c1;c<=c2;++c,cc+=w){
tile.ptrs[i+c]=tile.ptrs[i+c].setStyle(_876,cr,cc,_879,_87a);
}
}
return tile;
};
editgrid.tile.Tile.prototype._gsl=function(_88f,r,c,w,h,_894,tbl){
var c1,c2,r1,r2;
var sr,key;
if((c1=c-_894.colFr)<0){
c1=0;
}
if((r1=r-_894.rowFr)<0){
r1=0;
}
if((c2=c+w-1)>_894.colTo){
c2=_894.colTo-_894.colFr;
}else{
c2-=_894.colFr;
}
if((r2=r+h-1)>_894.rowTo){
r2=_894.rowTo-_894.rowFr;
}else{
r2-=_894.rowFr;
}
_88f.mask=63;
if(r1>=1&&(sr=tbl[key=editgrid.toColRowIdx(r1-1,c2)])&&sr.c1==c1&&sr.style.equal(_88f)){
delete tbl[key];
sr.r2=r2;
}else{
sr={r1:r1,c1:c1,r2:r2,c2:c2,style:_88f};
}
tbl[editgrid.toColRowIdx(r2,c2)]=sr;
};
editgrid.tile.Tile.prototype.foreachTile=function(_89c,row,col,_89f,tbl,_8a1){
var _8a2=tileWidths[_89c+1];
var _8a3=tileHeights[_89c+1];
var w=tileWidths[_89c];
var h=tileHeights[_89c];
var i,ii,r,c,c2,r1,r2,cc,cr;
var _8af;
switch(this.type){
case 0:
this._gsl(this.styles[0],row,col,_8a2,_8a3,_89f,tbl);
break;
case 1:
c=(_89f.colFr-col)/w|0;
if(c<0){
c=0;
}
c2=(_89f.colTo-col)/w|0;
if(c2>=TILE_SIZE_COL){
c2=TILE_SIZE_COL-1;
}
cc=col+c*w;
for(;c<=c2;++c,cc+=w){
if((_8af=this.styles[c])!=_8a1){
this._gsl(_8af,row,cc,w,_8a3,_89f,tbl);
}
}
break;
case 2:
r=(_89f.rowFr-row)/h|0;
if(r<0){
r=0;
}
r2=(_89f.rowTo-row)/h|0;
if(r2>=TILE_SIZE_ROW){
r2=TILE_SIZE_ROW-1;
}
cr=row+r*h;
for(;r<=r2;++r,cr+=h){
if((_8af=this.styles[r])!=_8a1){
this._gsl(_8af,cr,col,_8a2,h,_89f,tbl);
}
}
break;
case 3:
case 4:
c=(_89f.colFr-col)/w|0;
c2=(_89f.colTo-col)/w|0;
r1=(_89f.rowFr-row)/h|0;
r2=(_89f.rowTo-row)/h|0;
if(c<0){
c=0;
}
if(c2>=TILE_SIZE_COL){
c2=TILE_SIZE_COL-1;
}
if(r1<0){
r1=0;
}
if(r2>=TILE_SIZE_ROW){
r2=TILE_SIZE_ROW-1;
}
cc=col+w*c;
row+=h*r1;
ii=r1*TILE_SIZE_COL+c;
if(this.type==4){
var tile;
--_89c;
for(;c<=c2;++c,cc+=w,++ii){
cr=row;
i=ii;
for(r=r1;r<=r2;++r,cr+=h,i+=TILE_SIZE_COL){
if((tile=this.ptrs[i]).type||tile.styles[0]!=_8a1){
tile.foreachTile(_89c,cr,cc,_89f,tbl,_8a1);
}
}
}
}else{
for(;c<=c2;++c,cc+=w,++ii){
cr=row;
i=ii;
for(r=r1;r<=r2;++r,cr+=h,i+=TILE_SIZE_COL){
if((_8af=this.styles[i])!=_8a1){
this._gsl(_8af,cr,cc,w,h,_89f,tbl);
}
}
}
}
break;
}
};
editgrid.tile.SimpleTile=function(_8b1){
this.type=0;
this.styles=[_8b1];
};
editgrid.tile.SimpleTile.prototype=new editgrid.tile.Tile();
editgrid.tile.ColTile=function(_8b2){
this.type=1;
this.styles=new Array(TILE_SIZE_COL);
for(var i=0;i<TILE_SIZE_COL;++i){
this.styles[i]=_8b2;
}
};
editgrid.tile.ColTile.prototype=new editgrid.tile.Tile();
editgrid.tile.RowTile=function(_8b4){
this.type=2;
this.styles=new Array(TILE_SIZE_ROW);
for(var i=0;i<TILE_SIZE_ROW;++i){
this.styles[i]=_8b4;
}
};
editgrid.tile.RowTile.prototype=new editgrid.tile.Tile();
editgrid.tile.MatTile=function(){
this.type=3;
this.styles=new Array(TILE_SIZE_COL*TILE_SIZE_ROW);
};
editgrid.tile.MatTile.prototype=new editgrid.tile.Tile();
editgrid.tile.PtrTile=function(t){
var r,c,i,l;
this.type=4;
this.ptrs=new Array(TILE_SIZE_COL*TILE_SIZE_ROW);
switch(t.type){
case 0:
var _8bb=t.styles[0];
for(i=0,l=TILE_SIZE_COL*TILE_SIZE_ROW;i<l;++i){
this.ptrs[i]=new editgrid.tile.SimpleTile(_8bb);
}
break;
case 1:
for(r=0,i=0;r<TILE_SIZE_ROW;++r){
for(c=0;c<TILE_SIZE_COL;++c){
this.ptrs[i++]=new editgrid.tile.SimpleTile(t.styles[c]);
}
}
break;
case 2:
for(r=0,i=0;r<TILE_SIZE_ROW;++r){
for(c=0;c<TILE_SIZE_COL;++c){
this.ptrs[i++]=new editgrid.tile.SimpleTile(t.styles[r]);
}
}
break;
case 3:
for(i=0,l=TILE_SIZE_COL*TILE_SIZE_ROW;i<l;++i){
this.ptrs[i]=new editgrid.tile.SimpleTile(t.styles[i]);
}
break;
}
};
editgrid.tile.PtrTile.prototype=new editgrid.tile.Tile();
editgrid.graph={};
editgrid.graph.Graph=function(json){
this.json=json;
this.type=json.type;
this.title=json.title;
this.showLegend=json.showLegend;
this.axisLabels={};
for(var key in json.axisLabel){
this.axisLabels[key]=json.axisLabel[key];
}
this.series={};
for(var sid in json.series){
var _8bf=json.series[sid];
this.series[sid]={name:_8bf.name,dim:{}};
for(var did in _8bf.dim){
this.series[sid].dim[did]=_8bf.dim[did];
}
}
};
editgrid.graph.Graph.prototype.clone=function(){
return new editgrid.graph.Graph(this.json);
};
editgrid.graph.Graph.prototype._createSeries=function(){
return {dim:{}};
};
editgrid.graph.Graph.prototype.addSeries=function(){
var max=0;
for(var id in this.series){
max=Math.max(max,id);
}
this.series[max+1]=this._createSeries();
};
editgrid.graph.Graph.prototype.delSeries=function(id){
if(this.series[id]){
delete this.series[id];
}
};
editgrid.graph.Graph.prototype.getDataSerialized=function(){
var data=[];
for(var sid in this.series){
var _8c6=this.series[sid];
data.push("S"+sid);
data.push(null);
var _8c7=data.length;
var _8c8=0;
for(var did in _8c6.dim){
data.push("D"+did);
data.push(_8c6.dim[did]);
_8c8++;
}
data[_8c7-1]=_8c8;
}
return data.join("|");
};
editgrid.graph.Graph.prototype.getAxisLabelsSerialized=function(){
var data=[];
for(var key in this.axisLabels){
data.push(key);
data.push(this.axisLabels[key]);
}
return data.join("|");
};
editgrid.graph.Editor=function(_8cc,_8cd){
this.templateTreeGetter=_8cc;
this.plotDescGetter=_8cd;
};
editgrid.graph.Editor.prototype.getPlotDesc=function(){
return std.lang.undef(this.plotDesc)?this.plotDesc=this.plotDescGetter():this.plotDesc;
};
editgrid.graph.Editor.prototype.getRoot=function(){
if(typeof (this.elements)=="undefined"){
var tree=this.templateTreeGetter();
this.elements=std.dom.extractAttachmentPoints(tree);
std.event.observe(this.elements["buttonAddSeries"],"click",std.event.listener(this,this._onAddSeries));
std.event.observe(this.elements["buttonDelSeries"],"click",std.event.listener(this,this._onDelSeries));
std.event.observe(this.elements["buttonOk"],"click",std.event.listener(this,this._onOk));
std.event.observe(this.elements["buttonCancel"],"click",std.event.listener(this,this._onCancel));
std.event.observe(this.elements["buttonApply"],"click",std.event.listener(this,this._onApply));
std.event.observe(this.elements["inputTitle"],"focus",std.event.listener(this,this._onElementFocus));
std.event.observe(this.elements["inputXLabel"],"focus",std.event.listener(this,this._onElementFocus));
std.event.observe(this.elements["inputYLabel"],"focus",std.event.listener(this,this._onElementFocus));
std.event.observe(this.elements["selectSeries"],"change",std.event.listener(this,this._onSelectSeriesChange));
}
var _8cf=this.elements.root.tagName;
return this.elements.root;
};
editgrid.graph.Editor.prototype.setOkHandler=function(_8d0){
this._okHandler=_8d0;
};
editgrid.graph.Editor.prototype.setCancelHandler=function(_8d1){
this._cancelHandler=_8d1;
};
editgrid.graph.Editor.prototype.setApplyHandler=function(_8d2){
this._applyHandler=_8d2;
};
editgrid.graph.Editor.prototype._onOk=function(){
this._saveCurrentState();
if(typeof (this._okHandler)=="function"){
this._okHandler();
}
};
editgrid.graph.Editor.prototype._onCancel=function(){
if(typeof (this._cancelHandler)=="function"){
this._cancelHandler();
}
};
editgrid.graph.Editor.prototype._onApply=function(){
this._saveCurrentState();
if(typeof (this._applyHandler)=="function"){
this._applyHandler();
}
};
editgrid.graph.Editor.prototype._onAddSeries=function(e){
this._saveCurrentState();
this.graph.addSeries();
this._rebuildSelectSeries();
this.elements["selectSeries"].selectedIndex=this.elements["selectSeries"].length-1;
this._onSelectSeriesChange();
std.event.vanish(e);
};
editgrid.graph.Editor.prototype._onDelSeries=function(e){
this._saveCurrentState();
this.graph.delSeries(this.elements["selectSeries"].value);
this._rebuildSelectSeries();
std.event.vanish(e);
};
editgrid.graph.Editor.prototype.setSheetObject=function(so){
this._so=so;
this.graph=new editgrid.graph.Graph(this._so.graph.json);
var desc=this.getPlotDesc()[this.graph.type];
var _8d7=desc.axisSet||"";
std.dom.clearOptions(this.elements["selectSeries"]);
this.elements["inputTitle"].value=this.graph.title||"";
this.elements["inputShowLegend"].checked=this.graph.showLegend;
this.elements["fieldXLabel"].style.display=(_8d7=="x"||_8d7=="xy"||_8d7=="xyz"||_8d7=="pseudo-3d")?"":"none";
this.elements["fieldYLabel"].style.display=(_8d7=="xy"||_8d7=="xyz"||_8d7=="pseudo-3d")?"":"none";
this.elements["inputXLabel"].value=this.graph.axisLabels.x||"";
this.elements["inputYLabel"].value=this.graph.axisLabels.y||"";
std.dom.clearChildren(this.elements["dataFormHolder"]);
this._dataForm=this._createDataForm(this.graph.type);
this.elements["dataFormHolder"].appendChild(this._dataForm);
this._dataInputs=std.dom.extractAttachmentPoints(this._dataForm,"key");
for(var key in this._dataInputs){
std.event.observe(this._dataInputs[key],"focus",std.event.listener(this,this._onElementFocus));
}
this._rebuildSelectSeries();
};
editgrid.graph.Editor.prototype._rebuildSelectSeries=function(){
std.dom.clearOptions(this.elements["selectSeries"]);
for(var id in this.graph.series){
var _8da=this.graph.series[id];
var name=_8da.name||"Series "+id;
var opt=std.dom.newElement("option",null,{value:id});
std.dom.addOption(this.elements["selectSeries"],opt);
opt.innerHTML=std.string.escapeHTML(name);
}
if(this.elements["selectSeries"].length){
this.elements["selectSeries"].selectedIndex=0;
this._series=this.graph.series[this.elements["selectSeries"].value];
this._fillDataForm();
}
};
editgrid.graph.Editor.prototype._onSelectSeriesChange=function(){
this._saveCurrentState();
this._series=this.graph.series[this.elements["selectSeries"].value];
this._fillDataForm();
};
editgrid.graph.Editor.prototype._onElementFocus=function(e){
this.focusedElement=std.event.getEventTarget(e);
};
editgrid.graph.Editor.prototype._saveCurrentState=function(){
this.graph.title=this.elements["inputTitle"].value;
var _8de=this.getPlotDesc()[this.graph.type].axisSet||"";
this.graph.axisLabels={};
if(_8de=="x"||_8de=="xy"||_8de=="xyz"||_8de=="pseudo-3d"){
this.graph.axisLabels.x=this.elements["inputXLabel"].value;
}
if(_8de=="xy"||_8de=="xyz"||_8de=="pseudo-3d"){
this.graph.axisLabels.y=this.elements["inputYLabel"].value;
}
this.graph.showLegend=this.elements["inputShowLegend"].checked;
if(this._series){
for(var key in this._dataInputs){
this._series.dim[key.substr(1)]=this._dataInputs[key].value;
}
}
};
editgrid.graph.Editor.prototype._fillDataForm=function(){
if(this._series){
for(var key in this._dataInputs){
var data=this._series.dim[key.substr(1)];
this._dataInputs[key].value=typeof (data)=="undefined"?"":data;
}
}
};
editgrid.graph.Editor.prototype._createDataForm=function(_8e2){
var desc=this.getPlotDesc()[_8e2];
var _8e4=new std.dom.Builder();
_8e4.push("table",{className:"GraphDataFields"});
_8e4.push("tbody");
var _8e5=function(name,did,_8e8){
_8e4.push("tr");
if(!_8e8){
_8e4.peek().className="Optional";
}
_8e4.push("th",{innerHTML:name});
_8e4.next("td");
_8e4.push("input",{type:"text"});
_8e4.peek().setAttribute("key","D"+did);
_8e4.pop();
_8e4.pop();
_8e4.pop();
};
_8e5(loc("Name"),-1,false);
for(var i=0;i<desc.dimension.length;i++){
var dim=desc.dimension[i];
if(dim.priority=="required"){
_8e5(loc(dim["name"]),i,true);
}
}
for(var i=0;i<desc.dimension.length;i++){
var dim=desc.dimension[i];
if(dim.priority=="suggested"){
_8e5(loc(dim["name"]),i,false);
}
}
_8e4.pop();
return _8e4.pop();
};
editgrid.graph.Editor.prototype.rangeSelectListener=function(_8eb,_8ec,pos){
if(this.focusedElement){
this.focusedElement.value=editgrid.escapeSheetName(_8eb.name)+"!"+_8ec.getNameAbs();
var key=this.focusedElement.getAttribute("key");
if(key&&(this._dataInputs[key]==this.focusedElement)){
this._series.dim[key.substr(1)]=this.focusedElement.value;
}
}
};
editgrid.graph.Creator=function(_8ef){
this.templateTreeGetter=_8ef;
};
editgrid.graph.Creator.prototype.getRoot=function(){
if(std.lang.undef(this.elements)){
var tree=this.templateTreeGetter();
this.elements=std.dom.extractAttachmentPoints(tree);
this._populateTypeSelect();
std.event.observe(this.elements["buttonCancel"],"click",std.event.listener(this,this._onCancel));
std.event.observe(this.elements["buttonSubmit"],"click",std.event.listener(this,this._onSubmit));
std.event.observe(this.elements["inputDataRange"],"focus",std.event.listener(this,this._onElementFocus));
}
var _8f1=this.elements.root.tagName;
return this.elements.root;
};
editgrid.graph.Creator.prototype._populateTypeSelect=function(){
var _8f2=editgrid.graph.schema.plots.types;
var _8f3=this.elements["selectType"];
var _8f4=this.elements["optionType"];
var _8f5=this.elements["optionTypeTitle"];
var _8f6=this.elements["optionTypeIcon"];
_8f3.innerHTML="";
for(var i=0;i<_8f2.length;i++){
_8f5.innerHTML=_8f2[i].title;
_8f6.style.backgroundPosition=-_8f2[i].iconPos+"px 0";
_8f4.setAttribute("typeId",_8f2[i].id);
var opt=_8f4.cloneNode(true);
std.event.observe(opt,"mouseover",std.lang.bind(this,this._typeOptSetHover,opt,true));
std.event.observe(opt,"mouseout",std.lang.bind(this,this._typeOptSetHover,opt,false));
std.event.observe(opt,"click",std.lang.bind(this,this._onSelectTypeOpt,opt));
std.event.observe(opt,"dblclick",std.lang.bind(this,this._onSubmit));
_8f3.appendChild(opt);
}
this._onSelectTypeOpt(_8f3.firstChild);
};
editgrid.graph.Creator.prototype._populateSubtypeSelect=function(){
var _8f9=this._curTypeOpt.getAttribute("typeId");
var _8fa=editgrid.graph.schema.plots.subtypes;
var _8fb=this.elements["optionSubtype"];
var _8fc=this.elements["optionSubtypeIcon"];
var _8fd=this.elements["optionSubtypeTitle"];
var _8fe=this.elements["optionSubtypeDesc"];
var _8ff=[this.elements["selectSubtype0"],this.elements["selectSubtype1"]];
_8ff[0].innerHTML="";
_8ff[1].innerHTML="";
for(var i=0;i<_8fa.length;i++){
if(_8fa[i].type==_8f9){
_8fc.style.backgroundPosition=(-_8fa[i].iconPos[0])+"px "+(-_8fa[i].iconPos[1])+"px";
_8fd.innerHTML=_8fa[i].title;
_8fe.innerHTML=_8fa[i].desc?_8fa[i].desc:"";
_8fb.setAttribute("subtypeId",_8fa[i].id);
var opt=_8fb.cloneNode(true);
std.event.observe(opt,"mouseover",std.lang.bind(this,this._subtypeOptSetHover,opt,true));
std.event.observe(opt,"mouseout",std.lang.bind(this,this._subtypeOptSetHover,opt,false));
std.event.observe(opt,"click",std.lang.bind(this,this._onSelectSubtypeOpt,opt));
std.event.observe(opt,"dblclick",std.lang.bind(this,this._onSubmit));
_8ff[_8fa[i].col].appendChild(opt);
}
}
this._onSelectSubtypeOpt(_8ff[0].firstChild);
};
editgrid.graph.Creator.prototype.setCancelHandler=function(_902){
this._cancelHandler=_902;
};
editgrid.graph.Creator.prototype.setSubmitHandler=function(_903){
this._submitHandler=_903;
};
editgrid.graph.Creator.prototype._onElementFocus=function(e){
this.focusedElement=std.event.getEventTarget(e);
};
editgrid.graph.Creator.prototype._typeOptSetHover=function(opt,_906){
if(opt!=this._curTypeOpt){
opt.className=_906?"Hover":"";
}
};
editgrid.graph.Creator.prototype._onSelectTypeOpt=function(opt){
if(this._curTypeOpt){
this._curTypeOpt.className="";
}
opt.className="Selected";
this._curTypeOpt=opt;
this._populateSubtypeSelect();
};
editgrid.graph.Creator.prototype._subtypeOptSetHover=function(opt,_909){
if(opt!=this._curSubtypeOpt){
opt.className=_909?"Hover":"";
}
};
editgrid.graph.Creator.prototype._onSelectSubtypeOpt=function(opt){
if(this._curSubtypeOpt){
this._curSubtypeOpt.className="";
}
opt.className="Selected";
this._curSubtypeOpt=opt;
};
editgrid.graph.Creator.prototype._onCancel=function(){
if(typeof (this._cancelHandler)=="function"){
this._cancelHandler();
}
};
editgrid.graph.Creator.prototype._onSubmit=function(){
var _90b=editgrid.graph.schema.plots.subtypes;
var _90c=this._curSubtypeOpt.getAttribute("subtypeId");
for(var i=0;i<_90b.length;i++){
if(_90c==_90b[i].id){
this.plotType=_90b[i].plotType;
var _90e=[];
for(var key in _90b[i].plotProps){
_90e.push(key);
_90e.push(_90b[i].plotProps[key]);
}
this.plotProps=_90e.join("|");
break;
}
}
this.dataRange=this.elements["inputDataRange"].value;
if(typeof (this._submitHandler)=="function"){
this._submitHandler();
}
};
editgrid.graph.Creator.prototype.setDataRange=function(_910,_911){
this.elements["inputDataRange"].value=editgrid.escapeSheetName(_910.name)+"!"+_911.getNameAbs();
};
editgrid.graph.Creator.prototype.rangeSelectListener=function(_912,_913,pos){
if(this.focusedElement){
this.focusedElement.value=editgrid.escapeSheetName(_912.name)+"!"+_913.getNameAbs();
}
};
editgrid.graph.schema={plots:{types:[{id:"area",iconPos:0,title:loc("Area")},{id:"bar",iconPos:30,title:loc("Bar / Column")},{id:"box",iconPos:60,title:loc("Box-Plot")},{id:"bubble",iconPos:90,title:loc("Bubble")},{id:"line",iconPos:180,title:loc("Line")},{id:"minmax",iconPos:210,title:loc("Min Max")},{id:"pie",iconPos:240,title:loc("Pie")},{id:"polar",iconPos:270,title:loc("Polar")},{id:"radar",iconPos:300,title:loc("Radar")},{id:"ring",iconPos:330,title:loc("Ring")},{id:"surface",iconPos:360,title:loc("Surface")},{id:"xy",iconPos:390,title:loc("XY Scatter")}],subtypes:[{type:"area",id:"area-basic",iconPos:[0,0],col:0,plotType:"GogAreaPlot",title:loc("Area Plot"),desc:null},{type:"area",id:"area-stacked",iconPos:[60,0],col:0,plotType:"GogAreaPlot",plotProps:{"type":"stacked"},title:loc("Stacked Area Plot"),desc:null},{type:"area",id:"area-percentage",iconPos:[120,0],col:0,plotType:"GogAreaPlot",plotProps:{"type":"as_percentage"},title:loc("Percentage Area Plot"),desc:null},{type:"bar",id:"bar-v-basic",iconPos:[180,60],col:0,plotType:"GogBarColPlot",title:loc("Column Plot"),desc:loc("Adjacent vertical bars grouped by major and minor categories.")},{type:"bar",id:"bar-v-stacked",iconPos:[240,60],col:0,plotType:"GogBarColPlot",plotProps:{"type":"stacked","overlap-percentage":"100"},title:loc("Stacked Column Plot"),desc:loc("Minor categories stacked in vertical bars grouped by major category.")},{type:"bar",id:"bar-v-percentage",iconPos:[300,60],col:0,plotType:"GogBarColPlot",plotProps:{"type":"as_percentage","overlap-percentage":"100"},title:loc("Percentage Column Plot"),desc:loc("Minor categories stacked as percentages of the minor total, in vertical bars, grouped by major category.")},{type:"bar",id:"bar-h-basic",iconPos:[0,60],col:1,plotType:"GogBarColPlot",plotProps:{"horizontal":"true"},title:loc("Bar Plot"),desc:loc("Adjacent horizontal bars grouped by major and minor categories.")},{type:"bar",id:"bar-h-stacked",iconPos:[60,60],col:1,plotType:"GogBarColPlot",plotProps:{"type":"stacked","overlap-percentage":"100","horizontal":"true"},title:loc("Stacked Bar Plot"),desc:loc("Minor categories stacked in horizontal bars grouped by major category.")},{type:"bar",id:"bar-h-percentage",iconPos:[120,60],col:1,plotType:"GogBarColPlot",plotProps:{"type":"as_percentage","overlap-percentage":"100","horizontal":"true"},title:loc("Percentage Bar Plot"),desc:loc("Minor categories stacked as percentages of the minor total, in horizontal bars, grouped by major category.")},{type:"box",id:"box-basic",iconPos:[0,120],col:0,plotType:"GogBoxPlot",title:loc("Box-Plot"),desc:null},{type:"bubble",id:"bubble-basic",iconPos:[0,180],col:0,plotType:"GogBubblePlot",title:loc("Bubble Plot"),desc:loc("Multi-dimensional points with circle at each point.")},{type:"drop",id:"drop-v",iconPos:[60,240],col:0,plotType:"GogDropBarPlot",title:loc("Vertical Drop Bar"),desc:null},{type:"drop",id:"drop-h",iconPos:[0,240],col:0,plotType:"GogDropBarPlot",plotProps:{"horizontal":"true"},title:loc("Horizontal Drop Bar"),desc:null},{type:"line",id:"line-basic",iconPos:[0,360],col:0,plotType:"GogLinePlot",plotProps:{"default-style-has-markers":"false"},title:loc("Line Plot"),desc:null},{type:"line",id:"line-stacked",iconPos:[60,360],col:0,plotType:"GogLinePlot",plotProps:{"type":"stacked","default-style-has-markers":"false"},title:loc("Stacked Line Plot"),desc:null},{type:"line",id:"line-percentage",iconPos:[120,360],col:0,plotType:"GogLinePlot",plotProps:{"type":"as_percentage","default-style-has-markers":"false"},title:loc("Percentage Line Plot"),desc:null},{type:"line",id:"line-basic-dotted",iconPos:[180,360],col:1,plotType:"GogLinePlot",plotProps:{"default-style-has-markers":"true"},title:loc("Line Plot (Dotted)"),desc:null},{type:"line",id:"line-stacked-dotted",iconPos:[240,360],col:1,plotType:"GogLinePlot",plotProps:{"type":"stacked","default-style-has-markers":"true"},title:loc("Stacked Line Plot (Dotted)"),desc:null},{type:"line",id:"line-percentage-dotted",iconPos:[300,360],col:1,plotType:"GogLinePlot",plotProps:{"type":"as_percentage","default-style-has-markers":"true"},title:loc("Percentage Line Plot (Dotted)"),desc:null},{type:"minmax",id:"minmax-v-basic",iconPos:[0,420],col:0,plotType:"GogMinMaxPlot",title:loc("Vertical Min Max Plot"),desc:null},{type:"minmax",id:"minmax-v-dotted",iconPos:[60,420],col:0,plotType:"GogMinMaxPlot",plotProps:{"default-style-has-markers":"true"},title:loc("Vertical Min Max Plot (Dotted)"),desc:null},{type:"minmax",id:"minmax-h-basic",iconPos:[120,420],col:1,plotType:"GogMinMaxPlot",plotProps:{"horizontal":"true"},title:loc("Horizontal Min Max Plot"),desc:null},{type:"minmax",id:"minmax-h-dotted",iconPos:[180,420],col:1,plotType:"GogMinMaxPlot",plotProps:{"horizontal":"true","default-style-has-markers":"true"},title:loc("Horizontal Min Max Plot (Dotted)"),desc:null},{type:"pie",id:"pie-basic",iconPos:[0,480],col:0,plotType:"GogPiePlot",title:loc("Pie Plot"),desc:loc("Percentage of each contributor.")},{type:"pie",id:"pie-splitted",iconPos:[60,480],col:0,plotType:"GogPiePlot",plotProps:{"default-separation":"0.2"},title:loc("Pie Plot (Splitted)"),desc:loc("Percentage of each contributor with wedges split apart.")},{type:"polar",id:"polar-basic",iconPos:[0,540],col:0,plotType:"GogPolarPlot",title:loc("Polar Plot"),desc:null},{type:"radar",id:"radar-basic",iconPos:[0,600],col:0,plotType:"GogRadarPlot",title:loc("Radar Plot"),desc:null},{type:"radar",id:"radar-dotted",iconPos:[60,600],col:0,plotType:"GogRadarPlot",plotProps:{"default-style-has-markers":"true"},title:loc("Radar Plot (Dotted)"),desc:null},{type:"radar",id:"radar-area",iconPos:[120,600],col:0,plotType:"GogRadarAreaPlot",title:loc("Radar Area Plot"),desc:null},{type:"ring",id:"ring-basic",iconPos:[0,660],col:0,plotType:"GogRingPlot",title:loc("Ring Plot"),desc:loc("Percentage of each contributor displayed in ring for each serie")},{type:"ring",id:"ring-splitted",iconPos:[60,660],col:0,plotType:"GogRingPlot",plotProps:{"default-separation":"0.2"},title:loc("Ring Plot (Splitted)"),desc:loc("Percentage of each contributor displayed in ring for each serie with wedges of the last ring split apart.")},{type:"surface",id:"surface-contour",iconPos:[0,720],col:0,plotType:"GogContourPlot",title:loc("Contour Plot"),desc:null},{type:"xy",id:"xy-dotted",iconPos:[0,780],col:0,plotType:"GogXYPlot",plotProps:{"default-style-has-lines":"false"},title:loc("XY Plot (Dots Only)"),desc:null},{type:"xy",id:"xy-line-dotted",iconPos:[60,780],col:1,plotType:"GogXYPlot",title:loc("XY Line Plot (Dotted)"),desc:loc("Linearly interpolate between multi-dimensional points, with markers at each point.")},{type:"xy",id:"xy-line",iconPos:[120,780],col:1,plotType:"GogXYPlot",plotProps:{"default-style-has-markers":"false"},title:loc("XY Line Plot"),desc:loc("Linearly interpolate between multi-dimensional points.")},{type:"xy",id:"xy-curve",iconPos:[180,780],col:1,plotType:"GogXYPlot",plotProps:{"use-splines":"true","default-style-has-markers":"false"},title:loc("XY Curve Plot"),desc:loc("Interpolate between multi-dimensional points with Bezier splines.")}]}};
editgrid.border={};
editgrid.border.editor={};
editgrid.border.editor.simple={};
editgrid.Border=function(type,_916){
this.type=type||0;
this.color=_916||"";
};
editgrid.Border.BORDER_TOP=0;
editgrid.Border.BORDER_BOTTOM=1;
editgrid.Border.BORDER_LEFT=2;
editgrid.Border.BORDER_RIGHT=3;
editgrid.Border.BORDER_HORIZ=6;
editgrid.Border.BORDER_VERT=7;
editgrid.Border.BORDER_NULL=-1;
editgrid.Border.BORDER_NONE=0;
editgrid.Border.BORDER_THIN=1;
editgrid.Border.BORDER_MEDIUM=2;
editgrid.Border.BORDER_DASHED=3;
editgrid.Border.BORDER_DOTTED=4;
editgrid.Border.BORDER_THICK=5;
editgrid.Border.BORDER_DOUBLE=6;
editgrid.Border.BORDER_HAIR=7;
editgrid.Border.BORDER_MEDIUM_DASH=8;
editgrid.Border.BORDER_DASH_DOT=9;
editgrid.Border.BORDER_MEDIUM_DASH_DOT=10;
editgrid.Border.BORDER_DASH_DOT_DOT=11;
editgrid.Border.BORDER_MEDIUM_DASH_DOT_DOT=12;
editgrid.Border.BORDER_SLANTED_DASH_DOT=13;
editgrid.Border.prototype.equal=function(b){
if(b==null){
return false;
}
return this.type==b.type&&this.color==b.color;
};
editgrid.Border.prototype.getBorderStyle=function(){
var _918="";
switch(this.type){
case BORDER_THIN:
_918="1px solid ";
break;
case BORDER_MEDIUM:
_918="2px solid ";
break;
case BORDER_THICK:
_918="3px solid ";
break;
case BORDER_HAIR:
case BORDER_DASHED:
case BORDER_DASH_DOT:
case BORDER_DASH_DOT_DOT:
_918="1px dashed ";
break;
case BORDER_MEDIUM_DASH:
case BORDER_MEDIUM_DASH_DOT:
case BORDER_MEDIUM_DASH_DOT_DOT:
case BORDER_SLANTED_DASH_DOT:
_918="2px dashed ";
break;
case BORDER_DOTTED:
_918="1px dotted ";
break;
case BORDER_DOUBLE:
_918="3px double ";
break;
}
if(_918){
_918=_918+"#"+this.color;
}
return _918;
};
editgrid.border.editor.Simple=function(_919){
this.config=editgrid.border.editor.simple.schema;
this.onBorderSelect=_919;
this.borderOptions=[];
for(var i=0;i<this.config.borderOptions.length;++i){
this.borderOptions.push(new editgrid.border.editor.BorderOption(this.config.borderOptions[i],{onselect:_919}));
}
};
editgrid.border.editor.Simple.prototype.addButton=function(args){
var _91c=args.parent||this.getRoot();
var text=args.text;
var _91e=args.onclick;
var btn=std.dom.newElement("div",_91c,{className:"ToolboxButtonLite"});
var link=std.dom.newElement("a",btn,{href:"javascript:;",innerHTML:text},{width:"100%",height:"16px",clear:"both"});
std.event.observe(btn,"click",_91e);
return btn;
};
editgrid.border.editor.Simple.prototype.addInputButton=function(args){
var _922=args.parent||this.getRoot();
var text=args.text;
var _924=args.onclick;
var btn=std.dom.newElement("button",_922,{className:"InputButton",innerHTML:text},{width:"100px",height:"20px",clear:"both",cssFloat:"right",styleFloat:"right"});
std.event.observe(btn,"click",_924);
return btn;
};
editgrid.border.editor._createPane=function(){
return std.dom.newElement("div",null,{className:"BorderPane"});
};
editgrid.border.editor.Simple.prototype._createPane=function(){
var _926={};
var _927=new std.dom.Builder();
var rows=4;
_926.root=_927.push("div",null,{className:"BorderPane"});
_927.push("table",{cellPadding:0,cellSpacing:0});
for(var i=0;i<this.borderOptions.length;){
_927.push("tbody");
_927.push("tr");
for(var j=0;j<rows;++j){
var td=_927.push("td");
td.appendChild(this.borderOptions[i].getRoot());
_927.pop();
++i;
}
_927.pop();
_927.pop();
}
_927.pop();
_927.pop();
return _926.root;
};
editgrid.border.editor.Simple.prototype.getRoot=function(){
if(this.element!=null){
return this.element;
}
var _92c=this.element=this._createPane();
_92c.style.width="128px";
return _92c;
};
editgrid.border.editor.BorderOption=function(_92d,args){
this.borderGlyph=new editgrid.border.editor.BorderGlyph(_92d);
var _92f={"onselect":null,"onmouseover":std.event.listener(this,function(){
this.element.style.borderColor="#CFDAE3";
}),"onmouseout":std.event.listener(this,function(){
var _930=this.element.style;
_930.borderColor="";
_930.borderStyle="";
_930.borderWidth="";
}),"onclick":std.event.listener(this,function(){
this.onselect(this.borderGlyph.borders);
})};
args=args||{};
for(var i in _92f){
this[i]=(typeof (args[i])!="undefined"?args[i]:_92f[i]);
}
};
editgrid.border.editor.BorderOption.prototype.getRoot=function(){
if(this._init){
return this.element;
}else{
this._init=true;
}
this.element=this.borderGlyph.getRoot();
if(this.onmouseover){
std.event.observe(this.element,"mouseover",this.onmouseover);
}
if(this.onmouseout){
std.event.observe(this.element,"mouseout",this.onmouseout);
}
if(this.onclick){
std.event.observe(this.element,"click",this.onclick);
}
return this.element;
};
editgrid.border.editor.BorderGlyph=function(_932,args){
this.setBorder(_932);
args=args||{};
this.left=args.x||0;
this.top=args.y||0;
this.width=args.w||26;
this.height=args.h||26;
};
editgrid.border.editor.BorderGlyph.prototype.setBorder=function(_934,_935){
this.config=_934;
this.borders=[];
this.borders[BORDER_TOP]=_934.top!=null?new editgrid.Border(_934.top.type,_934.top.color):null;
this.borders[BORDER_BOTTOM]=_934.bottom!=null?new editgrid.Border(_934.bottom.type,_934.bottom.color):null;
this.borders[BORDER_LEFT]=_934.left!=null?new editgrid.Border(_934.left.type,_934.left.color):null;
this.borders[BORDER_RIGHT]=_934.right!=null?new editgrid.Border(_934.right.type,_934.right.color):null;
this.borders[BORDER_HORIZ]=_934.hori!=null?new editgrid.Border(_934.hori.type,_934.hori.color):null;
this.borders[BORDER_VERT]=_934.vert!=null?new editgrid.Border(_934.vert.type,_934.vert.color):null;
if(_935){
this.redraw();
}
};
editgrid.border.editor.BorderGlyph.prototype.getBorder=function(){
return this.config;
};
editgrid.border.editor.BorderGlyph.prototype.getRoot=function(){
if(this.element!=null){
return this.element;
}
this.element=std.dom.newElement("div",null,{className:"BorderOption"},null);
this.borderElement=std.dom.newElement("div",null,{className:"undraggable BorderOptionContainer"},null);
this.horiElement=std.dom.newElement("div",null,{className:"undraggable BorderOptionHoriLine"},null);
this.vertElement=std.dom.newElement("div",null,{className:"undraggable BorderOptionVertLine"},null);
this.element.appendChild(this.borderElement);
this.borderElement.appendChild(this.vertElement);
this.borderElement.appendChild(this.horiElement);
this.redraw();
return this.element;
};
editgrid.border.editor.BorderGlyph.prototype.setLeft=function(x,_937){
this.left=x;
if(_937){
this.redraw();
}
};
editgrid.border.editor.BorderGlyph.prototype.setTop=function(y,_939){
this.top=y;
if(_939){
this.redraw();
}
};
editgrid.border.editor.BorderGlyph.prototype.setWidth=function(w,_93b){
this.width=w;
if(_93b){
this.redraw();
}
};
editgrid.border.editor.BorderGlyph.prototype.setHeight=function(h,_93d){
this.height=h;
if(_93d){
this.redraw();
}
};
editgrid.border.editor.BorderGlyph.prototype.redraw=function(){
if(this.element==null){
return;
}
var _93e=null;
var _93f=this.element;
var _940=this.borderElement;
var _941=this.vertElement;
var _942=this.horiElement;
var x=this.left;
var y=this.top;
var w=this.width;
var h=this.height;
if(!std.browser.isBorderBox){
w-=4;
h-=4;
}
_93f.style.left=x+"px";
_93f.style.top=y+"px";
_93f.style.width=w+"px";
_940.style.width=w-6+"px";
_93f.style.height=h+"px";
_940.style.height=h-6+"px";
var _947=[];
_947[BORDER_TOP]=[_940,"Top"];
_947[BORDER_BOTTOM]=[_940,"Bottom"];
_947[BORDER_LEFT]=[_940,"Left"];
_947[BORDER_RIGHT]=[_940,"Right"];
_947[BORDER_HORIZ]=[_942,"Top"];
_947[BORDER_VERT]=[_941,"Left"];
var _948;
for(var k in _947){
var el=_947[k][0];
var dir=_947[k][1];
if((_948=this.borders[k])!=null&&(_93e=_948.getBorderStyle())){
el.style["border"+dir]=_93e;
}else{
el.style["border"+dir+"Color"]="";
el.style["border"+dir+"TopWidth"]="";
el.style["border"+dir+"TopStyle"]="";
}
}
};
editgrid.border.editor.simple.schema={borderOptions:[{id:"none",top:{type:BORDER_NONE,color:"000000"},bottom:{type:BORDER_NONE,color:"000000"},left:{type:BORDER_NONE,color:"000000"},right:{type:BORDER_NONE,color:"000000"},hori:{type:BORDER_NONE,color:"000000"},vert:{type:BORDER_NONE,color:"000000"}},{id:"all",top:{type:BORDER_THIN,color:"000000"},bottom:{type:BORDER_THIN,color:"000000"},left:{type:BORDER_THIN,color:"000000"},right:{type:BORDER_THIN,color:"000000"},hori:{type:BORDER_THIN,color:"000000"},vert:{type:BORDER_THIN,color:"000000"}},{id:"round",top:{type:BORDER_THIN,color:"000000"},bottom:{type:BORDER_THIN,color:"000000"},left:{type:BORDER_THIN,color:"000000"},right:{type:BORDER_THIN,color:"000000"}},{id:"thickround",top:{type:BORDER_THICK,color:"000000"},bottom:{type:BORDER_THICK,color:"000000"},left:{type:BORDER_THICK,color:"000000"},right:{type:BORDER_THICK,color:"000000"}},{id:"top",top:{type:BORDER_THIN,color:"000000"}},{id:"bottom",bottom:{type:BORDER_THIN,color:"000000"}},{id:"left",left:{type:BORDER_THIN,color:"000000"}},{id:"right",right:{type:BORDER_THIN,color:"000000"}},{id:"thickbottom",bottom:{type:BORDER_THICK,color:"000000"}},{id:"doublebottom",bottom:{type:BORDER_DOUBLE,color:"000000"}},{id:"topthickbottom",top:{type:BORDER_THIN,color:"000000"},bottom:{type:BORDER_THICK,color:"000000"}},{id:"topdoublebottom",top:{type:BORDER_THIN,color:"000000"},bottom:{type:BORDER_DOUBLE,color:"000000"}}]};
editgrid.border.editor.Extended=function(_94c,_94d){
this.templateTreeGetter=_94c;
this.onBorderSelect=_94d;
var _94e=this.config=editgrid.border.editor.Extended.schema;
var ns=editgrid.border.editor;
var _950=this.buttons={};
var _951=editgrid.border.editor.BorderDirections;
for(var name in _94e.buttons){
_950[name]=new ns.BorderOption(_94e.buttons[name]);
}
var _953=this.toggleButtons={};
var self=this;
for(var name in _94e.toggleButtons){
(function(){
var btn=_953[name]=new ns.BorderToggleOption({config:_94e.toggleButtons[name]});
btn.onclick=function(){
if(self._borderUpdated&&btn.checked==1){
btn.onchange();
return false;
}
return true;
};
})();
}
this.previewPane=new editgrid.border.editor.PreviewPane(editgrid.border.editor.simple.schema.borderOptions[0],{x:10,y:10,w:135,h:80});
};
editgrid.border.editor.Extended.prototype.getRoot=function(){
if(this.element!=null){
return this.element;
}
var _956=this.element=editgrid.border.editor._createPane();
_956.appendChild(this.templateTreeGetter());
var _957=std.dom.extractAttachmentPoints(_956);
_957["borderStylePane"].appendChild(this._buildStylePane());
_957["borderColorPane"].appendChild(this._buildColorPane());
var _958=[];
var _959=this.toggleButtons;
var _95a=this.buttons;
for(var i in _959){
_958[i]=_959[i].getRoot();
}
for(var i in _95a){
_958[i]=_95a[i].getRoot();
}
for(var i in _958){
if(_957[i]){
_957[i].appendChild(_958[i]);
}
}
_957["previewPane"].appendChild(this.previewPane.getRoot());
var _95c=this.config.toggleRelations;
var _95d=this.config.toggleDirections;
for(var i in _95a){
(function(){
var _95e=_95c[i];
_95a[i].onselect=function(){
for(var j in _959){
_959[j].setChecked(_95e[j]);
}
};
})();
}
var _960=this.previewPane.borderGlyph;
_960.getRoot().style.backgroundColor="#ffffff";
var self=this;
for(var i in _959){
(function(name){
_959[name].onchange=function(){
var _963=_959[name].checked;
var _964=new editgrid.Border(_963==-1?BORDER_NULL:_963==0?BORDER_NONE:self.currentBorderType,self.currentBorderColor);
self._updatePreviewBorder(_964,_95d[name]);
self._borderUpdated=false;
};
})(i);
}
var self=this;
std.event.observe(_957["btnOk"],"click",function(e){
if(self.onOk){
self.onOk(self.getCurrentBorder());
}
});
std.event.observe(_957["btnCancel"],"click",function(e){
if(self.onCancel){
self.onCancel();
}
});
std.event.observe(_957["btnApply"],"click",function(e){
if(self.onApply){
self.onApply(self.getCurrentBorder());
}
});
return _956;
};
editgrid.border.editor.Extended.prototype.getCurrentBorder=function(){
var _968=this.config.toggleDirections;
var _969={};
for(var i in _968){
var dir=_968[i];
_969[dir]=this.currentBorder[dir].type==BORDER_NULL?null:this.currentBorder[dir];
}
return _969;
};
editgrid.border.editor.Extended.prototype.reset=function(){
this.currentBorderType=BORDER_THIN;
this.currentBorderColor="000000";
this.currentBorder=new editgrid.Border(this.currentBorderType,this.currentBorderColor);
this._borderUpdated=false;
this.borderStyleSelect.setSelectedByBorderType(this.currentBorderType);
this.colorPicker.setColor(null);
var _96c=this.toggleButtons;
for(var i in _96c){
_96c[i].setChecked(-1);
}
};
editgrid.border.editor.Extended.prototype._updatePreviewBorder=function(_96e,_96f){
this.currentBorder[_96f]=_96e;
this.previewPane.manipulator.setBorder(_96e,_96f);
this._borderUpdated=true;
};
editgrid.border.editor.Extended.prototype._buildStylePane=function(){
var sel=new editgrid.border.editor.BorderStyleSelect();
var self=this;
sel.onselectchange=function(){
var _972=self.currentBorderType=sel.selectedOption.borderType;
var _973=self.currentBorderColor;
self._updatePreviewBorder(new editgrid.Border(_972,_973));
};
var _974=sel.getRoot();
this.borderStyleSelect=sel;
return _974;
};
editgrid.border.editor.Extended.prototype._buildColorPane=function(){
var self=this;
var _976=this.colorPicker=new editgrid.colorpicker.Pulldown(14,14,loc("Automatic"),[0,0,0]);
var _977=_976.getRoot();
_976.onPick=function(rgb){
if(rgb==null){
rgb=[0,0,0];
}
self.currentBorderColor=std.conv.intToRGB(rgb[0]<<16|rgb[1]<<8|rgb[2]);
self._updateCurrentBorderColor();
self._updatePreviewBorder(new editgrid.Border(self.currentBorderType,self.currentBorderColor));
};
return _977;
};
editgrid.border.editor.Extended.prototype._updateCurrentBorderColor=function(){
};
editgrid.border.editor.PreviewPane=function(_979,arg){
var _97b=this.borderGlyph=new editgrid.border.editor.BorderGlyph(_979);
arg=arg||{};
if(arg.x){
_97b.setLeft(arg.x,false);
}
if(arg.y){
_97b.setTop(arg.y,false);
}
if(arg.w){
_97b.setWidth(arg.w,false);
}
if(arg.h){
_97b.setHeight(arg.h,false);
}
_97b.redraw();
};
editgrid.border.editor.PreviewPane.prototype.getRoot=function(){
if(this.element){
return this.element;
}
var _97c=this.element=std.dom.newElement("div",null,{className:"undraggable"},{width:"100%",height:"100px",backgroundColor:"#f0f0f0",border:"solid 1px #ccc"});
var _97d=this.manipulator=new editgrid.border.editor.BorderGlyphManipulator(this.borderGlyph);
var _97e=_97d.getBorderGlyphRoot();
_97c.appendChild(_97e);
return _97c;
};
editgrid.border.editor.Extended.schema={buttons:{borderToggleNone:editgrid.border.editor.simple.schema.borderOptions[0],borderToggleAll:editgrid.border.editor.simple.schema.borderOptions[1],borderToggleRound:editgrid.border.editor.simple.schema.borderOptions[2]},toggleButtons:{borderToggleN:editgrid.border.editor.simple.schema.borderOptions[4],borderToggleS:editgrid.border.editor.simple.schema.borderOptions[5],borderToggleW:editgrid.border.editor.simple.schema.borderOptions[6],borderToggleE:editgrid.border.editor.simple.schema.borderOptions[7],borderToggleHori:{id:"horizontal",hori:{type:BORDER_THIN,color:"000000"}},borderToggleVert:{id:"vertical",vert:{type:BORDER_THIN,color:"000000"}}},toggleRelations:{borderToggleNone:{borderToggleN:0,borderToggleS:0,borderToggleW:0,borderToggleE:0,borderToggleHori:0,borderToggleVert:0},borderToggleAll:{borderToggleN:1,borderToggleS:1,borderToggleW:1,borderToggleE:1,borderToggleHori:1,borderToggleVert:1},borderToggleRound:{borderToggleN:1,borderToggleS:1,borderToggleW:1,borderToggleE:1,borderToggleHori:-1,borderToggleVert:-1}},toggleDirections:{borderToggleN:BORDER_TOP,borderToggleS:BORDER_BOTTOM,borderToggleW:BORDER_LEFT,borderToggleE:BORDER_RIGHT,borderToggleHori:BORDER_HORIZ,borderToggleVert:BORDER_VERT}};
editgrid.border.editor.BorderToggleOption=function(args){
this.checked=args.checked||false;
this.borderGlyph=new editgrid.border.editor.BorderGlyph(args.config,args.onselect);
};
editgrid.border.editor.BorderToggleOption.prototype.getRoot=function(){
if(this._init){
return this.element;
}else{
this._init=true;
}
var self=this;
var _981=this.element=this.borderGlyph.getRoot();
std.event.observe(_981,"click",function(e){
if(self.onclick){
if(!self.onclick(e)){
return;
}
}
self.setChecked(self.checked<=0?1:0);
});
std.event.observe(_981,"mouseover",function(){
self.hover=true;
self.redraw();
});
std.event.observe(_981,"mouseout",function(){
self.hover=false;
self.redraw();
});
return _981;
};
editgrid.border.editor.BorderToggleOption.prototype.redraw=function(){
var _983=this.element.style;
_983.borderColor=this.checked==1?"#BBCBD8":this.hover?"#BBCBD8":"";
std.dom.opacity(this.element,this.checked==-1?0.7:1);
};
editgrid.border.editor.BorderToggleOption.prototype.isChecked=function(){
return this.checked;
};
editgrid.border.editor.BorderToggleOption.prototype.setChecked=function(_984){
this.checked=_984;
this.redraw();
this.onchange({src:this});
};
editgrid.border.editor.BorderStyleSelect=function(args){
args=args||{};
this.style=args.style;
this.options=[];
this.optionsByBorderType={};
this.selectedOption=null;
};
editgrid.border.editor.BorderStyleSelect.prototype.getRoot=function(){
if(this.element!=null){
return this.element;
}
var _986=this.element=std.dom.newElement("div",null,{className:"undraggable BorderStyleSelect"},this.style);
var _987=this.leftPane=std.dom.newElement("div",_986,null,{styleFloat:"left",cssFloat:"left"});
var _988=this.rightPane=std.dom.newElement("div",_986,null,{styleFloat:"right",cssFloat:"right"});
this._addOptions(_987,[BORDER_NONE,BORDER_THIN,BORDER_MEDIUM,BORDER_THICK]);
this._addOptions(_988,[BORDER_DOTTED,BORDER_DASHED,BORDER_MEDIUM_DASH,BORDER_DOUBLE]);
return this.element;
};
editgrid.border.editor.BorderStyleSelect.prototype._addOptions=function(_989,_98a){
var _98b=this.options;
var _98c=this.optionsByBorderType;
for(var i=0;i<_98a.length;++i){
var _98e=_98a[i];
var _98f=_98b[_98b.length]=new editgrid.border.editor.BorderStyleOption(_98e);
_98f.onclick=std.lang.bind(this,function(_990){
this.setSelected(_990.src);
if(this.onselectchange){
this.onselectchange();
}
});
_989.appendChild(_98f.getRoot());
_98c[_98e]=_98f;
}
};
editgrid.border.editor.BorderStyleSelect.prototype.setSelectedIndex=function(idx){
this.setSelected(this.options[idx]);
};
editgrid.border.editor.BorderStyleSelect.prototype.setSelected=function(opt){
if(this.selectedOption==opt){
return;
}
this.selectedOption=opt;
var _993=this.options;
for(var i=0;i<_993.length;++i){
var _995=_993[i];
if(opt==_995){
this.selectedIndex==i;
}
_995.setSelected(opt==_995);
}
};
editgrid.border.editor.BorderStyleSelect.prototype.setSelectedByBorderType=function(_996){
this.setSelected(this.optionsByBorderType[_996]);
};
editgrid.border.editor.BorderStyleOption=function(_997){
this.borderType=_997;
this.selected=false;
};
editgrid.border.editor.BorderStyleOption.prototype.getRoot=function(){
if(this.element!=null){
return this.element;
}
var _998=this.borderType;
var _999=new editgrid.Border(_998,"333333");
var _99a=_999.getBorderStyle();
var _99b=[];
if(_998==BORDER_NONE){
_99b.marginTop="-5px";
}else{
_99b.borderTop=_99a;
_99b.marginTop=_99a.indexOf("3px")!=-1?"1px":_99a.indexOf("2px")!=-1?"0px":_99a.indexOf("1px")!=-1?"-1px":"0px";
}
var _99c=this.element=std.dom.newElement("div",null,{className:"BorderStyleOption"});
var _99d=this.borderElement=std.dom.newElement("div",_99c,{className:"BorderStyleOptionInner",innerHTML:_998==BORDER_NONE?loc("(none)"):"",unselectable:"on"},_99b);
var self=this;
std.event.observe(_99c,"mouseover",function(e){
std.css.includeClass(self.element,"BorderStyleOption-hover");
});
std.event.observe(_99c,"mouseout",function(e){
std.css.excludeClass(self.element,"BorderStyleOption-hover");
});
std.event.observe(_99c,"click",function(e){
if(self.onclick){
self.onclick({src:self,DOMEvent:e});
}
});
return _99c;
};
editgrid.border.editor.BorderStyleOption.prototype.getSelected=function(){
return this.selected;
};
editgrid.border.editor.BorderStyleOption.prototype.setSelected=function(_9a2){
if(this.selected==_9a2){
return;
}
this.selected=_9a2;
if(_9a2){
std.css.includeClass(this.element,"BorderStyleOption-selected");
if(this.onselect){
this.onselect({src:this});
}
}else{
std.css.excludeClass(this.element,"BorderStyleOption-selected");
}
};
editgrid.border.editor.BorderStyleOption.prototype.setColor=function(_9a3){
var _9a4=this.borderElement.style;
_9a4.color=_9a4.borderColor="#"+_9a3;
};
editgrid.border.editor.BorderDirections=[BORDER_TOP,BORDER_LEFT,BORDER_BOTTOM,BORDER_RIGHT,BORDER_HORIZ,BORDER_VERT];
editgrid.border.editor.BorderGlyphManipulator=function(_9a5){
var _9a5=this.borderGlyph=_9a5;
var self=this;
var _9a7=["setLeft","setTop","setWidth","setHeight"];
for(var i=0;i<_9a7.length;++i){
(function(){
var name=_9a7[i];
var f=_9a5[name];
_9a5[name]=function(_9ab,_9ac){
f(_9ab,_9ac);
if(_9ac){
self.redraw();
}
};
})();
}
};
editgrid.border.editor.BorderGlyphManipulator.prototype.getBorderGlyphRoot=function(args){
var _9ae=this.focusRects={};
var _9af=this.borderGlyph;
var _9b0=this.borderGlyph.getRoot();
args=args||{};
var size=this.size=args.size||6;
var _9b2=editgrid.border.editor.BorderDirections;
return _9b0;
};
editgrid.border.editor.BorderGlyphManipulator.prototype.setBorder=function(_9b3,_9b4,stop){
var _9b6=this.borderGlyph;
var _9b7=_9b3.getBorderStyle();
if(_9b4==null){
_9b4=this.selectedDirection;
}
if(_9b7==""){
_9b7="solid 1px #ccc";
}
switch(_9b4){
case BORDER_LEFT:
_9b6.borderElement.style.borderLeft=_9b7;
break;
case BORDER_TOP:
_9b6.borderElement.style.borderTop=_9b7;
break;
case BORDER_RIGHT:
_9b6.borderElement.style.borderRight=_9b7;
break;
case BORDER_BOTTOM:
_9b6.borderElement.style.borderBottom=_9b7;
break;
case BORDER_HORIZ:
_9b6.horiElement.style.borderTop=_9b7;
break;
case BORDER_VERT:
_9b6.vertElement.style.borderLeft=_9b7;
break;
}
if(std.browser.isOpera){
_9b6.borderElement.style.display="none";
_9b6.borderElement.style.display="block";
}
};
editgrid.Style=function(){
this.mask=0;
this.bits=0;
};
editgrid.Style.fromHash=function(hash){
var _9b9=new editgrid.Style();
if(hash.mask!==undefined){
_9b9.mask=hash.mask;
}
if(hash.bits!==undefined){
_9b9.bits=hash.bits;
}
if(hash.bold!==undefined){
_9b9.setBold(hash.bold);
}
if(hash.italic!==undefined){
_9b9.setItalic(hash.italic);
}
if(hash.underline!==undefined){
_9b9.setUnderline(hash.underline);
}
if(hash.strike!==undefined){
_9b9.setStrike(hash.strike);
}
if(hash.wordWrap!==undefined){
_9b9.setWordWrap(hash.wordWrap);
}
if(hash.textAlign!==undefined){
_9b9.setTextAlign(hash.textAlign);
}
if(hash.verticalAlign!==undefined){
_9b9.setVerticalAlign(hash.verticalAlign);
}
if(hash.backColor!==undefined){
_9b9.setBackColor(hash.backColor);
}
if(hash.fontColor!==undefined){
_9b9.setFontColor(hash.fontColor);
}
if(hash.fontName!==undefined){
_9b9.setFontName(hash.fontName);
}
if(hash.fontSize!==undefined){
_9b9.setFontSize(hash.fontSize);
}
if(hash.format!==undefined){
_9b9.setFormat(hash.format);
}
if(hash.borders!==undefined){
for(var i in hash.borders){
_9b9.setBorder(i,hash.borders[i].type,hash.borders[i].color);
}
}
return _9b9;
};
editgrid.Style.LEFT_ALIGN="left";
editgrid.Style.RIGHT_ALIGN="right";
editgrid.Style.CENTER_ALIGN="center";
editgrid.Style.NO_ALIGN="none";
editgrid.Style.TOP_VALIGN="top";
editgrid.Style.BOTTOM_VALIGN="bottom";
editgrid.Style.CENTER_VALIGN="middle";
editgrid.Style.prototype.BORDER_TOP=BORDER_TOP;
editgrid.Style.prototype.BORDER_BOTTOM=BORDER_BOTTOM;
editgrid.Style.prototype.BORDER_LEFT=BORDER_LEFT;
editgrid.Style.prototype.BORDER_RIGHT=BORDER_RIGHT;
editgrid.Style.prototype.BORDER_VERT=BORDER_VERT;
editgrid.Style.prototype.BORDER_HORIZ=BORDER_HORIZ;
editgrid.Style.prototype._BORDER_MAPPING={"top":BORDER_TOP,"bottom":BORDER_BOTTOM,"left":BORDER_LEFT,"right":BORDER_RIGHT,"horizontal":BORDER_HORIZ,"vertical":BORDER_VERT,0:0,1:1,2:2,3:3,6:6,7:7};
editgrid.Style.prototype.isBold=function(){
return this.mask&1?(this.bits&1?true:false):undefined;
};
editgrid.Style.prototype.isItalic=function(){
return this.mask&2?(this.bits&2?true:false):undefined;
};
editgrid.Style.prototype.isUnderline=function(){
return this.mask&4?(this.bits&4?true:false):undefined;
};
editgrid.Style.prototype.isWordWrap=function(){
return this.mask&32?(this.bits&32?true:false):undefined;
};
editgrid.Style.prototype.isStrike=function(){
return this.mask&64?(this.bits&64?true:false):undefined;
};
editgrid.Style.prototype.getTextAlign=function(){
if(!((this.mask>>7)&7)){
return undefined;
}
switch((this.bits>>7)&7){
case 0:
return editgrid.Style.NO_ALIGN;
case 1:
return editgrid.Style.LEFT_ALIGN;
case 2:
return editgrid.Style.CENTER_ALIGN;
case 3:
return editgrid.Style.RIGHT_ALIGN;
}
};
editgrid.Style.prototype.getVerticalAlign=function(){
if(!((this.mask>>11)&7)){
return undefined;
}
switch((this.bits>>11)&7){
case 0:
return editgrid.Style.NO_VALIGN;
case 1:
return editgrid.Style.TOP_VALIGN;
case 2:
return editgrid.Style.CENTER_VALIGN;
case 3:
return editgrid.Style.BOTTOM_VALIGN;
}
};
editgrid.Style.prototype.getBackColor=function(){
if(this.backColor===undefined){
return undefined;
}
if(this.backColor==-1||this.backColor===null){
return null;
}
return std.conv.rgbToInt(this.backColor);
};
editgrid.Style.prototype.getFontColor=function(){
if(this.fontColor===undefined){
return undefined;
}
if(this.fontColor==-1||this.fontColor===null){
return null;
}
return std.conv.rgbToInt(this.fontColor);
};
editgrid.Style.prototype.getFontName=function(){
return this.fontName;
};
editgrid.Style.prototype.getFontSize=function(){
return this.fontSize;
};
editgrid.Style.prototype.getFormat=function(){
return this.format;
};
editgrid.Style.prototype.getBorder=function(side){
var s=this._BORDER_MAPPING[side];
if(s===undefined){
throw new Error("Unknown border side ["+side+"].");
}
var _9bd=this._getBorder(s);
return {type:_9bd.type,color:std.conv.rgbToInt(_9bd.color)};
};
editgrid.Style.prototype._getBorder=function(side){
if(this.borders==null){
this.borders=[];
}
var _9bf=this.borders[side];
if(_9bf==null){
this.borders[side]=_9bf=new editgrid.Border();
}
return _9bf;
};
editgrid.Style.prototype._setBits=function(bits,_9c1){
if(_9c1==null){
this.mask&=~bits;
}else{
this.mask|=bits;
if(_9c1){
this.bits|=bits;
}else{
this.bits&=~bits;
}
}
};
editgrid.Style.prototype.setBold=function(b){
this._setBits(1,b);
return this;
};
editgrid.Style.prototype.setItalic=function(i){
this._setBits(2,i);
return this;
};
editgrid.Style.prototype.setUnderline=function(u){
this._setBits(4,u);
return this;
};
editgrid.Style.prototype.setWordWrap=function(w){
this._setBits(32,w);
return this;
};
editgrid.Style.prototype.setStrike=function(s){
this._setBits(64,s);
return this;
};
editgrid.Style.prototype.setTextAlign=function(_9c7){
if(_9c7==null){
this.mask&=~(7<<7);
}else{
this.mask|=(7<<7);
if(_9c7==editgrid.Style.LEFT_ALIGN){
this.bits=(this.bits|(1<<7))&~(2<<7);
}else{
if(_9c7==editgrid.Style.CENTER_ALIGN){
this.bits=(this.bits&~(1<<7))|(2<<7);
}else{
if(_9c7==editgrid.Style.RIGHT_ALIGN){
this.bits=(this.bits|(3<<7));
}else{
if(_9c7==editgrid.Style.NO_ALIGN){
this.bits&=~(7<<7);
}
}
}
}
}
return this;
};
editgrid.Style.prototype.setVerticalAlign=function(_9c8){
if(_9c8==null){
this.mask&=~(7<<11);
}else{
this.mask|=(7<<11);
if(_9c8==editgrid.Style.TOP_VALIGN){
this.bits=(this.bits|(1<<11))&~(2<<11);
}else{
if(_9c8==editgrid.Style.CENTER_VALIGN){
this.bits=(this.bits&~(2<<11))|(2<<11);
}else{
if(_9c8==editgrid.Style.BOTTOM_VALIGN){
this.bits|=(7<<11);
}else{
if(_9c8==editgrid.Style.NO_VALIGN){
this.bits&=~(7<<11);
}
}
}
}
}
};
editgrid.Style.prototype.setBackColor=function(c){
c=std.conv.anyRGBToInt(c);
this.backColor=c==undefined?undefined:((c==null||c==-1)?-1:std.conv.intToRGB(c));
return this;
};
editgrid.Style.prototype.setFontColor=function(c){
c=std.conv.anyRGBToInt(c);
this.fontColor=c==undefined?undefined:((c==null||c==-1)?-1:std.conv.intToRGB(c));
return this;
};
editgrid.Style.prototype.setFontName=function(name){
this.fontName=name;
return this;
};
editgrid.Style.prototype.setFontSize=function(size){
this.fontSize=size;
return this;
};
editgrid.Style.prototype.setFormat=function(_9cd){
this.format=_9cd;
return this;
};
editgrid.Style.prototype.setBorder=function(side,type,_9d0){
var s=this._BORDER_MAPPING[side];
if(s===undefined){
throw new Error("Unknown border side ["+side+"].");
}
this._setBorder(s,type,std.conv.anyRGBToInt(_9d0));
return this;
};
editgrid.Style.prototype._setBorder=function(side,type,_9d4){
var _9d5=this._getBorder(side);
_9d5.type=type;
_9d5.color=_9d4==undefined?undefined:(_9d4==-1?-1:std.conv.intToRGB(_9d4));
};
editgrid.Style.prototype.apply=function(s){
var r=new editgrid.Style();
r.bits=this.bits;
if(s.mask!==undefined){
r.bits=r.bits&~s.mask|s.bits&s.mask;
}
r.backColor=s.backColor===undefined?this.backColor:(s.backColor==-1?undefined:s.backColor);
r.fontName=s.fontName===undefined?this.fontName:s.fontName;
r.fontSize=s.fontSize===undefined?this.fontSize:s.fontSize;
r.fontColor=s.fontColor===undefined?this.fontColor:(s.fontColor==-1?undefined:s.fontColor);
r.format=s.format===undefined?this.format:s.format;
r.borders=this.borders;
if(this.borders!=null){
r.borders=[];
for(var i=0;i<this.borders.length;++i){
r.borders[i]=this.borders[i];
}
}
if(s.borders!=null){
if(r.borders==null){
r.borders=[];
}
for(var i=0;i<s.borders.length;++i){
if(s.borders[i]!=null){
r.borders[i]=new editgrid.Border(s.borders[i].type,s.borders[i].color);
}
}
}
return r;
};
editgrid.Style.prototype.equal=function(s){
return s.bits==this.bits&&s.backColor==this.backColor&&s.fontName==this.fontName&&s.fontSize==this.fontSize&&s.fontColor==this.fontColor&&s.format==this.format&&this._borderArrEqual(this.borders,s.borders);
};
editgrid.Style.prototype.isImmuteTo=function(s){
if(s.isBold()!==undefined&&s.isBold()!==this.isBold()){
return false;
}
if(s.isItalic()!==undefined&&s.isItalic()!==this.isItalic()){
return false;
}
if(s.isUnderline()!==undefined&&s.isUnderline()!==this.isUnderline()){
return false;
}
if(s.isStrike()!==undefined&&s.isStrike()!==this.isStrike()){
return false;
}
if(s.isWordWrap()!==undefined&&s.isWordWrap()!==this.isWordWrap()){
return false;
}
if(s.getFontName()!==undefined&&s.getFontName()!==this.getFontName()){
return false;
}
if(s.getFontColor()!==undefined&&s.getFontColor()!==this.getFontColor()){
return false;
}
if(s.getFontSize()!==undefined&&s.getFontSize()!==this.getFontSize()){
return false;
}
if(s.getBackColor()!==undefined&&s.getBackColor()!==this.getBackColor()){
return false;
}
if(s.getFormat()!==undefined&&s.getFormat()!==this.getFormat()){
return false;
}
if(s.getTextAlign()!==undefined&&s.getTextAlign()!==this.getTextAlign()){
return false;
}
if(s.borders!=null){
return false;
}
return true;
};
editgrid.Style.prototype.clone=function(_9db){
var _9dc=new editgrid.Style();
_9dc.bits=_9db&&this.bits===undefined?0:this.bits;
_9dc.mask=_9db?16383:this.mask;
_9dc.backColor=_9db&&this.backColor===undefined?null:this.backColor;
_9dc.fontName=_9db&&this.fontName===undefined?null:this.fontName;
_9dc.fontSize=_9db&&this.fontSize===undefined?null:this.fontSize;
_9dc.fontColor=_9db&&this.fontColor===undefined?null:this.fontColor;
_9dc.format=_9db&&this.format===undefined?null:this.format;
_9dc.borders=this._cloneBorders(_9db);
return _9dc;
};
editgrid.Style.prototype._cloneBorders=function(_9dd){
if(this.borders){
var _9de=[];
_9de[BORDER_TOP]=this._cloneBorder(this.borders[BORDER_TOP],_9dd);
_9de[BORDER_BOTTOM]=this._cloneBorder(this.borders[BORDER_BOTTOM],_9dd);
_9de[BORDER_LEFT]=this._cloneBorder(this.borders[BORDER_LEFT],_9dd);
_9de[BORDER_RIGHT]=this._cloneBorder(this.borders[BORDER_RIGHT],_9dd);
_9de[BORDER_VERT]=this._cloneBorder(this.borders[BORDER_VERT],_9dd);
_9de[BORDER_HORIZ]=this._cloneBorder(this.borders[BORDER_HORIZ],_9dd);
return _9de;
}
};
editgrid.Style.prototype._cloneBorder=function(_9df,_9e0){
return _9e0&&_9df===undefined?new editgrid.Border(0):new editgrid.Border(_9df.type,_9df.color);
};
editgrid.Style.prototype._borderArrEqual=function(b1,b2){
return this._borderEqual(b1[BORDER_TOP],b2[BORDER_TOP])&&this._borderEqual(b1[BORDER_LEFT],b2[BORDER_LEFT])&&this._borderEqual(b1[BORDER_RIGHT],b2[BORDER_RIGHT])&&this._borderEqual(b1[BORDER_BOTTOM],b2[BORDER_BOTTOM]);
};
editgrid.Style.prototype._borderEqual=function(b1,b2){
if(b1==b2){
return true;
}
if(b1==null||b2==null){
return false;
}
return b1.equal(b2);
};
editgrid.Style.prototype._connectCell=function(cell){
this._cell=cell;
for(var name in this){
if(name.indexOf("set")==0){
this["__org_"+name]=this[name];
this[name]=std.lang.bind(this,function(name,v1,v2,v3){
var hash={};
this["__org_"+name](v1,v2,v3);
if(name=="setBorder"){
hash["borders"]={};
hash["borders"][v1]={type:v2,color:v3};
}else{
hash[name.charAt(3).toLowerCase()+name.substring(4)]=v1;
}
std.async.call(cell,cell.applyStyle,editgrid.Style.fromHash(hash));
},name);
}
}
return this;
};
editgrid.CellCommentStore=function(){
this.entries={};
this.index={};
};
editgrid.CellCommentStore.prototype.insert=function(id,idx,data){
this._index(this.entries[id]={idx:idx,data:data},idx);
};
editgrid.CellCommentStore.prototype.remove=function(id){
var _9f0=this.entries[id];
if(this._unindex(_9f0)){
delete this.entries[id];
return _9f0.data;
}else{
null.assert;
}
};
editgrid.CellCommentStore.prototype.relocate=function(id,idx){
var _9f3=this.entries[id];
if(this._unindex(_9f3)){
this._index(_9f3,_9f3.idx=idx);
}else{
null.assert;
}
};
editgrid.CellCommentStore.prototype.getById=function(id,idx){
var _9f6=this.entries[id];
return _9f6?_9f6.data:null;
};
editgrid.CellCommentStore.prototype.getByIdx=function(idx){
var list=this.index[idx];
return list?list.entry.data:null;
};
editgrid.CellCommentStore.prototype.getIdx=function(id){
var _9fa=this.entries[id];
return _9fa?_9fa.idx:null;
};
editgrid.CellCommentStore.prototype.existsId=function(id){
return this.entries[id]?true:false;
};
editgrid.CellCommentStore.prototype.existsIdx=function(idx){
return this.index[idx]?true:false;
};
editgrid.CellCommentStore.prototype.update=function(id,data){
this.entries[id].data=data;
};
editgrid.CellCommentStore.prototype._index=function(_9ff,idx){
this.index[idx]={entry:_9ff,next:this.index[idx]};
};
editgrid.CellCommentStore.prototype._unindex=function(_a01){
var key=this.index[_a01.idx];
if(!key){
return false;
}
if(key.entry===_a01){
this.index[_a01.idx]=key.next;
return true;
}
while(key.next&&key.next.entry!==_a01){
key=key.next;
}
if(key.next){
key.next=key.next.next;
return true;
}
return false;
};
editgrid.CellPage=function(opt){
this.index=opt.index;
this.rIndex=opt.rIndex;
this.cIndex=opt.cIndex;
this.range=opt.range;
this.dirty=0;
this.messy=0;
this.box=null;
this.nodes={};
this.backColorBox=null;
this.backColorNodes={};
this.lastVisible=0;
};
editgrid.CellPage.HIDDEN_NODE=1;
editgrid.RegionQuadTree=function(du,dv,_a06){
this.du=du;
this.dv=dv;
this.nu=Math.pow(du,_a06);
this.nv=Math.pow(dv,_a06);
this.n=this.nu*this.nv;
this.mul=this.nu;
var nu=this.nu,nv=this.nv;
var cu=1,cv=1;
var _a0b=[];
for(var _a0c=0;nu>1||nv>1;++_a0c){
var _a0d=new Object();
_a0d.layer=_a0c;
_a0d.nu=nu;
_a0d.nv=nv;
_a0d.cu=cu;
_a0d.cv=cv;
_a0d.mul=nu;
_a0b.push(_a0d);
nu/=du;
nv/=dv;
cu*=du;
cv*=dv;
}
this.layers=[];
for(var i=_a0b.length-1;i>=0;--i){
this.layers.push(_a0b[i]);
}
this.cache={};
};
editgrid.RegionQuadTree.prototype.insert=function(u,v,data){
this.cache={};
var _a12=this.layers.length-1;
this.layers[_a12][v*this.mul+u]=data;
while(--_a12>=0){
var _a13=this.layers[_a12];
var _a14=((v/_a13.cv)|0)*_a13.mul+((u/_a13.cu)|0);
_a13[_a14]?++_a13[_a14]:_a13[_a14]=1;
}
};
editgrid.RegionQuadTree.prototype.remove=function(u,v,data){
this.cache={};
var _a18=this.layers.length-1;
this.layers[_a18][v*this.mul+u]=null;
while(--_a18>=0){
var _a19=this.layers[_a18];
var _a1a=((v/_a19.cv)|0)*_a19.mul+((u/_a19.cu)|0);
if(--_a19[_a1a]==0){
delete _a19[_a1a];
}
}
};
editgrid.RegionQuadTree.prototype.find=function(u,v){
return this.layers[this.layers.length-1][v*this.mul+u];
};
editgrid.RegionQuadTree.prototype.findAll=function(u1,v1,u2,v2){
var key=this.n*(this.nv*u1+v1)+(this.nv*u2+v2);
var hit=this.cache[key];
if(hit){
return hit;
}
u2--;
v2--;
var du=this.du,dv=this.dv;
var cu=this.nu/du,cv=this.nv/dv;
var _a27=[0];
for(var _a28=0;_a28<this.layers.length;++_a28){
var _a29=this.layers[_a28];
var cu=_a29.cu,cv=_a29.cv,mul=_a29.mul;
var _a2b=[];
var _a2c=_a27.length;
for(var h=0;h<_a2c;++h){
var _a2e=_a27[h]%(mul/du);
var _a2f=(_a27[h]-_a2e)/(mul/du);
var uu1=Math.max((u1/cu)|0,_a2e*du);
var vv1=Math.max((v1/cv)|0,_a2f*dv);
var uu2=Math.min((u2/cu+1)|0,_a2e*du+du);
var vv2=Math.min((v2/cv+1)|0,_a2f*dv+dv);
for(var iu=uu1;iu<uu2;++iu){
for(var iv=vv1;iv<vv2;++iv){
if(_a29[iv*mul+iu]){
_a2b.push(iv*mul+iu);
}
}
}
}
_a27=_a2b;
if(_a2b.length==0){
break;
}
}
var _a29=this.layers[this.layers.length-1];
var _a2c=_a27.length;
for(var h=0;h<_a2c;++h){
_a27[h]=_a29[_a27[h]];
}
return this.cache[key]=_a27;
};
editgrid.CellPageBuffer=function(_a36){
this.manager=_a36.manager;
this.sheetView=_a36.sheetView;
this.node=std.dom.newDiv(null,{},{overflow:"visible"});
this.pageMap={};
this.pageSpIndex=new editgrid.RegionQuadTree(4,2,8);
this.pageLoadingCount=0;
this.pageLoading={};
this.pendingPageLoad={};
this.processDelay=0;
this.process=std.lang.bind(this,this._process);
this.loading=false;
if(_a36.backColor){
this.backColorNode=std.dom.newDiv(null,{},{position:"absolute",left:"0px",top:"0px",overflow:"visible"});
}
this.onLoad=_a36.onLoad;
this.onLoadComplete=_a36.onLoadComplete;
this.viewport=new editgrid.Rect(0,0,0,0);
this.lastUpdate=null;
this.updateTimer=null;
this.updateDelay=50;
this.delayedUpdate=std.lang.bind(this,this._delayedUpdate);
this.prebufRow=_a36.prebufRow||0;
this.prebufCol=_a36.prebufCol||0;
this.prebufDelay=1000;
this.prebufMaxItr=4;
this.prebufTimer=null;
this.prebufItr=0;
this.prebuf=std.lang.bind(this,this._prebuf);
this.gcMaxRatio=5;
this.gcMinRatio=1.5;
this.gcDelay=3000;
this.numPageViewport=0;
this.numPageTotal=0;
this.gcTimer=null;
this.gcProcess=std.lang.bind(this,this._gcProcess);
};
editgrid.CellPageBuffer.prototype.updateViewport=function(_a37,_a38,_a39,_a3a,_a3b,_a3c,_a3d){
var last=this.lastUpdate;
if(!_a3d&&last!=null&&last.rowDir==_a38&&last.colDir==_a39&&last.fxMode==_a3a&&last.vAlign==_a3b&&last.gridLinesVisible==_a3c&&last.viewport.equals(_a37)){
if(this.updateTimer==null){
this._fireLoadComplete();
}
return;
}
var _a3f=(_a38!=0||_a39!=0)?_a37.adjust(_a38<0&&_a37.u1>0?-1:0,_a39<0&&_a37.v1>0?-1:0,_a38>0?1:0,_a39>0?1:0):_a37;
var diff=_a3f.subtract(this.viewport);
var _a41=this._findUnloadedInRects(diff);
if(editgrid.isDebug){
var _a42=this.manager.maxPageCol;
console.log("updateViewport(): ",_a37.toString(),"rowDir: ",_a38,"colDir: ",_a39);
console.log("loading pages: ",std.list.map(_a41,function(idx){
return "("+((idx/_a42)|0)+","+(idx%_a42)+")";
}));
}
this.lastUpdate={viewport:_a37,rowDir:_a38,colDir:_a39,fxMode:_a3a,vAlign:_a3b,gridLinesVisible:_a3c};
if(_a41.length==0||!this.loading){
if(this.updateTimer){
clearTimeout(this.updateTimer);
this.updateTimer=null;
}
if(this.prebufTimer){
clearTimeout(this.prebufTimer);
this.prebufTimer=null;
}
this._loadPageList(_a41,{fxMode:_a3a,vAlign:_a3b,gridLinesVisible:_a3c});
var now=(new Date()).getTime();
var _a45=this.viewport.subtract(_a37);
var _a46=this.findPagesInRects(_a45);
for(var idx in _a46){
_a46[idx].lastVisible=now;
}
this.viewport=_a37;
this.numPageViewport=_a37.area();
if(this._gcRequired()){
if(this.gcTimer==null){
this.gcTimer=setTimeout(this.gcProcess,this.gcDelay);
}
}else{
if(this.gcTimer){
clearTimeout(this.gcTimer);
this.gcTimer=null;
}
}
if(this.numPageViewport>0&&(this.prebufRow||this.prebufCol)){
this.prebufItr=1;
this.prebufTimer=setTimeout(this.prebuf,this.prebufDelay);
}
}else{
if(this.updateTimer){
clearTimeout(this.updateTimer);
}
this.updateTimer=setTimeout(this.delayedUpdate,this.updateDelay);
}
};
editgrid.CellPageBuffer.prototype.refreshViewport=function(_a48,_a49,_a4a){
var _a4b=this._findUnloadedInRects([this.viewport]);
if(_a4b.length){
this._loadPageList(_a4b,{fxMode:_a48,vAlign:_a49,gridLinesVisible:_a4a});
}
};
editgrid.CellPageBuffer.prototype._delayedUpdate=function(){
var args=this.lastUpdate;
this.updateViewport(args.viewport,args.rowDir,args.colDir,args.fxMode,args.vAlign,args.gridLinesVisible,true);
};
editgrid.CellPageBuffer.prototype._prebuf=function(){
if(this.prebufItr<=this.prebufMaxItr){
if(!this.loading){
if(editgrid.isDebug){
console.log("Prebuffering "+this.prebufItr);
}
var load=[];
var _a4e=this.prebufItr;
for(var _a4f=0;_a4f<=1;_a4f++){
if((_a4f&&this.prebufRow)||(!_a4f&&this.prebufCol)){
load.push(this.viewport.neighbour(_a4f,-_a4e,true));
load.push(this.viewport.neighbour(_a4f,_a4e,true));
}
}
var _a50=this._findUnloadedInRects(load);
this._loadPageList(_a50,{fxMode:this.lastUpdate.fxMode,vAlign:this.lastUpdate.vAlign,gridLinesVisible:this.lastUpdate.gridLinesVisible});
this.prebufItr++;
}
if(this.prebufItr<=this.prebufMaxItr){
this.prebufTimer=setTimeout(this.prebuf,this.prebufDelay*this.prebufItr);
}
}
};
editgrid.CellPageBuffer.prototype._gcRequired=function(){
return (this.numPageViewport==0&&this.numPageTotal>0)||(this.numPageTotal/this.numPageViewport>this.gcMaxRatio);
};
editgrid.CellPageBuffer.prototype._gcProcess=function(){
if(this._gcRequired()){
if(editgrid.isDebug){
console.time("gc");
}
var _a51=this.manager.boundRect.subtract(this.viewport);
var _a52=this.findPagesInRects(_a51);
var list=[];
for(var idx in _a52){
list.push(_a52[idx]);
}
list=list.sort(function(a,b){
if(a.lastVisible<b.lastVisible){
return -1;
}
if(a.lastVisible>b.lastVisible){
return 1;
}
return 0;
});
var num=this.numPageViewport==0?list.length:((this.numPageTotal-this.numPageViewport*this.gcMinRatio)|0);
var _a58={};
for(var i=0;i<num;i++){
_a58[list[i].index]=true;
}
this._removePages(_a58);
if(editgrid.isDebug){
console.timeEnd("gc");
console.log("GC-ed pages: ",num);
}
}
this.gcTimer=null;
};
editgrid.CellPageBuffer.prototype._findUnloadedInRects=function(_a5a){
if(_a5a.length==undefined){
null.assert;
}
var list=[];
var _a5c=this.manager.maxPageCol;
var _a5d=this.manager.boundRect;
for(var i=0;i<_a5a.length;i++){
var rect=_a5d.intersect(_a5a[i]);
if(rect==null){
continue;
}
var pts=rect.points();
for(var j=0;j<pts.length;j++){
var idx=pts[j].u*_a5c+pts[j].v;
if(!this.pageMap[idx]||this.pageMap[idx].dirty){
var _a63=this.manager.pageRangeFromIndex(idx);
if(!this.sheetView.isRangeHidden(_a63.rowFr,_a63.colFr,_a63.rowTo,_a63.colTo)){
list.push(idx);
}
}
}
}
return list;
};
editgrid.CellPageBuffer.prototype.attach=function(_a64){
if(this.backColorNode){
_a64.appendChild(this.backColorNode);
}
_a64.appendChild(this.node);
};
editgrid.CellPageBuffer.prototype.detach=function(){
if(this.node.parentNode){
this.node.parentNode.removeChild(this.node);
}
if(this.backColorNode&&this.backColorNode.parentNode){
this.backColorNode.parentNode.removeChild(this.backColorNode);
}
};
editgrid.CellPageBuffer.prototype.shiftRowCol=function(_a65,fr,to,_a68,_a69){
var _a6a=to>fr;
var _a6b=to-fr;
var _a6c=_a6a?fr:to;
var _a6d=_a6a?to:fr;
var _a6e=_a65?this.manager.rowsPerPage:this.manager.colsPerPage;
var _a6f=new editgrid.RangeRef(_a65?_a6c:0,_a65?0:_a6c,this.manager.maxRows,this.manager.maxCols);
var _a70=this.manager.pageRectOfCellRange(_a6f);
var _a71=this.findPagesInRects(_a70);
if(std.hash.empty(_a71)){
return;
}
var _a72=_a70.intersect(_a68)||new editgrid.Rect();
var _a73=this.findPagesInRects(_a72);
if(_a72.area()){
var _a74=this.manager.cellRangeOfPageRect(_a72);
var _a75=_a65?_a74.rowFr:_a74.colFr;
var _a76=_a65?_a74.rowTo:_a74.colTo;
var _a77=_a65?_a74.colFr:_a74.rowFr;
var _a78=_a65?_a74.colTo:_a74.rowTo;
var _a79,_a7a;
if(_a6a){
_a79=_a76-(_a6d-_a6c)+1;
_a7a=_a76;
if(_a79<_a6d){
_a79=_a6d;
}
if(_a79<_a75){
_a79=_a75;
}
}else{
_a79=_a75<=_a6c?_a6c:_a75;
_a7a=_a75<=_a6c?_a6d-1:_a75+(_a6d-_a6c)-1;
if(_a7a>_a76){
_a7a=_a76;
}
}
if(_a79<=_a7a){
if(editgrid.isDebug){
console.log("collapse: "+_a79+","+_a7a);
}
if(_a65){
this._removePageNodes(_a79,_a77,_a7a,_a78);
}else{
this._removePageNodes(_a77,_a79,_a78,_a7a);
}
}
var _a7b={};
var sign=_a6a?-1:1;
var _a7d=_a6a?_a76:Math.max(_a6c,_a75);
var _a7e=_a6a?Math.max(_a6d,_a75):_a76;
if(editgrid.isDebug){
if(_a7d*sign<=_a7e*sign){
console.log("shift: "+_a7d+"-"+_a7e+","+_a6b);
}
}
for(var _a7f=_a77;_a7f<=_a78;++_a7f){
for(var _a80=_a7d;_a80*sign<=_a7e*sign;_a80+=sign){
var _a81=_a80-_a6b;
var _a82=_a65?this.manager.getCellInfo(_a81,_a7f):this.manager.getCellInfo(_a7f,_a81);
var _a83=_a65?this.manager.getCellInfo(_a80,_a7f):this.manager.getCellInfo(_a7f,_a80);
var _a84=this.pageMap[_a82.index];
var _a85=this.pageMap[_a83.index];
if(_a85&&_a85.box){
if(_a84&&_a84.nodes[_a82.offset]){
if(_a85.nodes[_a83.offset]){
null.assert;
}
var node=_a85.nodes[_a83.offset]=_a84.nodes[_a82.offset];
_a84.nodes[_a82.offset]=null;
if(node!=editgrid.CellPage.HIDDEN_NODE){
var _a87=node.dom;
if(_a84!=_a85){
_a85.box.appendChild(_a84.box.removeChild(node.dom));
}
var r,c;
if(_a65){
r=_a80;
c=_a7f;
}else{
r=_a7f;
c=_a80;
}
_a87.style.zIndex=editgrid.CellUtil.calcZIndex(r,c,this.sheetView.sheet._getCellAndLocalChange(r,c)==null,this.sheetView.sheet.mergeHasCell(r,c));
if(_a7b[_a80]==null){
var _a8a=this.manager.pageRangeFromIndex(_a83.index);
_a7b[_a80]=this.sheetView.getRowColsSize(_a65,_a8a[_a65?"rowFr":"colFr"],_a80-1);
}
if(_a65){
_a87.style.top=_a7b[_a80]+"px";
}else{
_a87.style.left=_a7b[_a80]+"px";
}
}
_a84.messy=1;
_a85.messy=1;
}else{
_a85.dirty=1;
}
}else{
if(_a84&&_a84.nodes[_a82.offset]){
var node=_a84.nodes[_a82.offset];
if(node!=editgrid.CellPage.HIDDEN_NODE){
_a84.box.removeChild(node.dom);
}
_a84.nodes[_a82.offset]=null;
_a84.messy=1;
}
}
}
}
var _a8b={};
var _a8c={};
var _a8d,_a8e;
if(_a65){
_a8d="top";
_a8e="height";
}else{
_a8d="left";
_a8e="width";
}
for(var idx in _a73){
var page=_a73[idx];
if(page.box){
var _a91=_a65?page.range.rowFr:page.range.colFr;
var _a92=_a65?page.range.rowTo:page.range.colTo;
if(_a8b[_a91]==null){
_a8b[_a91]=this.sheetView.getRowColsSize(_a65,0,_a91-1);
}
if(_a8c[_a91]==null){
_a8c[_a91]=this.sheetView.getRowColsSize(_a65,_a91,_a92);
}
var _a93=_a8b[_a91]+"px";
var _a94=_a8c[_a91]+"px";
page.box.style[_a8d]=_a93;
page.box.style[_a8e]=_a94;
if(page.backColorBox){
page.backColorBox.style[_a8d]=_a93;
page.backColorBox.style[_a8e]=_a94;
}
}
}
if(_a6a){
var _a95=Math.max(_a75,_a6c);
var _a96=Math.min(_a76,_a6d-1);
if(_a95<=_a96){
if(editgrid.isDebug){
console.log("reveal: "+_a95+","+_a96);
}
var _a97=_a65?new editgrid.RangeRef(_a95,_a77,_a96,_a78):new editgrid.RangeRef(_a77,_a95,_a78,_a96);
var _a98=this.findPagesInRects(this.manager.pageRectOfCellRange(_a97));
for(var idx in _a98){
var page=_a98[idx];
if(page.box){
var _a91=_a65?page.range.rowFr:page.range.colFr;
var _a92=_a65?page.range.rowTo:page.range.colTo;
var _a99=_a91<_a95?_a95:_a91;
var _a9a=_a92>_a96?_a96:_a92;
if(editgrid.isDebug){
console.log("fill page "+idx+": "+_a99+","+_a9a);
}
this._refillPage(idx,_a99,_a9a,_a65);
}else{
}
}
}
}
}
var _a9b=_a70.subtract(_a68);
var _a9c=this.findPagesInRects(_a9b);
this._removePages(_a9c);
this.updateViewport(_a68,0,0,_a69.fxMode,_a69.vAlign,_a69.gridLinesVisible);
};
editgrid.CellPageBuffer.prototype.resizeRowCol=function(_a9d,_a9e,_a9f,_aa0,_aa1,_aa2){
var _aa3=_a9e[0];
var _aa4=new editgrid.RangeRef(_a9d?_aa3:0,_a9d?0:_aa3,this.manager.maxRows,this.manager.maxCols);
var _aa5=this.manager.pageRectOfCellRange(_aa4);
var _aa6=this.findPagesInRects(_aa5);
if(std.hash.empty(_aa6)){
return;
}
var _aa7=_aa5.intersect(_aa1)||new editgrid.Rect();
var _aa8=this.findPagesInRects(_aa7);
if(_aa7.area()){
var _aa9=this.manager.cellRangeOfPageRect(_aa7);
var _aaa=_a9d?_aa9.rowFr:_aa9.colFr;
var _aab=_a9d?_aa9.rowTo:_aa9.colTo;
var _aac=[];
for(var line=_aaa;line<=_aab;line++){
_aac[line]={size:null,pos:null};
}
for(var i=0;i<_a9e.length;i++){
var _aaf=Math.max(_a9e[i],_aaa);
var _ab0=Math.min(_a9f[i],_aab);
for(var line=_aaf;line<=_ab0;line++){
_aac[line].size=_aa0[i];
}
}
var _ab1=this.sheetView.getRowColsSize(_a9d,0,_aaa-1);
for(var line=_aaa;line<=_aab;line++){
_aac[line].pos=_ab1;
if(size==null){
_ab1+=this.sheetView.getRowColSize(_a9d,line);
}else{
_ab1+=_aac[line].size;
}
}
var _ab3={};
var _ab4={};
for(var idx in _aa8){
var page=_aa8[idx];
var _ab7=page.range;
if(this.sheetView.isRangeHidden(_ab7.rowFr,_ab7.colFr,_ab7.rowTo,_ab7.colTo)){
_ab4[idx]=page;
}else{
_ab3[idx]=page;
}
}
for(var idx in _ab3){
var page=_ab3[idx];
var _aaf=_a9d?page.range.rowFr:page.range.colFr;
var _ab0=_a9d?page.range.rowTo:page.range.colTo;
var _ab8=_a9d?page.range.colFr:page.range.rowFr;
var _ab9=_a9d?page.range.colTo:page.range.rowTo;
if(page.box){
if(_a9d){
page.box.style.top=_aac[_aaf].pos+"px";
}else{
page.box.style.left=_aac[_aaf].pos+"px";
}
if(page.backColorBox){
var _aba=page.backColorBox.style;
if(_a9d){
_aba.top=_aac[_aaf].pos+"px";
_aba.height=this.sheetView.getRowColsSize(true,_aaf,_ab0)+"px";
}else{
_aba.left=_aac[_aaf].pos+"px";
_aba.width=this.sheetView.getRowColsSize(false,_aaf,_ab0)+"px";
}
}
var _abb=[];
var _abc=[];
for(var _abd=_ab8;_abd<=_ab9;_abd++){
_abc[_abd]=this.sheetView.isRowColHidden(!_a9d,_abd);
}
for(var line=_aaf;line<=_ab0;line++){
_abb[line]=this.sheetView.isRowColHidden(_a9d,line);
}
var _abe=_ab0;
for(var line=_aaf;line<=_ab0;line++){
for(var _abd=_ab8;_abd<=_ab9;_abd++){
var size=_aac[line].size;
if(_abe<line||size!=null){
var info=_a9d?this.manager.getCellInfo(line,_abd):this.manager.getCellInfo(_abd,line);
var node=page.nodes[info.offset];
if(node){
if(node!=editgrid.CellPage.HIDDEN_NODE){
var _ac1=node.dom.style;
if(_abe<line){
var pos=_aac[line].pos-_aac[_aaf].pos;
if(_a9d){
_ac1.top=pos+"px";
}else{
_ac1.left=pos+"px";
}
}
_ac1.visibility=size!=0?"":"hidden";
if(size!=null){
if(_abe>line){
_abe=line;
}
if(_a9d){
_ac1.height=size+"px";
}else{
_ac1.width=size+"px";
}
}
if(size==0){
page.box.removeChild(node.dom);
page.nodes[info.offset]=editgrid.CellPage.HIDDEN_NODE;
page.messy=1;
}
}else{
if(!_abb[line]&&!_abc[_abd]){
page.dirty=1;
}
}
}
}
}
}
}
}
}
this._removePages(_ab4);
var _ac3=_aa5.subtract(_aa1);
var _ac4=this.findPagesInRects(_ac3);
this._removePages(_ac4);
};
editgrid.CellPageBuffer.prototype._removePageNodes=function(_ac5,_ac6,_ac7,_ac8){
for(var r=_ac5;r<=_ac7;++r){
for(var c=_ac6;c<=_ac8;++c){
var info=this.manager.getCellInfo(r,c);
var page=this.pageMap[info.index];
var node;
if(page&&(node=page.nodes[info.offset])){
var _ace=node.dom;
if(_ace){
page.box.removeChild(_ace);
}
page.nodes[info.offset]=null;
page.messy=1;
}
}
}
};
editgrid.CellPageBuffer.prototype._refillPage=function(_acf,_ad0,_ad1,_ad2){
var _ad3,_ad4,_ad5,_ad6;
var _ad7=std.dom.newDiv();
var _ad8=this.manager.pageRangeFromIndex(_acf);
var _ad9=this.sheetView;
if(_ad2){
_ad3=_ad0;
_ad5=_ad1;
_ad4=_ad8.colFr;
_ad6=_ad8.colTo;
}else{
_ad4=_ad0;
_ad6=_ad1;
_ad3=_ad8.rowFr;
_ad5=_ad8.rowTo;
}
_ad7.innerHTML=editgrid.CellUtil.renderBlankCellPageHTML(_ad9,_ad3,_ad4,_ad5,_ad6,false);
var page=this.pageMap[_acf];
var _adb=new editgrid.RangeRef(_ad3,_ad4,_ad5,_ad6);
var info=this.manager.getPageTraverseInfo(_adb)[0];
var _add=info.pitch;
var p=info.offset;
for(r=_ad3;r<=_ad5;++r,p+=_add){
for(c=_ad4;c<=_ad6;++c,++p){
if(_ad9.isRowColHidden(true,r)||_ad9.isRowColHidden(false,c)){
if(page.nodes[p]&&page.nodes[p]!=editgrid.CellPage.HIDDEN_NODE){
page.box.removeChild(page.nodes[p].dom);
}
page.nodes[p]=editgrid.CellPage.HIDDEN_NODE;
}else{
var node=_ad7.firstChild;
if(page.nodes[p]&&page.nodes[p]!=editgrid.CellPage.HIDDEN_NODE){
page.box.replaceChild(node,page.nodes[p].dom);
}else{
page.box.appendChild(node);
}
page.nodes[p]={dom:node};
}
}
}
page.messy=1;
};
editgrid.CellPageBuffer.prototype._clonePageNodes=function(page){
var box;
var _ae2;
var _ae3=0;
if(!page.messy){
box=page.box.cloneNode(true);
_ae2=this._buildNodeIndex(box,page.range);
}else{
box=page.box.cloneNode(false);
_ae2={};
var cnt=this.manager.rowsPerPage*this.manager.colsPerPage;
for(var pos=0;pos<cnt;pos++){
if(page.nodes[pos]!=editgrid.CellPage.HIDDEN_NODE){
var _ae6=page.nodes[pos].dom.cloneNode(true);
box.appendChild(_ae6);
_ae2[pos]={dom:_ae6};
}else{
_ae2[pos]=editgrid.CellPage.HIDDEN_NODE;
_ae3=1;
}
}
}
return {box:box,nodes:_ae2,messy:_ae3};
};
editgrid.CellPageBuffer.prototype._buildNodeIndex=function(box,_ae8){
var _ae9=this.sheetView;
var _aea={};
var _aeb=0;
if(std.browser.isFF){
var _aec=box.childNodes;
var _aed=0;
for(var r=_ae8.rowFr;r<=_ae8.rowTo;++r){
for(var c=_ae8.colFr;c<=_ae8.colTo;++c){
if(_ae9.isRowColHidden(true,r)||_ae9.isRowColHidden(false,c)){
_aea[_aeb++]=editgrid.CellPage.HIDDEN_NODE;
}else{
_aea[_aeb++]={dom:_aec[_aed++]};
}
}
}
}else{
var node=box.firstChild;
for(var r=_ae8.rowFr;r<=_ae8.rowTo;++r){
for(var c=_ae8.colFr;c<=_ae8.colTo;++c){
if(_ae9.isRowColHidden(true,r)||_ae9.isRowColHidden(false,c)){
_aea[_aeb++]=editgrid.CellPage.HIDDEN_NODE;
}else{
_aea[_aeb++]={dom:node};
node=node.nextSibling;
}
}
}
}
return _aea;
};
editgrid.CellPageBuffer.prototype._newPage=function(_af1){
if(this.pageMap[_af1]){
null.assert;
}
var _af2=this.manager.pageRangeFromIndex(_af1);
var rect=this.manager.pageRectOfCellRange(_af2);
var page=this.pageMap[_af1]=new editgrid.CellPage({index:_af1,rIndex:rect.u1,cIndex:rect.v1,range:_af2});
this.pageSpIndex.insert(rect.u1,rect.v1,page);
this.numPageTotal++;
return page;
};
editgrid.CellPageBuffer.prototype._removePages=function(_af5){
for(var idx in _af5){
var page=this.pageMap[idx];
if(page){
if(page.box){
this.node.removeChild(page.box);
}
if(page.backColorBox){
this.backColorNode.removeChild(page.backColorBox);
page.backColorBox=null;
}
delete this.pageMap[idx];
this.pageSpIndex.remove(page.rIndex,page.cIndex);
this.numPageTotal--;
}
}
};
editgrid.CellPageBuffer.prototype._fireLoadComplete=function(){
if(this.onLoadComplete){
this.onLoadComplete(this.sheetView);
}
};
editgrid.CellPageBuffer.prototype.findPageByIndex=function(_af8){
return this.pageMap[_af8];
};
editgrid.CellPageBuffer.prototype.removePageByIndices=function(_af9){
this._removePages(_af9);
};
editgrid.CellPageBuffer.prototype.findPagesInRects=function(_afa){
var res={};
if(typeof (_afa.length)=="undefined"){
var _afc=this.pageSpIndex.findAll(_afa.u1,_afa.v1,_afa.u2,_afa.v2);
for(var j=0;j<_afc.length;j++){
res[_afc[j].index]=_afc[j];
}
}else{
for(var i=0;i<_afa.length;i++){
var rect=_afa[i];
var _afc=this.pageSpIndex.findAll(rect.u1,rect.v1,rect.u2,rect.v2);
for(var j=0;j<_afc.length;j++){
res[_afc[j].index]=_afc[j];
}
}
}
return res;
};
editgrid.CellPageBuffer.prototype.reset=function(){
this.removePageByIndices(this.pageMap);
};
editgrid.CellPageBuffer.prototype._loadPageList=function(_b00,_b01){
if(this.pageLoadingCount==0&&_b00.length==0){
this._fireLoadComplete();
return;
}
for(var i=0;i<_b00.length;++i){
if(!this.pageLoading[_b00[i]]){
this.pageLoading[_b00[i]]=true;
this.pageLoadingCount++;
if(this.onLoading){
this.onLoading(this.sheetView,this.manager.pageRangeFromIndex(_b00[i]));
}
}
}
for(var i=0;i<_b00.length;++i){
var idx=_b00[i];
var page=this.pageMap[idx];
if(!page||page.dirty){
var _b05=this.manager.findFirstLoadedPageByIndex(idx);
if(_b05){
var data=this._clonePageNodes(_b05);
this._setLoaded(idx,data.box,data.nodes,data.messy);
}else{
this._load(idx,_b01);
}
}else{
if(page.box){
this._setLoaded(idx);
}
}
}
};
editgrid.CellPageBuffer.prototype._setLoaded=function(idx,box,_b09,_b0a){
if(this.pageLoading[idx]){
delete this.pageLoading[idx];
this.pageLoadingCount--;
}
var page=this.pageMap[idx];
if(page&&page.dirty){
var _b0c={};
_b0c[page.index]=true;
this._removePages(_b0c);
page=null;
}
if(!page){
page=this._newPage(idx);
}
if(box){
if(page.box){
this.node.replaceChild(box,page.box);
}else{
this.node.appendChild(box);
}
page.box=box;
page.nodes=_b09;
if(_b0a){
page.messy=1;
}
}
if(this.backColorNode){
this._loadBackColorNode(page);
}
if(editgrid.isDebug){
console.log("loaded page","("+page.rIndex+","+page.cIndex+")");
}
if(this.onLoad){
this.onLoad(this.sheetView,page);
}
if(this.pageLoadingCount==0){
this._fireLoadComplete();
}
};
editgrid.CellPageBuffer.prototype._load=function(idx,_b0e){
if(this.pendingPageLoad[idx]==null){
this.pendingPageLoad[idx]={options:_b0e};
}else{
this.pendingPageLoad[idx].options=_b0e;
}
if(!this.loading){
this.loading=true;
setTimeout(this.process,this.processDelay);
}
};
editgrid.CellPageBuffer.prototype._process=function(){
var _b0f=this.pendingPageLoad;
this.pendingPageLoad={};
this.loading=false;
var _b10=this.sheetView;
var _b11=this.sheetView.loader;
var _b12=this.manager;
for(var k in _b0f){
var _b14=_b12.pageRangeFromIndex(k);
var box=_b11.load(_b14,_b0f[k].options);
var _b16=this._buildNodeIndex(box,_b14);
this._setLoaded(k,box,_b16,_b10.intersectsHiddenRowCol(true,_b14.rowFr,_b14.rowTo)||_b10.intersectsHiddenRowCol(false,_b14.colFr,_b14.colTo));
}
};
editgrid.CellPageBuffer.prototype._loadBackColorNode=function(page){
var _b18=this.sheetView;
var _b19=page.range;
if(page.backColorBox==null){
page.backColorBox=std.dom.newDiv(null,{},{position:"absolute",overflow:"visible"});
}
this.backColorNode.appendChild(page.backColorBox);
var x=_b19.colFr==0?0:_b18.getRowColsSize(false,0,_b19.colFr-1);
var y=_b19.rowFr==0?0:_b18.getRowColsSize(true,0,_b19.rowFr-1);
var w=_b18.getRowColsSize(false,_b19.colFr,_b19.colTo);
var h=_b18.getRowColsSize(true,_b19.rowFr,_b19.rowTo);
var box=page.backColorBox.style;
box.left=x+"px";
box.top=y+"px";
box.width=w+"px";
box.height=h+"px";
box.backgroundColor="#ffffff";
};
editgrid.CellPageBuffer.prototype.invalidateAll=function(){
for(var k in this.pageMap){
this.pageMap[k].dirty=true;
}
if(this.prebufTimer){
clearTimeout(this.prebufTimer);
this.prebufTimer=null;
}
};
editgrid.Rect=function(u1,v1,u2,v2){
if(typeof (u1)=="undefined"){
u1=0;
v1=0;
u2=0;
v2=0;
}
this.u1=u1;
this.v1=v1;
this.u2=u2;
this.v2=v2;
};
editgrid.Rect.prototype.area=function(){
return (this.u2-this.u1)*(this.v2-this.v1);
};
editgrid.Rect.prototype.intersect=function(rect){
var u1=this.u1>rect.u1?this.u1:rect.u1;
var u2=this.u2<rect.u2?this.u2:rect.u2;
if(u1>u2){
return null;
}
var v1=this.v1>rect.v1?this.v1:rect.v1;
var v2=this.v2<rect.v2?this.v2:rect.v2;
if(v1>v2){
return null;
}
return new editgrid.Rect(u1,v1,u2,v2);
};
editgrid.Rect.prototype.subtract=function(rect){
if(this.u2<=rect.u1||this.v2<=rect.v1||this.u1>=rect.u2||this.v1>=rect.v2){
return [this.clone()];
}
if(!rect.area()){
return [this.clone()];
}
var out=[];
var _b2b=this.v1;
var _b2c=this.v2;
var _b2d=null;
if(this.v1<rect.v1&&this.v2>rect.v1){
out.push(new editgrid.Rect(this.u1,this.v1,this.u2,rect.v1));
_b2b=rect.v1;
}
if(this.v1<rect.v2&&this.v2>rect.v2){
_b2d=new editgrid.Rect(this.u1,rect.v2,this.u2,this.v2);
_b2c=rect.v2;
}
if(this.u1<rect.u1&&this.u2>rect.u1){
out.push(new editgrid.Rect(this.u1,_b2b,rect.u1,_b2c));
}
if(this.u1<rect.u2&&this.u2>rect.u2){
out.push(new editgrid.Rect(rect.u2,_b2b,this.u2,_b2c));
}
if(_b2d){
out.push(_b2d);
}
return out;
};
editgrid.Rect.prototype.adjust=function(u1,v1,u2,v2){
var u1=this.u1+u1;
var v1=this.v1+v1;
var u2=this.u2+u2;
var v2=this.v2+v2;
return (u1<=u2&&v1<=v2)?new editgrid.Rect(u1,v1,u2,v2):new editgrid.Rect();
};
editgrid.Rect.prototype.neighbour=function(isU,size){
var s1,s2;
if(size>0){
var side=isU?this.u2:this.v2;
s1=side;
s2=side+size;
}else{
if(size<0){
var side=isU?this.u1:this.v1;
s1=side-size;
s2=side;
}else{
null.assert;
}
}
return isU?new editgrid.Rect(s1,this.v1,s2,this.v2):new editgrid.Rect(this.u1,s1,this.u2,s2);
};
editgrid.Rect.prototype.equals=function(rect){
return (this.u1==rect.u1&&this.v1==rect.v1&&this.u2==rect.u2&&this.v2==rect.v2);
};
editgrid.Rect.prototype.enclose=function(rect){
return (this.u1<=rect.u1&&this.v1<=rect.v1&&this.u2>=rect.u2&&this.v2>=rect.v2);
};
editgrid.Rect.prototype.clone=function(){
return new editgrid.Rect(this.u1,this.v1,this.u2,this.v2);
};
editgrid.Rect.prototype.points=function(){
var pts=[];
for(var u=this.u1;u<this.u2;u++){
for(var v=this.v1;v<this.v2;v++){
pts.push({u:u,v:v});
}
}
return pts;
};
editgrid.Rect.prototype.toString=function(){
return "p1("+this.u1+","+this.v1+"), p2("+this.u2+","+this.v2+")";
};
editgrid.CellPageManager=function(_b3c){
this.sheetView=_b3c.sheetView;
this.pageBuffers=[];
this.pageRangeCache={};
this.colsPerPage=this.DEFAULT_COLS_PER_PAGE;
this.rowsPerPage=this.DEFAULT_ROWS_PER_PAGE;
this.maxCols=256;
this.maxRows=65536;
this.maxPageCol=Math.ceil(this.maxCols/this.colsPerPage);
this.maxPageRow=Math.ceil(this.maxRows/this.rowsPerPage);
this.boundRect=new editgrid.Rect(0,0,this.maxPageRow,this.maxPageCol);
};
editgrid.CellPageManager.prototype.DEFAULT_COLS_PER_PAGE=4;
editgrid.CellPageManager.prototype.DEFAULT_ROWS_PER_PAGE=8;
editgrid.CellPageManager.prototype.createPageBuffer=function(_b3d){
_b3d.manager=this;
_b3d.sheetView=this.sheetView;
var buf=new editgrid.CellPageBuffer(_b3d);
this.pageBuffers.push(buf);
return buf;
};
editgrid.CellPageManager.prototype.findFirstLoadedPageByIndex=function(_b3f){
for(var i=0;i<this.pageBuffers.length;++i){
var page=this.pageBuffers[i].findPageByIndex(_b3f);
if(page&&page.box&&!page.dirty){
return page;
}
}
return null;
};
editgrid.CellPageManager.prototype._getPageIndicesInRange=function(_b42,_b43){
var _b44=Math.floor(_b42.colFr/this.colsPerPage);
var _b45=Math.floor(_b42.colTo/this.colsPerPage);
var _b46=Math.floor(_b42.rowFr/this.rowsPerPage);
var _b47=Math.floor(_b42.rowTo/this.rowsPerPage);
var _b48=_b43?{}:[];
for(var cc=_b44;cc<=_b45;++cc){
for(var rr=_b46;rr<=_b47;++rr){
rowFr=this.rowsPerPage*rr;
colFr=this.colsPerPage*cc;
if(rowFr>=65536||colFr>=256){
continue;
}
rowTo=this.rowsPerPage*(rr+1)-1;
colTo=this.colsPerPage*(cc+1)-1;
if(rowTo<0||colTo<0){
continue;
}
var _b4b=rr*this.maxPageCol+cc;
if(_b43){
_b48[_b4b]=true;
}else{
_b48.push(_b4b);
}
}
}
return _b48;
};
editgrid.CellPageManager.prototype.getPageTraverseInfo=function(_b4c){
var _b4d=this._getPageIndicesInRange(_b4c,true);
var _b4e=[];
for(var k in _b4d){
_b4e.push(this.getPageTraverseInfoSingle(k,_b4c));
}
return _b4e;
};
editgrid.CellPageManager.prototype.getPageTraverseInfoSingle=function(_b50,_b51){
var _b52=this.pageRangeFromIndex(_b50);
var r=new editgrid.RangeRef(_b52.rowFr>_b51.rowFr?_b52.rowFr:_b51.rowFr,_b52.colFr>_b51.colFr?_b52.colFr:_b51.colFr,_b52.rowTo<_b51.rowTo?_b52.rowTo:_b51.rowTo,_b52.colTo<_b51.colTo?_b52.colTo:_b51.colTo);
var _b54=(r.rowFr%this.rowsPerPage)*this.colsPerPage+(r.colFr%this.colsPerPage);
var _b55=(r.colFr-_b52.colFr)+(_b52.colTo-r.colTo);
return {index:_b50,range:r,offset:_b54,pitch:_b55};
};
editgrid.CellPageManager.prototype.getCellInfo=function(row,col){
var _b58=(col/this.colsPerPage)|0;
var _b59=(row/this.rowsPerPage)|0;
var _b5a=_b59*this.maxPageCol+_b58;
var _b5b=(row%this.rowsPerPage)*this.colsPerPage+(col%this.colsPerPage);
return {index:_b5a,offset:_b5b};
};
editgrid.CellPageManager.prototype.pageRangeFromIndex=function(_b5c){
if(this.pageRangeCache[_b5c]){
return this.pageRangeCache[_b5c];
}else{
var _b5d=_b5c%this.maxPageCol;
var _b5e=this.rowsPerPage*(_b5c-_b5d)/this.maxPageCol;
var _b5f=this.colsPerPage*_b5d;
return this.pageRangeCache[_b5c]=new editgrid.RangeRef(_b5e,_b5f,_b5e+this.rowsPerPage-1,_b5f+this.colsPerPage-1);
}
};
editgrid.CellPageManager.prototype.pageRangeOfRange=function(_b60){
return new editgrid.RangeRef(Math.floor(_b60.rowFr/this.rowsPerPage)*this.rowsPerPage,Math.floor(_b60.colFr/this.colsPerPage)*this.colsPerPage,Math.floor(_b60.rowTo/this.rowsPerPage)*this.rowsPerPage+this.rowsPerPage-1,Math.floor(_b60.colTo/this.colsPerPage)*this.colsPerPage+this.colsPerPage-1);
};
editgrid.CellPageManager.prototype.cellRangeOfPageRect=function(rect){
var _b62=(rect.u1>=0?rect.u1:0)*this.rowsPerPage;
var _b63=(rect.v1>=0?rect.v1:0)*this.colsPerPage;
var _b64=(rect.u2<this.maxPageRow?rect.u2:this.maxPageRow)*this.rowsPerPage;
var _b65=(rect.v2<this.maxPageCol?rect.v2:this.maxPageCol)*this.colsPerPage;
if(_b62>=_b64||_b63>=_b65){
return null;
}
_b64--;
_b65--;
return new editgrid.RangeRef(_b62,_b63,_b64,_b65);
};
editgrid.CellPageManager.prototype.pageRectOfCellRange=function(_b66){
var _b67=_b66?_b66.rowFr:0;
var _b68=_b66?_b66.colFr:0;
var _b69=_b66?_b66.rowTo:0;
var _b6a=_b66?_b66.colTo:0;
if(_b66){
_b69++;
_b6a++;
}
return new editgrid.Rect((_b67/this.rowsPerPage)|0,(_b68/this.colsPerPage)|0,Math.ceil(_b69/this.rowsPerPage),Math.ceil(_b6a/this.colsPerPage));
};
editgrid.CellPageManager.prototype.invalidateAll=function(){
for(var i=0;i<this.pageBuffers.length;++i){
this.pageBuffers[i].invalidateAll();
}
};
editgrid.CellUtil={};
editgrid.CellUtil._sheetDefRowSize={};
editgrid.CellUtil._sheetDefColSize={};
editgrid.CellUtil._sheetDefBlankCellPage={};
editgrid.CellUtil._domTemplates={};
editgrid.CellUtil.updateCellDOM=function(cell,_b6d,_b6e,_b6f,row,col,_b72,_b73){
var _b74=false,_b75=false,_b76=false,_b77=false,_b78=false;
var _b79=false,_b7a=false,_b7b=false;
if(_b72){
_b74=_b72.skipContent;
_b75=_b72.skipZIndex;
_b76=_b72.skipBackground;
_b77=_b72.skipBorder;
_b78=_b72.skipVerticalAlign;
_b79=_b72.fxMode;
_b7a=_b72.isLink;
_b7b=_b72.isNew;
}
if(row<=65535&&col<=255&&_b6e!=null&&_b6e.vtype==null){
var _b7c="#f0f0f0";
if(!_b7b&&!_b74){
cell.style.color="#d0d0d0";
cell.style.fontSize="8pt";
cell.style.fontWeight="";
cell.style.fontStyle="";
cell.style.textDecoration="";
cell.style.textAlign="left";
cell.style.fontFamily="arial";
cell.style.fontWeight="";
cell.innerHTML="";
}
if(!_b77){
cell.style.borderTopStyle="";
cell.style.borderTopWidth="";
cell.style.borderTopColor=_b7c;
cell.style.borderLeftStyle="";
cell.style.borderLeftWidth="";
cell.style.borderLeftColor=_b7c;
}
if(!_b76){
cell.style.backgroundColor=_b7c;
}
return;
}
var _b7d,_b7e,_b7f,_b80=cell.style;
var _b81="";
var _b82="";
var _b83="";
var _b84="";
var _b85="";
var _b86="";
var _b87="";
var _b88="";
var _b89=_b6d.sheet;
var _b7e;
var _b7d=(_b7e=_b89.mergeHasCell(row,col))?_b89.getStyleCached(_b7e.rowFr,_b7e.colFr,_b73):_b89.getStyleCached(row,col,_b73);
if(_b6e){
_b7f=_b79?_b6e.getEscapedText():_b6e.getDisplayText(_b7d,_b7a,row,col);
}else{
_b7f=" ";
}
if(!_b75){
_b80.zIndex=this.calcZIndex(row,col,_b6e==null,_b7e);
}
if(_b7f!=" "){
if(!_b74){
if(_b7d){
var bits=_b7d.bits;
if(bits){
if(bits&1){
_b81="bold";
}
if(bits&2){
_b82="italic";
}
if(bits&4){
_b83+="underline ";
}
if(bits&64){
_b83+="line-through ";
}
switch((bits>>7)&7){
case 1:
_b84="left";
break;
case 2:
_b84="center";
break;
case 3:
_b84="right";
break;
case 4:
_b84="justify";
break;
}
switch((bits>>11)&7){
case 1:
break;
case 2:
_b85="middle";
break;
case 3:
_b85="bottom";
break;
}
}
if(!_b84){
var vt=_b6e.getValueType();
_b84=vt!=null&&vt>=30&&vt<=40?"right":(vt==20||vt==50?"center":"left");
}
var _b8c=_b7d.fontName;
if(_b8c!=null){
var _b8d=editgrid.fontTable[_b8c];
_b86=_b8d?_b8d:_b8c;
}
if(_b7d.fontSize!=null){
_b87=_b7d.fontSize+"pt";
}
}
var _b8e=_b6e.hexstr_color;
if(_b8e!=null){
_b88="#"+_b8e;
}else{
if(_b7d&&_b7d.fontColor!=null){
_b88="#"+_b7d.fontColor;
}
}
var _b8f=_b6e.getWordWrap(_b7d);
if(cell.wr!=_b8f){
var _b90=std.browser.isIEQuirksMode?"overflowX":"overflow";
_b80[_b90]=_b7e||_b8f?"hidden":"";
_b80.whiteSpace=_b8f?"normal":"nowrap";
cell.wr=_b8f;
}
if(!_b78&&_b85){
_b80.textAlign="";
_b80.textDecoration="";
_b80.fontWeight="";
_b80.fontStyle="";
_b80.color="";
_b7f=["<table style=\"height:100%;width:100%\" cellpadding=\"0\" cellspacing=\"0\"><tr style=\"background-color:transparent\"><td align=\"",_b84,"\" valign=\"",_b85,"\" style=\"",_b83?("text-decoration:"+_b83+";"):"",_b88?("color:"+_b88+";"):"",_b81?("font-weight:"+_b81+";"):"",_b82?("font-style:"+_b82+";"):"",_b86?("font-family:"+_b86+";"):"",_b87?("font-size:"+_b87+";"):"","\">",_b7f,"</td></tr></table>"].join("");
}else{
_b80.textAlign=_b84;
_b80.textDecoration=_b83;
_b80.fontWeight=_b81;
_b80.fontStyle=_b82;
_b80.color=_b88;
_b80.fontFamily=_b86;
_b80.fontSize=_b87;
}
if(std.browser.isIE&&!_b7f.match(/[<&]/)){
cell.innerText=_b7f;
}else{
cell.innerHTML=_b7f;
}
}
}
if(!_b7b&&(_b7f==" "||_b74)){
if(std.browser.isIE){
cell.innerText="";
}else{
if(std.browser.isMoz){
cell.textContent="";
}else{
cell.innerHTML="";
}
}
}
this._updateCellBackgroundBorderStyle(_b80,_b6d,row,col,_b6e,_b7d,cell,_b72,_b73);
if(!_b74&&_b6f){
var _b91=this._createCellCommentIndicator();
cell.appendChild(_b91);
}
};
editgrid.CellUtil.updateCellDOMEx=function(cell,_b93,_b94,_b95,r,c,_b98,_b99){
var _b9a;
var _b9b={};
for(var k in _b98){
_b9b[k]=_b98[k];
}
if((_b9a=_b93.sheet.mergeHasCell(r,c))){
if(_b9a.colFr!=c){
_b9b.noGridLineV=1;
}
if(_b9a.rowFr!=r){
_b9b.noGridLineH=1;
}
_b9b.skipContent=1;
}
this.updateCellDOM(cell,_b93,_b94,_b95,r,c,_b9b,_b99);
};
editgrid.CellUtil.calcZIndex=function(row,col,_b9f,_ba0){
return row*256+(!_b9f||_ba0?col+1:0)+1;
};
editgrid.CellUtil._getRealBorder=function(b1,b2){
if(b1!=null&&b1.type!=BORDER_NONE){
return b1;
}
if(b2!=null&&b2.type!=BORDER_NONE){
return b2;
}
return null;
};
editgrid.CellUtil._updateCellBackgroundBorderStyle=function(_ba3,_ba4,row,col,_ba7,_ba8,cell,_baa,_bab){
var _bac,_bad,_bae;
var _baf=_ba7==null&&std.browser.isIEQuirksMode;
if(!_baa.skipBackground){
if(_ba8&&_ba8.backColor!=null){
_bac="#"+_ba8.backColor;
if(_baf&&_ba8.backColor.toLowerCase()=="ffffff"){
_ba3.backgroundColor=_bad=_bae="";
}else{
_ba3.backgroundColor=_bac;
_bad=_bae="solid 1px "+_bac;
}
}else{
_bac="white";
if(std.browser.isIE){
_bad=_bae="solid 1px #dddddd";
}else{
_bad=_bae="";
}
_ba3.backgroundColor=_baf?"":"white";
}
}
if(_baa.noGridLines){
_bad="";
_bae="";
}
if(!_baa.skipBorder){
var _bb0,_bb1=_ba4.sheet.getStyleCached(row,col,_bab);
var _bb2,_bb3;
if(col>0){
_bb2=_ba4.sheet.getStyleCached(row,col-1,_bab);
}
if(row>0){
_bb3=_ba4.sheet.getStyleCached(row-1,col,_bab);
}
if(_bb1&&_bb1.borders&&(_bb0=this._getRealBorder(_bb1.borders[BORDER_TOP],_bb3!=null&&_bb3.borders!=null?_bb3.borders[BORDER_BOTTOM]:null))){
var _bb4=_bb0.getBorderStyle();
if(_bb4){
_bae=_bb4;
}
}
if(_bb1&&_bb1.borders&&(_bb0=this._getRealBorder(_bb1.borders[BORDER_LEFT],_bb2!=null&&_bb2.borders!=null?_bb2.borders[BORDER_RIGHT]:null))){
var _bb4=_bb0.getBorderStyle();
if(_bb4){
_bad=_bb4;
}
}
if(row==66535&&_bb1&&_bb1.borders&&(_bb0=this._getRealBorder(_bb1.borders[BORDER_BOTTOM]))){
var _bb4=_bb0.getBorderStyle();
if(_bb4){
_ba3.borderBottom=_bb4;
cell._borderBottom=true;
}
}else{
if(cell._borderBottom){
cell._borderBottom=false;
_ba3.borderBottom="none";
}
}
if(col==255&&_bb1&&_bb1.borders&&(_bb0=this._getRealBorder(_bb1.borders[BORDER_RIGHT]))){
var _bb4=_bb0.getBorderStyle();
if(_bb4){
_ba3.borderRight=_bb4;
cell._borderRight=true;
}
}else{
if(cell._borderRight){
cell._borderRight=false;
_ba3.borderRight="none";
}
}
if(_baa.noGridLines){
if(_baa.noGridLineV){
_bad="";
}
if(_baa.noGridLineH){
_bae="";
}
}else{
if(_baa.noGridLineV){
_bad="solid 1px "+_bac;
}
if(_baa.noGridLineH){
_bae="solid 1px "+_bac;
}
}
_ba3.borderLeft=_bad;
_ba3.borderTop=_bae;
}
};
editgrid.CellUtil.renderBlankCellPageHTML=function(_bb5,_bb6,_bb7,_bb8,_bb9,_bba){
var htm=[];
var _bbc=_bb7-_bb7%_bb5.pageManager.colsPerPage;
var _bbd=_bb6-_bb6%_bb5.pageManager.rowsPerPage;
var x=(_bb7==_bbc)?0:_bb5.getRowColsSize(false,_bbc,_bb7-1);
var y=(_bb6==_bbd)?0:_bb5.getRowColsSize(true,_bbd,_bb6-1);
var X=[];
var W=[];
for(var c=_bb7;c<=_bb9;++c){
var w=_bb5.getRowColSize(false,c);
X[c]=x;
W[c]=w;
x+=w;
}
var _bc4={};
var _bc5="solid 1px #dddddd";
for(var r=_bb6,i=r;r<=_bb8;++r,++i){
var h=_bb5.getRowColSize(true,r);
if(h==0&&!_bba){
continue;
}
for(var c=_bb7;c<=_bb9;++c){
if(W[c]==0&&!_bba){
continue;
}
var _bc9=this.calcZIndex(r,c,true,false);
var _bca={},cell={};
var _bcc=_bb5.sheet.getStyleCached(r,c,_bc4);
this._updateCellBackgroundBorderStyle(_bca,_bb5,r,c,null,_bcc,cell,{},_bc4);
var _bcd=_bca.borderLeft!=""?_bca.borderLeft:_bc5;
var _bce=_bca.borderTop!=""?_bca.borderTop:_bc5;
var _bcf=std.browser.isIEQuirksMode?"overflowX":"overflow";
htm.push("<div class=\"cell\" style=\"position:absolute;left:",X[c],"px;top:",y,"px;width:",W[c],"px;height:",h,"px",";z-index:",_bc9,";background:",_bca.backgroundColor,";border-left:",_bca.borderLeft,";border-top:",_bca.borderTop,W[c]==0||h==0?(";visibility:hidden"):"","\"> </div>");
}
y+=h;
}
return htm.join("");
};
editgrid.CellUtil._createCellCommentIndicator=function(){
if(!this._domTemplates.cellCommentIndicator){
this._domTemplates.cellCommentIndicator=std.dom.newElement("div",null,{className:"cellCommentIndicatorCtrl"});
}
return this._domTemplates.cellCommentIndicator.cloneNode(true);
};
editgrid.CellDOMLoader=function(_bd0){
this.sheetView=_bd0.sheetView;
this._defRowSize=-1;
this._defColSize=-1;
};
editgrid.CellDOMLoader.prototype.load=function(_bd1,_bd2){
var _bd3=_bd2&&_bd2.fxMode!=null?_bd2.fxMode:0;
var _bd4=_bd2&&_bd2.vAlign!=null?_bd2.vAlign:0;
var _bd5=_bd2&&_bd2.gridLinesVisible!=null?_bd2.gridLinesVisible:true;
var _bd6=this.sheetView.sheet.linkSheet;
return this.renderCellPageByDOM(_bd1.rowFr,_bd1.colFr,_bd1.rowTo,_bd1.colTo,false,{isNew:1,isLink:_bd6,fxMode:_bd3,skipVerticalAlign:!_bd4,noGridLines:!_bd5});
};
editgrid.CellDOMLoader.prototype._renderBlankCellPageHTMLSimpleImpl=function(_bd7,_bd8,_bd9,_bda,_bdb,_bdc,_bdd){
var htm=[];
var X=[];
var W=[];
var x=0;
var y=0;
for(var c=_bd8;c<=_bda;++c){
var w=_bdd(c);
X[c]=x;
W[c]=w;
x+=w;
}
var _be5={};
for(var r=_bd7,i=r;r<=_bd9;++r,++i){
var h=_bdc(r);
if(h==0&&!_bdb){
continue;
}
for(var c=_bd8;c<=_bda;++c){
if(W[c]==0&&!_bdb){
continue;
}
htm.push("<div class=\"cell\" style=\"position:absolute;left:",X[c],"px;top:",y,"px;width:",W[c],"px;height:",h,"px;",W[c]==0||h==0?(";visibility:hidden"):"","\"> </div>");
}
y+=h;
}
return htm.join("");
};
editgrid.CellDOMLoader.prototype._renderBlankCellPageHTMLSimple=function(_be9,_bea,_beb,_bec,_bed,_bee){
return this._renderBlankCellPageHTMLSimpleImpl(_bea,_beb,_bec,_bed,_bee,function(r){
return _be9.getRowColSize(true,r);
},function(c){
return _be9.getRowColSize(false,c);
});
};
editgrid.CellDOMLoader.prototype._htm2dom=function(htm){
var box=std.dom.newElement("div");
box.innerHTML=htm;
return box;
};
editgrid.CellDOMLoader.prototype._cachedBlankCellPage=function(_bf3,_bf4,_bf5,_bf6){
var _bf7=this.sheetView;
var _bf8,_bf9;
if(this._defRowSize!=(_bf8=_bf7.sheet.getDefRowSize())){
this._defRowSize=_bf8;
this._defBlankPage=null;
}
if(this._defColSize!=(_bf9=_bf7.sheet.getDefColSize())){
this._defColSize=_bf9;
this._defBlankPage=null;
}
if(this._defBlankPage==null){
this._defBlankPage=this._htm2dom(this._renderBlankCellPageHTMLSimpleImpl(_bf3,_bf4,_bf5,_bf6,true,function(){
return _bf8;
},function(){
return _bf9;
}));
}
var _bfa=-1,_bfb=-1;
for(var r=_bf3;r<=_bf5;++r){
if(_bf7.getRowColSize(true,r)!=_bf8){
_bfa=r;
break;
}
}
for(var c=_bf4;c<=_bf6;++c){
if(_bf7.getRowColSize(false,c)!=_bf9){
_bfb=c;
break;
}
}
if(_bfa==-1&&_bfb==-1){
return this._defBlankPage.cloneNode(true);
}
return null;
};
editgrid.CellDOMLoader.prototype._renderBlankCellPageSimple=function(_bfe,_bff,_c00,_c01,_c02){
var _c03=this.sheetView;
var _c04=null;
if(_c02||(!_c03.intersectsHiddenRowCol(true,_bfe,_c00)&&!_c03.intersectsHiddenRowCol(false,_bff,_c01))){
_c04=this._cachedBlankCellPage(_bfe,_bff,_c00,_c01);
}
return _c04||this._htm2dom(this._renderBlankCellPageHTMLSimple(_c03,_bfe,_bff,_c00,_c01,_c02));
};
editgrid.CellDOMLoader.prototype.renderCellPageByDOM=function(_c05,_c06,_c07,_c08,_c09,_c0a){
var _c0b=this.sheetView;
var _c0c=_c0b.sheet;
var box=this._renderBlankCellPageSimple(_c05,_c06,_c07,_c08,_c09);
var node=box.firstChild;
var _c0f={};
for(var r=_c05;r<=_c07;++r){
if(_c0b.isRowColHidden(true,r)&&!_c09){
continue;
}
for(var c=_c06;c<=_c08;++c){
if(_c0b.isRowColHidden(false,c)&&!_c09){
continue;
}
editgrid.CellUtil.updateCellDOMEx(node,_c0b,_c0c._getCellAndLocalChange(r,c),_c0c.getCellComment(r,c),r,c,_c0a,_c0f);
node=node.nextSibling;
}
}
return box;
};
editgrid.ListenerHandle=function(_c12,_c13){
if(arguments.length==0){
return;
}
if(typeof (_c12)!="function"){
throw new Error("Listener must be a function.");
}
this.id=editgrid.ListenerHandle._count++;
editgrid.ListenerHandle._instances[this.id]=this;
this.listener=_c12;
this.checker=_c13;
this.handle=null;
};
editgrid.ListenerHandle._count=0;
editgrid.ListenerHandle._instances=[];
editgrid.ListenerHandle.prototype.fireListener=function(){
if(!this.checker||this.checker.apply(null,arguments)){
this.listener.apply(null,arguments);
}
};
editgrid.ListenerHandle.prototype.getHandle=function(){
if(!this.handle){
this.handle=std.lang.bind(this,this.fireListener);
}
return this.handle;
};
editgrid.FakeListenerHandle=function(id){
this.id=id;
};
editgrid.FakeListenerHandle.prototype=new editgrid.ListenerHandle();
editgrid.FakeListenerHandle.prototype.getHandle=function(){
return editgrid.ListenerHandle._instances[this.id].getHandle();
};
editgrid.FakeListenerHandle.prototype.fireListener=function(){
editgrid.ListenerHandle._instances[this.id].fireListener();
};
editgrid.BitArray=function(_c15,_c16){
if(_c16==null||_c16>31){
null.assert;
}
var clz=editgrid.BitArray;
if(this.MASK==null){
this._init();
}
this.arrBits=_c15;
this.blockSize=_c16;
this.blockMask=this.MASK.upper[_c16-1];
this._numBits=_c15.length*_c16;
};
editgrid.BitArray.prototype.clone=function(){
var _c18=this.arrBits.slice(0);
var inst=new editgrid.BitArray(_c18,this.blockSize);
inst._numBits=this._numBits;
return inst;
};
editgrid.BitArray.prototype._init=function(){
var _c1a=[];
var _c1b=[];
for(var i=0;i<32;++i){
_c1a[i]=(1<<i)-1+(1<<i);
_c1b[i]=4294967295&~((1<<i)-1);
}
this.MASK={upper:_c1a,lower:_c1b};
};
editgrid.BitArray.prototype.isSet=function(row){
var pos=Math.floor(row/this.blockSize);
var bit=1<<(row%this.blockSize);
return (this.arrBits[pos]&bit)==bit;
};
editgrid.BitArray.prototype.setInterval=function(_c20,_c21){
var _c22=Math.floor(_c20/this.blockSize);
var end=Math.floor(_c21/this.blockSize);
if(_c22>end){
return;
}
var _c24=_c20%this.blockSize;
var _c25=_c21%this.blockSize;
var _c26=this.arrBits;
if(_c22==end){
_c26[_c22]|=(this.MASK.lower[_c24]&this.MASK.upper[_c25]&this.blockMask);
}else{
for(var i=_c22+1;i<=end-1;++i){
_c26[i]=this.blockMask;
}
_c26[_c22]|=(this.MASK.lower[_c24]&this.blockMask);
_c26[end]|=(this.MASK.upper[_c25]);
}
if(this._numBits<=_c21){
this._numBits=_c21+1;
}
};
editgrid.BitArray.prototype.unsetInterval=function(_c28,_c29){
var _c2a=Math.floor(_c28/this.blockSize);
var end=Math.floor(_c29/this.blockSize);
if(_c2a>end){
return;
}
var _c2c=_c28%this.blockSize;
var _c2d=_c29%this.blockSize;
var _c2e=this.arrBits;
if(_c2a==end){
_c2e[_c2a]&=~(this.MASK.lower[_c2c]&this.MASK.upper[_c2d]&this.blockMask);
}else{
for(var i=_c2a+1;i<=end-1;++i){
_c2e[i]=0;
}
_c2e[_c2a]&=~(this.MASK.lower[_c2c]&this.blockMask);
_c2e[end]&=~(this.MASK.upper[_c2d]);
}
if(this._numBits<=_c29){
this._numBits=_c29+1;
}
};
editgrid.BitArray.prototype.isIntervalSet=function(_c30,_c31){
var _c32=Math.floor(_c30/this.blockSize);
var end=Math.floor(_c31/this.blockSize);
if(_c32>end){
return true;
}
var _c34=_c30%this.blockSize;
var _c35=_c31%this.blockSize;
var _c36=this.arrBits;
if(_c32==end){
var bit=(this.MASK.lower[_c34]&this.MASK.upper[_c35]&this.blockMask);
return (_c36[_c32]&bit)==bit;
}else{
var _c38=this.MASK.upper[_c35];
if((_c36[end]&_c38)!=_c38){
return false;
}
var _c39=this.MASK.lower[_c34]&this.blockMask;
if((_c36[_c32]&_c39)!=_c39){
return false;
}
for(var i=_c32+1;i<=end-1;++i){
if((_c36[i]&this.blockMask)!=this.blockMask){
return false;
}
}
return true;
}
};
editgrid.BitArray.prototype.truncate=function(_c3b){
var end=Math.floor(_c3b/this.blockSize);
var _c3d=this.arrBits;
_c3d[end]&=this.MASK.upper[_c3b%this.blockSize];
_c3d.length=end+1;
this._numBits=_c3b;
};
editgrid.BitArray.prototype.shift=function(_c3e,_c3f,_c40){
var _c41=_c3f-_c3e;
if(_c41<0&&_c3f>=this._numBits||_c41>0&&_c3e>=this._numBits||_c41==0){
return;
}
var _c42=this.arrBits;
var _c43=_c41<0?_c42:_c42.slice(0);
var _c44=this.blockSize;
var src=_c3e;
var dst=_c3f;
var _c47=Math.floor(dst/_c44);
var _c48;
var cnt=_c44-(dst%_c44);
while(cnt--){
_c48=Math.floor(src/_c44);
var bit=1<<(src%_c44);
if(_c43[_c48]&bit){
_c42[_c47]|=(1<<(dst%_c44));
}else{
_c42[_c47]&=~(1<<(dst%_c44));
}
src++;
dst++;
}
var _c4b=src%_c44;
var len=_c43.length;
_c47++;
if(_c4b==0){
while(_c48<len){
_c42[_c47]=_c43[_c48+1];
_c48++;
_c47++;
}
}else{
var _c4d=this.MASK.upper[_c4b];
var _c4e=this.MASK.lower[_c4b];
while(_c48<len){
_c42[_c47]=(((_c43[_c48]&_c4e)>>_c4b)|(((_c43[_c48+1]||0)&_c4d)<<(_c44-_c4b)))&this.blockMask;
_c48++;
_c47++;
}
}
if(_c41<0){
if(_c3e>this._numBits){
this.truncate(_c3f);
}else{
this.truncate(this._numBits+_c41);
}
}else{
this._numBits+=_c41;
if(_c40==1){
this.setInterval(_c3e,_c3f-1);
}else{
this.unsetInterval(_c3e,_c3f-1);
}
}
};
editgrid.BitArray.prototype.dump=function(){
var _c4f=this.arrBits;
var res=[];
for(var i=0;i<_c4f.length;++i){
var fr=i*this.blockSize;
var to=fr+this.blockSize;
var _c54=[];
for(j=fr;j<to;++j){
_c54.push(this.isSet(j)?"1":"0");
}
res.push(_c54.join(""));
}
return res;
};
var REGION_SIZE_ROW=16;
var REGION_FULL_ROW=65535;
editgrid.Worksheet=function(book,id){
this.book=book;
this.id=id;
this.loadRowTask=std.lang.bind(this,this._loadRowTask);
this.reset();
this._mergeInit();
std.topic.define(this,"onLocalUpdate");
std.topic.define(this,"onRemoteUpdate");
std.topic.subscribe(book,"onLocalUpdate",std.lang.bind(this,this._onLocalUpdate));
std.topic.subscribe(book,"onRemoteUpdate",std.lang.bind(this,this._onRemoteUpdate));
std.topic.define(this,"onLocalRowColUpdate");
};
editgrid.Worksheet.ERR_INSDEL_ROWCOL_SPLIT="cannot split merge cell";
editgrid.Worksheet.prototype.addOnRangeChangeListener=function(_c57,_c58,_c59){
_c57=editgrid.RangeRef.from(_c57);
var l=std.lang.bind(this,function(r,type){
_c58(this.getRange(r.intersection(_c57)),type);
});
var _c5d=new editgrid.ListenerHandle(l,function(r,t){
return _c57.intersects(r);
});
if(!_c59||_c59=="local"||_c59=="all"){
std.topic.subscribe(this,"onLocalUpdate",_c5d.getHandle());
}
if(_c59=="remote"||_c59=="all"){
std.topic.subscribe(this,"onRemoteUpdate",_c5d.getHandle());
}
_c5d.scope=_c59;
return _c5d;
};
editgrid.Worksheet.prototype.removeOnRangeChangeListener=function(_c60){
var _c61=_c60.scope;
if(!_c61||_c61=="local"||_c61=="all"){
std.topic.unsubscribe(this,"onLocalUpdate",_c60.getHandle());
}else{
if(_c61=="remote"||_c61=="all"){
std.topic.unsubscribe(this,"onRemoteUpdate",_c60.getHandle());
}
}
};
editgrid.Worksheet.prototype.addOnValueChangeListener=function(_c62,_c63,_c64){
return this.addOnRangeChangeListener(_c62,function(_c65,type){
if(type=="value"){
_c63(_c65);
}
},_c64);
};
editgrid.Worksheet.prototype.removeOnValueChangeListener=function(_c67){
this.removeOnRangeChangeListener(_c67);
};
editgrid.Worksheet.prototype.addOnStyleChangeListener=function(_c68,_c69,_c6a){
return this.addOnRangeChangeListener(_c68,function(_c6b,type){
if(type=="style"){
_c69(_c6b);
}
},_c6a);
};
editgrid.Worksheet.prototype.removeOnStyleChangeListener=function(_c6d){
this.removeOnRangeChangeListener(_c6d);
};
editgrid.Worksheet.prototype._onLocalUpdate=function(_c6e){
this._fireUpdate("onLocalUpdate",_c6e);
};
editgrid.Worksheet.prototype._onRemoteUpdate=function(_c6f){
this._fireUpdate("onRemoteUpdate",_c6f);
};
editgrid.Worksheet.prototype._fireUpdate=function(_c70,_c71){
_c71=_c71[this.id];
if(_c71){
if(std.topic.hasSubscribers(this,_c70)){
for(var i in _c71){
std.topic.publish(this,_c70,_c71[i].range,_c71[i].type);
}
}
}
};
editgrid.Worksheet.prototype.isLinkedSheet=function(){
return this.book.linkSheetIdSet[this.id];
};
editgrid.Worksheet.prototype.reset=function(){
var _c73;
this.colMax=0;
this.rowMax=0;
this.hasColMax=true;
this.hasRowMax=true;
this.cells=[];
this.cellCommentStore=new editgrid.CellCommentStore();
this.rows=[];
this.cols=[];
this.filters={};
this._cellLocalChange={};
this.rowOffsetCache=[0];
this.colOffsetCache=[0];
this.objects={};
this.loadedRegionBitArray=new editgrid.BitArray([],REGION_SIZE_ROW);
this.loadingRegionBitArray=new editgrid.BitArray([],REGION_SIZE_ROW);
this.tileRoot=new editgrid.tile.SimpleTile(this.defStyle=_c73=new editgrid.Style());
_c73.mask=63;
_c73.backColor=null;
_c73.fontName=null;
_c73.fontSize=null;
_c73.fontColor=null;
_c73.format=null;
this.defColSize=85;
this.defRowSize=17;
this.locks={};
this._loadRowReset();
this.setCellLoader(this.defaultCellLoader);
};
editgrid.Worksheet.prototype.getId=function(){
return this.id;
};
editgrid.Worksheet.prototype.getName=function(){
return this.name;
};
editgrid.Worksheet.prototype.rename=function(name){
if(this.name==name){
return;
}
this.book.network.appendCommand("SheetRename",{bookRevId:this.book.bookRevId,sheetId:this.id,name:name});
};
editgrid.Worksheet.prototype.setHidden=function(_c75){
this.book.network.appendCommand("SheetVisibility",{bookRevId:this.book.bookRevId,sheetId:this.id,hidden:_c75});
};
editgrid.Worksheet.prototype.markRowsLoaded=function(_c76,_c77){
this.loadedRegionBitArray.setInterval(_c76,_c77);
this.loadingRegionBitArray.unsetInterval(_c76,_c77);
};
editgrid.Worksheet.prototype.isCellLoaded=function(row,col){
return this.loadedRegionBitArray.isSet(row);
};
editgrid.Worksheet.prototype.isCellLoading=function(row,col){
return this.loadingRegionBitArray.isSet(row);
};
editgrid.Worksheet.prototype.getCellRegionIdx=function(row,col){
return Math.floor(row/REGION_SIZE_ROW);
};
editgrid.Worksheet.prototype.isRegionLoaded=function(_c7e){
return this.loadedRegionBitArray.arrBits[_c7e]==REGION_FULL_ROW;
};
editgrid.Worksheet.prototype.isRegionLoading=function(_c7f){
return this.loadingRegionBitArray.arrBits[_c7f]==REGION_FULL_ROW;
};
editgrid.Worksheet.prototype.preloadRegion=function(_c80,_c81){
this.loadRegion(_c80,_c81,true);
};
editgrid.Worksheet.prototype.loadRegion=function(_c82,_c83,_c84){
if(_c82<0){
null.assert;
}
if(_c83<0){
null.assert;
}
var book=this.book;
if(_c83===undefined){
_c83=_c82;
}
var _c86,_c87,_c88,_c89;
_c88=REGION_SIZE_ROW*_c82;
if(_c88>65535){
return;
}
_c89=0;
_c86=REGION_SIZE_ROW*(_c83+1)-1;
if(_c86>65535){
_c86=65535;
}
_c87=255;
var _c8a=new editgrid.RangeRef(_c88,_c89,_c86,_c87);
this.loadingRegionBitArray.setInterval(_c88,_c86);
book.network.appendCommand("CheckOutRangeContent",{bookRevId:book.bookRevId,sheetId:this.id,range:_c8a.toString()},null,false,_c84);
};
editgrid.Worksheet.prototype.loadRowEnqueue=function(row){
var _c8c=this._loadRow;
if(_c8c.added[row]==null){
_c8c.added[row]=row;
_c8c.list.push(row);
}
if(_c8c.timer==null){
_c8c.timer=setTimeout(this.loadRowTask,0);
}
};
editgrid.Worksheet.prototype._loadRowTask=function(){
var _c8d=this._loadRow.list;
var book=this.book;
_c8d.sort(editgrid.compareNumbers);
var _c8f=editgrid.IntervalList.fromPointList(_c8d);
var _c90=_c8f.getFrList();
var _c91=_c8f.getToList();
for(var i=0;i<_c90.length;++i){
var _c93=_c90[i];
var _c94=_c91[i];
var _c95=new editgrid.RangeRef(_c93,0,_c94,255);
this.loadingRegionBitArray.setInterval(_c93,_c94);
book.network.appendCommand("CheckOutRangeContent",{bookRevId:book.bookRevId,sheetId:this.id,range:_c95.toString()},null,false,false);
}
this._loadRowReset();
};
editgrid.Worksheet.prototype._loadRowReset=function(){
if(this._loadRow&&this._loadRow.timer){
clearTimeout(this._loadRow.timer);
}
this._loadRow={list:[],added:{}};
};
editgrid.Worksheet.prototype.loadRange=function(_c96,_c97){
_c96=editgrid.RangeRef.from(_c96);
if(this.isRangeLoaded(_c96)){
_c97(this.getRange(_c96));
}else{
var _c98=std.lang.bind(this,function(){
if(this.isRangeLoaded(_c96)){
_c97(this.getRange(_c96));
std.topic.unsubscribe(this.book.processor,"onPostResponse",_c98);
}
});
std.topic.subscribe(this.book.processor,"onPostResponse",_c98);
this.loadRegion(this.getCellRegionIdx(_c96.rowFr,_c96.colFr),this.getCellRegionIdx(_c96.rowTo,_c96.colTo),true);
}
};
editgrid.Worksheet.prototype.isRangeLoaded=function(_c99){
_c99=editgrid.RangeRef.from(_c99);
return this.loadedRegionBitArray.isIntervalSet(_c99.rowFr,_c99.rowTo);
};
editgrid.Worksheet.prototype.getRange=function(_c9a){
return new editgrid.Range(this,editgrid.RangeRef.from(_c9a));
};
editgrid.Worksheet.prototype.loadRangeHTML=function(_c9b,_c9c,_c9d){
var book=this.book;
var _c9f=std.lang.bind(this,function(_ca0,r,html){
if(this.id==_ca0&&_c9b.equal(r)){
_c9c(html);
std.topic.unsubscribe(this.book,"onRangeHTMLReady",_c9f);
}
});
var _ca3=_c9d&&_c9d.fxMode?_c9d.fxMode:0;
std.topic.subscribe(book,"onRangeHTMLReady",_c9f);
book.network.appendCommand("LoadRangeHTML",{bookRevId:book.bookRevId,sheetId:this.id,range:_c9b.toString(),isLink:this.linkSheet,fxMode:_ca3},null,false,true);
};
editgrid.Worksheet.prototype.insertRows=function(row,_ca5,_ca6){
var _ca7=editgrid.RangeRef.fromRows(row,row+_ca5-1);
if(this.mergeHasPartialIntersection(_ca7)){
throw editgrid.Worksheet.ERR_INSDEL_ROWCOL_SPLIT;
}
var book=this.book;
if(_ca5<book.maxRow){
book.network.appendCommand("InsRow",{bookRevId:book.bookRevId,sheetId:this.id,row:row,count:_ca5},null,false,false,_ca6);
}else{
throw new Error("operation not allowed");
}
};
editgrid.Worksheet.prototype.insertCols=function(col,_caa,_cab){
var _cac=editgrid.RangeRef.fromCols(col,col+_caa-1);
if(this.mergeHasPartialIntersection(_cac)){
throw editgrid.Worksheet.ERR_INSDEL_ROWCOL_SPLIT;
}
var book=this.book;
if(_caa<book.maxCol){
book.network.appendCommand("InsCol",{bookRevId:book.bookRevId,sheetId:this.id,col:col,count:_caa},null,false,false,_cab);
}else{
throw new Error("operation not allowed");
}
};
editgrid.Worksheet.prototype.deleteRows=function(row,_caf,_cb0){
var _cb1=editgrid.RangeRef.fromRows(row,row+_caf-1);
if(this.mergeHasPartialIntersection(_cb1)){
throw new Error(editgrid.Worksheet.ERR_INSDEL_ROWCOL_SPLIT);
}
var book=this.book;
if(_caf<book.maxRow){
book.network.appendCommand("DelRow",{bookRevId:book.bookRevId,sheetId:this.id,row:row,count:_caf},null,false,false,_cb0);
var _cb1=editgrid.RangeRef.fromRows(row,row+_caf-1);
if(!this.mergeHasIntersection(_cb1)){
var _cb3=this.objects;
for(var i in _cb3){
var so=_cb3[i];
if(so.rowFr==row){
delete _cb3[so.id];
std.topic.publish(book,"onSheetObjectDel",so);
}
}
}
}else{
throw new Error("operation not allowed");
}
};
editgrid.Worksheet.prototype.deleteCols=function(col,_cb7,_cb8){
var _cb9=editgrid.RangeRef.fromCols(col,col+_cb7-1);
if(this.mergeHasPartialIntersection(_cb9)){
throw new Error(editgrid.Worksheet.ERR_INSDEL_ROWCOL_SPLIT);
}
var book=this.book;
if(_cb7<book.maxCol){
book.network.appendCommand("DelCol",{bookRevId:book.bookRevId,sheetId:this.id,col:col,count:_cb7},null,false,false,_cb8);
var _cb9=editgrid.RangeRef.fromCols(col,col+_cb7-1);
if(!this.mergeHasIntersection(_cb9)){
var _cbb=this.objects;
for(var i in _cbb){
var so=_cbb[i];
if(so.colFr==col){
delete _cbb[so.id];
std.topic.publish(book,"onSheetObjectDel",so);
}
}
}
}else{
throw new Error("operation not allowed");
}
};
editgrid.Worksheet.prototype.sheetObjectCut=function(so){
var book=this.book;
book.network.appendCommand("SheetObjectCut",{bookRevId:book.bookRevId,sheetObjectId:so.id});
delete this.objects[so.id];
std.topic.publish(book,"onSheetObjectDel",so);
};
editgrid.Worksheet.prototype.sheetObjectCopy=function(so){
var book=this.book;
book.network.appendCommand("SheetObjectCopy",{bookRevId:book.bookRevId,sheetObjectId:so.id});
};
editgrid.Worksheet.prototype.sheetObjectDel=function(so){
var book=this.book;
book.network.appendCommand("SheetObjectDelete",{bookRevId:book.bookRevId,sheetObjectId:so.id});
delete this.objects[so.id];
std.topic.publish(book,"onSheetObjectDel",so);
};
editgrid.Worksheet.prototype._setRowColSizeImpl=function(_cc4,idx,size){
var rcs=_cc4?this.rows:this.cols;
if(size>=0){
var rc=rcs[idx];
if(rc){
rc.size=size;
}else{
rcs[idx]=new editgrid.RowCol(idx,size,false);
}
}else{
delete rcs[idx];
}
};
editgrid.Worksheet.prototype._setRowColSize=function(_cc9,idx,size){
this._setRowColSizeImpl(_cc9,idx,size);
this._onLocalRowColUpdate(_cc9,idx);
};
editgrid.Worksheet.prototype._setRowColIntervalSize=function(_ccc,_ccd,end,size){
var _cd0=0;
for(var i=_ccd;i<=end;++i){
var _cd2=_ccc?this.getRowSize(i):this.getColSize(i);
if(_cd2!=size){
this._setRowColSizeImpl(_ccc,i,size);
if(_cd0==0){
_cd0=i+1;
}
}
}
if(_cd0){
this._onLocalRowColUpdate(_ccc,_cd0-1);
}
return _cd0;
};
editgrid.Worksheet.prototype._resetRowColOffsetCache=function(_cd3,pos){
if(_cd3){
if(this.rowOffsetCache.length>pos){
this.rowOffsetCache.length=pos+1;
}
}else{
if(this.colOffsetCache.length>pos){
this.colOffsetCache.length=pos+1;
}
}
};
editgrid.Worksheet.prototype.getDefRowSize=function(){
return this.defRowSize;
};
editgrid.Worksheet.prototype.getDefColSize=function(){
return this.defColSize;
};
editgrid.Worksheet.prototype.setRowSize=function(_cd5,_cd6,size){
if(_cd5<0&&_cd6>=65536){
throw new Error("Invalid row location");
}
return this.setRowColSize(true,_cd5,_cd6,size);
};
editgrid.Worksheet.prototype.setColSize=function(_cd8,_cd9,size){
if(_cd8<0&&_cd9>=256){
throw new Error("Invalid column location");
}
return this.setRowColSize(false,_cd8,_cd9,size);
};
editgrid.Worksheet.prototype.getExtent=function(){
return {row:this.rowMax,col:this.colMax};
};
editgrid.Worksheet.prototype.getRowColExtent=function(_cdb){
return _cdb?this.rowMax:this.colMax;
};
editgrid.Worksheet.prototype.setRowColExtent=function(_cdc,idx){
if(_cdc){
this.rowMax=idx;
this.hasRowMax=true;
std.topic.publish(this.book,"onVExtend",this.rowMax);
}else{
this.colMax=idx;
this.hasColMax=true;
std.topic.publish(this.book,"onHExtend",this.colMax);
}
};
editgrid.Worksheet.prototype.setRowColSize=function(_cde,_cdf,_ce0,size){
var book=this.book;
this._setRowColIntervalSize(_cde,_cdf,_ce0,size);
var _ce3={bookRevId:book.bookRevId,sheetId:this.id,length:1,f0:_cdf,t0:_ce0,s0:size};
book.network.appendCommand("SetMulti"+(_cde?"Row":"Col")+"Size",_ce3);
std.topic.publish(book,"onMultiRowColUpdate",this,_cde,[_cdf],[_ce0],[size]);
};
editgrid.Worksheet.prototype.isRowColHidden=function(_ce4,idx){
var rcs=_ce4?this.rows:this.cols;
var rc=rcs[idx];
return rc!=null&&rc.hidden;
};
editgrid.Worksheet.prototype.isRangeHidden=function(_ce8,_ce9,_cea,_ceb){
return this.isRowColIntervalHidden(true,_ce8,_cea)||this.isRowColIntervalHidden(false,_ce9,_ceb);
};
editgrid.Worksheet.prototype.isRowIntervalHidden=function(fr,to){
return this.isRowColIntervalHidden(true,fr,to);
};
editgrid.Worksheet.prototype.isColIntervalHidden=function(fr,to){
return this.isRowColIntervalHidden(false,fr,to);
};
editgrid.Worksheet.prototype.isRowColIntervalHidden=function(_cf0,fr,to){
for(var i=fr;i<=to;++i){
if(!this.isRowColHidden(_cf0,i)){
return false;
}
}
return true;
};
editgrid.Worksheet.prototype.intersectsHiddenRowCol=function(_cf4,fr,to){
for(var i=fr;i<=to;++i){
if(this.isRowColHidden(_cf4,i)){
return true;
}
}
return false;
};
editgrid.Worksheet.prototype.setRowHidden=function(_cf8,_cf9,_cfa){
return this.setRowColHidden(true,_cf8,_cf9,_cfa);
};
editgrid.Worksheet.prototype.setColHidden=function(_cfb,_cfc,_cfd){
return this.setRowColHidden(false,_cfb,_cfc,_cfd);
};
editgrid.Worksheet.prototype.setRowColHidden=function(_cfe,_cff,_d00,_d01,_d02){
this._setRowColHiddenImpl(_cfe,_cff,_d00,_d01);
if(!_d02){
std.topic.publish(this.book,"onMultiRowColVisibilityChange",this,_cfe,[_cff],[_d00],[_d01]);
}
};
editgrid.Worksheet.prototype._setRowColHiddenImpl=function(_d03,_d04,_d05,_d06){
var rcs=_d03?this.rows:this.cols;
var _d08=_d03?this.getDefRowSize():this.getDefColSize();
this._onLocalRowColUpdate(_d03,_d04);
for(var idx=_d04;idx<=_d05;++idx){
var rc=rcs[idx];
if(rc){
if(rc.size==_d08&&!_d06){
delete rcs[idx];
}else{
rc.hidden=_d06;
}
}else{
rcs[idx]=new editgrid.RowCol(idx,_d08,_d06);
}
}
};
editgrid.Worksheet.prototype._onMultiRowColVisibilityChange=function(_d0b,_d0c,_d0d,_d0e){
var _d0f=[];
var _d10=[];
var _d11=[];
for(var i=0;i<_d0e.length;++i){
var _d13=_d0c[i];
var _d14=_d0d[i];
var _d15=_d0e[i];
if(_d15){
_d0f.push(_d13);
_d10.push(_d14);
_d11.push(0);
}else{
var size=this.getRowColSize(_d0b,_d13);
var from=_d13;
for(var j=_d13+1;j<=_d14;++j){
var _d19=this.getRowColSize(_d0b,j);
if(_d19!=size){
_d0f.push(from);
_d10.push(j);
_d11.push(size);
size=_d19;
from=j;
}
}
if(_d13==_d14||from!=_d14){
_d0f.push(from);
_d10.push(_d14);
_d11.push(size);
}
}
}
std.topic.publish(this.book,"onMultiRowColUpdate",this,_d0b,_d0f,_d10,_d11);
};
editgrid.Worksheet.prototype.hideRows=function(_d1a,_d1b){
return this._hideUnhideRowCols(true,true,_d1a,_d1b);
};
editgrid.Worksheet.prototype.hideCols=function(_d1c,_d1d){
return this._hideUnhideRowCols(true,false,_d1c,_d1d);
};
editgrid.Worksheet.prototype.unhideRows=function(_d1e,_d1f){
return this._hideUnhideRowCols(false,true,_d1e,_d1f);
};
editgrid.Worksheet.prototype.unhideCols=function(_d20,_d21){
return this._hideUnhideRowCols(false,false,_d20,_d21);
};
editgrid.Worksheet.prototype._hideUnhideRowCols=function(_d22,_d23,_d24,_d25){
var book=this.book;
var _d27={bookRevId:book.bookRevId,sheetId:this.id};
if(_d23){
_d27.fromRow=_d24;
_d27.toRow=_d25;
}else{
_d27.fromCol=_d24;
_d27.toCol=_d25;
}
book.network.appendCommand((_d22?"Hide":"Unhide")+(_d23?"Row":"Col"),_d27);
book.changed=true;
};
editgrid.Worksheet.prototype._packRowColSize=function(_d28){
var _d29=[];
var _d2a=-1;
var end=-1;
for(var i in _d28){
var _d2d=parseInt(i);
if(_d2a==-1||i<_d2a){
_d2a=_d2d;
}
if(end==-1||i>end){
end=_d2d;
}
}
var _d2e=-1;
for(var i=_d2a;i<=end;i++){
var size=_d28[i];
if(size){
if(size!=_d2e){
_d29[_d29.length]={size:size,fr:i,to:i};
_d2e=size;
}else{
_d29[_d29.length-1].to=i;
}
}else{
_d2e=-1;
}
}
return _d29;
};
editgrid.Worksheet.prototype.setMultiColSize=function(_d30){
this.setMultiRowColSize(false,_d30);
};
editgrid.Worksheet.prototype.setMultiRowSize=function(_d31){
this.setMultiRowColSize(true,_d31);
};
editgrid.Worksheet.prototype.setMultiRowColSize=function(_d32,_d33){
var book=this.book;
for(var i in _d33){
this._setRowColSize(_d32,parseInt(i),_d33[i]);
}
var _d36=this._packRowColSize(_d33);
var _d37=[];
var _d38=[];
var _d39=[];
if(_d36.length>0){
var _d3a={bookRevId:book.bookRevId,sheetId:this.id,length:_d36.length};
for(var i=0;i<_d36.length;i++){
var _d3b=_d36[i];
_d3a["f"+i]=_d3b.fr;
_d3a["t"+i]=_d3b.to;
_d3a["s"+i]=_d3b.size;
_d37.push(_d3b.fr);
_d38.push(_d3b.to);
_d39.push(_d3b.size);
}
book.network.appendCommand("SetMulti"+(_d32?"Row":"Col")+"Size",_d3a);
std.topic.publish(book,"onMultiRowColUpdate",this,_d32,_d37,_d38,_d39);
}
};
editgrid.Worksheet.prototype._onLocalRowColUpdate=function(_d3c,fr){
this._resetRowColOffsetCache(_d3c,fr);
std.topic.publish(this,"onLocalRowColUpdate",_d3c,fr);
};
editgrid.Worksheet.prototype._nextCol=function(row,col){
var _d40=this.mergeHasCell(row,col);
return _d40?_d40.colTo+1:col+1;
};
editgrid.Worksheet.prototype._nextRow=function(row,col){
var _d43=this.mergeHasCell(row,col);
return _d43?_d43.rowTo+1:row+1;
};
editgrid.Worksheet.prototype.fillRange=function(_d44,_d45){
if(_d45==FILL_DIR_DOWN&&_d44.rowFr&&_d44.rowFr==_d44.rowTo){
_d44.rowFr--;
}
if(_d45==FILL_DIR_RIGHT&&_d44.colFr&&_d44.colFr==_d44.colTo){
_d44.colFr--;
}
var h,w;
if((_d45&FILL_DIR_RIGHT)==FILL_DIR_RIGHT){
h=_d44.rowTo-_d44.rowFr+1;
if((_d45&AUTOFILL)==AUTOFILL){
for(var i=this._nextCol(_d44.rowFr,_d44.colFr);i<=_d44.colTo&&this._getCellAndLocalChange(_d44.rowFr,i);i=this._nextCol(_d44.rowFr,i)){
}
w=i-_d44.colFr;
}else{
var _d49=this.mergeHasCell(_d44.rowFr,_d44.colFr);
w=_d49?_d49.colTo-_d49.colFr+1:1;
}
}else{
w=_d44.colTo-_d44.colFr+1;
if((_d45&AUTOFILL)==AUTOFILL){
for(var i=this._nextRow(_d44.rowFr,_d44.colFr);i<=_d44.rowTo&&this._getCellAndLocalChange(i,_d44.colFr);i=this._nextRow(i,_d44.colFr)){
}
h=i-_d44.rowFr;
}else{
var _d49=this.mergeHasCell(_d44.rowFr,_d44.colFr);
h=_d49?_d49.rowTo-_d49.rowFr+1:1;
}
}
this.autofill(_d44.rowFr,_d44.colFr,_d44.rowTo,_d44.colTo,h,w,0,_d45);
};
editgrid.Worksheet.prototype.autofill=function(_d4a,_d4b,_d4c,_d4d,h,w,_d50,_d51){
var book=this.book;
book.network.appendCommand("Autofill",{bookRevId:book.bookRevId,sheetId:this.id,range:new editgrid.RangeRef(_d4a,_d4b,_d4c,_d4d),w:w,h:h,incre:_d50,flags:_d51});
};
editgrid.Worksheet.prototype.rangeSetText=function(row,col,text){
this.plainTextPaste(this.plainTextGetPasteInfo(row,col,text));
};
editgrid.Worksheet.prototype.plainTextGetPasteInfo=function(row,col,text){
var cols,rows=("1"+text).replace("\r\n","\n").split("\n");
var i,j,len,_d5e,_d5f,line,_d61=[];
if(rows[rows.length-1]==""){
rows.pop();
}
_d5e=rows.length;
_d5f=0;
for(i=0;i<_d5e;++i){
cols=rows[i].split("\t");
line=[];
len=cols.length;
if(_d5f<len){
_d5f=len;
}
for(j=0;j<len;++j){
line.push(i||j?cols[j]:cols[j].substr(1));
}
_d61.push(line);
}
var _d62=new editgrid.RangeRef(row,col,row+_d5e-1,col+_d5f-1);
return {lines:_d61,range:_d62,numRows:_d5e,numCols:_d5f};
};
editgrid.Worksheet.prototype.plainTextPaste=function(info){
var i,j,r,c,cnt=0;
var _d69=info.numCols;
var _d6a=info.numRows;
var _d6b=info.range;
var row=_d6b.rowFr;
var col=_d6b.colFr;
var _d6e={bookRevId:this.book.bookRevId,sheetId:this.id,range:_d6b.toString()};
for(i=0,r=row;i<_d6a;++i,++r){
line=info.lines[i];
var len=line.length;
for(j=0,c=col;j<len;++j,++c,++cnt){
cell=this._setCellLocalChange(r,c,_d6e["t"+cnt]=line[j],null,null);
}
for(;j<_d69;++j,++cnt){
_d6e["t"+cnt]="";
}
}
this.book.network.appendCommand("RangeSetText",_d6e);
this.book.fireRangeNeedRepaint(this,_d6b);
};
editgrid.Worksheet.prototype.setRangeTexts=function(_d70,_d71){
this._setRangeText(_d70,function(i,j){
return _d71[i]?_d71[i][j]+"":"";
});
};
editgrid.Worksheet.prototype.setRangeText=function(_d74,text){
text=text+"";
this._setRangeText(_d74,function(i,j){
return text;
});
};
editgrid.Worksheet.prototype._setRangeText=function(_d78,text){
var book=this.book;
var _d7b={bookRevId:book.bookRevId,sheetId:this.id,range:_d78.toString()};
var ii=0;
for(var i=0,r=_d78.rowFr;r<=_d78.rowTo;i++,r++){
for(var j=0,c=_d78.colFr;c<=_d78.colTo;j++,c++,ii++){
this._setCellLocalChange(r,c,_d7b["t"+ii]=text(i,j),null,null);
}
}
book.network.appendCommand("RangeSetText",_d7b);
book.fireRangeNeedRepaint(this,_d78);
};
editgrid.Worksheet.prototype.setRangeStyle=function(_d81,_d82){
var _d83=this.book.bookRevId;
var _d84=_d81.toString();
var mask=_d82.mask,bits=_d82.bits,_d87=_d82.format,_d88=_d82.fontName,_d89=_d82.fontSize,_d8a=_d82.borders;
var _d8b=std.conv.anyRGBToInt(_d82.backColor);
var _d8c=std.conv.anyRGBToInt(_d82.fontColor);
if(mask!==undefined&&mask!=0){
this.book.network.appendCommand("RangeSetStyle",{bookRevId:_d83,sheetId:this.id,range:_d84,mask:mask,value:bits});
}
if(_d8b!==undefined){
this.book.network.appendCommand("RangeSetBackColor",{bookRevId:_d83,sheetId:this.id,range:_d84,backColor:_d8b});
}
if(_d8c!==undefined){
this.book.network.appendCommand("RangeSetFontColor",{bookRevId:_d83,sheetId:this.id,range:_d84,fontColor:_d8c});
}
if(_d88!==undefined){
this.book.network.appendCommand("RangeSetFontName",{bookRevId:_d83,sheetId:this.id,range:_d84,fontName:_d88});
}
if(_d89!==undefined){
this.book.network.appendCommand("RangeSetFontSize",{bookRevId:_d83,sheetId:this.id,range:_d84,fontSize:_d89});
}
if(_d87!==undefined){
this.book.network.appendCommand("RangeSetFormat",{bookRevId:_d83,sheetId:this.id,range:_d84,format:_d87});
}
if(_d8a!=null){
this.rangeSetBorder(_d81,_d8a);
}
_d82.borders=null;
this.applyStyle(_d81,_d82);
};
editgrid.Worksheet.prototype.setRangeBits=function(_d8d,mask,bits){
var book=this.book;
var s=new editgrid.Style();
s.mask=mask;
s.bits=bits;
this.applyStyle(_d8d,s);
book.network.appendCommand("RangeSetStyle",{bookRevId:book.bookRevId,sheetId:this.id,range:_d8d.toString(),mask:mask,value:bits});
};
editgrid.Worksheet.prototype.setRangeColor=function(_d92,rgb){
var book=this.book;
var s=new editgrid.Style();
s.setBackColor(rgb=rgb==null?-1:((rgb[0]<<16)|(rgb[1]<<8)|rgb[2]));
this.applyStyle(_d92,s);
book.network.appendCommand("RangeSetBackColor",{bookRevId:book.bookRevId,sheetId:this.id,range:_d92.toString(),backColor:rgb});
};
editgrid.Worksheet.prototype.setRangeFontColor=function(_d96,rgb){
var book=this.book;
var s=new editgrid.Style();
s.setFontColor(rgb=rgb==null?-1:((rgb[0]<<16)|(rgb[1]<<8)|rgb[2]));
this.applyStyle(_d96,s);
book.network.appendCommand("RangeSetFontColor",{bookRevId:book.bookRevId,sheetId:this.id,range:_d96.toString(),fontColor:rgb});
};
editgrid.Worksheet.prototype.setRangeFont=function(_d9a,_d9b){
var book=this.book;
var s=new editgrid.Style();
s.fontName=_d9b;
this.applyStyle(_d9a,s);
book.network.appendCommand("RangeSetFontName",{bookRevId:book.bookRevId,sheetId:this.id,range:_d9a.toString(),fontName:_d9b});
};
editgrid.Worksheet.prototype.setRangeFontSize=function(_d9e,_d9f){
var book=this.book;
var s=new editgrid.Style();
s.fontSize=_d9f;
this.applyStyle(_d9e,s);
book.network.appendCommand("RangeSetFontSize",{bookRevId:book.bookRevId,sheetId:this.id,range:_d9e.toString(),fontSize:_d9f});
};
editgrid.Worksheet.prototype.setRangeFormat=function(_da2,_da3){
var book=this.book;
var s=new editgrid.Style();
s.format=_da3;
this.applyStyle(_da2,s);
book.network.appendCommand("RangeSetFormat",{bookRevId:book.bookRevId,sheetId:this.id,range:_da2.toString(),format:_da3});
};
editgrid.Worksheet.prototype.rangeClear=function(_da6,flag){
var book=this.book;
this._rangeClear(_da6,flag);
book.fireRangeNeedRepaint(this,_da6);
book.network.appendCommand("ClearRange",{bookRevId:book.bookRevId,sheetId:this.id,range:_da6.toString(),clearType:flag});
};
editgrid.Worksheet.prototype.rangeCopy=function(_da9){
var book=this.book;
book.network.appendCommand("CopyRange",{bookRevId:book.bookRevId,sheetId:this.id,range:_da9.toString()},null,true);
};
editgrid.Worksheet.prototype.rangeCut=function(_dab){
var book=this.book;
this._rangeClear(_dab,SSS_CLEAR_ALL);
book.fireRangeNeedRepaint(this,_dab);
book.network.appendCommand("CutRange",{bookRevId:book.bookRevId,sheetId:this.id,range:_dab.toString()},null,true);
};
editgrid.Worksheet.prototype.rangeMove=function(_dad,_dae,_daf,_db0){
var book=this.book;
book.network.appendCommand("MoveRange",{bookRevId:book.bookRevId,srcSheetId:this.id,rangeSrc:_dad.toString(),dstSheetId:this.id,dstCol:_dae,dstRow:_daf,allowOverwrite:(book.warnPasteOverwrite?0:1),flags:(_db0||0)},null,true);
};
editgrid.Worksheet.prototype.paste=function(_db2,_db3){
var book=this.book;
book.network.appendCommand("Paste",{bookRevId:book.bookRevId,sheetId:this.id,range:_db2.toString(),allowOverwrite:book.warnPasteOverwrite?0:1,flags:_db3||SSS_PASTE_DEFAULT},null,true);
};
editgrid.Worksheet.prototype.bltFormat=function(_db5,_db6,_db7){
var book=this.book;
book.network.appendCommand("BltFormat",{bookRevId:book.bookRevId,srcSheetId:_db5.id,dstSheetId:this.id,rangeSrc:_db6.toString(),rangeDst:_db7.toString()});
};
editgrid.Worksheet.prototype.mergeCells=function(_db9){
var book=this.book;
book.network.appendCommand("MergeCells",{bookRevId:book.bookRevId,sheetId:this.id,range:_db9.toString()});
};
editgrid.Worksheet.prototype.unmergeCells=function(_dbb){
var book=this.book;
book.network.appendCommand("UnmergeCells",{bookRevId:book.bookRevId,sheetId:this.id,range:_dbb.toString()});
};
editgrid.Worksheet.prototype.addFilter=function(_dbd){
var book=this.book;
book.network.appendCommand("AddFilter",{bookRevId:book.bookRevId,sheetId:this.id,range:_dbd.toString()});
};
editgrid.Worksheet.prototype.removeFilter=function(_dbf){
var book=this.book;
book.network.appendCommand("RemoveFilter",{bookRevId:book.bookRevId,sheetId:this.id,range:_dbf.toString()});
};
editgrid.Worksheet.prototype.filterQueryRows=function(_dc1){
var json=std.json.toJSONString(_dc1);
var book=this.book;
book.network.appendCommand("FilterQueryRows",{bookRevId:book.bookRevId,sheetId:this.id,json:json});
};
editgrid.Worksheet.prototype.filterQueryMatches=function(_dc4,row,col){
var json=std.json.toJSONString(_dc4);
var book=this.book;
book.network.appendCommand("FilterQueryMatches",{bookRevId:book.bookRevId,sheetId:this.id,json:json,row:row,col:col});
};
editgrid.Worksheet.prototype.sort=function(_dc9,_dca,_dcb,_dcc,_dcd){
var _dce,i;
var book=this.book;
_dce={bookRevId:book.bookRevId,sheetId:this.id,range:_dc9,hasHeader:_dcc?1:0,caseSen:_dcd?1:0,numClause:_dca.length};
for(i=0;i<_dca.length;++i){
_dce["s"+i]=_dca[i];
_dce["o"+i]=_dcb[i]?1:0;
}
book.network.appendCommand("Sort",_dce,120000);
};
editgrid.Worksheet.prototype.setFreezePanes=function(_dd1,_dd2,_dd3,_dd4){
var n=_dd1!=null||_dd2!=null?0:-1;
var book=this.book;
book.network.appendCommand("SheetFreezePanes",{bookRevId:book.bookRevId,sheetId:this.id,frozenRowFr:_dd1==null?n:_dd1,frozenColFr:_dd2==null?n:_dd2,frozenRowTo:_dd3==null?n:_dd3+1,frozenColTo:_dd4==null?n:_dd4+1});
};
editgrid.Worksheet.prototype.setGridLines=function(_dd7){
var book=this.book;
book.network.appendCommand("SheetGridLines",{bookRevId:book.bookRevId,sheetId:this.id,visible:_dd7?1:0});
};
editgrid.Worksheet.prototype.rangeSetBorder=function(_dd9,_dda){
var book=this.book;
var _ddc={bookRevId:book.bookRevId,sheetId:this.id,range:_dd9.toString()};
var _ddd=std.conv.rgbToInt;
if(_dda[BORDER_TOP]){
_ddc.topType=_dda[BORDER_TOP].type;
_ddc.topColor=_ddd(_dda[BORDER_TOP].color);
}
if(_dda[BORDER_BOTTOM]){
_ddc.bottomType=_dda[BORDER_BOTTOM].type;
_ddc.bottomColor=_ddd(_dda[BORDER_BOTTOM].color);
}
if(_dda[BORDER_LEFT]){
_ddc.leftType=_dda[BORDER_LEFT].type;
_ddc.leftColor=_ddd(_dda[BORDER_LEFT].color);
}
if(_dda[BORDER_RIGHT]){
_ddc.rightType=_dda[BORDER_RIGHT].type;
_ddc.rightColor=_ddd(_dda[BORDER_RIGHT].color);
}
if(_dda[BORDER_HORIZ]){
_ddc.horiType=_dda[BORDER_HORIZ].type;
_ddc.horiColor=_ddd(_dda[BORDER_HORIZ].color);
}
if(_dda[BORDER_VERT]){
_ddc.vertType=_dda[BORDER_VERT].type;
_ddc.vertColor=_ddd(_dda[BORDER_VERT].color);
}
book.network.appendCommand("RangeSetBorder",_ddc);
};
editgrid.Worksheet.prototype.setCell=function(row,col,text,_de1,_de2,_de3){
var book=this.book;
var cell=this._setCellLocalChange(row,col,text,_de1,_de2,_de3);
std.topic.publish(book,"onCellUpdate",this,cell,row,col);
book.network.appendCommand("ChangeCell",{bookRevId:book.bookRevId,sheetId:this.id,pos:editgrid.getCellId(row,col),s:cell?text:""});
return cell;
};
editgrid.Worksheet.prototype.repairArrayFormula=function(row,col){
var book=this.book;
book.network.appendCommand("RepairArrayFormula",{bookRevId:book.bookRevId,sheetId:this.id,pos:editgrid.getCellId(row,col)});
};
editgrid.Worksheet.prototype.nextRepairableArrayFormula=function(row,col){
var book=this.book;
book.network.appendCommand("FindNextRepairableArrayFormula",{bookRevId:book.bookRevId,sheetId:this.id,pos:editgrid.getCellId(row,col)});
};
editgrid.Worksheet.prototype.search=function(row,col,_dee,_def,_df0){
var book=this.book;
var _df2={bookRevId:book.bookRevId,sheetId:this.id,pos:editgrid.getCellId(row,col),keyword:_dee,forward:_def?1:0};
if(_df0){
for(var k in _df0){
_df2[k]=_df0[k];
}
}
book.network.appendCommand("Search",_df2);
};
editgrid.Worksheet.prototype.replaceFirst=function(row,col,_df6,_df7,_df8,_df9){
var book=this.book;
var _dfb={bookRevId:book.bookRevId,sheetId:this.id,pos:editgrid.getCellId(row,col),replaceWhat:_df6,replaceWith:_df7,forward:_df8?1:0,ignoreCase:_df9.ignoreCase?1:0,wholeWords:_df9.wholeWords?1:0};
book.network.appendCommand("ReplaceFirst",_dfb);
};
editgrid.Worksheet.prototype.replaceRange=function(_dfc,_dfd,_dfe,_dff){
var book=this.book;
var _e01={bookRevId:book.bookRevId,sheetId:this.id,range:_dfc.toString(),replaceWhat:_dfd,replaceWith:_dfe,ignoreCase:_dff.ignoreCase?1:0,wholeWords:_dff.wholeWords?1:0};
book.network.appendCommand("ReplaceRange",_e01);
};
editgrid.Worksheet.prototype.replaceAll=function(_e02,_e03,_e04){
var book=this.book;
var _e06={bookRevId:book.bookRevId,sheetId:this.id,replaceWhat:_e02,replaceWith:_e03,ignoreCase:_e04.ignoreCase?1:0,wholeWords:_e04.wholeWords?1:0};
book.network.appendCommand("ReplaceRange",_e06);
};
editgrid.Worksheet.prototype.lock=function(_e07){
var book=this.book;
book.network.appendCommand("LockGridRegion",{bookRevId:book.bookRevId,sheetId:this.id,range:_e07.toString()});
};
editgrid.Worksheet.prototype.unlock=function(_e09){
var book=this.book;
if(book.isOwner||book.isOrgAdminRealised){
book.network.appendCommand("UnlockExactGridRegionByOwner",{bookRevId:book.bookRevId,sheetId:this.id,range:_e09.toString()});
}else{
book.network.appendCommand("UnlockExactGridRegion",{bookRevId:book.bookRevId,sheetId:this.id,range:_e09.toString()});
}
};
editgrid.Worksheet.prototype.locksGet=function(){
var k,_e0c=this.locks;
for(k in _e0c){
std.topic.publish(this.book,"onLockAdd",_e0c[k]);
}
};
editgrid.Worksheet.prototype.isLockedByOtherUser=function(){
var _e0d=this.locks;
for(var name in _e0d){
if(_e0d[name].userId!=this.book.userId){
return true;
}
}
return false;
};
editgrid.Worksheet.prototype.getCellIdx=function(row,col){
return row*256+col;
};
editgrid.Worksheet.prototype.fromCellIdx=function(idx){
return {row:idx>>>8,col:idx%256};
};
editgrid.Worksheet.prototype.getStyle=function(row,col){
return row<0||row>65535||col<0||col>255?null:this._getStyle(row,col);
};
editgrid.Worksheet.prototype._getStyle=function(row,col){
var tile,w,h,c,r,_e1b;
_e1b=TILE_TOP_LEVEL;
tile=this.tileRoot;
recursion:
do{
w=tileWidths[_e1b];
h=tileHeights[_e1b];
c=col/w|0;
r=row/h|0;
switch(tile.type){
case 0:
return tile.styles[0];
case 1:
return tile.styles[c];
case 2:
return tile.styles[r];
case 3:
return tile.styles[r*TILE_SIZE_COL+c];
case 4:
--_e1b;
tile=tile.ptrs[r*TILE_SIZE_COL+c];
col-=c*w;
row-=r*h;
continue recursion;
default:
return null;
}
}while(true);
};
editgrid.Worksheet.prototype.getStyleCached=function(row,col,_e1e){
if(_e1e!=null){
if(_e1e._style==null){
_e1e._style=[];
}
var key=row*256+col;
return _e1e._style[key]||(_e1e._style[key]=this.getStyle(row,col));
}
return this.getStyle(row,col);
};
editgrid.Worksheet.prototype._errorsEqual=function(_e20,_e21){
if(_e20==undefined&&_e21==undefined){
return true;
}
if(_e20==undefined&&_e21!=undefined){
return false;
}
if(_e20!=undefined&&_e21==undefined){
return false;
}
if(_e20.length!=_e21.length){
return false;
}
for(var i=0;i<_e20.length;++i){
if(!this._errorEqual(_e20[i],_e21[i])){
return false;
}
}
return true;
};
editgrid.Worksheet.prototype._errorEqual=function(_e23,_e24){
if(_e23.type!=_e24.type){
return false;
}
if(_e23.error!=_e24.error){
return false;
}
switch(_e23.type){
case SSS_ERROR_TYPE_REMOTE_DATA:
if(_e23.isTemp!=_e24.isTemp){
return false;
}
}
return true;
};
editgrid.Worksheet.prototype._setCellForCellDiff=function(row,col,text,_e28,_e29,_e2a,_e2b,_e2c){
var _e2d=this.getCellIdx(row,col);
var cell=this.cells[_e2d];
var _e2f;
if((_e2f=text==null||text=="")&&!cell){
return cell;
}
if(cell){
if(text==cell.text&&undefined===cell.lasttext&&_e28==cell.rtext&&undefined===cell.lastrtext&&_e29==cell.ntext&&undefined===cell.lastntext&&_e2a==cell.vtype&&undefined===cell.lastvtype&&_e2b==cell.intcolor&&undefined===cell.lastintcolor&&this._errorsEqual(cell.errors,_e2c)){
return cell;
}
if(_e2f){
delete this.cells[_e2d];
}else{
cell.updateForCellDiff(text,_e28,_e29,_e2a,_e2b,_e2c);
}
}else{
this.cells[_e2d]=cell=new editgrid.CellData(text,_e28,_e29,_e2a,_e2b,_e2c,this);
}
if(cell){
if(row>this.rowMax){
this.setRowColExtent(true,row);
}
if(col>this.colMax){
this.setRowColExtent(false,col);
}
}
return cell;
};
editgrid.Worksheet.prototype._getCellLocalChange=function(row,col){
return this._cellLocalChange[this.getCellIdx(row,col)];
};
editgrid.Worksheet.prototype._setCellLocalChange=function(row,col,text,_e35,_e36,_e37,_e38){
var _e39=this.getCellIdx(row,col);
var _e3a=this._cellLocalChange[_e39];
var cell=_e3a?(_e3a!=this.LOCAL_CELL_DELETED?_e3a:null):this.cells[_e39];
var _e3c;
if(((_e3c=text==null||text=="")&&!cell)||(cell&&text==cell.text&&_e35==cell.rtext&&_e36==cell.ntext&&_e37==cell.vtype)){
return cell;
}
if(_e3c){
_e3a=this._cellLocalChange[_e39]=this.LOCAL_CELL_DELETED;
}else{
if(_e3a&&_e3a!=this.LOCAL_CELL_DELETED){
_e3a.update(text,_e35,_e36,_e37,_e38,new Array());
}else{
_e3a=this._cellLocalChange[_e39]=new editgrid.CellData(text,_e35,_e36,_e37,_e38,null,this);
}
}
if(cell){
if(row>this.rowMax){
this.setRowColExtent(true,row);
}
if(col>this.colMax){
this.setRowColExtent(false,col);
}
}
return _e3a!=this.LOCAL_CELL_DELETED?_e3a:null;
};
editgrid.Worksheet.prototype._delCellLocalChange=function(row,col){
var _e3f=this.getCellIdx(row,col);
this._cellLocalChange[_e3f]=null;
};
editgrid.Worksheet.prototype._rangeClear=function(_e40,flag){
var rf=_e40.rowFr,cf=_e40.colFr;
var rt=_e40.rowTo,ct=_e40.colTo;
if(rf<=this.rowMax&&this.rowMax<=rt){
this.hasRowMax=false;
}
if(cf<=this.colMax&&this.colMax<=ct){
this.hasColMax=false;
}
if(flag&SSS_CLEAR_CONTENTS){
if(_e40.isSingle()){
delete this.cells[this.getCellIdx(_e40.rowFr,_e40.colFr)];
}else{
var c,r,i,n;
if(!rf&&rt==65535||!cf&&ct==255){
for(i in this.cells){
r=(n=parseInt(i))>>>8;
c=n&255;
if(r<rf||r>rt||c<cf||c>ct){
continue;
}
delete this.cells[this.getCellIdx(r,c)];
}
}else{
for(r=rf;r<=rt;++r){
for(c=cf;c<=ct;++c){
delete this.cells[this.getCellIdx(r,c)];
}
}
}
}
}
if(flag&SSS_CLEAR_FORMATS){
this.setStyle(_e40,this.defStyle);
}
};
editgrid.Worksheet.prototype.rangeForeach=function(_e4a,func){
var rf=_e4a.rowFr,cf=_e4a.colFr;
var rt=_e4a.rowTo,ct=_e4a.colTo;
var c,r,i,n;
if(!rf&&rt==65535||!cf&&ct==255){
for(i in this.cells){
r=(n=parseInt(i))>>>8;
c=n&255;
if(r<rf||r>rt||c<cf||c>ct){
continue;
}
func(this.cells[i],r,c);
}
}else{
for(r=rf;r<=rt;++r){
for(c=cf;c<=ct;++c){
func(this.cells[this.getCellIdx(r,c)],r,c);
}
}
}
};
editgrid.CellData.NOT_LOADED_CELL=new editgrid.CellData("","","",null,0,null);
editgrid.Worksheet.prototype.getCell=function(_e54){
return new editgrid.Cell(this,editgrid.CellRef.from(_e54));
};
editgrid.Worksheet.prototype._getCell=function(row,col){
if(this.isCellLoaded(row,col)){
return this.cells[this.getCellIdx(row,col)];
}
if(!this.isCellLoading(row,col)){
this.cellLoaderFunc(this,row,col);
}
return editgrid.CellData.NOT_LOADED_CELL;
};
editgrid.Worksheet.prototype.LOCAL_CELL_DELETED=new editgrid.CellData("","","",null,0,null);
editgrid.Worksheet.prototype._getCellAndLocalChange=function(row,col){
var cell;
if((cell=this._getCellLocalChange(row,col))!=null){
return cell==this.CELL_DELETED?null:cell;
}else{
return this._getCell(row,col);
}
};
editgrid.Worksheet.prototype._getCellWithoutLoadRegion=function(row,col){
if(this.isCellLoaded(row,col)){
return this.cells[this.getCellIdx(row,col)];
}
return editgrid.CellData.NOT_LOADED_CELL;
};
editgrid.Worksheet.prototype.setCellLoader=function(_e5c){
this.cellLoaderFunc=_e5c;
};
editgrid.Worksheet.prototype.defaultCellLoader=function(_e5d,row,col){
var _e60=_e5d.getCellRegionIdx(row,col);
_e5d.loadRegion(_e60);
};
editgrid.Worksheet.prototype.getCellText=function(row,col){
var cell=this._getCellAndLocalChange(row,col);
return cell?cell.getText():"";
};
editgrid.Worksheet.prototype.getCellComment=function(row,col){
return this.cellCommentStore.getByIdx(this.getCellIdx(row,col));
};
editgrid.Worksheet.prototype.getCellCommentById=function(id){
return this.cellCommentStore.existsId(id);
};
editgrid.Worksheet.prototype.getCellCommentPosById=function(id){
var idx=this.cellCommentStore.getIdx(id);
return idx!=null?this.fromCellIdx(idx):null;
};
editgrid.Worksheet.prototype.getRowSize=function(idx){
return this.getRowColSize(true,idx);
};
editgrid.Worksheet.prototype.getColSize=function(idx){
return this.getRowColSize(false,idx);
};
editgrid.Worksheet.prototype.getRowColSize=function(_e6b,idx){
if(_e6b){
var row=this.rows[idx];
if(row){
return row.hidden?0:row.size;
}else{
return this.defRowSize;
}
}else{
var col=this.cols[idx];
if(col){
return col.hidden?0:col.size;
}else{
return this.defColSize;
}
}
};
editgrid.Worksheet.prototype.getRealRowSize=function(idx){
return this.getRealRowColSize(true,idx);
};
editgrid.Worksheet.prototype.getRealColSize=function(idx){
return this.getRealRowColSize(false,idx);
};
editgrid.Worksheet.prototype.getRealRowColSize=function(_e71,idx){
if(_e71){
var row=this.rows[idx];
return row?row.size:this.defRowSize;
}else{
var col=this.cols[idx];
return col?col.size:this.defColSize;
}
};
editgrid.Worksheet.prototype._getRowOffset=function(_e75){
var sum;
if((sum=this.rowOffsetCache[_e75])==null){
var n=this.rowOffsetCache.length-1;
sum=this.rowOffsetCache[n];
for(var i=n;i<_e75;++i){
sum=this.rowOffsetCache[i+1]=sum+this.getRowSize(i);
}
}
return sum;
};
editgrid.Worksheet.prototype._getColOffset=function(_e79){
var sum;
if((sum=this.colOffsetCache[_e79])==null){
var n=this.colOffsetCache.length-1;
sum=this.colOffsetCache[n];
for(var i=n;i<_e79;++i){
sum=this.colOffsetCache[i+1]=sum+this.getColSize(i);
}
}
return sum;
};
editgrid.Worksheet.prototype.getRowColsSize=function(_e7d,fr,to){
if(_e7d){
return this._getRowOffset(to+1)-this._getRowOffset(fr);
}else{
return this._getColOffset(to+1)-this._getColOffset(fr);
}
};
editgrid.Worksheet.prototype._resetRowColSize=function(_e80){
var rcs,_e82;
if(_e80){
rcs=this.rows;
_e82=this.defRowSize;
}else{
rcs=this.cols;
_e82=this.defColSize;
}
for(var i in rcs){
if(rcs[i].hidden){
rcs[i].size=_e82;
}else{
delete rcs[i];
}
}
};
editgrid.Worksheet.prototype.setDefColSize=function(size){
this.defColSize=size;
this._resetRowColSize(false);
this._onLocalRowColUpdate(false,0);
};
editgrid.Worksheet.prototype.setDefRowSize=function(size){
this.defRowSize=size;
this._resetRowColSize(true);
this._onLocalRowColUpdate(true,0);
};
editgrid.Worksheet.prototype.applyStyle=function(_e86,_e87){
this._applyStyle(_e86,_e87);
this.book.fireRangeNeedRepaint(this,_e86);
};
editgrid.Worksheet.prototype._applyStyle=function(_e88,_e89){
this.tileRoot=this.tileRoot.applyStyle(TILE_TOP_LEVEL,0,0,_e88,_e89);
};
editgrid.Worksheet.prototype.setStyle=function(_e8a,_e8b){
this.tileRoot=this.tileRoot.setStyle(TILE_TOP_LEVEL,0,0,_e8a,_e8b);
};
editgrid.Worksheet.prototype.getStyleList=function(_e8c){
var tbl={},k,sr1,sr2;
this.tileRoot.foreachTile(TILE_TOP_LEVEL,0,0,_e8c,tbl,this.defStyle);
for(k in tbl){
sr1=tbl[k];
if(sr1.c1>=1&&(sr2=tbl[k=editgrid.toColRowIdx(sr1.r2,sr1.c1-1)])&&sr1.r1==sr2.r1&&sr1.style.equal(sr2.style)){
delete tbl[k];
sr2.c2=sr1.c2;
tbl[editgrid.toColRowIdx(sr2.r2,sr2.c2)]=sr2;
}
}
return tbl;
};
editgrid.Worksheet.prototype.shiftRowCol=function(_e91,fr,to){
var _e94=to-fr;
if(!_e94){
return;
}
this.hasRowMax=false;
this.hasColMax=false;
var _e95=this.getRowColExtent(_e91);
this.setRowColExtent(_e91,editgrid.shiftPos(_e95,fr,to,65536));
var _i,i,j,n,r,c;
var del=_e94<0;
if(_e91){
editgrid.shiftArrayPoints(this.rows,fr,to,65536,true);
this.loadedRegionBitArray.shift(fr,to,1);
this.loadingRegionBitArray.shift(fr,to,0);
}else{
editgrid.shiftArrayPoints(this.cols,fr,to,256,true);
}
this._onLocalRowColUpdate(_e91,_e94>0?fr:to);
var _e9d=[];
var d=_e91?_e94<<8:_e94;
for(_i in this.cells){
i=parseInt(_i);
j=_e91?(i>>>8):(i&255);
if(j>=fr){
if((n=j+_e94)>=(_e91?65536:256)||n<0){
continue;
}
_e9d[i+d]=this.cells[i];
}else{
if(!del||j<to){
_e9d[i]=this.cells[i];
}
}
}
this.cells=_e9d;
var rng1,rng2,l1,l2,ns,k,node,r,c,cr,cc,src,_ea9;
_ea9=del?to:fr;
if(!del){
if(fr&&_e94==1){
--fr;
--to;
}else{
src=fr?fr-1:0;
}
}
if(_e91){
rng1=new editgrid.RangeRef(fr,0,65535,255);
if(src!=null){
rng2=new editgrid.RangeRef(src,0,src,255);
}
r=to;
c=0;
cr=_ea9;
cc=0;
}else{
rng1=new editgrid.RangeRef(0,fr,65535,255);
if(src!=null){
rng2=new editgrid.RangeRef(0,src,65535,src);
}
r=0;
c=to;
cr=0;
cc=_ea9;
}
l1=this.getStyleList(rng1);
if(rng2){
l2=this.getStyleList(rng2);
}
this.setStyle(new editgrid.RangeRef(cr,cc,65535,255),this.defStyle);
for(k in l1){
node=l1[k];
this.setStyle(new editgrid.RangeRef(node.r1+r,node.c1+c,node.r2+r,node.c2+c),node.style);
}
if(l2){
--to;
for(k in l2){
node=l2[k];
rng2=_e91?new editgrid.RangeRef(fr,node.c1,to,node.c2):new editgrid.RangeRef(node.r1,fr,node.r2,to);
this.setStyle(rng2,node.style);
}
}
};
editgrid.Worksheet.prototype.rangeSum=function(_eaa){
var _eab=this.cells;
var _eac;
if((rowWise=_eaa.rowFr!=_eaa.rowTo)){
var fr=_eaa.rowFr,to=_eaa.rowTo;
for(var i=_eaa.colFr,j=_eaa.colTo;i<=j;++i){
var c=editgrid.getColName(i);
_eac=this.getCellIdx(to+1,i);
while(_eab[_eac]){
_eac+=256;
}
_eac=_eac>>>8;
if(_eac>=65536){
return;
}
this.setCell(_eac,i,"=SUM("+c+(fr+1)+":"+c+(to+1)+")",null,null,null);
}
}else{
_eac=this.getCellIdx(_eaa.rowFr,_eaa.colTo+1);
while(_eab[_eac]){
++_eac;
}
_eac=_eac&255;
if(_eac>=256){
return;
}
this.setCell(_eaa.rowFr,_eac,"=SUM("+_eaa.getName()+")",null,null,null);
}
};
editgrid.Worksheet.prototype.getColMaxAtRow=function(row){
var i,_i,max=0;
for(_i in this.cells){
i=parseInt(_i);
if((i>>>8)==row&&(i&=255)>max){
max=i;
}
}
return max;
};
editgrid.Worksheet.prototype.getRowMax=function(){
if(this.hasRowMax){
return this.rowMax;
}
var i,_i,max=0;
for(_i in this.cells){
i=parseInt(_i);
if((i>>>=8)>max){
max=i;
}
}
this.hasRowMax=true;
this.rowMax=max;
return max;
};
editgrid.Worksheet.prototype.getColMax=function(){
if(this.hasColMax){
return this.colMax;
}
var i,_i,max=0;
for(_i in this.cells){
i=parseInt(_i);
if((i&=255)>max){
max=i;
}
}
this.hasColMax=true;
this.colMax=max;
return max;
};
editgrid.Worksheet.prototype.lockAdd=function(_ebc,_ebd,_ebe,_ebf,_ec0){
var r=new editgrid.RangeRef(_ebd,_ebe,_ebf,_ec0);
r.userId=_ebc;
r.sheet=this;
return this.locks[r.getName()]=r;
};
editgrid.Worksheet.prototype.lockDel=function(_ec2,_ec3,_ec4,_ec5){
var name=editgrid.RangeRef.getName(_ec2,_ec3,_ec4,_ec5);
var lock=this.locks[name];
delete this.locks[name];
return lock;
};
editgrid.Worksheet.prototype.lockable=function(_ec8){
return this.editable(_ec8);
};
editgrid.Worksheet.prototype.editable=function(_ec9){
var book=this.book;
if(book.isOwner){
return true;
}
var l,uid=book.userId;
for(var n in this.locks){
if((l=this.locks[n]).userId!=uid&&l.intersects(_ec9)){
return false;
}
}
return true;
};
editgrid.Worksheet.prototype.cellEditable=function(row,col){
var book=this.book;
if(book.isOwner){
return true;
}
var l,uid=book.userId;
for(var n in this.locks){
if((l=this.locks[n]).userId!=uid&&l.hasCell(row,col)){
return false;
}
}
return true;
};
editgrid.Worksheet.prototype.hasLockAt=function(_ed4){
for(var n in this.locks){
var l=this.locks[n];
if(l.equal(_ed4)){
return true;
}
}
return false;
};
editgrid.Worksheet.prototype.getSheetObjects=function(){
return this.objects;
};
editgrid.Worksheet.prototype.clearCellComment=function(row,col){
this.setCellComment(row,col,"");
};
editgrid.Worksheet.prototype.setCellComment=function(row,col,text){
var book=this.book;
book.network.appendCommand("CellSetComment",{bookRevId:book.bookRevId,sheetId:this.id,text:text,row:row,col:col});
};
editgrid.Worksheet.prototype._mergeInit=function(){
this.listMerged=[];
this.hashMerged={};
this.hashMergedReversed={};
this.hashMergedCells={};
this.hashMergedCols={};
this.hashMergedRows={};
this._mergedAll=null;
};
editgrid.Worksheet.prototype._mergeCellCacheAdd=function(rng){
if(rng.isRow()&&rng.isCol()){
this._mergedAll=rng;
}else{
if(rng.isRow()){
for(var r=rng.rowFr;r<=rng.rowTo;++r){
this.hashMergedRows[r]=rng;
}
}else{
if(rng.isCol()){
for(var c=rng.colFr;c<=rng.colTo;++c){
this.hashMergedCols[c]=rng;
}
}else{
for(var r=rng.rowFr;r<=rng.rowTo;++r){
for(var c=rng.colFr;c<=rng.colTo;++c){
this.hashMergedCells[editgrid.getCellId(r,c)]=rng;
}
}
}
}
}
};
editgrid.Worksheet.prototype._mergeCellCacheRemove=function(rng){
if(rng.isRow()&&rng.isCol()){
this._mergedAll=null;
}else{
if(rng.isRow()){
for(var r=rng.rowFr;r<=rng.rowTo;++r){
delete this.hashMergedRows[r];
}
}else{
if(rng.isCol()){
for(var c=rng.colFr;c<=rng.colTo;++c){
delete this.hashMergedCols[c];
}
}else{
for(var r=rng.rowFr;r<=rng.rowTo;++r){
for(var c=rng.colFr;c<=rng.colTo;++c){
var k=editgrid.getCellId(r,c);
delete this.hashMergedCells[k];
}
}
}
}
}
};
editgrid.Worksheet.prototype.mergeAdd=function(_ee4){
var rng=_ee4.clone();
this.hashMerged[editgrid.getCellId(rng.rowFr,rng.colFr)]=rng;
this.hashMergedReversed[rng.getName()]={row:rng.rowFr,col:rng.colFr};
this.listMerged.push(rng);
this._mergeCellCacheAdd(rng);
return rng;
};
editgrid.Worksheet.prototype.mergeRemove=function(_ee6){
var key=editgrid.getCellId(_ee6.rowFr,_ee6.colFr);
var val=this.hashMerged[key];
if(val!=null){
this._mergeCellCacheRemove(val);
delete this.hashMerged[key];
delete this.hashMergedReversed[val.getName()];
this.listMerged=std.list.grep(this.listMerged,function(rng){
return !rng.equal(_ee6);
});
}
return _ee6;
};
editgrid.Worksheet.prototype.mergeForeach=function(_eea){
for(var i=0;i<this.listMerged.length;++i){
_eea(this.listMerged[i]);
}
};
editgrid.Worksheet.prototype.mergeGetIntersection=function(_eec){
return std.list.grep(this.listMerged,function(r){
return r.intersects(_eec);
});
};
editgrid.Worksheet.prototype.mergeHasIntersection=function(_eee){
return std.list.find(this.listMerged,function(r){
return r.intersects(_eee);
});
};
editgrid.Worksheet.prototype.mergeHasPartialIntersection=function(_ef0){
return std.list.find(this.listMerged,function(r){
return r.intersects(_ef0)&&!r.inside(_ef0);
});
};
editgrid.Worksheet.prototype.mergeHasCell=function(row,col){
var k=editgrid.getCellId(row,col);
if(this.hashMergedCells[k]){
return this.hashMergedCells[k];
}else{
if(this.hashMergedCols[col]){
return this.hashMergedCols[col];
}else{
if(this.hashMergedRows[row]){
return this.hashMergedRows[row];
}else{
return this._mergedAll;
}
}
}
};
editgrid.Worksheet.prototype.mergeIsSingleCell=function(_ef5){
if(_ef5.rowFr==_ef5.rowTo&&_ef5.colFr==_ef5.colTo){
return {row:_ef5.rowFr,col:_ef5.colFr};
}else{
return this.hashMergedReversed[_ef5.getName()];
}
};
editgrid.Worksheet.prototype.mergeGetActualRange=function(_ef6){
var pos;
if((pos=this.hashMergedReversed[_ef6.getName()])){
return new editgrid.RangeRef(pos.row,pos.col,pos.row,pos.col);
}
return _ef6.clone();
};
editgrid.Worksheet.prototype.mergeFindContainer=function(_ef8){
var _ef9=true;
var _efa=_ef8.clone();
while(_ef9){
_ef9=false;
merged=this.mergeGetIntersection(_efa);
for(var i=0;i<merged.length;++i){
var r=merged[i];
if(_efa.colFr>r.colFr){
_efa.colFr=r.colFr;
_ef9=true;
}
if(_efa.rowFr>r.rowFr){
_efa.rowFr=r.rowFr;
_ef9=true;
}
if(_efa.colTo<r.colTo){
_efa.colTo=r.colTo;
_ef9=true;
}
if(_efa.rowTo<r.rowTo){
_efa.rowTo=r.rowTo;
_ef9=true;
}
}
}
return _efa;
};
editgrid.Worksheet.prototype.expandRemoteData=function(row,col){
var book=this.book;
book.network.appendCommand("RemoteDataExpand",{bookRevId:book.bookRevId,sheetId:this.id,pos:editgrid.getCellId(row,col)});
};
editgrid.Worksheet.prototype.fetchOnceRemoteData=function(_f00){
var book=this.book;
book.network.appendCommand("RemoteDataFetchOnce",{bookRevId:book.bookRevId,sheetId:this.id,range:_f00.toString()});
};
editgrid.Worksheet.prototype.modelCellCommentAdd=function(id,row,col,data){
if(this.cellCommentStore.existsId(id)){
this.cellCommentStore.remove(id);
}
this.cellCommentStore.insert(id,this.getCellIdx(row,col),data);
};
editgrid.Worksheet.prototype.modelCellCommentUpdate=function(id,data){
this.cellCommentStore.update(id,data);
};
editgrid.Worksheet.prototype.modelCellCommentDelete=function(id){
this.cellCommentStore.remove(id);
};
editgrid.Worksheet.prototype.modelCellCommentRelocate=function(id,row,col){
this.cellCommentStore.relocate(id,this.getCellIdx(row,col));
};
editgrid.Worksheet.prototype.modelFilterAdd=function(_f0c){
var key=_f0c.toString();
this.filters[key]=_f0c;
std.topic.publish(this.book,"onFilterAdd",this,_f0c);
};
editgrid.Worksheet.prototype.modelFilterDel=function(_f0e){
var key=_f0e.toString();
if(this.filters[key]!=null){
delete this.filters[key];
}
std.topic.publish(this.book,"onFilterDel",this,_f0e);
};
editgrid.Worksheet.prototype.modelFilterShift=function(_f10,_f11,_f12,_f13,_f14){
var _f15=_f13.toString();
var _f16=_f14.toString();
if(this.filters[_f15]!=null){
delete this.filters[_f15];
}
this.filters[_f16]=_f14;
std.topic.publish(this.book,"onFilterShift",this,_f10,_f11,_f12,_f13,_f14);
};
editgrid.Worksheet.prototype.filtersGet=function(){
for(var k in this.filters){
std.topic.publish(this.book,"onFilterAdd",this,this.filters[k]);
}
};
editgrid.Worksheet.prototype.filterGetIntersection=function(_f18){
var _f19=[];
for(var k in this.filters){
if(this.filters[k].intersects(_f18)){
_f19.push(this.filters[k]);
}
}
return _f19;
};
editgrid.ArrayMap=function(_f1b){
this.keyValueField=_f1b;
this.clear();
};
editgrid.ArrayMap.prototype.clear=function(){
this.keyMap={};
this.keys=[];
this.itemsMap={};
this.keyedItems=[];
};
editgrid.ArrayMap.prototype.pushItem=function(key,item){
var _f1e=this._storeKey(key);
this.keyedItems.push({key:key,item:item});
var _f1f=this.itemsMap[_f1e];
if(_f1f){
_f1f.push(item);
}else{
this.itemsMap[_f1e]=[item];
}
};
editgrid.ArrayMap.prototype.pushItems=function(key,_f21){
var _f22=this._storeKey(key);
for(var i=0;i<_f21.length;i++){
this.keyedItems.push({key:key,item:_f21[i]});
}
var _f24=this.itemsMap[_f22];
if(_f24){
_f24.push.apply(_f24,_f21);
}else{
this.itemsMap[_f22]=_f21.concat();
}
};
editgrid.ArrayMap.prototype.getArray=function(){
return this.keyedItems;
};
editgrid.ArrayMap.prototype.getItems=function(key){
return this.itemsMap[key[this.keyValueField]]||[];
};
editgrid.ArrayMap.prototype.getKeys=function(){
return this.keys;
};
editgrid.ArrayMap.prototype.isEmpty=function(){
return this.keyedItems.length==0;
};
editgrid.ArrayMap.prototype._storeKey=function(key){
var _f27=key[this.keyValueField];
if(!this.keyMap[_f27]){
this.keyMap[_f27]=key;
this.keys.push(key);
}
return _f27;
};
editgrid.RowCol=function(idx,size,_f2a){
this.size=size;
this.idx=idx;
this.hidden=_f2a;
};
editgrid.Workbook=function(_f2b){
this.bookInfo={bookId:null,bookName:null,workspaceId:null,workspaceName:null,orgId:null,orgName:null,isPersisted:null,licenseType:null};
this.bookSessionInfo={userId:null,isOwner:false,isReadOnly:true,isFormalReadable:false,isPasswordLocked:false,isLogin:false,isOrgAdminRealised:false,isEnableChat:false,warnPasteOverwrite:true,textOverflow:false,verticalAlign:false,locale:null};
this.gridSessionId=_f2b.gridSessionId;
this.permission=new editgrid.permission.Workbook({workbook:this});
this.undoRedo=new editgrid.UndoRedo();
this.processor=new editgrid.CommandProcessor({network:_f2b.network,timingSheetDiff:_f2b.timingSheetDiff,timingKeepAlive:_f2b.timingKeepAlive,yieldTime:_f2b.netYieldTime,tracer:_f2b.tracer});
this.network=this.processor.network;
this.setDebugResponseFunc(null);
std.topic.define(this,"onBeforeCheckout");
std.topic.define(this,"onReady");
std.topic.define(this,"onSaveFailed");
std.topic.define(this,"onProcessResponseError");
std.topic.define(this,"onRangePermissionDenied");
std.topic.define(this,"onHExtend");
std.topic.define(this,"onVExtend");
std.topic.define(this,"onSheetsRebuilt");
std.topic.define(this,"onSheetChangeLocal");
std.topic.define(this,"onSheetChangeRemote");
std.topic.define(this,"onMergeCellAdd");
std.topic.define(this,"onMergeCellDel");
std.topic.define(this,"onLockAdd");
std.topic.define(this,"onLockDel");
std.topic.define(this,"onSheetObjectAdd");
std.topic.define(this,"onSheetObjectDel");
std.topic.define(this,"onSheetObjectUpdate");
std.topic.define(this,"onSheetObjectRebounds");
std.topic.define(this,"onPasteEmpty");
std.topic.define(this,"onSearchResult");
std.topic.define(this,"onNextRepairableArrayFormulaResult");
std.topic.define(this,"onNewRemoteDataSourceUsed");
std.topic.define(this,"onSharingPermissionUpdate");
std.topic.define(this,"onLicenseUpdate");
std.topic.define(this,"onRangeHTMLReady");
std.topic.define(this,"onMultiRowColUpdate");
std.topic.define(this,"onMultiRowColVisibilityChange");
std.topic.define(this,"onNamedExprChange");
std.topic.define(this,"onFilterAdd");
std.topic.define(this,"onFilterDel");
std.topic.define(this,"onFilterShift");
std.topic.define(this,"onFilterQueryMatchesResult");
std.topic.define(this,"onFilterQueryRowsResult");
std.topic.define(this,"onCellUpdate");
std.topic.define(this,"onRangeRTU");
std.topic.define(this,"onRowColShift");
std.topic.define(this,"onLocalUpdate");
std.topic.define(this,"onRemoteUpdate");
std.topic.define(this,"onRestoreCursorPos");
std.topic.define(this,"onPreRTU");
std.topic.define(this,"onPosRTU");
std.topic.define(this,"onPostSubCommands");
std.topic.define(this,"onRangesNeedRepaint");
this.repaintRanges=new editgrid.ArrayMap("id");
this.isReady=false;
this.rowColResizeHistory=new editgrid.RowColUpdateHistory();
this.rowColResizeHistory.onFlush=std.lang.bind(this,function(_f2c){
for(var _f2d in _f2c.rowSheets){
var _f2e=_f2c.getMerged(true,_f2d);
std.topic.publish(this,"onMultiRowColUpdate",_f2c.rowSheets[_f2d],true,_f2e.frList,_f2e.toList,_f2e.sizeList);
}
for(var _f2d in _f2c.colSheets){
var _f2e=_f2c.getMerged(false,_f2d);
std.topic.publish(this,"onMultiRowColUpdate",_f2c.colSheets[_f2d],false,_f2e.frList,_f2e.toList,_f2e.sizeList);
}
});
this.rowColHiddenHistory=new editgrid.RowColUpdateHistory();
this.rowColHiddenHistory.onFlush=std.lang.bind(this,function(_f2f){
for(var _f30 in _f2f.rowSheets){
var _f31=_f2f.getMerged(true,_f30);
std.topic.publish(this,"onMultiRowColVisibilityChange",_f2f.rowSheets[_f30],true,_f31.frList,_f31.toList,_f31.sizeList);
}
for(var _f30 in _f2f.colSheets){
var _f31=_f2f.getMerged(false,_f30);
std.topic.publish(this,"onMultiRowColVisibilityChange",_f2f.colSheets[_f30],false,_f31.frList,_f31.toList,_f31.sizeList);
}
});
this.maxCol=_f2b.maxCol;
this.maxRow=_f2b.maxRow;
this.sheets={};
this.sheetArray=[];
this.linkSheetIdSet={};
this.onLoadListeners=[];
this.onSheetsChangeListeners=[];
this.namedExprModel=new editgrid.namedExpr.NamedExprModel();
std.topic.subscribe(this.processor,"onLocalUpdate",std.lang.bind(this,this._onLocalUpdate));
std.topic.subscribe(this.processor,"onRemoteUpdate",std.lang.bind(this,this._onRemoteUpdate));
std.topic.subscribe(this.processor,"onRestoreCursorPos",std.lang.bind(this,this._fireRestoreCursorPos));
std.topic.subscribe(this.processor,"onPreRTU",std.lang.bind(this,function(){
std.topic.publish(this,"onPreRTU");
}));
std.topic.subscribe(this.processor,"onPosRTU",std.lang.bind(this,function(){
std.topic.publish(this,"onPosRTU");
this.rowColResizeHistory.flush();
this.rowColHiddenHistory.flush();
}));
std.topic.subscribe(this.processor,"onPostSubCommands",std.lang.bind(this,this._postSubCommands));
std.topic.subscribe(this.processor,"onPostResponse",std.lang.bind(this,this._onPostResponse));
this.processor.onProcessResponseItem=this._processResponseItem;
this.processor.onProcessResponseItemContext=this;
};
editgrid.Workbook.prototype.init=function(_f32){
this.bookId=_f32.bookId;
this.userId=_f32.userId;
this.isOwner=_f32.isOwner;
this.isOrgAdminRealised=_f32.isOrgAdminRealised;
this.warnPasteOverwrite=_f32.warnPasteOverwrite;
};
editgrid.Workbook.prototype.setPermission=function(_f33,_f34){
var _f35={bookRevId:this.bookRevId,permission:_f33};
if(_f34){
_f35.password=_f34;
}
this.network.appendCommand("SetBookSharingPermission",_f35);
};
editgrid.Workbook.prototype.setLicense=function(_f36){
this.network.appendCommand("SetBookLicense",{bookRevId:this.bookRevId,license:_f36});
};
editgrid.Workbook.prototype.setBookInfo=function(_f37){
this.bookInfo=std.hash.merge(this.bookInfo,_f37);
};
editgrid.Workbook.prototype.setBookSessionInfo=function(_f38){
this.bookSessionInfo=std.hash.merge(this.bookSessionInfo,_f38);
};
editgrid.Workbook.prototype.setEventdEnabled=function(_f39){
if(this.eventdEnabled&&!_f39){
this.processor._scheduleSheetDiff();
}
this.eventdEnabled=_f39;
};
editgrid.Workbook.prototype.setActiveSheet=function(id){
if(this.sheetId==id){
return;
}
this.sheetId=id;
this.sheet=this.sheets[id];
};
editgrid.Workbook.prototype.getSheetByIndex=function(_f3b){
return this.sheetArray[_f3b];
};
editgrid.Workbook.prototype.getSheets=function(){
return std.array.from(this.sheetArray);
};
editgrid.Workbook.prototype.getSheetById=function(id){
return this.sheets[id];
};
editgrid.Workbook.prototype.getSheetByName=function(name){
var _f3e=this.sheets;
for(var i in _f3e){
if(_f3e[i].name==name){
return _f3e[i];
}
}
return null;
};
editgrid.Workbook.prototype.getSheetByOffset=function(id,_f41){
var _f42=this.sheets[id];
var _f43=_f42.pos+_f41;
if(this.hiddensheetMode){
if(_f41==1){
for(var i=_f43;i<this.sheetArray.length;++i){
if(!this.sheetArray[i].hidden){
return this.sheetArray[i];
}
}
}else{
for(var i=_f43;i>=0;--i){
if(!this.sheetArray[i].hidden){
return this.sheetArray[i];
}
}
}
}else{
return this.sheetArray[_f43];
}
};
editgrid.Workbook.prototype.moveSheetTo=function(id,_f46){
var _f47,pos;
if(!(_f47=this.sheets[id])||(pos=_f47.pos)==_f46){
return;
}
this.network.appendCommand("SheetMove",{bookRevId:this.bookRevId,sheetId:id,newPos:_f46});
};
editgrid.Workbook.prototype.moveSheetBy=function(id,_f4a){
if(!(sheet=this.sheets[id])||_f4a==0){
return;
}
this.moveSheetTo(id,sheet.pos+_f4a);
};
editgrid.Workbook.prototype.copySheet=function(id,name,_f4d){
if(!this.sheets[id]){
return;
}
if(name==null){
name="";
}
if(_f4d==null){
_f4d=-1;
}
this.network.appendCommand("SheetCopy",{bookRevId:this.bookRevId,sheetId:id,name:name,newPos:_f4d});
};
editgrid.Workbook.prototype.addSheet=function(name,pos){
for(var i=0;i<this.sheetArray.length;i++){
if(name==this.sheetArray[i].name){
throw new Error("Sheet ["+name+"] is already added.");
}
}
if(pos==null){
pos=this.sheetArray.length;
}
this._addSheet(name,pos);
};
editgrid.Workbook.prototype._addSheet=function(name,pos){
this.network.appendCommand("SheetAdd",{bookRevId:this.bookRevId,sheetPos:pos,name:name});
};
editgrid.Workbook.prototype.addSheetNextTo=function(id,name,_f55){
var _f56,pos;
if(!(_f56=this.sheets[id])){
return;
}
this.addSheet(name,_f55?_f56.pos+1:_f56.pos);
};
editgrid.Workbook.prototype._addSheetNextTo=function(id,name,_f5a){
var _f5b,pos;
if(!(_f5b=this.sheets[id])){
return;
}
this._addSheet(name,_f5a?_f5b.pos+1:_f5b.pos);
};
editgrid.Workbook.prototype.deleteSheet=function(id){
if(!this.sheets[id]){
return;
}
this.network.appendCommand("SheetDelete",{bookRevId:this.bookRevId,sheetId:id});
};
editgrid.Workbook.prototype.hideSheet=function(id){
if(!this.sheets[id]){
return;
}
this.sheets[id].setHidden(1);
};
editgrid.Workbook.prototype.unhideSheet=function(id){
if(!this.sheets[id]){
return;
}
this.sheets[id].setHidden(0);
};
editgrid.Workbook.prototype.addOnSheetsChangeListener=function(_f60,_f61){
if(typeof (_f60)!="function"){
throw new Error("Listener must be a function.");
}
var _f62=new editgrid.ListenerHandle(std.lang.bind(this,function(id,type){
_f60(this.getSheetById(id),type);
}));
if(!_f61||_f61=="local"||_f61=="all"){
std.topic.subscribe(this,"onSheetChangeLocal",_f62.getHandle());
}
if(_f61=="remote"||_f61=="all"){
std.topic.subscribe(this,"onSheetChangeRemote",_f62.getHandle());
}
_f62.scope=_f61;
return _f62;
};
editgrid.Workbook.prototype.removeOnSheetsChangeListener=function(_f65){
var _f66=_f65.scope;
if(!_f66||_f66=="local"||_f66=="all"){
std.topic.unsubscribe(this,"onSheetChangeLocal",_f65.getHandle());
}
if(_f66=="remote"||_f66=="all"){
std.topic.unsubscribe(this,"onSheetChangeRemote",_f65.getHandle());
}
};
editgrid.Workbook.prototype.addOnLoadListener=function(_f67){
if(typeof (_f67)!="function"){
throw new Error("Listener must be a function.");
}
var _f68=new editgrid.ListenerHandle(std.lang.bind(this,function(){
_f67(this);
}));
std.topic.subscribe(this,"onReady",_f68.getHandle());
return _f68;
};
editgrid.Workbook.prototype.removeOnLoadListener=function(_f69){
std.topic.unsubscribe(this,"onReady",_f69.getHandle());
};
editgrid.Workbook.prototype._addLinkSheet=function(_f6a){
this.linkSheetIdSet[_f6a]=true;
var _f6b=this.sheets[_f6a];
if(_f6b){
_f6b.linkSheet=true;
}
};
editgrid.Workbook.prototype.getSheetArray=function(){
return this.sheetArray;
};
editgrid.Workbook.prototype.retryErrorData=function(){
this.network.appendCommand("RemoteDataRetryError",{bookRevId:this.bookRevId});
};
editgrid.Workbook.prototype.namedExprAdd=function(_f6c,name,expr,row,col){
this.network.appendCommand("UpdateNamedExpression",{bookRevId:this.bookRevId,sheetId:_f6c,name:name,expr:expr,cIdx:col,rIdx:row});
};
editgrid.Workbook.prototype.namedExprDel=function(_f71,name){
this.network.appendCommand("RemoveNamedExpression",{bookRevId:this.bookRevId,sheetId:_f71,name:name});
};
editgrid.Workbook.prototype.recalc=function(_f73){
this.network.appendCommand("Recalc",{bookRevId:this.bookRevId});
};
editgrid.Workbook.prototype.undo=function(){
this.network.appendCommand("Undo",{bookRevId:this.bookRevId});
};
editgrid.Workbook.prototype.redo=function(){
this.network.appendCommand("Redo",{bookRevId:this.bookRevId});
};
editgrid.Workbook.prototype._setReady=function(bool){
if(!this.isReady&&bool){
std.topic.publish(this,"onReady");
}
this.isReady=bool;
};
editgrid.Workbook.prototype._postSubCommands=function(item,ctx){
switch(item.type){
case 15:
var _f77=0;
var _f78=0;
for(var i=0;i<this.sheetArray.length;++i){
var _f7a=this.sheetArray[i];
var _f7b=_f7a.numStyleWhenLayout||0;
var _f7c=_f7a.numCellWhenLayout||0;
if(_f77+_f7b>=CHECKOUT_STYLE_THRESHOLD||_f78+_f7c>=CHECKOUT_CELL_THRESHOLD){
continue;
}
_f77+=_f7b;
_f78+=_f7c;
var _f7d,_f7e;
_f7d=_f7a.getRowMax();
if(_f7d<MIN_LOAD_ROW_SIZE-1){
_f7d=MIN_LOAD_ROW_SIZE-1;
}
_f7e=_f7a.getColMax();
if(_f7e<MIN_LOAD_COL_SIZE-1){
_f7e=MIN_LOAD_COL_SIZE-1;
}
if(_f7b==0){
_f7e=255;
_f7d=65535;
}
if(i==0){
if(_f7d>MIN_LOAD_ROW_SIZE-1||_f7e>MIN_LOAD_COL_SIZE-1){
_f7a.loadRegion(_f7a.getCellRegionIdx(MIN_LOAD_ROW_SIZE,0),_f7a.getCellRegionIdx(_f7d,_f7e));
}
}else{
_f7a.loadRegion(_f7a.getCellRegionIdx(0,0),_f7a.getCellRegionIdx(_f7d,_f7e));
}
}
break;
}
switch(item.type){
case 4:
if(!this.eventdEnabled){
this.processor._scheduleSheetDiff();
}
break;
case 16:
var _f7a=this.sheets[item.sheetId];
_f7a.markRowsLoaded(item.fromRow,item.toRow);
var _f7f=new editgrid.RangeRef(item.fromRow,item.fromCol,item.toRow,item.toCol);
if(!this.isReady){
this._setReady(true);
}else{
this._addRepaintRange(_f7a,_f7f);
}
ctx.isSheetRangeContent=0;
break;
case 20:
ctx.isLayoutFirstRange=0;
break;
}
};
editgrid.Workbook.prototype.fireSheetDiff=function(_f80){
this.processor.fireSheetDiff(_f80);
};
editgrid.Workbook.prototype.setDebugResponse=function(_f81){
this.setDebugResponseFunc(_f81?function(item){
std.log.info(std.json.toJSONString(item));
}:null);
};
editgrid.Workbook.prototype.setDebugResponseFunc=function(_f83){
this._debugResponseFunc=_f83;
};
editgrid.Workbook.prototype._processResponseItem=function(item,ctx){
if(this._debugResponseFunc){
this._debugResponseFunc(item);
}
this._currentResponseItem=item;
if(undefined!=item.gridId&&this.gridSessionId==item.gridId){
item.isLocal=1;
}
if(undefined!==item.invalid&&1==item.invalid){
item.type=-1;
}
var _f86=item.gridId?item.gridId==this.gridSessionId:null;
switch(item.type){
case -1:
std.topic.publish(this,"onSaveFailed",item);
break;
case 2:
var _f87=this.sheets[item.sheetId];
var cell=_f87._getCellWithoutLoadRegion(item.row,item.col);
if(null!=cell&&cell!=editgrid.CellData.NOT_LOADED_CELL){
if(undefined==item.text){
if(undefined!=cell.lasttext){
item.text=cell.lasttext;
}else{
if(undefined!=cell.text){
item.text=cell.text;
}
}
}
if(undefined==item.rtext){
if(undefined!=cell.lastrtext){
item.rtext=cell.lastrtext;
}else{
if(undefined!=cell.rtext){
item.rtext=cell.rtext;
}
}
}
if(undefined==item.ntext){
if(undefined!=cell.lastntext){
item.ntext=cell.lastntext;
}else{
if(undefined!=cell.ntext){
item.ntext=cell.ntext;
}
}
}
if(undefined==item.vtype){
if(undefined!=cell.lastvtype){
item.vtype=cell.lastvtype;
}else{
if(undefined!=cell.vtype){
item.vtype=cell.vtype;
}
}
}
if(undefined==item.color){
if(undefined!=cell.lastintcolor){
item.color=cell.lastintcolor;
}else{
if(undefined!=cell.intcolor){
item.color=cell.intcolor;
}
}
}
}
if(undefined!=item.rit&&item.rit){
item.rtext=item.text;
}
if(undefined!=item.nit&&item.nit){
item.ntext=item.text;
}
var _f89=new editgrid.RangeRef(item.row,item.col);
_f87._delCellLocalChange(item.row,item.col);
_f87._setCellForCellDiff(item.row,item.col,item.text,item.rtext,item.ntext,item.vtype,item.color,item.errors);
if(!ctx.isSheetRangeContent){
this._addRepaintRange(_f87,_f89);
if(_f87==this.sheet){
if(!ctx.skipRTU&&!item.isLocal){
std.topic.publish(this,"onRangeRTU",_f89);
}
if(ctx.restoreCursor==null&&item.isLocal){
ctx.setRestoreCursor(_f87,_f89,item.type);
}
}
}
if(_f86!=null){
ctx.addUpdate(_f86,_f87,_f89,"value");
}
break;
case 4:
break;
case 5:
var _f89=new editgrid.RangeRef(item.startRow,item.startCol,item.endRow,item.endCol);
var _f8a=new editgrid.RangeRef(item.startRow,item.startCol,item.endRow,item.endCol);
var _f87=this.sheets[item.sheetId];
var s=item.def?_f87.defStyle:new editgrid.Style();
if(item.style!=null&&item.mask!=null){
item.style=item._style;
item.mask=item._mask;
s.mask=item.mask;
s.bits=item.style;
}
s.setBackColor(item.backColor);
s.fontName=item.fontName;
s.fontSize=item.fontSize;
s.setFontColor(item.fontColor);
s.format=item.format;
if(item.btop!=null){
if(item.bcolortop!=null){
s._setBorder(BORDER_TOP,item.btop,item.bcolortop?item.bcolortop:0);
}else{
s._setBorder(BORDER_TOP,BORDER_NONE,null);
}
}
if(item.bbottom!=null){
if(item.bcolorbottom!=null){
s._setBorder(BORDER_BOTTOM,item.bbottom,item.bcolorbottom?item.bcolorbottom:0);
}else{
s._setBorder(BORDER_BOTTOM,BORDER_NONE,null);
}
if(_f8a.rowTo<65535){
_f8a.rowTo++;
}
}
if(item.bleft!=null){
if(item.bcolorleft!=null){
s._setBorder(BORDER_LEFT,item.bleft,item.bcolorleft?item.bcolorleft:0);
}else{
s._setBorder(BORDER_LEFT,BORDER_NONE,null);
}
}
if(item.bright!=null){
if(item.bcolorright!=null){
s._setBorder(BORDER_RIGHT,item.bright,item.bcolorright?item.bcolorright:0);
}else{
s._setBorder(BORDER_RIGHT,BORDER_NONE,null);
}
if(_f8a.colTo<255){
_f8a.colTo++;
}
}
if(!item.def){
_f87._applyStyle(_f89,s);
this._addRepaintRange(_f87,_f8a);
if(_f87==this.sheet){
if(!ctx.skipRTU&&!item.isLocal){
std.topic.publish(this,"onRangeRTU",_f89);
}
if(ctx.restoreCursor==null&&item.isLocal){
ctx.setRestoreCursor(_f87,_f89,item.type);
}
}
}
if(_f86!=null){
ctx.addUpdate(_f86,_f87,_f89,"style");
}
break;
case 3:
var _f87=this.sheets[item.sheetId];
if(item.isCol&&item.start==0&&item.end==255){
_f87.setDefColSize(item.size);
if(!ctx.isLayoutFirstRange){
this.rowColResizeHistory.add(_f87,!item.isCol,item.start,item.end,item.size);
}
}else{
if(!item.isCol&&item.start==0&&item.end==65535){
_f87.setDefRowSize(item.size);
if(!ctx.isLayoutFirstRange){
this.rowColResizeHistory.add(_f87,!item.isCol,item.start,item.end,item.size);
}
}else{
var _f8c=_f87._setRowColIntervalSize(!item.isCol,item.start,item.end,item.size);
if(_f8c&&!ctx.isLayoutFirstRange){
this.rowColResizeHistory.add(_f87,!item.isCol,item.start,item.end,item.size);
}
}
}
if(_f86!=null){
ctx.addUpdate(_f86,_f87,item.isCol?editgrid.RangeRef.fromCols(item.from,item.to):editgrid.RangeRef.fromRows(item.from,item.to),item.isCol?"resize-col":"resize-row");
}
break;
case 6:
var _f89=new editgrid.RangeRef(item.startRow,item.startCol,item.endRow,item.endCol);
var _f8a=new editgrid.RangeRef(item.startRow,item.startCol,item.endRow,item.endCol);
var _f87;
(_f87=this.sheets[item.sheetId])._rangeClear(_f89,item.clearType);
if(_f8a.colTo<255){
_f8a.colTo++;
}
if(_f8a.rowTo<65535){
_f8a.rowTo++;
}
this._addRepaintRange(_f87,_f8a);
if(_f87==this.sheet){
if(!ctx.skipRTU&&!ctx.skipRTU&&!item.isLocal){
std.topic.publish(this,"onRangeRTU",_f89);
}
if(ctx.restoreCursor==null&&item.isLocal){
ctx.setRestoreCursor(_f87,_f89,item.type);
}
}
if(_f86!=null){
ctx.addUpdate(_f86,_f87,_f89,"clear");
if(item.clearType&SSS_CLEAR_CONTENTS){
ctx.addUpdate(_f86,_f87,_f89,"value");
}
if(item.clearType&SSS_CLEAR_COMMENTS){
ctx.addUpdate(_f86,_f87,_f89,"comment");
}
if(item.clearType&SSS_CLEAR_FORMATS){
ctx.addUpdate(_f86,_f87,_f89,"style");
}
}
break;
case 7:
this._processRepaintRanges();
this.rowColResizeHistory.flush();
this.rowColHiddenHistory.flush();
var _f87=this.sheets[item.sheetId];
_f87.shiftRowCol(true,item.from,item.to);
std.topic.publish(this,"onRowColShift",_f87,true,item.from,item.to);
if(item.isLocal){
ctx.setRestoreCursor(_f87,this._calcRowColShiftRange(true,item.from,item.to),item.type);
}else{
ctx.dontRestoreCursor();
}
if(_f86!=null){
if(item.from<item.to){
ctx.addUpdate(_f86,_f87,editgrid.RangeRef.fromRows(item.from,item.to-1),"ins-row");
}else{
ctx.addUpdate(_f86,_f87,editgrid.RangeRef.fromRows(item.to,item.from-1),"del-row");
}
}
break;
case 8:
this._processRepaintRanges();
this.rowColResizeHistory.flush();
this.rowColHiddenHistory.flush();
var _f87=this.sheets[item.sheetId];
_f87.shiftRowCol(false,item.from,item.to);
std.topic.publish(this,"onRowColShift",_f87,false,item.from,item.to);
if(item.isLocal){
ctx.setRestoreCursor(_f87,this._calcRowColShiftRange(false,item.from,item.to),item.type);
}else{
ctx.dontRestoreCursor();
}
if(_f86!=null){
if(item.from<item.to){
ctx.addUpdate(_f86,_f87,editgrid.RangeRef.fromCols(item.from,item.to-1),"ins-col");
}else{
ctx.addUpdate(_f86,_f87,editgrid.RangeRef.fromCols(item.to,item.from-1),"del-col");
}
}
break;
case 9:
var _f8d={},_f8e=[],_f87,s;
for(var i=0,l=item.sheets.length;i<l;++i){
s=item.sheets[i];
if(!(_f87=this.sheets[s.id])){
_f87=new editgrid.Worksheet(this,s.id);
}
_f87.name=s.name;
if(s.frozenRow!=null&&s.frozenRow!=s.unfrozenRow){
_f87.frozenRowFr=s.frozenRow;
_f87.frozenRowTo=s.unfrozenRow-1;
}
if(s.frozenCol!=null&&s.frozenCol!=s.unfrozenCol){
_f87.frozenColFr=s.frozenCol;
_f87.frozenColTo=s.unfrozenCol-1;
}
_f87.gridLinesVisible=s.gridLinesVisible;
_f87.pos=i;
if(s.extentCol&&s.extentRow){
_f87.hasColMax=true;
_f87.colMax=s.extentCol;
_f87.hasRowMax=true;
_f87.rowMax=s.extentRow;
}
if(s.numCell){
_f87.numCellWhenLayout=s.numCell;
}
if(s.numStyle){
_f87.numStyleWhenLayout=s.numStyle;
}
if(this.linkSheetIdSet[s.id]){
_f87.linkSheet=true;
}else{
_f87.linkSheet=false;
}
if(s.hidden){
_f87.hidden=true;
}else{
_f87.hidden=false;
}
_f8d[s.id]=_f87;
_f8e[i]=_f87;
}
this.sheets=_f8d;
this.sheetArray=_f8e;
if(!this.sheetId||!_f8d[this.sheetId]){
this.sheetId=this.getFirstUnhiddenSheetId();
this.sheet=this.sheets[this.sheetId];
}else{
this.sheet=_f8d[this.sheetId];
}
if(!this.hiddensheetMode){
std.topic.publish(this,"onSheetsRebuilt",this.sheetId);
}else{
if(!this.sheet.hidden){
std.topic.publish(this,"onSheetsRebuilt",this.sheetId);
}else{
std.topic.publish(this,"onSheetsRebuilt",this.getFirstUnhiddenSheetId());
}
}
if(_f86!=null){
std.topic.publish(this,"onSheetChangeLocal",item.sheetId,SSS_SHEET_OPERATIONS[item.operation]);
}else{
if(item.gridId!=null){
std.topic.publish(this,"onSheetChangeRemote",item.sheetId,SSS_SHEET_OPERATIONS[item.operation]);
}
}
break;
case 11:
if(undefined!=item.gridId&&item.gridId!=this.gridSessionId){
break;
}
item.is_undo==1?this.undoRedo.pushUndo():this.undoRedo.pushRedo();
break;
case 12:
if(undefined!=item.gridId&&item.gridId!=this.gridSessionId){
break;
}
item.is_undo==1?this.undoRedo.popUndo(item.count):this.undoRedo.popRedo(item.count);
break;
case 13:
if(undefined!=item.gridId&&item.gridId!=this.gridSessionId){
break;
}
item.is_undo==1?this.undoRedo.clearUndo():this.undoRedo.clearRedo();
break;
case 16:
ctx.isSheetRangeContent=1;
break;
case 17:
var _f87=this.sheets[item.sheetId];
var _f91=item.list;
for(var i=0;i<_f91.length;++i){
var r=_f91[i];
var _f89=_f87.mergeAdd(new editgrid.RangeRef(r.startRow,r.startCol,r.endRow,r.endCol));
std.topic.publish(this,"onMergeCellAdd",_f87,_f89);
this._mergeCellChangeDone(_f87,r.startRow,r.startCol);
this._addRepaintRange(_f87,_f89);
}
if(_f86!=null){
ctx.addUpdate(_f86,_f87,_f89,"mergecell-add");
}
break;
case 18:
var _f87=this.sheets[item.sheetId];
var _f93=item.list;
for(var i=0;i<_f93.length;++i){
var r=_f93[i];
var _f89=_f87.mergeRemove(new editgrid.RangeRef(r.startRow,r.startCol,r.endRow,r.endCol));
std.topic.publish(this,"onMergeCellDel",_f87,_f89);
this._mergeCellChangeDone(_f87,r.startRow,r.startCol);
this._addRepaintRange(_f87,_f89);
}
if(_f86!=null){
ctx.addUpdate(_f86,_f87,_f89,"mergecell-remove");
}
break;
case 19:
var _f87=this.sheets[item.sheetId];
_f87.setRowColHidden(!item.isCol,item.start,item.end,!item.visible,true);
if(!ctx.isLayoutFirstRange){
this.rowColHiddenHistory.add(_f87,!item.isCol,item.start,item.end,!item.visible);
}
break;
case 20:
ctx.isLayoutFirstRange=1;
break;
case 21:
var _f94=item.list;
for(var i=0;i<_f94.length;++i){
var _f95=_f94[i];
var _f96=_f95.sheetId;
var name=_f95.name;
if(_f95.isDel){
this.namedExprModel.del(_f96,name);
}else{
this.namedExprModel.addOrUpdate(_f96,name,_f95);
}
}
std.topic.publish(this,"onNamedExprChange");
break;
case 22:
std.topic.publish(this,"onNextRepairableArrayFormulaResult",this.sheets[item.sheet_id],item.row,item.col);
break;
case 23:
std.topic.publish(this,"onNextRepairableArrayFormulaResult",null);
break;
case 24:
std.topic.publish(this,"onNewRemoteDataSourceUsed",item.source);
break;
case 25:
break;
case 26:
var _f94=item.list;
for(var i=0;i<_f94.length;++i){
var _f96=_f94[i].sheetId;
var _f98=_f94[i].update;
var _f87=this.sheets[_f96];
for(var j=0;j<_f98.length;++j){
var _f9a=_f98[j];
if(_f9a.isAdd||_f9a.isDel){
var _f89=new editgrid.RangeRef(_f9a.startRow,_f9a.startCol,_f9a.endRow,_f9a.endCol);
if(_f9a.isAdd){
_f87.modelFilterAdd(_f89);
}else{
_f87.modelFilterDel(_f89);
}
}else{
var _f9b=_f9a["new"];
var _f9c=_f9a.orig;
var _f9d=new editgrid.RangeRef(_f9b.startRow,_f9b.startCol,_f9b.endRow,_f9b.endCol);
var _f9e=new editgrid.RangeRef(_f9c.startRow,_f9c.startCol,_f9c.endRow,_f9c.endCol);
_f87.modelFilterShift(!_f9a.isCol,_f9a.start,_f9a.end,_f9e,_f9d);
}
}
}
break;
case 201:
var _f87=this.sheets[item.sheetId];
var lock=_f87.lockAdd(item.userId,item.fromRow,item.fromCol,item.toRow,item.toCol);
std.topic.publish(this,"onLockAdd",lock);
if(_f86!=null){
ctx.addUpdate(_f86,_f87,new editgrid.RangeRef(item.fromRow,item.fromCol,item.toRow,item.toCol),"lock");
}
break;
case 202:
var _f87=this.sheets[item.sheetId];
var lock=_f87.lockDel(item.fromRow,item.fromCol,item.toRow,item.toCol);
if(lock!=null){
std.topic.publish(this,"onLockDel",lock);
}
if(_f86!=null){
ctx.addUpdate(_f86,_f87,new editgrid.RangeRef(item.fromRow,item.fromCol,item.toRow,item.toCol),"unlock");
}
break;
case 300:
var _fa0,so;
var _fa2=this.sheets[item.sheetId];
if(item.comment){
_fa2.modelCellCommentAdd(item.sheetObjectId,item.fromRow,item.fromCol,{author:item.comment.author,text:item.comment.text});
var _f89=new editgrid.RangeRef(item.fromRow,item.fromCol,item.toRow,item.toCol);
this._addRepaintRange(_fa2,_f89);
if(_f86!=null){
ctx.addUpdate(_f86,_fa2,_f89,"comment");
}
}else{
if((_fa0=!(so=_fa2.objects[item.sheetObjectId]))){
so=new editgrid.SheetObject(_fa2,item.sheetObjectId,item.sheetObjectType);
_fa2.objects[so.id]=so;
}
so._setBounds(item.fromRow,item.fromCol,item.toRow,item.toCol,item.fromColOffset,item.fromRowOffset,item.toColOffset,item.toRowOffset);
if(item.graph){
so.setGraph(new editgrid.graph.Graph(item.graph));
}
if(item.extension){
so.setExtension(item.extension);
}
if(_fa0){
std.topic.publish(this,"onSheetObjectAdd",so);
}
}
break;
case 301:
var _fa2=this.sheets[item.sheetId];
var _fa3;
if(_fa3=_fa2.getCellCommentPosById(item.sheetObjectId)){
_fa2.modelCellCommentUpdate(item.sheetObjectId,{author:item.comment.author,text:item.comment.text});
var _f89=new editgrid.RangeRef(_fa3.row,_fa3.col,_fa3.row,_fa3.col);
this._addRepaintRange(_fa2,_f89);
if(_f86!=null){
ctx.addUpdate(_f86,_fa2,_f89,"comment");
}
}else{
var so=this.sheets[item.sheetId].objects[item.sheetObjectId];
if(!so){
break;
}
if(item.graph){
so.setGraph(new editgrid.graph.Graph(item.graph));
}
if(item.extension){
so.setExtension(item.extension);
}
so.update();
std.topic.publish(this,"onSheetObjectUpdate",so);
}
break;
case 303:
var _fa2=this.sheets[item.sheetId];
var _fa3;
if(!_fa2){
break;
}
if(_fa3=_fa2.getCellCommentPosById(item.sheetObjectId)){
_fa2.modelCellCommentDelete(item.sheetObjectId);
var _f89=new editgrid.RangeRef(_fa3.row,_fa3.col,_fa3.row,_fa3.col);
this._addRepaintRange(_fa2,_f89);
if(_f86!=null){
ctx.addUpdate(_f86,_fa2,_f89,"comment");
}
}else{
var _fa4=_fa2.objects;
var so=_fa4[item.sheetObjectId];
if(!so){
break;
}
delete _fa4[so.id];
std.topic.publish(this,"onSheetObjectDel",so);
}
break;
case 305:
var _fa2=this.sheets[item.sheetId];
var _fa3;
if(_fa3=_fa2.getCellCommentPosById(item.sheetObjectId)){
_fa2.modelCellCommentRelocate(item.sheetObjectId,item.fromRow,item.fromCol);
}else{
var so=_fa2.objects[item.sheetObjectId];
if(!so){
break;
}
so._setBounds(item.fromRow,item.fromCol,item.toRow,item.toCol,item.fromColOffset,item.fromRowOffset,item.toColOffset,item.toRowOffset);
std.topic.publish(this,"onSheetObjectRebounds",so);
so.update();
}
break;
case 306:
break;
case 351:
break;
case 400:
var _f89=new editgrid.RangeRef(item.fromRow,item.fromCol,item.toRow,item.toCol);
std.topic.publish(this,"onRangeHTMLReady",item.sheetId,_f89,item.html);
break;
case 500:
this.linkSheetIdSet={};
var _f8d=this.sheets;
std.list.iterate(item.linkSheetIds,std.lang.bind(this,function(_fa5){
this._addLinkSheet(_fa5);
}));
std.topic.publish(this,"onSheetsRebuilt",this.sheetId);
break;
case 501:
std.topic.publish(this,"onSearchResult",item.hasMatch,item.keyword,item.sheetId,item.hasMatch?new editgrid.CellRef(parseInt(item.row),parseInt(item.col)):null);
break;
case 503:
var _fa2=this.sheets[item.sheetId];
std.topic.publish(this,"onFilterQueryMatchesResult",_fa2,item.row,item.col,item.matches,item.has_blank);
break;
case 504:
var _fa2=this.sheets[item.sheetId];
std.topic.publish(this,"onFilterQueryRowsResult",_fa2,item.hidden);
break;
case 1000:
alert(loc("Sorting is disabled as the currently selected region contains remote data."));
break;
case 1001:
std.topic.publish(this,"onPasteEmpty");
break;
case 1002:
this.undoRedo.clearUndo();
break;
case 1003:
this.undoRedo.clearRedo();
break;
case 1004:
if(confirm(loc("The cells you are pasting data into already has data.\nDo you want to overwrite the existing data?\n\nYou can disable this warning under 'Preference > Parameters'"))){
this.network.prependCommand("Paste",{bookRevId:this.bookRevId,sheetId:this.sheetId,range:new editgrid.RangeRef(item.fromRow,item.fromCol,item.toRow,item.toCol).toString(),allowOverwrite:1,flags:item.flags});
}
break;
case 1006:
if(confirm(loc("The cells you are pasting data into already has data.\nDo you want to overwrite the existing data?\n\nYou can disable this warning under 'Preference > Parameters'"))){
this.network.prependCommand("MoveRange",{bookRevId:this.bookRevId,srcSheetId:item.srcSheetId,srcRange:new editgrid.RangeRef(item.srcFromRow,item.srcFromCol,item.srcToRow,item.srcToCol).toString(),dstSheetId:item.dstSheetId,dstCol:item.dstCol,dstRow:item.dstRow,allowOverwrite:1,flags:item.flags});
}
break;
case 1005:
std.topic.publish(this,"onRangePermissionDenied",item.sheetId,item.fromCol,item.fromRow,item.toCol,item.toRow);
break;
case 1007:
alert(loc("Target region contains merged cells and cannot be splitted."));
break;
case 1008:
alert(loc("Target region contains range lock and cannot be splitted"));
break;
case 1010:
break;
case 10001:
this.setBookInfo(item.values);
break;
case 10002:
this.setBookSessionInfo(item.values);
break;
case 10003:
this.setBookInfo(item.values);
std.topic.publish(this,"onSharingPermissionUpdate");
break;
case 10004:
this.setBookInfo(item.values);
std.topic.publish(this,"onLicenseUpdate");
break;
default:
break;
}
item._processed=true;
};
editgrid.Workbook.prototype._onPostResponse=function(){
this._processRepaintRanges();
};
editgrid.Workbook.prototype._addRepaintRange=function(_fa6,_fa7){
this.repaintRanges.pushItem(_fa6,_fa7);
};
editgrid.Workbook.prototype._processRepaintRanges=function(){
if(!this.repaintRanges.isEmpty()){
var _fa8=this.repaintRanges.getKeys();
for(var i=0;i<_fa8.length;i++){
std.topic.publish(this,"onRangesNeedRepaint",_fa8[i],this.repaintRanges.getItems(_fa8[i]));
}
this.repaintRanges.clear();
}
};
editgrid.Workbook.prototype.fireRangeNeedRepaint=function(_faa,_fab){
std.topic.publish(this,"onRangesNeedRepaint",_faa,[_fab]);
};
editgrid.Workbook.prototype.waitForChange=function(_fac){
var _fad;
_fad=std.lang.bind(this,function(){
_fac();
std.topic.unsubscribe(this,"onLocalUpdate",_fad);
});
std.topic.subscribe(this,"onLocalUpdate",_fad);
};
editgrid.Workbook.prototype._onLocalUpdate=function(_fae){
std.topic.publish(this,"onLocalUpdate",_fae);
};
editgrid.Workbook.prototype._onRemoteUpdate=function(_faf){
std.topic.publish(this,"onRemoteUpdate",_faf);
};
editgrid.Workbook.prototype._fireRestoreCursorPos=function(_fb0,_fb1,_fb2){
std.topic.publish(this,"onRestoreCursorPos",_fb0,_fb1,_fb2);
};
editgrid.Workbook.prototype._calcRowColShiftRange=function(_fb3,fr,to){
var _fb6,_fb7;
if(fr<to){
_fb6=fr;
_fb7=to-1;
}else{
_fb6=to;
_fb7=fr-1;
}
if(_fb3){
return new editgrid.RangeRef(_fb6,0,_fb7,255);
}else{
return new editgrid.RangeRef(0,_fb6,65535,_fb7);
}
};
var CHECKOUT_STYLE_THRESHOLD=100;
var CHECKOUT_CELL_THRESHOLD=10000;
var MIN_LOAD_ROW_SIZE=128;
var MIN_LOAD_COL_SIZE=256;
editgrid.Workbook.prototype.checkout=function(_fb8){
var _fb9=new editgrid.RangeRef(0,0,127,255);
this.bookRevId=_fb8;
this._receivedFirstResponse=0;
this.processor.setBookRevId(_fb8);
this._setReady(false);
std.topic.publish(this,"onBeforeCheckout");
this.network.appendCommand("GetBookInfo",{bookRevId:_fb8});
this.network.appendCommand("GetBookSessionInfo",{bookRevId:_fb8});
this.network.appendCommand("CheckOutLayoutAndFirstRange",{bookRevId:_fb8,sheetId:-1,range:_fb9.toString()},120000);
this.network.appendCommand("CheckOutSheetLink",{bookRevId:_fb8});
this.processor.fireKeepAlive();
};
editgrid.Workbook.prototype.isEmpty=function(){
for(var id in this.sheets){
var _fbb=this.sheets[id];
if(_fbb.cells.length||_fbb.rows.length||_fbb.cols.length){
return false;
}
}
return true;
};
editgrid.Workbook.prototype.hasHiddenSheet=function(){
for(var id in this.sheets){
if(this.sheets[id].hidden){
return true;
}
}
return false;
};
editgrid.Workbook.prototype.hasUnhiddenSheets=function(){
var _fbd=0;
for(var id in this.sheets){
if(!this.sheets[id].hidden){
_fbd++;
}
}
if(_fbd>1){
return true;
}else{
return false;
}
};
editgrid.Workbook.prototype.getFirstUnhiddenSheetId=function(){
for(var i=0;i<this.sheetArray.length;i++){
if(!this.sheetArray[i].hidden){
return this.sheetArray[i].id;
}
}
};
editgrid.Workbook.prototype.graphInsert=function(type,_fc1,_fc2,_fc3,_fc4,_fc5,_fc6,_fc7,_fc8,_fc9,_fca){
this.network.appendCommand("GraphInsert",{bookRevId:this.bookRevId,sheetId:this.sheet.id,type:type,props:_fc1,dataRange:_fc2,fromCol:_fc4,fromRow:_fc3,toCol:_fc6,toRow:_fc5,fromColOffset:_fc8,fromRowOffset:_fc7,toColOffset:_fca,toRowOffset:_fc9});
};
editgrid.Workbook.prototype.graphUpdate=function(so,_fcc){
this.network.appendCommand("GraphUpdate",{bookRevId:this.bookRevId,sheetObjectId:so.id,title:_fcc.title?_fcc.title:"",showLegend:_fcc.showLegend?1:0,axisLabels:_fcc.getAxisLabelsSerialized(),data:_fcc.getDataSerialized()});
};
editgrid.Workbook.prototype._remoteImageJSON=function(_fcd,_fce){
return std.json.toJSONString({type:"RemoteImage",url:_fcd,linkUrl:_fce,stretch:0});
};
editgrid.Workbook.prototype._customObjectJSON=function(_fcf,data){
var d={type:"GridletSheetObject",clazz:_fcf};
for(var key in data){
var val=data[key];
if(val&&val.charAt&&val.charAt(0)=="="){
d["$customData."+key]=data[key].substring(1);
}else{
d["customData."+key]=data[key];
}
}
return std.json.toJSONString(d);
};
editgrid.Workbook.prototype.remoteImageInsert=function(_fd4,_fd5,_fd6,_fd7,_fd8,_fd9,_fda,_fdb,_fdc,_fdd){
this._customSheetObjectInsert(SSS_SHEET_OBJECT_EXTENSION_REMOTE_IMAGE,this._remoteImageJSON(_fd4,_fd5),_fd6,_fd7,_fd8,_fd9,_fda,_fdb,_fdc,_fdd);
};
editgrid.Workbook.prototype.remoteImageUpdate=function(so,_fdf,_fe0){
this._customSheetObjectUpdate(so,SSS_SHEET_OBJECT_EXTENSION_REMOTE_IMAGE,this._remoteImageJSON(_fdf,_fe0));
};
editgrid.Workbook.prototype.customSheetObjectInsert=function(_fe1,data,_fe3,_fe4,_fe5,_fe6,_fe7,_fe8,_fe9,_fea){
this._customSheetObjectInsert(SSS_SHEET_OBJECT_EXTENSION_GRIDLET,this._customObjectJSON(_fe1,data),_fe3,_fe4,_fe5,_fe6,_fe7,_fe8,_fe9,_fea);
};
editgrid.Workbook.prototype.customSheetObjectUpdate=function(so,_fec,data){
this._customSheetObjectUpdate(so,SSS_SHEET_OBJECT_EXTENSION_GRIDLET,this._customObjectJSON(_fec,data));
};
editgrid.Workbook.prototype._customSheetObjectInsert=function(_fee,_fef,_ff0,_ff1,_ff2,_ff3,_ff4,_ff5,_ff6,_ff7){
this.network.appendCommand("CustomSheetObjectInsert",{bookRevId:this.bookRevId,sheetId:this.sheet.id,extType:_fee,extData:_fef,fromCol:_ff1,fromRow:_ff0,toCol:_ff3,toRow:_ff2,fromColOffset:_ff5,fromRowOffset:_ff4,toColOffset:_ff7,toRowOffset:_ff6});
};
editgrid.Workbook.prototype._customSheetObjectUpdate=function(so,_ff9,_ffa){
this.network.appendCommand("CustomSheetObjectUpdate",{bookRevId:this.bookRevId,sheetObjectId:so.id,extType:_ff9,extData:_ffa});
};
editgrid.Workbook.prototype.setTextOverflow=function(bool){
this.network.appendCommand("TextOverflow",{bookRevId:this.bookRevId,value:bool?"1":"0"});
};
editgrid.Workbook.prototype.setVerticalAlign=function(bool){
this.network.appendCommand("VerticalAlign",{bookRevId:this.bookRevId,value:bool?"1":"0"});
};
editgrid.Workbook.prototype._mergeCellChangeDone=function(_ffd,_ffe,_fff){
};
editgrid.SheetObject=function(sheet,id,type){
this.sheet=sheet;
this.id=id;
this.type=type;
this.views={};
this.update();
};
editgrid.SheetObject.prototype.setBounds=function(rowFr,colFr,rowTo,colTo,_1007,_1008,_1009,_100a){
var book=this.sheet.book;
this._setBounds(rowFr,colFr,rowTo,colTo,_1007,_1008,_1009,_100a);
book.network.appendCommand("SheetObjectUpdateBounds",{bookRevId:book.bookRevId,sheetObjectId:this.id,fromCol:colFr,fromRow:rowFr,toCol:colTo,toRow:rowTo,fromColOffset:_1007,fromRowOffset:_1008,toColOffset:_1009,toRowOffset:_100a});
};
editgrid.SheetObject.prototype._setBounds=function(rowFr,colFr,rowTo,colTo,_1010,_1011,_1012,_1013){
this.colFr=colFr;
this.rowFr=rowFr;
this.colTo=colTo;
this.rowTo=rowTo;
this.colFrOffset=_1010;
this.rowFrOffset=_1011;
this.colToOffset=_1012;
this.rowToOffset=_1013;
};
editgrid.SheetObject.prototype.getWidth=function(){
var size=1;
for(var i=this.colFr;i<this.colTo;++i){
size+=this.sheet.getColSize(i);
}
size-=Math.round(this.colFrOffset*this.sheet.getColSize(this.colFr));
size+=Math.round(this.colToOffset*this.sheet.getColSize(this.colTo));
return size;
};
editgrid.SheetObject.prototype.getHeight=function(){
var size=1;
for(var i=this.rowFr;i<this.rowTo;++i){
size+=this.sheet.getRowSize(i);
}
size-=Math.round(this.rowFrOffset*this.sheet.getRowSize(this.rowFr));
size+=Math.round(this.rowToOffset*this.sheet.getRowSize(this.rowTo));
return size;
};
editgrid.SheetObject.prototype.getTop=function(){
var pos=0;
for(var i=0;i<this.rowFr;++i){
pos+=this.sheet.getRowSize(i);
}
pos+=Math.round(this.rowFrOffset*this.sheet.getRowSize(this.rowFr));
return pos;
};
editgrid.SheetObject.prototype.getLeft=function(){
var pos=0;
for(var i=0;i<this.colFr;++i){
pos+=this.sheet.getColSize(i);
}
pos+=Math.round(this.colFrOffset*this.sheet.getColSize(this.colFr));
return pos;
};
editgrid.SheetObject.prototype.setGraph=function(graph){
this.graph=graph;
};
editgrid.SheetObject.prototype.setExtension=function(_101d){
this.extension=_101d;
this.extension.data=std.json.parseJSON(_101d.data);
this.extension.rdata=std.lang.defaultize(_101d.rdata,[]);
};
editgrid.SheetObject.prototype.update=function(){
this.rev=new Date().getTime();
};
editgrid.RowColUpdateHistory=function(){
this.onFlush=null;
this._reset();
};
editgrid.RowColUpdateHistory.prototype.add=function(sheet,isRow,frIdx,toIdx,size){
var _1023=sheet.id;
this.empty=false;
if(isRow){
if(this.rowSheets[_1023]==null){
this.rowSheetInit(sheet);
}
this.rowFrList[_1023].push(frIdx);
this.rowToList[_1023].push(toIdx);
this.rowSizeList[_1023].push(size);
}else{
if(this.colSheets[_1023]==null){
this.colSheetInit(sheet);
}
this.colFrList[_1023].push(frIdx);
this.colToList[_1023].push(toIdx);
this.colSizeList[_1023].push(size);
}
};
editgrid.RowColUpdateHistory.prototype.rowSheetInit=function(sheet){
var _1025=sheet.id;
this.rowFrList[_1025]=[];
this.rowToList[_1025]=[];
this.rowSizeList[_1025]=[];
this.rowSheets[_1025]=sheet;
};
editgrid.RowColUpdateHistory.prototype.colSheetInit=function(sheet){
var _1027=sheet.id;
this.colFrList[_1027]=[];
this.colToList[_1027]=[];
this.colSizeList[_1027]=[];
this.colSheets[_1027]=sheet;
};
editgrid.RowColUpdateHistory.prototype._reset=function(){
this.rowFrList={};
this.rowToList={};
this.rowSizeList={};
this.rowSheets={};
this.colFrList={};
this.colToList={};
this.colSizeList={};
this.colSheets={};
this.empty=true;
};
editgrid.RowColUpdateHistory.prototype.flush=function(){
if(!this.empty){
if(this.onFlush){
this.onFlush(this);
}
this._reset();
}
};
editgrid.RowColUpdateHistory.prototype.getMerged=function(isRow,_1029){
var _102a=isRow?this.rowFrList[_1029]:this.colFrList[_1029];
var _102b=isRow?this.rowToList[_1029]:this.colToList[_1029];
var _102c=isRow?this.rowSizeList[_1029]:this.colSizeList[_1029];
var _102d=[];
for(var i=0;i<_102a.length;i++){
_102d.push([_102a[i],_102b[i]+1,_102c[i]]);
}
var _102f=this._computeMerged(_102d);
_102a=[];
_102b=[];
_102c=[];
for(var i=0;i<_102f.length;i++){
_102a.push(_102f[i][0]);
_102b.push(_102f[i][1]-1);
_102c.push(_102f[i][2]);
}
return {frList:_102a,toList:_102b,sizeList:_102c};
};
editgrid.RowColUpdateHistory.prototype._computeMerged=function(input){
var tree=[{}];
for(var i=input.length;i>1;i=(i+1)>>1){
tree.push({});
}
tree.insert=function(k,v){
var i=this.length-1;
this[i][k]=v;
while(k>>=1,--i>=0){
this[i][k]?++this[i][k]:this[i][k]=1;
}
};
tree.remove=function(k){
var i=this.length-1;
delete this[i][k];
while(k>>=1,--i>=0){
if(--this[i][k]==0){
delete this[i][k];
}
}
};
tree.max=function(){
for(var i=0,k=0;i<this.length;++i){
k=this[i][2*k+1]!==undefined?2*k+1:2*k;
}
return this[i-1][k];
};
var _103a=[];
for(var i=0;i<input.length;++i){
var o=input[i];
_103a.push([o[0],i,o[2]]);
_103a.push([o[1],i,undefined]);
}
var _103c=function(a,b){
for(var i=0;i<3;++i){
if(a[i]<b[i]){
return -1;
}
if(a[i]>b[i]){
return 1;
}
}
return 0;
};
_103a.sort(_103c);
var _1040=[];
var _1041=null,_1042=null;
for(var i=0;i<_103a.length;++i){
var p=_103a[i];
if(p[0]!=_1042){
var value=tree.max();
if(_1041!==null){
var _1045=_1040.length?_1040[_1040.length-1]:[];
if(_1040.length&&_1040[_1040.length-1][1]===_1041&&_1040[_1040.length-1][2]===value){
_1040[_1040.length-1][1]=p[0];
}else{
if(value!==undefined){
_1040.push([_1041,p[0],value]);
}
}
}
_1041=p[0];
}
if(p[2]!==undefined){
tree.insert(p[1],p[2]);
}else{
tree.remove(p[1]);
}
_1042=p[0];
}
return _1040;
};
editgrid.permission={};
editgrid.permission.NONE=1;
editgrid.permission.PROT=2;
editgrid.permission.GRNT=3;
editgrid.permission.AbstractPermission=function(){
};
editgrid.permission.AbstractPermission.prototype._initAbstractPermission=function(_1046){
_1046=_1046||{};
};
editgrid.permission.Workbook=function(_1047){
_1047=_1047||{};
this._initAbstractPermission(_1047);
this.workbook=_1047.workbook||null;
};
editgrid.permission.Workbook.prototype=new editgrid.permission.AbstractPermission();
editgrid.permission.Workbook.IconClasses={};
editgrid.permission.Workbook.IconClasses.Read={};
editgrid.permission.Workbook.IconClasses.Write={};
editgrid.permission.Workbook.IconClasses.Read[editgrid.permission.NONE]="AccessIcon AccessIcon_notallow";
editgrid.permission.Workbook.IconClasses.Read[editgrid.permission.PROT]="AccessIcon AccessIcon_read_p";
editgrid.permission.Workbook.IconClasses.Read[editgrid.permission.GRNT]="AccessIcon AccessIcon_read";
editgrid.permission.Workbook.IconClasses.Write[editgrid.permission.NONE]=null;
editgrid.permission.Workbook.IconClasses.Write[editgrid.permission.PROT]="AccessIcon AccessIcon_write_p";
editgrid.permission.Workbook.IconClasses.Write[editgrid.permission.GRNT]="AccessIcon AccessIcon_write";
editgrid.permission.workbook={};
editgrid.permission.workbook.Type=function(_1048){
this.typeNumber=_1048;
};
editgrid.permission.workbook.Type._encodePermission=function(_1049){
var read=_1049.read||editgrid.permission.NONE;
var write=_1049.write||editgrid.permission.NONE;
return (read<<2|write);
};
editgrid.permission.workbook.Type._decodePermission=function(code){
return {read:(code>>2),write:(code&3)};
};
editgrid.permission.workbook.Type._PRIVATE=201;
editgrid.permission.workbook.Type._READ=202;
editgrid.permission.workbook.Type._READ_PWRITE=203;
editgrid.permission.workbook.Type._PREAD=204;
editgrid.permission.workbook.Type._READ_WRITE=205;
editgrid.permission.workbook.Type._PREAD_PWRITE=206;
editgrid.permission.workbook.Type.Type2PermissionMap={};
editgrid.permission.workbook.Type.Type2PermissionMap[editgrid.permission.workbook.Type._PRIVATE]=editgrid.permission.workbook.Type._encodePermission({read:editgrid.permission.NONE,write:editgrid.permission.NONE});
editgrid.permission.workbook.Type.Type2PermissionMap[editgrid.permission.workbook.Type._READ]=editgrid.permission.workbook.Type._encodePermission({read:editgrid.permission.GRNT,write:editgrid.permission.NONE});
editgrid.permission.workbook.Type.Type2PermissionMap[editgrid.permission.workbook.Type._READ_PWRITE]=editgrid.permission.workbook.Type._encodePermission({read:editgrid.permission.GRNT,write:editgrid.permission.PROT});
editgrid.permission.workbook.Type.Type2PermissionMap[editgrid.permission.workbook.Type._PREAD]=editgrid.permission.workbook.Type._encodePermission({read:editgrid.permission.PROT,write:editgrid.permission.NONE});
editgrid.permission.workbook.Type.Type2PermissionMap[editgrid.permission.workbook.Type._READ_WRITE]=editgrid.permission.workbook.Type._encodePermission({read:editgrid.permission.GRNT,write:editgrid.permission.GRNT});
editgrid.permission.workbook.Type.Type2PermissionMap[editgrid.permission.workbook.Type._PREAD_PWRITE]=editgrid.permission.workbook.Type._encodePermission({read:editgrid.permission.PROT,write:editgrid.permission.PROT});
editgrid.permission.workbook.Type.Permission2TypeMap={};
for(var key in editgrid.permission.workbook.Type.Type2PermissionMap){
editgrid.permission.workbook.Type.Permission2TypeMap[editgrid.permission.workbook.Type.Type2PermissionMap[key]]=key;
}
editgrid.permission.workbook.Type.createFromPermission=function(_104d){
var _104e=_104d.read||editgrid.permission.NONE;
var _104f=_104d.write||editgrid.permission.NONE;
var _1050=editgrid.permission.workbook.Type._encodePermission({read:_104e,write:_104f});
var _1051=editgrid.permission.workbook.Type.Permission2TypeMap[_1050];
var _1052=new editgrid.permission.workbook.Type(_1051);
return _1052;
};
editgrid.permission.workbook.Type.prototype.convert2Permission=function(){
var _1053=editgrid.permission.workbook.Type.Type2PermissionMap[this.typeNumber];
return editgrid.permission.workbook.Type._decodePermission(_1053);
};
editgrid.permission.workbook.Type.AllTypes=[editgrid.permission.workbook.Type._PRIVATE,editgrid.permission.workbook.Type._READ,editgrid.permission.workbook.Type._READ_WRITE,editgrid.permission.workbook.Type._PREAD,editgrid.permission.workbook.Type._PREAD_PWRITE,editgrid.permission.workbook.Type._READ_PWRITE];
editgrid.permission.workbook.Type.getAllTypes=function(){
var _1054=editgrid.permission.workbook.Type.AllTypes;
var _1055=[];
for(var i=0;i<_1054.length;i++){
_1055[i]=new editgrid.permission.workbook.Type(_1054[i]);
}
return _1055;
};
editgrid.permission.workbook.Type.DataFile={};
editgrid.permission.workbook.Type.DataFile[editgrid.permission.workbook.Type._PRIVATE]={id:"private",name:loc("Private"),fullname:loc("Private"),summary:loc("no public visitor can view or edit"),mnemonic:"v"};
editgrid.permission.workbook.Type.DataFile[editgrid.permission.workbook.Type._READ]={id:"readable",name:loc("Public Read-only"),fullname:loc("Public Read-only"),summary:loc("allow public visitors to view"),mnemonic:"r"};
editgrid.permission.workbook.Type.DataFile[editgrid.permission.workbook.Type._READ_PWRITE]={id:"protectwrite",name:loc("Read and Protected Write"),fullname:loc("Public Read and Password-Protected Write"),summary:loc("allow public visitors to view, and allow editing when a valid password is given"),mnemonic:"t"};
editgrid.permission.workbook.Type.DataFile[editgrid.permission.workbook.Type._PREAD]={id:"protectread",name:loc("Protected Read-only"),fullname:loc("Password-Protected Read-only"),summary:loc("allow public visitors with a valid password to view"),mnemonic:"o"};
editgrid.permission.workbook.Type.DataFile[editgrid.permission.workbook.Type._READ_WRITE]={id:"writable",name:loc("Public Read/Write"),fullname:loc("Public Read and Write"),summary:loc("allow public visitors to view and edit"),mnemonic:"w"};
editgrid.permission.workbook.Type.DataFile[editgrid.permission.workbook.Type._PREAD_PWRITE]={id:"protectreadwrite",name:loc("Protected Read and Write"),fullname:loc("Password-Protected Read and Write"),summary:loc("allow public visitors with a valid password to view and edit"),mnemonic:"a"};
editgrid.permission.workbook.Type.prototype.getTypeNumber=function(){
return this.typeNumber;
};
editgrid.permission.workbook.Type.prototype.getId=function(){
return editgrid.permission.workbook.Type.DataFile[this.typeNumber].id||"";
};
editgrid.permission.workbook.Type.prototype.getName=function(){
return editgrid.permission.workbook.Type.DataFile[this.typeNumber].name||"";
};
editgrid.permission.workbook.Type.prototype.getFullName=function(){
return editgrid.permission.workbook.Type.DataFile[this.typeNumber].fullname||"";
};
editgrid.permission.workbook.Type.prototype.getSummary=function(){
return editgrid.permission.workbook.Type.DataFile[this.typeNumber].summary||"";
};
editgrid.permission.workbook.Type.prototype.getMnemonic=function(){
return editgrid.permission.workbook.Type.DataFile[this.typeNumber].mnemonic||"";
};
editgrid.permission.workbook.Type.prototype.getReadIcon=function(){
var read=this.convert2Permission().read;
var _1058=editgrid.permission.Workbook.IconClasses.Read[read];
if(_1058==null){
return null;
}
return {className:_1058};
};
editgrid.permission.workbook.Type.prototype.getWriteIcon=function(){
var write=this.convert2Permission().write;
var _105a=editgrid.permission.Workbook.IconClasses.Write[write];
if(_105a==null){
return null;
}
return {className:_105a};
};
editgrid.permission.workbook.Type.prototype.requirePassword=function(){
var read=this.convert2Permission().read;
var write=this.convert2Permission().write;
return (read==editgrid.permission.PROT||write==editgrid.permission.PROT);
};
editgrid.permission.workbook.Type.prototype.isPrivate=function(){
var read=this.convert2Permission().read;
var write=this.convert2Permission().write;
return (read==editgrid.permission.NONE&&write==editgrid.permission.NONE);
};
editgrid.permission.Workbook.prototype.getType=function(){
this.type=editgrid.permission.workbook.Type.createFromPermission({read:this.getRead(),write:this.getWrite()});
return this.type;
};
editgrid.permission.Workbook.prototype.isTypeOf=function(_105f){
var _1060=this.getType();
return _1060.getTypeNumber()==_105f.getTypeNumber();
};
editgrid.permission.Workbook.prototype.getRead=function(){
var _1061=this.workbook.bookInfo;
if(_1061.isProtectRead){
return editgrid.permission.PROT;
}
if(_1061.isPublicReadable){
return editgrid.permission.GRNT;
}
return editgrid.permission.NONE;
};
editgrid.permission.Workbook.prototype.getWrite=function(){
var _1062=this.workbook.bookInfo;
if(_1062.isProtectWrite){
return editgrid.permission.PROT;
}
if(_1062.isPublicWritable){
return editgrid.permission.GRNT;
}
return editgrid.permission.NONE;
};
editgrid.permission.workbook.PasswordDialog=function(_1063){
this.templateTreeGetter=_1063;
this.input={};
this.error={};
};
editgrid.permission.workbook.PasswordDialog.prototype.getRoot=function(){
if(this.elements==null){
var tree=this.templateTreeGetter();
this.elements=std.dom.extractAttachmentPoints(tree);
std.event.observe(this.elements["buttonOk"],"click",std.event.listener(this,function(){
this.onOk();
}));
std.event.observe(this.elements["buttonCancel"],"click",std.event.listener(this,function(){
this.onCancel();
}));
}
return this.elements.root;
};
editgrid.permission.workbook.PasswordDialog.prototype.reset=function(){
this.input={};
this.elements["inputPassword"].value="";
this.elements["inputPasswordVerify"].value="";
this.elements["errorNotMatch"].style.display="none";
this.elements["errorRequired"].style.display="none";
};
editgrid.permission.workbook.PasswordDialog.prototype.displayError=function(){
if(this.error.passwordRequired){
this.elements["errorRequired"].style.display="block";
}
if(this.error.passwordNotMatch){
this.elements["errorNotMatch"].style.display="block";
}
};
editgrid.permission.workbook.PasswordDialog.prototype.validate=function(){
this.error={};
var _1065=parseInt(this.elements["compulsoryPassword"].value)==1;
this.input.password=this.elements["inputPassword"].value;
this.input.passwordVerify=this.elements["inputPasswordVerify"].value;
if(_1065&&std.string.trim(this.input.password)==""){
this.error.passwordRequired=true;
return false;
}
if(this.input.password!=this.input.passwordVerify){
this.error.passwordNotMatch=true;
return false;
}
return true;
};
editgrid.permission.workbook.PasswordDialog.prototype.getResult=function(){
if(this.input){
return this.input.password;
}
return null;
};
if(typeof (editgrid)=="undefined"){
editgrid={};
}
if(typeof (editgrid.license)=="undefined"){
editgrid.license={};
}
editgrid.license.AllTypes=[{id:"none",name:loc("None (All rights reserved)"),url:null,mnemonic:"n"},{id:"cc",name:loc("Creative Commons"),url:null,mnemonic:"c",children:[{id:"ccby",name:loc("Attribution"),url:"http://creativecommons.org/licenses/by/2.5/",mnemonic:"a"},{id:"ccbysa",name:loc("Attribution Share Alike"),url:"http://creativecommons.org/licenses/by-sa/2.5/",mnemonic:"s"},{id:"ccbynd",name:loc("Attribution No Derivatives"),url:"http://creativecommons.org/licenses/by-nd/2.5/",mnemonic:"d"},{id:"ccbync",name:loc("Attribution Non-commercial"),url:"http://creativecommons.org/licenses/by-nc/2.5/",mnemonic:"m"},{id:"ccbyncsa",name:loc("Attribution Non-commercial Share Alike"),url:"http://creativecommons.org/licenses/by-nc-sa/2.5/",mnemonic:"k"},{id:"ccbyncnd",name:loc("Attribution Non-commercial No Derivatives"),url:"http://creativecommons.org/licenses/by-nc-nd/2.5/",mnemonic:"v"}]},{id:"pd",name:loc("Public Domain"),url:null,mnemonic:"p"},{id:"op",name:loc("Open Publication License"),url:"http://www.opencontent.org/openpub/",mnemonic:"o"},{id:"gfd",name:loc("GNU Free Documentation License"),url:"http://www.gnu.org/licenses/fdl.txt",mnemonic:"g"}];
editgrid.license.LicenseType=function(_1066){
this.id=_1066.id;
this.name=_1066.name;
this.url=_1066.url;
this.mnemonic=_1066.mnemonic;
this._buildChildren(_1066.children);
};
editgrid.license.LicenseType.prototype._buildChildren=function(items){
if(items&&std.lang.isArray(items)){
var _1068=[];
std.list.iterate(items,function(child){
_1068.push(new editgrid.license.LicenseType(child));
});
this.children=_1068;
}
};
editgrid.license.AllTypeObjects=[];
std.list.iterate(editgrid.license.AllTypes,function(item){
editgrid.license.AllTypeObjects.push(new editgrid.license.LicenseType(item));
});
editgrid.license.getAllTypes=function(){
return editgrid.license.AllTypeObjects;
};
editgrid.license.getLicenseTypeById=function(id){
var _106c=function(types){
var _106e=null;
std.list.iterate(types,function(item){
if(item.id==id){
_106e=item;
return;
}
if(item.children&&item.children.length>0){
var temp=_106c(item.children);
if(temp!=null){
_106e=temp;
return;
}
}
});
return _106e;
};
var item=_106c(editgrid.license.AllTypeObjects);
return item;
};
editgrid.license.LicenseType.prototype.getId=function(){
return this.id;
};
editgrid.license.LicenseType.prototype.getName=function(){
return this.name;
};
editgrid.license.LicenseType.prototype.getUrl=function(){
return this.url;
};
editgrid.license.LicenseType.prototype.getMnemonic=function(){
return this.mnemonic;
};
editgrid.license.LicenseType.prototype.getIcon=function(_1072){
if(this.id=="none"){
return null;
}
var color=(_1072=="grey"?"grey":"white");
return {className:"LicenseIcon LicenseIcon_"+color+"_"+this.id};
};
editgrid.license.LicenseType.prototype.getChildren=function(){
return this.children;
};
editgrid.license.LicenseType.prototype.hasChildren=function(){
return (this.children&&this.children.length>0);
};
editgrid.event={};
editgrid.event.getSrcElement=function(e){
var src;
if(!(src=e.srcElement)){
src=e.target;
while(src&&src.nodeType!=1){
src=src.parentNode;
}
}
return src;
};
editgrid.event.getOffset=function(e){
if(e.offsetX==undefined){
e.offsetX=e.layerX;
e.offsetY=e.layerY;
}
};
editgrid.event.attach=function(el,evt,func,_107a){
var stub;
if(_107a){
_107a[evt+"_handler"]=stub=function(evt){
return func.call(_107a,evt);
};
}else{
stub=func;
}
std.event.observe(el,evt,stub,true);
};
editgrid.event.dettach=function(el,evt,func,_1080){
if(_1080){
func=_1080[evt+"_handler"];
delete _1080[evt+"_handler"];
}
std.event.stopObserving(el,evt,func,true);
};
editgrid.event.keyCodes=std.event.getKeyCodes();
editgrid.event.mouseButtons=std.browser.isIE||(std.browser.isAppleWebKit&&std.browser.major<420)?{LEFT:1,MIDDLE:4,RIGHT:2}:{LEFT:0,MIDDLE:1,RIGHT:2};
editgrid.event.startDrag=function(_1081,_1082,onEnd,_1084){
var _1085,_1086,_1087,_1088;
_1085={onMove:_1086=function(e){
_1082.call(_1084,e||window.event);
},onEnd1:_1087=function(e){
std.event.vanish(e);
onEnd.call(_1084,e||window.event);
},onEnd2:_1088=function(e){
std.event.vanish(e);
if((e.srcElement||e.target).tagName=="HTML"){
onEnd.call(_1084,e||window.event);
}
}};
editgrid.event.attach(document,"mousemove",_1086);
editgrid.event.attach(document,"mouseup",_1087);
if(!(std.browser.isMoz&&std.browser.major>=1.9)){
editgrid.event.attach(document,"mouseout",_1088);
}
if(std.browser.isIE){
editgrid.event.attach(document,"losecapture",_1087);
_1085.element=_1081;
_1081.setCapture();
}
return _1085;
};
editgrid.event.endDrag=function(_108c){
editgrid.event.dettach(document,"mousemove",_108c.onMove);
editgrid.event.dettach(document,"mouseup",_108c.onEnd1);
if(!(std.browser.isMoz&&std.browser.major>=1.9)){
editgrid.event.dettach(document,"mouseout",_108c.onEnd2);
}
if(std.browser.isIE){
editgrid.event.dettach(document,"losecapture",_108c.onEnd1);
_108c.element.releaseCapture();
}
_108c.onMove=null;
_108c.onEnd1=null;
_108c.onEnd2=null;
};
editgrid.event.getChar=function(e){
var code=std.browser.isIE||std.browser.isOpera||std.browser.isSafariWin?e.keyCode:e.charCode;
if(std.browser.isAppleWebKit&&navigator.platform.indexOf("Win")!=0){
if(e.ctrlKey&&code<96){
code+=96;
}
}
return String.fromCharCode(code).toUpperCase();
};
editgrid.event.getCharCode=function(e){
return std.browser.isIE?e.keyCode:std.browser.isOpera?e.which:e.charCode;
};
editgrid.event.getKeyCode=std.event.getKeyCode;
editgrid.sheet=editgrid.sheet||{};
editgrid.sheet.Header=function(_1090,_1091,_1092,_1093,_1094,_1095,_1096,_1097,_1098,_1099){
this.minSize=_1090.rowColMinSize;
this.margin=_1090.rowColResizeMargin;
this.isDragging=false;
this.oriSize=null;
this.oriScr=null;
this.newSize=null;
this.colWise=_1099;
this.hdrCellsGetter=_1092;
this.offsetsGetter=_1093;
this.sizesGetter=_1094;
this.selFrFunc=_1097;
this.testScrollFunc=_1098;
this.dragIdx=-1;
this.readOnly=false;
this.element=_1091;
this.onResize=null;
this.onResizeContext=null;
this.onSelect=null;
this.onSelectContext=null;
this.onBeforeSelect=null;
this.onBeforeSelectContext=null;
this.onAfterSelect=null;
this.onAfterSelectContext=null;
this.onResizeHandleDblClick=null;
this.onResizeHandleDblClickContext=null;
this.resizeLine=_1095;
this.resizeTooltip=_1096;
this.maxIdx=_1099?_1090.maxCol-1:_1090.maxRow-1;
std.event.observe(_1091,"dblclick",std.event.listener(this,this.onMouseEvent));
std.event.observe(_1091,"mousemove",std.event.listener(this,this.onMouseEvent));
std.event.observe(_1091,"mousedown",std.event.listener(this,this.onMouseEvent));
};
editgrid.sheet.Header.prototype._getCurrentStates=function(){
return {hdrCells:this.hdrCellsGetter(),offsets:this.offsetsGetter(),sizes:this.sizesGetter()};
};
editgrid.sheet.Header.prototype.setReadOnly=function(bool){
this.readOnly=bool;
};
editgrid.sheet.Header.prototype.onResizingMouseMove=function(e){
var i,j,delta;
var curr=this._getCurrentStates();
var size=this.oriSize+(delta=(this.colWise?e.screenX:e.screenY)-this.oriScr);
if(size<this.minSize){
delta+=this.minSize-size;
size=this.minSize;
}
if(this.colWise){
curr.hdrCells[i=this.dragIdx].style.width=size+"px";
j=curr.hdrCells.length;
this.updateResizeInfo(curr.offsets[i]+curr.sizes[i]+delta,curr.sizes[i]+delta);
for(++i;i<j;++i){
curr.hdrCells[i].style.left=curr.offsets[i]+delta+"px";
}
}else{
curr.hdrCells[i=this.dragIdx].style.height=size+"px";
j=curr.hdrCells.length;
this.updateResizeInfo(curr.offsets[i]+curr.sizes[i]+delta,curr.sizes[i]+delta);
for(++i;i<j;++i){
curr.hdrCells[i].style.top=curr.offsets[i]+delta+"px";
}
}
this.newSize=size;
std.event.vanish(e);
};
editgrid.sheet.Header.prototype.onResizingMouseUp=function(e){
var curr=this._getCurrentStates();
this.hideResizeInfo();
editgrid.event.endDrag(this.dragData);
if(this.onResize&&this.newSize!=this.oriSize){
var cell=curr.hdrCells[this.dragIdx];
this.onResize.call(this.onResizeContext,this.colWise?cell.colIdx:cell.rowIdx,this.newSize);
}
this.isDragging=false;
};
editgrid.sheet.Header.prototype.onSelectingMouseMove=function(e){
var curr=this._getCurrentStates();
var _10a6=curr.hdrCells[this.dragIdx],_10a7;
var i,j,coord=(this.colWise?e.screenX:e.screenY)+this.scrOffset;
var _10ab=-1;
j=curr.offsets.length;
if(this.testScrollFunc){
if(j&&coord<curr.offsets[0]){
_10ab=this.testScrollFunc(coord-curr.offsets[0]);
}
}
for(i=1;i<j&&coord>=curr.offsets[i];++i){
}
_10a7=curr.hdrCells[i-1];
_10a7.style.cursor="default";
if(this.onSelect){
var posTo=_10ab!=-1?_10ab:this.colWise?_10a7.colIdx:_10a7.rowIdx;
this.onSelect.call(this.onSelectContext,this.colWise?_10a6.colIdx:_10a6.rowIdx,posTo);
}
};
editgrid.sheet.Header.prototype.onSelectingMouseUp=function(e){
editgrid.event.endDrag(this.dragData);
this.isDragging=false;
if(this.onAfterSelect){
this.onAfterSelect.call(this.onAfterSelectContext);
}
};
editgrid.sheet.Header.prototype.onMouseEvent=function(e){
if(this.isDragging){
return;
}
var curr=this._getCurrentStates();
var size,_10b1,_10b2;
var cell=editgrid.event.getSrcElement(e);
var down=e.type=="mousedown";
var _10b5=e.type=="dblclick";
editgrid.event.getOffset(e);
if(this.colWise){
size=cell.offsetWidth;
_10b1=e.offsetX;
}else{
size=cell.offsetHeight;
_10b1=e.offsetY;
}
if((_10b2=_10b1<=this.margin)){
if(this.colWise){
if(cell.offsetLeft<=this.element.scrollLeft){
return;
}
}else{
if(cell.offsetTop<=this.element.scrollTop){
return;
}
}
}
if(!this.readOnly&&(_10b2||_10b1>=size-this.margin)){
if(_10b5||e.button==editgrid.event.mouseButtons.LEFT){
var _10b6=curr.hdrCells;
var _10b7=this.colWise;
this.oriScr=_10b7?e.screenX:e.screenY;
for(var i=0,j=_10b6.length;i<j;++i){
if(_10b6[i]==cell){
if(_10b2){
cell=_10b6[--i];
size=_10b7?cell.offsetWidth:cell.offsetHeight;
}
break;
}
}
if(i<0||i>=j){
return;
}
if(down){
var _10ba=this.colWise?cell.colIdx:cell.rowIdx;
if(_10ba<=this.maxIdx){
this.dragIdx=i;
this.newSize=this.oriSize=size;
this.isDragging=true;
if(this.colWise){
this.showResizeInfo(curr.offsets[i]+curr.sizes[i],e.offsetY-cell.offsetHeight);
}else{
this.showResizeInfo(e.offsetX-cell.offsetWidth,curr.offsets[i]+curr.sizes[i]);
}
this.updateResizeInfo(curr.offsets[i]+curr.sizes[i],curr.sizes[i]);
this.dragData=editgrid.event.startDrag(this.element,this.onResizingMouseMove,this.onResizingMouseUp,this);
}
}else{
if(_10b5){
if(this.onResizeHandleDblClick){
cell=_10b6[i];
this.onResizeHandleDblClick.call(this.onResizeHandleDblClickContext,this.colWise,this.colWise?cell.colIdx:cell.rowIdx);
}
}
}
}
if((!down&&!_10b5)||e.button!=editgrid.event.mouseButtons.LEFT){
cell.style.cursor=this.colWise?(_10b2?"w-resize":"e-resize"):(_10b2?"n-resize":"s-resize");
}
}else{
cell.style.cursor="default";
if(!down){
return;
}
var _10b6=curr.hdrCells;
var _10b7=this.colWise;
var _10bb=e.button==editgrid.event.mouseButtons.LEFT;
for(var i=0,j=_10b6.length;i<j;++i){
if(_10b6[i]==cell){
break;
}
}
if(i<0||i>=j){
return;
}
this.dragIdx=i;
this.scrOffset=curr.offsets[i]-(_10b7?(e.screenX-e.offsetX):(e.screenY-e.offsetY));
if(this.onBeforeSelect){
this.onBeforeSelect.call(this.onBeforeSelectContext);
}
i=this.colWise?cell.colIdx:cell.rowIdx;
if(this.onSelect&&!e.shiftKey&&this.onSelect.call(this.onSelectContext,i,i,!_10bb,e.shiftKey)){
std.event.vanish(e);
}
if(_10bb){
if(this.onSelect&&e.shiftKey){
this.onSelect.call(this.onSelectContext,this.selFrFunc(),i);
}else{
this.dragData=editgrid.event.startDrag(this.element,this.onSelectingMouseMove,this.onSelectingMouseUp,this);
this.isDragging=true;
}
}
}
};
editgrid.sheet.Header.prototype._offsetX=function(){
return this.element.offsetLeft-this._getCurrentStates().offsets[0];
};
editgrid.sheet.Header.prototype._offsetY=function(){
return this.element.offsetTop-this._getCurrentStates().offsets[0];
};
editgrid.sheet.Header.prototype.showResizeInfo=function(x,y){
this.resizeTooltip.style.left=(this.colWise?this._offsetX():0)+x+"px";
this.resizeTooltip.style.top=(!this.colWise?this._offsetY():0)+y-36+"px";
this.resizeTooltip.style.display="";
this.resizeLine.style.display="";
};
editgrid.sheet.Header.prototype.hideResizeInfo=function(){
this.resizeTooltip.style.display="none";
this.resizeLine.style.display="none";
};
editgrid.sheet.Header.prototype.updateResizeInfo=function(pos,size){
if(this.colWise){
this.resizeLine.style.left=this._offsetX()+pos+"px";
}else{
this.resizeLine.style.top=this._offsetY()+pos+"px";
}
this.resizeTooltip.innerHTML=size+" "+loc("pixels");
};
editgrid.sheet=editgrid.sheet||{};
editgrid.sheet.RangeBox=function(rowFr,colFr,rowTo,colTo){
this.set(rowFr,colFr,rowTo,colTo);
this.instances=[];
};
editgrid.sheet.RangeBox.prototype=new editgrid.RangeRef();
editgrid.sheet.RangeBox.prototype.element=null;
editgrid.sheet.RangeBox.prototype.icons=null;
editgrid.sheet.RangeBox.prototype.autoResize=true;
editgrid.sheet.RangeBox.prototype.autoShift=true;
editgrid.sheet.RangeBox.prototype.clipped=true;
editgrid.sheet.RangeBox.prototype.drawHiddenBox=false;
editgrid.sheet.RangeBox.prototype.drawHiddenIcon=false;
editgrid.sheet.RangeBox.prototype.set=function(rowFr,colFr,rowTo,colTo){
if(rowFr==null&&rowTo==null){
rowFr=0;
rowTo=this.maxRow-1;
}
if(colFr==null&&colTo==null){
colFr=0;
colTo=this.maxCol-1;
}
if(rowTo==undefined){
rowTo=rowFr;
}
if(colTo==undefined){
colTo=colFr;
}
if(colFr<0){
colFr=0;
}else{
if(colFr>=this.maxCol){
colFr=this.maxCol-1;
}
}
if(colTo<0){
colTo=0;
}else{
if(colTo>=this.maxCol){
colTo=this.maxCol-1;
}
}
if(rowFr<0){
rowFr=0;
}else{
if(rowFr>=this.maxRow){
rowFr=this.maxRow-1;
}
}
if(rowTo<0){
rowTo=0;
}else{
if(rowTo>=this.maxRow){
rowTo=this.maxRow-1;
}
}
if(this._rowFr==rowFr&&this._rowTo==rowTo&&this._colFr==colFr&&this._colTo==colTo){
return false;
}
this._rowFr=rowFr;
this._rowTo=rowTo;
this._colFr=colFr;
this._colTo=colTo;
if(rowTo<rowFr){
this.rowTo=rowFr;
this.rowFr=rowTo;
}else{
this.rowTo=rowTo;
this.rowFr=rowFr;
}
if(colTo<colFr){
this.colTo=colFr;
this.colFr=colTo;
}else{
this.colTo=colTo;
this.colFr=colFr;
}
this.col=(this.rowFr==0&&this.rowTo==this.maxRow-1);
this.row=(this.colFr==0&&this.colTo==this.maxCol-1);
this.onChange();
return true;
};
editgrid.sheet.RangeBox.prototype.onChange=function(){
};
editgrid.sheet.RangeBox.prototype.getRange=function(){
return new editgrid.RangeRef(this.rowFr,this.colFr,this.rowTo,this.colTo);
};
editgrid.sheet.RangeBox.prototype.realize=function(_10c8,id){
var inst={icons:[],visibility:null};
_10c8.appendChild(inst.element=this.element.cloneNode(false));
if(this.icons){
for(var i=0,l=this.icons.length;i<l;++i){
_10c8.appendChild(inst.icons[i]=this.icons[i].cloneNode(false));
}
}
this.instances[id]=inst;
return inst;
};
editgrid.sheet.RangeBox.prototype.unrealize=function(_10cd,id){
var inst=this.instances[id];
if(inst==null){
return;
}
if(this.release){
this.release(inst);
}
if(this.icons){
for(var i=0,l=this.icons.length;i<l;++i){
_10cd.removeChild(inst.icons[i]);
}
}
_10cd.removeChild(inst.element);
delete this.instances[id];
};
editgrid.sheet.RangeBox.prototype.isChild=function(){
return false;
};
editgrid.sheet.RangeBox.prototype.maxRow=65536;
editgrid.sheet.RangeBox.prototype.maxCol=256;
editgrid.sheet.RangeBox.setBound=function(_10d2,_10d3){
editgrid.sheet.RangeBox.prototype.maxRow=_10d2;
editgrid.sheet.RangeBox.prototype.maxCol=_10d3;
};
editgrid.sheet.WalkingBox=function(rowFr,colFr,rowTo,colTo){
this.walk={row:rowFr,col:colFr};
editgrid.sheet.RangeBox.call(this,rowFr,colFr,rowTo,colTo);
};
editgrid.sheet.WalkingBox.prototype=new editgrid.sheet.RangeBox();
editgrid.sheet.WalkingBox.prototype.setWalkPos=function(row,col){
if(col<0){
col=0;
}else{
if(col>=this.maxCol){
col=this.maxCol-1;
}
}
if(row<0){
row=0;
}else{
if(row>=this.maxRow){
row=this.maxRow-1;
}
}
this.walk.row=row;
this.walk.col=col;
};
editgrid.sheet.WalkingBox.prototype.onChange=function(){
if(!this.hasCell(this.walk.row,this.walk.col)){
this.setWalkPos(this.rowFr,this.colFr);
}
};
editgrid.sheet.Cursor=function(param){
var _10db=editgrid.sheet.Cursor.prototype;
if(!_10db.inited){
_10db.id="cursor";
_10db.element=document.createElement("div");
_10db.element.className="cursor";
var dot=document.createElement("div");
dot.className=param&&param.readOnly?"cursorDotReadOnly":"cursorDot";
dot.dx=-4;
dot.dy=-4;
dot.placement=3;
_10db.icons=[dot];
_10db.inited=true;
}
editgrid.sheet.WalkingBox.call(this,0,0);
this.rowIdx=this._rowFr;
this.colIdx=this._colFr;
};
editgrid.sheet.Cursor.prototype=new editgrid.sheet.WalkingBox();
editgrid.sheet.Cursor.prototype.drawHiddenBox=true;
editgrid.sheet.Cursor.prototype.connect=function(_10dd,_10de){
this.instances[_10de.name].icons[0].onmousedown=std.event.listener(_10de,_10dd);
};
editgrid.sheet.Cursor.prototype.release=function(inst){
inst.icons[0].onmousedown=null;
};
editgrid.sheet.FocusBox=function(){
var _10e0=editgrid.sheet.FocusBox.prototype;
if(!_10e0.inited){
_10e0.id="focusBox";
_10e0.element=std.dom.newElement("div",null,{className:"focusBox"});
_10e0.inited=true;
}
editgrid.sheet.WalkingBox.call(this,0,0);
};
editgrid.sheet.FocusBox.prototype=new editgrid.sheet.WalkingBox();
editgrid.sheet.FocusBox.prototype.drawHiddenBox=true;
editgrid.sheet.FocusBox.prototype.isChild=function(){
return true;
};
editgrid.sheet.CrosshairBox=function(id){
var _10e2=editgrid.sheet.CrosshairBox.prototype;
if(!_10e2.inited){
_10e2.id="crosshairBox";
_10e2.element=document.createElement("div");
_10e2.icons=[];
_10e2.inited=true;
}
this.id="crosshairBox"+id;
editgrid.sheet.RangeBox.call(this,0,0);
};
editgrid.sheet.CrosshairBox.prototype=new editgrid.sheet.RangeBox();
editgrid.sheet.CrosshairBox.prototype.widthAdjustment=-2;
editgrid.sheet.CrosshairBox.prototype.heightAdjustment=-2;
editgrid.sheet.CrosshairBox.prototype.autoShift=0;
editgrid.sheet.CrosshairBox.prototype.realize=function(_10e3,id){
var inst=editgrid.sheet.RangeBox.prototype.realize.call(this,_10e3,id);
inst.element.className="crosshairBox "+this.id;
};
editgrid.sheet.VolatileBox=function(_10e6,_10e7,rowFr,colFr,rowTo,colTo){
editgrid.sheet.RangeBox.call(this,rowFr,colFr,rowTo,colTo);
this.id=editgrid.sheet.VolatileBox.uid++;
this.rmFunc=_10e6;
this.rmFuncContext=_10e7;
this.isVolatile=true;
};
editgrid.sheet.VolatileBox.prototype=new editgrid.sheet.RangeBox();
editgrid.sheet.VolatileBox.uid=0;
editgrid.sheet.RTUBox=function(rowFr,colFr,rowTo,colTo,_10f0,_10f1){
var self=this;
editgrid.sheet.VolatileBox.call(this,_10f0,_10f1,rowFr,colFr,rowTo,colTo);
this.opacity=30;
this.timer=window.setInterval(function(){
self.onTimer();
},100);
};
editgrid.sheet.RTUBox.prototype=new editgrid.sheet.VolatileBox();
editgrid.sheet.RTUBox.prototype.element=document.createElement("div");
editgrid.sheet.RTUBox.prototype.element.className="RTU";
editgrid.sheet.RTUBox.prototype.destroy=function(_10f3,_10f4){
window.clearInterval(this.timer);
if(_10f3){
_10f3.call(_10f4,this);
}
};
editgrid.sheet.RTUBox.prototype.onTimer=function(){
if((this.opacity-=2)<=0){
this.destroy(this.rmFunc,this.rmFuncContext);
}else{
for(var k in this.instances){
std.dom.opacity(this.instances[k].element,this.opacity/100);
}
}
};
editgrid.sheet.CopyBox=function(rowFr,colFr,rowTo,colTo,name){
this.id=name?name:"copy";
editgrid.sheet.RangeBox.call(this,rowFr,colFr,rowTo,colTo);
};
editgrid.sheet.CopyBox.prototype=new editgrid.sheet.RangeBox();
editgrid.sheet.CopyBox.prototype.element=document.createElement("div");
editgrid.sheet.CopyBox.prototype.element.style.display="none";
editgrid.sheet.CopyBox.prototype.element.className="copy";
editgrid.sheet.Selector=function(rowFr,colFr,rowTo,colTo){
editgrid.sheet.WalkingBox.call(this,rowFr,colFr,rowTo,colTo);
this.id="selector";
};
editgrid.sheet.Selector.prototype=new editgrid.sheet.WalkingBox();
editgrid.sheet.Selector.prototype.element=document.createElement("div");
editgrid.sheet.Selector.prototype.element.style.display="none";
editgrid.sheet.Selector.prototype.element.className="selector";
editgrid.sheet.Filler=function(rowFr,colFr,rowTo,colTo){
editgrid.sheet.RangeBox.call(this,rowFr,colFr,rowTo,colTo);
this.id="filler";
};
editgrid.sheet.Filler.prototype=new editgrid.sheet.RangeBox();
editgrid.sheet.Filler.prototype.element=document.createElement("div");
editgrid.sheet.Filler.prototype.element.style.display="none";
editgrid.sheet.Filler.prototype.element.className="filler";
editgrid.sheet.MergedCellBox=function(rowFr,colFr,rowTo,colTo){
editgrid.sheet.RangeBox.call(this,rowFr,colFr,rowTo,colTo);
this.id=this.getName(this.rowFr,this.colFr,this.rowTo,this.colTo);
};
editgrid.sheet.MergedCellBox.getName=function(rowFr,colFr,rowTo,colTo){
return "mergedCellBox"+editgrid.RangeRef.getName(rowFr,colFr,rowTo,colTo);
};
editgrid.sheet.MergedCellBox.prototype=new editgrid.sheet.RangeBox();
editgrid.sheet.MergedCellBox.prototype.element=document.createElement("div");
editgrid.sheet.MergedCellBox.prototype.element.style.display="none";
editgrid.sheet.MergedCellBox.prototype.element.className="mergedCellBox";
editgrid.sheet.MergedCellBox.prototype.getName=editgrid.sheet.MergedCellBox.getName;
editgrid.sheet.MergedCellBox.prototype.widthAdjustment=-2;
editgrid.sheet.MergedCellBox.prototype.heightAdjustment=-2;
editgrid.sheet.MergedCellBox.prototype.autoResize=false;
editgrid.sheet.MergedCellBox.prototype.autoShift=false;
editgrid.sheet.MergedCellBox.prototype.clipped=false;
editgrid.sheet.Lock=function(mine,_110c,rowFr,colFr,rowTo,colTo){
var _1111=editgrid.sheet.Lock.prototype;
if(!_1111.inited){
var _1112=document.createElement("div");
_1112.style.display="none";
_1111.element=_1112;
var ctrl=document.createElement("div");
ctrl.style.display="none";
ctrl.dx=0;
ctrl.dy=0;
ctrl.placement=0;
_1111.icons=[ctrl];
_1111.inited=true;
}
editgrid.sheet.RangeBox.call(this,rowFr,colFr,rowTo,colTo);
this.id="lock"+editgrid.RangeRef.getName(this.rowFr,this.colFr,this.rowTo,this.colTo);
this.mine=mine;
this.canDel=_110c;
};
editgrid.sheet.Lock.getName=function(rowFr,colFr,rowTo,colTo){
return "lock"+editgrid.RangeRef.getName(rowFr,colFr,rowTo,colTo);
};
editgrid.sheet.Lock.prototype=new editgrid.sheet.RangeBox();
editgrid.sheet.Lock.prototype.getName=editgrid.sheet.Lock.getName;
editgrid.sheet.Lock.prototype.realize=function(_1118,id){
var inst=editgrid.sheet.RangeBox.prototype.realize.call(this,_1118,id);
var ctrl=inst.icons[0];
var self=this;
inst.element.className=this.mine?"myLock":"lock";
ctrl.className=this.mine?"myLockCtrl":"lockCtrl";
this.heightAdjustment=this.widthAdjustment=this.mine?0:-2;
if(this.canDel){
ctrl.title=loc("Click to Unlock");
ctrl.style.cursor="pointer";
}else{
ctrl.title=loc("Cell/Range Locked");
ctrl.style.cursor="crosshair";
}
ctrl.onmousedown=function(e){
if(self.canDel){
self.onUnlock.call(self.onUnlockContext,self);
}
std.event.vanish(e||window.event);
};
ctrl.oncontextmenu=ctrl.ondblclick=function(e){
std.event.vanish(e||window.event);
};
};
editgrid.sheet.Lock.prototype.release=function(inst){
var ctrl=inst.icons[0];
ctrl.onmousedown=null;
ctrl.oncontextmenu=null;
ctrl.ondblclick=null;
};
editgrid.sheet.CellErrorIndicator=function(sheet,col,row){
var _1124=editgrid.sheet.CellErrorIndicator.prototype;
if(!_1124.inited){
var _1125=document.createElement("div");
_1125.style.display="none";
_1124.element=_1125;
var ctrl=document.createElement("div");
ctrl.style.display="none";
ctrl.dx=-10;
ctrl.dy=1;
ctrl.placement=1;
_1124.icons=[ctrl];
_1124.inited=true;
}
var rowFr=row;
var colFr=col;
var rowTo=row;
var colTo=col;
editgrid.sheet.RangeBox.call(this,rowFr,colFr,rowTo,colTo);
this.id=this.getName(sheet,col,row);
};
editgrid.sheet.CellErrorIndicator.getName=function(sheet,col,row){
return "cellErrorIndicator"+sheet.id+":"+col+":"+row;
};
editgrid.sheet.CellErrorIndicator.prototype=new editgrid.sheet.RangeBox();
editgrid.sheet.CellErrorIndicator.prototype.getName=editgrid.sheet.CellErrorIndicator.getName;
editgrid.sheet.CellErrorIndicator.prototype.realize=function(_112e,id){
var inst=editgrid.sheet.RangeBox.prototype.realize.call(this,_112e,id);
var ctrl=inst.icons[0];
var self=this;
inst.element.className="cellErrorIndicator";
ctrl.className="cellErrorIndicatorCtrl";
if(this.canDel){
ctrl.style.cursor="hand";
}else{
ctrl.style.cursor="hand";
}
};
editgrid.sheet.CellErrorIndicator.prototype.release=function(inst){
};
editgrid.sheet.CellErrorIndicator.prototype.getCellError=function(){
return this.cellError;
};
editgrid.sheet.CellErrorIndicator.prototype.removeOnShift=true;
editgrid.sheet.NamedRangeOriginBox=function(rowFr,colFr,rowTo,colTo){
this.id="namedRangeOriginBox";
editgrid.sheet.RangeBox.call(this,rowFr,colFr,rowTo,colTo);
};
editgrid.sheet.NamedRangeOriginBox.prototype=new editgrid.sheet.RangeBox();
editgrid.sheet.NamedRangeOriginBox.prototype.element=document.createElement("div");
editgrid.sheet.NamedRangeOriginBox.prototype.element.style.display="none";
editgrid.sheet.NamedRangeOriginBox.prototype.element.className="namedRangeOriginBox";
editgrid.AlertBar=function(){
this.alertElements={};
};
editgrid.AlertBar._constructMessage=function(body,_1139){
if(typeof (_1139)=="string"){
_1139=[_1139];
}
_1139.unshift("AlertMessage");
var _113a=std.dom.newDiv(null,{className:_1139.join(" ")});
var _113b=std.dom.newDiv(_113a);
_113b.style.width="100%";
if(body==""){
body="&nbsp;";
}
_113b.innerHTML=body;
return _113a;
};
editgrid.AlertBar.prototype.onRedraw=null;
editgrid.AlertBar.prototype.onfocus=null;
editgrid.AlertBar.prototype.getRoot=function(){
if(!this.root){
this.root=std.dom.newDiv(null,{className:"AlertBar"});
std.event.observe(this.root,"mousedown",std.event.listener(this,this._onfocus));
}
return this.root;
};
editgrid.AlertBar.prototype.put=function(name,body,_113e){
var _113f=editgrid.AlertBar._constructMessage(body,_113e);
this.remove(name);
this.alertElements[name]=_113f;
this.getRoot().appendChild(_113f);
if(this.onRedraw){
this.onRedraw();
}
};
editgrid.AlertBar.prototype.remove=function(name){
if(this.alertElements[name]){
this.getRoot().removeChild(this.alertElements[name]);
this.alertElements[name]=null;
if(this.onRedraw){
this.onRedraw();
}
}
};
editgrid.AlertBar.prototype._onfocus=function(){
if(this.onfocus){
this.onfocus();
}
};
editgrid.IntervalList=function(_1141,_1142){
this.frList=_1141;
this.toList=_1142;
};
editgrid.IntervalList.fromPointList=function(_1143){
var _1144=[];
var _1145=[];
var from=_1143[0];
var last=_1143.length-1;
for(var i=1;i<=last;++i){
if(_1143[i-1]+1!=_1143[i]){
_1144.push(from);
_1145.push(_1143[i-1]);
from=_1143[i];
}
}
if(last!=-1){
_1144.push(from);
_1145.push(_1143[last]);
}
return new editgrid.IntervalList(_1144,_1145);
};
editgrid.IntervalList.prototype.getFrList=function(){
return this.frList;
};
editgrid.IntervalList.prototype.getToList=function(){
return this.toList;
};
editgrid.IntervalList.prototype.shift=function(_1149,_114a,_114b){
var delta=_114a-_1149;
var _114d=[];
var _114e=[];
var _114f=this.getFrList();
var _1150=this.getToList();
for(var i=0;i<_114f.length;++i){
var _1152=false;
var posFr=_114f[i];
var posTo=_1150[i];
if(delta>0){
if(_1149<=posFr){
posFr+=delta;
posTo+=delta;
}else{
if(_1149<=posTo){
posTo+=delta;
}
}
}else{
if(delta<0){
if(_1149<posFr){
posFr+=delta;
posTo+=delta;
}else{
if(_114a<=posFr){
if(_1149>=posTo){
_1152=true;
}else{
posTo-=_1149-posFr+1;
posFr=_114a;
}
}else{
if(_114a<=posTo){
if(_1149>=posTo){
posTo=_114a;
}else{
posTo+=delta;
}
}
}
}
}
}
if(!_1152){
_114d.push(posFr);
_114e.push(posTo);
}
}
return new editgrid.IntervalList(_114d,_114e);
};
editgrid.IntervalList.rangeSubtractIntervalList=function(_1155,range,_1157){
var _1158=_1157.frList;
var _1159=_1157.toList;
var sFr,sTo,_115c,_115d;
if(_1155){
sFr="rowFr";
_115c="colFr";
sTo="rowTo";
_115d="colTo";
}else{
sFr="colFr";
_115c="rowFr";
sTo="colFr";
_115d="rowTo";
}
var start=0;
for(;start<_1159.length;++start){
if(_1159[start]>=range[sFr]){
break;
}
}
if(start==_1159.length){
return [range.clone()];
}
if(_1158[0]>range[sTo]){
return [range.clone()];
}
var top={};
top[_115c]=range[_115c];
top[_115d]=range[_115d];
var _1160=range.clone();
var end=_1158.length-1;
var _1162=[];
for(var i=start;i<=end;++i){
posFr=_1158[i];
posTo=_1159[i];
if(posFr<=_1160[sFr]&&_1160[sTo]<=posTo){
return _1162;
}
if(posFr<=_1160[sFr]&&_1160[sFr]<=posTo){
_1160[sFr]=posTo+1;
continue;
}
if(_1160[sTo]<=posTo){
if(_1160[sTo]>=posFr){
_1160[sTo]=posFr-1;
}
break;
}
top[sFr]=_1160[sFr];
top[sTo]=posFr-1;
_1160[sFr]=posTo+1;
_1162.push(new editgrid.RangeRef(top.rowFr,top.colFr,top.rowTo,top.colTo));
}
if(_1160[sFr]<=_1160[sTo]){
_1162.push(new editgrid.RangeRef(_1160.rowFr,_1160.colFr,_1160.rowTo,_1160.colTo));
}
return _1162;
};
editgrid.sheet=editgrid.sheet||{};
editgrid.sheet.SheetView=function(sheet){
this.sheet=sheet;
this.cellWidth=sheet.getDefColSize();
this.cellHeight=sheet.getDefRowSize();
this.rowsFreezed=sheet.frozenRowFr!=null;
this.colsFreezed=sheet.frozenColFr!=null;
this.frozenRowFr=sheet.frozenRowFr;
this.frozenColFr=sheet.frozenColFr;
this.frozenRowTo=sheet.frozenRowTo;
this.frozenColTo=sheet.frozenColTo;
this.unfrozenRow=sheet.frozenRowFr!=null?sheet.frozenRowTo+1:0;
this.unfrozenCol=sheet.frozenColFr!=null?sheet.frozenColTo+1:0;
this.gridLinesVisible=sheet.gridLinesVisible;
this.pageManager=new editgrid.CellPageManager({sheetView:this});
this.loader=new editgrid.CellDOMLoader({sheetView:this});
this.cellLoader=std.lang.bind(this,this._cellLoader);
std.topic.define(this,"onRangeBoxAdd");
std.topic.define(this,"onRangeBoxDel");
std.topic.define(this,"onMultiRowColVisibilityChange");
this.hiddenRows=null;
this.hiddenCols=null;
this.rowLoaderThreshold=Math.round(REGION_SIZE_ROW*0.5);
this._regionHiddenCache=[];
this.rowOffsetCache=[0];
this.colOffsetCache=[0];
this._loadedFilterFieldList={};
std.topic.subscribe(this.sheet,"onLocalRowColUpdate",std.lang.bind(this,this._onLocalRowColUpdate));
};
editgrid.sheet.SheetView.prototype.getRowColSize=function(isRow,idx){
var _1167=isRow?this.hiddenRows:this.hiddenCols;
if(_1167&&_1167[idx]){
return 0;
}else{
return this.sheet.getRowColSize(isRow,idx);
}
};
editgrid.sheet.SheetView.prototype.getRowColsSize=function(isRow,fr,to){
var _116b=isRow?this.hiddenRows:this.hiddenCols;
if(_116b==null){
return this.sheet.getRowColsSize(isRow,fr,to);
}
if(isRow){
return this._getRowOffset(to+1)-this._getRowOffset(fr);
}else{
return this._getColOffset(to+1)-this._getColOffset(fr);
}
};
editgrid.sheet.SheetView.prototype.isRowColHidden=function(isRow,idx){
var _116e=isRow?this.hiddenRows:this.hiddenCols;
if(_116e==null){
return this.sheet.isRowColHidden(isRow,idx);
}else{
return _116e[idx]||this.sheet.isRowColHidden(isRow,idx);
}
};
editgrid.sheet.SheetView.prototype._isRowColIntervalHidden=function(isRow,fr,to){
var _1172=isRow?this.hiddenRows:this.hiddenCols;
if(_1172==null){
return this.sheet.isRowColIntervalHidden(isRow,fr,to);
}
for(var i=fr;i<=to;++i){
if(!_1172[i]&&!this.sheet.isRowColHidden(isRow,i)){
return false;
}
}
return true;
};
editgrid.sheet.SheetView.prototype.isRangeHidden=function(rowFr,colFr,rowTo,colTo){
return this._isRowColIntervalHidden(true,rowFr,rowTo)||this._isRowColIntervalHidden(false,colFr,colTo);
};
editgrid.sheet.SheetView.prototype.intersectsHiddenRowCol=function(isRow,fr,to){
var _117b=isRow?this.hiddenRows:this.hiddenCols;
if(_117b==null){
return this.sheet.intersectsHiddenRowCol(isRow,fr,to);
}
for(var i=fr;i<=to;++i){
if(_117b[i]){
return true;
}
}
return this.sheet.intersectsHiddenRowCol(isRow,fr,to);
};
editgrid.sheet.SheetView.prototype.shiftRowCol=function(isRow,_117e,_117f){
if(isRow){
if(this.hiddenRows){
editgrid.shiftArrayPoints(this.hiddenRows,_117e,_117f,65536,true);
this.rowHiddenList=this.rowHiddenList.shift(_117e,_117f,65536);
this.filterRowMax=editgrid.shiftPos(this.filterRowMax,_117e,_117f,65536);
}
}else{
if(this.hiddenCols){
editgrid.shiftArrayPoints(this.hiddenCols,_117e,_117f,256,true);
this.colHiddenList=this.colHiddenList.shift(_117e,_117f,256);
}
}
for(var col in this._loadedFilterFieldList){
this.filterFieldInvalidateCol(col);
}
};
editgrid.sheet.SheetView.prototype.setHiddenRowColList=function(isRow,_1182){
var _1183=_1182.getFrList();
var _1184=_1182.getToList();
var _1185=isRow?this.hiddenRows:this.hiddenCols;
var _1186=_1183.length==0;
if(_1185!=null){
this.delHiddenRowColList(isRow,!_1186);
}
var _1185=[];
var _1187=[];
var low=0;
if(!_1186){
for(var i=0;i<_1183.length;++i){
var posFr=_1183[i];
var posTo=_1184[i];
_1187.push(1);
for(var j=posFr;j<=posTo;++j){
_1185[j]=true;
}
if(low>posFr){
low=posFr;
}
}
if(isRow){
this.hiddenRows=_1185;
this.rowHiddenList=_1182;
}else{
this.hiddenCols=_1185;
this.colHiddenList=_1182;
}
this._resetRowColCaches(isRow,low);
var _118d=_1184[_1184.length-1];
var _118e=this.sheet.getRowColExtent(true);
this.filterRowMax=_118d>_118e?_118d:_118e;
this.sheet.setCellLoader(this.cellLoader);
std.topic.publish(this,"onMultiRowColVisibilityChange",this.sheet,isRow,_1183,_1184,_1187);
}
};
editgrid.sheet.SheetView.prototype.delHiddenRowColList=function(isRow,_1190){
var _1191,_1192,_1193;
var _1194=[];
if(isRow){
var _1193=this.hiddenRows;
if(_1193){
this.hiddenRows=null;
_1191=this.rowHiddenList.getFrList();
_1192=this.rowHiddenList.getToList();
this.rowHiddenList=null;
}
}else{
var _1193=this.hiddenCols;
if(_1193){
this.hiddenCols=null;
_1191=this.colHiddenList.getFrList();
_1192=this.colHiddenList.getToList();
this.colHiddenList=null;
}
}
if(_1193){
var low=0;
for(var i=0;i<_1191.length;++i){
_1194.push(0);
if(low>_1191[i]){
low=_1191[i];
}
}
this._resetRowColCaches(isRow,low);
this.filterRowMax=-1;
this.sheet.setCellLoader(this.sheet.defaultCellLoader);
std.topic.publish(this,"onMultiRowColVisibilityChange",this.sheet,isRow,_1191,_1192,_1194,_1190);
}
};
editgrid.sheet.SheetView.prototype.getVisibleRanges=function(range){
var _1198=this.hiddenRows?editgrid.IntervalList.rangeSubtractIntervalList(true,range,this.rowHiddenList):[range];
if(this.hiddenCols){
var _1199=[];
for(var r=0;r<_1198.length;++r){
var _119b=editgrid.IntervalList.rangeSubtractIntervalList(false,_1198[r],this.colHiddenList);
for(var c=0;c<_119b.length;++c){
_1199.push(_119b[c]);
}
}
return _1199;
}
return _1198;
};
editgrid.sheet.SheetView.prototype._getRowOffset=function(index){
var sum;
if((sum=this.rowOffsetCache[index])==null){
var n=this.rowOffsetCache.length-1;
sum=this.rowOffsetCache[n];
for(var i=n;i<index;++i){
sum=this.rowOffsetCache[i+1]=sum+this.getRowColSize(true,i);
}
}
return sum;
};
editgrid.sheet.SheetView.prototype._getColOffset=function(index){
var sum;
if((sum=this.colOffsetCache[index])==null){
var n=this.colOffsetCache.length-1;
sum=this.colOffsetCache[n];
for(var i=n;i<index;++i){
sum=this.colOffsetCache[i+1]=sum+this.getRowColSize(false,i);
}
}
return sum;
};
editgrid.sheet.SheetView.prototype._resetRowColCaches=function(isRow,pos){
this._regionHiddenCache=[];
this._resetRowColOffsetCache(isRow,pos);
};
editgrid.sheet.SheetView.prototype._resetRowColOffsetCache=function(isRow,pos){
if(isRow){
if(this.rowOffsetCache.length>pos){
this.rowOffsetCache.length=pos+1;
}
}else{
if(this.colOffsetCache.length>pos){
this.colOffsetCache.length=pos+1;
}
}
};
editgrid.sheet.SheetView.prototype._onLocalRowColUpdate=function(isRow,fr){
this._resetRowColCaches(isRow,fr);
};
editgrid.sheet.SheetView.prototype.rangeBoxAdd=function(box){
var old,boxes=this.rangeBoxes;
if((old=boxes[box.id])){
this.rangeBoxDel(old);
boxes[box.id]=box;
}
std.topic.publish(this,"onRangeBoxAdd",this,box);
};
editgrid.sheet.SheetView.prototype.rangeBoxDel=function(box){
if(box.destroy){
box.destroy();
}
delete this.rangeBoxes[box.id];
std.topic.publish(this,"onRangeBoxDel",this,box);
};
editgrid.sheet.SheetView.prototype._cellLoader=function(sheet,row,col){
var _11b2=sheet.getCellRegionIdx(row,col);
var _11b3;
if((_11b3=this._regionHiddenCache[_11b2])==null){
var rowFr=REGION_SIZE_ROW*_11b2;
var rowTo=REGION_SIZE_ROW+rowFr-1;
var _11b6=0;
_11b3=false;
for(var i=rowFr;i<=rowTo;++i){
if(this.isRowColHidden(true,i)){
if(++_11b6>=this.rowLoaderThreshold){
_11b3=true;
break;
}
}
}
this._regionHiddenCache[_11b2]=_11b3;
}
if(_11b3){
sheet.loadRowEnqueue(row);
}else{
sheet.defaultCellLoader(sheet,row,col);
}
};
editgrid.sheet.SheetView.prototype.filterFieldMarkLoaded=function(col,field){
var _11ba=this._loadedFilterFieldList[col];
if(_11ba==null){
_11ba=this._loadedFilterFieldList[col]=[];
}
_11ba.push(field);
};
editgrid.sheet.SheetView.prototype.filterFieldInvalidateCol=function(col){
var _11bc=this.filters;
var _11bd=this._loadedFilterFieldList[col];
if(_11bd!=null){
for(var i=0;i<_11bd.length;++i){
_11bd[i]._matches=null;
_11bd[i]._hasBlank=null;
}
delete this._loadedFilterFieldList[col];
}
};
editgrid.sheet.SheetView.prototype.filtersActive=function(){
var _11bf=this.filters;
if(_11bf){
for(var k in _11bf){
if(_11bf[k].active){
return true;
}
}
}
return false;
};
editgrid.sheet.SheetView.prototype.copyAsText=function(range){
var c,r,rows,cols;
var r1=range.rowFr;
var r2=range.rowTo;
var c1=range.colFr;
var c2=range.colTo;
var sheet=this.sheet;
var _11cb=[];
for(c=c1;c<=c2;++c){
_11cb[c]=this.isRowColHidden(false,c);
}
rows=[];
for(r=r1;r<=r2;++r){
if(!this.isRowColHidden(true,r)){
cols=[];
for(c=c1;c<=c2;++c){
if(!_11cb[c]){
cols.push((cell=sheet.cells[sheet.getCellIdx(r,c)])?cell.rtext:"");
}
}
rows.push(cols.join("\t"));
}
}
return rows.join("\n");
};
editgrid.sheet.SheetView.prototype._rangeCheck=function(_11cc){
if(_11cc.length>1){
alert(loc("Working on multiple range is currently not allowed"));
return true;
}
return false;
};
editgrid.sheet.SheetView.prototype.setRangeBits=function(range,mask,bits){
var _11d0=this.getVisibleRanges(range);
if(this._rangeCheck(_11d0)){
return;
}
for(var i=0;i<_11d0.length;++i){
this.sheet.setRangeBits(_11d0[i],mask,bits);
}
};
editgrid.sheet.SheetView.prototype.setRangeColor=function(range,rgb){
var _11d4=this.getVisibleRanges(range);
if(this._rangeCheck(_11d4)){
return;
}
for(var i=0;i<_11d4.length;++i){
this.sheet.setRangeColor(_11d4[i],rgb);
}
};
editgrid.sheet.SheetView.prototype.setRangeFontColor=function(range,rgb){
var _11d8=this.getVisibleRanges(range);
if(this._rangeCheck(_11d8)){
return;
}
for(var i=0;i<_11d8.length;++i){
this.sheet.setRangeFontColor(_11d8[i],rgb);
}
};
editgrid.sheet.SheetView.prototype.setRangeFont=function(range,_11db){
var _11dc=this.getVisibleRanges(range);
if(this._rangeCheck(_11dc)){
return;
}
for(var i=0;i<_11dc.length;++i){
this.sheet.setRangeFont(_11dc[i],_11db);
}
};
editgrid.sheet.SheetView.prototype.setRangeFontSize=function(range,_11df){
var _11e0=this.getVisibleRanges(range);
if(this._rangeCheck(_11e0)){
return;
}
for(var i=0;i<_11e0.length;++i){
this.sheet.setRangeFontSize(_11e0[i],_11df);
}
};
editgrid.sheet.SheetView.prototype.setRangeFormat=function(range,_11e3){
var _11e4=this.getVisibleRanges(range);
if(this._rangeCheck(_11e4)){
return;
}
for(var i=0;i<_11e4.length;++i){
this.sheet.setRangeFormat(_11e4[i],_11e3);
}
};
editgrid.sheet.SheetView.prototype.rangeClear=function(range,flag){
var _11e8=this.getVisibleRanges(range);
if(this._rangeCheck(_11e8)){
return;
}
for(var i=0;i<_11e8.length;++i){
this.sheet.rangeClear(_11e8[i],flag);
}
};
editgrid.sheet.SheetView.prototype.rangeCopy=function(range){
var _11eb=this.getVisibleRanges(range);
if(this._rangeCheck(_11eb)){
return;
}
this.sheet.rangeCopy(range);
};
editgrid.sheet.SheetView.prototype.rangeCut=function(range){
var _11ed=this.getVisibleRanges(range);
if(this._rangeCheck(_11ed)){
return;
}
this.sheet.rangeCut(range);
};
editgrid.sheet.SheetView.prototype.paste=function(range,_11ef){
var _11f0=this.getVisibleRanges(range);
if(this._rangeCheck(_11f0)){
return;
}
this.sheet.paste(range,_11ef);
};
editgrid.sheet.SheetView.prototype.rangeSetBorder=function(range,_11f2){
var _11f3=this.getVisibleRanges(range);
if(this._rangeCheck(_11f3)){
return;
}
for(var i=0;i<_11f3.length;++i){
this.sheet.rangeSetBorder(_11f3[i],_11f2);
}
};
editgrid.sheet.SheetView.prototype.bltFormat=function(_11f5,_11f6,_11f7){
var _11f8=this.getVisibleRanges(_11f7);
if(this._rangeCheck(_11f8)){
return;
}
for(var i=0;i<_11f8.length;++i){
this.sheet.bltFormat(_11f5,_11f6,_11f8[i]);
}
};
editgrid.sheet.SheetView.prototype.fillRange=function(range,flags){
var _11fc=this.getVisibleRanges(range);
if(this._rangeCheck(_11fc)){
return;
}
this.sheet.fillRange(range,flags);
};
editgrid.sheet.SheetView.prototype.autofill=function(_11fd,_11fe,_11ff,_1200,h,w,_1203,flags){
var range=editgrid.RangeRef.normalized(_11fd,_11fe,_11ff,_1200);
var _1206=this.getVisibleRanges(range);
if(this._rangeCheck(_1206)){
return;
}
this.sheet.autofill(_11fd,_11fe,_11ff,_1200,h,w,_1203,flags);
};
editgrid.Scrollbar=function(_1207,type){
var self=this;
this.hardMin=this.min=0;
this.hardMax=this.max=99;
this.ext=10;
this.val=this.min;
this._drawVal=-1;
this.unitIncr=1;
this.blockIncr=10;
this.autoExtend=true;
this.onChange=null;
this.onChangeContext=null;
this._tmd={};
this.doc=_1207.ownerDocument||_1207.document;
this.type=type==editgrid.Scrollbar.TYPE_HORI?type:editgrid.Scrollbar.TYPE_VERT;
this.typeStr=this.TYPE_STR[this.type];
_1207.unselectable="on";
_1207.className=this.typeStr+" scrollbar "+_1207.className;
this.element=_1207;
var track=this.doc.createElement("DIV");
track.className="track";
track.unselectable="on";
track.appendChild(this.doc.createElement("DIV"));
_1207.appendChild(track);
this.track=track;
var _120b=this.doc.createElement("TABLE");
_120b.cellPadding="0";
_120b.cellSpacing="0";
_120b.border="1";
var _120c,_120d;
_120b.className="handle";
_120b.unselectable="on";
_120b.appendChild(_120c=this.doc.createElement("TBODY"));
_120c.appendChild(_120d=this.doc.createElement("TR"));
_120d.appendChild(this.doc.createElement("TD"));
_120d.firstChild.appendChild(this.doc.createTextNode(" "));
_1207.appendChild(_120b);
this.handle=_120b;
var up=this.doc.createElement("DIV");
up.className="scrollup scrollbutton";
up.unselectable="on";
_1207.appendChild(up);
this.up=up;
var down=this.doc.createElement("DIV");
down.className="scrolldown scrollbutton";
down.unselectable="on";
_1207.appendChild(down);
this.down=down;
var w=_1207.offsetWidth;
var h=_1207.offsetHeight;
this.tw=track.offsetWidth;
this.hw=_120b.offsetWidth;
this.th=track.offsetHeight;
this.hh=_120b.offsetHeight;
if(this.type==editgrid.Scrollbar.TYPE_VERT){
track.style.left=((w-this.tw)>>1)+"px";
_120b.style.left=((w-this.hw)>>1)+"px";
}else{
track.style.top=((h-this.th)>>1)+"px";
_120b.style.top=((h-this.hh)>>1)+"px";
}
this.onResize();
_120b.onselectstart=_1207.onselectstart=function(){
return false;
};
up.onmousedown=function(e){
self.onBtnMouseEvent(e,up,0);
};
up.onmouseup=function(e){
self.onBtnMouseEvent(e,up,1);
};
up.onmouseout=function(e){
self.onBtnMouseEvent(e,up,2);
};
down.onmousedown=function(e){
self.onBtnMouseEvent(e,down,0);
};
down.onmouseup=function(e){
self.onBtnMouseEvent(e,down,1);
};
down.onmouseout=function(e){
self.onBtnMouseEvent(e,down,2);
};
if(std.browser.isIE){
up.ondblclick=function(e){
self.onBtnMouseEvent(e,up,3);
};
down.ondblclick=function(e){
self.onBtnMouseEvent(e,down,3);
};
}
_120b.onmousedown=std.event.listener(this,this.onHandleMouseDown);
track.onmousedown=std.event.listener(this,this.onTrackMouseDown);
track.onmouseup=std.event.listener(this,this.onTrackMouseUp);
track.onmouseout=std.event.listener(this,this.onTrackMouseUp);
std.topic.define(this,"onScrollStart");
std.topic.define(this,"onScrollEnd");
};
editgrid.Scrollbar.prototype.release=function(){
var up=this.up,down=this.down,_121c=this.handle,track=this.track,_121e=this.element;
up.onmousedown=null;
up.onmouseup=null;
up.onmouseout=null;
up.ondblclick=null;
down.onmousedown=null;
down.onmouseup=null;
down.onmouseout=null;
down.ondblclick=null;
_121c.onmousedown=null;
_121c.onselectstart=null;
track.onmousedown=null;
track.onmouseup=null;
track.onmouseout=null;
_121e.onselectstart=null;
_121e.innerHTML="";
this.doc=null;
this.up=null;
this.down=null;
this.handle=null;
this.track=null;
this.element=null;
};
editgrid.Scrollbar.prototype.minHandleExtent=6;
editgrid.Scrollbar.prototype.firstTimeout=400;
editgrid.Scrollbar.prototype.timeout=100;
editgrid.Scrollbar.prototype.resetDist=100;
editgrid.Scrollbar.prototype.TYPE_STR=["","vert","hori"];
editgrid.Scrollbar.prototype.onBtnMouseEvent=function(e,_1220,type){
var name,dir;
std.event.vanish(e||window.event);
if(_1220==this.up){
name="up";
dir=1;
}else{
name="down";
dir=-1;
}
switch(type){
case 0:
var self=this;
_1220.className="scroll"+name+"-p scrollbutton";
_1220.clicked=true;
this.handleButtonEvent(this.val,dir*this.unitIncr);
window.setTimeout(function(){
self.onBtnTimeout(_1220,dir);
},this.firstTimeout);
break;
case 1:
case 2:
if(type==1||_1220.clicked){
_1220.className="scroll"+name+" scrollbutton";
_1220.clicked=false;
}
break;
case 3:
this.handleButtonEvent(this.val,dir*this.unitIncr);
break;
}
};
editgrid.Scrollbar.prototype.handleButtonEvent=function(type,_1226,delta){
this.setValue(_1226+delta,this.autoExtend);
};
editgrid.Scrollbar.prototype.onBtnTimeout=function(_1228,dir){
if(_1228.clicked){
var self=this;
this.handleButtonEvent(this.val,dir*this.unitIncr);
window.setTimeout(function(){
self.onBtnTimeout(_1228,dir);
},this.timeout);
}
};
editgrid.Scrollbar.prototype.onHandleMouseDown=function(e){
e=e||window.event;
if(this._dragData){
this.handleEndDrag();
}
this._dragData={screenX:e.screenX,screenY:e.screenY,dx:e.screenX-this.handle.offsetLeft+this.uw,dy:e.screenY-this.handle.offsetTop+this.uh,startValue:this.val};
editgrid.event.attach(this.doc,"mousemove",this.onHandleMouseMove,this);
editgrid.event.attach(this.doc,"mouseup",this.onHandleMouseUp,this);
if(std.browser.isIE){
editgrid.event.attach(this.doc,"losecapture",this.onHandleMouseUp,this);
this.element.setCapture();
}
std.event.vanish(e);
return false;
};
editgrid.Scrollbar.prototype.onHandleMouseMove=function(e){
var _122d=this.max-this.min-this.ext+1;
var size,pos,reset,data=this._dragData;
if(this.type==editgrid.Scrollbar.TYPE_VERT){
size=this.th-this.hh+1;
pos=e.screenY-data.dy;
reset=Math.abs(e.screenX-data.screenX)>this.resetDist;
}else{
size=this.tw-this.hw+1;
pos=e.screenX-data.dx;
reset=Math.abs(e.screenY-data.screenY)>this.resetDist;
}
this.setValue(reset?data.startValue:this.min+_122d*pos/size);
std.event.vanish(e);
return false;
};
editgrid.Scrollbar.prototype.handleEndDrag=function(){
editgrid.event.dettach(this.doc,"mousemove",this.onHandleMouseMove,this);
editgrid.event.dettach(this.doc,"mouseup",this.onHandleMouseUp,this);
if(std.browser.isIE){
editgrid.event.dettach(this.doc,"losecapture",this.onHandleMouseUp,this);
this.element.releaseCapture();
}
delete this._dragData;
};
editgrid.Scrollbar.prototype.onHandleMouseUp=function(e){
this.handleEndDrag();
std.event.vanish(e||window.event);
return false;
};
editgrid.Scrollbar.prototype.onTrackMouseDown=function(e){
var self=this;
editgrid.event.getOffset(e);
this._tmd.x=e.offsetX;
this._tmd.y=e.offsetY;
this._tmd.on=true;
this.onTrackTimeout(true);
window.setTimeout(function(){
self.onTrackTimeout();
},this.firstTimeout);
std.event.vanish(e);
return false;
};
editgrid.Scrollbar.prototype.onTrackMouseUp=function(e){
if(this._tmd.on){
this._tmd.on=false;
std.event.vanish(e||window.event);
}
return false;
};
editgrid.Scrollbar.prototype.onTrackTimeout=function(_1236){
if(this._tmd.on){
var self=this;
if(this.type==editgrid.Scrollbar.TYPE_VERT){
if(this._tmd.y>this.ht+this.hh){
this.setValue(this.val+this.blockIncr);
}else{
if(this._tmd.y<this.ht){
this.setValue(this.val-this.blockIncr);
}
}
}else{
if(this._tmd.x>this.hl+this.hw){
this.setValue(this.val+this.blockIncr);
}else{
if(this._tmd.x<this.hl){
this.setValue(this.val-this.blockIncr);
}
}
}
if(!_1236){
window.setTimeout(function(){
self.onTrackTimeout();
},this.timeout);
}
}
return false;
};
editgrid.Scrollbar.prototype.onResize=function(){
var uw=this.uw=this.up.offsetWidth;
var uh=this.uh=this.up.offsetHeight;
var w=this.w=this.element.offsetWidth;
var h=this.h=this.element.offsetHeight;
if(this.type==editgrid.Scrollbar.TYPE_VERT){
var _123c=this.th=Math.max(0,h-uh*2);
this.track.style.top=this.uh+"px";
this.track.style.height=_123c+"px";
this.up.style.top=h-uh+"px";
}else{
var _123d=this.tw=Math.max(0,w-uw*2);
this.track.style.left=this.uw+"px";
this.track.style.width=_123d+"px";
this.up.style.left=w-uw+"px";
}
this.drawHandle();
};
editgrid.Scrollbar.prototype.drawHandle=function(){
var _123e=this.ext/(this.max-this.min+1);
var pos=this.max-this.min-this.ext+1;
if(pos){
pos=(this.val-this.min)/pos;
}
var _1240=this.handle.style;
if(this.type==editgrid.Scrollbar.TYPE_VERT){
if((_123e*=this.th)<this.minHandleExtent){
_123e=this.minHandleExtent;
}
var _1241=(this.ht=Math.round((this.th-_123e)*pos))+this.uh+"px";
if(_1241!=this._handleTop){
_1240.top=this._handleTop=_1241;
}
var _1242=Math.round(_123e)+"px";
if(_1242!=this._handleHeight){
_1240.height=this._handleheight=_1242;
}
this.hh=_123e;
}else{
if((_123e*=this.tw)<this.minHandleExtent){
_123e=this.minHandleExtent;
}
var _1243=(this.hl=Math.round((this.tw-_123e)*pos))+this.uw+"px";
if(_1243!=this._handleLeft){
_1240.left=this._handleLeft=_1243;
}
var _1244=Math.round(_123e)+"px";
if(_1244!=this._handleWidth){
_1240.width=this._handleWidth=_1244;
}
this.hw=_123e;
}
};
editgrid.Scrollbar.prototype.getMinimum=function(){
return this.min;
};
editgrid.Scrollbar.prototype.setMinimum=function(min){
this.min=min;
this.drawHandle();
};
editgrid.Scrollbar.prototype.getHardMinimum=function(){
return this.hardMin;
};
editgrid.Scrollbar.prototype.setHardMinimum=function(_1246){
this.min=this.hardMin=_1246;
this.drawHandle();
};
editgrid.Scrollbar.prototype.getMaximum=function(){
return this.max;
};
editgrid.Scrollbar.prototype.setMaximum=function(max){
this.max=max;
this.drawHandle();
};
editgrid.Scrollbar.prototype.getHardMaximum=function(){
return this.hardMax;
};
editgrid.Scrollbar.prototype.setHardMaximum=function(_1248){
this.hardMax=_1248;
this.drawHandle();
};
editgrid.Scrollbar.prototype.getUnitIncrement=function(){
return this.unitIncr;
};
editgrid.Scrollbar.prototype.setUnitIncrement=function(_1249){
this.unitIncr=_1249;
};
editgrid.Scrollbar.prototype.getBlockIncrement=function(){
return this.blockIncr;
};
editgrid.Scrollbar.prototype.setBlockIncrement=function(_124a){
this.blockIncr=_124a;
};
editgrid.Scrollbar.prototype.getExtent=function(){
return this.ext;
};
editgrid.Scrollbar.prototype.setExtent=function(ext){
this.ext=ext;
this.drawHandle();
};
editgrid.Scrollbar.prototype.getValue=function(){
return this.val;
};
editgrid.Scrollbar.prototype.setValue=function(val,_124d,_124e,_124f){
std.topic.publish(this,"onScrollStart");
val|=0;
if(val+this.ext-1>this.max){
if(_124d){
if(val+this.ext-1>this.hardMax){
val=this.hardMax-this.ext+1;
}else{
this.max=val+this.ext-1;
}
}else{
val=this.max-this.ext+1;
}
}else{
if(val<this.min){
val=this.min;
}
}
var _1250;
if(_1250=(this.val!=val)){
this.val=val;
}
if(this._drawVal!=val&&!_124f){
this._drawVal=val;
this.drawHandle();
}
if(_1250){
if(this.onChange&&!_124e){
this.onChange.call(this.onChangeContext,val);
}
}
std.topic.publish(this,"onScrollEnd");
};
editgrid.Scrollbar.TYPE_VERT=1;
editgrid.Scrollbar.TYPE_HORI=2;
editgrid.tooltip={};
editgrid.tooltip.TooltipGroup=function(_1251){
if(_1251==null){
_1251={};
}
this.tooltips=_1251.tooltips;
this.onshow=_1251.onshow;
this.isMouseOver=false;
this.isFading=false;
this.root=null;
};
editgrid.tooltip.TooltipGroup.prototype.clear=function(){
this.tooltips=new Array();
var root=this.getRoot();
std.dom.clearChildren(root);
if(this.visible){
this._updateBounds();
}
};
editgrid.tooltip.TooltipGroup.prototype.removeTooltip=function(_1253){
this.tooltips=std.array.without(this.tooltips,_1253);
this.getRoot();
this.root.removeChild(_1253.getRoot());
_1253.setVisible(false);
if(this.visible){
this._updateBounds();
}
};
editgrid.tooltip.TooltipGroup.prototype.addTooltip=function(_1254){
this.getRoot();
if(!this.tooltips){
this.tooltips=new Array();
}
this.tooltips.push(_1254);
this.root.appendChild(_1254.getRoot());
_1254.setOnUpdate(std.lang.bind(this,this._onTooltipUpdate));
_1254.setVisible(this.visible);
if(this.visible){
this._updateBounds();
}
};
editgrid.tooltip.TooltipGroup.prototype.getCount=function(){
return this.tooltips.length;
};
editgrid.tooltip.TooltipGroup.prototype.getTooltip=function(i){
return this.tooltips[i];
};
editgrid.tooltip.TooltipGroup.prototype._onMouseOver=function(){
this.isMouseOver=true;
};
editgrid.tooltip.TooltipGroup.prototype._onMouseOut=function(){
this.isMouseOver=false;
};
editgrid.tooltip.TooltipGroup.prototype.getRoot=function(){
if(this.root==null){
var _1256=new std.dom.Builder();
this.root=_1256.push("div",{className:"TooltipGroup"});
for(var i in this.tooltips){
this.root.appendChild(this.tooltips[i].getRoot());
this.tooltips[i].setOnUpdate(std.lang.bind(this,this._onTooltipUpdate));
}
this.root.onmouseover=std.event.listener(this,this._onMouseOver);
this.root.onmouseout=std.event.listener(this,this._onMouseOut);
document.body.appendChild(this.root);
this.setVisible(false);
}
return this.root;
};
editgrid.tooltip.TooltipGroup.prototype._show=function(){
this.isFading=false;
this.setVisible(true);
};
editgrid.tooltip.TooltipGroup.prototype.showAt=function(_1258){
if(this.onshow){
this.onshow();
}
this.moveTo(_1258);
this._show();
};
editgrid.tooltip.TooltipGroup.prototype.showAlignedByElement=function(_1259){
this.alignedByElement=_1259.element;
if(this.onshow){
this.onshow();
}
this._updateBounds();
this._show();
};
editgrid.tooltip.TooltipGroup.prototype.startFade=function(){
this.isFading=true;
setTimeout(std.lang.bind(this,this._fade),500);
};
editgrid.tooltip.TooltipGroup.prototype._fade=function(){
if(this.isFading){
if(this.isMouseOver){
setTimeout(std.lang.bind(this,this._fade),500);
}else{
this.setVisible(false);
this.isFading=false;
}
}
};
editgrid.tooltip.TooltipGroup.prototype.setVisible=function(_125a){
for(var i in this.tooltips){
this.tooltips[i].setVisible(_125a);
}
this.getRoot().style.display=_125a?"":"none";
this.visible=_125a;
};
editgrid.tooltip.TooltipGroup.prototype.isVisible=function(){
return this.visible;
};
editgrid.tooltip.TooltipGroup.prototype.moveTo=function(_125c){
this.alignedByElement=null;
this.x=_125c.x;
this.y=_125c.y;
this.w=_125c.w;
this.h=_125c.h;
this._updateBounds();
};
editgrid.tooltip.TooltipGroup.prototype._onTooltipUpdate=function(_125d){
_125d.updateSize();
this._updateBounds();
};
editgrid.tooltip.TooltipGroup.prototype._updateSize=function(){
var root=this.getRoot();
var sty=root.style;
var _1260=sty.overflow;
var _1261=sty.display;
var left=sty.left;
var size={width:0,height:0};
sty.width=sty.height="auto";
sty.overflow="visible";
sty.display="";
for(var i in this.tooltips){
var _1265=this.tooltips[i];
_1265.updateSize();
if(_1265.size.width>size.width){
size.width=_1265.size.width;
}
size.height+=_1265.size.height;
}
for(var i in this.tooltips){
var _1265=this.tooltips[i];
_1265.setHardSize({w:size.width});
}
this.size=size;
sty.display=_1261;
sty.overflow=_1260;
if(_1261==""){
sty.left=left;
}
};
editgrid.tooltip.TooltipGroup.prototype._updateBounds=function(){
var root=this.getRoot();
var sty=root.style;
this._updateSize();
var size=this.size;
if(this.alignedByElement){
var body=std.dom.getBodyExtent();
var _126a=this.alignedByElement.style;
var _126b=_126a.overflow;
_126a.overflow="hidden";
var rect=std.dom.getBounds(this.alignedByElement);
_126a.overflow=_126b;
var nr=rect.right;
var nb=rect.top+size.height;
var _126f=false;
if(rect.right+size.width<body.width||body.width-nr>rect.left){
sty.left=(nr+1)+"px";
}else{
sty.left=(rect.left-size.width-1)+"px";
_126f=true;
}
if(rect.top+size.height<body.height||body.height-nb>rect.bottom-size.height){
sty.top=rect.top+"px";
}else{
sty.top=(rect.bottom-size.height)+"px";
}
if(_126f&&size.width>rect.left){
sty.left="0px";
sty.width=rect.left+"px";
}
}else{
if(this.x){
sty.left=this.x+"px";
}
if(this.y){
sty.top=this.y+"px";
}
}
};
editgrid.tooltip.TooltipItem=function(_1270){
if(_1270==null){
_1270={};
}
this.html=_1270.html;
this.onshow=_1270.onshow;
this.w=_1270.w;
this.h=_1270.h;
this.type=_1270.type;
this.root=null;
};
editgrid.tooltip.TooltipItem.prototype.setOnUpdate=function(_1271){
this.onUpdate=_1271;
};
editgrid.tooltip.TooltipItem.prototype.clone=function(_1272){
var inst=new editgrid.tooltip.TooltipItem({html:this.html,onshow:this.onshow});
if(_1272==null){
_1272={};
}
if(_1272.html){
this.html=_1272.html;
}
if(_1272.onshow){
this.onshow=_1272.onshow;
}
};
editgrid.tooltip.TooltipItem.prototype.getRoot=function(){
if(this.root==null){
var _1274=new std.dom.Builder();
this.root=_1274.push("div",{className:"Tooltip"+(this.type?" Tooltip_"+this.type:"")});
this.root.contentHolder=_1274.push("div",{className:"TooltipContentHolder"},{});
this.setVisible(false);
this._update();
}
return this.root;
};
editgrid.tooltip.TooltipItem.prototype.setHTML=function(html){
this.html=html;
this._update();
};
editgrid.tooltip.TooltipItem.prototype._update=function(){
this.getRoot().contentHolder.innerHTML=this.html;
if(this.onUpdate){
this.onUpdate(this);
}
};
editgrid.tooltip.TooltipItem.prototype.updateSize=function(){
var root=this.getRoot();
var sty=root.style;
var _1278=sty.overflow;
var _1279=sty.display;
var left=sty.left;
sty.width=sty.height="auto";
sty.overflow="visible";
if(_1279=="none"){
sty.left=-1000;
}
sty.display="";
var size={width:root.scrollWidth,height:root.scrollHeight};
if(this.w&&this.w>size.width){
size.width=this.w;
sty.width=this.w+"px";
}
if(this.h&&this.h>size.height){
size.height=this.h;
sty.height=this.h+"px";
}
sty.display=_1279;
sty.overflow=_1278;
if(_1279==""){
sty.left=left;
}
this.root.style.width=size.width;
this.root.style.height=size.height;
this.size=size;
};
editgrid.tooltip.TooltipItem.prototype.setSize=function(_127c){
this.w=_127c.w;
this.h=_127c.h;
this.updateSize();
if(this.onUpdate){
this.onUpdate(this);
}
};
editgrid.tooltip.TooltipItem.prototype.setHardSize=function(_127d){
if(_127d.w){
this.root.style.width=_127d.w+"px";
}
if(_127d.h){
this.root.style.height=_127d.h+"px";
}
};
editgrid.tooltip.TooltipItem.prototype.setVisible=function(_127e){
this.getRoot().style.display=_127e?"":"none";
this.visible=_127e;
};
editgrid.tooltip.TooltipItem.prototype.isVisible=function(){
return this.visible;
};
editgrid.tooltip.CellComment=function(_127f){
if(_127f==null){
_127f={};
}
this.text=_127f.text;
_127f.w=100;
_127f.h=Math.round(_127f.w/1.618);
_127f.type="CellComment";
_127f.html=editgrid.tooltip.CellComment._constructHTML(_127f.text);
editgrid.tooltip.TooltipItem.call(this,_127f);
if(!_127f.readOnly){
this.editor=new editgrid.tooltip.CellCommentEditor(this);
this.editor.onCommit=_127f.onCommit;
}
};
editgrid.tooltip.CellComment.prototype=new editgrid.tooltip.TooltipItem();
editgrid.tooltip.CellComment.prototype.setText=function(text){
this.text=text;
this.setHTML(editgrid.tooltip.CellComment._constructHTML(text));
};
editgrid.tooltip.CellComment._constructHTML=function(text){
return std.string.autoLink2(std.string.fullEscapeHTML(text));
};
editgrid.tooltip.CellCommentEditor=function(_1282){
this.tooltip=_1282;
this.onFocus=std.lang.bind(this,this._onFocus);
this.onBlur=std.lang.bind(this,this._onBlur);
this._focusDelegator=std.customfocus.getManager().newDelegator(this,this.onFocus,this.onBlur);
this.root=std.dom.newElement("textarea",null,{className:"TooltipContentHolder"},{overflow:"auto"});
if(std.browser.isMoz&&std.browser.major>=1.9){
this.root.style.paddingLeft="0px";
}
if(std.browser.isIE){
this.root.style.paddingTop="0px";
}
this.keyPressListener=std.event.listener(this,this._onKeyPress);
std.event.observe(_1282.getRoot(),"mousedown",std.event.listener(this,this._onMouseDown));
std.event.observe(_1282.getRoot(),"mouseout",std.event.listener(this,this._onMouseOut));
std.event.observe(_1282.getRoot(),"click",std.event.listener(this,this._onClick));
};
editgrid.tooltip.CellCommentEditor.prototype._onMouseDown=function(e){
if(this.active){
std.event.stop(e);
}
};
editgrid.tooltip.CellCommentEditor.prototype._onMouseOut=function(e){
if(this.active){
std.event.stop(e);
}
};
editgrid.tooltip.CellCommentEditor.prototype._onClick=function(e){
if(!this.active){
this.active=true;
this.root.value=this.tooltip.text;
var _1286=this.tooltip.getRoot().contentHolder;
var sty=this.root.style;
_1286.style.height="100%";
sty.width=_1286.offsetWidth+"px";
sty.height=_1286.offsetHeight+(std.browser.isIE?-1:0)+"px";
_1286.style.height="auto";
this.tooltip.getRoot().replaceChild(this.root,_1286);
this._focusDelegator.focus();
}
};
editgrid.tooltip.CellCommentEditor.prototype._onFocus=function(){
if(this.active){
this.root.focus();
this.root.select();
std.event.keyObserve(document,"keypress",this.keyPressListener);
}
};
editgrid.tooltip.CellCommentEditor.prototype._onBlur=function(){
if(this.active){
this.active=false;
var _1288=this.tooltip.getRoot().contentHolder;
this.tooltip.getRoot().replaceChild(_1288,this.root);
var _1289=this.tooltip.text;
this.tooltip.setText(this.root.value);
this.onCommit(this.root.value,_1289);
std.event.keyStopObserving(document,"keypress",this.keyPressListener);
}
};
editgrid.tooltip.CellCommentEditor.prototype._onKeyPress=function(ke){
var e=ke.evt;
var _128c=std.event.getKeyCode(e);
var codes=std.event.getKeyCodes(e);
if(!e.altKey&&!e.shiftKey){
switch(_128c){
case codes.KEY_ENTER:
this._focusDelegator.blur();
std.event.vanish(e);
break;
}
}
};
editgrid.tooltip.CellError=function(_128e){
if(_128e==null){
_128e={};
}
_128e.w=100;
_128e.html=editgrid.tooltip.CellError._constructHTML(_128e.error,_128e.type);
_128e.type="CellError";
editgrid.tooltip.TooltipItem.call(this,_128e);
};
editgrid.tooltip.CellError._getErrorName=function(type){
var _1290={0:"Error",1:"Warning"};
return _1290[type]||_1290[0];
};
editgrid.tooltip.CellError._constructHTML=function(error,_1292){
return "<span style='font-weight: bold;'>"+editgrid.tooltip.CellError._getErrorName(_1292)+": </span>"+error;
};
editgrid.tooltip.CellError.prototype=new editgrid.tooltip.TooltipItem();
editgrid.tooltip.CellError.prototype.setError=function(error){
this.setHTML(editgrid.tooltip.CellError._constructHTML(error));
};
if(!editgrid.so){
editgrid.so={};
}
editgrid.so.CustomSheetObjectControl=function(){
this.header=null;
this.element=null;
};
editgrid.so.CustomSheetObjectControl.prototype.init=function(so,view){
this._view=view;
this._object=so;
this._id=so.id;
this._delegates=[];
this._elements=[];
this._containers=[];
this._headers=[];
this._cmenus=[];
this.initContainer(so);
this._update();
this._width=this._object.getWidth()-2;
this._height=this._object.getHeight()-27;
return this;
};
editgrid.so.CustomSheetObjectControl.prototype.getContext=function(){
return this._view.readOnly?[]:["w_ok"];
};
editgrid.so.CustomSheetObjectControl.prototype.del=function(){
if(confirm(loc("Are you sure you want to delete this object?"))){
this._del();
}
};
editgrid.so.CustomSheetObjectControl.prototype._del=function(){
this._view.workbook.sheet.sheetObjectDel(this._object);
};
editgrid.so.CustomSheetObjectControl.prototype._update=function(){
this._data=this._getPrefixedData("customData",this._object.extension.data,true);
this._rdata=this._getPrefixedData("customData",this._object.extension.rdata,false);
this._clazz=this._object.extension.data.clazz;
};
editgrid.so.CustomSheetObjectControl.prototype.onFocus=function(){
};
editgrid.so.CustomSheetObjectControl.prototype.onBlur=function(){
};
editgrid.so.CustomSheetObjectControl.prototype.initContainer=function(so){
var b=new std.dom.Builder();
var width=so.getWidth()+"px";
var _1299=so.getHeight()+"px";
var _129a=this.element=b.push("div",{className:"CustomSheetObject"},{height:_1299,width:width,padding:"0px",display:"none"});
b.push("table",{},{width:"100%",height:"100%"});
b.push("thead",{},{});
b.push("tr",{},{});
var _129b=this.header=b.append("td",{className:"CustomSheetObjectHeader"},{cursor:"move"});
_129b.innerHTML="Loading...";
b.pop();
b.pop();
b.push("tbody",{},{});
b.push("tr",{},{});
b.push("td",{},{background:"white",cursor:"default"});
var _129c=this.container=b.append("div",{},{padding:"0px",position:"static",background:"white",cursor:"default"});
b.pop();
b.pop();
b.pop();
_129b.setAttribute("attachPoint","header");
_129c.setAttribute("attachPoint","container");
this.element.setAttribute("eg_ObjectControlContainer",1);
};
editgrid.so.CustomSheetObjectControl.prototype.release=function(_129d){
this.releaseDelegates();
};
editgrid.so.CustomSheetObjectControl.prototype._getPrefixedData=function(_129e,data,_12a0){
var ret={};
for(var key in data){
if(key.indexOf(_129e)==0){
ret[key.substring(_129e.length+1)]=data[key];
}
if(key.indexOf("$"+_129e)==0){
ret[key.substring(_129e.length+2)]=_12a0?"="+data[key]:data[key];
}
}
return ret;
};
editgrid.so.CustomSheetObjectControl.prototype.update=function(param){
if(param&&param.action=="updateContent"){
this._update();
for(var i=0;i<this._delegates.length;i++){
this._delegates[i].data=this._data;
this._delegates[i].rdata=this._rdata;
this._delegates[i].doUpdate();
}
}else{
if(param&&param.action=="updateBounds"){
var width=this._object.getWidth();
var _12a6=this._object.getHeight();
this.element.style.width=width+"px";
this.element.style.height=_12a6+"px";
for(var i=0;i<this._elements.length;i++){
this._elements[i].style.width=width+"px";
this._elements[i].style.height=_12a6+"px";
}
width=this._width=width-2;
_12a6=this._height=_12a6-27;
for(var i=0;i<this._containers.length;i++){
this._containers[i].style.width=width+"px";
this._containers[i].style.height=_12a6+"px";
}
for(var i=0;i<this._delegates.length;i++){
this._delegates[i].width=width;
this._delegates[i].height=_12a6;
this._delegates[i].doResize();
}
}
}
};
editgrid.so.CustomSheetObjectControl.prototype.setSize=function(width,_12a8){
if(typeof width!="number"||typeof _12a8!="number"||width<0||_12a8<0){
throw new Error("Invalid width/height.");
}
var _12a9=this._view.pane.coord2Anchor(this._object.getLeft(),this._object.getTop(),width+2,_12a8+27);
this._object.setBounds(_12a9.rowFr,_12a9.colFr,_12a9.rowTo,_12a9.colTo,_12a9.colFrOffset,_12a9.rowFrOffset,_12a9.colToOffset,_12a9.rowToOffset);
};
editgrid.so.CustomSheetObjectControl.prototype.setData=function(data){
this._object.sheet.book.customSheetObjectUpdate(this._object,this._clazz,data);
};
editgrid.so.CustomSheetObjectControl.prototype.getData=function(){
return this._data;
};
editgrid.so.CustomSheetObjectControl.prototype.getRData=function(){
return this._rdata;
};
editgrid.so.CustomSheetObjectControl.prototype.addContextMenuItem=function(id,name,func){
this.cmenu.addItem(id,name,["w_ok"]).onClick=func;
};
editgrid.so.CustomSheetObjectControl.prototype._getContainerOf=function(_12ae){
while(_12ae!=null&&_12ae!=document.body&&!_12ae.getAttribute("eg_ObjectControlContainer")){
_12ae=_12ae.parentNode;
}
return _12ae;
};
editgrid.so.CustomSheetObjectControl.prototype._onMouseDown=function(e){
var src=editgrid.event.getSrcElement(e);
var _12b1=this._getContainerOf(src);
if(!_12b1||!_12b1.view){
return;
}
this.activeView=_12b1.view;
this._view.takeFocus(this);
std.event.vanish(e);
this._view.mouseTaken=true;
};
editgrid.so.CustomSheetObjectControl.prototype._onDragEnd=function(dd){
var _12b3=this._view.pane.coord2Anchor(dd.x,dd.y,this._object.getWidth(),this._object.getHeight());
this._object.setBounds(_12b3.rowFr,_12b3.colFr,_12b3.rowTo,_12b3.colTo,_12b3.colFrOffset,_12b3.rowFrOffset,_12b3.colToOffset,_12b3.rowToOffset);
};
editgrid.so.CustomSheetObjectControl.prototype.cloneElement=function(){
var _12b4=this.element.cloneNode(true);
var cmenu=new editgrid.ContextMenu();
cmenu.addItem("delete",loc("Delete"),["w_ok"]).onClick=std.lang.bind(this,this.del);
cmenu.addOwner(this,_12b4);
this._cmenus.push(cmenu);
var slots=std.dom.extractAttachmentPoints(_12b4);
var _12b7=slots["container"];
var _12b8=slots["header"];
this._containers.push(_12b7);
this._headers.push(_12b8);
var width=this._object.getWidth()-2+"px";
var _12ba=this._object.getHeight()-27+"px";
_12b7.style.width=width;
_12b7.style.height=_12ba;
if(!this._view.readOnly){
var _12bb=std.dom.newElement("div",null,{innerHTML:"&nbsp;"},{position:"absolute",zIndex:"20002002",border:"solid 1px blue",background:"#c0d0ff",display:"none"});
std.dom.opacity(_12bb,0.3);
var view=this._view;
var d=new ui.behaviour.Draggable(_12b4);
d.installPlugin(new ui.plugin.Helper(_12bb));
d.installPlugin({processEvent:function(dd){
if(dd.eventType=="onBeforeDrag"){
if(dd.x<0){
dd.x=0;
}
if(dd.y<0){
dd.y=0;
}
}
}});
d.installPlugin(ui.plugin.overlay);
std.event.observe(_12b4,"mousedown",std.event.listener(this,this._onMouseDown));
std.topic.subscribe(d,"onDragEnd",std.lang.bind(this,this._onDragEnd));
}
this.initDelegate(_12b8,_12b7,cmenu);
this._elements.push(_12b4);
return _12b4;
};
editgrid.so.CustomSheetObjectControl.prototype.initDelegate=function(_12bf,_12c0,cmenu){
try{
var clazz=eval(this._clazz);
}
catch(e){
}
if(typeof clazz=="function"){
var _12c3=new clazz().init(this,function(text){
_12bf.innerHTML=std.string.escapeHTML(text);
},function(name,func,_12c7){
cmenu.addItem(name,name,_12c7?["w_ok"]:["any"]).onClick=func;
},std.lang.bind(this,this.setSize),std.lang.bind(this,this.setData),window,document,_12c0);
this._delegates.push(_12c3);
_12c3.doCreate();
return _12c3;
}
return null;
};
editgrid.so.CustomSheetObjectControl.prototype.releaseDelegates=function(){
for(var i=0;i<this._delegates.length;i++){
this._delegates[i].release();
}
this._elements=[];
this._containers=[];
this._headers=[];
this._delegates=[];
this._emenus=[];
};
editgrid.so.objectControl={newInstance:function(so,view){
var _12cb=view.config.baseUrl;
var _12cc=function(pub){
var so=this.object;
var _12cf=_12cb;
var _12d0=pub?"":("?rev="+so.rev+"&bypass=1");
return _12cf+("export/sheetobject/"+so.id+".png")+_12d0;
};
switch(so.type){
case "SheetObjectGraph":
var _12d1=new editgrid.so.ImageControl();
_12d1.init(so,view,{permalink:std.lang.bind(_12d1,_12cc),properties:{label:loc("Edit Chart"),invoke:std.lang.bind(_12d1,function(){
view.editSheetObject(so);
})}});
return _12d1;
case "SheetObjectImage":
if(!so.extension){
var _12d1=new editgrid.so.ImageControl();
_12d1.init(so,view,{permalink:std.lang.bind(_12d1,_12cc),hyperlink:std.lang.bind(_12d1,_12d1.hyperlink)});
_12d1.placeHolderSrc=view.config.staticUrl+"style/grid/img/transparent.gif";
return _12d1;
}
switch(so.extension.data.type){
case "GridletSheetObject":
case "GridletCellObject":
if(so.extension.data.clazz.indexOf(":")!=-1&&view.gridlet){
return view.gridlet.newSheetObjectControl(so,view);
}else{
return (new editgrid.so.CustomSheetObjectControl()).init(so,view);
}
case "RemoteImage":
var _12d1=new editgrid.so.ImageControl();
_12d1.reload=std.lang.bind(_12d1,function(){
this.update({force:true,onerror:std.event.listener(this,function(){
editgrid._alert(loc("Failed to load image from URL: '[_1]'",std.string.escapeHTML(std.lang.evaluate(this.permalink))));
})});
});
_12d1.init(so,view,{permalink:std.lang.bind(_12d1,function(){
var url=this.object.extension.rdata.url;
return url.match(/^(http|https):/i)?url:view.config.staticUrl+"style/grid/img/NotFound.gif";
}),properties:{label:loc("Edit Image"),invoke:std.lang.bind(_12d1,function(){
view.editSheetObject(so);
})}});
_12d1.placeHolderSrc=view.config.staticUrl+"style/grid/img/transparent.gif";
_12d1.errorImageSrc=view.config.staticUrl+"style/grid/img/NotFound.gif";
return _12d1;
}
}
return (new editgrid.so.UnknownControl()).init(so,view);
}};
editgrid.so.ObjectControl=function(){
};
editgrid.so.ObjectControl.prototype.update=function(){
};
editgrid.so.ObjectControl.prototype.initContentElement=function(so,_12d4){
return null;
};
editgrid.so.ObjectControl.prototype.init=function(so,view,_12d7){
var self=this;
_12d7=_12d7||{};
var b=new std.dom.Builder();
var _12da=this.element=b.push("a",{className:"ObjectControl",href:"#",target:"_blank"},{position:"absolute",display:"none",zIndex:"20002000",overflow:"visible"});
this.element.contentElement=b.appendElement(this.initContentElement(so,_12d7));
this.element.focusElement=b.push("span",{className:"Focus"},{position:"absolute"});
this.element.hiliteElement=b.append("span",{className:"Hilite"},{position:"absolute"});
this.element.borderElement=b.append("span",{className:"Border"},{position:"absolute"});
this.element.handleElement=b.push("span",{className:"HandleContainer"},{position:"absolute"});
b.append("span",{className:"Handle"},{top:"0px",cssFloat:"left",styleFloat:"left"});
b.append("span",{className:"Handle"},{top:"0px",cssFloat:"right",styleFloat:"right"});
this.element.handleBottomElement=b.push("span",{className:"HandleBottomContainer"},{position:"absolute",left:"0px",bottom:"0px",width:"100%"});
this.element.handleSWElement=b.append("span",{className:"Handle"},{position:"relative",top:"0px",cssFloat:"left",styleFloat:"left"});
this.element.handleSEElement=b.append("span",{className:"Handle"},{position:"relative",top:"0px",cssFloat:"right",styleFloat:"right"});
b.pop();
b.pop();
b.pop();
this.element.copyFocusElement=b.append("span",{className:"CopyFocus"},{position:"absolute"});
b.pop();
this.properties=_12d7.properties;
this._cloneSlots=["contentElement","focusElement","hiliteElement","borderElement","handleElement","handleBottomElement","handleSWElement","handleSEElement","copyFocusElement"];
for(var i=0;i<this._cloneSlots.length;++i){
_12da[this._cloneSlots[i]].setAttribute("attachPoint",this._cloneSlots[i]);
}
this.element.setAttribute("eg_ObjectControlContainer",1);
this._initBoundsSetter(_12da);
this._initBoundsGetter(_12da);
this.object=so;
this.view=view;
this._setFocus(false);
this.onMouseDown=std.event.listener(this,this._onMouseDown);
this.onMouseMove=std.event.listener(this,this._onMouseMove);
this.onMouseOver=std.event.listener(this,this._onMouseOver);
this.onClick=std.event.listener(this,this._onClick);
this.onDblClick=std.event.listener(this,this._onDblClick);
this.initContextMenu();
this.update();
return this;
};
editgrid.so.ObjectControl.prototype.initContextMenu=function(){
var cmenu=this.cmenu=new editgrid.ContextMenu();
if(this.properties){
cmenu.addItem("edit",this.properties.label,["w_ok"]).onClick=std.lang.bind(this,this.properties.invoke);
}
if(this.permalink){
cmenu.addItem("showlink",loc("Get Object's Permalink"),["any"]).onClick=std.lang.bind(this,this.showLink);
}
if(this.reload){
cmenu.addItem("reload",loc("Reload"),["any"]).onClick=std.lang.bind(this,this.reload);
}
if(this.hyperlink){
cmenu.addItem("hyperlink",loc("Go to linked site"),["link"]).onClick=std.lang.bind(this,this.openLink);
}
cmenu.addItem("-");
cmenu.addItem("copy",loc("Copy"),["any"]).onClick=std.lang.bind(this,this.copy);
cmenu.addItem("delete",loc("Delete"),["w_ok"]).onClick=std.lang.bind(this,this.del);
};
editgrid.so.ObjectControl.prototype._initBoundsGetter=function(_12dd){
_12dd._getWidth=function(){
return std.dom.getDimensions(_12dd.contentElement).width;
};
_12dd._getHeight=function(){
return std.dom.getDimensions(_12dd.contentElement).height;
};
_12dd._getLeft=function(){
return _12dd.offsetLeft;
};
_12dd._getTop=function(){
return _12dd.offsetTop;
};
};
editgrid.so.ObjectControl.prototype._initBoundsSetter=function(_12de){
_12de._updateSizeAttr=function(attr,value){
if(value<0&&(attr=="width"||attr=="height")){
value=0;
}
_12de.contentElement.style[attr]=_12de.handleElement.style[attr]=_12de.hiliteElement.style[attr]=_12de["_"+attr]=value+"px";
_12de.copyFocusElement.style[attr]=_12de.focusElement.style[attr]=_12de.borderElement.style[attr]=value-(std.browser.isBorderBox?0:2)+"px";
if(attr=="height"){
if(std.browser.isIE&&std.browser.major<7){
var _12e1=(value%2==0?0:1)+"px";
_12de.handleSWElement.style.top=_12e1;
_12de.handleSEElement.style.top=_12e1;
}
}
};
_12de._updatePosAttr=function(attr,value){
_12de.style[attr]=_12de["_"+attr]=value+"px";
};
_12de._updateBounds=function(_12e4){
if(_12e4.width!=null&&_12e4.width!=_12de._width){
_12de._updateSizeAttr("width",_12e4.width);
}
if(_12e4.height!=null&&_12e4.height!=_12de._height){
_12de._updateSizeAttr("height",_12e4.height);
}
if(_12e4.left!=null&&_12e4.left!=_12de._left){
_12de._updatePosAttr("left",_12e4.left);
}
if(_12e4.top!=null&&_12e4.top!=_12de._top){
_12de._updatePosAttr("top",_12e4.top);
}
};
};
editgrid.so.ObjectControl.prototype.showLink=function(){
this.view.showLink(this.permalink(true));
};
editgrid.so.ObjectControl.prototype.openLink=function(){
var link=this.hyperlink();
if(link){
std.host.open(link,true);
}
};
editgrid.so.ObjectControl.prototype.cut=function(){
};
editgrid.so.ObjectControl.prototype.copy=function(){
this.view.workbook.sheet.sheetObjectCopy(this.object);
if(!this.hasCopyFocus){
this.view.takeCopyFocus(this);
}
};
editgrid.so.ObjectControl.prototype.del=function(){
if(confirm(loc("Are you sure you want to delete this object?"))){
this.view.workbook.sheet.sheetObjectDel(this.object);
}
};
editgrid.so.ObjectControl.prototype.cloneElement=function(pane){
var _12e7=this.element.cloneNode(true);
var slots=std.dom.extractAttachmentPoints(_12e7);
var arr=this._cloneSlots;
for(var i=0;i<arr.length;++i){
_12e7[arr[i]]=slots[arr[i]];
}
this._initBoundsSetter(_12e7);
this._initBoundsGetter(_12e7);
_12e7.onmousedown=this.onMouseDown;
_12e7.onmouseover=this.onMouseOver;
_12e7.onmousemove=this.onMouseMove;
_12e7.onclick=this.onClick;
_12e7.ondblclick=this.onDblClick;
this.cmenu.addOwner(this,_12e7);
_12e7.pane=pane;
return _12e7;
};
editgrid.so.ObjectControl.prototype.getContext=function(){
var ctx=this.view.readOnly?[]:["w_ok"];
if(this.hyperlink&&this.hyperlink()){
ctx.push("link");
}
return ctx;
};
editgrid.so.ObjectControl.prototype._updateBorder=function(){
var arr=this._getElementAndViewElements();
var _12ed=this.hasFocus?"visible":"hidden";
var _12ee=this.hasCopyFocus?"visible":"hidden";
var _12ef=this.hasFocus&&this.allowResize()?"visible":"hidden";
for(var k in arr){
var _12f1=arr[k];
if(!this.hasFocus){
arr[k].style.cursor="";
}
_12f1.focusElement.style.visibility=_12ed;
_12f1.copyFocusElement.style.visibility=_12ee;
_12f1.handleElement.style.visibility=_12ef;
}
};
editgrid.so.ObjectControl.prototype._getElementAndViewElements=function(){
var arr=[this.element];
var views=this.object.views;
for(var k in views){
arr[arr.length]=views[k].element;
}
return arr;
};
editgrid.so.ObjectControl.prototype._setFocus=function(bool){
this.hasFocus=bool;
this._updateBorder();
};
editgrid.so.ObjectControl.prototype._setCopyFocus=function(bool){
this.hasCopyFocus=bool;
this._updateBorder();
};
editgrid.so.ObjectControl.prototype.release=function(inst){
var _12f8=["onmousedown","onmousemove","onmouseover","onclick","ondblclick","_getWidth","_getHeight","_getLeft","_getTop","_updateSizeAttr","_updatePosAttr","_updateBounds","pane","contentElement","focusElement","hiliteElement","borderElement","handleElement","handleBottomElement","handleSWElement","handleSEElement","copyFocusElement"];
for(var i=0;i<_12f8.length;++i){
inst[_12f8[i]]=null;
}
};
editgrid.so.ObjectControl.prototype.onFocus=function(){
this._setFocus(true);
};
editgrid.so.ObjectControl.prototype.onBlur=function(){
this._setFocus(false);
};
editgrid.so.ObjectControl.prototype.onCopyFocus=function(){
this._setCopyFocus(true);
};
editgrid.so.ObjectControl.prototype.onCopyBlur=function(){
this._setCopyFocus(false);
};
editgrid.so.ObjectControl.prototype._getCorner=function(x,y,w,h){
var ret=0;
if(y<7){
ret=1;
}else{
if(y>=h-7){
ret=2;
}
}
if(x<7){
ret|=4;
}else{
if(x>=w-7){
ret|=8;
}
}
return ret;
};
editgrid.so.ObjectControl.prototype._corners=[null,"n","s",null,"w","nw","sw",null,"e","ne","se"];
editgrid.so.ObjectControl.prototype._getContainerOffset=function(src,_1300){
var _x=0,_y=0,node=src;
while(node!=_1300){
_x+=node.offsetLeft;
_y+=node.offsetTop;
node=node.parentNode;
}
return {x:_x,y:_y};
};
editgrid.so.ObjectControl.prototype._onMouseMove=function(e){
if(this.dragData||this.view.readOnly){
return;
}
this._updateCursor(e);
std.event.vanish(e);
};
editgrid.so.ObjectControl.prototype._getContainerOf=function(_1305){
while(_1305!=null&&_1305!=document.body&&!_1305.getAttribute("eg_ObjectControlContainer")){
_1305=_1305.parentNode;
}
if(_1305==document.body){
return null;
}
return _1305;
};
editgrid.so.ObjectControl.prototype.allowMove=function(){
return !this.view.readOnly;
};
editgrid.so.ObjectControl.prototype.allowResize=function(){
return !this.view.readOnly;
};
editgrid.so.ObjectControl.prototype.getCursor=function(e){
editgrid.event.getOffset(e);
if(!this.allowMove()){
return "default";
}
if(!this.allowResize()){
return "move";
}
var src=editgrid.event.getSrcElement(e);
var _1308=this._getContainerOf(src);
if(_1308==null){
return null;
}
var _1309=this._getContainerOffset(src,_1308);
var _130a=this._getCorner(e.offsetX+_1309.x,e.offsetY+_1309.y,_1308._getWidth(),_1308._getHeight());
return _130a?this._corners[_130a]+"-resize":"move";
};
editgrid.so.ObjectControl.prototype._updateCursor=function(e){
var views=this.object.views;
var c=this.getCursor(e);
if(c==null){
return;
}
for(var k in views){
var l=views[k].element;
var f=l.focusElement;
l.style.cursor=c;
f.style.cursor=c;
}
};
editgrid.so.ObjectControl.prototype._onMouseOver=function(e){
this._updateCursor(e);
};
editgrid.so.ObjectControl.prototype._onMouseDown=function(e){
var src=editgrid.event.getSrcElement(e);
var _1314=this._getContainerOf(src);
if(_1314==null){
return;
}
var _1315=this._getContainerOffset(src,_1314);
if(!this.hasFocus){
this.activeView=_1314.view;
this.view.takeFocus(this);
}
editgrid.event.getOffset(e);
if(e.button==editgrid.event.mouseButtons.LEFT&&!this.view.readOnly){
var _1316,d;
var views=this.object.views;
var _1319=this.allowResize();
var _131a=_1314.pane;
if(this.hasFocus&&_1319&&(_1316=this._getCorner(e.offsetX+_1315.x,e.offsetY+_1315.y,_1314._getWidth(),_1314._getHeight()))){
d=this.dragData=editgrid.event.startDrag(_1314,this._onResize,this._onMoveResizeEnd,this);
d.type=_1316;
}else{
d=this.dragData=editgrid.event.startDrag(_1314,this._onMove,this._onMoveResizeEnd,this);
}
if(d){
d.pane=_131a;
}
for(var k in views){
var view=views[k];
var ve=view.element;
view.x=ve.offsetLeft;
view.y=ve.offsetTop;
}
d.x=_1314._getLeft();
d.y=_1314._getTop();
d.w=_1314._getWidth();
d.h=_1314._getHeight();
d.mx=e.clientX;
d.my=e.clientY;
d.dx=d.dy=d.dw=d.dh=0;
std.event.vanish(e);
}else{
if(std.browser.isMoz&&std.browser.major>=1.9&&std.browser.platform.isMacOS){
std.event.stop(e);
}else{
std.event.vanish(e);
}
}
};
editgrid.so.ObjectControl.prototype._onMove=function(e){
var d=this.dragData;
var views=this.object.views;
this._processMoveResize(e);
for(var k in views){
var view=views[k];
var _1323=view.element;
_1323._updateBounds({left:view.x+d.dx,top:view.y+d.dy});
}
std.event.vanish(e);
ui.plugin.overlay.processEvent({eventType:"onDragBegin"});
};
editgrid.so.ObjectControl.prototype._processMoveResize=function(e){
var d=this.dragData;
var t=d.type;
if(t){
if(t&4){
d.dx=e.clientX-d.mx;
d.dw=-d.dx;
}else{
if(t&8){
d.dw=e.clientX-d.mx;
}
}
if(t&1){
d.dy=e.clientY-d.my;
d.dh=-d.dy;
}else{
if(t&2){
d.dh=e.clientY-d.my;
}
}
}else{
d.dx=e.clientX-d.mx;
d.dy=e.clientY-d.my;
}
};
editgrid.so.ObjectControl.prototype._onResize=function(e){
var dx,dy,dw,dh;
var views=this.object.views;
var d=this.dragData;
var t=d.type;
this._processMoveResize(e);
for(var k in views){
var view=views[k];
var _1331=view.element;
var _1332=this.allowResize();
if(t&12){
if(t&4){
_1331._updateBounds({left:view.x+d.dx});
}
if(_1332){
_1331._updateBounds({width:d.w+d.dw});
if(!(t&3)){
_1331._updateBounds({height:d.h});
}
}
}
if(t&3){
if(t&1){
_1331._updateBounds({top:view.y+d.dy});
}
if(_1332){
_1331._updateBounds({height:d.h+d.dh});
if(!(t&12)){
_1331._updateBounds({width:d.w});
}
}
}
}
std.event.vanish(e);
ui.plugin.overlay.processEvent({eventType:"onDragBegin"});
};
editgrid.so.ObjectControl.prototype._onMoveResizeEnd=function(e){
ui.plugin.overlay.processEvent({eventType:"onDragEnd"});
var _1334,d=this.dragData;
editgrid.event.endDrag(d);
this._processMoveResize(e);
if(d.dx||d.dy||d.dw||d.dh){
_1334=d.pane.coord2Anchor(d.x+d.dx,d.y+d.dy,d.w+d.dw,d.h+d.dh);
this.object.setBounds(_1334.rowFr,_1334.colFr,_1334.rowTo,_1334.colTo,_1334.colFrOffset,_1334.rowFrOffset,_1334.colToOffset,_1334.rowToOffset);
}
this.dragData=null;
};
editgrid.so.ObjectControl.prototype._onClick=function(e){
std.event.vanish(e);
};
editgrid.so.ObjectControl.prototype._onDblClick=function(e){
std.event.vanish(e);
};
editgrid.so.UnknownControl=function(){
};
editgrid.so.UnknownControl.prototype.init=function(cc,view){
this.element=std.dom.newElement("div",null,{position:"absolute",display:"none"});
this.object=cc;
this.view=view;
this.update();
return this;
};
editgrid.so.UnknownControl.prototype.cloneElement=function(){
return this.element.cloneNode(true);
};
editgrid.so.UnknownControl.prototype.update=function(){
};
editgrid.so.UnknownControl.prototype.release=function(){
};
editgrid.so.UnknownControl.prototype.onFocus=function(){
};
editgrid.so.UnknownControl.prototype.onBlur=function(){
};
editgrid.so.ImageControl=function(){
};
editgrid.so.ImageControl.prototype=new editgrid.so.ObjectControl();
editgrid.so.ImageControl.prototype.initContentElement=function(so,_133b){
this.permalink=_133b.permalink;
return std.dom.newElement("img",null,{className:"Image",border:"0"},{position:"absolute"});
};
editgrid.so.ImageControl.prototype.updateImageURL=function(_133c){
_133c=std.lang.defaultize(_133c,[]);
var url=std.lang.evaluate(this.permalink);
if(!_133c.force&&url==this._imageUrl){
return;
}
var img=new Image();
std.event.observe(img,"load",std.event.listener(this,function(){
var views=this.object.views;
for(var k in views){
this._updateImpl(views[k].element,img);
}
this._updateImpl(this.element,img);
}));
std.event.observe(img,"error",std.event.listener(this,function(){
if(this._imageUrl!=url&&this._imageUrl!=this.errorImageSrc){
this._imageUrl=img.src=url;
}else{
if(this.errorImageSrc){
this._imageUrl=img.src=this.errorImageSrc;
}
if(_133c.onerror){
_133c.onerror();
}
}
}));
this._imageUrl=img.src=url+(url.indexOf("?")=="-1"?"?":"&")+"__eg_r="+(new Date()).getTime();
this._invalidated=false;
};
editgrid.so.ImageControl.prototype.updateLinkURL=function(){
var ext=this.object.extension;
if(ext&&ext.data.type=="RemoteImage"){
var _1342=ext.data.linkUrl||"";
var views=this.object.views;
this.element.href=_1342;
for(var k in views){
views[k].element.href=_1342;
}
}
};
editgrid.so.ImageControl.prototype._acceptLink=function(s){
return s&&s.match(/\b((?:(?:http):\/\/)[^, \r\n"\(\)'<>]+)/)?s:null;
};
editgrid.so.ImageControl.prototype.hyperlink=function(){
var ext=this.object.extension;
if(ext&&ext.data.type=="RemoteImage"){
return this._acceptLink(ext.data.linkUrl);
}
return null;
};
editgrid.so.ImageControl.prototype.update=function(_1347){
this.updateImageURL(_1347);
this.updateLinkURL();
};
editgrid.so.ImageControl.prototype._updateImpl=function(_1348,img){
var so=this.object;
if(_1348._url!=img.src){
if(so.type=="SheetObjectImage"&&std.browser.isIE&&std.browser.major<=6){
_1348.contentElement.src=this.placeHolderSrc;
_1348.contentElement.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+img.src+"')";
}else{
_1348.contentElement.src=img.src;
}
_1348._updateBounds({width:img.width,height:img.height});
_1348._url=img.src;
}
};
editgrid.so.ImageControl.prototype.allowResize=function(){
var _134b=editgrid.so.ObjectControl.prototype.allowResize.call(this);
var ext=this.object.extension;
if(ext&&ext.data.type){
return _134b&&ext.data.stretch;
}else{
return _134b;
}
};
editgrid.so.ImageControl.prototype.getCursor=function(e){
if(this._isLink()&&this.view.readOnly){
return "hand";
}
return editgrid.so.ObjectControl.prototype.getCursor.call(this,e);
};
editgrid.so.ImageControl.prototype._onMouseDown=function(e){
if(this._isLink()&&this.view.readOnly){
return;
}
editgrid.so.ObjectControl.prototype._onMouseDown.call(this,e);
};
editgrid.so.ImageControl.prototype._onClick=function(e){
if(this._isLink()&&this.view.readOnly){
return;
}
editgrid.so.ObjectControl.prototype._onClick.call(this,e);
};
editgrid.so.ImageControl.prototype._isLink=function(){
var ext=this.object.extension;
if(ext&&ext.data.type=="RemoteImage"){
return !!this._acceptLink(ext.data.linkUrl);
}
return false;
};
editgrid.sheet=editgrid.sheet||{};
editgrid.sheet.Editor=function(pane){
var _1352,_1353,self=this;
var _1355=(std.browser.isMoz&&std.browser.major>=1.9)?"1px":"2px";
this.onCommit=null;
this.onCommitContext=null;
this.onFinishSelection=null;
this.onFinishSelectionContext=null;
this.rowIdx=-1;
this.colIdx=-1;
this.pane=pane;
this.isOn=false;
this.complexMode=false;
this.element=_1352=std.dom.newElement("textarea",null,null,{width:"0px",height:"0px",paddingLeft:_1355,paddingRight:_1355});
this._autoResizeFunc=std.lang.bind(this,function(){
this.autoResize();
},0);
_1352.setAttribute("wrap","off");
_1352.style.zIndex="20002001";
this._keyPressListener=std.event.listener(this,this._onKeyPress);
this._keyUpListener=std.event.listener(this,this._onKeyUp);
this._onPasteListener=std.event.listener(this,this._onPaste);
this.onFxBoxClick=function(){
self.current=self.fxBox;
self.mirror=_1352;
self.endSelection();
};
this.onBeforeDeactivate=function(){
self.storedCaret=std.range.getInputSelection(self.fxBox).start;
};
_1352.onclick=function(){
self.current=_1352;
self.mirror=self.fxBox;
self.endSelection();
};
if(std.browser.isIE){
_1352.onbeforedeactivate=function(){
self.storedCaret=std.range.getInputSelection(_1352).start;
};
_1352.onkeydown=this._keyPressListener;
}else{
if(std.browser.isSafariWin){
_1352.onkeydown=this._keyPressListener;
}else{
if(std.browser.isAppleWebKit&&std.browser.major==528){
_1352.onkeydown=this._keyPressListener;
}else{
if(std.browser.isAppleWebKit&&std.browser.platform.isMacOS&&(std.browser.major==522||std.browser.major==525||std.browser.major>=530)){
_1352.onkeypress=_1352.onkeydown=this._keyPressListener;
}else{
_1352.onkeypress=this._keyPressListener;
}
}
}
}
_1352.onkeyup=this._keyUpListener;
if(std.browser.isSafariWin&&std.browser.major>=525){
_1352.onpaste=this._onPasteListener;
}
this.selectAndFocusTunnelImpl=std.lang.bind(this,this._selectAndFocusTunnelImpl);
std.event.observe(_1352,"focus",std.event.listener(this,function(e){
this._focus=true;
std.event.vanish(e);
}));
std.event.observe(_1352,"blur",std.event.listener(this,function(e){
this._focus=false;
std.event.vanish(e);
}));
(this.detectChange=std.lang.bind(this,this._detectChange))();
this.fxBoxDetectChange=std.lang.bind(this,this._fxBoxDetectChange);
};
editgrid.sheet.Editor.prototype._detectChange=function(){
var _1358=this.element;
if(_1358){
if(this._lastValue!=_1358.value){
this._onChange();
this._lastValue=_1358.value;
}
}
};
editgrid.sheet.Editor.prototype._fxBoxDetectChange=function(){
if(this.current==this.fxBox&&this.fxBox.value!=this.element.value){
this.setText(this.fxBox.value,true);
}
};
editgrid.sheet.Editor.prototype.connect=function(fxBox){
this.fxBox=fxBox;
fxBox.setAttribute("autocomplete","off");
if(std.browser.isIE||std.browser.isSafariWin){
fxBox.onkeydown=this._keyPressListener;
}else{
fxBox.onkeypress=this._keyPressListener;
}
fxBox.onkeyup=this._keyUpListener;
fxBox.onclick=this.onFxBoxClick;
if(std.browser.isIE){
fxBox.onbeforedeactivate=this.onBeforeDeactivate;
}
};
editgrid.sheet.Editor.prototype.endSelection=function(){
if(this.selectingRange){
if(this.onFinishSelection){
this.onFinishSelection.call(this.onFinishSelectionContext);
}
this.selectingRange=false;
this.selFr=null;
}
};
editgrid.sheet.Editor.prototype.release=function(){
var _135a=this.element,fxBox=this.fxBox;
_135a.onclick=null;
_135a.onbeforedeactivate=null;
_135a.onkeydown=null;
_135a.onkeypress=null;
_135a.onkeyup=null;
_135a.onpaste=null;
if(fxBox){
fxBox.onkeydown=null;
fxBox.onkeypress=null;
fxBox.onkeyup=null;
fxBox.onclick=null;
fxBox.onbeforedeactivate=null;
if(fxBox._timerId){
clearInterval(fxBox._timerId);
}
}
};
editgrid.sheet.Editor.prototype.moveCaretEnd=function(){
std.range.moveCaretEnd(this.element);
};
editgrid.sheet.Editor.prototype.moveCaretBegin=function(){
std.range.moveCaretBegin(this.element);
};
editgrid.sheet.Editor.prototype._onPasteKeyPress=function(){
var view=this.pane.view;
view.pastePending=true;
var range=view.sheetView.cursor.getRange();
view.pasteTimerId=setTimeout(std.lang.bind(this,function(){
if(view.pastePending){
view.pastePending=false;
view.onPaste(range,this.element);
}
}),0);
};
editgrid.sheet.Editor.prototype._onPaste=function(){
if(!this.isOn){
this._onPasteKeyPress();
}
};
editgrid.sheet.Editor.prototype._onKeyPress=function(e){
var codes=editgrid.event.keyCodes;
var _1360=editgrid.event.getSrcElement(e);
var _1361=e.keyCode;
var _1362=std.event.isCmdDown(e);
if(!this.isOn){
var _1363=std.event.getChar(e);
if(_1363=="V"&&(_1362||e.ctrlKey)&&!e.shiftKey&&!e.altKey){
if(std.browser.platform.isMacOS?_1362:e.ctrlKey){
this._onPasteKeyPress();
std.event.stop(e);
}else{
this.pane.view.paste();
}
}
return true;
}
if(std.browser.isOpera){
if(e.which!=_1361){
switch(_1361){
case codes.KEY_UP_ARROW:
case codes.KEY_DOWN_ARROW:
case codes.KEY_LEFT_ARROW:
case codes.KEY_RIGHT_ARROW:
case codes.KEY_PAGE_UP:
case codes.KEY_PAGE_DOWN:
break;
case codes.KEY_F2:
this.element.blur();
break;
default:
this.selectAndFocusTunnel();
}
}
switch(_1361){
case codes.KEY_UP_ARROW:
case codes.KEY_DOWN_ARROW:
case codes.KEY_LEFT_ARROW:
case codes.KEY_RIGHT_ARROW:
case codes.KEY_PAGE_UP:
case codes.KEY_PAGE_DOWN:
case codes.KEY_F2:
if(e.which==_1361){
_1361=0;
}
break;
}
}
if(std.browser.isSafariWin&&std.browser.major<525){
switch(_1361){
case codes.KEY_INSERT:
case codes.KEY_LEFT_WINDOW:
case codes.KEY_RIGHT_WINDOW:
case codes.KEY_SELECT:
case codes.KEY_PAUSE:
case codes.KEY_NUM_LOCK:
case codes.KEY_SCROLL_LOCK:
case codes.KEY_F1:
case codes.KEY_F2:
case codes.KEY_F3:
case codes.KEY_F4:
case codes.KEY_F5:
case codes.KEY_F6:
case codes.KEY_F7:
case codes.KEY_F8:
case codes.KEY_F9:
case codes.KEY_F10:
case codes.KEY_F11:
case codes.KEY_F12:
case codes.KEY_IME:
case codes.KEY_CMD:
std.event.vanish(e);
break;
}
}
switch(_1361){
case codes.KEY_F2:
this.complexMode=true;
std.event.vanish(e);
return;
case codes.KEY_LEFT_ARROW:
case codes.KEY_RIGHT_ARROW:
case codes.KEY_UP_ARROW:
case codes.KEY_DOWN_ARROW:
case codes.KEY_PAGE_UP:
case codes.KEY_PAGE_DOWN:
if(this.complexMode&&!this.selectingRange){
break;
}
std.event.preventDefault(e);
return false;
case codes.KEY_ENTER:
if(e.altKey&&!(e.ctrlKey||_1362)||!e.altKey&&(e.ctrlKey||_1362)&&!e.shiftKey){
if(_1360.tagName!="INPUT"){
std.range.insertAtCursor(_1360,"\n");
}
std.event.vanish(e);
return false;
}
case codes.KEY_TAB:
case codes.KEY_ESCAPE:
std.event.preventDefault(e);
return false;
case codes.KEY_SHIFT:
if(this.curBox==this.selector){
std.event.preventDefault(e);
return false;
}
break;
}
this.endSelection();
std.event.stop(e);
return true;
};
editgrid.sheet.Editor.prototype._onKeyUp=function(e){
var _1365=editgrid.event.getSrcElement(e);
if(this.isOn){
if(_1365==this.element){
this.fxBox.value=_1365.value.replace(/\r?\n/g,"");
}else{
this.element.value=_1365.value;
_1365=this.element;
}
this.autoResize(true);
}else{
if(std.browser.platform.isMacOS&&std.browser.isFF&&e.metaKey&&e.keyCode==std.keytable.V[0]){
this._onPasteKeyPress();
}
}
};
editgrid.sheet.Editor.prototype._onChange=function(){
var view=this.pane.view;
if(view.pastePending){
view.pastePending=false;
view.onPaste(view.sheetView.cursor.getRange(),this.element);
}
};
editgrid.sheet.Editor.prototype.insertRange=function(range){
var input=this.current;
var start,len,str=range.getName();
if(std.browser.isIE){
input.focus();
}
if(this.selFr==null){
this.selFr=start=std.range.getInputSelection(input).start;
len=0;
}else{
start=this.selFr;
len=this.selLen;
}
this.selLen=str.length;
if(std.browser.isIE){
var rng=input.createTextRange();
rng.moveStart("character",start);
rng.collapse();
if(len){
rng.moveEnd("character",len);
}
rng.text=str;
rng.select();
}else{
input.value=input.value.substring(0,start)+str+input.value.substring(start+len);
input.selectionEnd=input.selectionStart=start+this.selLen;
}
this.mirror.value=input.value;
};
editgrid.sheet.Editor.prototype.restoreCaret=function(){
var input=this.current;
input.focus();
if(std.browser.isIE){
var rng=input.createTextRange();
rng.moveStart("character",this.storedCaret);
rng.collapse();
rng.select();
}
};
editgrid.sheet.Editor.prototype.insertAndShift=function(str,shift){
var input=this.current;
this.restoreCaret();
std.range.insertAtCursor(input,str);
if(shift){
if(std.browser.isIE){
var rng=document.selection.createRange();
rng.moveStart("character",shift);
rng.collapse();
rng.select();
}else{
input.selectionEnd=input.selectionStart+=shift;
}
}
this.mirror.value=input.value;
this.autoResize(true);
};
editgrid.sheet.Editor.prototype.autoResize=function(_1373){
var _1374=this.element;
var style=_1374.style;
var _1376=this.pane.sheetView;
if(!_1373){
this._w=this._h=0;
style.width=style.height="0px";
if(this._wr&&!this.wordWrap){
this._setWordWrapImpl(false);
}
}
var w=this.minWidth;
var h=this.minHeight;
var colTo=this.colTo+1;
var rowTo=this.rowTo+1;
var _137b,_137c=85;
if(std.browser.isOpera&&_1374.value!=""){
_137b=style.overflow;
style.overflow="scroll";
}
var left=(this.colIdx>=this.pane.colFr)?_1376.getRowColsSize(false,this.pane.colFr,this.colIdx-1):-_1376.getRowColsSize(false,this.colIdx,this.pane.colFr-1);
var _137e=_1374.scrollWidth;
if(w<_137e){
while(colTo<=this.pane.colTo){
w+=_1376.getRowColSize(false,colTo++);
if(w>=_137e){
break;
}
}
if(w<_137e&&!this.wordWrap&&this.colIdx<this.pane.colTo){
w=this.pane.width-left;
if(w>=_137c){
this._setWordWrapImpl(true);
}
}
}
var _137f=left+w-this.pane.width;
if(_137f>0){
w-=_137f;
if(!this.wordWrap&&this.colIdx>=this.pane.colFr&&this.colIdx<this.pane.colTo){
if(w>=_137c){
this._setWordWrapImpl(true);
}
}
}
if(w>0){
this.setWidth(w);
}
var _1380=_1374.scrollHeight;
if(h<_1380){
while(rowTo<=this.pane.rowTo){
h+=_1376.getRowColSize(true,rowTo++);
if(h>=_1380){
break;
}
}
}
var top=(this.rowIdx>=this.pane.rowFr)?_1376.getRowColsSize(true,this.pane.rowFr,this.rowIdx-1):-_1376.getRowColsSize(true,this.rowIdx,this.pane.rowFr-1);
var _1382=top+h-this.pane.height;
if(_1382>0){
h-=_1382;
}
if(h>0){
this.setHeight(h);
}
if(std.browser.isOpera&&_1374.value!=""){
style.overflow=_137b;
}
this._setOpacityHackEnabled(false);
};
editgrid.sheet.Editor.prototype.setWordWrap=function(_1383){
this.wordWrap=_1383;
this._setWordWrapImpl(_1383);
};
editgrid.sheet.Editor.prototype._setWordWrapImpl=function(_1384){
var _1385=this.element;
if(this._wr!=_1384){
this._wr=_1384;
var _1386,focus,_1388,_1389;
if(std.browser.isFF){
focus=this._focus;
_1388=_1385.selectionStart;
_1389=_1385.selectionEnd;
_1386=_1385.parentNode;
_1386.removeChild(_1385);
}
_1385.setAttribute("wrap",_1384?"hard":"off");
if(std.browser.isFF){
_1386.appendChild(_1385);
_1385.setSelectionRange(_1388,_1389);
if(focus){
_1385.focus();
}
}
}
};
editgrid.sheet.Editor.prototype.setText=function(text,_138b){
this.element.value=text;
if(!_138b){
this.fxBox.value=text;
}
};
editgrid.sheet.Editor.prototype.acceptRange=function(){
if(this.selFr!=null){
this.selectingRange=true;
return true;
}
var input=this.current;
if(std.browser.isIE){
input.focus();
}
var val=input.value;
var start=std.range.getInputSelection(input).start;
for(;start<val.length&&/[:A-Za-z0-9]/.test(val.charAt(start));++start){
}
val=val.substring(0,start);
var res=/^ *=(?:(?:.*[(,+:\*\/\-\^])? *([A-Za-z]{1,2}\d+(?::[A-Za-z]{1,2}\d+)?)? *)?$/.exec(val);
if(res){
if(res[1]){
this.selFr=val.lastIndexOf(res[1]);
this.selLen=res[1].length;
}
}else{
this.selFr=null;
}
return this.selectingRange=!!res;
};
editgrid.sheet.Editor.prototype.setDebug=function(debug){
this._debug=debug?true:false;
};
editgrid.sheet.Editor.prototype.hideElement=function(){
var size=1;
if(std.browser.isAppleWebKit){
size=2;
}
if(this._debug){
size=101;
}
this.adjustPosition();
this.setWidth(size);
this.setHeight(size);
this._setOpacityHackEnabled(true);
};
editgrid.sheet.Editor.prototype.adjustPosition=function(){
var pane=this.pane;
var _1393=pane.element;
if(pane.colXs[0]!=null&&pane.rowYs[0]!=null){
this.setPosition(pane.colXs[0]-1,pane.rowYs[0]-1);
}
};
editgrid.sheet.Editor.prototype.selectAndFocusTunnel=function(force){
if(!this.pane.view.captureEvent){
return;
}
if(!force||(std.browser.isAppleWebKit&&std.browser.major<525)){
if(this.selectAndFocusTimerId){
clearTimeout(this.selectAndFocusTimerId);
}
this.selectAndFocusTimerId=setTimeout(this.selectAndFocusTunnelImpl,0);
}else{
this.selectAndFocusTunnelImpl();
}
};
editgrid.sheet.Editor.prototype._selectAndFocusTunnelImpl=function(){
if(!this.isOn){
if(this.pane.view.captureEvent){
this.element.select();
this.element.focus();
}
this.selectAndFocusTimerId=null;
}
};
editgrid.sheet.Editor.prototype.hide=function(save){
var _1396=this.element;
this.hideElement();
this.fxBox.blur();
var _1397={value:_1396.value,oldValue:this.oldValue};
this.isOn=false;
std.topic.publish(this.pane.view,"onEditorOff",_1397);
if(save){
if(this.onCommit){
this.onCommit.call(this.onCommitContext,this.rowIdx,this.colIdx,_1397.value);
}
}else{
this.fxBox.value=this.fxBox.oldValue;
}
if(this.fxBox._timerId!=null){
clearInterval(this.fxBox._timerId);
this.fxBox._timerId=null;
}
};
editgrid.sheet.Editor.prototype.setLeft=function(x){
if(this._x!=x){
this._x=x;
this.element.style.left=x+1+"px";
}
};
editgrid.sheet.Editor.prototype.setTop=function(y){
if(this._y!=y){
this._y=y;
this.element.style.top=y+1+"px";
}
};
editgrid.sheet.Editor.prototype.setPosition=function(x,y){
this.setLeft(x);
this.setTop(y);
};
editgrid.sheet.Editor.prototype.setWidth=function(w){
if(this._w!=w){
this._w=w;
this.element.style.width=w-1+"px";
}
};
editgrid.sheet.Editor.prototype.setHeight=function(h){
if(this._h!=h){
this._h=h;
this.element.style.height=h-1+"px";
}
};
editgrid.sheet.Editor.prototype.setSize=function(w,h){
this.setWidth(w);
this.setHeight(h);
};
editgrid.sheet.Editor.prototype._setOpacityHackEnabled=function(_13a0){
if(this._opacityHackEnabled!=_13a0){
this._opacityHackEnabled=_13a0;
if(std.browser.isAppleWebKit&&!this._debug){
std.dom.opacity(this.element,_13a0?0.01:1);
}
}
};
editgrid.sheet.Editor.prototype.show=function(rowFr,colFr,rowTo,colTo,_13a5,_13a6,x,y,w,h){
var _13ab=this.element;
this.rowTo=rowTo;
this.rowIdx=rowFr;
this.colTo=colTo;
this.colIdx=colFr;
this.fxBox.oldValue=this.fxBox.value;
this.oldValue=_13ab.value;
this.complexMode=_13a6;
if(x!==undefined){
this.minWidth=w;
this.minHeight=h;
if(std.browser.isChrome){
var _13ac=this.pane.sheetView;
this.setHeight(_13ac.getRowColSize(true,this.pane.rowFr));
this.setWidth(_13ac.getRowColSize(false,this.pane.colFr));
setTimeout(this._autoResizeFunc,0);
}else{
this.autoResize();
}
this.setPosition(x,y);
if(_13a5){
if(std.browser.isMoz&&std.browser.major<1.8){
window.setTimeout(function(){
_13ab.focus();
},1);
}else{
_13ab.focus();
}
}
this.current=_13ab;
this.mirror=this.fxBox;
}else{
this.fxBox.focus();
this.current=this.fxBox;
this.mirror=_13ab;
}
this.selectingRange=false;
this.selFr=null;
this.isOn=true;
var _13ad={value:_13a6?_13ab.value:""};
std.topic.publish(this.pane.view,"onEditorOn",_13ad);
if(_13a6){
_13ab.value=_13ad.value;
}
if(this.fxBox._timerId==null){
this.fxBox._timerId=setInterval(this.fxBoxDetectChange,50);
}
};
editgrid.sheet=editgrid.sheet||{};
editgrid.sheet.Pane=function(_13ae){
var zlass=editgrid.sheet.Pane.prototype;
for(var key in _13ae){
this[key]=_13ae[key];
}
if(!zlass.inited){
var cell;
editgrid.sheet.RangeBox.setBound(this.maxRow,this.maxCol);
zlass.mouseBtns=editgrid.event.mouseButtons;
cell=document.createElement("div");
cell.unselectable="on";
cell.appendChild(document.createTextNode(" "));
zlass.colHdrCell=cell;
cell=document.createElement("div");
cell.unselectable="on";
cell.appendChild(document.createTextNode(" "));
zlass.rowHdrCell=cell;
cell=document.createElement("div");
cell.className="cell";
cell.unselectable="on";
cell.appendChild(document.createTextNode(" "));
zlass.cell=cell;
zlass.inited=true;
}
std.topic.define(this,"onPagesReady");
this.rowHdrCells=this.rowHdrElement?[]:null;
this.colHdrCells=this.colHdrElement?[]:null;
this.colXs=[];
this.rowYs=[];
this.colWidths=[];
this.rowHeights=[];
this.numRows=0;
this.numCols=0;
this.width=0;
this.height=0;
this.rowFr=0;
this.colFr=0;
this.rowTo=0;
this.colTo=0;
this.rowLB=0;
this.rowUB=this.maxRow-1;
this.colLB=0;
this.colUB=this.maxCol-1;
this.hScrollable=true;
this.vScrollable=true;
this._visibleColXs=[];
this._visibleRowYs=[];
this._visibleColWs=[];
this._visibleRowHs=[];
this._visibleColIdx=[];
this._visibleRowIdx=[];
this._visibleColFr=0;
this._visibleRowFr=0;
this.sheetView=null;
this.pageBuffers={};
this.element.style.display="none";
this.element.style.backgroundColor=this.LOADING_BACKCOLOR="#f0f0f0";
if(std.browser.isMoz&&std.browser.major>=1.8){
this.element.style.cursor="cell";
}
var _13b2=this.cell.cloneNode(true);
_13b2.style.visibility="hidden";
this.element.appendChild(_13b2);
this.tmpCell=_13b2;
var _13b3=std.browser.isOpera?120:800;
var _13b4=200;
_13b2=document.createElement("div");
_13b2.style.left="0px";
_13b2.style.top="0px";
_13b2.style.width=(_13b3*this.maxCol)+"px";
_13b2.style.height=(_13b4*this.maxRow)+"px";
this.element.appendChild(_13b2);
if(this.rowHdrElement){
_13b2=document.createElement("div");
_13b2.style.width="1px";
_13b2.style.height=(_13b4*this.maxRow)+"px";
this.rowHdrElement.appendChild(_13b2);
this.rowHdrElement.scrollTop=0;
}
if(this.colHdrElement){
_13b2=document.createElement("div");
_13b2.style.width=(_13b3*this.maxCol)+"px";
_13b2.style.height="1px";
this.colHdrElement.appendChild(_13b2);
this.colHdrElement.scrollLeft=0;
}
this.rangeBoxContainerVisible=false;
this.rangeBoxContainer=std.dom.newElement("div",this.element,{className:"rangeBoxContainer"},{position:"absolute",left:"0px",top:"0px",display:"none"});
this.rangeBoxes=null;
this.cellAttachments=null;
this.areRangeBoxesAllVisible=false;
this.selector=null;
this.filler=null;
this.copy=null;
this.cursor=null;
this.curBox=null;
this.editor=new editgrid.sheet.Editor(this);
this.editor.onCommit=this.onEditorCommit;
this.editor.onCommitContext=this;
this.editor.onFinishSelection=this.hideSelector;
this.editor.onFinishSelectionContext=this;
this.element.appendChild(this.editor.element);
this.editor.hideElement();
this.dragData=null;
this.visible=false;
this.hasFocus=false;
this.setAutoScrollEnabled(true);
this.onFxBoxFocus=std.event.listener(this,this._onFxBoxFocus);
this.onMouseDown=std.event.listener(this,this._onMouseDown);
this.onMouseOver=std.event.listener(this,this._onMouseOver);
this.onMouseMove=std.event.listener(this,this._onMouseOver);
this.onMouseOut=std.event.listener(this,this._onMouseOut);
this.onClick=std.event.listener(this,this._onClick);
this.onDblClick=std.event.listener(this,this._onDblClick);
this.onKeyDown=std.event.listener(this,this._onKeyDown);
this.onContextMenu=std.event.listener(this,this.onMouseDown);
this._mouseEventTimeout=50;
this._mouseMoveTimer=null;
this._mouseOverTimer=null;
this._mouseOutTimer=null;
};
editgrid.sheet.Pane.prototype._onFxBoxFocus=function(){
if(!this.view.readOnly){
this.showEditor(true);
}
};
editgrid.sheet.Pane.prototype.connect=function(){
this.element.onmousedown=this.onMouseDown;
this.element.onmousemove=this.onMouseMove;
this.element.onmouseover=this.onMouseOver;
this.element.onmouseout=this.onMouseOut;
this.element.onclick=this.onClick;
this.element.ondblclick=this.onDblClick;
std.event.onContextMenu(this.element,this.onMouseDown);
};
editgrid.sheet.Pane.prototype.release=function(){
this.editor.release();
this.element.onmousedown=null;
this.element.onmousemove=null;
this.element.onmouseover=null;
this.element.onmouseout=null;
this.element.onclick=null;
this.element.ondblclick=null;
this.fxBox.onfocus=null;
document.onkeydown=null;
};
editgrid.sheet.Pane.prototype.show=function(x,y,w,h){
this.width=w;
this.height=h;
x+="px";
y+="px";
w+="px";
h+="px";
this.element.style.left=x;
this.element.style.top=y;
this.element.style.width=w;
this.element.style.height=h;
if(this.colHdrElement){
this.colHdrElement.style.left=x;
this.colHdrElement.style.width=w;
}
if(this.rowHdrElement){
this.rowHdrElement.style.top=y;
this.rowHdrElement.style.height=h;
}
if(!this.visible){
this.element.style.display="";
if(this.rowHdrElement){
this.rowHdrElement.style.display="";
}
if(this.colHdrElement){
this.colHdrElement.style.display="";
}
this.visible=true;
}
};
editgrid.sheet.Pane.prototype.hide=function(){
if(this.visible){
this.rowFr=this.colFr=0;
this.rowTo=this.colTo=-1;
this.element.style.display="none";
if(this.rowHdrElement){
this.rowHdrElement.style.display="none";
}
if(this.colHdrElement){
this.colHdrElement.style.display="none";
}
this.visible=false;
}
};
editgrid.sheet.Pane.prototype.onEditorCommit=function(row,col,value){
var cell,_13bd,_13be=std.browser.isIEQuirksMode?"overflowX":"overflow";
this.view.copyBoxDel();
this.sheetView.sheet.setCell(row,col,value,null,null,null);
if((cell=this.getCellElementAt(row,col))&&(_13bd=this.view.textOverflow&&!cell.wr)){
cell.style[_13be]="hidden";
}
if(cell){
if(cell.scrollHeight>cell.offsetHeight){
this.sheetView.sheet.setRowSize(row,row,cell.scrollHeight+(cell.offsetHeight-cell.clientHeight));
}
if(_13bd){
cell.style[_13be]="visible";
}
}
};
editgrid.sheet.Pane.prototype._getCellElement=function(row,col){
var r=row-this.rowFr;
var c=col-this.colFr;
var info=this.sheetView.pageManager.getCellInfo(row,col);
if(r>=0&&r<this.numRows&&c>=0&&c<this.numCols){
var node=this._getPage(this.sheetView,info.index).nodes[info.offset];
if(node&&node.dom){
return node.dom;
}
}
return null;
};
editgrid.sheet.Pane.prototype.hideSelector=function(){
this.curBox=this.cursor;
this.view.rangeBoxDel(this.selector);
};
editgrid.sheet.Pane.prototype.rangeBoxRedraw=function(box,r,c,rr,cc){
if(r==undefined){
r=this.rowFr;
c=this.colFr;
rr=this.numRows-1;
cc=this.numCols-1;
}
var sheet=this.sheetView.sheet;
var range=box;
var _13cc=box.instances[this.name];
if(_13cc==null){
return;
}
var _13cd=_13cc.element;
var cf=range.colFr-c,ct=range.colTo-c;
var rf=range.rowFr-r,rt=range.rowTo-r;
var i,l;
var _13d4=!(cf<this.numCols&&rf<this.numRows&&ct>=0&&rt>=0);
var _13d5=this.sheetView.isRangeHidden(range.rowFr,range.colFr,range.rowTo,range.colTo);
var _13d6=!_13d4&&(!_13d5||box.drawHiddenBox);
var _13d7=!_13d4&&(!_13d5||box.drawHiddenIcon);
if(_13d6){
var _13d8=cf>=0&&ct<this.numCols&&rf>=0&&rt<this.numRows;
var clip=box.clipped;
var x1=cf>=0?this.colXs[cf]:this.colXs[0]-(clip?20:this.sheetView.getRowColsSize(false,range.colFr,c-1));
var x2=ct<this.numCols?(this.colXs[ct]+this.colWidths[ct]):(this.colXs[cc]+this.colWidths[cc]+(clip?20:this.sheetView.getRowColsSize(false,cc+c+1,range.colTo)));
var y1=rf>=0?this.rowYs[rf]:this.rowYs[0]-(clip?20:this.sheetView.getRowColsSize(true,range.rowFr,r-1));
var y2=rt<this.numRows?(this.rowYs[rt]+this.rowHeights[rt]):(this.rowYs[rr]+this.rowHeights[rr]+(clip?20:this.sheetView.getRowColsSize(true,rr+r+1,range.rowTo)));
var wc=this.rangeBoxWidthComplement;
var hc=this.rangeBoxHeightComplement;
if(box.widthAdjustment!=null){
wc+=box.widthAdjustment;
}
if(box.heightAdjustment!=null){
hc+=box.heightAdjustment;
}
if(!std.browser.isBorderBox){
wc-=4;
hc-=4;
}
_13cd.style.left=x1+1+"px";
_13cd.style.top=y1+1+"px";
_13cd.style.width=x2-x1+wc+"px";
_13cd.style.height=y2-y1+hc+"px";
if(box.onRedraw){
box.onRedraw(box,_13cc);
}
if(!_13cc.visibility){
_13cd.style.display="";
}
_13cc.visibility=_13d8?1:-1;
}else{
if(_13cc.visibility==null||_13cc.visibility){
_13cc.visibility=0;
_13cd.style.display="none";
}
}
if(box.icons){
if(_13d7){
var icon,inst,x,y;
for(i=0,l=box.icons.length;i<l;++i){
switch((icon=box.icons[i]).placement){
case 0:
x=x1;
y=y1;
break;
case 1:
x=x2;
y=y1;
break;
case 2:
x=x1;
y=y2;
break;
case 3:
x=x2;
y=y2;
break;
}
inst=_13cc.icons[i];
inst.style.left=x+icon.dx+"px";
inst.style.top=y+icon.dy+"px";
inst.style.display="";
}
}else{
for(i=0,l=box.icons.length;i<l;++i){
_13cc.icons[i].style.display="none";
}
}
}
this.areRangeBoxesAllVisible&=_13cc.visibility>0;
};
editgrid.sheet.Pane.prototype.rangeBoxesRedraw=function(force){
var r=this.rowFr,c=this.colFr;
var rr=this.numRows-1,cc=this.numCols-1;
this.areRangeBoxesAllVisible=true;
for(var name in this.rangeBoxes){
var box=this.rangeBoxes[name];
var _13eb=box.instances[this.name];
if(force||_13eb.visibility==null||_13eb.visibility<=0){
this.rangeBoxRedraw(box,r,c,rr,cc);
}
}
var _13ec=this.editor;
if(_13ec.isOn){
c=_13ec.colIdx-c;
r=_13ec.rowIdx-r;
if(c>=0&&c<this.numCols&&r>=0&&r<this.numRows){
_13ec.setPosition(this.colXs[c],this.rowYs[r]);
}
_13ec.autoResize();
}
};
editgrid.sheet.Pane.prototype.setRangeBoxLayerVisible=function(_13ed){
if(this.rangeBoxContainerVisible!=_13ed){
this.rangeBoxContainerVisible=_13ed;
this.rangeBoxContainer.style.display=_13ed?"":"none";
}
};
editgrid.sheet.Pane.prototype.cellAttachmentRedraw=function(_13ee){
var colFr=this.focusBox.colFr;
var rowFr=this.focusBox.rowFr;
var sheet=this.sheetView.sheet;
var merge=sheet.mergeHasCell(rowFr,colFr);
var colTo=merge?merge.colTo:colFr;
var rowTo=merge?merge.rowTo:rowFr;
if(colFr<this.colLB||colFr>this.colUB||rowFr<this.rowLB||rowFr>this.rowUB){
return;
}
var r=this.rowFr;
var c=this.colFr;
var rf=rowFr-r;
var cf=colFr-c;
var rt=rowTo-r;
var ct=colTo-c;
var x1=cf>=0?(cf<this.numCols?this.colXs[cf]:this.colXs[this.numCols-1]+this.sheetView.getRowColsSize(false,this.numCols+c,colFr)):this.colXs[0]-this.sheetView.getRowColsSize(false,colFr,c-1);
var y1=rf>=0?(rf<this.numRows?this.rowYs[rf]:this.rowYs[this.numRows-1]+this.sheetView.getRowColsSize(true,this.numRows+r,rowFr)):this.rowYs[0]-this.sheetView.getRowColsSize(true,rowFr,r-1);
var x2=ct>=0?(ct<this.numCols?this.colXs[ct]:this.colXs[this.numCols-1]+this.sheetView.getRowColsSize(false,this.numCols+c,colTo)):this.colXs[0]-this.sheetView.getRowColsSize(false,colTo,c-1);
var y2=rt>=0?(rt<this.numRows?this.rowYs[rt]:this.rowYs[this.numRows-1]+this.sheetView.getRowColsSize(true,this.numRows+r,rowTo)):this.rowYs[0]-this.sheetView.getRowColsSize(true,rowTo,r-1);
x2+=this.sheetView.getRowColSize(false,colTo);
y2+=this.sheetView.getRowColSize(true,rowTo);
var align=_13ee.align;
var dock=_13ee.dock;
var x,y,box;
if(align=="w"||align=="n"||dock=="e"||dock=="s"){
box=std.dom.getDimensions(_13ee.getRoot());
}
switch(align){
case "e":
x=x2;
break;
case "w":
x=x1-box.width;
break;
case "s":
y=y2;
break;
case "n":
y=y1-box.height;
break;
}
if((align=="e"||align=="w")&&(dock=="s"||dock=="n")){
y=(dock=="n")?y1:y2-box.height;
}else{
if((align=="s"||align=="n")&&(dock=="e"||dock=="w")){
x=(dock=="w")?x1:x2-box.width;
}
}
var _1404=sheet._getCellAndLocalChange(rowFr,colFr);
if(_13ee.update(_1404,rowFr,colFr)){
if(_13ee.clipped){
this.element.appendChild(_13ee.getRoot());
_13ee.setProperty("left",x);
_13ee.setProperty("top",y);
}else{
document.body.appendChild(_13ee.getRoot());
var _1405=std.dom.getBounds(this.element);
_13ee.setProperty("left",_1405.left+x-this.colXs[0]);
_13ee.setProperty("top",_1405.top+y-this.rowYs[0]);
}
_13ee.setProperty("visible",true);
return;
}
_13ee.setProperty("visible",false);
};
editgrid.sheet.Pane.prototype.cellAttachmentsRedraw=function(){
var _1406=this.sheetView.sheet.cellAttachments;
for(var k in _1406){
this.cellAttachmentRedraw(_1406[k]);
}
};
editgrid.sheet.Pane.prototype.objectAdd=function(so,_1409){
this._objectGetView(so,_1409);
};
editgrid.sheet.Pane.prototype._objectGetView=function(so,_140b){
if(so.views[this.name]==null&&this.visible){
var _140c=so.ctrl.cloneElement(this);
this.element.appendChild(_140c);
_140c.view=so.views[this.name]={element:_140c,valid:false,pane:this};
std.event.observe(_140c,"load",std.lang.bind(this,this.objectReloaded,so));
if(!_140b){
this.objectRedraw(so);
}
}
return so.views[this.name];
};
editgrid.sheet.Pane.prototype.objectReloaded=function(so){
var view=this._objectGetView(so);
if(view){
view.element.imageElement.style.width="";
view.element.imageElement.style.height="";
}
};
editgrid.sheet.Pane.prototype.objectDel=function(so){
var view=so.views[this.name];
if(view){
so.ctrl.release(view.element);
this.element.removeChild(view.element);
view.element.view=null;
view.element=null;
delete so.views[this.name];
}
};
editgrid.sheet.Pane.prototype.objectUpdate=function(so,_1412){
};
editgrid.sheet.Pane.prototype.objectSetBounds=function(so){
var view=this._objectGetView(so);
if(view){
var _1415=view.element;
_1415.style.visibility="hidden";
this.objectRedraw(so);
_1415.style.visibility="visible";
}
};
editgrid.sheet.Pane.prototype.objectRedraw=function(so,r,c,rr,cc){
if(r==undefined){
r=this.rowFr;
c=this.colFr;
rr=this.numRows-1;
cc=this.numCols-1;
}
var view=this._objectGetView(so);
if(view){
var _141c=view.element;
var cf=so.colFr-c,ct=so.colTo-c;
var rf=so.rowFr-r,rt=so.rowTo-r;
if(cf<this.numCols&&rf<this.numRows&&ct>=0&&rt>=0&&!this.sheetView.isRangeHidden(so.rowFr,so.colFr,so.rowTo,so.colTo)){
var x,y;
x=this.sheetView.getRowColSize(false,so.colFr)*so.colFrOffset;
y=this.sheetView.getRowColSize(true,so.rowFr)*so.rowFrOffset;
if(cf>=0){
x+=this.colXs[cf];
}else{
x+=this.colXs[0];
c=so.colFr;
for(;cf<0;++cf,++c){
x-=this.sheetView.getRowColSize(false,c);
}
}
if(rf>=0){
y+=this.rowYs[rf];
}else{
y+=this.rowYs[0];
r=so.rowFr;
for(;rf<0;++rf,++r){
y-=this.sheetView.getRowColSize(true,r);
}
}
_141c.style.left=x+"px";
_141c.style.top=y+"px";
if(!view.valid){
_141c.style.display="block";
view.valid=true;
}
}else{
if(view.valid){
_141c.style.display="none";
view.valid=false;
}
}
this.areObjectsAllVisible&=view.valid;
}
};
editgrid.sheet.Pane.prototype.objectsRedraw=function(force){
var r=this.rowFr,c=this.colFr;
var rr=this.numRows-1,cc=this.numCols-1;
this.areObjectsAllVisible=true;
for(var key in this.sheetObjects){
var so=this.sheetObjects[key];
if(force||!so.views[this.name].valid){
this.objectRedraw(so,r,c,rr,cc);
}
}
};
editgrid.sheet.Pane.prototype.curBoxSet=function(rowFr,colFr,rowTo,colTo,force,_142f,_1430){
this.boxSetAndFocus(this.curBox,rowFr,colFr,rowTo,colTo,force,_142f,_1430);
};
editgrid.sheet.Pane.prototype._curBoxSet=function(rowFr,colFr,rowTo,colTo,force,_1436,_1437){
if(rowFr!=null){
if(rowFr<this.rowLB){
rowFr=this.rowLB;
}else{
if(rowFr>this.rowUB){
rowFr=this.rowUB;
}
}
}
if(rowTo!=null){
if(rowTo<this.rowLB){
rowTo=this.rowLB;
}else{
if(rowTo>this.rowUB){
rowTo=this.rowUB;
}
}
}
if(colFr!=null){
if(colFr<this.colLB){
colFr=this.colLB;
}else{
if(colFr>this.colUB){
colFr=this.colUB;
}
}
}
if(colTo!=null){
if(colTo<this.colLB){
colTo=this.colLB;
}else{
if(colTo>this.colUB){
colTo=this.colUB;
}
}
}
this.boxSetAndFocus(this.curBox,rowFr,colFr,rowTo,colTo,force,_1436,_1437);
};
editgrid.sheet.Pane.prototype._headerHighlightImpl=function(isRow,_1439,_143a){
var i,j,_143d,sel;
var _143f,visFr,_1441;
if(isRow){
_143f=this.rowHdrCells;
visFr=this._visibleRowFr;
_1441=this._visibleRowIdx;
}else{
_143f=this.colHdrCells;
visFr=this._visibleColFr;
_1441=this._visibleColIdx;
}
if(_143f){
var len=_143f.length;
for(i=0;i<len;++i){
var pos=_1441[i];
var sel=(_1439<=pos&&pos<=_143a&&!this.sheetView.isRowColHidden(isRow,pos));
if((_143d=_143f[i]).sel!=sel){
_143d.sel=sel;
if(sel){
std.css.includeClass(_143d,"selected");
}else{
std.css.excludeClass(_143d,"selected");
}
}
}
}
};
editgrid.sheet.Pane.prototype.headerHighlight=function(rowFr,colFr,rowTo,colTo){
if(this.rowHdrCells){
this._headerHighlightImpl(true,rowFr,rowTo);
}
if(this.colHdrCells){
this._headerHighlightImpl(false,colFr,colTo);
}
};
editgrid.sheet.Pane.prototype.setAutoScrollEnabled=function(_1448){
this.autoScrollEnabled=_1448;
};
editgrid.sheet.Pane.prototype.autoScroll=function(box,_144a){
if(!this.autoScrollEnabled){
return;
}
if(!this.hScrollable&&!this.vScrollable){
return;
}
var merge=this.sheetView.sheet.mergeHasCell(box.rowFr,box.colFr);
var _144c=merge==null||this.sheetView.sheet.mergeIsSingleCell(merge);
var colFr=merge&&merge.colTo==box.colTo?merge.colFr:box._colTo;
var rowFr=merge&&merge.rowTo==box.rowTo?merge.rowFr:box._rowTo;
var _144f,_1450,_1451,_1452;
var _1453=this.hScrollable&&!box.isRow()&&((_144f=box._colTo>=this.colTo)||(colFr<this.colFr));
var _1454=this.vScrollable&&!box.isCol()&&((_1450=box._rowTo>=this.rowTo)||(rowFr<this.rowFr));
if(_144a){
if(_1453){
_1452=box._colFr;
}
if(_1454){
_1451=box._rowFr;
}
}else{
if(_1453){
_1452=_144f?this._calcColFrByCatchRight(box._colTo>this.colUB?this.colUB:box._colTo):colFr;
if(_1452>colFr&&_144c){
_1452=colFr;
}
if(_1452<this.colLB){
_1452=this.colLB;
}
}
if(_1454){
_1451=_1450?this._calcRowFrByCatchBottom(box._rowTo>this.rowUB?this.rowUB:box._rowTo):rowFr;
if(_1451>rowFr&&_144c){
_1451=rowFr;
}
if(_1451<this.rowLB){
_1451=this.rowLB;
}
}
}
if(_1453&&_1454){
this.scrollTo(_1451,_1452);
}else{
if(_1453){
if(this.sbHori){
this.sbHori.setValue(_1452,true,false,true);
}else{
this.hScrollTo(_1452);
}
}else{
if(_1454){
if(this.sbVert){
this.sbVert.setValue(_1451,true,false,true);
}else{
this.vScrollTo(_1451);
}
}
}
}
};
editgrid.sheet.Pane.prototype.boxSetAndFocus=function(box,rowFr,colFr,rowTo,colTo,force,_145b,_145c){
var _145d=box._rowTo;
var _145e=box._colTo;
if(box.isChild()){
return false;
}
if(box!=this.filler&&(rowFr!=null||rowTo!=null)&&(colFr!=null||colTo!=null)){
var range=this._mergeFindContainer(rowFr,colFr,rowTo,colTo);
if(range){
rowFr=range._rowFr;
colFr=range._colFr;
rowTo=range._rowTo;
colTo=range._colTo;
}
}
if(!box.set(rowFr,colFr,rowTo,colTo)&&!force){
return false;
}
box.colIdx=box._colFr;
box.rowIdx=box._rowFr;
if(box==this.cursor){
this.view.preCursorMove(box);
}
if(!_145b&&(_145e!=box._colTo||_145d!=box._rowTo)){
this.view.pane.autoScroll(box,_145c);
}
this.view.rangeBoxRedraw(box);
if(box==this.cursor){
if(!this.focusBox.inside(box)){
this.focusBox.setWalkPos(box.walk.row,box.walk.col);
this.redrawFocusBox();
}
box.colIdx=this.focusBox.colFr;
box.rowIdx=this.focusBox.rowFr;
if(this.view.crosshairMode){
this.view.crosshairSetRange(box.rowFr,box.colFr,box.rowTo,box.colTo);
}
this._restoreHiddenTextareaState(this.view.pane.editor,box.rowIdx,box.colIdx);
this.view.postCursorMove(box);
}else{
if(box==this.selector){
this.editor.insertRange(this.sheetView.sheet.mergeGetActualRange(this.selector));
}
}
return true;
};
editgrid.sheet.Pane.prototype._restoreHiddenTextareaState=function(_1460,_1461,_1462){
if(!_1460.isOn){
_1460.setText(this.sheetView.sheet.getCellText(_1461,_1462));
if(this.view.captureEvent){
if(!std.browser.isOpera){
_1460.selectAndFocusTunnel();
}else{
_1460.element.blur();
}
}
}
};
editgrid.sheet.Pane.prototype.findCellRefByEvt=function(e,_1464,_1465){
return this.findCellRef(std.event.pointerX(e),std.event.pointerY(e),_1464,_1465);
};
editgrid.sheet.Pane.prototype.findCellRef=function(x,y,_1468,_1469){
var pos=std.dom.getTargetPos(this.element);
var _146b=this.element.scrollLeft+x-pos.x;
var _146c=this.element.scrollTop+y-pos.y;
var _146d,_146e;
for(_146e=1;_146e<this.numCols&&_146b>this.colXs[_146e];++_146e){
}
--_146e;
if(_1469){
if(this.colFr>this.colLB&&_146b<this.colXs[0]){
_146e=-1;
}
var len=this.colXs.length;
if(this.colTo<this.colUB&&_146b>this.colXs[len-1]+this.colWidths[len-1]){
_146e=len;
}
}
for(_146d=1;_146d<this.numRows&&_146c>this.rowYs[_146d];++_146d){
}
--_146d;
if(_1469){
if(this.rowFr>this.rowLB&&_146c<this.rowYs[0]){
_146d=-1;
}
var len=this.rowYs.length;
if(this.rowTo<this.rowUB&&_146c>this.rowYs[len-1]+this.rowHeights[len-1]){
_146d=len;
}
}
var rowFr,colFr,rowTo,colTo;
colFr=_146e+this.colFr;
rowFr=_146d+this.rowFr;
var _1474;
if(_1468&&(_1474=this.sheetView.sheet.mergeHasCell(rowFr,colFr))){
rowFr=_1474.rowFr;
colFr=_1474.colFr;
rowTo=_1474.rowTo;
colTo=_1474.colTo;
_146d=rowFr-this.rowFr;
_146e=colFr-this.colFr;
}else{
rowTo=rowFr;
colTo=colFr;
}
var _1475=_146e+colTo-colFr+1;
var _1476=_146d+rowTo-rowFr+1;
var _1477={col:colFr,row:rowFr};
if(!_1469){
_1477.offsetLeft=_146b-this.colXs[_146e];
_1477.offsetTop=_146c-this.rowYs[_146d];
_1477.offsetRight=(_1475<this.numCols?this.colXs[_1475]:this.colXs[this.numCols-1]+this.colWidths[this.numCols-1])-_146b;
_1477.offsetBottom=(_1476<this.numRows?this.rowYs[_1476]:this.rowYs[this.numRows-1]+this.rowHeights[this.numRows-1])-_146c;
}
return _1477;
};
editgrid.sheet.Pane.prototype.getVisibleRange=function(){
return this.visible&&this.rowFr<=this.rowTo&&this.colFr<=this.colTo?new editgrid.RangeRef(this.rowFr,this.colFr,this.rowTo,this.colTo):null;
};
editgrid.sheet.Pane.prototype._onCellPageLoaded=function(_1478,page){
var dx=page.range.colFr==0?0:_1478.getRowColsSize(false,0,page.range.colFr-1);
var dy=page.range.rowFr==0?0:_1478.getRowColsSize(true,0,page.range.rowFr-1);
var box=page.box;
box.style.position="absolute";
box.style.width="0px";
box.style.height="0px";
box.style.overflow="visible";
box.style.left=dx+"px";
box.style.top=dy+"px";
if(std.browser.isIE){
box.style.zIndex=page.range.rowFr*256+page.range.colFr;
}
if(_1478.sheet.id==this.sheetView.sheet.id){
this.updateRangeMergeCellText(page.range);
var _147d=[];
for(var c=page.range.colFr;c<=page.range.colTo;++c){
_147d[c]=_1478.isRowColHidden(false,c);
}
for(var r=page.range.rowFr;r<=page.range.rowTo;++r){
var _1480=_1478.isRowColHidden(true,r);
for(var c=page.range.colFr;c<=page.range.colTo;++c){
var _1481=_1480||_147d[c]?null:_1478.sheet._getCellAndLocalChange(r,c);
this.updateCellErrorIndicator(_1481,r,c);
}
}
}
};
editgrid.sheet.Pane.prototype._onCellPageLoadCompleted=function(_1482){
if(_1482.sheet.id==this.sheetView.sheet.id){
this._onSyncCellPagesComplete();
}
};
editgrid.sheet.Pane.prototype._onSyncCellPagesComplete=function(){
if(this.visible){
this.setRangeBoxLayerVisible(true);
}
if(!this.pagesReady){
this.pagesReady=true;
std.topic.publish(this,"onPagesReady");
}
};
editgrid.sheet.Pane.prototype._layersRedraw=function(force){
if(force||!this.areRangeBoxesAllVisible){
this.rangeBoxesRedraw(force);
}
if(force||!this.areObjectsAllVisible){
this.objectsRedraw(force);
}
if(force){
this.cellAttachmentsRedraw(force);
}
};
editgrid.sheet.Pane.prototype.recalcRowColLayout=function(){
var _1484=this._visibleColXs.slice(0);
var _1485=this._visibleRowYs.slice(0);
var _1486=this._visibleColWs.slice(0);
var _1487=this._visibleRowHs.slice(0);
var r,c,i;
var x=this.scrollOffsetX=this.sheetView.getRowColsSize(false,0,this.colFr-1);
var y=this.scrollOffsetY=this.sheetView.getRowColsSize(true,0,this.rowFr-1);
this.colTo=this.colFr;
this.rowTo=this.rowFr;
var vr=0,vc=0;
var _148f=x+this.width;
for(i=0,c=this.colFr;x<_148f&&c<=255;++i,++c){
var size=this.sheetView.getRowColSize(false,c);
this.colXs[i]=x;
this.colWidths[i]=size;
if(size!=0){
this._visibleColXs[vc]=x;
this._visibleColWs[vc]=size;
this._visibleColIdx[vc]=c;
vc++;
}
x+=size;
}
if(vc==0){
i=0;
}
this.colXs.length=this.colWidths.length=this.numCols=i;
this.colTo=this.colFr+i-1;
this._visibleColXs.length=this._visibleColWs.length=this._visibleColIdx.length=vc;
var _148f=y+this.height;
for(i=0,r=this.rowFr;y<_148f&&r<=65535;++i,++r){
var size=this.sheetView.getRowColSize(true,r);
this.rowYs[i]=y;
this.rowHeights[i]=size;
if(size!=0){
this._visibleRowYs[vr]=y;
this._visibleRowHs[vr]=size;
this._visibleRowIdx[vr]=r;
vr++;
}
y+=size;
}
if(vr==0){
i=0;
}
this.rowYs.length=this.rowHeights.length=this.numRows=i;
this.rowTo=this.rowFr+i-1;
this._visibleRowYs.length=this._visibleRowHs.length=this._visibleRowIdx.length=vr;
this._visibleColFr=this._visibleColIdx[0];
this._visibleRowFr=this._visibleRowIdx[0];
this.redrawRowColHeader(_1484,_1485,_1486,_1487);
};
editgrid.sheet.Pane.prototype._redrawRowColHeaderImpl=function(isRow,_1492,_1493){
var x,y,reuse,_1497,_1498,size;
var visFr,_149b,_149c,_149d,_149e,_149f;
var _14a0,_14a1,_14a2,_14a3,_14a4;
if(isRow){
visFr=this._visibleRowFr;
_149b=this._visibleRowIdx;
_149c=this._visibleRowYs;
_149d=this._visibleRowHs;
_149e=this.cursor.rowFr;
_149f=this.cursor.rowTo;
_14a0=this.rowHdrElement;
_14a1=this.rowHdrCells;
_14a2="top";
_14a3="height";
_14a4=this.rowHdrCell;
}else{
visFr=this._visibleColFr;
_149b=this._visibleColIdx;
_149c=this._visibleColXs;
_149d=this._visibleColWs;
_149e=this.cursor.colFr;
_149f=this.cursor.colTo;
_14a0=this.colHdrElement;
_14a1=this.colHdrCells;
_1497=this.colHdrCell;
_14a2="left";
_14a3="width";
_14a4=this.colHdrCell;
}
if(_1492==null){
_1492=[];
}
if(_1493==null){
_1493=[];
}
for(var i=0;i<_149d.length;++i){
var pos=_149b[i];
reuse=i<_14a1.length;
y=_149c[i];
size=_149d[i];
_1497=reuse?_14a1[i]:_14a4.cloneNode(true);
if(!reuse||_1492[i]!=y){
_1497.style[_14a2]=y+"px";
}
if(!reuse||_1493[i]!=size){
_1497.style[_14a3]=size+"px";
}
this._redrawRowColHeaderItem(isRow,_1497,pos,_149e,_149f);
_1497[isRow?"rowIdx":"colIdx"]=pos;
if(!reuse){
_14a0.appendChild(_1497);
_14a1.push(_1497);
}
}
for(;i<_14a1.length;++i){
_14a0.removeChild(_14a1[i]);
}
_14a1.length=_149d.length;
if(isRow){
this.setRowHdrScrollTop(_149c[0]);
}else{
this.setColHdrScrollLeft(_149c[0]);
}
};
editgrid.sheet.Pane.prototype.redrawRowColHeader=function(_14a7,_14a8,_14a9,_14aa){
var x,y,reuse,_14ae,_14af,size;
if(this.colHdrCells){
this._redrawRowColHeaderImpl(false,_14a7,_14a9);
}
if(this.rowHdrCells){
this._redrawRowColHeaderImpl(true,_14a8,_14aa);
}
};
editgrid.sheet.Pane.prototype.scrollTo=function(_14b1,_14b2,_14b3){
if(_14b1!=null){
this.rowFr=_14b1;
this.colFr=_14b2;
}
this.recalcRowColLayout();
if(this.editor.isOn&&this.areRangeBoxesAllVisible){
this.editor.autoResize();
}
this.setScrollLeft(this.scrollOffsetX);
this.setScrollTop(this.scrollOffsetY);
if(this.sbVert){
this.sbVert.setBlockIncrement(this.rowTo-this.rowFr);
this.sbVert.setValue(this.rowFr,false,true);
}
if(!_14b3&&this.onVSync){
this.onVSync(this.rowFr);
}
if(this.sbHori){
this.sbHori.setBlockIncrement(this.colTo-this.colFr);
this.sbHori.setValue(this.colFr,false,true);
}
if(!_14b3&&this.onHSync){
this.onHSync(this.colFr);
}
this._updateViewport(0,0);
this._layersRedraw(true);
};
editgrid.sheet.Pane.prototype.onResize=function(){
this.recalcRowColLayout();
this._updateViewport(0,0);
this._layersRedraw(true);
};
editgrid.sheet.Pane.prototype._updateViewport=function(_14b4,_14b5){
var _14b6=this.sheetView.pageManager.pageRectOfCellRange(this.getVisibleRange());
this._getCurrPageBuffer().updateViewport(_14b6,_14b4||0,_14b5||0,this.view.fxMode,this.view.verticalAlign,this.sheetView.gridLinesVisible);
};
editgrid.sheet.Pane.prototype.refreshViewport=function(){
this._getCurrPageBuffer().refreshViewport();
};
editgrid.sheet.Pane.prototype._calcMinRowFrByRowTo=function(_14b7,_14b8){
var i=_14b7-1;
var h=this.height-(_14b8||0);
while(h>0&&i>=0){
h-=this.sheetView.getRowColSize(true,i);
if(h>0){
i--;
}
}
return i+1;
};
editgrid.sheet.Pane.prototype._calcMinColFrByColTo=function(_14bb,_14bc){
var i=_14bb-1;
var w=this.width-(_14bc||0);
while(w>0&&i>=0){
w-=this.sheetView.getRowColSize(false,i);
if(w>0){
i--;
}
}
return i+1;
};
editgrid.sheet.Pane.prototype._calcRowFrByCatchBottom=function(_14bf){
var i=_14bf;
var h=this.height;
while(h>=0&&i>=0){
h-=this.sheetView.getRowColSize(true,i);
if(h>=0||i==_14bf){
i--;
}
}
return i+1;
};
editgrid.sheet.Pane.prototype._calcColFrByCatchRight=function(_14c2){
var i=_14c2;
var w=this.width;
while(w>=0&&i>=0){
w-=this.sheetView.getRowColSize(false,i);
if(w>=0||i==_14c2){
i--;
}
}
return i+1;
};
editgrid.sheet.Pane.prototype._delHdrNodesHead=function(isRow,_14c6){
return this._delHdrNodes(isRow,0,_14c6);
};
editgrid.sheet.Pane.prototype._delHdrNodesTail=function(isRow,_14c8){
var len=isRow?this.rowHdrCells.length:this.colHdrCells.length;
return this._delHdrNodes(isRow,len-_14c8,_14c8);
};
editgrid.sheet.Pane.prototype._delHdrNodesAll=function(isRow){
var len=isRow?this.rowHdrCells.length:this.colHdrCells.length;
return this._delHdrNodes(isRow,0,len);
};
editgrid.sheet.Pane.prototype._delHdrNodes=function(isRow,start,_14ce){
var _14cf,_14d0,_14d1;
if(isRow){
_14cf=this.rowHdrElement;
_14d0=this.rowHdrCells;
}else{
_14cf=this.colHdrElement;
_14d0=this.colHdrCells;
}
nodeList=_14d0.splice(start,_14ce);
for(var i=0;i<nodeList.length;++i){
_14cf.removeChild(nodeList[i]);
}
};
editgrid.sheet.Pane.prototype._newHdrNode=function(isRow,_14d4,idx,pos,size){
var node,isSel;
var _14da,_14db,_14dc,_14dd,_14de,_14df;
if(isRow){
_14da=this.rowHdrCell;
_14db="top";
_14dc="height";
_14df="rowIdx";
_14dd=this.cursor.rowFr;
_14de=this.cursor.rowTo;
}else{
_14da=this.colHdrCell;
_14db="left";
_14dc="width";
_14df="colIdx";
_14dd=this.cursor.colFr;
_14de=this.cursor.colTo;
}
node=_14da.cloneNode(true);
this._redrawRowColHeaderItem(isRow,node,idx,_14dd,_14de);
node[_14df]=idx;
if(size==0){
node.style.visibility="hidden";
}
node.style[_14db]=pos+"px";
node.style[_14dc]=size+"px";
_14d4.appendChild(node);
return node;
};
editgrid.sheet.Pane.prototype._hvScrollUpdateEditor=function(isRow,x,_14e2){
if(!this.editor.isOn){
if(isRow){
this.editor.setTop(x-1);
}else{
this.editor.setLeft(x-1);
}
}else{
if(!_14e2&&this.areRangeBoxesAllVisible){
this.editor.autoResize();
}
}
};
editgrid.sheet.Pane.prototype._hvScrollPane=function(isRow,x){
this.element[isRow?"scrollTop":"scrollLeft"]=x;
};
editgrid.sheet.Pane.prototype._hvScrollHeader=function(isRow,x,_14e7,_14e8){
if(_14e7){
_14e8[isRow?"scrollTop":"scrollLeft"]=x;
}
};
editgrid.sheet.Pane.prototype.hvScrollTo=function(isRow,newFr,_14eb){
var fr,to,X,W,_14f0,_14f1,bound,nVMax,_14f4,newTo,limit;
var _14f7=true;
if(isRow){
fr="rowFr";
to="rowTo";
len="numRows";
_14f4="scrollTop";
X=this.rowYs;
W=this.rowHeights;
vX=this._visibleRowYs;
vW=this._visibleRowHs;
vIdx=this._visibleRowIdx;
_14f0=this.rowHdrCells;
_14f1=this.rowHdrElement;
bound=this.height;
limit=65535;
}else{
fr="colFr";
to="colTo";
len="numCols";
_14f4="scrollLeft";
X=this.colXs;
W=this.colWidths;
vX=this._visibleColXs;
vW=this._visibleColWs;
vIdx=this._visibleColIdx;
_14f0=this.colHdrCells;
_14f1=this.colHdrElement;
bound=this.width;
limit=255;
}
var delta=newFr-this[fr];
if(delta==0){
return;
}
if(delta>0){
if(newFr<=this[to]){
X.splice(0,delta);
W.splice(0,delta);
var _14f9=0;
for(var i=0,pos=this[fr];i<delta;++i,++pos){
if(this.sheetView.getRowColSize(isRow,pos)!=0){
_14f9++;
if(_14f0){
this._delHdrNodesHead(isRow,1);
}
}
}
vX.splice(0,_14f9);
vW.splice(0,_14f9);
vIdx.splice(0,_14f9);
lenX=X.length;
lenVX=vX.length;
var last=this[len]-delta-1;
var w,x=X[last]+W[last];
var xEnd=X[0]+bound;
var _1502,isSel;
newTo=this[to];
while(x<xEnd){
if(++newTo>limit){
break;
}
w=this.sheetView.getRowColSize(isRow,newTo);
X.push(x);
W.push(w);
if(w!=0){
vX.push(x);
vW.push(w);
vIdx.push(newTo);
if(_14f0){
_1502=this._newHdrNode(isRow,_14f1,newTo,x,w);
_14f0.push(_1502);
}
}
x+=w;
}
if(vX.length==lenVX){
newTo=this[to];
X.length=W.length=lenX;
}
_14f7=false;
}
}else{
if(-delta<this[to]-this[fr]){
var headX=[];
var headW=[];
var _1506=[];
var _1507=[];
var _1508=[];
var _1509=[];
var x=X[0];
for(i=this[fr]-1;i>=newFr;--i){
w=this.sheetView.getRowColSize(isRow,i);
x-=w;
headX.push(x);
headW.push(w);
if(w!=0){
_1506.push(x);
_1507.push(w);
_1508.push(i);
if(_14f0){
_1502=this._newHdrNode(isRow,_14f1,i,x,w);
_1509.push(_1502);
}
}
}
X=headX.reverse().concat(X);
W=headW.reverse().concat(W);
vX=_1506.reverse().concat(vX);
vW=_1507.reverse().concat(vW);
vIdx=_1508.reverse().concat(vIdx);
if(_14f0){
_14f0=_1509.reverse().concat(_14f0);
if(isRow){
this.rowHdrCells=_14f0;
}else{
this.colHdrCells=_14f0;
}
}
var lenX=X.length;
var lenVX=vX.length;
var last=this[len]-delta-1;
var xEnd=X[0]+bound;
newTo=this[to];
while(X[last]>=xEnd){
var w=W[last];
lenX--;
if(w!=0){
lenVX--;
if(_14f0){
this._delHdrNodesTail(isRow,1);
}
}
newTo--;
last--;
}
X.length=lenX;
W.length=lenX;
vX.length=lenVX;
vW.length=lenVX;
vIdx.length=lenVX;
_14f7=false;
if(isRow){
this.rowYs=X;
this.rowHeights=W;
this._visibleRowYs=vX;
this._visibleRowHs=vW;
this._visibleRowIdx=vIdx;
}else{
this.colXs=X;
this.colWidths=W;
this._visibleColXs=vX;
this._visibleColWs=vW;
this._visibleColIdx=vIdx;
}
}
}
if(_14f7){
X.splice(0,this[len]);
W.splice(0,this[len]);
var lenVX=vX.length;
vX.splice(0,lenVX);
vW.splice(0,lenVX);
vIdx.splice(0,lenVX);
if(_14f0){
this._delHdrNodesAll(isRow);
}
newTo=newFr-1;
var x=this.sheetView.getRowColsSize(isRow,0,newTo);
var xEnd=x+bound;
while(x<xEnd){
if(++newTo>limit){
break;
}
w=this.sheetView.getRowColSize(isRow,newTo);
X.push(x);
W.push(w);
if(w!=0){
vX.push(x);
vW.push(w);
vIdx.push(newTo);
if(_14f0){
_1502=this._newHdrNode(isRow,_14f1,newTo,x,w);
_14f0.push(_1502);
}
}
x+=w;
}
if(vX.length==0){
newTo=newFr-1;
X.length=W.length=0;
}
}
this._visibleColFr=this._visibleColIdx[0];
this._visibleRowFr=this._visibleRowIdx[0];
this[fr]=newFr;
this[to]=newTo;
this[len]=newTo-newFr+1;
x=X[0];
this._hvScrollUpdateEditor(isRow,x,_14f7);
this._hvScrollPane(isRow,x);
this._hvScrollHeader(isRow,x,_14f0,_14f1);
if(isRow){
this._updateViewport(delta,0);
this._layersRedraw(_14f7);
if(this.sbVert){
this.sbVert.setBlockIncrement(this[to]-this[fr]);
this.sbVert.setValue(this[fr],true,true);
}
if(!_14eb&&this.onVSync){
this.onVSync(this[fr]);
}
}else{
this._updateViewport(0,delta);
this._layersRedraw(_14f7);
if(this.sbHori){
this.sbHori.setBlockIncrement(this[to]-this[fr]);
this.sbHori.setValue(this[fr],true,true);
}
if(!_14eb&&this.onHSync){
this.onHSync(this[fr]);
}
}
};
editgrid.sheet.Pane.prototype.vScrollTo=function(_150a,_150b){
return this.hvScrollTo(1,_150a,_150b);
};
editgrid.sheet.Pane.prototype.hScrollTo=function(_150c,_150d){
return this.hvScrollTo(0,_150c,_150d);
};
editgrid.sheet.Pane.prototype.scrollPageBackward=function(isRow){
var oldFr,newFr,min,sb;
if(isRow){
oldFr=this.rowFr;
newFr=this._calcMinRowFrByRowTo(this.rowFr);
min=this.rowLB;
sb=this.sbVert;
}else{
oldFr=this.colFr;
newFr=this._calcMinColFrByColTo(this.colFr);
min=this.colLB;
sb=this.sbHori;
}
var _1513=newFr;
if(newFr==oldFr){
newFr--;
}
if(newFr<min){
newFr=min;
}
if(newFr==oldFr){
return null;
}
if(sb){
sb.setValue(newFr,true);
}else{
this.hvScrollTo(isRow,newFr);
}
return newFr-oldFr;
};
editgrid.sheet.Pane.prototype.scrollPageForward=function(isRow){
var oldFr,oldTo,newFr,max,sb;
if(isRow){
oldFr=this.rowFr;
oldTo=this.rowTo;
max=this.rowUB;
sb=this.sbVert;
}else{
oldFr=this.colFr;
oldTo=this.colTo;
max=this.colUB;
sb=this.sbHori;
}
var newFr=oldTo+(oldFr==oldTo?1:0);
if(newFr>max){
newFr=this._calcRowFrByCatchBottom(max);
if(newFr<=oldFr){
return null;
}
}
if(sb){
sb.setValue(newFr,true);
}else{
this.hvScrollTo(isRow,newFr);
}
return newFr-oldFr;
};
editgrid.sheet.Pane.prototype.updateCellByCellData=function(_151a,cell,r,c){
var merge,_151f=null;
var flags={};
var sheet=this.sheetView.sheet;
if((merge=sheet.mergeHasCell(r,c))){
if(merge.colFr!=c){
flags.noGridLineV=1;
}
if(merge.rowFr!=r){
flags.noGridLineH=1;
}
flags.skipContent=1;
}
var _1522=sheet._getCellAndLocalChange(r,c);
var _1523=sheet.getCellComment(r,c);
this.updateCellErrorIndicator(_1522,r,c);
this.view.updateCellDOM(cell,_1522,_1523,r,c,flags,_151a);
if(merge){
this.updateMergeCellText(merge,_151a);
}
};
editgrid.sheet.Pane.prototype._updateEditorStyle=function(_1524,style){
var _1526="";
var _1527="";
var _1528="";
var _1529="";
var _152a="";
var bits=style.bits;
if(bits){
if(bits&1){
_1528="bold";
}
if(bits&2){
_1529="italic";
}
if(bits&4){
_152a+="underline ";
}
if(bits&64){
_152a+="line-through ";
}
}
var _152c=style.fontName;
if(_152c!=null){
var _152d=editgrid.fontTable[_152c];
_1526=_152d?_152d:_152c;
}
if(style.fontSize!=null){
_1527=style.fontSize+"pt";
}
_1524.setWordWrap(style&&(style.bits&32||(((style.bits>>7)&7)==4)));
var _152e=_1524.element.style;
_152e.fontFamily=_1526;
_152e.fontSize=_1527;
_152e.fontWeight=_1528;
_152e.fontStyle=_1529;
_152e.textDecoration=_152a;
};
editgrid.sheet.Pane.prototype.updateCellErrorIndicator=function(_152f,row,col){
var sheet=this.sheetView.sheet;
var merge=sheet.mergeHasCell(row,col);
var _1534=_152f;
var name=editgrid.sheet.CellErrorIndicator.getName(this.view.sheetView,col,row);
var _1536;
var _1537=col;
var _1538=row;
if(merge){
_1537=merge.colTo;
_1538=merge.rowFr;
if(col!=merge.colFr||row!=merge.rowFr){
_1534=sheet._getCellAndLocalChange(merge.rowFr,merge.colFr);
}
}
if(_1534&&(_1536=_1534.errors)&&_1536.length>0&&col==_1537&&row==_1538){
if(col==_1537&&row==_1538&&!this.view.sheetView.rangeBoxes[name]){
var _1539=new editgrid.sheet.CellErrorIndicator(this.view.sheetView,_1537,_1538,merge);
this.view.rangeBoxAdd(_1539);
}
}else{
var _153a;
if(_153a=this.view.sheetView.rangeBoxes[name]){
this.view.rangeBoxDel(_153a);
}
}
};
editgrid.sheet.Pane.prototype.getCellElementAt=function(row,col){
var merge=this.sheetView.sheet.mergeHasCell(row,col);
if(merge){
return this._getMergeCellElement(merge);
}else{
return this._getCellElement(row,col);
}
};
editgrid.sheet.Pane.prototype.updateCellsClipped=function(i,j,h,w){
if(i<0){
i=0;
}
if(j<0){
j=0;
}
if(i+h>=this.numRows){
h=this.numRows-i;
}
if(j+w>=this.numCols){
w=this.numCols-j;
}
this.updateCells(i,j,h,w);
};
editgrid.sheet.Pane.prototype.updateCells=function(i,j,h,w){
var row=i+this.rowFr;
var col=j+this.colFr;
var _1548={};
var _1549=new editgrid.RangeRef(row,col,row+h-1,col+w-1);
var _154a=this.sheetView.pageManager.getPageTraverseInfo(_1549);
for(var i=0;i<_154a.length;++i){
var info=_154a[i];
var index=info.index;
var range=info.range;
var pitch=info.pitch;
var page=this._getPage(this.sheetView,index);
if(page&&page.nodes){
var p=info.offset;
for(var r=range.rowFr;r<=range.rowTo;++r,p+=pitch){
for(var c=range.colFr;c<=range.colTo;++c,p++){
var node=page.nodes[p];
if(node&&node.dom){
this.updateCellByCellData(_1548,node.dom,r,c);
}
}
}
}
}
};
editgrid.sheet.Pane.prototype.onCursorDragingMouseMove=function(e){
var pos=this.findCellRefByEvt(e,false,true);
if(this.curBox==null){
this.curBox=this.cursor;
}
this._curBoxSet(this.dragData.row,this.dragData.col,pos.row,pos.col);
std.event.vanish(e);
return false;
};
editgrid.sheet.Pane.prototype.onCursorDragingMouseUp=function(e){
editgrid.event.endDrag(this.dragData);
this.dragData=null;
this.view.dragging=false;
this.view._fireSelectChange(this.cursor);
return false;
};
editgrid.sheet.Pane.prototype._editorAcceptRange=function(){
var _1557;
if((_1557=this.editor.acceptRange())&&this.curBox!=this.selector){
this.curBox=this.selector;
this.view.rangeBoxAdd(this.selector);
}
return _1557;
};
editgrid.sheet.Pane.prototype.onSelect=function(_1558){
if(!this.editor.isOn){
return false;
}
if(!this._editorAcceptRange()||_1558){
this.hideEditor();
}else{
return true;
}
};
editgrid.sheet.Pane.prototype.hideEditor=function(save){
if(this.curBox==this.selector){
this.hideSelector();
}
this.editor.hide(save==undefined?this.sheetView.sheet.editable(this.cursor.getRange()):save);
};
editgrid.sheet.Pane.prototype._isCellCheckbox=function(_155a){
return _155a.type=="checkbox"&&(" "+_155a.className+" ").indexOf(" cellCheckbox ")!=-1;
};
editgrid.sheet.Pane.prototype._isCellButton=function(_155b){
return _155b.type=="button"&&(" "+_155b.className+" ").indexOf(" cellButton ")!=-1;
};
editgrid.sheet.Pane.prototype._isCellHyperlink=function(_155c){
return _155c.tagName=="A"&&(" "+_155c.className+" ").indexOf(" cellHyperlink ")!=-1;
};
editgrid.sheet.Pane.prototype._lockDispatchMouseDown=function(e){
var pos=this.findCellRefByEvt(e);
var child=this.getCellElementAt(pos.row,pos.col).firstChild;
if(child){
var _1560=this._isCellCheckbox(child);
if(_1560&&(this.view.readOnly||!this.sheetView.sheet.editable(new editgrid.RangeRef(pos.row,pos.col)))){
return false;
}
var dx=pos.offsetLeft-child.offsetLeft;
var dy=pos.offsetTop-child.offsetTop;
if(_1560||this._isCellButton(child)||child.tagName=="A"){
return (dx>=0&&dx<child.offsetWidth&&dy>=0&&dy<child.offsetHeight);
}
}
return false;
};
editgrid.sheet.Pane.prototype._lockDispatchClick=function(e){
if(e.clientX==0||e.clientY==0){
return;
}
var pos=this.findCellRefByEvt(e);
var child=this.getCellElementAt(pos.row,pos.col).firstChild;
if(child){
if(this._isCellCheckbox(child)&&(this.view.readOnly||!this.sheetView.sheet.editable(new editgrid.RangeRef(pos.row,pos.col)))){
return;
}
var dx=pos.offsetLeft-child.offsetLeft;
var dy=pos.offsetTop-child.offsetTop;
if(dx<0||dx>=child.offsetWidth||dy<0||dy>=child.offsetHeight){
return;
}
if(child.tagName=="A"&&child.href!=null&&child.href.indexOf("#")==-1&&child.href.indexOf("editgrid:")!=0){
std.host.open(child.href,true);
std.event.vanish(e);
}else{
if(std.browser.isIE){
if(child.click){
child.click();
}
std.event.vanish(e);
}else{
if(!std.event.dispatchMouseEvent(child,"click",std.hash.merge(e))){
std.event.vanish(e);
}
}
}
}
};
editgrid.sheet.Pane.prototype._onMouseDown=function(e){
var _1569;
var _156a=editgrid.event.getSrcElement(e);
if(!this.hasFocus){
this.view.focusPane(this);
}
if(_156a==this.editor.element||this._isCellHyperlink(_156a)){
return;
}
if(this._isCellCheckbox(_156a)){
return true;
}
if(this._isCellButton(_156a)){
return true;
}
if(_156a.className=="myLock"||_156a.className=="lock"){
if(this._lockDispatchMouseDown(e)){
return true;
}
}
this.hideCellHoverTooltipGroup();
this.view.takeFocus(null);
if((_1569=this.onSelect(e.button!=this.mouseBtns.LEFT))){
std.event.preventDefault(e);
}
if(this.dragData){
editgrid.event.endDrag(this.dragData);
this.dragData=null;
}
var pos=this.findCellRefByEvt(e);
this.setAutoScrollEnabled(false);
if(e.button==this.mouseBtns.LEFT){
this.view.dragging=true;
this.dragData=editgrid.event.startDrag(this.element,this.onCursorDragingMouseMove,this.onCursorDragingMouseUp,this);
if(e.shiftKey){
this.dragData.col=this.curBox.colIdx;
this.dragData.row=this.curBox.rowIdx;
}else{
this.dragData.col=pos.col;
this.dragData.row=pos.row;
}
if(!e.ctrlKey&&!std.event.isCmdDown(e)){
this.curBoxSet(this.dragData.row,this.dragData.col,pos.row,pos.col);
}
}else{
if(_156a!=this.cursor.instances[this.name].element&&_156a!=this.focusBox.instances[this.name].element){
this.curBoxSet(pos.row,pos.col);
}
}
if(this.curBox!=this.selector){
window.focus();
}
this.setAutoScrollEnabled(true);
return !_1569;
};
editgrid.sheet.Pane.prototype._isShowTooltipAllowedAt=function(x,y){
if(!this.isReady()){
return false;
}
var pos=this.findCellRef(x,y,true);
var _156f=this.editor;
var _1570=this.view._contextMenu;
if(!this.dragData&&!(_1570&&_1570.visible)&&!(_156f.isOn&&_156f.rowIdx==pos.row&&_156f.colIdx==pos.col)){
return pos;
}else{
return null;
}
};
editgrid.sheet.Pane.prototype._onMouseOver=function(e){
var timer="_"+e.type+"Timer";
if(this[timer]!=null){
clearTimeout(this[timer]);
}
var x=std.event.pointerX(e);
var y=std.event.pointerY(e);
var self=this;
this[timer]=setTimeout(function(){
var pos=self._isShowTooltipAllowedAt(x,y);
if(pos){
self.showCellHoverTooltipGroup(pos.row,pos.col);
}else{
self.hideCellHoverTooltipGroup();
}
self[timer]=null;
},this._mouseEventTimeout);
};
editgrid.sheet.Pane.prototype._onMouseOut=function(e){
if(this._mouseOutTimer!=null){
clearTimeout(this._mouseOutTimer);
}
var self=this;
this._mouseOutTimer=setTimeout(function(){
self.hideCellHoverTooltipGroup();
self._mouseOutTimer=null;
},this._mouseEventTimeout);
};
editgrid.sheet.Pane.prototype.newCellCommentCommitHandler=function(row,col){
return std.lang.bind(this,function(_157b,_157c){
this.hideCellHoverTooltipGroup();
this.view.hoverTooltipGroup.setVisible(false);
if(_157b!==_157c){
this.view.sheetView.sheet.setCellComment(row,col,_157b);
}
});
};
editgrid.sheet.Pane.prototype.showCellHoverTooltipGroup=function(row,col){
var cc=this.sheetView.sheet.getCellComment(row,col);
var _1580=this.sheetView.sheet._getCellAndLocalChange(row,col);
var _1581=_1580?_1580.errors:null;
var view=this.view;
if(view.lastHoverTooltipGroupPos==null||(view.lastHoverTooltipGroupPos.col!=col||view.lastHoverTooltipGroupPos.row!=row)){
if(cc||(_1581&&_1581.length>0)){
this.hideCellHoverTooltipGroup();
var _1583=100;
var _1584=Math.round(_1583/1.618);
view.lastHoverTooltipGroupPos={row:row,col:col};
if(view.hoverTooltipGroup){
view.hoverTooltipGroup.clear();
}else{
view.hoverTooltipGroup=new editgrid.tooltip.TooltipGroup();
}
if(_1581&&_1581.length>0){
for(var i in _1581){
var error=_1581[i];
var _1587=_1581[i].error;
view.hoverTooltipGroup.addTooltip(new editgrid.tooltip.CellError({type:error.type,error:_1587}));
}
}
if(cc){
view.hoverTooltipGroup.addTooltip(new editgrid.tooltip.CellComment({text:cc.text,readOnly:this.view.readOnly,onCommit:this.newCellCommentCommitHandler(row,col)}));
}
var _1588=this.getCellElementAt(row,col);
this.view.hoverTooltipGroup.showAlignedByElement({element:_1588,w:_1583,h:_1584});
}
}
};
editgrid.sheet.Pane.prototype.hideCellHoverTooltipGroup=function(){
if(this.view.lastHoverTooltipGroupPos!=null){
this.view.hoverTooltipGroup.startFade();
this.view.lastHoverTooltipGroupPos=null;
}
};
editgrid.sheet.Pane.prototype._onClick=function(e){
var _158a=editgrid.event.getSrcElement(e);
if(_158a.tagName=="A"){
var url=_158a.getAttribute("eg_url");
if(url==null){
url=_158a.getAttribute("href");
}else{
url=decodeURI(url);
}
std.topic.publish(this.view,"onNavigate",url,e);
}else{
if(this._isCellButton(_158a)){
var url=decodeURIComponent(_158a.getAttribute("eg_url"));
if(url){
var sheet=_158a.getAttribute("eg_sheet");
var arg=_158a.getAttribute("eg_arg");
var pos=this.findCellRefByEvt(e);
var merge=this.sheetView.sheet.mergeHasCell(pos.row,pos.col);
std.topic.publish(this.view,"onNavigate",url,e,sheet,merge?merge.rowFr:pos.row,merge?merge.colFr:pos.col,arg);
}
}else{
if(this._isCellCheckbox(_158a)){
var pos=this.findCellRefByEvt(e);
var merge=this.sheetView.sheet.mergeHasCell(pos.row,pos.col);
var _1590=_158a.checked?"TRUE":"FALSE";
this.sheetView.sheet.setCell(merge?merge.rowFr:pos.row,merge?merge.colFr:pos.col,_1590,_1590,_1590,20);
std.event.vanish(e);
}else{
if(_158a.className=="myLock"||_158a.className=="lock"){
this._lockDispatchClick(e);
}
}
}
}
};
editgrid.sheet.Pane.prototype._onDblClick=function(e){
std.event.vanish(e);
var pos=this.findCellRefByEvt(e,true);
if(e.button==this.mouseBtns.LEFT){
if(!this.sheetView.sheet.mergeIsSingleCell(this.curBox)||!this.curBox.hasCell(pos.row,pos.col)){
return;
}
}
if(!this.view.readOnly){
if(pos.offsetTop<10&&pos.offsetRight<10&&this.sheetView.sheet.getCellComment(pos.row,pos.col)){
this.view.publishOnEditCellComment(pos.row,pos.col);
}else{
if(!this.editor.isOn){
this.showEditor();
this.editor.moveCaretEnd();
}
}
}
};
editgrid.sheet.Pane.prototype.showEditor=function(_1593,_1594,_1595){
if(this.editor.isOn){
return;
}
this.autoScroll(this.focusBox,false);
var rowFr=this.focusBox.rowFr,colFr=this.focusBox.colFr;
var rowTo=this.focusBox.rowTo,colTo=this.focusBox.colTo;
if(!_1593&&!this.sheetView.sheet.cellEditable(rowFr,colFr)){
return;
}
var r=rowFr-this.rowFr,c=colFr-this.colFr;
var rTo=rowTo-this.rowFr,cTo=colTo-this.colFr;
var x,y,w=0,h=0;
if(r<0||r>=this.numRows){
r=0;
}
if(c<0||c>=this.numCols){
c=0;
}
x=this.colXs[c];
y=this.rowYs[r];
if(cTo>=this.numCols){
cTo=this.numCols-1;
}
if(rTo>=this.numRows){
rTo=this.numRows-1;
}
while(c<=cTo){
w+=this.colWidths[c++];
}
while(r<=rTo){
h+=this.rowHeights[r++];
}
this.hideCellHoverTooltipGroup();
this._updateEditorStyle(this.editor,this.sheetView.sheet.getStyle(rowFr,colFr));
if(!_1595){
var text=this.sheetView.sheet.getCellText(rowFr,colFr);
this.editor.setText(text,true);
}
this.editor.show(rowFr,colFr,rowTo,colTo,!_1593,!_1594,x,y,w,h);
};
editgrid.sheet.Pane.prototype.onFillMove=function(e){
var rowFr,colFr,rowTo,colTo,dx,dy;
var _15aa=this.cursor;
var pos=this.findCellRefByEvt(e,false,true);
dx=pos.col>=_15aa.colFr?(pos.col<=_15aa.colTo?0:(pos.col-_15aa.colTo)):(pos.col-_15aa.colFr);
dy=pos.row>=_15aa.rowFr?(pos.row<=_15aa.rowTo?0:(pos.row-_15aa.rowTo)):(pos.row-_15aa.rowFr);
if(!dx&&!dy){
rowFr=_15aa.rowFr;
rowTo=_15aa.rowTo;
colFr=_15aa.colFr;
colTo=_15aa.colTo;
}else{
if(Math.abs(dx)>Math.abs(dy)){
if(dx>0){
rowFr=_15aa.rowFr;
colFr=_15aa.colFr;
rowTo=_15aa.rowTo;
}else{
rowFr=_15aa.rowTo;
colFr=_15aa.colTo;
rowTo=_15aa.rowFr;
}
colTo=pos.col;
}else{
if(dy>0){
rowFr=_15aa.rowFr;
colFr=_15aa.colFr;
colTo=_15aa.colTo;
}else{
rowFr=_15aa.rowTo;
colFr=_15aa.colTo;
colTo=_15aa.colFr;
}
rowTo=pos.row;
}
}
this.boxSetAndFocus(this.filler,rowFr,colFr,rowTo,colTo);
};
editgrid.sheet.Pane.prototype.onFillUp=function(e){
var _15ad=this.cursor,_15ae=this.filler;
this.view.dragging=false;
this.view.rangeBoxDel(_15ae);
editgrid.event.endDrag(this.dragData);
this.dragData=null;
if(!_15ae.equal(_15ad)){
this.sheetView.autofill(_15ae._rowFr,_15ae._colFr,_15ae._rowTo,_15ae._colTo,Math.abs(_15ad.rowTo-_15ad.rowFr)+1,Math.abs(_15ad.colTo-_15ad.colFr)+1,e.ctrlKey||std.event.isCmdDown(e)?1:0);
this.boxSetAndFocus(_15ad,_15ae._rowFr,_15ae._colFr,_15ae._rowTo,_15ae._colTo,false,true);
}
return false;
};
editgrid.sheet.Pane.prototype.onFillDown=function(e){
if(!this.view.readOnly&&this.sheetView.sheet.cellEditable(this.cursor.rowIdx,this.cursor.colIdx)){
this.view.rangeBoxAdd(this.filler);
this.onFillMove(e);
this.view.dragging=true;
this.dragData=editgrid.event.startDrag(this.element,this.onFillMove,this.onFillUp,this);
}
std.event.vanish(e);
};
editgrid.sheet.Pane.prototype._getRowColName=function(isRow,idx){
if(isRow){
return idx>=0&&idx<this.maxRow?idx+1:" ";
}else{
return idx>=0&&idx<this.maxCol?editgrid.getColName(idx):" ";
}
};
editgrid.sheet.Pane.prototype._redrawRowColHeaderItem=function(isRow,_15b3,idx,_15b5,_15b6){
var _15b7=idx>=_15b5&&idx<=_15b6;
var _15b8=false;
if(isRow){
var name=this._getRowColName(isRow,idx);
if(name!=" "){
var _15ba=this.sheetView.filters;
var _15bb=this.sheetView.filterRowMax;
for(var k in _15ba){
if(_15ba[k].active){
var range=_15ba[k].range;
if(range.rowFr<idx&&idx<=range.rowTo&&idx<=_15bb){
_15b8=true;
break;
}
}
}
}
}
if(_15b7==!_15b3.sel){
_15b3.sel=_15b7;
if(_15b7){
std.css.includeClass(_15b3,"selected");
}else{
std.css.excludeClass(_15b3,"selected");
}
}
if(_15b8==!_15b3.hilite){
_15b3.hilite=_15b8;
if(_15b8){
std.css.includeClass(_15b3,"hilite");
}else{
std.css.excludeClass(_15b3,"hilite");
}
}
if(std.browser.isIE){
_15b3.innerText=this._getRowColName(isRow,idx);
}else{
_15b3.innerHTML=this._getRowColName(isRow,idx);
}
};
editgrid.sheet.Pane.prototype.onCellUpdate=function(sheet,_15bf,row,col){
if(this.hasFocus&&this.cursor.rowIdx==row&&this.cursor.colIdx==col){
this.view.updateCursorInfo(row,col);
}
var i=row-this.rowFr;
var j=col-this.colFr;
this.updateCellsClipped(i,j,1,1);
};
editgrid.sheet.Pane.prototype.batchCurBoxSetAdd=function(rowFr,colFr,rowTo,colTo){
var data=this.batchCurBoxSetData;
if(data){
if(rowFr<data.rowFr){
data.rowFr=rowFr;
}
if(colFr<data.colFr){
data.colFr=colFr;
}
if(rowTo>data.rowTo){
data.rowTo=rowTo;
}
if(colTo>data.colTo){
data.colTo=colTo;
}
}else{
data=this.batchCurBoxSetData={rowFr:rowFr,colFr:colFr,rowTo:rowTo,colTo:colTo};
}
};
editgrid.sheet.Pane.prototype.batchCurBoxSetEnd=function(){
if(this.batchCurBoxSetData){
data=this.batchCurBoxSetData;
var _15c9=data.rowFr!=data.rowTo||data.colFr!=data.colTo;
if(this.curBox){
this.curBoxSet(data.rowFr,data.colFr,data.rowTo,data.colTo,true,_15c9);
}
this.batchCurBoxSetData=null;
}
};
editgrid.sheet.Pane.prototype.isReady=function(){
return this.pagesReady;
};
editgrid.sheet.Pane.prototype.onSheetRangesUpdate=function(sheet,_15cb){
if(sheet==this.sheetView.sheet){
var _15cc=this.sheetView.pageManager;
var _15cd=this._getPageBuffer(this.sheetView);
var ro=-this.rowFr;
var co=-this.colFr;
var _15d0=[];
var _15d1=[];
var _15d2=this.maxCol;
var _15d3=_15cc.pageRectOfCellRange(this.getVisibleRange());
if(editgrid.isDebug){
console.log("Pane",this.name);
}
if(editgrid.isDebug){
console.log("VisibleRect",_15d3);
}
for(var i=0;i<_15cb.length;++i){
var _15d5=_15cc.pageRectOfCellRange(_15cb[i]);
var _15d6=_15cd.findPagesInRects(_15d5);
if(editgrid.isDebug){
console.log("Updated",_15d5,_15d6);
}
if(_15d3.area()&&std.hash.notEmpty(_15d6)){
var _15d7=_15d3.intersect(_15d5);
var _15d8=_15d7?_15cd.findPagesInRects(_15d7):null;
if(editgrid.isDebug){
console.log("Intersected",_15d7,_15d8);
}
for(var idx in _15d8){
var page=_15d8[idx];
var info=_15cc.getPageTraverseInfoSingle(idx,_15cb[i]);
var range=info.range;
var pitch=info.pitch;
if(page.box){
var p=info.offset;
var r,c,ir,ic,p;
for(r=range.rowFr,ir=r+ro;r<=range.rowTo;++r,++ir,p+=pitch){
for(c=range.colFr;ic=c+co,c<=range.colTo;++c,++ic,p++){
var key=ir*_15d2+ic;
if(!_15d0[key]){
_15d0[key]=true;
var node=page.nodes[p];
if(node&&node.dom){
this.updateCellByCellData(_15d1,node.dom,r,c);
}
}
}
}
}
delete _15d6[idx];
}
}
if(editgrid.isDebug){
console.log("Unloading Pages",_15d6);
}
_15cd.removePageByIndices(_15d6);
}
this.cellAttachmentsRedraw();
}else{
var _15e5=this.view.getSheetView(sheet);
var _15cc=_15e5.pageManager;
var _15cd=this._getPageBuffer(_15e5);
var _15e6={};
for(var i=0;i<_15cb.length;++i){
var _15e7=_15cc.pageRectOfCellRange(_15cb[i]);
var _15e8=_15cd.findPagesInRects(_15e7);
for(var k in _15e8){
_15e6[k]=1;
}
}
_15cd.removePageByIndices(_15e6);
}
};
editgrid.sheet.Pane.prototype.updateRangeMergeCellText=function(range){
var _15eb=this.sheetView.sheet.mergeGetIntersection(range);
var cache={};
for(var i=0;i<_15eb.length;++i){
this.updateMergeCellText(_15eb[i],cache);
}
};
editgrid.sheet.Pane.prototype.updateMergeCellText=function(merge,cache){
var name=merge.getName();
if(cache){
if(cache._merge==null){
cache._merge={};
}
if(cache._merge[name]){
return;
}
}
var _15f1;
if(_15f1=this._getMergeCellElement(merge)){
this.view.updateMergeCellText(_15f1,merge.rowFr,merge.colFr);
if(cache){
cache._merge[name]=1;
}
}
};
editgrid.sheet.Pane.prototype.sheetDeselect=function(){
this.pagesReady=false;
if(this.editor.isOn){
this.hideEditor();
}
for(var id in this.rangeBoxes){
this.rangeBoxes[id].unrealize(this.rangeBoxContainer,this.name);
}
for(var id in this.sheetObjects){
this.objectDel(this.sheetObjects[id]);
}
this.hasFocus=false;
if(this.sbHori){
this.sbHori.onChange=null;
this.sbHori.onChangeContext=null;
}
if(this.sbVert){
this.sbVert.onChange=null;
this.sbVert.onChangeContext=null;
}
};
editgrid.sheet.Pane.prototype.sheetSelect=function(_15f3){
if(this.sheetView!=_15f3){
if(this.sheetView){
this._getPageBuffer(this.sheetView).detach();
}
this.sheetView=_15f3;
var _15f4=this._getPageBuffer(_15f3);
_15f4.attach(this.element);
this.cell.style.width=this.colHdrCell.style.width=_15f3.cellWidth+"px";
this.cell.style.height=this.rowHdrCell.style.height=_15f3.cellHeight+"px";
this.rangeBoxes=_15f3.rangeBoxes;
this.cursor=_15f3.cursor;
this.focusBox=_15f3.focusBox;
this.crosshairN=_15f3.crosshairN;
this.crosshairE=_15f3.crosshairE;
this.crosshairS=_15f3.crosshairS;
this.crosshairW=_15f3.crosshairW;
this.filler=_15f3.filler;
this.selector=_15f3.selector;
this.copy=_15f3.copy;
this.setRangeBoxLayerVisible(false);
this.pagesReady=false;
for(var id in this.rangeBoxes){
this.rangeBoxes[id].realize(this.rangeBoxContainer,this.name);
}
this.sheetObjects=this.sheetView.sheet.getSheetObjects();
for(var id in this.sheetObjects){
this.objectAdd(this.sheetObjects[id],true);
}
_15f4.refreshViewport(this.view.fxMode,this.view.verticalAlign,this.sheetView.gridLinesVisible);
this.rebound();
if(this.sbHori){
this.sbHori.onChange=this.hScrollTo;
this.sbHori.onChangeContext=this;
}
if(this.sbVert){
this.sbVert.onChange=this.vScrollTo;
this.sbVert.onChangeContext=this;
}
}
};
editgrid.sheet.Pane.prototype.focus=function(){
if(this.hasFocus){
return;
}
this.editor.connect(this.fxBox);
this.fxBox.onfocus=this.onFxBoxFocus;
this.cursor.connect(this.onFillDown,this);
this.curBox=this.cursor;
if(!std.browser.isIE&&!std.browser.isSafariWin){
document.onkeydown=this.onKeyDown;
}
this.hasFocus=true;
};
editgrid.sheet.Pane.prototype.blur=function(){
if(!this.hasFocus){
return;
}
if(this.editor.isOn){
this.hideEditor();
}
this.curBox=null;
this.hasFocus=false;
};
editgrid.sheet.Pane.prototype._getRightBottomPagePos=function(_15f6){
var rMax=-1;
var cMax=-1;
for(var k in _15f6){
var range=this.sheetView.pageManager.pageRangeFromIndex(k);
if(rMax<range.rowTo){
rMax=range.rowTo;
}
if(cMax<range.colTo){
cMax=range.colTo;
}
}
return {rMax:rMax,cMax:cMax};
};
editgrid.sheet.Pane.prototype.onRowColShift=function(sheet,isRow,fr,to){
if(sheet==this.sheetView.sheet){
this.recalcRowColLayout();
}
var _15ff=this.view.getSheetView(sheet);
var _1600=_15ff.pageManager;
var _1601=(sheet==this.sheetView.sheet)?this.getVisibleRange():null;
var _1602=_1600.pageRectOfCellRange(_1601);
this._getPageBuffer(_15ff).shiftRowCol(isRow,fr,to,_1602,{fxMode:this.view.fxMode,vAlign:this.view.verticalAlign});
if(sheet==this.sheetView.sheet){
var absFr=fr<to?fr:to;
var _1604=isRow?this.rowFr:this.colFr;
var _1605=isRow?this.rowTo:this.colTo;
if(absFr<_1604){
if(isRow){
this.setScrollTop(this.rowYs[0]);
}else{
this.setScrollLeft(this.colXs[0]);
}
var sb=isRow?this.sbVert:this.sbHori;
if(sb){
sb.setBlockIncrement(_1605-_1604);
sb.setValue(_1604,false,true);
}
if(isRow){
if(this.onVSync){
this.onVSync(this.rowFr);
}
}else{
if(this.onHSync){
this.onHSync(this.colFr);
}
}
}
this._layersRedraw(true);
if(fr<to){
this._onSyncCellPagesComplete();
}
}
};
editgrid.sheet.Pane.prototype.onMultiRowColResize=function(sheet,isRow,_1609,_160a,_160b){
if(sheet==this.sheetView.sheet){
this.recalcRowColLayout();
}
var _160c=this.view.getSheetView(sheet);
var _160d=(sheet==this.sheetView.sheet)?this.getVisibleRange():null;
var _160e=_160c.pageManager.pageRectOfCellRange(_160d);
this._getPageBuffer(_160c).resizeRowCol(isRow,_1609,_160a,_160b,_160e,{fxMode:this.view.fxMode,vAlign:this.view.verticalAlign,showGridLines:this.sheetView.gridLinesVisible});
if(sheet==this.sheetView.sheet){
var minFr=_1609[0];
if(isRow&&minFr<this.rowFr){
this.setScrollTop(this.rowYs[0]);
}else{
if(!isRow&&minFr<this.colFr){
this.setScrollLeft(this.colXs[0]);
}
}
this._layersRedraw(true);
}
};
editgrid.sheet.Pane.prototype._onKeyDown=function(e){
var _1611=this.editor;
var codes=std.event.getKeyCodes(e);
if(_1611.isOn||e.ctrlKey||std.event.isCmdDown(e)||e.altKey&&e.keyCode!=codes.KEY_ENTER){
return true;
}
if(this.view.readOnly||!this.view.captureEvent||!this.sheetView.sheet.cellEditable(this.cursor.rowIdx,this.cursor.colIdx)){
return true;
}
var _1613=std.event.getKeyCode(e);
if(_1613==codes.KEY_F2||e.altKey&&_1613==codes.KEY_ENTER){
_1611.setText(this.sheetView.sheet.getCellText(this.cursor.rowFr,this.cursor.colFr));
}
switch(_1613){
case codes.KEY_UP_ARROW:
case codes.KEY_DOWN_ARROW:
case codes.KEY_LEFT_ARROW:
case codes.KEY_RIGHT_ARROW:
case codes.KEY_PAGE_UP:
case codes.KEY_PAGE_DOWN:
case codes.KEY_ENTER:
case codes.KEY_TAB:
case codes.KEY_ESCAPE:
case codes.KEY_HOME:
case codes.KEY_END:
case codes.KEY_SHIFT:
case codes.KEY_F1:
case codes.KEY_F2:
case codes.KEY_F3:
case codes.KEY_F4:
case codes.KEY_F5:
case codes.KEY_F6:
case codes.KEY_F7:
case codes.KEY_F8:
case codes.KEY_F9:
case codes.KEY_F10:
case codes.KEY_F11:
case codes.KEY_F12:
case codes.KEY_NUM_LOCK:
case codes.KEY_SCROLL_LOCK:
case codes.KEY_CAPS_LOCK:
case codes.KEY_PAUSE:
case codes.KEY_BACKSPACE:
case codes.KEY_INSERT:
case codes.KEY_DELETE:
case codes.KEY_CTRL:
case codes.KEY_ALT:
case codes.KEY_CMD:
case codes.KEY_LEFT_WINDOW:
case codes.KEY_RIGHT_WINDOW:
case codes.KEY_SELECT:
return true;
}
if(_1613==codes.KEY_IME){
if(std.browser.isSafariWin&&std.browser.major<525){
return true;
}
}
_1611.element.focus();
_1611.element.select();
if(_1613==codes.KEY_IME){
this.editor.setText("");
}
this.showEditor(false,true,true);
setTimeout(std.lang.bind(_1611.element,function(){
std.range.moveCaretEnd(this);
}),0);
return true;
};
editgrid.sheet.Pane.prototype.insertArrayFormula=function(){
var val=this.editor.element.value;
if(val.length>1&&val.charAt(0)=="="){
var lval=val.toLowerCase();
if(lval.indexOf("=array(")&&lval.indexOf("=continue(")){
this.editor.element.value="=array("+val.substring(1)+")";
}
}
this.hideEditor(true);
};
editgrid.sheet.Pane.prototype.relocateCurBox=function(_1616,_1617,toRow,toCol,force){
if(this.editor.isOn&&(this.curBox==this.cursor||force)){
if(force||!this._editorAcceptRange()){
this.hideEditor();
}
}
this.curBoxSet(_1616,_1617,toRow,toCol);
};
editgrid.sheet.Pane.prototype.isRangeCursorMode=function(){
return this.curBox==this.cursor&&!this.cursor.equal(this.focusBox);
};
editgrid.sheet.Pane.prototype.expandCurBox=function(_161b,delta){
var box=this.curBox;
var rng=box.getRange();
var _161f=null;
var merge=this.sheetView.sheet.mergeHasCell(box.rowFr,box.colFr);
var _1621,_1622;
if(box._rowTo<box._rowFr){
_1621=!(merge&&merge.rowTo==box._rowFr&&(_161b=="n"&&delta==-1||_161b=="s"&&delta==1));
}else{
_1621=((box._rowTo==box._rowFr||merge&&merge.rowTo==box._rowTo)&&(_161b=="n"&&delta==1||_161b=="s"&&delta==-1));
}
if(box._colTo<box._colFr){
_1622=!(merge&&merge.colTo==box._colFr&&(_161b=="w"&&delta==-1||_161b=="e"&&delta==1));
}else{
_1622=((box._colTo==box._colFr||merge&&merge.colTo==box._colTo)&&(_161b=="w"&&delta==1||_161b=="e"&&delta==-1));
}
if(delta<0){
_161f=this.sheetView.sheet.mergeGetIntersection(box.getRange());
}
switch(_161b){
case "n":
rng.rowFr=this._walkRowCol(true,rng.rowFr,-delta);
break;
case "s":
rng.rowTo=this._walkRowCol(true,rng.rowTo,delta);
break;
case "e":
rng.colTo=this._walkRowCol(false,rng.colTo,delta);
break;
case "w":
rng.colFr=this._walkRowCol(false,rng.colFr,-delta);
break;
}
if(delta<0){
var done=false;
var _1624={};
var fr,to,_1627,rd,wr;
var isRow=(_161b=="n"||_161b=="s");
if(isRow){
fr="rowFr";
to="rowTo";
}else{
fr="colFr";
to="colTo";
}
if(_161b=="n"||_161b=="w"){
rd=to;
wr=fr;
_1627=1;
}else{
rd=fr;
wr=to;
_1627=-1;
}
while(!done){
if(rng[to]<rng[fr]){
return false;
}
done=true;
for(var i=0;i<_161f.length;++i){
if(!_1624[i]){
var r=_161f[i];
if(r.intersects(rng)&&!r.inside(rng)){
if(rng[wr]*_1627<(r[rd]+_1627)*_1627){
rng[wr]=this._walkRowCol(isRow,r[rd],_1627);
}
_1624[i]=true;
done=false;
}
}
}
}
}
if(_1621){
_1621=rng.rowFr;
rng.rowFr=rng.rowTo;
rng.rowTo=_1621;
}
if(_1622){
_1622=rng.colFr;
rng.colFr=rng.colTo;
rng.colTo=_1622;
}
this.relocateCurBox(rng.rowFr,rng.colFr,rng.rowTo,rng.colTo);
return true;
};
editgrid.sheet.Pane.prototype.processKey=function(ke){
var e=ke.evt;
var codes=std.event.getKeyCodes(e);
var ctrl=e.ctrlKey,alt=e.altKey,shift=e.shiftKey,_1633=std.event.getKeyCode(e);
var _1634=ctrl||std.event.isCmdDown(e);
if(std.browser.isOpera){
switch(_1633){
case codes.KEY_UP_ARROW:
case codes.KEY_DOWN_ARROW:
case codes.KEY_LEFT_ARROW:
case codes.KEY_RIGHT_ARROW:
case codes.KEY_PAGE_UP:
case codes.KEY_PAGE_DOWN:
case codes.KEY_F2:
if(e.which==_1633){
_1633=0;
}
break;
case codes.KEY_HOME:
case codes.KEY_END:
if(e.which==_1633&&shift){
_1633=0;
}
break;
}
}
if(!_1634&&!alt&&!shift){
switch(_1633){
case codes.KEY_LEFT_ARROW:
this.relocateCurBoxBy(-1,MOVE_HORIZONTAL);
std.event.vanish(e);
return true;
case codes.KEY_UP_ARROW:
this.relocateCurBoxBy(-1,MOVE_VERTICAL);
std.event.vanish(e);
return true;
case codes.KEY_TAB:
case codes.KEY_RIGHT_ARROW:
if(this.isRangeCursorMode()&&_1633==codes.KEY_TAB){
this.relocateFocusBoxBy(1,MOVE_HORIZONTAL);
}else{
this.relocateCurBoxBy(1,MOVE_HORIZONTAL,_1633==codes.KEY_TAB);
}
std.event.vanish(e);
return true;
case codes.KEY_ENTER:
case codes.KEY_DOWN_ARROW:
if(this.isRangeCursorMode()&&_1633==codes.KEY_ENTER){
this.relocateFocusBoxBy(1,MOVE_VERTICAL);
}else{
this.relocateCurBoxBy(1,MOVE_VERTICAL,_1633==codes.KEY_ENTER);
}
std.event.vanish(e);
return true;
case codes.KEY_HOME:
this.curBoxSet(this.curBox.rowIdx,0);
std.event.vanish(e);
return true;
case codes.KEY_END:
this.curBoxSet(this.curBox._rowFr,this.sheetView.sheet.getColMax());
std.event.vanish(e);
return true;
case codes.KEY_ESCAPE:
if(this.editor.isOn){
this.hideEditor(false);
setTimeout(std.lang.bind(this,function(){
if(!std.browser.isOpera){
this.editor.selectAndFocusTunnel();
}
}),1);
}else{
this.view.copyBoxDel();
this.view.removeFormatPaint();
}
std.event.vanish(e);
return true;
case codes.KEY_F2:
if(!this.view.readOnly){
this.showEditor();
this.editor.moveCaretEnd();
}
std.event.vanish(e);
return true;
case codes.KEY_DELETE:
if(!this.view.readOnly){
var obj=this.view.focusedObject;
if(obj){
obj.del();
}else{
this.view.selClearContents();
}
}
std.event.vanish(e);
return true;
case codes.KEY_PAGE_UP:
this.view.scrollPageBackward(true);
std.event.vanish(e);
return true;
case codes.KEY_PAGE_DOWN:
this.view.scrollPageForward(true);
std.event.vanish(e);
return true;
default:
if(std.browser.isIE||std.browser.isSafariWin){
return !this._onKeyDown(e);
}
}
}else{
if(_1634&&!alt&&!shift){
switch(_1633){
case codes.KEY_HOME:
this.curBoxSet(0,0);
std.event.vanish(e);
return true;
case codes.KEY_END:
this.curBoxSet(this.sheetView.sheet.getRowMax(),this.sheetView.sheet.getColMax());
std.event.vanish(e);
return true;
}
}else{
if(alt&&!_1634&&!shift){
switch(_1633){
case codes.KEY_PAGE_UP:
this.view.scrollPageBackward(false);
std.event.vanish(e);
return true;
case codes.KEY_PAGE_DOWN:
this.view.scrollPageForward(false);
std.event.vanish(e);
return true;
case codes.KEY_ENTER:
if(!this.view.readOnly){
this.showEditor();
this.editor.moveCaretEnd();
}
std.event.vanish(e);
return true;
}
}else{
if(shift&&!_1634&&!alt){
var c=this.curBox;
var f=this.focusBox;
switch(_1633){
case codes.KEY_LEFT_ARROW:
if(c.colFr!=f.colFr||!this.expandCurBox("e",-1)){
this.expandCurBox("w",1);
}
std.event.vanish(e);
return true;
case codes.KEY_UP_ARROW:
if(c.rowFr!=f.rowFr||!this.expandCurBox("s",-1)){
this.expandCurBox("n",1);
}
std.event.vanish(e);
return true;
case codes.KEY_RIGHT_ARROW:
if(c.colTo!=f.colTo||!this.expandCurBox("w",-1)){
this.expandCurBox("e",1);
}
std.event.vanish(e);
return true;
case codes.KEY_DOWN_ARROW:
if(c.rowTo!=f.rowTo||!this.expandCurBox("n",-1)){
this.expandCurBox("s",1);
}
std.event.vanish(e);
return true;
case codes.KEY_PAGE_UP:
this.relocateCurBox(this.curBox._rowFr,this.curBox._colFr,this.curBox._rowTo-this.rowTo+this.rowFr,this.curBox._colTo);
std.event.vanish(e);
return true;
case codes.KEY_PAGE_DOWN:
this.relocateCurBox(this.curBox._rowFr,this.curBox._colFr,this.curBox._rowTo+this.rowTo-this.rowFr,this.curBox._colTo);
std.event.vanish(e);
return true;
case codes.KEY_HOME:
this.relocateCurBox(this.curBox._rowFr,this.curBox._colFr,this.curBox._rowTo,0);
std.event.vanish(e);
return true;
case codes.KEY_END:
this.relocateCurBox(this.curBox._rowFr,this.curBox._colFr,this.curBox._rowTo,this.sheetView.sheet.getColMax());
std.event.vanish(e);
return true;
case codes.KEY_TAB:
if(this.isRangeCursorMode()){
this.relocateFocusBoxBy(-1,MOVE_HORIZONTAL);
}else{
this.relocateCurBoxBy(-1,MOVE_HORIZONTAL,true);
}
std.event.vanish(e);
return true;
case codes.KEY_ENTER:
if(this.isRangeCursorMode()){
this.relocateFocusBoxBy(-1,MOVE_VERTICAL);
}else{
this.relocateCurBoxBy(-1,MOVE_VERTICAL,true);
}
std.event.vanish(e);
return true;
default:
if(std.browser.isIE||std.browser.isSafariWin){
return !this._onKeyDown(e);
}
}
}else{
if(_1634&&!alt&&shift){
switch(_1633){
case codes.KEY_HOME:
this.relocateCurBox(this.curBox._rowFr,this.curBox._colFr,0,0);
std.event.vanish(e);
return true;
case codes.KEY_END:
this.relocateCurBox(this.curBox._rowFr,this.curBox._colFr,this.sheetView.sheet.getRowMax(),this.sheetView.sheet.getColMax());
std.event.vanish(e);
return true;
case codes.KEY_ENTER:
if(this.editor.isOn){
this.insertArrayFormula();
std.event.vanish(e);
return true;
}
}
}
}
}
}
}
return false;
};
editgrid.sheet.Pane.prototype.rebound=function(){
switch(this.boundMode){
case "NW":
this.rowLB=this.sheetView.frozenRowFr;
this.colLB=this.sheetView.frozenColFr;
this.rowUB=this.sheetView.frozenRowTo;
this.colUB=this.sheetView.frozenColTo;
break;
case "NE":
this.rowLB=this.sheetView.frozenRowFr;
this.colLB=this.sheetView.frozenColTo==null?0:(this.sheetView.frozenColTo+1);
this.rowUB=this.sheetView.frozenRowTo;
this.colUB=this.maxCol-1;
break;
case "SW":
this.rowLB=this.sheetView.frozenRowTo==null?0:(this.sheetView.frozenRowTo+1);
this.colLB=this.sheetView.frozenColFr;
this.rowUB=this.maxRow-1;
this.colUB=this.sheetView.frozenColTo;
break;
case "SE":
this.rowLB=this.sheetView.frozenRowTo==null?0:(this.sheetView.frozenRowTo+1);
this.colLB=this.sheetView.frozenColTo==null?0:(this.sheetView.frozenColTo+1);
this.rowUB=this.maxRow-1;
this.colUB=this.maxCol-1;
break;
}
if(this.sbHori){
this.sbHori.setHardMinimum(this.colLB);
this.sbHori.setHardMaximum(this.colUB);
}
if(this.sbVert){
this.sbVert.setHardMinimum(this.rowLB);
this.sbVert.setHardMaximum(this.rowUB);
}
var rowFr=(this.boundMode=="SE"||this.boundMode=="SW")?this.sheetView.unfrozenRow:this.rowLB;
var colFr=(this.boundMode=="SE"||this.boundMode=="NE")?this.sheetView.unfrozenCol:this.colLB;
this.scrollTo(rowFr,colFr,true);
};
editgrid.sheet.Pane.prototype.setScrollLeft=function(_163a){
this.element.scrollLeft=_163a;
if(!this.editor.isOn){
this.editor.adjustPosition();
}
};
editgrid.sheet.Pane.prototype.setScrollTop=function(_163b){
this.element.scrollTop=_163b;
if(!this.editor.isOn){
this.editor.adjustPosition();
}
};
editgrid.sheet.Pane.prototype.setColHdrScrollLeft=function(_163c){
this.colHdrElement.scrollLeft=_163c||0;
};
editgrid.sheet.Pane.prototype.setRowHdrScrollTop=function(_163d){
this.rowHdrElement.scrollTop=_163d||0;
};
editgrid.sheet.Pane.prototype.cellCheck=function(){
if(!this.sheetView.sheet.cellEditable(this.cursor.rowIdx,this.cursor.colIdx)){
alert(loc("You are not able to modify this cell as it has been locked by another user."));
return true;
}
return false;
};
editgrid.sheet.Pane.prototype.insertFunction=function(pre,pos){
if(this.cellCheck()){
return false;
}
if(!this.editor.isOn){
this.showEditor();
}
this.editor.insertAndShift("="+pre+pos,-pos.length);
return true;
};
editgrid.sheet.Pane.prototype._replaceText=function(text,shift){
if(this.cellCheck()){
return false;
}
if(!this.editor.isOn){
this.showEditor();
}
this.editor.setText("");
this.editor.insertAndShift(text,shift);
};
editgrid.sheet.Pane.prototype.insertText=function(text,shift){
if(this.cellCheck()){
return false;
}
if(!this.editor.isOn){
this.showEditor();
}
this.editor.insertAndShift(text,shift);
};
editgrid.sheet.Pane.prototype.sum=function(){
if(this.sheetView.sheet.mergeIsSingleCell(this.cursor)){
this._replaceText("=SUM()",-1);
}else{
this.sheetView.sheet.rangeSum(this.cursor.getRange());
}
};
editgrid.sheet.Pane.prototype.insertCurrentDate=function(){
if(this.sheetView.sheet.mergeIsSingleCell(this.cursor)){
this.insertText(std.date.format(new Date(),"yyyy-MM-dd"),0);
}
};
editgrid.sheet.Pane.prototype.insertCurrentTime=function(){
if(this.sheetView.sheet.mergeIsSingleCell(this.cursor)){
this.insertText(std.date.format(new Date(),"hh:mm a"),0);
}
};
editgrid.sheet.Pane.prototype.insertCurrentDateTime=function(){
if(this.sheetView.sheet.mergeIsSingleCell(this.cursor)){
this.insertText(std.date.format(new Date(),"yyyy-MM-dd HH:mm"),0);
}
};
editgrid.sheet.Pane.prototype.coord2Anchor=function(x,y,w,h){
var x1,x2,y1,y2,colFr,rowFr,colTo,rowTo;
var size,_1651,_1652,_1653,_1654;
colFr=this.colFr;
x1=this.colXs[0];
if(x<x1){
if(colFr>0){
do{
x2=x1;
x1-=size=this.sheetView.getRowColSize(false,--colFr);
}while(x<x1&&colFr>0);
}else{
size=this.sheetView.getRowColSize(false,colFr);
}
}else{
x2=x1+(size=this.sheetView.getRowColSize(false,colFr));
while(x>=x2){
x1=x2;
x2+=size=this.sheetView.getRowColSize(false,++colFr);
}
}
_1651=(x-x1)/size;
x+=w-1;
colTo=colFr;
while(x>=x2){
x1=x2;
x2+=size=this.sheetView.getRowColSize(false,++colTo);
}
_1653=(x-x1)/size;
rowFr=this.rowFr;
y1=this.rowYs[0];
if(y<y1){
if(rowFr>0){
do{
y2=y1;
y1-=size=this.sheetView.getRowColSize(true,--rowFr);
}while(y<y1&&rowFr>0);
}else{
size=this.sheetView.getRowColSize(true,rowFr);
}
}else{
y2=y1+(size=this.sheetView.getRowColSize(true,rowFr));
while(y>=y2){
y1=y2;
y2+=size=this.sheetView.getRowColSize(true,++rowFr);
}
}
_1652=(y-y1)/size;
y+=h-1;
rowTo=rowFr;
while(y>=y2){
y1=y2;
y2+=size=this.sheetView.getRowColSize(true,++rowTo);
}
_1654=(y-y1)/size;
return {rowFr:rowFr,colFr:colFr,rowTo:rowTo,colTo:colTo,colFrOffset:_1651,rowFrOffset:_1652,colToOffset:_1653,rowToOffset:_1654};
};
editgrid.sheet.Pane.prototype.initAnchor=function(width,_1656,_1657,_1658,minX,minY){
var w,h;
if((w=width)<_1657){
w=_1657;
}
if((h=_1656)<_1658){
h=_1658;
}
if((x=(this.width-w)>>1)<minX){
x=minX;
}
if((y=(this.height-h)>>1)<minY){
y=minY;
}
x+=this.colXs[0];
y+=this.rowYs[0];
return this.coord2Anchor(x,y,w,h);
};
editgrid.sheet.Pane.prototype.getTextHeight=function(_165d,r,c,width){
var _1661=this.tmpCell;
_1661.style.width=width+"px";
_1661.style.height="0px";
this.view.updateCellDOM(_1661,_165d,null,r,c,{skipVerticalAlign:1});
return _1661.scrollHeight;
};
editgrid.sheet.Pane.prototype.getTextHeight2=function(_1662,r,c,width){
var _1666=this.tmpCell;
_1666.style.width=width+"px";
this.view.updateCellDOM(_1666,_1662,null,r,c,{skipVerticalAlign:1});
_1666.style.height="auto";
return _1666.scrollHeight;
};
editgrid.sheet.Pane.prototype.getTextWidth2=function(_1667,r,c,_166a){
var _166b=this.tmpCell;
_166b.style.height=_166a+"px";
this.view.updateCellDOM(_166b,_1667,null,r,c,{skipVerticalAlign:1});
_166b.style.width="auto";
_166b.style.overflow="visible";
return _166b.scrollWidth;
};
editgrid.sheet.Pane.prototype.getBorderSize=function(_166c,r,c,width){
return this.tmpCell.offsetHeight-this.tmpCell.clientHeight;
};
editgrid.sheet.Pane.prototype.relocateCurBoxBy=function(_1670,_1671,force){
var range=this.cursor;
var box=this.cursor!=this.curBox?this.curBox:this.focusBox;
var _1675={col:box.walk.col,row:box.walk.row};
var _1676=this._cellWalk(_1675,_1670,_1671,null,false);
this.curBox.setWalkPos(_1676.row,_1676.col);
var merge;
if(merge=this.sheetView.sheet.mergeHasCell(_1676.row,_1676.col)){
this.relocateCurBox(merge.rowFr,merge.colFr,merge.rowTo,merge.colTo,force);
}else{
this.relocateCurBox(_1676.row,_1676.col,null,null,force);
}
};
editgrid.sheet.Pane.prototype.redrawFocusBox=function(){
var box=this.focusBox;
var merge;
if(merge=this.sheetView.sheet.mergeHasCell(box.walk.row,box.walk.col)){
this.focusBox.set(merge.rowFr,merge.colFr,merge.rowTo,merge.colTo);
}else{
this.focusBox.set(box.walk.row,box.walk.col,null,null);
}
this.view.rangeBoxRedraw(this.focusBox);
};
editgrid.sheet.Pane.prototype.relocateFocusBoxBy=function(_167a,_167b){
if(this.editor.isOn&&(this.curBox==this.cursor)){
setTimeout(std.lang.bind(this,function(){
if(this.editor.isOn&&!this._editorAcceptRange()){
this.hideEditor();
}
this._relocateFocusBoxBy(_167a,_167b);
}),0);
}else{
this._relocateFocusBoxBy(_167a,_167b);
}
};
editgrid.sheet.Pane.prototype._relocateFocusBoxBy=function(_167c,_167d){
var range=this.cursor;
var box=this.focusBox;
var _1680={col:box.walk.col,row:box.walk.row};
var _1681=this._cellWalk(_1680,_167c,_167d,range,true);
box.setWalkPos(_1681.row,_1681.col);
var merge;
if(merge=this.sheetView.sheet.mergeHasCell(_1681.row,_1681.col)){
box.set(merge.rowFr,merge.colFr,merge.rowTo,merge.colTo);
}else{
box.set(_1681.row,_1681.col,null,null);
}
this.autoScroll(box,false);
this._restoreHiddenTextareaState(this.editor,box.rowFr,box.colFr);
this.view.rangeBoxRedraw(box);
this.view.postFocusBoxMove(box);
};
editgrid.sheet.Pane.prototype._walkRowCol=function(isRow,idx,_1685){
return isRow?this._walkRowColBounded(isRow,idx,_1685,0,65535):this._walkRowColBounded(isRow,idx,_1685,0,255);
};
editgrid.sheet.Pane.prototype._walkRowColBounded=function(isRow,idx,_1688,posFr,posTo){
var pos=idx;
if(_1688>0){
while(++pos<=posTo&&this.sheetView.isRowColHidden(isRow,pos)){
}
}else{
while(--pos>=posFr&&this.sheetView.isRowColHidden(isRow,pos)){
}
}
if(pos<posFr){
pos=posFr;
}
if(pos>posTo){
pos=posTo;
}
return this.sheetView.isRowColHidden(isRow,pos)?idx:pos;
};
editgrid.sheet.Pane.prototype._walkRowColWrapped=function(isRow,_168d,_168e,bound){
var pos={};
pos.col=_168d.col;
pos.row=_168d.row;
var dx=pos.col-bound.colFr;
var w=bound.colTo-bound.colFr+1;
var dy=pos.row-bound.rowFr;
var h=bound.rowTo-bound.rowFr+1;
var size=w*h;
var _1696=pos.row;
var _1697=pos.col;
while(1){
if(!isRow){
var next=(dx+_168e)+dy*w+size;
pos.row=bound.rowFr+Math.floor(next/w)%h;
pos.col=bound.colFr+next%w;
var _1699=this.sheetView.isRowColHidden(true,pos.row);
var _169a=this.sheetView.isRowColHidden(false,pos.col);
if(!_169a&&!_1699){
return pos;
}
}else{
var next=(dy+_168e)+dx*h+size;
pos.row=bound.rowFr+next%h;
pos.col=bound.colFr+Math.floor(next/h)%w;
var _1699=this.sheetView.isRowColHidden(true,pos.row);
var _169a=this.sheetView.isRowColHidden(false,pos.col);
if(!_169a&&!_1699){
return pos;
}
}
if(pos.row==_1696&&pos.col==_1697){
return pos;
}
dx=pos.col-bound.colFr;
dy=pos.row-bound.rowFr;
}
};
editgrid.sheet.Pane.prototype._cellWalk=function(_169b,_169c,_169d,bound,wrap){
if(bound==null){
bound=new editgrid.RangeRef(0,0,65535,255);
}
var pos={col:_169b.col,row:_169b.row};
var done=false;
while(!done){
var merge=this.sheetView.sheet.mergeHasCell(pos.row,pos.col);
if(merge){
if(_169d==MOVE_HORIZONTAL){
pos.col=(_169c<0)?merge.colFr:merge.colTo;
}else{
pos.row=(_169c<0)?merge.rowFr:merge.rowTo;
}
}
if(wrap){
pos=this._walkRowColWrapped(_169d!=MOVE_HORIZONTAL,pos,_169c,bound);
done=true;
merge=this.sheetView.sheet.mergeHasCell(pos.row,pos.col);
if(merge){
var _16a3=merge[_169c>0?"colFr":"colTo"];
var _16a4=merge[_169c>0||_169d==MOVE_HORIZONTAL?"rowFr":"rowTo"];
if(pos.col!=_16a3||pos.row!=_16a4){
done=false;
}
}
}else{
if(_169d==MOVE_HORIZONTAL){
pos.col=this._walkRowColBounded(false,pos.col,_169c,bound.colFr,bound.colTo);
}else{
pos.row=this._walkRowColBounded(true,pos.row,_169c,bound.rowFr,bound.rowTo);
}
done=true;
}
}
return pos;
};
editgrid.sheet.Pane.prototype._mergeFindContainer=function(_16a5,_16a6,_16a7,_16a8){
var _16a9=_16a7<_16a5;
var _16aa=_16a8<_16a6;
var box=new editgrid.sheet.RangeBox(_16a5,_16a6,_16a7,_16a8);
var rng=this.sheetView.sheet.mergeFindContainer(box);
if(_16a9){
return _16aa?new editgrid.sheet.RangeBox(rng.rowTo,rng.colTo,rng.rowFr,rng.colFr):new editgrid.sheet.RangeBox(rng.rowTo,rng.colFr,rng.rowFr,rng.colTo);
}else{
return _16aa?new editgrid.sheet.RangeBox(rng.rowFr,rng.colTo,rng.rowTo,rng.colFr):new editgrid.sheet.RangeBox(rng.rowFr,rng.colFr,rng.rowTo,rng.colTo);
}
};
editgrid.sheet.Pane.prototype._getMergeCellElement=function(merge){
var box=this.view.sheetView.rangeBoxes[editgrid.sheet.MergedCellBox.getName(merge.rowFr,merge.colFr,merge.rowTo,merge.colTo)];
if(box&&box.instances[this.name]){
return box.instances[this.name].element;
}
return null;
};
editgrid.sheet.Pane.prototype._getCurrPageBuffer=function(){
return this._getPageBuffer(this.sheetView);
};
editgrid.sheet.Pane.prototype._getPageBuffer=function(_16af){
var _16b0=this.pageBuffers[_16af.sheet.id];
if(!_16b0){
var _16b1,_16b2;
if(this.boundMode=="SE"||this.boundMode=="SW"){
_16b1=1;
}
if(this.boundMode=="SE"||this.boundMode=="NE"){
_16b2=1;
}
_16b0=this.pageBuffers[_16af.sheet.id]=_16af.pageManager.createPageBuffer({onLoad:std.lang.bind(this,this._onCellPageLoaded),onLoadComplete:std.lang.bind(this,this._onCellPageLoadCompleted),prebufRow:_16b1,prebufCol:_16b2,backColor:std.browser.isIEQuirksMode});
}
return _16b0;
};
editgrid.sheet.Pane.prototype._getPage=function(_16b3,idx){
return this._getPageBuffer(_16b3).findPageByIndex(idx);
};
editgrid.sheet=editgrid.sheet||{};
editgrid.sheet.View=function(_16b5){
_16b5=_16b5||{};
var _16b6={maxCol:256,maxRow:65536,nMinCol:40,nMinRow:40,cellWidth:85,cellHeight:17,rangeBoxWidthComplement:3,rangeBoxHeightComplement:3,rowColMinSize:5,rowColResizeMargin:3};
this.config=std.hash.merge(_16b6,_16b5);
this.maxWheelDeltaY=30;
this.maxWheelDeltaX=10;
var _16b7=this._createFxBarView();
this.fxBarElement=_16b7.root;
this.fxBox=_16b7.fxBox;
this.functionBar=_16b7.functionBar;
this.cursorRange=_16b7.cursorRange;
this.cursorRangeArrow=_16b7.cursorRangeArrow;
this.namedRangePopup=new editgrid.namedExpr.NamedRangePopup(this.fxBarElement,this.cursorRange,this.cursorRangeArrow,{hover:"FunctionBarArrowHover",visible:"FunctionBarArrowSelected"});
this.namedRangePopup.listPopup.listBox.maxHeight=360;
std.topic.subscribe(this.namedRangePopup,"change",std.lang.bind(this,this._onCursorRangeTextChange));
var _16b8=this._createSheetElementView();
this.sheetElement=_16b8.root;
this.sheetContainer=_16b8.sheetContainer;
this._sheetContainerOverflow=true;
this.rowHdrs=_16b8.rowHdrs;
this.colHdrs=_16b8.colHdrs;
this.selectAll=_16b8.selectAll;
this.sbElmHori=_16b8.hScrollbar;
this.sbElmVert=_16b8.vScrollbar;
this.mouseBtns=editgrid.event.mouseButtons;
this.hPaneSeparator=_16b8.hPaneSeparator;
this.vPaneSeparator=_16b8.vPaneSeparator;
this.tabPaneContainer=_16b8.tabPaneContainer;
this._focusDelegator=std.customfocus.getManager().newDelegator(this,std.lang.bind(this,this._onFocus),std.lang.bind(this,this._onBlur));
this._focusDelegator.focus();
std.event.observe(this.sheetElement,"mousedown",std.event.listener(this,this._onMouseDown));
this._docFocusListener=std.lang.bind(this,this._onFocus);
this._docBlurListener=std.lang.bind(this,this._onBlur);
std.topic.define(this,"onReady");
std.topic.define(this,"onSelectChange");
std.topic.define(this,"onSelectChanging");
std.topic.define(this,"onEditorOn");
std.topic.define(this,"onEditorOff");
std.topic.define(this,"onSheetSelect");
std.topic.define(this,"onScrollStart");
std.topic.define(this,"onScrollEnd");
std.topic.define(this,"onNavigate");
std.topic.define(this,"onEditSheetObject");
std.topic.define(this,"onEditCellComment");
this.workbook=_16b5.workbook;
this.inited=false;
this.captureEvent=true;
this.dragging=false;
this.fxMode=false;
this.verticalAlign=false;
this.sheetViews={};
this.sheetView=null;
this.showLock=!this.readOnly;
this.cellCommentTooltip={};
this.sbHori=new editgrid.Scrollbar(this.sbElmHori,editgrid.Scrollbar.TYPE_HORI);
this.sbVert=new editgrid.Scrollbar(this.sbElmVert,editgrid.Scrollbar.TYPE_VERT);
this.sbHori.handleButtonEvent=std.lang.bind(this,function(_16b9,delta){
this.sbHori.setValue(this._walkVisibleRowCol(false,_16b9,delta),this.sbVert.autoExtend);
});
this.sbVert.handleButtonEvent=std.lang.bind(this,function(_16bb,delta){
this.sbVert.setValue(this._walkVisibleRowCol(true,_16bb,delta),this.sbVert.autoExtend);
});
var _16b5={fxBox:this.fxBox,view:this,maxRow:this.config.maxRow,maxCol:this.config.maxCol,rangeBoxWidthComplement:this.config.rangeBoxWidthComplement,rangeBoxHeightComplement:this.config.rangeBoxHeightComplement};
this.viewWidth=0;
this.viewHeight=0;
this.activePanes=null;
this.allPanes={};
_16b5.element=_16b8.sheetPaneSE;
_16b5.rowHdrElement=_16b8.rowHdr2;
_16b5.colHdrElement=_16b8.colHdr2;
_16b5.sbHori=this.sbHori;
_16b5.sbVert=this.sbVert;
_16b5.name="paneSE";
_16b5.boundMode="SE";
this.paneSE=this.allPanes[_16b5.name]=new editgrid.sheet.Pane(_16b5);
this.paneSE.onVSync=std.lang.bind(this,this._onVSyncSE);
this.paneSE.onHSync=std.lang.bind(this,this._onHSyncSE);
_16b5.element=_16b8.sheetPaneNW;
_16b5.rowHdrElement=null;
_16b5.colHdrElement=null;
_16b5.sbHori=null;
_16b5.sbVert=null;
_16b5.name="paneNW";
_16b5.boundMode="NW";
this.paneNW=this.allPanes[_16b5.name]=new editgrid.sheet.Pane(_16b5);
this.paneNW.hScrollable=false;
this.paneNW.vScrollable=false;
_16b5.element=_16b8.sheetPaneNE;
_16b5.rowHdrElement=_16b8.rowHdr1;
_16b5.colHdrElement=null;
_16b5.sbHori=null;
_16b5.sbVert=null;
_16b5.name="paneNE";
_16b5.boundMode="NE";
this.paneNE=this.allPanes[_16b5.name]=new editgrid.sheet.Pane(_16b5);
this.paneNE.onHSync=std.lang.bind(this,this._onHSyncNE);
this.paneNE.vScrollable=false;
_16b5.element=_16b8.sheetPaneSW;
_16b5.rowHdrElement=null;
_16b5.colHdrElement=_16b8.colHdr1;
_16b5.sbHori=null;
_16b5.sbVert=null;
_16b5.name="paneSW";
_16b5.boundMode="SW";
this.paneSW=this.allPanes[_16b5.name]=new editgrid.sheet.Pane(_16b5);
this.paneSW.onVSync=std.lang.bind(this,this._onVSyncSW);
this.paneSW.hScrollable=false;
for(var k in this.allPanes){
std.topic.subscribe(this.allPanes[k],"onPagesReady",std.lang.bind(this,this._onPaneReady));
}
this.pane=this.paneSW;
this.resizeTooltip=std.dom.newElement("div",this.sheetContainer,{className:"Tooltip Tooltip_HdrResize"},{display:"none",position:"absolute"});
this.colResizeLine=std.dom.newElement("div",this.sheetContainer,{className:"colResizeLine"},{display:"none"});
this.rowResizeLine=std.dom.newElement("div",this.sheetContainer,{className:"rowResizeLine"},{display:"none"});
var _16be=std.lang.bind(this,function(){
return this.sheetView.cursor.rowFr;
});
var _16bf=std.lang.bind(this,function(){
return this.sheetView.cursor.colFr;
});
var _16c0=function(me,isRow,_16c3){
var posFr=isRow?me.rowFr:me.colFr;
var posLB=isRow?me.rowLB:me.colLB;
var i=posFr;
if(_16c3<0){
_16c3=-_16c3;
while(_16c3>0){
if(i-1<posLB){
break;
}
_16c3-=me.sheetView.getRowColSize(isRow,i--);
}
}
return i;
};
this.rowHdr1=new editgrid.sheet.Header(this.config,this.paneNE.rowHdrElement,std.lang.bind(this.paneNE,function(){
return this.rowHdrCells;
}),std.lang.bind(this.paneNE,function(){
return this._visibleRowYs;
}),std.lang.bind(this.paneNE,function(){
return this._visibleRowHs;
}),this.rowResizeLine,this.resizeTooltip,_16be,std.lang.bind(this.paneNE,function(_16c7){
return _16c0(this,true,_16c7);
}));
this.rowHdr2=new editgrid.sheet.Header(this.config,this.paneSE.rowHdrElement,std.lang.bind(this.paneSE,function(){
return this.rowHdrCells;
}),std.lang.bind(this.paneSE,function(){
return this._visibleRowYs;
}),std.lang.bind(this.paneSE,function(){
return this._visibleRowHs;
}),this.rowResizeLine,this.resizeTooltip,_16be,std.lang.bind(this.paneSE,function(_16c8){
return _16c0(this,true,_16c8);
}));
this.colHdr1=new editgrid.sheet.Header(this.config,this.paneSW.colHdrElement,std.lang.bind(this.paneSW,function(){
return this.colHdrCells;
}),std.lang.bind(this.paneSW,function(){
return this._visibleColXs;
}),std.lang.bind(this.paneSW,function(){
return this._visibleColWs;
}),this.colResizeLine,this.resizeTooltip,_16bf,std.lang.bind(this.paneSW,function(_16c9){
return _16c0(this,false,_16c9);
}),true);
this.colHdr2=new editgrid.sheet.Header(this.config,this.paneSE.colHdrElement,std.lang.bind(this.paneSE,function(){
return this.colHdrCells;
}),std.lang.bind(this.paneSE,function(){
return this._visibleColXs;
}),std.lang.bind(this.paneSE,function(){
return this._visibleColWs;
}),this.colResizeLine,this.resizeTooltip,_16bf,std.lang.bind(this.paneSE,function(_16ca){
return _16c0(this,false,_16ca);
}),true);
this.rowHdr1.onResize=this.rowHdr2.onResize=this.onRowResize;
this.rowHdr1.onResizeContext=this.rowHdr2.onResizeContext=this;
this.colHdr1.onResize=this.colHdr2.onResize=this.onColResize;
this.colHdr1.onResizeContext=this.colHdr2.onResizeContext=this;
this.rowHdr1.onSelect=this.rowHdr2.onSelect=this.onRowSelect;
this.rowHdr1.onSelectContext=this.rowHdr2.onSelectContext=this;
this.colHdr1.onSelect=this.colHdr2.onSelect=this.onColSelect;
this.colHdr1.onSelectContext=this.colHdr2.onSelectContext=this;
this.rowHdr1.onBeforeSelect=this.rowHdr2.onBeforeSelect=this.onBeforeRowColSelect;
this.rowHdr1.onBeforeSelectContext=this.rowHdr2.onBeforeSelectContext=this;
this.colHdr1.onBeforeSelect=this.colHdr2.onBeforeSelect=this.onBeforeRowColSelect;
this.colHdr1.onBeforeSelectContext=this.colHdr2.onBeforeSelectContext=this;
this.rowHdr1.onAfterSelect=this.rowHdr2.onAfterSelect=this.onAfterRowColSelect;
this.rowHdr1.onAfterSelectContext=this.rowHdr2.onAfterSelectContext=this;
this.colHdr1.onAfterSelect=this.colHdr2.onAfterSelect=this.onAfterRowColSelect;
this.colHdr1.onAfterSelectContext=this.colHdr2.onAfterSelectContext=this;
this.rowHdr1.onResizeHandleDblClick=this.rowHdr2.onResizeHandleDblClick=this.onHeaderResizeHandleDblClick;
this.colHdr1.onResizeHandleDblClick=this.colHdr2.onResizeHandleDblClick=this.onHeaderResizeHandleDblClick;
this.rowHdr1.onResizeHandleDblClickContext=this.rowHdr2.onResizeHandleDblClickContext=this;
this.colHdr1.onResizeHandleDblClickContext=this.colHdr2.onResizeHandleDblClickContext=this;
std.event.observe(this.selectAll,"click",std.event.listener(this,function(e){
this.pane.curBoxSet(null,null,null,null,false,true);
}));
this.tbItems=null;
std.topic.subscribe(this.workbook,"onSheetObjectAdd",std.lang.bind(this,this.objectAdd));
std.topic.subscribe(this.workbook,"onSheetObjectDel",std.lang.bind(this,this.objectDel));
std.topic.subscribe(this.workbook,"onSheetObjectUpdate",std.lang.bind(this,this.objectUpdate));
std.topic.subscribe(this.workbook,"onSheetObjectRebounds",std.lang.bind(this,this.objectSetBounds));
std.topic.subscribe(this.workbook,"onFilterQueryMatchesResult",std.lang.bind(this,this._onFilterFieldQueryMatchesResult));
std.topic.subscribe(this.workbook,"onFilterQueryRowsResult",std.lang.bind(this,this._onFilterFieldQueryRowsResult));
this.onFilterFieldInitPopup=std.lang.bind(this,this._onFilterFieldInitPopup);
std.topic.subscribe(this.sbHori,"onScrollStart",std.lang.bind(this,function(){
std.topic.publish(this,"onScrollStart");
}));
std.topic.subscribe(this.sbVert,"onScrollStart",std.lang.bind(this,function(){
std.topic.publish(this,"onScrollStart");
}));
std.topic.subscribe(this.sbHori,"onScrollEnd",std.lang.bind(this,function(){
std.topic.publish(this,"onScrollEnd");
}));
std.topic.subscribe(this.sbVert,"onScrollEnd",std.lang.bind(this,function(){
std.topic.publish(this,"onScrollEnd");
}));
std.event.observe(window,"focus",std.event.listener(this,this._onWindowFocus));
};
editgrid.sheet.View.prototype.publishOnEditCellComment=function(row,col){
std.topic.publish(this,"onEditCellComment",row,col);
};
editgrid.sheet.View.prototype.setContextMenu=function(_16ce){
this._contextMenu=_16ce;
_16ce.addOwner(this,this.sheetContainer);
_16ce.addOwner(this,this.paneNE.rowHdrElement,{noHoriAlign:true});
_16ce.addOwner(this,this.paneSE.rowHdrElement,{noHoriAlign:true});
_16ce.addOwner(this,this.paneSW.colHdrElement,{noVertAlign:true});
_16ce.addOwner(this,this.paneSE.colHdrElement,{noVertAlign:true});
};
editgrid.sheet.View.prototype._createFxBarView=function(){
var nodes={};
var _16d0=new std.dom.Builder();
nodes.root=_16d0.push("table",{className:"FunctionBar",cellPadding:0,cellSpacing:0,border:0},{borderCollapse:"separate"});
_16d0.push("tbody");
_16d0.push("tr");
_16d0.push("td",{className:"FunctionBarRange"});
nodes.cursorRange=_16d0.append("input",{type:"text",value:"",name:"range"});
_16d0.pop();
_16d0.append("td",{className:"FunctionBarSep"});
_16d0.push("td",{className:"FunctionBarSlot"});
nodes.cursorRangeArrow=_16d0.append("div",{className:"FunctionBarArrow"});
_16d0.pop();
nodes.functionBar=_16d0.append("td",{className:"FunctionBarIcons"});
_16d0.append("td",{className:"FunctionBarSep"});
_16d0.push("td",{className:"FunctionBarInput"});
nodes.fxBox=_16d0.append("input",{type:"text",value:""});
_16d0.pop();
std.event.observe(nodes.cursorRange,"focus",std.lang.bind(this,this.blur));
return nodes;
};
editgrid.sheet.View.prototype._createSheetElementView=function(){
var nodes={};
var _16d2=new std.dom.Builder();
nodes.root=_16d2.push("table",{className:"sheetView",cellPadding:0,cellSpacing:0});
if(std.browser.isIE){
nodes.root.style.position="relative";
}
_16d2.push("colgroup");
_16d2.append("col",{className:"col1"});
_16d2.append("col",{className:"col2"});
_16d2.append("col",{className:"col3"});
_16d2.pop();
_16d2.push("tbody");
_16d2.push("tr",{className:"colHdr"});
nodes.selectAll=_16d2.append("td",{className:"col1"});
nodes.selectAll.appendChild(std.dom.newText(" "));
_16d2.push("td",{className:"colHdr col2"});
nodes.colHdrs=_16d2.push("div",{className:"colHdrs"});
nodes.colHdr1=_16d2.append("div",{className:"colHdr"});
nodes.colHdr2=_16d2.append("div",{className:"colHdr"});
_16d2.pop();
_16d2.pop();
_16d2.append("td",{className:"col3"}).appendChild(std.dom.newText(" "));
_16d2.pop();
_16d2.push("tr");
_16d2.push("td",{className:"rowHdr col1"});
nodes.rowHdrs=_16d2.push("div",{className:"rowHdrs"});
nodes.rowHdr1=_16d2.append("div",{className:"rowHdr"});
nodes.rowHdr2=_16d2.append("div",{className:"rowHdr"});
_16d2.pop();
_16d2.pop();
_16d2.push("td",{className:"col2",vAlign:"top"});
var _16d3="sheetContainer ";
_16d3+=this._cellOverflowClassName();
nodes.sheetContainer=_16d2.push("div",{className:_16d3});
nodes.sheetPaneSE=_16d2.append("div",{className:"sheetPane"});
nodes.sheetPaneNW=_16d2.append("div",{className:"sheetPane"});
nodes.sheetPaneNE=_16d2.append("div",{className:"sheetPane"});
nodes.sheetPaneSW=_16d2.append("div",{className:"sheetPane"});
nodes.hPaneSeparator=_16d2.append("div",{className:"hPaneSeparator"});
nodes.vPaneSeparator=_16d2.append("div",{className:"vPaneSeparator"});
_16d2.pop();
_16d2.pop();
_16d2.push("td",{className:"col3",vAlign:"top"});
nodes.vScrollbar=_16d2.append("div",{className:"vScrollbar"});
_16d2.pop();
_16d2.pop();
_16d2.push("tr");
_16d2.push("td",{className:"col2",colSpan:2},{verticalAlign:"top",height:"17px"});
_16d2.push("div",{},{position:"relative",width:"100%"});
nodes.tabPaneContainer=_16d2.append("div",{},{position:"absolute",top:"0",left:"0",width:"60%",overflow:"hidden"});
nodes.hScrollbar=_16d2.append("div",{className:"hScrollbar"},{position:"absolute",top:"0",right:"0",width:"40%"});
_16d2.pop();
_16d2.pop();
_16d2.append("td",{className:"col1"}).appendChild(std.dom.newText(" "));
_16d2.pop();
_16d2.pop();
_16d2.pop();
var _16d4=this.config.baseUrl+"static/style/grid/img/cross.cur";
nodes.sheetPaneSE.style.cursor="url(\""+_16d4+"\")";
nodes.sheetPaneNW.style.cursor="url(\""+_16d4+"\")";
nodes.sheetPaneNE.style.cursor="url(\""+_16d4+"\")";
nodes.sheetPaneSW.style.cursor="url(\""+_16d4+"\")";
return nodes;
};
editgrid.sheet.View.prototype._onMouseDown=function(e){
this._focusDelegator.focusOnEvent();
};
editgrid.sheet.View.prototype._onWindowFocus=function(e){
if(!this.captureEvent){
return;
}
this._onViewFocus(e);
};
editgrid.sheet.View.prototype._onViewFocus=function(e){
var src=e?std.event.element(e):null;
if(src&&(src.tagName=="SELECT"||src.tagName=="INPUT"||src.tagName=="TEXTAREA")){
return;
}
for(var k in this.activePanes){
var pane=this.activePanes[k];
if(pane.hasFocus){
if(pane.editor.isOn){
return;
}
if(src&&src==pane.editor.element){
return;
}
if(!std.browser.isOpera){
setTimeout(function(){
pane.editor.selectAndFocusTunnel();
},0);
}
if(e){
std.event.vanish(e);
}
return;
}
}
};
editgrid.sheet.View.prototype.setCaptureDocumentFocus=function(bool){
if(bool){
std.customfocus.getManager().attachDocFocusListener(this._docFocusListener);
std.customfocus.getManager().attachDocBlurListener(this._docBlurListener);
}else{
std.customfocus.getManager().detachDocFocusListener(this._docFocusListener);
std.customfocus.getManager().detachDocBlurListener(this._docBlurListener);
}
};
editgrid.sheet.View.prototype.isLockable=function(){
return !this.isAnonymous&&!this.workbook.sheet.hasLockAt(this.sheetView.cursor);
};
editgrid.sheet.View.prototype.release=function(){
this.paneNW.release();
this.paneNE.release();
this.paneSW.release();
this.paneSE.release();
this.sbVert.release();
this.sbHori.release();
if(this.sheetView){
var _16dc=this.sheetView.rangeBoxes;
for(var k in _16dc){
this._rangeBoxDel(_16dc[k]);
}
var _16de=this.workbook.sheet.getSheetObjects();
for(var k in _16de){
this.objectDel(_16de[k]);
}
}
};
editgrid.sheet.View.prototype.curBoxSet=function(rowFr,colFr,rowTo,colTo,force,_16e4,_16e5){
this.pane.boxSetAndFocus(this.pane.curBox,rowFr,colFr,rowTo,colTo,force,_16e4,_16e5);
};
editgrid.sheet.View.prototype._rangeBoxDel=function(_16e6){
if(_16e6.destroy){
_16e6.destroy();
}
for(var k in this.allPanes){
var pane=this.allPanes[k];
_16e6.unrealize(pane.rangeBoxContainer,pane.name);
}
};
editgrid.sheet.View.prototype.rangeBoxAdd=function(_16e9){
var old,_16eb=this.sheetView.rangeBoxes;
if((old=_16eb[_16e9.id])){
this._rangeBoxDel(old);
}
_16eb[_16e9.id]=_16e9;
for(var k in this.allPanes){
var pane=this.allPanes[k];
_16e9.realize(pane.rangeBoxContainer,pane.name);
pane.rangeBoxRedraw(_16e9);
}
};
editgrid.sheet.View.prototype.rangeBoxDel=function(_16ee){
this._rangeBoxDel(_16ee);
delete this.sheetView.rangeBoxes[_16ee.id];
};
editgrid.sheet.View.prototype.rangeBoxDelAll=function(name){
var k,b,_16f2=this.sheetView.rangeBoxes;
for(k in _16f2){
b=_16f2[k];
if(!b.id.indexOf(name)){
this.rangeBoxDel(b);
}
}
};
editgrid.sheet.View.prototype.rangeBoxRedraw=function(box){
for(var k in this.allPanes){
this.allPanes[k].rangeBoxRedraw(box);
}
};
editgrid.sheet.View.prototype.cellAttachmentAdd=function(_16f5){
this.sheetView.cellAttachments[_16f5.className]=_16f5;
document.body.appendChild(_16f5.getRoot());
_16f5.setProperty("visible",false);
this.cellAttachmentsRedraw();
};
editgrid.sheet.View.prototype.cellAttachmentRedraw=function(_16f6){
for(var k in this.activePanes){
this.activePanes[k].cellAttachmentRedraw(_16f6);
}
};
editgrid.sheet.View.prototype.cellAttachmentsRedraw=function(){
for(var k in this.activePanes){
this.activePanes[k].cellAttachmentsRedraw();
}
};
editgrid.sheet.View.prototype.onRowResize=function(idx,size){
var _16fb=this.sheetView.cursor;
if(_16fb.isRow()&&idx>=_16fb.rowFr&&idx<=_16fb.rowTo){
this.workbook.sheet.setRowSize(_16fb.rowFr,_16fb.rowTo,size);
}else{
this.workbook.sheet.setRowSize(idx,idx,size);
}
};
editgrid.sheet.View.prototype.onColResize=function(idx,size){
var _16fe=this.sheetView.cursor;
if(_16fe.isCol()&&idx>=_16fe.colFr&&idx<=_16fe.colTo){
this.workbook.sheet.setColSize(_16fe.colFr,_16fe.colTo,size);
}else{
this.workbook.sheet.setColSize(idx,idx,size);
}
};
editgrid.sheet.View.prototype.onRowSelect=function(fr,to,_1701){
var _1702=this.sheetView.cursor;
if(!_1701||!_1702.row||fr<_1702.rowFr||to>_1702.rowTo){
this.pane.curBoxSet(fr,null,to,null,false,true);
}
};
editgrid.sheet.View.prototype.onColSelect=function(fr,to,_1705){
var _1706=this.sheetView.cursor;
if(!_1705||!_1706.col||fr<_1706.colFr||to>_1706.colTo){
this.pane.curBoxSet(null,fr,null,to,false,true);
}
};
editgrid.sheet.View.prototype.onBeforeRowColSelect=function(){
this.dragging=true;
this.pane.onSelect();
};
editgrid.sheet.View.prototype.onAfterRowColSelect=function(){
this.dragging=false;
this._fireSelectChange(this.sheetView.cursor);
};
editgrid.sheet.View.prototype.isCursorSelectedAllRows=function(){
if(this.sheetView&&this.sheetView.cursor){
var _1707=this.sheetView.cursor;
return _1707.rowFr==0&&_1707.rowTo==this.config.maxRow-1;
}else{
return false;
}
};
editgrid.sheet.View.prototype.isCursorSelectedAllCols=function(){
if(this.sheetView&&this.sheetView.cursor){
var _1708=this.sheetView.cursor;
return _1708.colFr==0&&_1708.colTo==this.config.maxCol-1;
}else{
return false;
}
};
editgrid.sheet.View.prototype.isCursorSingle=function(){
if(this.sheetView&&this.sheetView.cursor){
return this.workbook.sheet.mergeIsSingle(this.sheetView.cursor);
}else{
return true;
}
};
editgrid.sheet.View.prototype.autoFitRowSelection=function(){
var err=[];
this.autoFitHeightRange(this.sheetView.cursor,err);
if(err.length>0){
alert(err.join("\n"));
}
};
editgrid.sheet.View.prototype.autoFitColSelection=function(){
var err=[];
this.autoFitWidthRange(this.sheetView.cursor,err);
if(err.length>0){
alert(err.join("\n"));
}
};
editgrid.sheet.View.prototype.autoFitSelection=function(){
var range=this.sheetView.cursor;
var _170c=range.isCol();
var _170d=range.isRow();
var err=[];
function errHandler(s){
err[err.length]=s;
}
if(!_170c&&!_170d){
var _1710=new editgrid.RangeRef(0,range.colFr,65535,range.colTo);
var _1711=new editgrid.RangeRef(range.rowFr,0,range.rowTo,255);
this.autoFitWidthRange(_1710,err);
this.autoFitHeightRange(_1711,err);
}
if(_170c&&!_170d){
this.autoFitWidthRange(range,err);
}
if(!_170c&&_170d){
this.autoFitHeightRange(range,err);
}
if(err.length>0){
alert(err.join("\n"));
}
};
editgrid.sheet.View.prototype.onHeaderResizeHandleDblClick=function(_1712,idx){
var range=this.sheetView.cursor;
var _1715=range.isCol();
var _1716=range.isRow();
var err=[];
function errHandler(s){
err[err.length]=s;
}
if(_1712){
if(range==null||!_1715){
range=new editgrid.RangeRef(0,idx,65535,idx);
}
this.autoFitWidthRange(range,errHandler);
}else{
if(range==null||!_1716){
range=new editgrid.RangeRef(idx,0,idx,255);
}
this.autoFitHeightRange(range,errHandler);
}
if(err.length>0){
alert(err.join("\n"));
}
};
editgrid.sheet.View.prototype.autoFitWidthRange=function(range,err){
if(this.workbook.sheet.editable(range)){
this._cols={};
this.workbook.sheet.rangeForeach(range,std.lang.bind(this,this._autoResizeWidth));
for(var i=range.colFr;i<=range.colTo;i++){
if(this._cols[i]==this.workbook.sheet.getColSize(i)){
delete this._cols[i];
}
}
if(this._cols){
this.workbook.sheet.setMultiColSize(this._cols);
}
this._cols=null;
}else{
if(err){
err(loc("Columns not Resizable due to Cell/Range Locks"));
}
}
};
editgrid.sheet.View.prototype.autoFitHeightRange=function(range,err){
if(this.workbook.sheet.editable(range)){
this._rows={};
this.workbook.sheet.rangeForeach(range,std.lang.bind(this,this._autoResizeHeight));
for(var i=range.rowFr;i<=range.rowTo;i++){
if(this._rows[i]==this.workbook.sheet.getRowSize(i)){
delete this._rows[i];
}
}
if(this._rows){
this.workbook.sheet.setMultiRowSize(this._rows);
}
this._rows=null;
}else{
if(err){
err(loc("Rows not Resizable due to Cell/Range Locks"));
}
}
};
editgrid.sheet.View.prototype.setToolbarItems=function(_171f){
this.tbItems=_171f;
};
editgrid.sheet.View.prototype.updateCursorInfo=function(row,col){
this.updateCursorTextInfo(row,col);
this.updateCursorStyleInfoAsync(row,col,100);
};
editgrid.sheet.View.prototype.updateCursorTextInfo=function(row,col){
var _1724=this.workbook.sheet._getCellAndLocalChange(row,col);
this.fxBox.value=_1724?_1724.getText().replace(/\n/g,""):"";
};
editgrid.sheet.View.prototype.updateCursorStyleInfo=function(row,col){
var style,_1728,_1729,bits;
style=this.workbook.sheet.getStyle(row,col);
if(style){
bits=style.bits;
_1728=style.fontName;
_1729=style.fontSize;
}else{
bits=0;
_1728=null;
_1729=null;
}
if(this.tbItems){
this.tbItems.bold.setSelected(bits&1);
this.tbItems.italic.setSelected(bits&2);
this.tbItems.underline.setSelected(bits&4);
this.tbItems.wordwrap.setSelected(bits&32);
this.tbItems.strikethrough.setSelected(bits&64);
this.tbItems.alignleft.setSelected(((bits>>7)&7)==1);
this.tbItems.aligncenter.setSelected(((bits>>7)&7)==2);
this.tbItems.alignright.setSelected(((bits>>7)&7)==3);
this.tbItems.alignjustify.setSelected(((bits>>7)&7)==4);
this.tbItems.valigntop.setSelected(((bits>>11)&7)==1);
this.tbItems.valigncenter.setSelected(((bits>>11)&7)==2);
this.tbItems.valignbottom.setSelected(((bits>>11)&7)==3);
this.tbItems.fontface.setValue(_1728);
this.tbItems.fontsize.setValue(_1729);
}
};
editgrid.sheet.View.prototype.updateCursorStyleInfoAsync=function(row,col,_172d){
if(this._updateCursorStyleInfoTimer!=null){
clearTimeout(this._updateCursorStyleInfoTimer);
}
this._updateCursorStyleInfoTimer=std.lang.later(_172d,this,this.updateCursorStyleInfo,row,col);
};
editgrid.sheet.View.prototype.setCursorRangeText=function(text){
this.cursorRange.value=text;
};
editgrid.sheet.View.prototype._onCursorRangeTextChange=function(){
var _172f=this.cursorRange.value;
try{
this.goToCell(_172f);
}
catch(err){
var _1730=this.workbook.namedExprModel;
var sheet=this.workbook.sheet;
if(_1730.isValidNewName(0,_172f)){
var range=this.sheetView.cursor;
this.workbook.namedExprAdd(0,_172f,editgrid.escapeSheetName(sheet.name)+"!"+range.getNameAbs(),0,0);
}else{
editgrid._alert(err.message);
}
}
};
editgrid.sheet.View.prototype.updateInfo=function(range){
var name=this.workbook.namedExprModel.getNameByRange(this.workbook.sheetId,range);
if(name){
this.setCursorRangeText(name);
}else{
if(range.isSingle()){
this.setCursorRangeText(editgrid.getColName(range.colFr)+(range.rowFr+1));
}else{
var _1735=[];
if(range.rowFr!=0||range.rowTo!=this.config.maxRow-1){
_1735.push((range.rowTo-range.rowFr+1)+"R");
}
if(range.colFr!=0||range.colTo!=this.config.maxCol-1){
_1735.push((range.colTo-range.colFr+1)+"C");
}
this.setCursorRangeText(_1735.join(" X "));
}
}
};
editgrid.sheet.View.prototype.toggleFreezePanes=function(){
if(this.sheetView.rowsFreezed||this.sheetView.colsFreezed){
this._unsetFreezePanes();
}else{
this._setFreezePanes();
}
};
editgrid.sheet.View.prototype._setFreezePanes=function(){
var rowLB,colLB;
var rowFr=this.paneSE.rowFr,colFr=this.paneSE.colFr;
var rowTo=this.sheetView.cursor.rowIdx-1,colTo=this.sheetView.cursor.colIdx-1;
if(colTo<colFr&&rowTo<rowFr||colTo<colFr-1||rowTo<rowFr-1||rowTo>=this.paneSE.rowTo||colTo>=this.paneSE.colTo){
return;
}
if(colTo<colFr){
colLB=colFr;
colFr=null;
colTo=null;
}else{
colLB=colTo+1;
}
if(rowTo<rowFr){
rowLB=rowFr;
rowFr=null;
rowTo=null;
}else{
rowLB=rowTo+1;
}
this.sheetView.frozenColFr=colFr;
this.sheetView.frozenColTo=colTo;
this.sheetView.frozenRowFr=rowFr;
this.sheetView.frozenRowTo=rowTo;
this.sheetView.unfrozenRow=rowLB;
this.sheetView.unfrozenCol=colLB;
this.layout(rowFr,colFr,rowTo,colTo);
if(this.sheetView.rowsFreezed&&this.sheetView.colsFreezed){
this.paneNW.rebound();
}
if(this.sheetView.rowsFreezed){
this.paneNE.rebound();
}
if(this.sheetView.colsFreezed){
this.paneSW.rebound();
}
this.paneSE.rebound();
if(this.sheetView.rowsFreezed&&this.sheetView.colsFreezed){
this.paneNW.refreshViewport();
}
if(this.sheetView.rowsFreezed){
this.paneNE.refreshViewport();
}
if(this.sheetView.colsFreezed){
this.paneSW.refreshViewport();
}
if(!this.readOnly){
this.workbook.sheet.setFreezePanes(this.sheetView.frozenRowFr,this.sheetView.frozenColFr,this.sheetView.frozenRowTo,this.sheetView.frozenColTo);
}
};
editgrid.sheet.View.prototype._unsetFreezePanes=function(){
if(this.pane!=this.paneSE){
this.focusPane(this.paneSE);
}
var _173c=this.sheetView.rowsFreezed;
var _173d=this.sheetView.colsFreezed;
if(_173c){
this.sheetView.unfrozenRow=this.sheetView.frozenRowFr;
}
if(_173d){
this.sheetView.unfrozenCol=this.sheetView.frozenColFr;
}
this.sheetView.frozenColFr=null;
this.sheetView.frozenColTo=null;
this.sheetView.frozenRowFr=null;
this.sheetView.frozenRowTo=null;
this.layout();
if(_173c&&_173d){
this.paneNW.rebound();
}
if(_173c){
this.paneNE.rebound();
}
if(_173d){
this.paneSW.rebound();
}
this.paneSE.rebound();
if(!this.readOnly){
this.workbook.sheet.setFreezePanes(this.sheetView.frozenRowFr,this.sheetView.frozenColFr,this.sheetView.frozenRowTo,this.sheetView.frozenColTo);
}
};
editgrid.sheet.View.prototype.layout=function(_173e,_173f,_1740,_1741){
var w1,h1,w2,h2,r,c;
this.sheetView.rowsFreezed=_173e!=null;
this.sheetView.colsFreezed=_173f!=null;
this.activePanes={};
w1=0;
h1=0;
w2=this.viewWidth;
h2=this.viewHeight;
if(this.sheetView.rowsFreezed){
h1+=this.sheetView.getRowColsSize(true,_173e,_1740);
if((h2-=h1)<0){
h2=0;
}
}
if(this.sheetView.colsFreezed){
w1+=this.sheetView.getRowColsSize(false,_173f,_1741);
if((w2-=w1)<0){
w2=0;
}
}
var sw=w1<this.viewWidth;
var sh=h1<this.viewHeight;
if(this.sheetView.rowsFreezed&&this.sheetView.colsFreezed){
(this.activePanes.NW=this.paneNW).show(0,0,sw?w1:this.viewWidth,sh?h1:this.viewHeight);
}else{
this.paneNW.hide();
}
if(this.sheetView.rowsFreezed){
(this.activePanes.NE=this.paneNE).show(w1,0,w2,sh?h1:this.viewHeight);
}else{
this.paneNE.hide();
}
if(this.sheetView.colsFreezed){
(this.activePanes.SW=this.paneSW).show(0,h1,sw?w1:this.viewWidth,h2);
}else{
this.paneSW.hide();
}
(this.activePanes.SE=this.paneSE).show(w1,h1,w2,h2);
if(this.sheetView.rowsFreezed){
this.hPaneSeparator.style.top=this.paneSE.element.style.top;
this.hPaneSeparator.style.display="";
}else{
this.hPaneSeparator.style.display="none";
}
if(this.sheetView.colsFreezed){
this.vPaneSeparator.style.left=this.paneSE.element.style.left;
this.vPaneSeparator.style.display="";
}else{
this.vPaneSeparator.style.display="none";
}
};
editgrid.sheet.View.prototype.focusPane=function(pane){
this.pane.blur();
pane.focus();
this.pane=pane;
};
editgrid.sheet.View.prototype._paneAt=function(_174b,_174c){
if(this.sheetView.rowsFreezed||this.sheetView.colsFreezed){
var pane;
var top=_174b<=this.sheetView.frozenRowTo;
var left=_174c<=this.sheetView.frozenColTo;
if(this.sheetView.rowsFreezed){
if(this.sheetView.colsFreezed){
pane=top?(left?this.paneNW:this.paneNE):(left?this.paneSW:this.paneSE);
}else{
pane=top?this.paneNE:this.paneSE;
}
}else{
pane=left?this.paneSW:this.paneSE;
}
return pane;
}
return this.paneSE;
};
editgrid.sheet.View.prototype.preCursorMove=function(_1750){
if(this.sheetView.rowsFreezed||this.sheetView.colsFreezed){
var pane=this._paneAt(_1750.rowIdx,_1750.colIdx);
if(pane.visible&&pane!=this.pane){
this.focusPane(pane);
return true;
}
}
return false;
};
editgrid.sheet.View.prototype.postCursorMove=function(_1752){
for(var k in this.activePanes){
this.activePanes[k].headerHighlight(_1752.rowFr,_1752.colFr,_1752.rowTo,_1752.colTo);
}
var _1754=(_1752.rowFr==0&&_1752.colFr==0&&_1752.rowTo==65535&&_1752.colTo==255)?"selectAll col1":"col1";
if(_1754!=this._selectAllClassName){
this.selectAll.className=this._selectAllClassName=_1754;
}
var sheet=this.workbook.sheet;
var _1756=sheet.mergeGetActualRange(_1752);
this.updateInfo(_1756);
this.postFocusBoxMove(_1752.focusBox);
std.topic.publish(this,"onSelectChanging",sheet,_1756,new editgrid.CellRef(_1752.rowIdx,_1752.colIdx));
if(!this.dragging){
this._fireSelectChange(_1752);
}
};
editgrid.sheet.View.prototype._onSelectChange=function(_1757){
var _1758=_1757.isCol();
var _1759=_1757.isRow();
this.tbItems.mergecells.setSelected(this.workbook.sheet.mergeHasIntersection(_1757));
if(_1758!=this._isColSelect){
this.tbItems.insertrow.redraw();
this.tbItems.deleterow.redraw();
this._isColSelect=_1758;
}
if(_1759!=this._isRowSelect){
this.tbItems.insertcol.redraw();
this.tbItems.deletecol.redraw();
this._isRowSelect=_1759;
}
};
editgrid.sheet.View.prototype._fireSelectChange=function(_175a){
var sheet=this.workbook.sheet;
this._onSelectChange(_175a);
std.topic.publish(this,"onSelectChange",sheet,sheet.mergeGetActualRange(_175a),new editgrid.CellRef(_175a.rowIdx,_175a.colIdx));
};
editgrid.sheet.View.prototype.postFocusBoxMove=function(_175c){
if(this._lastFocusRow!==_175c.rowFr||this._lastFocusCol!==_175c.colFr){
this._lastFocusRow=_175c.rowFr;
this._lastFocusCol=_175c.colFr;
this.updateCursorInfo(_175c.rowFr,_175c.colFr);
this.cellAttachmentsRedraw();
}
};
editgrid.sheet.View.prototype._preScrollPage=function(isRow,_175e){
var r=this.pane.curBox.rowIdx;
var c=this.pane.curBox.colIdx;
var name=this.pane.name;
if(isRow){
if(name.indexOf("N")!=-1){
var _1762=this[name.replace("N","S")];
if(_1762.rowFr>_1762.rowLB||_175e){
this.pane.relocateCurBox(_1762.rowFr,c,null,null);
}else{
return false;
}
}
}else{
if(name.indexOf("W")!=-1){
var _1762=this[name.replace("W","E")];
if(_1762.colFr>_1762.colLB||_175e){
this.pane.relocateCurBox(r,_1762.colFr,null,null);
}else{
return false;
}
}
}
return true;
};
editgrid.sheet.View.prototype.scrollPageBackward=function(isRow){
if(this._preScrollPage(isRow,false)){
var delta=this.pane.scrollPageBackward(isRow);
this._scrollPageDone(isRow,delta,false);
}
};
editgrid.sheet.View.prototype.scrollPageForward=function(isRow){
if(this._preScrollPage(isRow,true)){
var delta=this.pane.scrollPageForward(isRow);
this._scrollPageDone(isRow,delta,true);
}
};
editgrid.sheet.View.prototype._scrollPageDone=function(isRow,delta,_1769){
var pane=this.pane;
if(isRow&&pane.curBox.isCol()||!isRow&&pane.curBox.isRow()){
return;
}
var _176b=pane.autoScrollEnabled;
pane.autoScrollEnabled=false;
var _176c;
if(isRow){
if(delta!=null){
_176c=pane.curBox.rowIdx+delta;
}else{
_176c=_1769?65535:0;
}
if(_176c>pane.rowTo){
_176c=pane.rowTo;
}
pane.relocateCurBox(_176c,pane.curBox.colIdx,null,null);
}else{
if(delta!=null){
_176c=pane.curBox.colIdx+delta;
}else{
_176c=_1769?255:0;
}
if(_176c>pane.colTo){
_176c=pane.colTo;
}
pane.relocateCurBox(pane.curBox.rowIdx,_176c,null,null);
}
pane.autoScrollEnabled=_176b;
};
editgrid.sheet.View.prototype.setSize=function(w,h){
var width,_1770;
this.viewWidth=w-this.selectAll.offsetWidth-this.sbElmVert.offsetWidth;
this.viewHeight=h-this.selectAll.offsetHeight-this.sbElmHori.offsetHeight+1;
if(this.viewHeight<0){
this.viewHeight=0;
}
width=this.viewWidth+"px";
_1770=this.viewHeight+"px";
this.rowHdrs.style.height=_1770;
this.sbElmVert.style.height=_1770;
this.sheetContainer.style.height=_1770;
this.sbVert.onResize();
this.sbHori.onResize();
if(this.inited){
this.layout(this.sheetView.frozenRowFr,this.sheetView.frozenColFr,this.sheetView.frozenRowTo,this.sheetView.frozenColTo);
for(var k in this.activePanes){
this.activePanes[k].onResize();
}
}
};
editgrid.sheet.View.prototype.setActiveSheet=function(_1772){
var sheet=this.workbook.getSheetById(_1772);
if(sheet==null){
null.assert;
}
if(this.sheetView&&this.sheetView.sheet.id==_1772){
return;
}
if(this.pane.editor.isOn){
this.pane.hideEditor();
}
if(this.sheetView){
this.sheetView.pane=this.pane;
this.sheetView.unfrozenRow=this.paneSE.rowFr;
this.sheetView.unfrozenCol=this.paneSE.colFr;
if(this.sbVert){
this.sheetView.vScrollMax=this.sbVert.getMaximum();
}
if(this.sbHori){
this.sheetView.hScrollMax=this.sbHori.getMaximum();
}
var _1774=this.sheetView.rangeBoxes;
for(var k in _1774){
var box=_1774[k];
if(box.isVolatile){
this.rangeBoxDel(box);
}
}
for(var k in this.allPanes){
this.allPanes[k].sheetDeselect();
}
}
this.workbook.setActiveSheet(_1772);
this.sheetView=this.getSheetView(sheet);
this.sheetView.pane=this._paneAt(this.sheetView.cursor.rowIdx,this.sheetView.cursor.colIdx);
if(sheet.isLinkedSheet()||this.bookReadOnly){
this.setReadOnly();
}else{
this.setWritable();
}
if(this.sheetView.gridLinesVisible){
std.css.includeClass(this.sheetContainer,"ShowGridLine");
}else{
std.css.excludeClass(this.sheetContainer,"ShowGridLine");
}
this.layout(this.sheetView.frozenRowFr,this.sheetView.frozenColFr,this.sheetView.frozenRowTo,this.sheetView.frozenColTo);
for(var k in this.allPanes){
this.allPanes[k].sheetSelect(this.sheetView);
}
this.pane=this.sheetView.pane;
this.pane.focus();
var _1777=this.sheetView.rangeBoxes.cursor;
this.updateInfo(_1777);
this.updateCursorInfo(_1777.rowIdx,_1777.colIdx);
this.locksRedraw();
this.cellAttachmentsRedraw();
this.filtersRedraw();
this.workbook.sheet.mergeForeach(std.lang.bind(this,function(range){
this.onMergeCellAdd(this.workbook.sheet,range);
}));
if(this.sheetView.vScrollMax==null){
this.sheetView.vScrollMax=this.workbook.sheet.getRowMax();
}
if(this.sheetView.hScrollMax==null){
this.sheetView.hScrollMax=this.workbook.sheet.getColMax();
}
this.onVExtend(this.sheetView.vScrollMax);
this.onHExtend(this.sheetView.hScrollMax);
this.namedRangePopup.setActiveSheet(_1772);
std.topic.publish(this,"onSheetSelect",_1772);
};
editgrid.sheet.View.prototype.getActiveSheet=function(){
return grid.workbook.getSheetById(this.sheetView.sheet.id);
};
editgrid.sheet.View.prototype.getSheetView=function(sheet){
var _177a=this.sheetViews[sheet.id];
if(!_177a){
var _177b=sheet.frozenRowFr!=null;
var _177c=new editgrid.sheet.Cursor(this.readOnly?{readOnly:true}:{});
_177c.focusBox=new editgrid.sheet.FocusBox();
var _177d=[new editgrid.sheet.CrosshairBox("N"),new editgrid.sheet.CrosshairBox("E"),new editgrid.sheet.CrosshairBox("S"),new editgrid.sheet.CrosshairBox("W")];
_177a=this.sheetViews[sheet.id]=new editgrid.sheet.SheetView(sheet);
_177a.pane=this["pane"+(sheet.frozenRowFr>0?"N":"S")+(sheet.frozenColFr>0?"W":"E")];
_177a.cursor=_177c;
_177a.focusBox=_177c.focusBox;
_177a.crosshair=_177d;
_177a.namedRangeOriginBox=new editgrid.sheet.NamedRangeOriginBox();
_177a.selector=new editgrid.sheet.Selector();
_177a.filler=new editgrid.sheet.Filler();
_177a.copy=new editgrid.sheet.CopyBox();
_177a.rangeBoxes={cursor:_177c,focusBox:_177c.focusBox};
_177a.cellAttachments={};
std.topic.subscribe(_177a,"onRangeBoxAdd",std.lang.bind(this,this._onSheetViewRangeBoxAdd));
std.topic.subscribe(_177a,"onRangeBoxDel",std.lang.bind(this,this._onSheetViewRangeBoxDel));
std.topic.subscribe(_177a,"onMultiRowColVisibilityChange",std.lang.bind(this,this.onMultiRowColVisibilityChange));
}
return _177a;
};
editgrid.sheet.View.prototype._walkVisibleRowCol=function(isRow,pos,steps){
var hits=0;
var sign,limit;
var _1784=this.sheetView;
if(steps==0){
return pos;
}
if(steps>0){
sign=1;
limit=isRow?65535:255;
}else{
sign=-1;
limit=0;
steps=-steps;
}
while(hits<steps&&pos*sign<limit){
pos+=sign;
if(!_1784.isRowColHidden(isRow,pos)){
hits++;
}
}
return pos;
};
editgrid.sheet.View.prototype.onMouseWheel=function(e){
if(!this.captureEvent){
return;
}
std.event.vanish(e);
var _1786=0;
var _1787=0;
if(e.wheelDeltaX||e.wheelDeltaY){
if(e.wheelDeltaX){
_1787=e.wheelDeltaX/720;
}
if(e.wheelDeltaY){
var signY=e.wheelDeltaY>0?1:-1;
_1786=Math.round((e.wheelDeltaY+signY*121)/240);
}
}else{
if(e.wheelDelta){
_1786=e.wheelDelta/120;
if(window.opera&&std.browser.major<9.2){
_1786=-_1786;
}
}else{
if(e.detail){
_1786=-e.detail/3;
}
}
}
_1786*=2;
_1787*=2;
if(_1786>this.maxWheelDeltaY){
_1786=this.maxWheelDeltaY;
}
if(_1786<-this.maxWheelDeltaY){
_1786=-this.maxWheelDeltaY;
}
if(_1787>this.maxWheelDeltaX){
_1787=this.maxWheelDeltaX;
}
if(_1787<-this.maxWheelDeltaX){
_1787=-this.maxWheelDeltaX;
}
if(_1786){
this.sbVert.setValue(this._walkVisibleRowCol(true,this.sbVert.getValue(),-_1786),true);
}
if(_1787){
this.sbHori.setValue(this._walkVisibleRowCol(false,this.sbHori.getValue(),-_1787),true);
}
};
editgrid.sheet.View.prototype.onMultiRowColVisibilityChange=function(sheet,isRow,_178b,_178c,_178d,_178e){
var _178f=[];
var _1790=[];
var _1791=[];
for(var i=0;i<_178d.length;++i){
var frIdx=_178b[i];
var toIdx=_178c[i];
var _1795=_178d[i];
if(_1795){
_178f.push(frIdx);
_1790.push(toIdx);
_1791.push(0);
}else{
var size=this.sheetView.getRowColSize(isRow,frIdx);
var from=frIdx;
for(var j=frIdx+1;j<=toIdx;++j){
var _1799=this.sheetView.getRowColSize(isRow,j);
if(_1799!=size){
_178f.push(from);
_1790.push(j);
_1791.push(size);
size=_1799;
from=j;
}
}
if(frIdx==toIdx||from!=toIdx){
_178f.push(from);
_1790.push(toIdx);
_1791.push(size);
}
}
}
this.onMultiRowColUpdate(sheet,isRow,_178f,_1790,_1791,_178e);
};
editgrid.sheet.View.prototype.onMultiRowColUpdate=function(sheet,isRow,_179c,_179d,_179e,_179f){
if(sheet==this.workbook.sheet){
this.layout(this.sheetView.frozenRowFr,this.sheetView.frozenColFr,this.sheetView.frozenRowTo,this.sheetView.frozenColTo);
}
for(var k in this.allPanes){
this.allPanes[k].onMultiRowColResize(sheet,isRow,_179c,_179d,_179e);
}
if(!_179f){
for(var k in this.allPanes){
this.allPanes[k]._updateViewport(0,0);
}
for(var k in this.allPanes){
this.allPanes[k].refreshViewport();
}
}
};
editgrid.sheet.View.prototype.onNamedExprChange=function(){
var _17a1=this.sheetView.cursor;
var _17a2=this.workbook.sheet.mergeGetActualRange(_17a1);
this.updateInfo(_17a2);
};
editgrid.sheet.View.prototype.selCheck=function(){
if(!this.workbook.sheet.editable(this.sheetView.cursor.getRange())){
alert(loc("You are not able to modify the currently selected region as it has been locked by another user."));
return true;
}
return false;
};
editgrid.sheet.View.prototype.insertFunction=function(pre,pos){
return this.pane.insertFunction(pre,pos);
};
editgrid.sheet.View.prototype.sum=function(){
this.pane.sum();
};
editgrid.sheet.View.prototype.insertCurrentDate=function(){
this.pane.insertCurrentDate();
};
editgrid.sheet.View.prototype.insertCurrentTime=function(){
this.pane.insertCurrentTime();
};
editgrid.sheet.View.prototype.insertCurrentDateTime=function(){
this.pane.insertCurrentDateTime();
};
editgrid.sheet.View.prototype.graphInsert=function(type,props,_17a7){
var ac=this.pane.initAnchor(this.pane.width>>1,this.pane.height>>1,200,200,20,20);
this.workbook.graphInsert(type,props,_17a7,ac.rowFr,ac.colFr,ac.rowTo,ac.colTo,ac.rowFrOffset,ac.colFrOffset,ac.rowToOffset,ac.colToOffset);
};
editgrid.sheet.View.prototype.remoteImageInsert=function(url,_17aa){
var ac=this.pane.initAnchor(640,480,320,240,20,20);
this.workbook.remoteImageInsert(url,_17aa,ac.rowFr,ac.colFr,ac.rowTo,ac.colTo,ac.rowFrOffset,ac.colFrOffset,ac.rowToOffset,ac.colToOffset);
};
editgrid.sheet.View.prototype.remoteImageUpdate=function(so,url,_17ae){
this.workbook.remoteImageUpdate(so,url,_17ae);
};
editgrid.sheet.View.prototype.customSheetObjectInsert=function(_17af,attr,prop){
attr.width=attr.width?attr.width:640;
attr.height=attr.height?attr.height:480;
var ac=this.pane.initAnchor(attr.width+2,attr.height+27,0,0,0,0);
this.workbook.customSheetObjectInsert(_17af,prop,ac.rowFr,ac.colFr,ac.rowTo,ac.colTo,ac.rowFrOffset,ac.colFrOffset,ac.rowToOffset,ac.colToOffset);
};
editgrid.sheet.View.prototype.customCellObjectInsert=function(_17b3,cell,prop){
this.workbook.customCellObjectInsert(_17b3,{},prop,cell.row,cell.col,cell.row+1,cell.col+1,0,0,0,0);
};
editgrid.sheet.View.prototype.selSetBits=function(mask,on){
if(this.selCheck()){
return;
}
var _17b8=this.sheetView.cursor;
var bits=this.workbook.sheet.getStyle(_17b8.rowIdx,_17b8.colIdx).bits;
if(on==undefined){
on=!(bits&mask);
}
if(on){
bits|=mask;
}else{
bits&=~mask;
}
this.sheetView.setRangeBits(_17b8.getRange(),mask,bits);
return bits;
};
editgrid.sheet.View.prototype.selToggleBold=function(){
this.selSetBits(1);
};
editgrid.sheet.View.prototype.selToggleItalic=function(){
this.selSetBits(2);
};
editgrid.sheet.View.prototype.selToggleUnderline=function(){
this.selSetBits(4);
};
editgrid.sheet.View.prototype.selToggleStrikethrough=function(){
this.selSetBits(64);
};
editgrid.sheet.View.prototype._autoResizeCheck=function(_17ba,r,c){
if(this.workbook.sheet.mergeHasCell(r,c)){
return false;
}
var text="";
if(_17ba){
text=this.fxMode?_17ba.text:_17ba.rtext;
}
if(text==""){
return false;
}
return true;
};
editgrid.sheet.View.prototype._autoResize=function(_17be,r,c){
if(!this._autoResizeCheck(_17be,r,c)){
return;
}
var width=this.workbook.sheet.getColSize(c);
var _17c2=this.workbook.sheet.getRowSize(r);
var max,_17c4,_17c5;
_17c4=this.pane.getTextHeight(_17be,r,c,width);
_17c5=_17c4+this.pane.getBorderSize();
if(_17c4>_17c2&&((max=this._rows[r])==undefined||_17c5>max)){
this._rows[r]=_17c5;
}
};
editgrid.sheet.View.prototype._autoResizeHeight=function(_17c6,r,c){
if(!this._autoResizeCheck(_17c6,r,c)){
return;
}
var _17c9=this.workbook.sheet.getRowSize(r);
var width=this.workbook.sheet.getColSize(c);
var max,_17cc,_17cd;
_17cc=this.pane.getTextHeight2(_17c6,r,c,width);
_17cd=_17cc+this.pane.getBorderSize();
if((max=this._rows[r])==undefined||_17cd>max){
this._rows[r]=_17cd;
}
};
editgrid.sheet.View.prototype._autoResizeWidth=function(_17ce,r,c){
if(!this._autoResizeCheck(_17ce,r,c)){
return;
}
var _17d1=this.workbook.sheet.getRowSize(r);
var width=this.workbook.sheet.getColSize(c);
var max,_17d4,_17d5,style;
if(_17ce){
style=this.workbook.sheet.getStyle(r,c);
}
_17d4=this.pane.getTextWidth2(_17ce,r,c,_17d1);
_17d5=_17d4+this.pane.getBorderSize();
if(style&&(style.bits&32)&&_17d5>width){
_17d5=width;
}
if((max=this._cols[c])==undefined||_17d5>max){
this._cols[c]=_17d5;
}
};
editgrid.sheet.View.prototype._adjustRowHeight=function(){
this._rows={};
this.workbook.sheet.rangeForeach(this.pane.cursor.getRange(),std.lang.bind(this,this._autoResize));
if(this._rows){
this.workbook.sheet.setMultiRowSize(this._rows);
}
this._rows=null;
};
editgrid.sheet.View.prototype.selToggleWrapText=function(){
if(this.selSetBits(32)&32){
this._adjustRowHeight();
}
};
editgrid.sheet.View.prototype._setToggleAlign=function(value,mask){
if(this.selCheck()){
return;
}
if((this.workbook.sheet.getStyle(this.sheetView.cursor.rowFr,this.sheetView.cursor.colTo).bits&mask)==value){
value=0;
}
this.sheetView.setRangeBits(this.sheetView.cursor.getRange(),mask,value);
if((value>>7&4)==4){
this._adjustRowHeight();
}
};
editgrid.sheet.View.prototype.selToggleAlign=function(value){
return this._setToggleAlign(value,7<<7);
};
editgrid.sheet.View.prototype.selToggleVerticalAlign=function(value){
return this._setToggleAlign(value,7<<11);
};
editgrid.sheet.View.prototype.selToggleMergeCells=function(value){
if(this.selCheck()){
return;
}
this.copyBoxDel();
var range=this.sheetView.cursor.getRange();
if(this.workbook.sheet.mergeGetIntersection(range).length){
this.workbook.sheet.unmergeCells(range);
}else{
if(!range.isSingle()){
this.workbook.sheet.mergeCells(range);
}
}
};
editgrid.sheet.View.prototype.selSetCellColor=function(rgb){
if(this.selCheck()){
return;
}
this.sheetView.setRangeColor(this.sheetView.cursor.getRange(),rgb);
};
editgrid.sheet.View.prototype.selSetFontColor=function(rgb){
if(this.selCheck()){
return;
}
this.sheetView.setRangeFontColor(this.sheetView.cursor.getRange(),rgb);
};
editgrid.sheet.View.prototype.selSetFont=function(font){
if(this.selCheck()){
return;
}
this.sheetView.setRangeFont(this.sheetView.cursor.getRange(),font);
this.focus();
};
editgrid.sheet.View.prototype.selSetFontSize=function(_17e0){
if(this.selCheck()){
return;
}
this.sheetView.setRangeFontSize(this.sheetView.cursor.getRange(),_17e0);
this.focus();
};
editgrid.sheet.View.prototype.selSetFormat=function(_17e1){
if(this.selCheck()){
return;
}
this.sheetView.setRangeFormat(this.sheetView.cursor.getRange(),_17e1);
};
editgrid.sheet.View.prototype.selGet=function(){
return {sheet:this.workbook.sheet,range:this.pane.cursor.getRange(),pos:new editgrid.CellRef(this.pane.cursor._rowFr,this.pane.cursor._colFr)};
};
editgrid.sheet.View.prototype.rangeCheck=function(range){
if(!this.workbook.sheet.editable(range)){
alert(loc("You are not able to modify the currently selected region as it has been locked by another user."));
return true;
}
return false;
};
editgrid.sheet.View.prototype.copyBoxSet=function(){
if(this.copyFocusedObject){
this.copyFocusedObject.onCopyBlur();
this.copyFocusedObject=null;
}
var _17e3=this.sheetView.cursor;
var copy=this.sheetView.copy;
copy.set(_17e3.rowFr,_17e3.colFr,_17e3.rowTo,_17e3.colTo);
this.rangeBoxAdd(copy);
};
editgrid.sheet.View.prototype.copyBoxDel=function(){
if(this.copyFocusedObject){
this.copyFocusedObject.onCopyBlur();
this.copyFocusedObject=null;
}
if(this.sheetView.rangeBoxes.copy){
this.rangeBoxDel(this.sheetView.copy);
}
};
editgrid.sheet.View.prototype.namedRangeOriginBoxSet=function(row,col){
var _17e7="namedRangeOriginBox";
var box=this.sheetView[_17e7];
var r=this.workbook.sheet.mergeHasCell(row,col);
if(r==null){
r={};
r.rowFr=r.rowTo=row;
r.colFr=r.colTo=col;
}
box.set(r.rowFr,r.colFr,r.rowTo,r.colTo);
this.rangeBoxAdd(box);
};
editgrid.sheet.View.prototype.namedRangeOriginBoxDel=function(){
var _17ea="namedRangeOriginBox";
if(this.sheetView.rangeBoxes[_17ea]){
this.rangeBoxDel(this.sheetView[_17ea]);
}
};
editgrid.sheet.View.prototype.crosshairSetRange=function(rowFr,colFr,rowTo,colTo){
var boxes=[[0,colFr,rowFr-1,colTo],[rowFr,0,rowTo,colFr-1],[rowTo+1,colFr,65535,colTo],[rowFr,colTo+1,rowTo,255]];
var _17f0=this.sheetView.crosshair;
for(var i=0;i<4;++i){
var box=boxes[i];
if(rowFr!=rowTo||colFr!=colTo||box[2]<box[0]||box[3]<box[1]){
this.rangeBoxDel(_17f0[i]);
}else{
if(this.sheetView.rangeBoxes[_17f0[i].id]==null){
this.rangeBoxAdd(_17f0[i]);
}
_17f0[i].set(box[0],box[1],box[2],box[3]);
this.rangeBoxRedraw(_17f0[i]);
}
}
};
editgrid.sheet.View.prototype.crosshairDel=function(){
var _17f3=this.sheetView.crosshair;
for(var i=0;i<4;++i){
this.rangeBoxDel(_17f3[i]);
}
};
editgrid.sheet.View.prototype.removeFormatPaint=function(){
if(this._formatPainter){
std.topic.unsubscribe(this,"onSelectChange",this._formatPainter);
this._formatPainter=null;
if(this.tbItems){
this.tbItems.formatpaint.setSelected(false);
}
}
};
editgrid.sheet.View.prototype.toggleFormatPaint=function(flags){
if(flags._selected){
this.copyBoxSet();
this._formatPainter=this._getFormatPainter(this.workbook.sheet,this.sheetView.cursor.getRange());
std.topic.subscribe(this,"onSelectChange",this._formatPainter);
}else{
this.removeFormatPaint();
}
};
editgrid.sheet.View.prototype._getFormatPainter=function(_17f6,_17f7){
return std.lang.bind(this,function(_17f8){
this.getSheetView(_17f8).bltFormat(_17f6,_17f7,this.sheetView.cursor.getRange());
this.removeFormatPaint();
this.copyBoxDel();
});
};
editgrid.sheet.View.prototype.fillSelectionDown=function(){
this.sheetView.fillRange(this.sheetView.cursor.getRange(),FILL_DIR_DOWN);
};
editgrid.sheet.View.prototype.fillSelectionRight=function(){
this.sheetView.fillRange(this.sheetView.cursor.getRange(),FILL_DIR_RIGHT);
};
editgrid.sheet.View.prototype.autofillSelectionDown=function(){
this.sheetView.fillRange(this.sheetView.cursor.getRange(),AUTOFILL_DIR_DOWN);
};
editgrid.sheet.View.prototype.autofillSelectionRight=function(){
this.sheetView.fillRange(this.sheetView.cursor.getRange(),AUTOFILL_DIR_RIGHT);
};
editgrid.sheet.View.prototype.insertRowBefore=function(){
var _17f9=this.sheetView.cursor;
var cnt=_17f9.rowTo-_17f9.rowFr+1;
if(this.rangeCheck(new editgrid.RangeRef(_17f9.rowFr-cnt,0,_17f9.rowFr-1,this.config.maxCol-1))){
return;
}
this.copyBoxDel();
try{
this.workbook.sheet.insertRows(_17f9.rowFr,cnt);
}
catch(e){
if(e.message==editgrid.Worksheet.ERR_INSDEL_ROWCOL_SPLIT){
alert(loc("Target region contains merged cells and cannot be splitted."));
}else{
alert(loc("Sorry, this operation is not allowed"));
}
}
};
editgrid.sheet.View.prototype.insertColBefore=function(){
var _17fb=this.sheetView.cursor;
var cnt=_17fb.colTo-_17fb.colFr+1;
if(this.rangeCheck(new editgrid.RangeRef(0,_17fb.colFr-cnt,this.config.maxRow-1,_17fb.colFr-1))){
return;
}
this.copyBoxDel();
try{
this.workbook.sheet.insertCols(_17fb.colFr,cnt);
}
catch(e){
if(e.message==editgrid.Worksheet.ERR_INSDEL_ROWCOL_SPLIT){
alert(loc("Target region contains merged cells and cannot be splitted."));
}else{
alert(loc("Sorry, this operation is not allowed"));
}
}
};
editgrid.sheet.View.prototype.deleteRow=function(){
var _17fd=this.sheetView.cursor;
if(this.rangeCheck(new editgrid.RangeRef(_17fd.rowFr,0,_17fd.rowTo,this.config.maxCol-1))){
return;
}
this.copyBoxDel();
try{
this.workbook.sheet.deleteRows(_17fd.rowFr,_17fd.rowTo-_17fd.rowFr+1);
}
catch(e){
if(e.message==editgrid.Worksheet.ERR_INSDEL_ROWCOL_SPLIT){
alert(loc("Target region contains merged cells and cannot be splitted."));
}else{
alert(loc("Sorry, this operation is not allowed"));
}
}
};
editgrid.sheet.View.prototype.deleteCol=function(){
var _17fe=this.sheetView.cursor;
if(this.rangeCheck(new editgrid.RangeRef(0,_17fe.colFr,this.config.maxRow-1,_17fe.colTo))){
return;
}
this.copyBoxDel();
try{
this.workbook.sheet.deleteCols(_17fe.colFr,_17fe.colTo-_17fe.colFr+1);
}
catch(e){
if(e.message==editgrid.Worksheet.ERR_INSDEL_ROWCOL_SPLIT){
alert(loc("Target region contains merged cells and cannot be splitted."));
}else{
alert(loc("Sorry, this operation is not allowed"));
}
}
};
editgrid.sheet.View.prototype.selSetColSize=function(){
if(this.selCheck()){
return;
}
var _17ff=this.sheetView.cursor;
var sheet=this.workbook.sheet;
var _1801="";
for(var i=_17ff.colFr;i<=_17ff.colTo;++i){
if(_1801==""){
_1801=sheet.getColSize(i);
}else{
if(_1801!=sheet.getColSize(i)){
_1801="";
break;
}
}
}
var _1803=std.lang.bind(this,function(input){
var size=parseInt(input);
if(isNaN(size)){
editgrid._alert(loc("Size must be a number"));
}else{
if(size<0){
editgrid._alert(loc("Size cannot be negative"));
}else{
if(size==0){
sheet.hideCols(_17ff.colFr,_17ff.colTo);
}else{
sheet.setColSize(_17ff.colFr,_17ff.colTo,size);
}
}
}
});
editgrid._prompt(loc("Column Width"),_1801,_1803);
};
editgrid.sheet.View.prototype.selSetRowSize=function(){
if(this.selCheck()){
return;
}
var _1806=this.sheetView.cursor;
var sheet=this.workbook.sheet;
var _1808="";
for(var i=_1806.rowFr;i<=_1806.rowTo;++i){
if(_1808==""){
_1808=sheet.getRowSize(i);
}else{
if(_1808!=sheet.getRowSize(i)){
_1808="";
break;
}
}
}
var _180a=std.lang.bind(this,function(input){
var size=parseInt(input);
if(isNaN(size)){
editgrid._alert(loc("Size must be a number"));
}else{
if(size<0){
editgrid._alert(loc("Size cannot be negative"));
}else{
if(size==0){
sheet.hideRows(_1806.rowFr,_1806.rowTo);
}else{
sheet.setRowSize(_1806.rowFr,_1806.rowTo,size);
}
}
}
});
editgrid._prompt(loc("Row Height"),_1808,_180a);
};
editgrid.sheet.View.prototype.selHideRows=function(){
if(this.selCheck()){
return;
}
var _180d=this.sheetView.cursor.getRange();
this.workbook.sheet.hideRows(_180d.rowFr,_180d.rowTo);
};
editgrid.sheet.View.prototype.selHideCols=function(){
if(this.selCheck()){
return;
}
var _180e=this.sheetView.cursor.getRange();
this.workbook.sheet.hideCols(_180e.colFr,_180e.colTo);
};
editgrid.sheet.View.prototype.selUnhideRows=function(){
if(this.selCheck()){
return;
}
var _180f=this.sheetView.cursor.getRange();
this.workbook.sheet.unhideRows(_180f.rowFr,_180f.rowTo);
};
editgrid.sheet.View.prototype.selUnhideCols=function(){
if(this.selCheck()){
return;
}
var _1810=this.sheetView.cursor.getRange();
this.workbook.sheet.unhideCols(_1810.colFr,_1810.colTo);
};
editgrid.sheet.View.prototype.selClear=function(flag){
if(this.selCheck()){
return;
}
this.copyBoxDel();
this.sheetView.rangeClear(this.sheetView.cursor.getRange(),flag);
};
editgrid.sheet.View.prototype.selClearContents=function(){
this.selClear(SSS_CLEAR_CONTENTS);
};
editgrid.sheet.View.prototype.selClearComments=function(){
this.selClear(SSS_CLEAR_COMMENTS);
};
editgrid.sheet.View.prototype.selClearFormats=function(){
this.selClear(SSS_CLEAR_FORMATS);
};
editgrid.sheet.View.prototype.selClearAll=function(){
this.selClear(SSS_CLEAR_ALL);
};
editgrid.sheet.View.prototype.prepareExternalCopyCut=function(){
this.lastCopiedText=std.lang.defaultize(this.copyAsText({warn:false}),"");
var _1812=this.pane.editor;
if(!_1812.isOn){
_1812.setText(this.lastCopiedText,true);
_1812.selectAndFocusTunnel(true);
}
};
editgrid.sheet.View.prototype.selCopy=function(){
if(this.focusedObject){
this.takeCopyFocus(this.focusedObject);
this.focusedObject.copy();
}else{
this.copyBoxSet();
this.prepareExternalCopyCut();
this.sheetView.rangeCopy(this.sheetView.cursor.getRange());
}
};
editgrid.sheet.View.prototype.selCut=function(){
if(this.focusedObject){
this.copyBoxDel();
this.focusedObject.cut();
}else{
if(this.selCheck()){
return;
}
this.prepareExternalCopyCut();
this.copyBoxDel();
this.sheetView.rangeCut(this.sheetView.cursor.getRange());
}
};
editgrid.sheet.View.prototype.expandRemoteData=function(row,col){
if(this.rangeCheck(new editgrid.RangeRef(row,col))||this.readOnly){
return;
}
this.workbook.sheet.expandRemoteData(row,col);
};
editgrid.sheet.View.prototype.selExpandRemoteData=function(){
if(this.selCheck()||this.readOnly){
return;
}
var col=this.sheetView.cursor.colFr;
var row=this.sheetView.cursor.rowFr;
this.workbook.sheet.expandRemoteData(row,col);
};
editgrid.sheet.View.prototype.selFetchOnceRemoteData=function(){
if(this.selCheck()||this.readOnly){
return;
}
this.workbook.sheet.fetchOnceRemoteData(this.sheetView.cursor.getRange());
};
editgrid.sheet.View.prototype.paste=function(flags){
if(!this.readOnly){
this.workbook.sheet.paste(this.sheetView.cursor.getRange(),flags);
}
};
editgrid.sheet.View.prototype.retryErrorData=function(){
this.workbook.retryErrorData();
};
editgrid.sheet.View.prototype.recalc=function(){
this.workbook.recalc();
};
editgrid.sheet.View.prototype.undo=function(){
if(!this.workbook.undoRedo.isUndoDisabled()){
this.workbook.undo();
}
};
editgrid.sheet.View.prototype.redo=function(){
if(!this.workbook.undoRedo.isRedoDisabled()){
this.workbook.redo();
}
};
editgrid.sheet.View.prototype.selLock=function(){
if(!this.isLockable()){
return;
}
if(!this.workbook.sheet.lockable(this.sheetView.cursor.getRange())){
alert(loc("You are not able to lock the currently selected region as parts of it have already been locked by another user."));
return;
}
this.workbook.sheet.lock(this.sheetView.cursor.getRange());
};
editgrid.sheet.View.prototype.pasteFromText=function(range,text){
if(this.rangeCheck(range)){
return;
}
if(text==null){
return;
}
if(text.length>262144){
if(!window.confirm(loc("You are going to paste a large amount of text and this may consume up to a few minutes. Are you sure you want to do so?"))){
return;
}
}
var _181a=this.workbook.sheet.plainTextGetPasteInfo(range.rowFr,range.colFr,text);
if(this.rangeCheck(_181a.range)){
return;
}
this.workbook.sheet.plainTextPaste(_181a);
};
editgrid.sheet.View.prototype.copyAsText=function(param){
var _181c=this.sheetView.cursor;
var range=_181c.row?(_181c.col?new editgrid.RangeRef(_181c.rowFr,_181c.colFr,this.workbook.sheet.getRowMax(),this.workbook.sheet.getColMax()):new editgrid.RangeRef(_181c.rowFr,0,_181c.rowTo,this.workbook.sheet.getColMax())):(_181c.col?new editgrid.RangeRef(0,_181c.colFr,this.workbook.sheet.getRowMax(),_181c.colTo):_181c.getRange());
param=std.lang.defaultize(param,{});
var limit=std.lang.defaultize(param.limit,10000);
var warn=std.lang.defaultize(param.warn,true);
if(limit!=-1&&range.area()>limit){
if(!warn||!window.confirm(loc("You are going to copy a large range and this may consume up to a few minutes. Are you sure you want to do so?"))){
return null;
}
}
return this.sheetView.copyAsText(range);
};
editgrid.sheet.View.prototype.showLink=function(_1820){
var _1821=new editgrid.toolbox.Toolbox();
var url=std.string.escapeHTML(std.string.decodeUTF8(unescape(_1820)));
var _1823=std.dom.newElement("div",null,{title:loc("Object's Permalink")});
var html="";
html+="<input type=\"text\" value=\""+url+"\" readonly=\"readonly\" onclick=\"this.select();\" style=\"color:#666;font-size:11px;border:1px solid #e0e0e0;width:100%;margin:3px auto -9px auto;padding:1px 5px\"/><br/>";
html+="<a style=\"font-size:11px;visibility:hidden\">"+url+"&nbsp;&nbsp;&nbsp;</a><br/> <div class=\"ToolboxBreakLine\"></div>";
html+="<div style=\"text-align:right\"><a style=\"font-size:11px\" href=\""+url+"\" target=\"_blank\">&raquo; "+loc("Visit the permalink")+"</a></div>";
_1823.innerHTML=html;
_1821.init(_1823);
_1821.showAtCenter();
};
editgrid.sheet.View.prototype.showCellPermalink=function(){
this.showLink(this.config.baseUrl+this.workbook.bookInfo.path+"/"+this.workbook.sheet.getName()+"!"+this.selGet().pos.getName());
};
editgrid.sheet.View.prototype.showRangePermalink=function(){
var range=this.selGet().range;
this.showLink(this.config.baseUrl+this.workbook.bookInfo.path+"/"+this.workbook.sheet.getName()+"!"+range.getName());
};
editgrid.sheet.View.prototype.toggleFxMode=function(){
this.fxMode=!this.fxMode;
this.repaintRanges(this.sheetView.sheet,[new editgrid.RangeRef(0,0,this.config.maxRow-1,this.config.maxCol-1)]);
};
editgrid.sheet.View.prototype.toggleVerticalAlign=function(){
this.verticalAlign=!this.verticalAlign;
this._invalidateAllSheetPages();
this.workbook.setVerticalAlign(this.verticalAlign);
if(this.tbItems){
this.tbItems.valigntop.redraw();
this.tbItems.valignbottom.redraw();
this.tbItems.valigncenter.redraw();
}
};
editgrid.sheet.View.prototype.toggleGridLines=function(){
this.setGridLinesVisible(!this.sheetView.gridLinesVisible);
};
editgrid.sheet.View.prototype.setGridLinesVisible=function(_1826){
if(_1826!=this.sheetView.gridLinesVisible){
this.sheetView.gridLinesVisible=_1826;
if(!this.readOnly){
this.workbook.sheet.setGridLines(_1826);
}
this._invalidateCurrentSheetPages();
if(_1826){
std.css.includeClass(this.sheetContainer,"ShowGridLine");
}else{
std.css.excludeClass(this.sheetContainer,"ShowGridLine");
}
}
};
editgrid.sheet.View.prototype.toggleCrosshairMode=function(){
this.crosshairMode=!this.crosshairMode;
var _1827=this.sheetView.cursor;
var r=_1827.getRange();
if(this.crosshairMode){
this.crosshairSetRange(r.rowFr,r.colFr,r.rowTo,r.colTo);
}else{
this.crosshairDel();
}
};
editgrid.sheet.View.prototype.toggleLockVisible=function(){
this.showLock=!this.showLock;
this.locksRedraw();
};
editgrid.sheet.View.prototype.locksRedraw=function(){
if(!this.showLock){
this.rangeBoxDelAll("lock");
}else{
this.workbook.sheet.locksGet();
}
};
editgrid.sheet.View.prototype.processKey=function(ke){
return this.captureEvent&&this.pane.processKey(ke);
};
editgrid.sheet.View.prototype.onVExtend=function(max){
var val=max<this.config.nMinRow?this.config.nMinRow:max;
this.sbVert.setMaximum(val);
};
editgrid.sheet.View.prototype.onHExtend=function(max){
var val=max<this.config.nMinCol?this.config.nMinCol:max;
this.sbHori.setMaximum(val);
};
editgrid.sheet.View.prototype.unlock=function(lock){
if(window.confirm(loc("Are you sure you want to unlock this cell/range?"))){
this.workbook.sheet.unlock(lock.getRange());
return true;
}
return false;
};
editgrid.sheet.View.prototype.setReadOnly=function(){
this.rowHdr1.setReadOnly(true);
this.rowHdr2.setReadOnly(true);
this.colHdr1.setReadOnly(true);
this.colHdr2.setReadOnly(true);
this.fxBox.readOnly=true;
this.readOnly=true;
};
editgrid.sheet.View.prototype.setWritable=function(){
this.rowHdr1.setReadOnly(false);
this.rowHdr2.setReadOnly(false);
this.colHdr1.setReadOnly(false);
this.colHdr2.setReadOnly(false);
this.fxBox.readOnly=false;
this.readOnly=false;
};
editgrid.sheet.View.prototype.onRangesNeedRepaint=function(sheet,_1830){
this.repaintRanges(sheet,_1830);
};
editgrid.sheet.View.prototype.repaintRanges=function(sheet,_1832){
if(sheet==this.sheetView.sheet){
var r=this.sheetView.cursor.rowIdx,c=this.sheetView.cursor.colIdx;
for(var i=0;i<_1832.length;i++){
var range=_1832[i];
if(r>=range.rowFr&&r<=range.rowTo&&c>=range.colFr&&c<=range.colTo){
this.updateCursorInfo(r,c);
}
}
}
for(var k in this.allPanes){
this.allPanes[k].onSheetRangesUpdate(sheet,_1832);
}
var cols={};
for(var i=0;i<_1832.length;++i){
var range=_1832[i];
for(var c=range.colFr;c<=range.colTo;++c){
cols[c]=1;
}
}
for(var k in cols){
this.getSheetView(sheet).filterFieldInvalidateCol(k);
}
};
editgrid.sheet.View.prototype.onNextRepairableArrayFormulaResult=function(sheet,row,col){
this.goToCell({sheetId:sheet.id,col:col,row:row});
};
editgrid.sheet.View.prototype.onRestoreCursorPos=function(sheet,range,type){
if(sheet==this.sheetView.sheet){
var _183f=!range.isSingle();
for(var k in this.allPanes){
var pane=this.allPanes[k];
if(pane.curBox){
pane.curBoxSet(range.rowFr,range.colFr,range.rowTo,range.colTo,true,_183f);
}
}
}
};
editgrid.sheet.View.prototype.onPreRTU=function(range){
var pane=this.pane;
var rowFr,colFr,rowTo,colTo;
this._rtus=[];
if(this.sheetView.rowsFreezed){
rowFr=this.paneNE.rowFr;
}else{
rowFr=this.paneSE.rowFr;
}
if(this.sheetView.colsFreezed){
colFr=this.paneSW.colFr;
}else{
colFr=this.paneSE.colFr;
}
rowTo=this.paneSE.rowTo;
colTo=this.paneSE.colTo;
this._viewport=new editgrid.RangeRef(rowFr,colFr,rowTo,colTo);
};
editgrid.sheet.View.prototype.onRangeRTU=function(range){
var _1849=this.sheetView.rangeBoxes;
var merge=null;
if(range.isSingle()&&(merge=this.workbook.sheet.mergeHasCell(range.rowFr,range.colFr))){
range=merge;
}
if(_1849.copy&&this.sheetView.copy.intersects(range)){
this.rangeBoxDel(_1849.copy);
}
if(this._viewport.intersects(range)){
this._rtus.push(range);
}
};
editgrid.sheet.View.prototype.onPosRTU=function(range){
var _184c=this.sheetView.rangeBoxes;
var r=this._viewport;
if(this._rtus){
if(this._rtus.length>=(r.area()>>1)){
this.rangeBoxAdd(new editgrid.sheet.RTUBox(r.rowFr,r.colFr,r.rowTo,r.colTo,this.rangeBoxDel,this));
}else{
for(var k in this._rtus){
r=this._rtus[k];
this.rangeBoxAdd(new editgrid.sheet.RTUBox(r.rowFr,r.colFr,r.rowTo,r.colTo,this.rangeBoxDel,this));
}
}
}
this._rtus=null;
this._viewport=null;
for(var k in this.activePanes){
var pane=this.activePanes[k];
pane.batchCurBoxSetEnd();
}
var _1850=this.sheetView.cursor;
if(_1850._needsRedraw){
_1850._needsRedraw=false;
this.pane.boxSetAndFocus(_1850,_1850._rowFr,_1850._colFr,_1850._rowTo,_1850._colTo,true,true);
this.pane.redrawFocusBox();
}
};
editgrid.sheet.View.prototype.onCellUpdate=function(sheet,_1852,row,col){
if(sheet.id==this.sheetView.sheet.id){
for(var pane in this.activePanes){
this.activePanes[pane].onCellUpdate(sheet,_1852,row,col);
}
}
};
editgrid.sheet.View.prototype.updateCellDOM=function(cell,_1857,_1858,row,col,flags,cache){
flags=flags||{};
var sheet=this.sheetView.sheet;
if(sheet){
flags.isLink=sheet.linkSheet;
}
flags.fxMode=this.fxMode;
flags.skipVerticalAlign=!this.verticalAlign;
flags.noGridLines=!this.sheetView.gridLinesVisible;
editgrid.CellUtil.updateCellDOM(cell,this.sheetView,_1857,_1858,row,col,flags,cache);
};
editgrid.sheet.View.prototype.onRowColShift=function(sheet,isRow,fr,to){
var _1862=this.getSheetView(sheet);
var _1863=false;
var delta=to-fr;
var isIns=to>fr;
var absFr=fr<to?fr:to;
var absTo=fr<to?to:fr;
var _1868=isRow?_1862.frozenRowFr:_1862.frozenColFr;
var _1869=isRow?_1862.frozenRowTo:_1862.frozenColTo;
var _186a=isRow?_1862.rowsFreezed:_1862.colsFreezed;
if(_186a){
var fcTo=_1868<absTo?_1868:absTo;
var tcTo=(_1869+1)<absTo?(_1869+1):absTo;
var _186d=(isIns?1:-1)*Math.max(0,(fcTo-absFr));
var _186e=(isIns?1:-1)*Math.max(0,(tcTo-absFr));
if(_186d!=0){
_1863=true;
if(isRow){
_1862.frozenRowFr+=_186d;
}else{
_1862.frozenColFr+=_186d;
}
}
if(_186e!=0){
_1863=true;
if(isRow){
_1862.frozenRowTo+=_186e;
_1862.unfrozenRow+=_186e;
if(_1862.unfrozenRow<=_1862.frozenRowTo){
_1862.unfrozenRow=_1862.frozenRowTo+1;
}
}else{
_1862.frozenColTo+=_186e;
_1862.unfrozenCol+=_186e;
if(_1862.unfrozenCol<=_1862.frozenColTo){
_1862.unfrozenCol=_1862.frozenColTo+1;
}
}
}
}
if(_1862==this.sheetView){
this.copyBoxDel();
for(var k in _1862.rangeBoxes){
var box=_1862.rangeBoxes[k];
var boxFr=isRow?box._rowFr:box._colFr;
var boxTo=isRow?box._rowTo:box._colTo;
if(box.removeOnShift){
if(boxTo>=fr){
this.rangeBoxDel(box);
}
}else{
if(box.autoShift){
var newFr=boxFr;
var newTo=boxTo;
if(boxFr>=fr){
newFr+=delta;
}
if(boxTo>=fr){
newTo+=delta;
}
if(boxFr<fr&&fr<=boxTo&&!box.autoResize){
newTo-=delta;
}
if(isRow){
this.pane.boxSetAndFocus(box,newFr,box._colFr,newTo,box._colTo,true,true);
}else{
this.pane.boxSetAndFocus(box,box._rowFr,newFr,box._rowTo,newTo,true,true);
}
}
}
}
this.layout(_1862.frozenRowFr,_1862.frozenColFr,_1862.frozenRowTo,_1862.frozenColTo);
if(_1863){
this.paneSE.rebound();
if(_1862.rowsFreezed){
this.paneNE.rebound();
}
if(_1862.colsFreezed){
this.paneSW.rebound();
}
if(_1862.rowsFreezed&&_1862.colsFreezed){
this.paneNW.rebound();
}
}
this.updateCursorInfo(_1862.cursor.rowIdx,_1862.cursor.colIdx);
if(_1863&&!this.readOnly){
this.workbook.sheet.setFreezePanes(_1862.frozenRowFr,_1862.frozenColFr,_1862.frozenRowTo,_1862.frozenColTo);
}
}
_1862.shiftRowCol(isRow,fr,to);
for(var k in this.allPanes){
this.allPanes[k].onRowColShift(sheet,isRow,fr,to);
}
for(var k in this.allPanes){
this.allPanes[k].refreshViewport();
}
};
editgrid.sheet.View.prototype.onMergeCellAdd=function(sheet,range){
if(sheet!=this.workbook.sheet){
return;
}
var _1877=this.sheetView.rangeBoxes[editgrid.sheet.MergedCellBox.getName(range.rowFr,range.colFr,range.rowTo,range.colTo)];
if(_1877==null){
_1877=new editgrid.sheet.MergedCellBox(range.rowFr,range.colFr,range.rowTo,range.colTo);
_1877.onRedraw=this.mergeCellRedrawText;
this.rangeBoxAdd(_1877);
}
var _1878=this.sheetView.cursor;
if(_1878.intersects(range)){
_1878._needsRedraw=true;
}
};
editgrid.sheet.View.prototype.onMergeCellDel=function(sheet,range){
if(sheet!=this.workbook.sheet){
return;
}
var box=this.sheetView.rangeBoxes[editgrid.sheet.MergedCellBox.getName(range.rowFr,range.colFr,range.rowTo,range.colTo)];
if(box){
this.rangeBoxDel(box);
}
var _187c=this.sheetView.cursor;
if(_187c.intersects(range)){
_187c._needsRedraw=true;
}
};
editgrid.sheet.View.prototype._mergeCellRedrawText=function(box,_187e){
this.updateMergeCellText(_187e.element,box.rowFr,box.colFr);
};
editgrid.sheet.View.prototype.updateMergeCellText=function(_187f,r,c,cache){
var sheet=this.workbook.sheet;
var _1884=sheet._getCellAndLocalChange(r,c);
var _1885=sheet.getCellComment(r,c);
this.updateCellDOM(_187f,_1884,_1885,r,c,{skipZIndex:1,skipBackground:1,skipBorder:1,skipVerticalAlign:0},cache);
};
editgrid.sheet.View.prototype.onLockAdd=function(lock){
if(this.showLock){
var mine=lock.userId==this.workbook.userId;
var _1888=new editgrid.sheet.Lock(mine,mine||this.workbook.isOwner||this.workbook.isOrgAdminRealised,lock.rowFr,lock.colFr,lock.rowTo,lock.colTo);
_1888.onUnlock=this.unlock;
_1888.onUnlockContext=this;
this.getSheetView(lock.sheet).rangeBoxAdd(_1888);
}
};
editgrid.sheet.View.prototype.onLockDel=function(lock){
if(this.showLock){
var _188a=this.getSheetView(lock.sheet);
var _188b=_188a.rangeBoxes[editgrid.sheet.Lock.getName(lock.rowFr,lock.colFr,lock.rowTo,lock.colTo)];
if(_188b){
_188a.rangeBoxDel(_188b);
}
}
};
editgrid.sheet.View.prototype.init=function(_188c){
this.bookReadOnly=_188c.readOnly;
this.readOnly=_188c.readOnly;
this.textOverflow=_188c.textOverflow;
this.verticalAlign=_188c.verticalAlign;
this.isAnonymous=_188c.isAnonymous;
this.isPersisted=_188c.isPersisted;
this.namedRangePopup.attachModel(this.workbook.namedExprModel);
editgrid.event.attach(document,std.browser.isIE||std.browser.isOpera||std.browser.isAppleWebKit?"mousewheel":"DOMMouseScroll",this.onMouseWheel,this);
if(this.bookReadOnly){
this.setReadOnly();
}else{
this.setWritable();
}
this.paneNE.connect();
this.paneNW.connect();
this.paneSE.connect();
this.paneSW.connect();
this.mergeCellRedrawText=std.lang.bind(this,this._mergeCellRedrawText);
std.topic.subscribe(this.workbook,"onCellUpdate",std.lang.bind(this,this.onCellUpdate));
std.topic.subscribe(this.workbook,"onRangeRTU",std.lang.bind(this,this.onRangeRTU));
std.topic.subscribe(this.workbook,"onPreRTU",std.lang.bind(this,this.onPreRTU));
std.topic.subscribe(this.workbook,"onPosRTU",std.lang.bind(this,this.onPosRTU));
std.topic.subscribe(this.workbook,"onRowColShift",std.lang.bind(this,this.onRowColShift));
std.topic.subscribe(this.workbook,"onHExtend",std.lang.bind(this,this.onHExtend));
std.topic.subscribe(this.workbook,"onVExtend",std.lang.bind(this,this.onVExtend));
std.topic.subscribe(this.workbook,"onLockAdd",std.lang.bind(this,this.onLockAdd));
std.topic.subscribe(this.workbook,"onLockDel",std.lang.bind(this,this.onLockDel));
std.topic.subscribe(this.workbook,"onMergeCellAdd",std.lang.bind(this,this.onMergeCellAdd));
std.topic.subscribe(this.workbook,"onMergeCellDel",std.lang.bind(this,this.onMergeCellDel));
std.topic.subscribe(this.workbook,"onSearchResult",std.lang.bind(this,this.onSearchResult));
std.topic.subscribe(this.workbook,"onSheetsRebuilt",std.lang.bind(this,this.setActiveSheet));
std.topic.subscribe(this.workbook,"onMultiRowColUpdate",std.lang.bind(this,this.onMultiRowColUpdate));
std.topic.subscribe(this.workbook,"onMultiRowColVisibilityChange",std.lang.bind(this,this.onMultiRowColVisibilityChange));
std.topic.subscribe(this.workbook,"onNamedExprChange",std.lang.bind(this,this.onNamedExprChange));
std.topic.subscribe(this.workbook,"onRestoreCursorPos",std.lang.bind(this,this.onRestoreCursorPos));
std.topic.subscribe(this.workbook,"onNextRepairableArrayFormulaResult",std.lang.bind(this,this.onNextRepairableArrayFormulaResult));
std.topic.subscribe(this.workbook,"onRangesNeedRepaint",std.lang.bind(this,this.onRangesNeedRepaint));
std.topic.subscribe(this.workbook,"onFilterAdd",std.lang.bind(this,this._onFilterAdd));
std.topic.subscribe(this.workbook,"onFilterDel",std.lang.bind(this,this._onFilterDel));
std.topic.subscribe(this.workbook,"onFilterShift",std.lang.bind(this,this._onFilterShift));
if(!this.textOverflow){
std.css.excludeClass(this.sheetContainer,this._cellOverflowClassName());
}
this.setActiveSheet(this.workbook.sheetId);
if(!this.bookReadOnly&&this.workbook.sheet.isLinkedSheet()){
this.setReadOnly();
}
this.inited=true;
};
editgrid.sheet.View.prototype.isCopyBoxOn=function(){
for(var k in this.sheetViews){
if(this.sheetViews[k].rangeBoxes.copy){
return true;
}
}
return !!this.copyFocusedObject;
};
editgrid.sheet.View.prototype.onPaste=function(range,el){
if(this.rangeCheck(range)){
el.value="";
return;
}
var _1890=function(s){
return s==null?"":s.replace(/\r\n/g,"\n").replace(/\r/g,"\n");
};
if(this.pasteTimerId){
clearTimeout(this.pasteTimerId);
this.pasteTimerId=null;
}
var val=el.value;
if(val==""||this.isCopyBoxOn()||_1890(this.lastCopiedText)==_1890(val)){
if(!this.readOnly){
this.sheetView.paste(range);
}
}else{
this.pasteFromText(range,el.value);
}
el.value="";
};
editgrid.sheet.View.prototype.onSearchResult=function(_1893,_1894,_1895,pos){
if(_1893>1){
alert(loc("Total [_1] occurrences",_1893));
}else{
if(pos){
this.goToCell({sheetId:_1895,row:pos.row,col:pos.col});
}else{
alert(loc("Cannot find cell with value '[_1]'",_1894));
}
}
};
editgrid.sheet.View.prototype.focus=function(){
this._focusDelegator.focus();
};
editgrid.sheet.View.prototype.blur=function(){
this._onBlur();
};
editgrid.sheet.View.prototype._onFocus=function(){
this._onViewFocus();
this.captureEvent=true;
};
editgrid.sheet.View.prototype._onBlur=function(){
this.captureEvent=false;
};
editgrid.sheet.View.prototype.takeFocus=function(_1897){
if(this.focusedObject){
this.focusedObject.onBlur();
}
if(_1897){
_1897.onFocus();
var pane=_1897.activeView.pane;
if(pane&&pane!=this.pane){
this.focusPane(pane);
}
}
this.focusedObject=_1897;
};
editgrid.sheet.View.prototype.takeCopyFocus=function(_1899){
this.copyBoxDel();
if(_1899){
_1899.onCopyFocus();
}
this.copyFocusedObject=_1899;
};
editgrid.sheet.View.prototype._isRowHdrElement=function(_189a){
return _189a==this.paneNE.rowHdrElement||_189a==this.paneSE.rowHdrElement;
};
editgrid.sheet.View.prototype._isColHdrElement=function(_189b){
return _189b==this.paneSW.colHdrElement||_189b==this.paneSE.colHdrElement;
};
editgrid.sheet.View.prototype.getContext=function(_189c){
var _189d=this.sheetView.cursor;
var _189e=this.pane.editor;
if(_189e.isOn&&_189e.rowIdx==_189d.rowFr&&_189e.colIdx==_189d.colFr){
return null;
}
var _189f=this.workbook.sheet.mergeGetActualRange(_189d);
var _18a0=["cell_readable"];
if(!_189f.row&&!_189f.col&&_189f.isSingle()){
_18a0.push("cell_op");
if(!this.readOnly){
_18a0.push("cell_edit_op");
}
if(this.isPersisted){
_18a0.push("named cell_op");
}
}
if(!_189f.isSingle()&&!(_189f.isRow()&&_189f.isCol())){
_18a0.push("strict_rng_op");
}
if(!this.readOnly){
_18a0.push("rng_op");
if(_189d.row&&(!_189d.col||this._isRowHdrElement(_189c))){
_18a0.push("row_op");
}
if(_189d.col&&(!_189d.row||this._isColHdrElement(_189c))){
_18a0.push("col_op");
}
_18a0.push("paste_txt");
if(this.isLockable()){
_18a0.push("rng_lockable");
}
}
return _18a0;
};
editgrid.sheet.View.prototype.objectAdd=function(so){
so.ctrl=editgrid.so.objectControl.newInstance(so,this);
if(so.sheet!=this.workbook.sheet){
return;
}
for(var k in this.allPanes){
this.allPanes[k].objectAdd(so);
}
};
editgrid.sheet.View.prototype.objectDel=function(so){
if(so.sheet==this.workbook.sheet){
for(var k in this.allPanes){
this.allPanes[k].objectDel(so);
}
}
if(this.focusedObject==so.ctrl){
this.focusedObject=null;
}
if(this.copyFocusedObject==so.ctrl){
this.copyFocusedObject=null;
}
so.ctrl.release(so.ctrl.element);
so.ctrl.element.view=null;
so.ctrl.element=null;
so.ctrl=null;
};
editgrid.sheet.View.prototype.objectUpdate=function(so){
so.ctrl.update({action:"updateContent"});
if(so.sheet!=this.workbook.sheet){
return;
}
for(var k in this.allPanes){
this.allPanes[k].objectUpdate(so,"updateContent");
}
};
editgrid.sheet.View.prototype.objectSetBounds=function(so){
so.ctrl.update({action:"updateBounds"});
if(so.sheet!=this.workbook.sheet){
return;
}
for(var k in this.allPanes){
this.allPanes[k].objectSetBounds(so,"updateBounds");
}
};
editgrid.sheet.View.prototype.toggleTextOverflow=function(){
this.setTextOverflow(!this.textOverflow);
this.workbook.setTextOverflow(this.textOverflow);
};
editgrid.sheet.View.prototype.setTextOverflow=function(_18a9){
this.textOverflow=_18a9;
if(this._sheetContainerOverflow!=_18a9){
this._sheetContainerOverflow=_18a9;
if(_18a9){
std.css.includeClass(this.sheetContainer,this._cellOverflowClassName());
}else{
std.css.excludeClass(this.sheetContainer,this._cellOverflowClassName());
}
}
};
editgrid.sheet.View.prototype._onVSyncSE=function(row){
if(this.paneSW.visible){
this.paneSW.vScrollTo(row,true);
}
};
editgrid.sheet.View.prototype._onHSyncSE=function(col){
if(this.paneNE.visible){
this.paneNE.hScrollTo(col,true);
}
};
editgrid.sheet.View.prototype._onHSyncNE=function(col){
this.sbHori.setValue(col,true);
};
editgrid.sheet.View.prototype._onVSyncSW=function(row){
this.sbVert.setValue(row,true);
};
editgrid.sheet.View.prototype._onPaneReady=function(){
if(this.isReady()){
if(this.sheetElement.style.visibility!="visible"){
this.sheetElement.style.visibility="visible";
}
std.topic.publish(this,"onReady");
}
};
editgrid.sheet.View.prototype.isReady=function(){
for(var k in this.allPanes){
if(!this.allPanes[k].isReady()){
return false;
}
}
return true;
};
editgrid.sheet.View.prototype.selectRange=function(rowFr,colFr,rowTo,colTo){
if(colFr<0||colTo>=this.config.maxCol||rowFr<0||rowTo>=this.config.maxRow){
throw new Error("Invalid range location");
}
return this.pane.curBoxSet(rowFr,colFr,rowTo,colTo,null,null,true);
};
editgrid.sheet.View.prototype.selectCell=function(row,col){
if(col<0||col>=this.config.maxCol||row<0||row>=this.config.maxRow){
throw new Error("Invalid cell location");
}
return this.pane.curBoxSet(row,col,row,col,null,null,true);
};
editgrid.sheet.View.prototype.goToCell=function(arg){
var lines=[],path;
var rowFr,colFr,rowTo,colTo;
var _18bc=arg.sheetId;
var _18bd=arg.sheetName;
var _18be=arg.sheetIndex;
if(arg.row!=null&&arg.col!=null){
rowFr=rowTo=arg.row;
colFr=colTo=arg.col;
}else{
if(arg.rowFr!=null&&arg.colFr!=null&&arg.rowTo!=null&&arg.colTo!=null){
rowFr=arg.rowFr;
rowTo=arg.rowTo;
colFr=arg.colFr;
colTo=arg.colTo;
}else{
var _18bf=this.sheetView.cursor;
var _18c0=this.workbook.namedExprModel.resolveActualRange(this.workbook.sheet.id,arg,_18bf.rowIdx,_18bf.colIdx);
if(_18c0){
this.goToCell(_18c0);
return;
}
if((path=editgrid.parseCellAddress(arg,lines))){
if(path.sheetName){
_18bd=path.sheetName;
}
}else{
throw new Error(lines.join("\n"));
}
rowFr=path.fr.row;
rowTo=path.to.row;
colFr=path.fr.col;
colTo=path.to.col;
}
}
if((_18bc==null||_18bc==this.workbook.sheet.id)&&(_18bd==null||_18bd==this.workbook.sheet.name)&&(_18be==null)){
this.selectRange(rowFr,colFr,rowTo,colTo);
}else{
var sheet=null;
if(_18bc!=null){
sheet=this.workbook.getSheetById(_18bc);
}
if(_18bd!=null){
sheet=this.workbook.getSheetByName(_18bd);
}
if(_18be!=null){
sheet=this.workbook.getSheetByIndex(_18be);
}
if(sheet!=null){
var _18c2;
_18c2=std.lang.bind(this,function(){
this.selectRange(rowFr,colFr,rowTo,colTo);
std.topic.unsubscribe(this,"onSheetSelect",_18c2);
});
std.topic.subscribe(this,"onSheetSelect",_18c2);
this.setActiveSheet(sheet.id);
}else{
throw new Error("Sheet not found");
}
}
};
editgrid.sheet.View.prototype._cellOverflowClassName=function(){
return std.browser.isIEQuirksMode?"CellOverflowIE":"CellOverflow";
};
editgrid.sheet.View.prototype.editSheetObject=function(so){
std.topic.publish(this,"onEditSheetObject",so);
};
editgrid.sheet.View.prototype._invalidateCurrentSheetPages=function(){
this.sheetView.pageManager.invalidateAll();
this.repaintRanges(this.sheetView.sheet,[new editgrid.RangeRef(0,0,this.config.maxRow-1,this.config.maxCol-1)]);
};
editgrid.sheet.View.prototype._invalidateAllSheetPages=function(){
var _18c4=this.workbook.sheets;
for(var k in _18c4){
this.getSheetView(_18c4[k]).pageManager.invalidateAll();
}
this.repaintRanges(this.sheetView.sheet,[new editgrid.RangeRef(0,0,this.config.maxRow-1,this.config.maxCol-1)]);
};
editgrid.sheet.View.prototype._onSheetViewRangeBoxAdd=function(_18c6,box){
if(_18c6==this.sheetView){
for(var k in this.allPanes){
var pane=this.allPanes[k];
pane.rangeBoxes[box.id]=box;
box.realize(pane.rangeBoxContainer,pane.name);
pane.rangeBoxRedraw(box);
}
}
};
editgrid.sheet.View.prototype._onSheetViewRangeBoxDel=function(_18ca,box){
if(_18ca==this.sheetView){
for(var k in this.allPanes){
var pane=this.allPanes[k];
delete pane.rangeBoxes[box.id];
box.unrealize(pane.rangeBoxContainer,pane.name);
}
}
};
editgrid.sheet.View.prototype.selToggleAutoFilter=function(){
var sheet=this.sheetView.sheet;
var range=this.sheetView.cursor.getRange();
var items=sheet.filterGetIntersection(range);
if(items.length){
for(var i=0;i<items.length;++i){
sheet.removeFilter(items[i]);
}
}else{
sheet.addFilter(range);
}
};
editgrid.sheet.View.prototype._onFilterAdd=function(sheet,range){
var key=range.toString();
var _18d5=this.getSheetView(sheet).filters;
if(_18d5==null){
return;
}
var _18d6=_18d5[key]=new editgrid.sheet.filter.AutoFilter(sheet);
var boxes=_18d6.fieldBoxes={};
std.topic.subscribe(_18d6,"onFieldAdd",std.lang.bind(this,this._onFilterFieldAdd));
std.topic.subscribe(_18d6,"onFieldDel",std.lang.bind(this,this._onFilterFieldDel));
_18d6.setRange(range);
};
editgrid.sheet.View.prototype._onFilterDel=function(sheet,range){
var key=range.toString();
var _18db=this.getSheetView(sheet);
var _18dc=_18db.filters;
if(_18dc==null){
return;
}
var _18dd=_18db.filtersActive();
this._filterDel(_18dc,key);
if(_18dd){
if(!_18db.filtersActive()){
_18db.delHiddenRowColList(true);
}else{
sheet.filterQueryRows(this.filtersToJSON());
}
}
};
editgrid.sheet.View.prototype._onFilterShift=function(sheet,isRow,_18e0,_18e1,_18e2,_18e3){
var _18e4=_18e2.toString();
var _18e5=_18e3.toString();
var _18e6=this.getSheetView(sheet).filters;
var _18e7=_18e6[_18e4];
if(_18e7){
var _18e8=false;
if(!_18e7.updateRange(isRow,_18e0,_18e1,_18e3)){
this._filterDel(_18e6,_18e4);
_18e8=true;
}
if(!_18e8){
delete _18e6[_18e4];
_18e6[_18e5]=_18e7;
}
}
};
editgrid.sheet.View.prototype._onFilterFieldAdd=function(_18e9,field,index){
var row=_18e9.range.rowFr;
var col=_18e9.range.colFr+index;
var box=new editgrid.sheet.filter.FilterFieldBox(_18e9,field,row,col);
_18e9.fieldBoxes[field.id]=box;
box.onInitPopup=this.onFilterFieldInitPopup;
box.onSelectChange=this.onFilterFieldSelectChange;
this.getSheetView(_18e9.sheet).rangeBoxAdd(box);
};
editgrid.sheet.View.prototype._onFilterFieldDel=function(_18ef,field,index){
var key=field.id;
if(_18ef.fieldBoxes[key]){
this.getSheetView(_18ef.sheet).rangeBoxDel(_18ef.fieldBoxes[key]);
delete _18ef.fieldBoxes[key];
}
};
editgrid.sheet.View.prototype._filterDel=function(_18f3,key){
var _18f5=_18f3[key];
if(_18f5){
_18f5.reset();
delete _18f3[key];
}
};
editgrid.sheet.View.prototype.filtersRedraw=function(){
var sheet=this.sheetView.sheet;
var _18f7=this.sheetView.filters;
if(_18f7==null){
_18f7=this.sheetView.filters={};
sheet.filtersGet();
}
for(var k1 in _18f7){
var boxes=_18f7[k1].fieldBoxes;
for(var k2 in boxes){
this.rangeBoxAdd(boxes[k2]);
this.rangeBoxRedraw(boxes[k2]);
}
}
};
editgrid.sheet.View.prototype.filtersToJSON=function(){
var items=[];
var _18fc=this.sheetView.filters;
if(_18fc){
for(var k in _18fc){
items.push(_18fc[k].toJSON());
}
}
return {filters:items};
};
editgrid.sheet.View.prototype.filterQueryRows=function(_18fe,_18ff){
var sheet=this.sheetView.sheet;
sheet.filterQueryRows(this.filtersToJSON());
var _1901=_18fe.range.colFr+_18ff;
for(var col in this.sheetView._loadedFilterFieldList){
if(col!=_1901){
this.sheetView.filterFieldInvalidateCol(col);
}
}
};
editgrid.sheet.View.prototype._onFilterFieldInitPopup=function(_1903,index,_1905){
var row=_1903.range.rowFr;
var col=_1903.range.colFr+index;
var field=_1903.fields[index];
if(field._matches){
if(_1905._matches!=field._matches){
_1905._matches=field._matches;
_1905._hasBlank=field._hasBlank;
this._filterPopulateList(_1905,field._matches,field._hasBlank);
}
_1905.setPopupLoadingComplete();
}else{
this.sheetView._activeFilterPopup=_1905;
this.sheetView.sheet.filterQueryMatches({filters:[_1903.toJSON()]},row,col);
}
};
editgrid.sheet.View.prototype._onFilterFieldQueryMatchesResult=function(sheet,row,col,_190c,_190d){
var _190e=this.getSheetView(sheet);
var _190f=_190e._activeFilterPopup;
var field=null;
for(var k in _190e.filters){
var range=_190e.filters[k].range;
if(range.rowFr==row&&range.colFr<=col&&col<=range.colTo){
field=_190e.filters[k].fields[col-range.colFr];
}
}
if(field){
field._matches=_190c;
field._hasBlank=_190d;
_190e.filterFieldMarkLoaded(col,field);
}
if(_190f&&field==_190f.field){
this._filterPopulateList(_190f,_190c,_190d);
_190f.setPopupLoadingComplete();
}
};
editgrid.sheet.View.prototype._filterPopulateList=function(_1913,_1914,_1915){
if(_1913){
var _1916=_1913.listBox;
_1916.removeAll();
_1916.addItem(editgrid.sheet.filter.FILTER_ITEM_ALL);
_1916.addItem(editgrid.sheet.filter.FILTER_ITEM_TOP10);
_1916.addItem(editgrid.sheet.filter.FILTER_ITEM_CUSTOM);
for(var i=0;i<_1914.length;++i){
_1916.addItem(new editgrid.sheet.filter.FilterFieldItem(_1914[i],_1914[i]));
}
if(_1915){
_1916.addItem(editgrid.sheet.filter.FILTER_ITEM_BLANKS);
_1916.addItem(editgrid.sheet.filter.FILTER_ITEM_NON_BLANKS);
}
}
};
editgrid.sheet.View.prototype._onFilterFieldQueryRowsResult=function(sheet,_1919){
var _191a=[];
var _191b=[];
for(var i=0;i<_1919.length;++i){
if(undefined!==_1919[i][0]){
_191a.push(_1919[i][0]);
_191b.push(_1919[i][1]);
}else{
_191a.push(_1919[i]);
_191b.push(_1919[i]);
}
}
var _191d=-1;
var _191e=this.sheetView.filters;
for(var k in _191e){
if(_191d<_191e[k].range.rowTo){
_191d=_191e[k].range.rowTo;
}
}
var _1920=this.sheetView.sheet.getRowColExtent(true);
if(_191b[_191b.length-1]==_191d){
var _1921=_191a[_191a.length-1];
if(_1921<=_1920){
_191b[_191b.length-1]=_1920;
}else{
if(_1921==_1920+1){
_191b.length--;
_191a.length--;
}
}
}
this.getSheetView(sheet).setHiddenRowColList(true,new editgrid.IntervalList(_191a,_191b));
};
editgrid.FormulaSelector=function(_1922,_1923,_1924){
var self=this;
this.maxTries=20;
this.waitFactor=200;
this.baseUrl=_1922;
this.proxyUrl=_1922+"proxy?url=";
this.docBaseUrl=_1923;
this.ext=".help";
this.templateTreeGetter=_1924;
var _1926=std.dom.newElement("div");
_1926.appendChild(this.templateTreeGetter());
var slots=std.dom.extractAttachmentPoints(_1926);
this.element=slots["FormulaSelector"];
this.pane=slots["FormulaSelectorHelpPane"];
this.name=slots["FormulaName"];
this.desc=slots["FormulaDescription"];
this.synopsisHead=slots["FormulaSynopsisHead"];
this.synopsisBody=slots["FormulaSynopsisBody"];
this.exampleHead=slots["FormulaExampleHead"];
this.exampleBody=slots["FormulaExampleBody"];
this.formulaLoadedFrom=slots["FormulaLoadedFrom"];
this._categoriesLoaded={"Common":true};
this._categoriesUrl={"Data":_1922+"remotedata/func_desc"};
var _1928=this.select=std.dom.newElement("select",null,{size:20},{width:"160px",height:"280px"});
var _1929=this.selectCategory=std.dom.newElement("select",null,{size:1},{width:"160px"});
var _192a=slots["FormulaInsertButton"];
var _192b=this.selectAdvancedPane=slots["SelectAdvancedPane"];
this.formulaUrl=slots["FormulaURL"];
slots["FormulaFullListLink"].href=this._getDisplayDocUrl();
slots["SelectAdvancedPane.1"].appendChild(_1929);
slots["SelectAdvancedPane.2"].appendChild(_1928);
std.event.observe(_192a,"click",std.event.listener(this,this.insertOnClick));
std.topic.define(this,"onCategoryLoad");
this._initSelect();
};
editgrid.FormulaSelector.prototype.getRoot=function(){
return this.element;
};
editgrid.FormulaSelector.prototype._initSelect=function(){
var _192c=this.selectCategory;
var _192d=this.select;
for(var name in this._categoriesTable){
var _192f=std.dom.newElement("option",null,{value:name});
std.dom.addOption(_192c,_192f);
_192f.innerHTML=name;
}
_192c.selectedIndex=0;
std.event.observe(_192d,"change",std.event.listener(this,this.selectOnChange));
std.event.observe(_192c,"change",std.event.listener(this,this.selectCategoryOnChange));
this.selectCategoryOnChange();
};
editgrid.FormulaSelector.prototype._getDisplayDocUrl=function(_1930){
var url=this.docBaseUrl+(_1930?_1930.replace(/ /g,"_"):"");
return (url.indexOf("http:")!=-1)?url:(this.baseUrl.replace("https://","http://")+url);
};
editgrid.FormulaSelector.prototype._getLoadDocUrl=function(_1932){
if(this._categoriesUrl[_1932]){
return this._categoriesUrl[_1932];
}
var url=this.docBaseUrl+_1932.replace(/ /g,"_");
return ((url.indexOf("http:")!=-1)?this.baseUrl+"proxy?url="+encodeURIComponent(url):this.baseUrl+url)+this.ext;
};
editgrid.FormulaSelector.prototype._updateDisplayCategory=function(_1934,url){
this.formulaUrl.innerHTML=(_1934=="Common"||this._categoriesUrl[_1934])?"&nbsp;":[loc("Text retrieved from"),":<br/><nobr><a class=\"FormulaFullListLink\" href=\"",url,"\" target=\"_blank\">",url,"</a></nobr><br/><br/>"].join("");
};
editgrid.FormulaSelector.prototype._loadCategory=function(_1936){
var _1937=this._getDisplayDocUrl(_1936);
var _1938=this._getLoadDocUrl(_1936);
var self=this;
if(this._categoriesLoaded[_1936]){
self._updateDisplayCategory(_1936,_1937);
return;
}
this.formulaUrl.innerHTML=loc("Loading")+" ...<br/><br/><br/>";
setTimeout(function(){
var text=std.ajax.getText(_1938);
var _193b=eval(text);
var rows=_193b[0][0];
var _193d=self._categoriesTable[_1936];
var load=_193d.length==0;
for(var i=1;i<rows.length-2;i++){
var cells=rows[i];
if(load){
_193d.push(cells[0]);
}
if(cells[0]==""){
break;
}
self._formulaTable[cells[0].toUpperCase()]={template:["(",")"],description:cells[2],synopses:[cells[1]],examples:[cells[3]]};
}
if(load){
self._updateSelectCategory(_1936);
}
self._updateDisplayCategory(_1936,_1937);
self._categoriesLoaded[_1936]=true;
std.topic.publish(self,"onCategoryLoad");
},10);
};
editgrid.FormulaSelector.prototype._showFormula=function(tbl,fname,raw){
var _1944=tbl[fname];
this.name.innerHTML=fname;
this.desc.innerHTML=raw?_1944.description:_1944.description.replace(/\n/g,"<br/>");
this.synopsisBody.innerHTML=raw?_1944.synopses.join("\n"):_1944.synopses.join("\n").replace(/\n/g,"<br/>");
this.exampleBody.innerHTML=raw?_1944.examples.join("\n"):_1944.examples.join("\n").replace(/\n/g,"<br/>");
var empty=function(s){
return s==null||(s.replace(/\s/g,"")=="");
};
this.synopsisHead.innerHTML=empty(this.synopsisBody.innerHTML)?"":loc("Synopsis")+":";
this.exampleHead.innerHTML=empty(this.exampleBody.innerHTML)?"":loc("Example Usage")+":";
this.formulaUrl.innerHTML=this.formulaUrl.innerHTML;
var _1947=this.pane.style;
_1947.visibility="hidden";
_1947.overflow="visible";
_1947.width="100%";
var width=std.dom.getDimensions(this.pane).width;
var _1949=std.dom.getDimensions(this.selectAdvancedPane).height;
if(width){
_1947.width=width<300?"300px":width+20+"px";
}
if(_1949){
_1947.height=_1949+"px";
}
_1947.overflow="auto";
_1947.visibility="";
};
editgrid.FormulaSelector.prototype.selectOnChange=function(){
this._showRemoteFormula(this.selectCategory.value,this.maxTries,this.maxTries);
};
editgrid.FormulaSelector.prototype._showRemoteFormula=function(_194a,tries,_194c){
var name=this.select.value;
var tbl=this._formulaTable;
var self=this;
if(tbl[name]!=null){
this._showFormula(tbl,name,this._categoriesUrl[_194a]);
}else{
if(_194c>0){
(function(){
var times=(tries-(_194c--)+1);
var wait=times*this.waitFactor;
setTimeout(function(){
self._showRemoteFormula(_194a,tries,_194c);
},wait);
})();
}
}
};
editgrid.FormulaSelector.prototype._updateSelectCategory=function(_1952){
var _1953=this.select;
std.dom.clearOptions(_1953);
var _1954=this._categoriesTable[_1952];
if(_1954.length==0){
var _1955=std.dom.newElement("option",null,{value:""});
std.dom.addOption(_1953,_1955);
_1955.innerHTML="Loading...";
}else{
for(var i=0;i<_1954.length;++i){
var name=_1954[i].toUpperCase();
var _1955=std.dom.newElement("option",null,{value:name});
std.dom.addOption(_1953,_1955);
_1955.innerHTML=name;
}
}
_1953.selectedIndex=0;
this.selectOnChange();
};
editgrid.FormulaSelector.prototype.selectCategoryOnChange=function(){
var _1958=this.selectCategory.value;
this._loadCategory(_1958);
this._updateSelectCategory(_1958);
};
editgrid.FormulaSelector.prototype.insertOnClick=function(){
if(typeof (this.onInsert)=="function"){
var ns=editgrid.FormulaSelector;
var _195a=this._formulaTable[this.select.value].template;
this.onInsert(this.select.value+_195a[0],_195a[1]);
}
};
editgrid.FormulaSelector.prototype._formulaTable={"AND":{template:["(",")"],description:loc("AND implements the logical AND function: the result is TRUE if all of the expressions evaluate to TRUE, otherwise it returns FALSE."),synopses:["=AND(b1, b2, ...)"],examples:["=AND(TRUE,FALSE)"]},"IF":{template:["(",")"],description:loc("IF function can be used to evaluate conditionally other expressions.  IF evaluates condition.  If condition returns a non-zero value the result of the IF expression is the if-true expression, otherwise IF evaluates to the value of if-false."),synopses:["=IF(condition[,if-true,if-false])"],examples:["=IF(FALSE,TRUE,FALSE)"]},"OR":{template:["(",")"],description:loc("OR implements the logical OR function: the result is TRUE if any of the values evaluated to TRUE."),synopses:["=OR(b1, b2, ...)"],examples:["=OR(3>4,4<3)"]},"HLOOKUP":{template:["(",")"],description:loc("HLOOKUP function finds the col in range that has a first row cell similar to value.  If approximate is not true it finds the col with an exact equivalence.  If approximate is true, then the values must be sorted in order of ascending value for correct function; in this case it finds the col with value less than value it returns the value in the col found at a 1-based offset in row rows into the range.  as_index returns the 0-based offset that matched rather than the value."),synopses:["=HLOOKUP(value,range,row[,approximate,as_index])"],examples:["=HLOOKUP(\"Tom\",A1:C3,3,FALSE)"]},"LOOKUP":{template:["(",")"],description:loc("LOOKUP function finds the row index of value in vector1 and returns the contents of vector2 at that row index.  Alternatively a single array can be used for vector1.  If the area is longer than it is wide then the sense of the search is rotated."),synopses:["=LOOKUP(value,vector1[,vector2])"],examples:["=LOOKUP(\"Tom\",A1:A10,C1:C10)"]},"VLOOKUP":{template:["(",")"],description:loc("VLOOKUP function finds the row in range that has a first column similar to value.  If approximate is not true it finds the row with an exact equivalence.  If approximate is true, then the values must be sorted in order of ascending value for correct function; in this case it finds the row with value less than value.  It returns the value in the row found at a 1-based offset in column columns into the range.  as_index returns the 0-based offset that matched rather than the value."),synopses:["=VLOOKUP(value,range,column[,approximate,as_index])"],examples:["=VLOOKUP(\"Tom\",A1:C3,3,FALSE)"]},"COUNTIF":{template:["(",")"],description:loc("COUNTIF function counts the number of cells in the given range that meet the given criteria."),synopses:["=COUNTIF(range,criteria)"],examples:["=COUNTIF(A1:A3,\"<4\")"]},"ROUND":{template:["(",")"],description:loc("ROUND function rounds a given number."),synopses:["=ROUND(number[,digits])"],examples:["=ROUND(5.5)"]},"SQRT":{template:["(",")"],description:loc("SQRT function returns the square root of x."),synopses:["=SQRT(x)"],examples:["=SQRT(2)"]},"SUM":{template:["(",")"],description:loc("SUM computes the sum of all the values and cells referenced in the argument list."),synopses:["=SUM(value1, value2, ...)"],examples:["=SUM(A1:A3)"]},"SUMIF":{template:["(",")"],description:loc("SUMIF function sums the values in the given range that meet the given criteria.  If actual_range is given, SUMIF sums the values in the actual_range whose corresponding components in range meet the given criteria."),synopses:["=SUMIF(range,criteria[,actual_range])"],examples:["=SUMIF(A1:A3,\"<4\",C1:C3)"]},"AVERAGE":{template:["(",")"],description:loc("AVERAGE computes the average of all the values and cells referenced in the argument list.  This is equivalent to the sum of the arguments divided by the count of the arguments."),synopses:["=AVERAGE(value1, value2,...)"],examples:["=AVERAGE(A1:A3)"]},"MAX":{template:["(",")"],description:loc("MAX returns the value of the element of the values passed that has the largest value, with negative numbers considered smaller than positive numbers."),synopses:["=MAX(b1, b2, ...)"],examples:["=MAX(A1:A3)"]},"MEDIAN":{template:["(",")"],description:loc("MEDIAN returns the median of the given data set."),synopses:["=MEDIAN(n1, n2, ...)"],examples:["=MEDIAN(A1:A3)"]},"MIN":{template:["(",")"],description:loc("MIN returns the value of the element of the values passed that has the smallest value, with negative numbers considered smaller than positive numbers."),synopses:["=MIN(b1, b2, ...)"],examples:["=MIN(A1:A3)"]},"STDEV":{template:["(",")"],description:loc("STDEV returns the sample standard deviation of the given sample."),synopses:["=STDEV(b1, b2, ...)"],examples:["=STDEV(A1:A3)"]},"VAR":{template:["(",")"],description:loc("VAR calculates sample variance of the given sample.  To get the true variance of a complete population use VARP."),synopses:["=VAR(b1, b2, ...)"],examples:["=VAR(A1:A3)"]},"VARP":{template:["(",")"],description:loc("VARP calculates the variance of an entire population.  VARP is also known as the N-variance."),synopses:["=VARP(b1, b2, ...)"],examples:["=VARP(A1:A3)"]},"CONCATENATE":{template:["(",")"],description:loc("CONCATENATE returns the string obtained by concatenation of the given strings."),synopses:["=CONCATENATE(string1[,string2...])"],examples:["=CONCATENATE(\"aa\",\"bb\")"]},"SUBSTITUTE":{template:["(",")"],description:loc("SUBSTITUTE replaces old with new in text.  Substitutions are only applied to instance num of old in text, otherwise every one is changed."),synopses:["=SUBSTITUTE(text,old,new[,num])"],examples:["=SUBSTITUTE(\"testing\",\"test\",\"wait\")"]},"ARRAY":{template:["(",")"],description:loc("ARRAY() is used to specify an array formula, the formula's output will be expanded into multiple cells automatically"),synopses:["=ARRAY(range_data[num_rows,num_cols])"],examples:["=ARRAY(TRANSPOSE(A1:B3))","=ARRAY(A1:A10,5,1)","=ARRAY(sum({1,2,3}*{10,20,30}))"]},"CONTINUE":{template:["(",")"],description:loc("CONTINUE reterieve value from ranged data"),synopses:["=CONTINUE(range_data,row_num,col_num)"],examples:["=CONTINUE(A1,2,3)"]},"AUTOEXPAND":{template:["(",")"],description:loc("AUTOEXPAND() will expand multi-cell output automatically when the output's size is changed"),synopses:["=AUTOEXPAND(range_data)"],examples:["=AUTOEXPAND(ARRAY(INDIRECT(A1)))"]},"NOEXPAND":{template:["(",")"],description:loc("NOEXPAND avoid automatically adding ARRAY for ranged remotedata"),synopses:["=NOEXPAND(range_data)"],examples:["=NOEXPAND(ARRAY(TRANSPOSE(A1:B3)))"]}};
editgrid.FormulaSelector.prototype._categoriesTable={"Common":["and","if","or","hlookup","lookup","vlookup","countif","round","sqrt","sum","sumif","average","max","median","min","stdev","var","varp","concatenate","substitute","array","continue","autoexpand","noexpand"],"Mashup":["hyperlink","image"],"Bitwise Operations":["bitand","bitlshift","bitor","bitrshift","bitxor"],"Complex":["complex","imabs","imaginary","imarccos","imarccosh","imarccot","imarccoth","imarccsc","imarccsch","imarcsec","imarcsech","imarcsin","imarcsinh","imarctan","imarctanh","imargument","imconjugate","imcos","imcosh","imcot","imcoth","imcsc","imcsch","imdiv","imexp","iminv","imln","imlog10","imlog2","imneg","impower","improduct","imreal","imsec","imsech","imsin","imsinh","imsqrt","imsub","imsum","imtan","imtanh"],"Data":[],"Database":["daverage","dcount","dcounta","dget","dmax","dmin","dproduct","dstdev","dstdevp","dsum","dvar","dvarp","getpivotdata"],"Date Time":["date","date2unix","datedif","datevalue","day","days360","edate","eomonth","hour","isoweeknum","isoyear","minute","month","networkdays","now","second","time","timevalue","today","unix2date","weekday","weeknum","workday","year","yearfrac"],"Engineering":["dec2oct","decimal","delta","erf","erfc","gestep","hex2bin","hex2dec","hex2oct","invsuminv","oct2bin","oct2dec","oct2hex"],"Erlang":["dimcirc","offcap","offtraf","probblock"],"Finance":["accrint","accrintm","amordegrc","amorlinc","coupdaybs","coupdaysnc","coupncd","coupnum","couppcd","cum_biv_norm_dist","cumipmt","cumprinc","db","ddb","disc","dollarde","dollarfr","duration","effect","euro","euroconvert","fv","fvschedule","g_duration","intrate","impmt","irr","ispmt","mduration","mirr","nominal","nper","npv","oddfprice","oddyield","opt_2_asset_correlation","opt_amer_exchange","opt_baw_amer","opt_binomial","opt_bjer_stens","opt_bs","opt_bs_carrycost","opt_bs_delta","opt_bs_gamma","opt_bs_rho","opt_bs_theta","opt_bs_vega","opt_complex-chooser","opt_euro_exchange","opt_exec","opt_extendible_writer","opt_forward_start","opt_french","opt_garman_kohlhagen","opt_jump_diff","opt_miltersen_schwartz","opt_on_options","opt_rgw","opt_simple_chooser","opt_spread_approx","opt_time_switch","pmt","ppmt","price","pricedisc","pricemat","pv","rate","received","sln","syd","tbilleq","tbillprice","tbillyield","vdb","xirr","xnpv","yield","yielddisc","yieldmat"],"Information":["cell","countblank","error","error.type","expression","info","isblank","iserr","iserror","iseven","islogical","isna","isnontext","isnumber","isodd","isref","istext","n","na","type"],"Logic":["and","false","if","not","or","true","xor"],"Lookup":["address","areas","choose","column","columnnumber","columns","hlookup","hyperlink","index","indirect","lookup","match","offset","row","rows","transpose","vlookup"],"Mathematics":["asinh","atan","atan2","atanh","beta","betaln","ceil","ceiling","combin","cos","cosh","countif","degrees","even","exp","expm1","fact","factdouble","fib","floor","g_product","gcd","hypot","int","lcm","ln","ln1p","log","log10","log2","mdeterm","minverse","mmult","mod","mround","multinomial","odd","pi","power","product","quotient","radians","roman","round","rounddown","roundup","seriessum","sign","sin","sinh","sqrt","sqrtpi","sum","suma","sumif","sumproduct","sumsq","sumx2my2","sumx2py2","sumxmy2","tan","tanh","trunc"],"Number Theory":["isprime","ithprime","nt_d","nt_mu","nt_phi","nt_pi","nt_sigma","pfactor"],"Random Number":["rand","randbernoulli","randbeta","randbetween","randbinom","randcauchy","randchisq","randdiscrete","randexp","randexppow","randfdist","randgamma","randgeom","randgumbel","randhyperg","randlandau","randlaplace","randlevy","randlog","randlogistic","randlognorm","randnegbionom","randnorm","randnormtail","randpareto","randpoisson","randrayleigh","randrayleightail","randtdist","randuniform","randweibull","simtable"],"Statistics":["avedev","average","averagea","bernoulli","betadist","betainv","binomdist","cauchy","chidist","chiinv","chitest","confidence","correl","count","counta","covar","critbinom","cronbach","devsq","expondist","exppowdist","fdist","finv","fisher","fisherinv","forecast","frequency","ftest","gammadist","gammainv","gammaln","geomdist","geomean","growth","harmean","hypgeomdist","intercept","kurt","kurtp","landau","laplace","large","linest","logest","logfit","loginv","logistic","lognormdist","logreg","max","maxa","median","min","mina","mode","negbinomdist","normdist","norminv","normsdist","normsinv","pareto","pearson","percentile","percentrank","permut","poisson","prob","quartile","r.dbeta","r.dbinom","r.dcauchy","r.dchisq","r.dexp","r.df","r.dgamma","r.dgeom","r.dhyper","r.dlnorm","r.dnbinom","r.dnorm","r.dpois","r.dt","r.dweibull","r.pbeta","r.pbinom","r.pacuchy","r.pchisq","r.pexp","r.pf","r.pgamma","r.pgeom","r.phyper","r.plnorm","r.pnbinom","r.pnorm","r.ppois","r.pt","r.pweibull","r.qbeta","r.qbinom","r.qcachy","r.qchisq","r.qexp","r.qf","r.qgamma","r.qgeom","r.qhyper","r.qlnorm","r.qnbinom","r.qnorm","r.qpois","r.qt","r.qweibull","rank","rayleightail","rsq","skew","skewp","slope","small","ssmedian","standardize","stdev","stdeva","stdevp","stdevpa","steyx","subtotal","tdist","tinv","trend","trimmean","ttest","var","vara","varp","varpa","weibull","ztest"],"String":["asc","char","clean","code","concatenate","dollar","exact","find","fixed","left","len","lenb","lower","mid","proper","replace","rept","right","search","substitute","t","text","trim","unichar","unicode","upper","cell"],"All Functions":["accrintm","address","amordegrc","amorlinc","and","areas","array","asc","asinh","atan","atan2","atanh","autoexpand","avedev","average","averagea","bernoulli","beta","betadist","betainv","betaln","binomdist","bitand","bitlshift","bitor","bitrshift","bitxor","cauchy","ceil","ceiling","cell","cell","char","chidist","chiinv","chitest","choose","clean","code","column","columnnumber","columns","combin","complex","concatenate","confidence","continue","correl","cos","cosh","count","counta","countblank","countif","coupdaybs","coupdaysnc","coupncd","coupnum","couppcd","covar","critbinom","cronbach","cum_biv_norm_dist","cumipmt","cumprinc","date","date2unix","datedif","datevalue","daverage","day","days360","db","dcount","dcounta","ddb","dec2oct","decimal","degrees","delta","devsq","dget","dimcirc","disc","dmax","dollar","dollarde","dollarfr","dproduct","dstdev","dstdevp","dsum","duration","dvar","dvarp","edate","effect","eomonth","erf","erfc","error","error.type","euro","euroconvert","even","exact","exp","expm1","expondist","exppowdist","expression","fact","factdouble","false","fdist","fib","find","finv","fisher","fisherinv","fixed","floor","forecast","frequency","ftest","fv","fvschedule","g_duration","g_product","gammadist","gammainv","gammaln","gcd","geomdist","geomean","gestep","getpivotdata","growth","harmean","hex2bin","hex2dec","hex2oct","hlookup","hour","hyperlink","hypgeomdist","hypot","if","imabs","imaginary","imarccos","imarccosh","imarccot","imarccoth","imarccsc","imarccsch","imarcsec","imarcsech","imarcsin","imarcsinh","imarctan","imarctanh","imargument","imconjugate","imcos","imcosh","imcot","imcoth","imcsc","imcsch","imdiv","imexp","iminv","imln","imlog10","imlog2","imneg","impmt","impower","improduct","imreal","imsec","imsech","imsin","imsinh","imsqrt","imsub","imsum","imtan","imtanh","index","indirect","info","int","intercept","intrate","invsuminv","irr","isblank","iserr","iserror","iseven","islogical","isna","isnontext","isnumber","isodd","isoweeknum","isoyear","ispmt","isprime","isref","istext","ithprime","kurt","kurtp","landau","laplace","large","lcm","left","len","lenb","linest","ln","ln1p","log","log10","log2","logest","logfit","loginv","logistic","lognormdist","logreg","lookup","lower","match","max","maxa","mdeterm","mduration","median","mid","min","mina","minute","minverse","mirr","mmult","mod","mode","month","mround","multinomial","n","na","negbinomdist","networkdays","noexpand","nominal","normdist","norminv","normsdist","normsinv","not","now","nper","npv","nt_d","nt_mu","nt_phi","nt_pi","nt_sigma","oct2bin","oct2dec","oct2hex","odd","oddfprice","oddyield","offcap","offset","offtraf","opt_2_asset_correlation","opt_amer_exchange","opt_baw_amer","opt_binomial","opt_bjer_stens","opt_bs","opt_bs_carrycost","opt_bs_delta","opt_bs_gamma","opt_bs_rho","opt_bs_theta","opt_bs_vega","opt_complex-chooser","opt_euro_exchange","opt_exec","opt_extendible_writer","opt_forward_start","opt_french","opt_garman_kohlhagen","opt_jump_diff","opt_miltersen_schwartz","opt_on_options","opt_rgw","opt_simple_chooser","opt_spread_approx","opt_time_switch","or","pareto","pearson","percentile","percentrank","permut","pfactor","pi","pmt","poisson","power","ppmt","price","pricedisc","pricemat","prob","probblock","product","proper","pv","quartile","quotient","r.dbeta","r.dbinom","r.dcauchy","r.dchisq","r.dexp","r.df","r.dgamma","r.dgeom","r.dhyper","r.dlnorm","r.dnbinom","r.dnorm","r.dpois","r.dt","r.dweibull","r.pacuchy","r.pbeta","r.pbinom","r.pchisq","r.pexp","r.pf","r.pgamma","r.pgeom","r.phyper","r.plnorm","r.pnbinom","r.pnorm","r.ppois","r.pt","r.pweibull","r.qbeta","r.qbinom","r.qcachy","r.qchisq","r.qexp","r.qf","r.qgamma","r.qgeom","r.qhyper","r.qlnorm","r.qnbinom","r.qnorm","r.qpois","r.qt","r.qweibull","radians","rand","randbernoulli","randbeta","randbetween","randbinom","randcauchy","randchisq","randdiscrete","randexp","randexppow","randfdist","randgamma","randgeom","randgumbel","randhyperg","randlandau","randlaplace","randlevy","randlog","randlogistic","randlognorm","randnegbionom","randnorm","randnormtail","randpareto","randpoisson","randrayleigh","randrayleightail","randtdist","randuniform","randweibull","rank","rate","rayleightail","received","replace","rept","right","roman","round","rounddown","roundup","row","rows","rsq","search","second","seriessum","sign","simtable","sin","sinh","skew","skewp","sln","slope","small","sqrt","sqrtpi","ssmedian","standardize","stdev","stdeva","stdevp","stdevpa","steyx","substitute","subtotal","sum","suma","sumif","sumproduct","sumsq","sumx2my2","sumx2py2","sumxmy2","syd","t","tan","tanh","tbilleq","tbillprice","tbillyield","tdist","text","time","timevalue","tinv","today","transpose","trend","trim","trimmean","true","trunc","ttest","type","unichar","unicode","unix2date","upper","var","vara","varp","varpa","vdb","vlookup","weekday","weeknum","weibull","workday","xirr","xnpv","xor","year","yearfrac","yield","yielddisc","yieldmat","ztest"]};
editgrid.InsertSheetEditor=function(_195b,_195c,_195d,_195e,_195f,_1960,_1961,_1962,_1963){
this.config=_195b;
this.workbook=_1960;
this.sheetId=_195e;
this.userId=_195c;
this.bookrevId=_195d;
this.isAfter=_195f;
this.templateTreeGetter=_1961;
this.onSuccess=_1962;
this.onCancel=_1963;
this.linkSheet=false;
};
editgrid.InsertSheetEditor.prototype.getRoot=function(){
if(typeof (this.elements)=="undefined"){
var tree=this.templateTreeGetter();
this.elements=std.dom.extractAttachmentPoints(tree);
std.event.observe(this.elements["linkShowLinkSheet"],"click",std.event.listener(this,this._toggleLinkSheetPane));
std.event.observe(this.elements["linkHideLinkSheet"],"click",std.event.listener(this,this._toggleLinkSheetPane));
std.event.observe(this.elements["buttonMyBooks"],"click",std.event.listener(this,this._onMyBookSelected));
std.event.observe(this.elements["buttonOtherBooks"],"click",std.event.listener(this,this._onOtherBookSelected));
std.event.observe(this.elements["formUserSelection"],"submit",std.event.listener(this,this._onUserSelected));
std.event.observe(this.elements["selectUserCategory"],"change",std.event.listener(this,this._onUserCategoryChanged));
std.event.observe(this.elements["formSheetName"],"submit",std.event.listener(this,this._onSimpleFormSubmit));
std.event.observe(this.elements["inputSheetName"],"keypress",std.event.listener(this,this._onKeyPress));
std.event.observe(this.elements["inputOrganisation"],"keypress",std.event.listener(this,this._onKeyPress));
std.event.observe(this.elements["inputUsername"],"keypress",std.event.listener(this,this._onKeyPress));
std.event.observe(this.elements["selectBook"],"change",std.event.listener(this,this._onBookSelected));
std.event.observe(this.elements["selectSheet"],"change",std.event.listener(this,this._onSheetSelected));
std.event.observe(this.elements["buttonOk"],"click",std.event.listener(this,this._onOk));
std.event.observe(this.elements["buttonCancel"],"click",std.event.listener(this,this._onCancel));
}
this.elements["inputSheetName"].value="Sheet";
this._hideLinkSheetPane();
return this.elements.root;
};
editgrid.InsertSheetEditor.prototype._onUserSelected=function(e){
var form=this.elements["formUserSelection"];
this.elements["divUserSelectionError"].innerHTML="";
if(form.category.value=="organisation"&&form.organisation.value==""){
this.elements["divUserSelectionError"].innerHTML=loc("Please specify organisation name.");
std.event.vanish(e);
return false;
}
if(form.workspacename.value==""){
this.elements["divUserSelectionError"].innerHTML=loc("Please specify username.");
std.event.vanish(e);
return false;
}
std.dom.show(this.elements["divLoadingBooks"]);
this._getUserBooks(form.organisation.value,form.workspacename.value,std.lang.bind(this,function(books){
if(books==null){
books=new Array();
}
if(typeof books=="object"&&(books.success!=null&&books.success==0)){
this._showBooks([]);
this.elements["divUserSelectionError"].innerHTML=books.error;
std.dom.hide(this.elements["divLoadingBooks"],500);
return false;
}
this._showBooks(books);
std.form.enable(this.elements["formBookSelection"]);
this.elements["selectSheet"].disabled="true";
std.dom.hide(this.elements["divLoadingBooks"],500);
return false;
}));
std.event.vanish(e);
return false;
};
editgrid.InsertSheetEditor.prototype._onUserCategoryChanged=function(e){
var form=this.elements["formUserSelection"];
if(form.category.value=="organisation"){
form.organisation.disabled="";
}else{
form.organisation.disabled="true";
}
};
editgrid.InsertSheetEditor.prototype._onKeyPress=function(e){
var codes=editgrid.event.keyCodes;
var _196c=editgrid.event.getSrcElement(e);
var _196d=e.keyCode;
if(_196d==codes.KEY_ESCAPE){
this.onCancel();
std.event.vanish(e);
return false;
}
return true;
};
editgrid.InsertSheetEditor.prototype._onSimpleFormSubmit=function(e){
this._onOk();
std.event.vanish(e);
return false;
};
editgrid.InsertSheetEditor.prototype._getSheetName=function(){
return this.elements["inputSheetName"].value;
};
editgrid.InsertSheetEditor.prototype._addSheet=function(){
var _196f=this._getSheetName();
if(_196f==null||_196f==""){
this.elements["divError"].innerHTML=loc("Please specify sheet name.");
return;
}
this.workbook._addSheetNextTo(this.sheetId,_196f,this.isAfter);
this.onSuccess();
};
editgrid.InsertSheetEditor.prototype._onCancel=function(e){
this.onCancel();
};
editgrid.InsertSheetEditor.prototype._addLinkSheet=function(){
var _1971=this.bookrevId;
var _1972=this.isAfter?this.workbook.sheets[this.sheetId].pos+1:this.workbook.sheets[this.sheetId].pos;
var _1973=this.elements["selectBook"];
var _1974=this.elements["selectSheet"];
var _1975=this._getSheetName();
if(_1975==null||_1975==""){
this.elements["divError"].innerHTML=loc("Please specify sheet name.");
return;
}
if(_1973.selectedIndex==0){
this.elements["divError"].innerHTML=loc("Please specify source spreadsheet.");
return;
}
if(_1974.selectedIndex==0){
this.elements["divError"].innerHTML=loc("Please specify source sheet.");
return;
}
var _1976=_1973.options[_1973.selectedIndex].value;
var _1977=_1974.options[_1974.selectedIndex].value;
var _1978=eval(std.ajax.getText(this.config.baseUrl+"grid/widget/insertsheet/add_link_sheet?bookrevid="+_1971+"&linkbookrevid="+_1976+"&sheetpos="+_1972+"&sheetname="+encodeURIComponent(_1975)+"&linksheetid="+_1977));
if(_1978.success!=1){
this.elements["divError"].innerHTML=_1978.error;
}else{
this.workbook.fireSheetDiff();
this.onSuccess();
}
};
editgrid.InsertSheetEditor.prototype._onOk=function(e){
if(this.linkSheet){
this._addLinkSheet();
}else{
this._addSheet();
}
};
editgrid.InsertSheetEditor.prototype._onLinkLinkSheetClicked=function(e){
this._toggleLinkSheetPane(e);
};
editgrid.InsertSheetEditor.prototype._hideLinkSheetPane=function(){
std.form.disable(this.elements["formBookSelection"]);
this._disableUserSelectionForm();
std.dom.hide(this.elements["divLinkSheet"]);
};
editgrid.InsertSheetEditor.prototype._toggleLinkSheetPane=function(e){
this.linkSheet=!this.linkSheet;
if(this.linkSheet){
if(!this.elements["buttonMyBooks"].checked&&!this.elements["buttonOtherBooks"].checked){
if(!this.elements["buttonMyBooks"].disabled){
this.elements["buttonMyBooks"].checked=true;
this._onMyBookSelected();
}else{
if(!this.elements["buttonOtherBooks"].disabled){
this.elements["buttonOtherBooks"].checked=true;
this._onOtherBookSelected();
}
}
}
std.dom.hide(this.elements["linkShowLinkSheet"]);
std.dom.show(this.elements["linkHideLinkSheet"]);
std.dom.show(this.elements["divLinkSheet"]);
}else{
std.dom.show(this.elements["linkShowLinkSheet"]);
std.dom.hide(this.elements["linkHideLinkSheet"]);
std.dom.hide(this.elements["divLinkSheet"]);
}
std.event.vanish(e);
};
editgrid.InsertSheetEditor.prototype._onMyBookSelected=function(e){
this._disableUserSelectionForm();
std.dom.show(this.elements["divLoadingBooks"]);
this._getMyBooks(std.lang.bind(this,function(books){
this._showBooks(books);
std.dom.hide(this.elements["divLoadingBooks"],500);
}));
std.form.enable(this.elements["formBookSelection"]);
this.elements["selectSheet"].disabled="true";
};
editgrid.InsertSheetEditor.prototype._onOtherBookSelected=function(e){
this._enableUserSelectionForm();
std.form.disable(this.elements["formBookSelection"]);
};
editgrid.InsertSheetEditor.prototype._enableUserSelectionForm=function(){
var form=this.elements["formUserSelection"];
std.form.enable(form);
if(form.category.options[form.category.selectedIndex].value!="organisation"){
form.organisation.disabled="true";
}
};
editgrid.InsertSheetEditor.prototype._disableUserSelectionForm=function(){
var form=this.elements["formUserSelection"];
std.form.disable(form);
};
editgrid.InsertSheetEditor.prototype._onBookSelected=function(e){
var _1982=this.elements["selectBook"];
this.elements["selectSheet"].disabled="true";
var _1983=_1982.options[_1982.selectedIndex];
if(_1983.book&&!_1983.book.IsPersonalOwned){
this.elements["licenseLink"].style.display="";
this.elements["licenseLink"].href=this.config.baseUrl+"license/view/"+_1983.book.BookId;
}else{
this.elements["licenseLink"].style.display="none";
}
std.dom.show(this.elements["divLoadingSheets"]);
if(_1983.book){
this._getSheets(_1983.book.CurrRevId,std.lang.bind(this,function(_1984){
this._showSheets(_1984);
std.dom.hide(this.elements["divLoadingSheets"],500);
}));
}else{
this._showSheets([]);
std.dom.hide(this.elements["divLoadingSheets"],500);
}
this.elements["selectSheet"].disabled="";
};
editgrid.InsertSheetEditor.prototype._onSheetSelected=function(e){
var _1986=this.elements["selectSheet"];
var _1987=this._getSheetName();
if(_1987==""||_1987==null||_1987=="Sheet"){
this.elements["inputSheetName"].value=_1986.options[_1986.selectedIndex].innerHTML;
}
};
editgrid.InsertSheetEditor.prototype._showBooks=function(books){
std.dom.clearChildren(this.elements["selectBook"]);
var _1989=new std.dom.Builder(this.elements["selectBook"]);
var _198a=_1989.append("option");
_198a.innerHTML=loc("-- Please Select --");
for(var i=0;i<books.length;++i){
if(books[i].CurrRevId!=this.bookrevId){
var _198c=_1989.append("option",{value:books[i].CurrRevId});
_198c.book=books[i];
_198c.innerHTML=std.string.escapeHTML(books[i].BookName);
}
}
};
editgrid.InsertSheetEditor.prototype._showSheets=function(_198d){
std.dom.clearChildren(this.elements["selectSheet"]);
var _198e=new std.dom.Builder(this.elements["selectSheet"]);
var _198f=_198e.append("option");
_198f.innerHTML=loc("-- Please Select --");
for(var i=0;i<_198d.length;++i){
var _1991=_198e.append("option",{value:_198d[i].SheetId});
_1991.innerHTML=std.string.escapeHTML(_198d[i].SheetName);
}
};
editgrid.InsertSheetEditor.prototype._getUserBooks=function(_1992,_1993,_1994){
new std.ajax.Request(this.config.baseUrl+"grid/widget/insertsheet/ownerbooks?organisation="+_1992+"&workspacename="+_1993,{transportFactory:this.config.transportFactory,method:"get",onSuccess:function(req){
_1994(eval(req.responseText));
}});
};
editgrid.InsertSheetEditor.prototype._getMyBooks=function(_1996){
new std.ajax.Request(this.config.baseUrl+"grid/widget/insertsheet/mybooks",{transportFactory:this.config.transportFactory,method:"get",onSuccess:function(req){
_1996(eval(req.responseText));
}});
};
editgrid.InsertSheetEditor.prototype._getSheets=function(_1998,_1999){
new std.ajax.Request(this.config.baseUrl+"grid/widget/insertsheet/sheetlist?bookrevid="+_1998,{transportFactory:this.config.transportFactory,method:"get",onSuccess:function(req){
_1999(eval(req.responseText));
}});
};
editgrid.InsertSheetEditor.prototype.focus=function(){
this.elements["inputSheetName"].focus();
this.elements["inputSheetName"].select();
};
editgrid.colorpicker={};
editgrid.colorpicker.Palette=function(_199b){
if(_199b==null){
_199b=[];
}
this.colorTable=_199b;
this.views=[];
this.updateView();
};
editgrid.colorpicker.Palette.fromRGBArray=function(_199c){
return new editgrid.colorpicker.Palette(_199c);
};
editgrid.colorpicker.Palette.prototype.getColorAt=function(idx){
return this.colorTable[idx];
};
editgrid.colorpicker.Palette.prototype.size=function(){
return this.colorTable.length;
};
editgrid.colorpicker.Palette.prototype.addColor=function(rgb){
this.colorTable[this.colorTable.length]=rgb;
this.updateView();
};
editgrid.colorpicker.Palette.prototype.addView=function(view,_19a0){
var views=this.views;
views[views.length]=view;
if((_19a0==null||_19a0)&&view.onUpdate!=null){
view.onUpdate();
}
};
editgrid.colorpicker.Palette.prototype.updateView=function(){
var views=this.views;
for(var i=0;i<views.length;++i){
if(views[i].onUpdate!=null){
views[i].onUpdate();
}
}
};
editgrid.colorpicker.ColorGrid=function(args){
var rows=this.rows=args.rows;
var cols=this.cols=args.cols;
var _19a7=this.swatchWidth=args.swatchWidth||14;
var _19a8=this.swatchHeight=args.swatchHeight||14;
var _19a9=this.swatchSpacing=args.swatchSpacing!=null?args.swatchSpacing:2;
var _19aa=this.swatchBorder=args.swatchBorder!=null?args.swatchBorder:1;
var _19ab=this.swatchBoxTable=[];
var _19ac=this.palette=args.palette;
var _19ad=args.parent;
var _19ae=this.element=std.dom.newElement("div",_19ad,{className:"undraggable ColorPicker ColorGrid"});
var _19af=this.onPick=args.onPick;
var width=this.width=(_19a7+_19aa*2+_19a9)*cols;
_19ae.style.width=(width+2)+"px";
for(var rIdx=0;rIdx<rows;++rIdx){
for(var cIdx=0;cIdx<cols;++cIdx){
this.addSwatchBox();
}
}
if(_19ac){
this.setPalette(_19ac);
}
};
editgrid.colorpicker.ColorGrid.prototype.getWidth=function(){
return this.width;
};
editgrid.colorpicker.ColorGrid.prototype.setPalette=function(_19b3){
this.palette=_19b3;
_19b3.addView(this);
};
editgrid.colorpicker.ColorGrid.prototype.onUpdate=function(){
var _19b4=this.palette;
var len=this.palette.size();
var _19b6=function(c1,c2){
return c1==null&&c2==null||(c1!=null&&c2!=null&&c1[0]==c2[0]&&c1[1]==c2[1]&&c1[2]==c2[2]);
};
for(var i=0;i<len;++i){
var _19ba=this.swatchBoxTable[i];
var color=_19b4.getColorAt(i);
if(!_19b6(_19ba.getColor(),color)){
_19ba.setColor(color);
}
}
};
editgrid.colorpicker.ColorGrid.prototype.addSwatchBox=function(){
var w=this.swatchWidth;
var h=this.swatchHeight;
if(!std.browser.isBorderBox){
w-=2;
h-=2;
}
var _19be=new editgrid.colorpicker.SwatchBox({w:w,h:h,spacing:this.swatchSpacing,border:this.swatchBorder,parent:this,onPick:this.onPick});
return this.swatchBoxTable[this.swatchBoxTable.length]=_19be;
};
editgrid.colorpicker.ColorGrid.prototype.setActiveSwatchBox=function(_19bf){
if(this.lastSwatchBox){
this.lastSwatchBox.setActive(false);
}
_19bf.setActive(true);
this.lastSwatchBox=_19bf;
};
editgrid.colorpicker.SwatchBox=function(args){
var w=args.w+"px";
var h=args.h+"px";
var _19c3=args.spacing+"px";
var _19c4=args.parent;
this.border=args.border;
this.onPick=args.onPick;
this.element=std.dom.newElement("div",_19c4.element,{className:"ColorPickerSwitch"},{margin:0,padding:_19c3});
this.link=std.dom.newElement("div",this.element,{className:"ColorPickerSwitchInner"},{width:w,height:h});
this.setColor(args.rgb);
var self=this;
std.event.observe(this.element,"click",function(e){
_19c4.setActiveSwatchBox(self);
if(self.onPick){
self.onPick({color:self.rgb,src:self});
}
std.event.vanish(e);
});
std.event.observe(this.element,"mouseover",function(e){
std.css.includeClass(self.element,"ColorPickerSwitchHover");
});
std.event.observe(this.element,"mouseout",function(e){
std.css.excludeClass(self.element,"ColorPickerSwitchHover");
});
};
editgrid.colorpicker.SwatchBox.prototype.setColor=function(rgb){
this.rgb=rgb;
var _19ca=this.link.style;
_19ca.backgroundColor=rgb==null?null:"rgb("+rgb.join(",")+")";
};
editgrid.colorpicker.SwatchBox.prototype.setActive=function(_19cb){
if(_19cb){
std.css.includeClass(this.element,"ColorPickerSwitchSelected");
}else{
std.css.excludeClass(this.element,"ColorPickerSwitchSelected");
}
};
editgrid.colorpicker.SwatchBox.prototype.getColor=function(rgb){
return this.rgb;
};
editgrid.colorpicker.ColorInput=function(args){
var _19ce=this.element=args.element;
var _19cf=this.onupdate=args.onupdate||function(){
};
std.event.observe(_19ce,"keydown",function(ev){
var e=ev||event;
var s=_19ce.value;
var code=std.browser.isIE?e.keyCode:e.which;
var codes=editgrid.event.keyCodes;
if(code==codes.KEY_SPACE){
std.event.preventDefault(e);
return;
}
for(var i in codes){
if(codes[i]==code){
return true;
}
}
var ch=String.fromCharCode(code);
if("0123456789abcdefABCDEF".indexOf(ch)==-1){
std.event.preventDefault(e);
return;
}
});
var self=this;
var _19d8=function(){
self.rgb=this._parseColorString(_19ce.value);
self.onupdate();
};
};
editgrid.colorpicker.ColorInput.getRGB=function(){
return this.rgb;
};
editgrid.colorpicker.Picker=function(_19d9,_19da,_19db,_19dc){
this.swatchWidth=_19d9;
this.swatchHeight=_19da;
this.textNoColor=_19dc;
this.element=std.dom.newElement("div",null,{className:"colorPicker",title:_19db});
this.panes=[];
std.topic.define(this,"onAlert");
var self=this;
this._addColorPane(editgrid.colorpicker.Palette.fromRGBArray(editgrid.colorpicker.Picker._colorTableCore),5,8,{textAlign:"right"},[{text:loc("Advanced"),onclick:function(e){
if(self.panes.length<=1){
self._addColorPane(editgrid.colorpicker.Palette.fromRGBArray(editgrid.colorpicker.Picker._colorTableMore),8,14,{display:"none"},[{text:loc("Basic"),onclick:function(e){
self._showColorPane(0);
std.event.vanish(e);
}}],true);
}
self._showColorPane(1);
std.event.vanish(e);
}}]);
};
editgrid.colorpicker.Picker.prototype.getRoot=function(){
return this.element;
};
editgrid.colorpicker.Picker.prototype._addCustomColor=function(){
var _19e0=this.customInput.value;
if((/^#?([0-9a-fA-F]){3}(([0-9a-fA-F]){3})?$/).test(_19e0)){
if(_19e0.indexOf("#")==0){
_19e0=_19e0.substring(1);
}
if(_19e0.length==3){
_19e0=_19e0.replace(/([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/,"$1$1$2$2$3$3");
}
this.customColor.style.backgroundColor="#"+_19e0;
if(this.onPick){
this.onPick(std.conv.rgbToIntArray(_19e0));
}
}else{
std.topic.publish(this,"onAlert");
}
};
editgrid.colorpicker.Picker.prototype.updateCustom=function(rgb){
if(this.customInput&&this.customColor){
var _19e2=std.conv.intToRGB(std.conv.rgbArrayToInt(rgb[0],rgb[1],rgb[2]));
this.customInput.value=_19e2;
this.customColor.style.backgroundColor="#"+_19e2;
}
};
editgrid.colorpicker.Picker.prototype._addColorPane=function(_19e3,cols,rows,_19e6,_19e7,_19e8){
var self=this;
var _19ea=function(e){
if(self.onPick){
self.onPick(e==null?null:e.color);
return false;
}
};
var btn_h=(this.swatchHeight+2)+"px";
var pane=std.dom.newElement("div",this.element,null,_19e6);
var c=[pane];
c[c.length]=this._addButton(pane,this.textNoColor,{height:btn_h},"ColorPickerDefaultSwitch",_19ea);
var grid=this._addColorGrid(pane,_19e3,cols,rows,_19ea);
c[c.length]=this._addSeparator(pane);
c[c.length]=this._addHR(pane);
c[c.length]=this._addSeparator(pane);
for(var idx=0;idx<c.length;++idx){
c[idx].style.width=grid.getWidth()+"px";
}
if(_19e8){
var _19f1=new std.dom.Builder(pane);
var nodes={};
nodes.root=_19f1.push("form");
_19f1.push("table");
_19f1.push("thead");
_19f1.push("tr");
_19f1.push("td");
_19f1.append("div",{innerHTML:"Hex Code:"},{fontFamily:"Tahoma, sans-serif",fontSize:"11px"});
_19f1.pop();
_19f1.push("td");
_19f1.push("div");
this.customInput=_19f1.append("input",{className:"ColorPickerCustomInput",type:"text",value:"FFFFFF"},{height:btn_h,width:"60px",padding:"1px"});
_19f1.pop();
_19f1.pop();
_19f1.push("td");
this.customColorPicker=_19f1.push("div",{className:"ColorPickerSwitch"},{padding:"2px",marginBottom:"3px"});
this.customColor=_19f1.append("div",{className:"ColorPickerSwitchInner"},{height:btn_h,width:"30px",backgroundColor:"#FFFFFF"});
this.customColor.appendChild(document.createComment(""));
_19f1.pop();
_19f1.pop();
_19f1.pop();
_19f1.pop();
_19f1.pop();
_19f1.pop();
std.event.observe(this.customColorPicker,"mouseover",function(e){
std.css.includeClass(self.customColorPicker,"ColorPickerSwitchHover");
});
std.event.observe(this.customColorPicker,"mouseout",function(e){
std.css.excludeClass(self.customColorPicker,"ColorPickerSwitchHover");
});
std.event.observe(this.customColorPicker,"click",function(e){
self._addCustomColor();
});
std.event.observe(nodes.root,"submit",function(e){
self._addCustomColor();
std.event.vanish(e);
});
c[c.length]=this._addHR(pane);
c[c.length]=this._addSeparator(pane);
}
this.panes[this.panes.length]=pane;
for(var idx=0;idx<_19e7.length;++idx){
c[c.length]=this._addInputButton(pane,_19e7[idx].text,{height:btn_h},"InputButton undraggable",_19e7[idx].onclick);
}
c[c.length]=this._addSeparator(pane);
c[c.length-2].style.height="20px";
return pane;
};
editgrid.colorpicker.Picker.prototype._showColorPane=function(_19f7){
var panes=this.panes;
for(var idx=0;idx<panes.length;++idx){
panes[idx].style.display=(_19f7==idx)?"block":"none";
}
};
editgrid.colorpicker.Picker.prototype._addColorGrid=function(_19fa,_19fb,iRows,iCols,_19fe){
return new editgrid.colorpicker.ColorGrid({rows:iRows,cols:iCols,palette:_19fb,parent:_19fa,swatchWidth:this.swatchWidth,swatchHeight:this.swatchHeight,swatchSpacing:2,swatchBorder:1,onPick:_19fe});
};
editgrid.colorpicker.Picker.prototype._addHR=function(_19ff,w){
return std.dom.newElement("div",_19ff,{innerHTML:"&nbsp;"},{clear:"both",height:"1px",overflow:"hidden",width:w==null?"100%":(w+"px"),backgroundColor:"#e0e0e0"});
};
editgrid.colorpicker.Picker.prototype._addSeparator=function(_1a01,h){
if(h==null){
h=4;
}
return std.dom.newElement("div",_1a01,{innerHTML:"&nbsp;"},{clear:"both",height:h+"px",overflow:"hidden"});
};
editgrid.colorpicker.Picker.prototype._addButton=function(_1a03,_1a04,_1a05,_1a06,_1a07){
var _1a08=std.dom.newElement("div",_1a03,{className:_1a06},{styleFloat:"right"});
var _1a09=std.dom.newElement("a",_1a08,{href:"javascript:;",innerHTML:_1a04});
for(var attr in _1a05){
_1a09.style[attr]=_1a05[attr];
}
std.event.observe(_1a09,"click",_1a07);
return _1a08;
};
editgrid.colorpicker.Picker.prototype._addInputButton=function(_1a0b,_1a0c,_1a0d,_1a0e,_1a0f){
var _1a10=std.dom.newElement("button",_1a0b,{className:_1a0e,innerHTML:_1a0c},{styleFloat:"right",cssFloat:"right",width:"80px"});
for(var attr in _1a0d){
_1a10.style[attr]=_1a0d[attr];
}
std.event.observe(_1a10,"click",_1a0f);
return _1a10;
};
editgrid.colorpicker.Picker.config={switchBorder:1,switchSpacing:2};
editgrid.colorpicker.Picker.prototype._parseColorString=function(s){
if(s.match(/[0-9a-fA-F]{6}$/)){
if(s.length==6){
iStart=0;
}else{
if(s.length==7&&s[0]=="#"){
iStart=1;
}else{
return null;
}
}
return [parseInt(s.substring(iStart,iStart+2),16),parseInt(s.substring(iStart+2,iStart+4),16),parseInt(s.substring(iStart+4,iStart+6),16)];
}
return null;
};
editgrid.colorpicker.Pulldown=function(_1a13,_1a14,_1a15,_1a16){
this.swatchWidth=_1a13;
this.swatchHeight=_1a14;
this.defaultColor=_1a16;
this.textNoColor=_1a15;
var _1a17=this.colorPicker=new editgrid.colorpicker.Picker(_1a13,_1a14,"",_1a15);
var self=this;
_1a17.onPick=function(rgb){
_1a17.getRoot().style.display="none";
self.setColor(rgb);
self.onPick(rgb);
_1a17.updateCustom(rgb);
};
};
editgrid.colorpicker.Pulldown.prototype.getRoot=function(){
if(this.element!=null){
return this.element;
}
var _1a1a=["<table border=\"0\" cellspacing=\"0\" cellpadding=\"3\" onselectstart=\"return false\">","<tr>","<td attachPoint=\"colorBox\" width=\"16\"></td>","<td attachPoint=\"colorValue\" align=\"left\" valign=\"center\" width=\"100%\" style=\"white-space: nowrap\"></td>","<td attachPoint=\"expandButton\" valign=\"center\"><div class=\"ColorPickerPulldownButton\"> </div></td>","</tr>","</table>"].join("");
var _1a1b=this.element=std.dom.newElement("div",null,{className:"ToolboxButtonLite undraggable"});
var link=this.elementLink=std.dom.newElement("a",_1a1b,{className:"ColorPickerButton",href:"javascript:;",innerHTML:_1a1a},{display:"block"});
var _1a1d=this.colorBox=std.dom.newElement("div",null,{innerHTML:"&nbsp;"},{cssFloat:"left",styleFloat:"left",border:"solid 1px black",fontSize:"1px",width:this.swatchWidth+"px",height:this.swatchHeight+"px"});
var _1a1e=this.colorValue=std.dom.newElement("span");
var slots=std.dom.extractAttachmentPoints(link);
slots["colorBox"].appendChild(_1a1d);
slots["colorValue"].appendChild(_1a1e);
var _1a20=this.popupContainer=std.dom.newElement("div",_1a1b,null,{position:"relative",top:"-1px",width:"0px",height:"0px"});
var _1a21=this.colorPickerRoot=this.colorPicker.getRoot();
std.css.includeClass(_1a21,"ColorPickerPopup");
_1a20.appendChild(_1a21);
var style=_1a21.style;
style.position="absolute";
style.display="none";
var self=this;
std.event.observe(link,"click",function(e){
var _hide=function(e){
self.hidePopup();
std.event.stopObserving(document,"click",_hide);
};
if(style.display=="none"){
self.showPopup();
std.event.observe(document,"click",_hide);
std.event.vanish(e);
}else{
self.hidePopup();
}
});
this.setColor(null);
return _1a1b;
};
editgrid.colorpicker.Pulldown.prototype.showPopup=function(){
this.colorPickerRoot.style.display="block";
};
editgrid.colorpicker.Pulldown.prototype.hidePopup=function(){
if(this.colorPickerRoot){
this.colorPickerRoot.style.display="none";
}
};
editgrid.colorpicker.Pulldown.prototype.setColor=function(rgb){
var a=rgb||this.defaultColor;
if(a){
s="#"+std.conv.intToRGB(std.conv.rgbArrayToInt(a[0],a[1],a[2]));
}
this.colorBox.style.backgroundColor=a!=null?s:"transparent";
this.colorValue.innerHTML=rgb!=null?s:this.textNoColor;
};
editgrid.colorpicker.Picker._colorTableCore=[[0,0,0],[153,51,0],[51,51,0],[0,51,0],[0,51,102],[0,0,128],[51,51,153],[51,51,51],[128,0,0],[255,102,0],[128,128,0],[0,128,0],[0,128,128],[0,0,255],[102,102,153],[128,128,128],[255,0,0],[255,153,0],[153,204,0],[51,153,102],[51,204,204],[51,102,255],[128,0,128],[150,150,150],[255,0,255],[255,204,0],[255,255,0],[0,255,0],[0,255,255],[0,204,255],[153,51,102],[192,192,192],[255,153,204],[255,204,153],[255,255,153],[204,255,204],[204,255,255],[153,204,255],[204,153,255],[255,255,255]];
editgrid.colorpicker.Picker._colorTableMore=[[153,0,0],[204,51,0],[102,51,51],[153,153,0],[51,153,0],[0,102,0],[0,153,51],[0,102,102],[0,51,153],[0,51,204],[0,0,153],[153,0,102],[102,0,102],[0,0,0],[153,51,51],[204,102,0],[153,51,0],[204,204,0],[102,153,0],[51,153,51],[0,153,102],[51,153,153],[0,102,153],[0,102,204],[51,51,204],[204,0,153],[153,0,153],[51,51,51],[204,0,0],[255,102,51],[153,102,0],[204,204,102],[153,204,0],[51,204,51],[0,204,153],[0,204,204],[51,153,204],[0,51,255],[51,0,255],[204,51,153],[153,51,153],[102,102,102],[204,51,51],[255,51,0],[204,153,0],[255,255,0],[153,204,51],[102,204,102],[51,204,153],[102,204,204],[0,153,204],[0,102,255],[0,0,255],[255,0,255],[204,0,255],[153,153,153],[255,0,0],[255,102,0],[204,153,51],[255,255,51],[204,255,0],[51,255,51],[0,255,204],[0,255,255],[0,204,255],[51,102,255],[51,51,255],[255,51,255],[204,0,255],[192,192,192],[255,51,51],[255,153,0],[255,204,0],[255,255,102],[204,255,51],[102,255,102],[51,255,204],[102,255,255],[51,204,255],[102,153,255],[102,102,255],[255,102,255],[204,51,255],[204,204,204],[255,102,102],[255,153,51],[255,204,51],[255,255,153],[204,255,102],[153,255,153],[102,255,204],[153,255,255],[102,204,255],[51,153,255],[153,153,255],[255,153,255],[204,102,255],[238,238,238],[255,204,204],[255,204,153],[255,204,102],[255,255,204],[204,255,153],[204,255,204],[153,255,204],[204,255,255],[153,204,255],[0,153,255],[204,204,255],[255,204,255],[204,153,255],[255,255,255]];
editgrid.chat={};
editgrid.chat.Chat=function(_1a29){
this.nodes={paneLog:std.dom.element(_1a29.paneLog),paneUserList:std.dom.element(_1a29.paneUserList),inputMessage:std.dom.element(_1a29.inputMessage)};
this.baseUrl=_1a29.baseUrl;
this.chatroom=_1a29.chatroom;
this.status={};
this.queue=[];
this.since=0;
this.oldMessageId={};
this.messagesCount=0;
std.topic.define(this,"onSignon");
std.topic.define(this,"onSignout");
std.topic.define(this,"onUpdate");
std.topic.define(this,"onError");
std.topic.define(this,"onVersionDeprecated");
this.nodes.paneLog.style.overflow="auto";
this.nodes.paneUserList.style.overflow="auto";
std.event.observe(window,"unload",std.lang.bind(this,this._cleanup));
};
editgrid.chat.Chat.VERSION=1;
editgrid.chat.Chat.MSG_TYPE_NORMAL=0;
editgrid.chat.Chat.MSG_TYPE_SIGNON=1;
editgrid.chat.Chat.MSG_TYPE_SIGNOUT=2;
editgrid.chat.Chat.MSG_TYPE_TIMEOUT=3;
editgrid.chat.Chat.prototype._getEndPoint=function(){
return this.baseUrl+"chat/"+editgrid.chat.Chat.VERSION+"/";
};
editgrid.chat.Chat.prototype.signon=function(){
this._init();
if(!this.status.signon){
this._enqueue(this._getEndPoint()+"signon/"+this.chatroom,null,std.lang.bind(this,this._postSignon));
}
};
editgrid.chat.Chat.prototype.signout=function(){
this._init();
if(this.status.signon){
this._enqueue(this._getEndPoint()+"signout/"+this.chatroom,null,std.lang.bind(this,this._postSignout));
}
};
editgrid.chat.Chat.prototype.write=function(_1a2a){
this._init();
if(this.status.signon){
this._enqueue(this._getEndPoint()+"write/"+this.chatroom,_1a2a);
}
};
editgrid.chat.Chat.prototype.getMessagesCount=function(){
return this.messagesCount||0;
};
editgrid.chat.Chat.prototype.getUsersCount=function(){
return this.usersCount||0;
};
editgrid.chat.Chat.prototype._postSignon=function(json){
this.status.signon=true;
this.user={ChatUserId:json.ChatUserId,ChatUserName:json.ChatUserName};
std.topic.publish(this,"onSignon");
this._setUserList(json.UserList);
this._mergeHistory(json.History);
std.topic.publish(this,"onUpdate");
};
editgrid.chat.Chat.prototype._postSignout=function(json){
this.status.signon=false;
std.topic.publish(this,"onSignout");
};
editgrid.chat.Chat.prototype._setUserList=function(_1a2d){
this.users={};
this.usersDomNodes={};
this.usersCount=0;
this.nodes.paneUserList.innerHTML="";
for(var i=0;i<_1a2d.length;i++){
this._addUser(_1a2d[i]);
}
};
editgrid.chat.Chat.prototype._delUser=function(_1a2f){
if(this.users[_1a2f]){
std.dom.remove(this.usersDomNodes[_1a2f]);
this.users[_1a2f]=null;
this.usersDomNodes[_1a2f]=null;
this.usersCount--;
}
};
editgrid.chat.Chat.prototype._addUser=function(item){
var _1a31=item.ChatUserId;
if(this.users[_1a31]){
this._delUser(_1a31);
}
this.users[_1a31]={ChatUserId:_1a31,ChatUserName:item.ChatUserName,UserId:item.UserId,Login:item.Login,Organisatoin:item.Organisation};
var _1a32=this.usersDomNodes[_1a31]=std.dom.newDiv(this.nodes.paneUserList);
_1a32.title=item.UserId?item.Organisation+"/"+item.Login:loc("Anonymous User");
_1a32.className="ChatUserEntry ChatUserEntry"+(_1a31==this.user.ChatUserId?"Self":"Others");
std.dom.newText(item.ChatUserName,_1a32);
this.usersCount++;
};
editgrid.chat.Chat.prototype._mergeHistory=function(_1a33){
var _1a34=this.since;
var _1a35={};
for(var i=0;i<_1a33.length;i++){
var item=_1a33[i];
if(this.oldMessageId[item.ChatMessageId]||item.Time<this.since){
continue;
}
_1a34=Math.max(_1a34,item.Time);
_1a35[item.ChatMessageId]=true;
var date=std.date.fromSqlUTC(item.Time+"");
var _1a39=(date.getHours()<10?"0":"")+date.getHours()+":"+(date.getMinutes()<10?"0":"")+date.getMinutes();
var _1a3a=null;
var _1a3b;
switch(item.Type){
case editgrid.chat.Chat.MSG_TYPE_NORMAL:
_1a3a=item.ChatUserName+" ("+_1a39+") : "+item.Body;
_1a3b=item.ChatUserId==this.user.ChatUserId?"ChatMessageEntrySelf":"ChatMessageEntryOthers";
this.messagesCount++;
break;
case editgrid.chat.Chat.MSG_TYPE_SIGNON:
_1a3a=loc("&1 has entered. (&2)",item.ChatUserName,_1a39);
_1a3b="ChatMessageEntrySystem";
this._addUser(item);
break;
case editgrid.chat.Chat.MSG_TYPE_SIGNOUT:
_1a3a=loc("&1 has left. (&2)",item.ChatUserName,_1a39);
_1a3b="ChatMessageEntrySystem";
this._delUser(item.ChatUserId);
break;
case editgrid.chat.Chat.MSG_TYPE_TIMEOUT:
_1a3a=loc("&1 has left. (timeout, &2)",item.ChatUserName,_1a39);
_1a3b="ChatMessageEntrySystem";
this._delUser(item.ChatUserId);
break;
}
if(_1a3a){
this._appendMessage(_1a3a,_1a3b);
}
if(item.Type==this.constructor.MSG_TYPE_NORMAL&&this.onNewMessage){
this.onNewMessage({item:item});
}
}
if(this.since!=_1a34){
this.since=_1a34;
this.oldMessageId=_1a35;
}else{
for(var id in _1a35){
this.oldMessageId[id]=true;
}
}
};
editgrid.chat.Chat.prototype._appendMessage=function(_1a3d,_1a3e){
var _1a3f=std.dom.newElement("div",this.nodes.paneLog,{className:"ChatMessageEntry "+_1a3e});
_1a3d=std.string.fullEscapeHTML(_1a3d);
_1a3d=std.string.autoLink(_1a3d);
_1a3f.innerHTML=_1a3d;
this.scroll();
};
editgrid.chat.Chat.prototype.scroll=function(){
this.nodes.paneLog.scrollTop=this.nodes.paneLog.scrollHeight;
};
editgrid.chat.Chat.prototype._loadHistory=function(json){
if(json){
this._mergeHistory(json.History);
std.topic.publish(this,"onUpdate");
}else{
var url=this._getEndPoint()+"history/"+this.chatroom+"?since="+(this.since||"");
this._enqueue(url,null,std.lang.bind(this,this._loadHistory));
}
};
editgrid.chat.Chat.prototype._onInputMessageSubmit=function(e){
std.event.preventDefault(e);
var _1a43=this.nodes.inputMessage.value;
if(_1a43.length>0){
this.nodes.inputMessage.value="";
this.write(_1a43);
}
};
editgrid.chat.Chat.prototype._init=function(){
if(!this.status.initialized){
std.event.observe(window,"beforeunload",std.lang.bind(this,this.signout));
std.event.observe(this.nodes.inputMessage.form,"submit",std.event.listener(this,this._onInputMessageSubmit));
this.status.initialized=true;
this.status.idle=true;
}
};
editgrid.chat.Chat.prototype.triggerUpdate=function(){
if(this.status.initialized&&this.status.signon){
this._loadHistory();
}
};
editgrid.chat.Chat.prototype._enqueueKeepAlive=function(){
this._enqueue(this._getEndPoint()+"keepalive/"+this.chatroom);
};
editgrid.chat.Chat.prototype._enqueue=function(url,body,_1a46){
this.queue.push({url:url,body:body,handler:_1a46});
if(this.status.idle){
this._send();
}
};
editgrid.chat.Chat.prototype._send=function(){
var _1a47=this.queue[0];
this.status.idle=false;
this.sendTimer=setTimeout(std.lang.bind(this,this._abort),10000);
clearTimeout(this.keepAliveTimer);
this.keepAliveTimer=setTimeout(std.lang.bind(this,this._enqueueKeepAlive),240*1000);
this.transport=std.ajax.getTransport();
this.transport.onreadystatechange=std.lang.bind(this,this._onStateChange);
this.transport.open("POST",_1a47.url);
this.transport.setRequestHeader("Content-Type","text/plain");
this.transport.send(_1a47.body||"");
};
editgrid.chat.Chat.prototype._abort=function(){
this.transport.abort();
};
editgrid.chat.Chat.prototype._onStateChange=function(){
if(typeof (std)=="undefined"){
return;
}
if(this.transport.readyState==4){
this.transport.onreadystatechange=function(){
};
clearTimeout(this.sendTimer);
var _1a48=0;
try{
_1a48=this.transport.status;
}
catch(e){
}
if(_1a48==200){
var res=std.json.parse(this.transport.responseText);
var _1a4a=this.queue.shift();
if(res.isError){
alert("Error parsing response in chat: "+res.error);
}else{
if(res.json.Error){
std.topic.publish(this,"onError",res.json.Error.Code,res.json.Error.Message,res.json);
}else{
if(_1a4a.handler){
_1a4a.handler(res.json);
}
if(res.json.Deprecated){
std.topic.publish(this,"onVersionDeprecated");
}
}
}
if(this.queue.length){
setTimeout(std.lang.bind(this,this._send),0);
}else{
this.status.idle=true;
}
}else{
setTimeout(std.lang.bind(this,this._send),10000);
}
this.transport=null;
}
};
editgrid.chat.Chat.prototype._cleanup=function(){
if(this.transport){
this.transport.onreadystatechange=function(){
};
this.transport=null;
}
};
editgrid.chat.ChatBox=function(_1a4b){
var nodes=this.getNodes();
this.chat=new editgrid.chat.Chat({paneLog:nodes.paneMessage,paneUserList:nodes.paneUserList,inputMessage:nodes.inputMessage,baseUrl:_1a4b.baseUrl,chatroom:_1a4b.chatroom});
};
editgrid.chat.ChatBox.prototype.getNodes=function(){
if(!this.nodes){
this.nodes={};
var _1a4d=new std.dom.Builder();
this.nodes.root=_1a4d.push("div",{title:loc("Live Chat")});
_1a4d.push("table");
_1a4d.push("tbody");
_1a4d.push("tr");
_1a4d.push("td");
_1a4d.push("span",{className:"undraggable"});
this.nodes.paneMessage=_1a4d.append("div",{className:"ChatMessagePane"});
_1a4d.pop();
_1a4d.pop();
_1a4d.push("td");
_1a4d.push("span",{className:"undraggable"});
this.nodes.paneUserList=_1a4d.append("div",{className:"ChatUserList"});
_1a4d.pop();
_1a4d.pop();
_1a4d.pop();
_1a4d.pop();
_1a4d.pop();
this.nodes.form=_1a4d.push("form");
this.nodes.inputPane=_1a4d.push("table",{className:"ChatInputPane"});
_1a4d.push("tbody");
_1a4d.push("tr");
_1a4d.push("td",null,{width:"100%"});
this.nodes.inputMessage=_1a4d.append("input",{type:"text"},{width:"100%"});
_1a4d.pop();
_1a4d.push("td");
this.nodes.inputSubmit=_1a4d.append("input",{type:"submit",value:loc("Send"),className:"InputButton"});
std.event.observe(this.nodes.inputSubmit,"click",std.lang.bind(this,this.focus));
}
return this.nodes;
};
editgrid.chat.ChatBox.prototype.focus=function(chat){
this.getNodes().inputMessage.focus();
};
editgrid.chat.ChatBox.prototype.resizeMsgPane=function(w,h){
};
editgrid.chat.Notification=function(param){
param=param||{};
this._setTitle=std.lang.bind(this,param.setTitle||function(title){
document.title=title;
});
this._getTitle=std.lang.bind(this,param.getTitle||function(){
return document.title;
});
this._updateInterval=param.updateInterval||2500;
this._chat=param.chat;
this._active=false;
this._msgTitle=null;
this._onNewMessage=param.onNewMessage;
this._chat.onNewMessage=std.lang.bind(this,function(ctx){
this._onChatNewMessage(ctx);
});
};
editgrid.chat.Notification.prototype.activate=function(){
if(this._active){
return false;
}
this._active=true;
this._oldTitle=this._getTitle();
this._msgOn=false;
this._msgTitle=null;
setTimeout(std.lang.bind(this,this._update),this._updateInterval);
return true;
};
editgrid.chat.Notification.prototype.deactivate=function(){
if(!this._active){
return false;
}
this._active=false;
this._setTitle(this._oldTitle);
this._msgOn=false;
return true;
};
editgrid.chat.Notification.prototype.markAsRead=function(){
this._msgTitle=null;
};
editgrid.chat.Notification.prototype._onChatNewMessage=function(ctx){
var item=ctx.item;
if(item.ChatUserId!=this._chat.user.ChatUserId){
this._msgTitle=item.ChatUserName+" "+loc("says")+" "+item.Body;
if(this._onNewMessage){
this._onNewMessage();
}
}
};
editgrid.chat.Notification.prototype._update=function(){
if(!this._msgOn){
this._oldTitle=this._getTitle();
}
this._msgOn=!this._msgOn;
this._setTitle(this._msgOn&&this._msgTitle?this._msgTitle:this._oldTitle);
if(this._active){
setTimeout(std.lang.bind(this,this._update),this._updateInterval);
}else{
this._setTitle(this._oldTitle);
}
};
editgrid.clip={};
editgrid.clip.Clip=function(_1a56,width,items){
this._construct(_1a56,width);
if(items&&items.length>0){
this.addItems(items);
}
};
editgrid.clip.Clip.prototype._buttonWidth=60;
editgrid.clip.Clip.prototype._construct=function(_1a59,width){
this._currItem=0;
this._items=null;
this._width=width;
var _1a5b=new std.dom.Builder(_1a59);
this.root=_1a5b.push("table",{className:"",border:"0",cellPadding:0,cellSpacing:0,width:"100%"},{display:"none"});
_1a5b.push("tbody");
_1a5b.push("tr");
_1a5b.push("td");
this._text=_1a5b.push("div",null,{width:width+"px",overflow:"hidden",paddingRight:"10px",textAlign:"right"});
_1a5b.pop();
_1a5b.pop();
var _1a5c=this._buttonContainer=_1a5b.push("td",{className:"ClipButtonContainer"},{paddingLeft:"5px",textAlign:"left",width:"0px"});
_1a5b.pop();
std.event.observe(_1a5c,"selectstart",std.event.listener(this,function(e){
return false;
}));
std.event.observe(_1a5c,"dblclick",std.event.listener(this,function(e){
return false;
}));
this._prevButton=std.dom.newElement("div",_1a5c,{className:"ClipButton ClipButtonPrev"});
std.dom.newElement("a",this._prevButton,{href:"javascript:;"});
std.event.observe(this._prevButton,"click",std.event.listener(this,function(e){
this.showPrev();
}));
std.dom.hide(this._prevButton);
std.dom.newText(" ",_1a5c);
this._nextButton=std.dom.newElement("div",_1a5c,{className:"ClipButton ClipButtonNext"});
std.dom.newElement("a",this._nextButton,{href:"javascript:;"});
std.event.observe(this._nextButton,"click",std.event.listener(this,function(e){
this.showNext();
}));
std.dom.hide(this._nextButton);
};
editgrid.clip.Clip.prototype.showButtons=function(){
this._text.style.width=(this._width-this._buttonWidth)+"px";
this._buttonContainer.width=this._buttonWidth+"px";
std.dom.show(this._prevButton);
std.dom.show(this._nextButton);
};
editgrid.clip.Clip.prototype.hideButtons=function(){
this._text.style.width=(this._width)+"px";
this._buttonContainer.style.width="0px";
std.dom.hide(this._prevButton);
std.dom.hide(this._nextButton);
};
editgrid.clip.Clip.prototype.addItems=function(items){
if(items&&items.length>0){
this.root.style.display="";
this._currItems=0;
if(!this._items){
this._items=items;
}else{
this._items=items.concat(this._items);
}
this._text.innerHTML=this._items[this._currItems];
}
if(this._items.length>1){
this.showButtons();
}else{
this.hideButtons();
}
};
editgrid.clip.Clip.prototype.showNext=function(){
if(++this._currItem>=this._items.length){
this._currItem=0;
}
this._text.innerHTML=this._items[this._currItem];
};
editgrid.clip.Clip.prototype.showPrev=function(){
if(--this._currItem<0){
this._currItem=this._items.length-1;
}
this._text.innerHTML=this._items[this._currItem];
};
editgrid.findAndReplace={};
editgrid.findAndReplace.Replace=function(_1a62){
this.schema=editgrid.findAndReplace.Replace.schema;
this.templateTreeGetter=_1a62;
};
editgrid.findAndReplace.Replace.schema={inputs:["replaceWhat","replaceWith"],buttons:["find","replace","replaceAll","close"],options:["ignoreCase","wholeWords"],activate:{"replaceWhat":"find","replaceWith":"replace"}};
editgrid.findAndReplace.Replace.prototype.getRoot=function(){
if(std.lang.undef(this.elements)){
var tree=this.templateTreeGetter();
this.elements=std.dom.extractAttachmentPoints(tree);
this.initButtons();
this.initConstraints();
}
return this.elements.root;
};
editgrid.findAndReplace.Replace.prototype.initButtons=function(){
var _1a64=this.schema.buttons;
for(var i=0;i<_1a64.length;++i){
std.lang.bind(this,function(){
var name=std.string.capitalize(_1a64[i]);
std.event.observe(this.elements["button"+name],"click",std.lang.bind(this,function(e){
var _1a68=this["on"+name];
if(_1a68){
_1a68(e);
}
}));
})();
}
var _1a69=this.schema.activate;
for(var k in _1a69){
std.lang.bind(this,function(){
var input=this.elements["input"+std.string.capitalize(k)];
var name=std.string.capitalize(_1a69[k]);
std.event.observe(input,"keypress",std.event.listener(this,function(e){
var _1a6e=this["on"+name];
if(e.keyCode==editgrid.event.keyCodes.KEY_ENTER){
if(_1a6e){
_1a6e(e);
}
}
}));
})();
}
};
editgrid.findAndReplace.Replace.prototype.initConstraints=function(){
std.form.ifEmptyDisable(this.elements["inputReplaceWhat"],[this.elements["buttonFind"],this.elements["buttonReplace"],this.elements["buttonReplaceAll"]]);
};
editgrid.findAndReplace.Replace.prototype.getParameters=function(){
var _1a6f={};
var _1a70=this.schema.inputs;
var _1a71=this.schema.options;
for(var i=0;i<_1a70.length;++i){
_1a6f[_1a70[i]]=this.elements["input"+std.string.capitalize(_1a70[i])].value;
}
_1a6f.options={};
for(var i=0;i<_1a71.length;++i){
_1a6f.options[_1a71[i]]=this.elements["option"+std.string.capitalize(_1a71[i])].checked?1:0;
}
return _1a6f;
};
editgrid.findAndReplace.Replace.prototype.focus=function(){
var input=this.elements["inputReplaceWhat"];
input.focus();
input.select();
};
editgrid.repairArrayFormula={};
editgrid.repairArrayFormula=function(_1a74){
this.templateTreeGetter=_1a74;
this.schema=editgrid.repairArrayFormula.schema;
this._repairing=false;
};
editgrid.repairArrayFormula.schema={buttons:["repairAll","close"]};
editgrid.repairArrayFormula.prototype.getRoot=function(){
if(std.lang.undef(this.elements)){
var tree=this.templateTreeGetter();
this.elements=std.dom.extractAttachmentPoints(tree);
this.initButtons();
}
return this.elements.root;
};
editgrid.repairArrayFormula.prototype.initButtons=function(){
var _1a76=this.schema.buttons;
for(var i=0;i<_1a76.length;++i){
std.lang.bind(this,function(){
var name=std.string.capitalize(_1a76[i]);
std.event.observe(this.elements["button"+name],"click",std.lang.bind(this,function(e){
var _1a7a=this["on"+name];
if(_1a7a){
_1a7a(e);
}
}));
})();
}
};
editgrid.repairArrayFormula.prototype.focus=function(){
};
editgrid.repairArrayFormula.prototype.repairingListener=function(){
std.dom.show(this.elements["labelRepairingMessage"]);
std.dom.hide(this.elements["labelSuccessMessage"]);
std.dom.hide(this.elements["labelFailureMessage"]);
this._repairing=true;
};
editgrid.repairArrayFormula.prototype.repairSuccessListener=function(){
std.dom.hide(this.elements["labelRepairingMessage"]);
std.dom.show(this.elements["labelSuccessMessage"]);
std.dom.hide(this.elements["labelFailureMessage"]);
this._repairing=false;
};
editgrid.repairArrayFormula.prototype.repairFailureListener=function(){
std.dom.hide(this.elements["labelRepairingMessage"]);
std.dom.hide(this.elements["labelSuccessMessage"]);
std.dom.show(this.elements["labelFailureMessage"]);
this._repairing=false;
};
editgrid.repairArrayFormula.prototype.isRepairing=function(){
return this._repairing;
};
editgrid.remoteImage={};
editgrid.remoteImage.Editor=function(_1a7b){
this.templateTreeGetter=_1a7b;
};
editgrid.remoteImage.Editor.prototype.getRoot=function(){
if(std.lang.undef(this.elements)){
var tree=this.templateTreeGetter();
this.elements=std.dom.extractAttachmentPoints(tree);
std.event.observe(this.elements["buttonForm"],"submit",std.event.listener(this,this._onSubmit));
std.event.observe(this.elements["buttonCancel"],"click",std.event.listener(this,this._onCancel));
}
return this.elements.root;
};
editgrid.remoteImage.Editor.prototype.setCancelHandler=function(_1a7d){
this._cancelHandler=_1a7d;
};
editgrid.remoteImage.Editor.prototype.setSubmitHandler=function(_1a7e){
this._submitHandler=_1a7e;
};
editgrid.remoteImage.Editor.prototype._onCancel=function(e){
if(typeof (this._cancelHandler)=="function"){
this._cancelHandler();
}
};
editgrid.remoteImage.Editor.prototype._onSubmit=function(e){
std.event.vanish(e);
if(typeof (this._submitHandler)=="function"){
this._submitHandler();
}
};
editgrid.remoteImage.Editor.prototype.setURL=function(url){
this.elements["inputUrl"].value=url;
};
editgrid.remoteImage.Editor.prototype.getURL=function(){
return this.elements["inputUrl"].value;
};
editgrid.remoteImage.Editor.prototype.setLinkURL=function(_1a82){
this.elements["inputLinkUrl"].value=_1a82;
};
editgrid.remoteImage.Editor.prototype.getLinkURL=function(){
return this.elements["inputLinkUrl"].value;
};
editgrid.hyperlink={};
editgrid.hyperlink.Editor=function(_1a83){
this.templateTreeGetter=_1a83;
this.currentType=null;
this.fields={};
};
editgrid.hyperlink.Editor.prototype.getRoot=function(){
if(this.elements==null){
var tree=this.templateTreeGetter();
this.elements=std.dom.extractAttachmentPoints(tree);
this.initTypes();
std.event.observe(this.elements["buttonOk"],"click",std.event.listener(this,function(){
this.onOk();
}));
std.event.observe(this.elements["buttonCancel"],"click",std.event.listener(this,function(){
this.onCancel();
}));
std.event.observe(this.elements["inputType"],"change",std.event.listener(this,function(){
this.onChange();
}));
}
return this.elements.root;
};
editgrid.hyperlink.Editor.prototype.setCell=function(cell){
this.cell=cell;
var _1a86=this._parseInput(cell.getText(),cell.getDisplayText());
this.input=_1a86.input;
this.setSelectedType(_1a86.type);
if(_1a86.href&&this._isQuoted(_1a86.href.value)){
var val=_1a86.href.value;
this.populateInput(this._stripQuotes(val));
}
var _1a88=this.input.literal;
var label=this.input.value;
this.elements["inputLabel"].value=label!=null?_1a88&&this._isQuoted(label)?this._stripQuotes(label):label:"";
this.elements["inputLabel"].disabled=!_1a88;
};
editgrid.hyperlink.Editor.prototype.getResult=function(){
var val=this.elements["inputLabel"].value;
if(val==null){
val="";
}
if(this._isQuoted(val)){
val=val.substring(1,val.length-1);
}
if(this.currentType!=null){
this._updateInputCache();
var href=this._constructHref();
if(val==""){
val=href;
}
if(this.input.literal){
val="\""+val+"\"";
}
if(!this.currentType.dynamic){
href="\""+href+"\"";
}
return "=hyperlink("+href+","+val+")";
}else{
return this.input.literal?val:"="+val;
}
};
editgrid.hyperlink.Editor.prototype.initTypes=function(){
var _1a8c=editgrid.hyperlink.Editor.schema;
for(var i=0;i<_1a8c.length;++i){
this._registerType(_1a8c[i]);
}
};
editgrid.hyperlink.Editor.prototype._registerType=function(data){
if(this.types==null){
this.types={};
this.typeList=[];
}
if(data.name==null){
data.name=data.type;
}
data.cachedValues={};
this.typeList.push(this.types[data.type]=data);
std.dom.addOption(this.elements["inputType"],new Option(data.label,data.type));
};
editgrid.hyperlink.Editor.prototype._parseInput=function(text,rText){
if(text==null){
return {type:null,input:{value:null,literal:true}};
}else{
if(text.match(/^=hyperlink\([\s]*([^,]*)[\s]*,[\s]*(.*)[\s]*\)$/i)){
var _1a91=RegExp.$1;
var _1a92=RegExp.$2;
var rHref="";
if(rText.match(/^<a[\s]*href="([^"]*)"[^>]*>.*<\/a>$/i)){
rHref=RegExp.$1;
}
var type=this._getLinkType(rHref);
return {type:type,input:{value:_1a95?this._stripQuotes(_1a92):_1a92,literal:this._isQuoted(_1a92)},href:{value:_1a91,display:rHref}};
}else{
var _1a95=text.charAt(0)!="=";
return {type:null,input:{value:text.substring(_1a95?0:1),literal:_1a95}};
}
}
};
editgrid.hyperlink.Editor.prototype._isQuoted=function(s){
return (s.charAt(0)=="\""&&s.charAt(s.length-1)=="\""&&s.length>=2);
};
editgrid.hyperlink.Editor.prototype._stripQuotes=function(s){
return s.substring(1,s.length-1);
};
editgrid.hyperlink.Editor.prototype._getLinkType=function(href){
for(var k in this.types){
var _1a9a=this.types[k].prefix;
for(var i=0;i<_1a9a.length;++i){
if(href.indexOf(_1a9a[i])==0){
return this.types[k];
}
}
}
return null;
};
editgrid.hyperlink.Editor.prototype.getSelectedType=function(){
var _1a9c=this.elements["inputType"];
return this.types[_1a9c.options[_1a9c.selectedIndex].value];
};
editgrid.hyperlink.Editor.prototype.setSelectedTypeByName=function(_1a9d){
return this.setSelectedType(this.types[_1a9d]);
};
editgrid.hyperlink.Editor.prototype._updateInputCache=function(){
for(var k in this.fields){
this.currentType.cachedValues[k]=this.fields[k].value;
}
};
editgrid.hyperlink.Editor.prototype.clearInput=function(){
for(var t in this.types){
this.types[t].cachedValues={};
}
for(var k in this.fields){
this.fields[k].value="";
}
};
editgrid.hyperlink.Editor.prototype.populateInput=function(href){
var _1aa2=this.currentType.fields;
var _1aa3=this.currentType.prefix;
for(var i=0;i<_1aa3.length;++i){
if(href.indexOf(_1aa3[i])==0){
href=href.substring(_1aa3[i].length);
break;
}
}
for(var i=0;i<_1aa2.length;++i){
var field=this.fields[_1aa2[i].name];
var value=_1aa2[i].extract(href);
field.value=value;
}
};
editgrid.hyperlink.Editor.prototype._constructHref=function(){
if(this.currentType==null){
return "";
}
var _1aa7={};
for(var k in this.currentType.cachedValues){
_1aa7[k]=this.currentType.cachedValues[k];
}
var link=this.currentType.output(_1aa7);
var _1aaa=this.currentType.prefix;
var match=false;
for(var i=0;i<_1aaa.length;++i){
if(link.indexOf(_1aaa[i])==0){
return link;
}
}
return _1aaa[0]+link;
};
editgrid.hyperlink.Editor.prototype.setSelectedType=function(_1aad){
this._updateInputCache();
var pane=this.elements["propertyPane"];
pane.innerHTML="";
if(this.currentType!=_1aad){
this.currentType=_1aad;
this.elements["inputType"].value=_1aad==null?"":_1aad.name;
}
this.fields={};
if(_1aad){
var _1aaf=new std.dom.Builder(pane);
_1aaf.push("table",{cellPadding:3,width:"100%"});
_1aaf.push("tbody");
var _1ab0=_1aad.fields;
var cache=_1aad.cachedValues;
for(var i=0;i<_1ab0.length;++i){
_1aaf.push("tr");
var k=_1ab0[i].name;
switch(_1ab0[i].inputType){
case "textarea":
this.fields[k]=std.dom.newElement("textarea",null,null,{width:"100%"});
break;
case "option":
this.fields[k]=std.dom.newElement("select",null,null,{width:"100%"});
var _1ab4=std.dom.newElement("option",this.fields[k],{value:""});
_1ab4.innerHTML=loc("-- Please Select --");
var _1ab5=grid.workbook.sheets;
for(var id in _1ab5){
var _1ab7=std.dom.newElement("option",this.fields[k],{value:_1ab5[id].name});
_1ab7.innerHTML=std.string.escapeHTML(_1ab5[id].name);
}
break;
default:
this.fields[k]=std.dom.newElement("input",null,{type:"text"},{width:"100%"});
}
var field=this.fields[k];
if(cache[k]!=null){
field.value=cache[k];
}
_1aaf.append("td",{vAlign:"top"},{whiteSpace:"nowrap"}).appendChild(std.dom.newText(_1ab0[i].label));
_1aaf.append("td",{vAlign:"top"},{width:"100%"}).appendChild(field);
_1aaf.pop();
}
if(_1aad.examples){
_1aaf.push("tr");
_1aaf.append("td",{colSpan:"2"}).innerHTML="<br/><b>"+loc("Example")+"</b>: "+_1aad.examples.join(", ");
_1aaf.pop();
}
_1aaf.pop();
_1aaf.pop();
}
};
editgrid.hyperlink.Editor.prototype.onChange=function(){
this.setSelectedType(this.getSelectedType());
};
editgrid.hyperlink.Editor.schema=[{type:"web",label:loc("Web Link"),prefix:["http://","https://"],fields:[{name:"url",label:loc("Web Address"),extract:function(s){
return s;
}}],output:function(_1aba){
return _1aba["url"];
}},{type:"email",label:loc("Email Link"),prefix:["mailto:"],fields:[{name:"address",label:loc("Email Address"),extract:function(s){
return s.indexOf("?")==-1?s:s.substring(0,s.indexOf("?"));
}},{name:"subject",label:loc("Subject"),extract:function(s){
return s.match(/[?|&]subject=([^&]*)/i)?decodeURIComponent(RegExp.$1):"";
}},{name:"body",label:loc("Body"),extract:function(s){
return s.match(/[?|&]body=([^&]*)/i)?decodeURIComponent(RegExp.$1):"";
},inputType:"textarea"}],output:function(_1abe){
var url=_1abe["address"];
if(_1abe["subject"]!=""){
url+=(url.indexOf("?")==-1?"?":"&")+"subject="+encodeURIComponent(_1abe["subject"]);
}
if(_1abe["body"]!=""){
url+=(url.indexOf("?")==-1?"?":"&")+"body="+encodeURIComponent(_1abe["body"]);
}
return url;
}},{type:"internal",label:loc("Internal Link"),prefix:["#"],fields:[{name:"sheetName",label:loc("Sheet"),extract:function(s){
return s.lastIndexOf("!")==-1?"":s.substring(0,s.lastIndexOf("!"));
},inputType:"option"},{name:"range",label:loc("Target Range"),extract:function(s){
return s.lastIndexOf("!")==-1?s:s.substring(s.lastIndexOf("!")+1,s.length);
}}],output:function(_1ac2){
var _1ac3=_1ac2["sheetName"];
var range=_1ac2["range"];
if(range&&range.lastIndexOf("!")!=-1){
_1ac3=range.substring(0,range.lastIndexOf("!"));
range=range.substring(range.lastIndexOf("!")+1,range.length);
}
if(_1ac3){
_1ac3=_1ac3+"!";
}
if(!range){
range="A1";
}
return _1ac3+range;
},examples:["A20"]}];
editgrid.select={};
editgrid.select.NativeSelectWrapper=function(_1ac5,_1ac6,_1ac7){
this.root=_1ac5;
var _1ac8=new editgrid.select.NativeListBox(_1ac5);
this.listBoxHashSet=new editgrid.select.HashSetWrapper(_1ac8,_1ac6,_1ac7);
};
editgrid.select.NativeSelectWrapper.prototype.getSelectedValues=function(){
var _1ac9=this.root.options;
var _1aca=[];
for(var i=0,len=_1ac9.length;i<len;++i){
if(_1ac9[i].selected){
_1aca.push(_1ac9[i].value);
}
}
return _1aca;
};
editgrid.select.NativeSelectWrapper.prototype.get=function(key){
return this.listBoxHashSet.get(key);
};
editgrid.select.NativeSelectWrapper.prototype.put=function(key,item){
return this.listBoxHashSet.put(key,item);
};
editgrid.select.NativeSelectWrapper.prototype.remove=function(key){
return this.listBoxHashSet.remove(key);
};
editgrid.select.NativeSelectWrapper.prototype.removeAll=function(){
return this.listBoxHashSet.removeAll();
};
editgrid.select.HashSetWrapper=function(_1ad1,_1ad2,_1ad3){
this.hash={};
this.listBox=_1ad1;
this.labelFunc=_1ad2||this._labelFunc;
this.sortByFunc=_1ad3||this._sortByFunc;
};
editgrid.select.HashSetWrapper.prototype.get=function(key){
return this.hash[key];
};
editgrid.select.HashSetWrapper.prototype.put=function(key,item){
if(item==null){
item=new editgrid.select.ListItem(key);
}
var pos=this.listBox.length();
var len=pos;
for(var i=0;i<len;++i){
var key2=this.listBox.getItem(i).getValue();
if(key2==key){
this.listBox.removeItem((pos=i));
break;
}
if(-1==this.sortByFunc(key,key2,item,this.hash[key2])){
pos=i;
break;
}
}
this.hash[key]=item;
this.listBox.addItem(item,pos);
};
editgrid.select.HashSetWrapper.prototype.remove=function(key){
var item=this.hash[key];
if(item!=null){
for(var i=0,len=this.listBox.length();i<len;++i){
if(this.listBox.getItem(i)==item){
this.listBox.removeItem(i);
break;
}
}
delete this.hash[key];
}
return item;
};
editgrid.select.HashSetWrapper.prototype.removeAll=function(){
this.hash={};
this.listBox.removeAll();
};
editgrid.select.HashSetWrapper.prototype._labelFunc=function(key,item){
return key;
};
editgrid.select.HashSetWrapper.prototype._sortByFunc=function(key1,key2,item1,item2){
return key1<key2?-1:key1==key2?0:1;
};
editgrid.select.NativeListBox=function(_1ae5){
this.root=_1ae5;
this.itemsArray=[];
};
editgrid.select.NativeListBox.prototype.length=function(){
return this.itemsArray.length;
};
editgrid.select.NativeListBox.prototype.getItem=function(pos){
return pos>=0?this.itemsArray[pos]:null;
};
editgrid.select.NativeListBox.prototype.addItem=function(item,pos){
var _1ae9=this.root.options;
var _1aea=new Option(item.toString(),item.getValue());
var _1aeb=[];
var len=this.itemsArray.length;
if(pos==null){
pos=len;
}
for(var i=pos;i<len;++i){
_1aeb[i]=_1ae9[i];
}
_1ae9[pos]=_1aea;
for(var i=pos+1;i<=len;++i){
_1ae9[i]=_1aeb[i-1];
}
this.itemsArray.splice(pos,0,item);
};
editgrid.select.NativeListBox.prototype.removeItem=function(pos){
this.root.options[pos]=null;
return this.itemsArray.splice(pos,1)[0];
};
editgrid.select.NativeListBox.prototype.removeAll=function(){
this.root.options.length=0;
this.itemsArray=[];
};
editgrid.select.ListBox=function(){
std.topic.define(this,"click");
std.topic.define(this,"change");
this.keyPressListener=std.event.listener(this,this._keyPressListener);
this.renderItemsFunc=std.lang.bind(this,this._renderItemsFunc);
this._reset();
};
editgrid.select.ListBox.prototype._reset=function(){
this.itemsArray=[];
this.visible=null;
this.selectedIndex=this._hiliteIndex=-1;
this._hiliteIndexOld=null;
};
editgrid.select.ListBox.prototype.defWidth=160;
editgrid.select.ListBox.prototype.defHeight=160;
editgrid.select.ListBox.prototype.HIDDEN_POS_LEFT=-100000;
editgrid.select.ListBox.prototype.getNodes=function(){
if(this.nodes==null){
this.nodes={};
var root;
if((root=this.nodes.root)==null){
root=this.nodes.root=std.dom.newDiv(null,{className:"ListBox"},{position:"absolute",overflow:"hidden"});
this._rebuildNodes();
std.event.observe(root,"mouseover",std.event.listener(this,this._mouseHoverListener));
std.event.observe(root,"mousemove",std.event.listener(this,this._mouseHoverListener));
std.event.observe(root,"mousedown",std.event.listener(this,this._mouseDownListener));
std.event.observe(root,"click",std.event.listener(this,this._clickListener));
}
}
return this.nodes;
};
editgrid.select.ListBox.prototype.getRoot=function(){
if(this.root==null){
this.root=this.getNodes().root;
}
return this.root;
};
editgrid.select.ListBox.prototype.attach=function(_1af0){
this.parentNode=_1af0;
_1af0.appendChild(this.root);
};
editgrid.select.ListBox.prototype.detach=function(){
this.parentNode.removeChild(this.root);
this.parentNode=null;
};
editgrid.select.ListBox.prototype.length=function(){
return this.itemsArray.length;
};
editgrid.select.ListBox.prototype.getItem=function(pos){
return pos>=0?this.itemsArray[pos]:null;
};
editgrid.select.ListBox.prototype.getSelectedItem=function(){
return this.selectedIndex==-1?null:this.itemsArray[this.selectedIndex];
};
editgrid.select.ListBox.prototype.addItem=function(item,pos){
if(pos==null){
pos=this.itemsArray.length;
}
var nodes=this.getNodes();
var _1af5=this.getRenderer().renderItem(nodes.itemsContainer,nodes.itemsArray[pos],item);
nodes.itemsArray.splice(pos,0,_1af5);
this.itemsArray.splice(pos,0,item);
if(this._hiliteIndex!=-1&&this._hiliteIndex>=pos){
this._hiliteIndex++;
this._updateHilite();
}
this._updateDimensions();
};
editgrid.select.ListBox.prototype.removeItem=function(pos){
var nodes=this.getNodes();
var _1af8=nodes.itemsArray.splice(pos,1)[0];
var _1af9=this.itemsArray.splice(pos,1)[0];
nodes.itemsContainer.removeChild(_1af8);
if(this._hiliteIndex!=-1&&this._hiliteIndex>=pos){
this._hiliteIndex=-1;
this._updateHilite();
}
this._updateDimensions();
return _1af9;
};
editgrid.select.ListBox.prototype.removeAll=function(){
this._reset();
this._updateDimensions();
this._rebuildNodes();
};
editgrid.select.ListBox.prototype.setPosition=function(x,y){
var root=this.getRoot();
this._left=x;
this._top=y;
if(this.visible){
root.style.left=x+"px";
root.style.top=y+"px";
}
};
editgrid.select.ListBox.prototype.setSize=function(size){
if(this.size!=size){
this.size=size;
this._updateDimensions();
}
};
editgrid.select.ListBox.prototype.setPreferredSize=function(w,h){
if(this.defWidth!=w||this.defHeight!=h){
this.defWidth=w;
this.defHeight=h;
this._updateDimensions();
}
};
editgrid.select.ListBox.prototype.setVisible=function(_1b00){
if(this.visible!=_1b00){
this.visible=_1b00;
var root=this.getRoot();
var style=root.style;
if(_1b00){
this._updateDimensions();
style.left=this._left+"px";
style.top=this._top+"px";
}else{
style.left=this.HIDDEN_POS_LEFT+"px";
}
}
};
editgrid.select.ListBox.prototype.getRenderer=function(){
return editgrid.select.ListBoxRenderer.instance;
};
editgrid.select.ListBox.prototype._renderItemsFunc=function(_1b03){
this.nodes.itemsContainer=_1b03;
this.nodes.itemsArray=[];
var _1b04=null;
for(var i=0;i<this.itemsArray.length;++i){
_1b04=renderer.renderItem(_1b03,null,this.itemsArray[i]);
this.nodes.itemsArray.push(_1b04);
}
};
editgrid.select.ListBox.prototype._rebuildNodes=function(){
var root=this.getRoot();
root.innerHTML="";
var node=this.getRenderer().render(this.renderItemsFunc);
root.appendChild(node);
};
editgrid.select.ListBox.prototype._updateDimensions=function(){
if(!this.visible){
return;
}
var root=this.getRoot();
if(this.itemsArray.length==0){
root.style.height=this.defHeight+"px";
root.style.overflowY="hidden";
}else{
root.style.height="auto";
root.style.overflowY="visible";
}
var H=root.offsetHeight;
if(this.maxHeight&&H>this.maxHeight){
var _1b0a=this.maxHeight;
var _1b0b=0;
if(this.nodes.itemsArray.length>0){
var h=this.nodes.itemsArray[0].offsetHeight;
if(h){
_1b0b=H-h*this.nodes.itemsArray.length;
_1b0a=_1b0b+_1b0a-((_1b0a-_1b0b)%h);
}
}
root.style.height=_1b0a+"px";
root.style.overflowY="auto";
}
root.style.width=this.defWidth+"px";
};
editgrid.select.ListBox.prototype._updateHilite=function(){
if(this._hiliteIndexOld!=this._hiliteIndex){
var nodes=this.getNodes();
var _1b0e=nodes.itemsArray[this._hiliteIndex];
var _1b0f=nodes.itemsArray[this._hiliteIndexOld];
if(_1b0e!=_1b0f){
if(_1b0e){
std.css.includeClass(_1b0e,"Hilite");
}
if(_1b0f){
std.css.excludeClass(_1b0f,"Hilite");
}
}
this._hiliteIndexOld=this._hiliteIndex;
}
};
editgrid.select.ListBox.prototype._updateSelect=function(){
};
editgrid.select.ListBox.prototype.setCapture=function(_1b10){
if(this._captured!=_1b10){
this._captured=_1b10;
if(_1b10){
std.event.keyObserve(document,"keypress",this.keyPressListener);
}else{
std.event.keyStopObserving(document,"keypress",this.keyPressListener);
}
}
};
editgrid.select.ListBox.prototype.setSelectedIndex=function(index){
if(index<0||index>=this.itemsArray.length){
return;
}
if(this.selectedIndex!=index){
this.selectedIndex=index;
this._updateSelect(index);
std.topic.publish(this,"change");
}
};
editgrid.select.ListBox.prototype._setHiliteIndex=function(index){
if(this._hiliteIndex!=index){
this._hiliteIndex=index;
this._updateHilite(index);
}
};
editgrid.select.ListBox.prototype._keyPressListener=function(ke){
var e=ke.evt;
var _1b15=std.event.getKeyCode(e);
var codes=std.event.getKeyCodes(e);
if(!e.altKey){
switch(_1b15){
case codes.KEY_UP_ARROW:
case codes.KEY_DOWN_ARROW:
if(len!=0){
var len=this.itemsArray.length;
var idx=this._hiliteIndex;
this._setHiliteIndex(idx<0?0:idx>len?len-1:_1b15==codes.KEY_UP_ARROW?idx<=0?0:idx-1:idx>=len-1?len-1:idx+1);
}
std.event.vanish(e);
break;
case codes.KEY_ENTER:
this.setSelectedIndex(this._hiliteIndex);
std.topic.publish(this,"click");
std.event.vanish(e);
break;
}
}
};
editgrid.select.ListBox.prototype._hiliteItemAtEvent=function(e){
var hit=this.getRenderer().hitTest(e);
if(hit==null){
return;
}
if(hit.item){
var row=hit.item;
var arr=this.nodes.itemsArray;
for(var i=0;i<arr.length;++i){
if(arr[i]==row){
this._setHiliteIndex(i);
break;
}
}
}
};
editgrid.select.ListBox.prototype._mouseDownListener=function(e){
if(this._hiliteIndex==-1){
this._hiliteItemAtEvent(e);
}
std.event.stop(e);
};
editgrid.select.ListBox.prototype._mouseHoverListener=function(e){
this._hiliteItemAtEvent(e);
};
editgrid.select.ListBox.prototype._clickListener=function(){
this.setSelectedIndex(this._hiliteIndex);
std.topic.publish(this,"click");
};
editgrid.select.ListItem=function(label,value){
if(label!=null){
this.label=label;
}
if(value!=null){
this.value=value;
}
};
editgrid.select.ListItem.prototype.toString=function(){
return this.label;
};
editgrid.select.ListItem.prototype.getValue=function(){
return (this.value!=null)?this.value:this.toString();
};
editgrid.select.ListBoxRenderer=function(){
};
editgrid.select.ListBoxRenderer.instance=new editgrid.select.ListBoxRenderer();
editgrid.select.ListBoxRenderer.prototype.render=function(_1b22){
var _1b23=new std.dom.Builder();
var table=_1b23.push("TABLE",null,{width:"100%"});
var tbody=_1b23.push("TBODY");
_1b22(tbody);
_1b23.pop();
_1b23.pop();
return table;
};
editgrid.select.ListBoxRenderer.prototype.renderItem=function(_1b26,_1b27,item){
var tr=std.dom.newElement("TR",tr,{className:"ListItemRow"});
var td=std.dom.newElement("TD",tr,{className:"ListItem"});
var text=item.toString();
td.title=text;
var htm=std.string.escapeHTML(text.replace("\n","").replace("\r",""));
td.innerHTML=htm!=""?htm:"&nbsp";
_1b26.insertBefore(tr,_1b27||null);
return tr;
};
editgrid.select.ListBoxRenderer.prototype.hitTest=function(e){
var row=std.dom.backtrack(std.event.element(e),function(ele){
var clz=ele.className;
return clz?clz.indexOf("ListItemRow")==-1:true;
});
return row?{item:row}:null;
};
editgrid.select.ListPopup=function(_1b31){
this.setValue=_1b31.setValue;
this.getValue=_1b31.getValue;
this.keyPressListener=std.event.listener(this,this._keyPressListener);
this.listBox=this._createListBox({onClick:std.lang.bind(this,this._listBoxClickListener)});
std.topic.define(this,"change");
this._attach(_1b31.offsetNode,_1b31.buttonNode,_1b31.classNames);
};
editgrid.select.ListPopup.prototype.popupLoadingDelay=500;
editgrid.select.ListPopup.prototype._createListBox=function(_1b32){
_1b32=_1b32||{};
var _1b33=new editgrid.select.ListBox();
if(_1b32.onClick){
std.topic.subscribe(_1b33,"click",_1b32.onClick);
}
_1b33.setVisible(false);
_1b33.getRoot().style.zIndex="20004000";
_1b33.attach(document.body);
return _1b33;
};
editgrid.select.ListPopup.prototype._attach=function(_1b34,_1b35,_1b36){
this.offsetNode=_1b34;
this.buttonNode=_1b35;
this.classNames=_1b36;
this._focusDelegator=std.customfocus.getManager().newDelegator(this,std.lang.bind(this,this._onFocus),std.lang.bind(this,this._onBlur));
std.event.observe(_1b35,"mousedown",std.event.listener(this,function(e){
std.event.stop(e);
}));
std.event.observe(_1b35,"contextmenu",std.event.listener(this,function(e){
this.onContextMenu(e);
}));
std.event.observe(_1b35,"mouseover",std.event.listener(this,function(e){
if(!this._hover){
this._hover=true;
this._redrawArrow();
}
}));
std.event.observe(_1b35,"mouseout",std.event.listener(this,function(e){
if(this._hover){
this._hover=false;
this._redrawArrow();
}
}));
std.event.observe(_1b35,"click",std.event.listener(this,function(e){
this._focusDelegator.focus();
}));
this._redrawArrow();
};
editgrid.select.ListPopup.prototype.setStyleClassNames=function(_1b3c){
if(this.buttonNode){
for(var k in this.classNames){
std.css.excludeClass(this.buttonNode,this.classNames[k]);
}
}
this.classNames=_1b3c;
if(this.buttonNode){
this._redrawArrow();
}
};
editgrid.select.ListPopup.prototype._alignListBox=function(_1b3e){
var _1b3f=std.dom.getTargetPos(this.offsetNode);
var _1b40=std.dom.getTargetPos(this.buttonNode);
var _1b41=_1b40.x+this.buttonNode.offsetWidth-_1b3f.x;
var w=_1b41<this.minWidth?this.minWidth:_1b41;
var x=_1b3f.x-(w-_1b41);
if(x<0){
x=0;
}
_1b3e.setPosition(x,_1b3f.y+this.offsetNode.offsetHeight);
_1b3e.setPreferredSize(w,120);
};
editgrid.select.ListPopup.prototype._getCurrentListBox=function(){
if(this.popupLoading){
return this.popupLoadingBox;
}else{
return this.listBox;
}
};
editgrid.select.ListPopup.prototype._setCurrentListBoxVisible=function(_1b44){
var _1b45=this._getCurrentListBox();
if(_1b45!=null){
if(_1b45==this.popupLoadingBox&&_1b44){
var self=this;
this.popupLoadingTimer=setTimeout(function(){
self._setListBoxVisible(_1b45,_1b44);
},this.popupLoadingDelay);
}else{
this._setListBoxVisible(_1b45,_1b44);
}
}
};
editgrid.select.ListPopup.prototype._setListBoxVisible=function(_1b47,_1b48){
if(this.popupLoadingTimer){
clearTimeout(this.popupLoadingTimer);
this.popupLoadingTimer=null;
}
if(_1b48){
this._alignListBox(_1b47);
}
_1b47.setVisible(_1b48);
_1b47.setCapture(_1b48);
};
editgrid.select.ListPopup.prototype.setPopupVisible=function(_1b49){
if(this.popupVisible!=_1b49){
this.popupVisible=_1b49;
if(this.popupLoaderFunc&&_1b49){
this.popupLoading=true;
this.popupLoaderFunc(this);
}
this._redrawArrow();
this._setCurrentListBoxVisible(_1b49);
}
};
editgrid.select.ListPopup.prototype.setCapture=function(_1b4a){
if(this._captured!=_1b4a){
this._captured=_1b4a;
if(_1b4a){
std.event.keyObserve(document,"keypress",this.keyPressListener);
}else{
std.event.keyStopObserving(document,"keypress",this.keyPressListener);
}
}
};
editgrid.select.ListPopup.prototype._keyPressListener=function(ke){
var e=ke.evt;
var _1b4d=std.event.getKeyCode(e);
var codes=std.event.getKeyCodes(e);
if(e.altKey){
switch(_1b4d){
case codes.KEY_UP_ARROW:
case codes.KEY_DOWN_ARROW:
this.setPopupVisible(!this.popupVisible);
break;
}
}else{
switch(_1b4d){
case codes.KEY_ENTER:
this._fireAction();
break;
}
}
};
editgrid.select.ListPopup.prototype._listBoxClickListener=function(){
this.setPopupVisible(false);
var item=this.listBox.getSelectedItem();
if(item!=null){
this.setValue(item);
}
this._fireAction();
this._focusDelegator.blur();
};
editgrid.select.ListPopup.prototype._fireAction=function(){
std.topic.publish(this,"change");
};
editgrid.select.ListPopup.prototype._onBlur=function(){
this.setPopupVisible(false);
this.setCapture(false);
this._focusDelegator.detach();
};
editgrid.select.ListPopup.prototype._onFocus=function(){
this.setPopupVisible(!this.popupVisible);
this.setCapture(true);
};
editgrid.select.ListPopup.prototype._onInputBlur=function(){
this.setCapture(false);
this._inputFocusDelegator.detach();
};
editgrid.select.ListPopup.prototype._onInputFocus=function(){
this.inputNode.select();
this.setCapture(true);
};
editgrid.select.ListPopup.prototype._redrawArrow=function(){
for(var k in this.classNames){
std.css.excludeClass(this.buttonNode,this.classNames[k]);
}
var names={};
names["normal"]=this.classNames["normal"]||"";
names["hover"]=this.classNames["hover"]||names["normal"]||"";
names["visible"]=this.classNames["visible"]||"";
if(this._hover&&!this.popupVisible){
std.css.includeClass(this.buttonNode,names["hover"]);
}
if(this.popupVisible){
std.css.includeClass(this.buttonNode,names["visible"]);
}
if(!this._hover&&!this.popupVisible){
std.css.includeClass(this.buttonNode,names["normal"]);
}
};
editgrid.select.ListPopup.prototype.onContextMenu=function(e){
std.event.vanish(e);
};
editgrid.select.ListPopup.prototype.setPopupLoader=function(_1b53){
this.popupLoaderFunc=_1b53;
if(this.popupLoadingBox==null){
this.popupLoadingBox=this._createListBox({onClick:std.lang.bind(this,this._popupLoadingListBoxClickListener)});
this.popupLoadingBox.addItem(new editgrid.select.ListItem("Loading ..."));
}
};
editgrid.select.ListPopup.prototype.setPopupLoadingComplete=function(){
if(this.popupVisible){
this._setCurrentListBoxVisible(false);
this.popupLoading=false;
this._setCurrentListBoxVisible(true);
}
};
editgrid.select.ListPopup.prototype._popupLoadingListBoxClickListener=function(){
this.setPopupVisible(false);
};
editgrid.select.ListPopup.prototype.detach=function(){
if(this.popupLoadingBox){
this.popupLoadingBox.detach();
this.popupLoadingBox=null;
}
if(this.listBox){
this.listBox.detach();
this.listBox=null;
}
};
editgrid.namedExpr={};
editgrid.namedExpr.clone=function(_1b54){
var self=null;
if(_1b54){
self={};
}
self.sheetId=_1b54.sheetId;
self.name=_1b54.name,self.row=_1b54.row,self.col=_1b54.col,self.expr=_1b54.expr,self.isRelative=_1b54.isRelative;
if(_1b54.range){
var r=_1b54.range;
self.range={};
if(r.sheetId){
self.range.sheetId=r.sheetId;
}
if(1){
self.range.a={col:r.a.col,colRelative:r.a.colRelative,row:r.a.row,rowRelative:r.a.rowRelative};
}
if(r.b){
self.range.b={col:r.b.col,colRelative:r.b.colRelative,row:r.b.row,rowRelative:r.b.rowRelative};
}
}
self.hasLocalChange=_1b54.hasLocalChange;
self.isNew=_1b54.isNew;
return self;
};
editgrid.namedExpr._getAbsRangeRef=function(_1b57){
var r=_1b57.range;
if(r&&!_1b57.isRelative){
var posFr=r.a;
var posTo=r.b||r.a;
var rowFr=posFr.row,colFr=posFr.col;
var rowTo=posTo.row,colTo=posTo.col;
var tmp;
if(rowTo<rowFr){
tmp=rowTo;
rowTo=rowFr;
rowFr=tmp;
}
if(colTo<colFr){
tmp=colTo;
colTo=colFr;
colFr=tmp;
}
var range=new editgrid.RangeRef(rowFr,colFr,rowTo,colTo);
range.sheetId=r.sheetId;
return range;
}
return null;
};
editgrid.namedExpr.NamedExprItem=function(data){
this.data=data;
};
editgrid.namedExpr.NamedExprItem.prototype=new editgrid.select.ListItem();
editgrid.namedExpr.NamedExprItem.prototype.toString=function(){
return this.data.name;
};
editgrid.namedExpr.NamedExprModel=function(){
this.reset();
std.topic.define(this,"onAdd");
std.topic.define(this,"onDel");
};
editgrid.namedExpr.NamedExprModel.prototype.reset=function(){
this.items={};
this.rangeToNameMap={};
};
editgrid.namedExpr.NamedExprModel.prototype.getSheetItems=function(_1b62){
if(this.items[_1b62]==null){
this.items[_1b62]={};
}
return this.items[_1b62];
};
editgrid.namedExpr.NamedExprModel.prototype._setSheetItem=function(_1b63,name,_1b65){
return this.getSheetItems(_1b63)[name]=_1b65;
};
editgrid.namedExpr.NamedExprModel.prototype.get=function(_1b66,name){
var expr;
return ((expr=this.getSheetItems(_1b66)[name])!=null)?expr:this.getSheetItems(0)[name];
};
editgrid.namedExpr.NamedExprModel.prototype.getCaseInsensitive=function(_1b69,name){
var list=this.getVisibleInScope(_1b69);
for(var i=0;i<list.length;++i){
var _1b6d=list[i];
if(_1b6d.name.toLowerCase()==name.toLowerCase()){
return _1b6d;
}
}
return null;
};
editgrid.namedExpr.NamedExprModel.prototype._getScopeRangeToNameMap=function(_1b6e){
if(this.rangeToNameMap[_1b6e]==null){
this.rangeToNameMap[_1b6e]={};
}
return this.rangeToNameMap[_1b6e];
};
editgrid.namedExpr.NamedExprModel.prototype._getSheetRangeToNameMap=function(_1b6f,_1b70){
var _1b71=this._getScopeRangeToNameMap(_1b6f);
if(_1b71[_1b70]==null){
_1b71[_1b70]={};
}
return _1b71[_1b70];
};
editgrid.namedExpr.NamedExprModel.prototype._delScopeRangeToNameMap=function(_1b72,name,_1b74){
var range=editgrid.namedExpr._getAbsRangeRef(_1b74);
var _1b76=_1b74;
var _1b77=range;
if(range){
var _1b78=this._getSheetRangeToNameMap(_1b72,range.sheetId);
var _1b79=range.toString();
var entry=_1b78[_1b79];
if(entry){
if(entry.names[name]!=null){
delete entry.names[name];
entry.count--;
}
if(entry.count==0){
delete _1b78[_1b79];
}
}
}
};
editgrid.namedExpr.NamedExprModel.prototype._addScopeRangeToNameMap=function(_1b7b,name,_1b7d){
var range=editgrid.namedExpr._getAbsRangeRef(_1b7d);
if(range){
var _1b7f=this._getSheetRangeToNameMap(_1b7b,range.sheetId);
var _1b80=range.toString();
var entry=_1b7f[_1b80];
if(entry==null){
entry=_1b7f[_1b80]={count:0,names:{}};
}
if(entry.names[name]==null){
entry.count++;
}
entry.names[name]=name;
}
};
editgrid.namedExpr.NamedExprModel.prototype.addOrUpdate=function(_1b82,name,_1b84){
this._delScopeRangeToNameMap(_1b82,name,_1b84);
this._addScopeRangeToNameMap(_1b82,name,_1b84);
this._setSheetItem(_1b82,name,_1b84);
std.topic.publish(this,"onAdd",_1b82,name,_1b84);
};
editgrid.namedExpr.NamedExprModel.prototype.del=function(_1b85,name){
var items=this.getSheetItems(_1b85);
if(items[name]){
this._delScopeRangeToNameMap(_1b85,name,items[name]);
delete items[name];
std.topic.publish(this,"onDel",_1b85,name);
}
};
editgrid.namedExpr.NamedExprModel.prototype.getNameByRange=function(_1b88,range){
var _1b8a=range.toString();
var entry=this._getSheetRangeToNameMap(_1b88,_1b88)[_1b8a];
if(entry==null){
entry=this._getSheetRangeToNameMap(0,_1b88)[_1b8a];
}
if(entry){
for(var name in entry.names){
return name;
}
}
return null;
};
editgrid.namedExpr.NamedExprModel.prototype.getVisibleInScope=function(_1b8d){
var list=[];
var hash={};
if(_1b8d!=0){
var items=this.getSheetItems(_1b8d);
for(var name in items){
hash[name]=1;
list.push(items[name]);
}
}
items=this.getSheetItems(0);
for(var name in items){
if(hash[name]==null){
list.push(items[name]);
}
}
return list;
};
editgrid.namedExpr.NamedExprModel.prototype.getDefinedInScope=function(_1b92){
var list=[];
var items=this.getSheetItems(_1b92);
for(var name in items){
list.push(items[name]);
}
return list;
};
editgrid.namedExpr.NamedExprModel.prototype.getAll=function(){
var list=[];
for(var _1b97 in this.items){
var _1b98=this.items[_1b97];
for(var name in _1b98){
list.push(_1b98[name]);
}
}
return list;
};
editgrid.namedExpr.NamedExprModel.prototype.isValidNewName=function(_1b9a,_1b9b){
if(_1b9b=="Sheet_Title"||_1b9b=="Print_Area"){
return false;
}
var lName=_1b9b.toLowerCase();
if(lName=="r"||lName=="c"){
return false;
}
if(!_1b9b.match(/^[\a-zA-Z_\u0080-\uffff][\w\u0080-\uffff]*$/)){
return false;
}
if(editgrid.parseCellAddress(_1b9b,null,{noRangeCheck:1})){
return false;
}
var _1b9d=this.items[_1b9a];
for(var _1b9e in _1b9d){
if(lName==_1b9e.toLowerCase()){
return false;
}
}
return true;
};
editgrid.namedExpr.NamedExprModel.prototype._computeActualRange=function(_1b9f,_1ba0,_1ba1){
var range=null;
if(_1b9f.range){
var rowFr,colFr,rowTo,colTo;
var a=_1b9f.range.a;
rowFr=a.rowRelative?_1ba0+a.row:a.row;
colFr=a.colRelative?_1ba1+a.col:a.col;
var b=_1b9f.range.b||a;
rowTo=b.rowRelative?_1ba0+b.row:b.row;
colTo=b.colRelative?_1ba1+b.col:b.col;
var tmp;
if(rowFr>rowTo){
tmp=rowTo;
rowTo=rowFr;
rowFr=tmp;
}
if(colFr>colTo){
tmp=colTo;
colTo=colFr;
colFr=tmp;
}
range=new editgrid.RangeRef(rowFr,colFr,rowTo,colTo);
range.sheetId=_1b9f.range.sheetId;
}
return range;
};
editgrid.namedExpr.NamedExprModel.prototype.resolveActualRange=function(_1baa,name,_1bac,_1bad){
var _1bae=this.get(_1baa,name);
if(_1bae==null||_1bae.range==null){
_1bae=this.getCaseInsensitive(_1baa,name);
}
if(_1bae&&_1bae.range){
var _1baf=this._computeActualRange(_1bae,_1bac,_1bad);
if(_1bae.range.sheetId){
_1baf.sheetId=_1bae.range.sheetId;
}
return _1baf;
}
if(name.toLowerCase()=="r"){
return new editgrid.RangeRef(_1bac,0,_1bac,255);
}
if(name.toLowerCase()=="c"){
return new editgrid.RangeRef(0,_1bad,65535,_1bad);
}
return null;
};
editgrid.namedExpr.LocalNamedExprModel=function(){
std.topic.define(this,"onAdd");
std.topic.define(this,"onDel");
this.localCopy=new editgrid.namedExpr.NamedExprModel();
this.onRemoteModelAdd=std.lang.bind(this,this._onRemoteModelAdd);
this.onRemoteModelDel=std.lang.bind(this,this._onRemoteModelDel);
};
editgrid.namedExpr.LocalNamedExprModel.prototype.attach=function(_1bb0){
this.model=_1bb0;
var list=this.model.getAll();
for(var i=0;i<list.length;++i){
var _1bb3=list[i];
this.localCopy.addOrUpdate(_1bb3.sheetId,_1bb3.name,editgrid.namedExpr.clone(_1bb3));
}
this.deletedItems={};
std.topic.subscribe(this.model,"onAdd",this.onRemoteModelAdd);
std.topic.subscribe(this.model,"onDel",this.onRemoteModelDel);
};
editgrid.namedExpr.LocalNamedExprModel.prototype.detach=function(){
std.topic.unsubscribe(this.model,"onAdd",this.onModelAdd);
std.topic.unsubscribe(this.model,"onDel",this.onModelDel);
this.model=null;
this.deletedItems={};
this.localCopy.reset();
};
editgrid.namedExpr.LocalNamedExprModel.prototype._onRemoteModelAdd=function(_1bb4,name,_1bb6){
this.localCopy.addOrUpdate(_1bb4,name,new editgrid.namedExpr.clone(_1bb6));
std.topic.publish(this,"onAdd",_1bb4,name,_1bb6);
};
editgrid.namedExpr.LocalNamedExprModel.prototype._onRemoteModelDel=function(_1bb7,name){
this.localCopy.del(_1bb7,name);
std.topic.publish(this,"onDel",_1bb7,name);
};
editgrid.namedExpr.LocalNamedExprModel.prototype.get=function(_1bb9,name){
return this.localCopy.get(_1bb9,name);
};
editgrid.namedExpr.LocalNamedExprModel.prototype.add=function(_1bbb,name,_1bbd){
if(this.deletedItems[_1bbb]&&this.deletedItems[_1bbb][name]){
delete this.deletedItems[_1bbb][name];
}
var _1bbe=new editgrid.namedExpr.clone(_1bbd);
_1bbe.isNew=true;
_1bbe.hasLocalChange=true;
std.topic.publish(this,"onAdd",_1bbb,name,_1bbe);
this.localCopy.addOrUpdate(_1bbb,name,_1bbe);
};
editgrid.namedExpr.LocalNamedExprModel.prototype.update=function(_1bbf,name,_1bc1){
if(this.get(_1bbf,name)){
var _1bc2=new editgrid.namedExpr.clone(_1bc1);
_1bc2.hasLocalChange=true;
std.topic.publish(this,"onAdd",_1bbf,name,_1bc2);
this.localCopy.addOrUpdate(_1bbf,name,_1bc2);
}
};
editgrid.namedExpr.LocalNamedExprModel.prototype.del=function(_1bc3,name){
var _1bc5=this.get(_1bc3,name);
if(_1bc5){
this.localCopy.del(_1bc3,name);
if(!_1bc5.isNew){
var _1bc6=new editgrid.namedExpr.clone(_1bc5);
_1bc6.hasLocalChange=true;
if(this.deletedItems[_1bc3]==null){
this.deletedItems[_1bc3]={};
}
this.deletedItems[_1bc3][name]=_1bc6;
}
std.topic.publish(this,"onDel",_1bc3,name);
}
};
editgrid.namedExpr.LocalNamedExprModel.prototype.getDefinedInScope=function(_1bc7){
var list=this.localCopy.getDefinedInScope(_1bc7);
var _1bc9=[];
for(var i=0;i<list.length;++i){
_1bc9.push(list[i]);
}
return _1bc9;
};
editgrid.namedExpr.LocalNamedExprModel.prototype.getDeletedItems=function(){
var list=[];
for(var _1bcc in this.deletedItems){
var _1bcd=this.deletedItems[_1bcc];
for(var name in _1bcd){
list.push(_1bcd[name]);
}
}
return list;
};
editgrid.namedExpr.LocalNamedExprModel.prototype.getAll=function(){
return this.localCopy.getAll();
};
editgrid.namedExpr.LocalNamedExprModel.prototype.isValidNewName=function(_1bcf,_1bd0){
return this.localCopy.isValidNewName(_1bcf,_1bd0);
};
editgrid.namedExpr.Editor=function(_1bd1){
this._relRow=0;
this._relCol=0;
this._relMode=false;
this.localNamedExprModel=new editgrid.namedExpr.LocalNamedExprModel();
this.templateTreeGetter=_1bd1;
this.rangeSelectListener=std.lang.bind(this,this._rangeSelectListener);
this.promptAddHandler=std.lang.bind(this,this._promptAddHandler);
};
editgrid.namedExpr.Editor.prototype.getRoot=function(){
if(typeof (this.elements)=="undefined"){
var tree=this.templateTreeGetter();
this.elements=std.dom.extractAttachmentPoints(tree);
std.event.observe(this.elements["buttonAdd"],"click",std.event.listener(this,this._onButtonAdd));
std.event.observe(this.elements["buttonDel"],"click",std.event.listener(this,this._onButtonDel));
std.event.observe(this.elements["buttonOk"],"click",std.event.listener(this,this._onButtonOk));
std.event.observe(this.elements["buttonClose"],"click",std.event.listener(this,this._onButtonClose));
std.event.observe(this.elements["sheetList"],"change",std.event.listener(this,this._onSheetSelectChange));
std.event.observe(this.elements["namedExprList"],"change",std.event.listener(this,this._onNamedExprSelectChange));
std.event.observe(this.elements["inputExpr"],"change",std.event.listener(this,this._onInputExprChange));
std.event.observe(this.elements["inputExpr"],"focus",std.event.listener(this,this._onInputExprFocus));
std.event.observe(this.elements.root,"mousedown",std.event.listener(this,this._onMouseDown));
this.sheetSelect=new editgrid.select.NativeListBox(this.elements["sheetList"]);
this.namedExprSelect=new editgrid.select.NativeSelectWrapper(this.elements["namedExprList"]);
this.onSheetsRebuilt=std.lang.bind(this,this._onSheetsRebuilt);
this.onModelAddOrUpdate=std.lang.bind(this,this._onModelAddOrUpdate);
this.onModelDel=std.lang.bind(this,this._onModelDel);
this.detectInputExprChange=std.lang.bind(this,this._detectInputExprChange);
}
var _1bd3=this.elements.root.tagName;
return this.elements.root;
};
editgrid.namedExpr.Editor.prototype.setRelativeOrigin=function(row,col){
this._relRow=row;
this._relCol=col;
};
editgrid.namedExpr.Editor.prototype.isRelativeMode=function(){
return this._relMode;
};
editgrid.namedExpr.Editor.prototype.attachModel=function(_1bd6){
this.workbook=_1bd6;
this.localNamedExprModel.attach(_1bd6.namedExprModel);
this._redrawSheetList();
this.elements["sheetList"].selectedIndex=0;
this._onSheetSelectChange();
std.topic.subscribe(_1bd6,"onSheetsRebuilt",this.onSheetsRebuilt);
std.topic.subscribe(this.localNamedExprModel,"onAdd",this.onModelAddOrUpdate);
std.topic.subscribe(this.localNamedExprModel,"onDel",this.onModelDel);
};
editgrid.namedExpr.Editor.prototype.detachModel=function(){
var _1bd7=this.workbook;
std.topic.unsubscribe(_1bd7,"onSheetsRebuilt",this.onSheetsRebuilt);
std.topic.unsubscribe(this.localNamedExprModel,"onAdd",this.onModelAddOrUpdate);
std.topic.unsubscribe(this.localNamedExprModel,"onDel",this.onModelDel);
this.localNamedExprModel.detach();
this.workbook=null;
this.setActiveChild(null);
this.elements["inputExpr"].value="";
this._relRow=0;
this._relCol=0;
};
editgrid.namedExpr.SheetItem=function(sheet){
this.data={id:sheet?sheet.id:0,name:sheet?sheet.name:"("+loc("Global")+")"};
};
editgrid.namedExpr.SheetItem.prototype=new editgrid.select.ListItem();
editgrid.namedExpr.SheetItem.prototype.toString=function(){
return this.data.name;
};
editgrid.namedExpr.SheetItem.prototype.getValue=function(){
return this.data.id;
};
editgrid.namedExpr.Editor.prototype._redrawSheetList=function(){
this.sheetSelect.removeAll();
this.sheetSelect.addItem(new editgrid.namedExpr.SheetItem());
std.list.iterate(this.workbook.getSheets(),std.lang.bind(this,function(sheet){
this.sheetSelect.addItem(new editgrid.namedExpr.SheetItem(sheet));
}));
};
editgrid.namedExpr.Editor.prototype._redrawNamedExprList=function(_1bda){
var _1bdb=this.localNamedExprModel.getDefinedInScope(_1bda);
_1bdb.sort(function(a,b){
return a.name<b.name?-1:a.name==b.name?0:1;
});
this.namedExprSelect.removeAll();
std.list.iterate(_1bdb,std.lang.bind(this,function(item){
this.namedExprSelect.put(item.name,new editgrid.namedExpr.NamedExprItem(item));
}));
};
editgrid.namedExpr.Editor.prototype.getSelectedNamedExpr=function(){
var _1bdf=this.namedExprSelect.getSelectedValues();
if(_1bdf.length==1){
return this.namedExprSelect.get(_1bdf[0]).data;
}
return null;
};
editgrid.namedExpr.Editor.prototype._redrawRelTo=function(){
var _1be0=this.getSelectedNamedExpr();
if(_1be0&&((_1be0.isRelative&&_1be0.range)||(_1be0.isNew&&this.isRelativeMode()))){
var r=_1be0.row;
var c=_1be0.col;
var sheet=_1be0.range?this.workbook.getSheetById(_1be0.range.sheetId):null;
this.elements["relTo"].innerHTML=std.string.escapeHTML((sheet?editgrid.escapeSheetName(sheet.name)+"!":"")+editgrid.RangeRef.getName(r,c,r,c,false));
}else{
this.elements["relTo"].innerHTML="";
}
};
editgrid.namedExpr.Editor.prototype._redrawNamedExprInputFields=function(){
var _1be4=this.getSelectedNamedExpr();
this.elements["inputExpr"].disabled=!_1be4;
this.elements["inputExpr"].value=_1be4?_1be4.expr:"";
this._redrawRelTo();
};
editgrid.namedExpr.Editor.prototype._onSheetsRebuilt=function(){
var _1be5=this.elements["sheetList"];
var idx=_1be5.selectedIndex;
this._redrawSheetList();
if(0<=idx&&idx<_1be5.length){
_1be5.selectedIndex=idx;
this._onSheetSelectChange();
}
};
editgrid.namedExpr.Editor.prototype._onModelAddOrUpdate=function(_1be7,name,_1be9){
if(_1be7!=this._scopeSheetId){
return;
}
var item=this.namedExprSelect.get(name);
if(item){
this.namedExprSelect.remove(name);
}
this.namedExprSelect.put(name,new editgrid.namedExpr.NamedExprItem(_1be9));
if(item){
this.elements["namedExprList"].selectedIndex=this._findNamedExprIndexByName(name);
}
};
editgrid.namedExpr.Editor.prototype._onModelDel=function(_1beb,name){
if(_1beb!=this._scopeSheetId){
return;
}
this.namedExprSelect.remove(name);
this._onNamedExprSelectChange();
};
editgrid.namedExpr.Editor.prototype._newName=function(_1bed){
var _1bee="unnamed";
for(var i=1;;++i){
if(this.localNamedExprModel.get(_1bed,_1bee+i)==null){
return _1bee+i;
}
}
};
editgrid.namedExpr.Editor.prototype._findNamedExprIndexByName=function(name){
var _1bf1=this.elements["namedExprList"];
var _1bf2=_1bf1.options;
for(var i=0,len=_1bf2.length;i<len;++i){
if(_1bf2[i].value==name){
return i;
}
}
return -1;
};
editgrid.namedExpr.Editor.prototype._promptAddHandler=function(name){
var _1bf6=this._scopeSheetId;
if(!this.localNamedExprModel.isValidNewName(_1bf6,name)){
editgrid._alert(loc("This name is invalid or already exists"));
return;
}
var data={sheetId:_1bf6,name:name,expr:this.elements["inputExpr"].value,row:this._relRow,col:this._relCol};
this.localNamedExprModel.add(_1bf6,name,data);
var _1bf8=this.elements["namedExprList"];
var _1bf9=_1bf8.options;
var idx=this._findNamedExprIndexByName(name);
if(idx!=-1){
_1bf8.selectedIndex=idx;
this._onNamedExprSelectChange();
}
this.elements["inputExpr"].select();
this.elements["inputExpr"].focus();
};
editgrid.namedExpr.Editor.prototype._onButtonAdd=function(e){
editgrid._prompt(loc("New Name"),this._newName(this._scopeSheetId),this.promptAddHandler);
};
editgrid.namedExpr.Editor.prototype._onButtonDel=function(e){
var _1bfd=this.namedExprSelect.getSelectedValues();
if(_1bfd.length){
for(var i=0;i<_1bfd.length;++i){
var item=this.namedExprSelect.get(_1bfd[i]);
if(item){
this.localNamedExprModel.del(item.data.sheetId,item.data.name);
}
}
}
std.event.vanish(e);
};
editgrid.namedExpr.Editor.prototype._updateSelectedNamedExpr=function(_1c00,val){
var _1c02=this.getSelectedNamedExpr();
if(_1c02){
_1c02[_1c00]=val;
this.localNamedExprModel.update(_1c02.sheetId,_1c02.name,_1c02);
}
};
editgrid.namedExpr.Editor.prototype._onInputExprChange=function(){
var expr=this.elements["inputExpr"].value;
this._updateSelectedNamedExpr("expr",expr);
};
editgrid.namedExpr.Editor.prototype.setActiveChild=function(_1c04,_1c05){
if(this._lastActiveChild&&this._lastActiveChild!=_1c04){
std.css.excludeClass(this._lastActiveChild,this._lastActiveChildClassName);
this._lastActiveChild=null;
}
if(this._lastActiveChild==null&&_1c04){
std.css.includeClass(_1c04,_1c05);
this._lastActiveChildClassName=_1c05;
}
this._lastActiveChild=_1c04;
};
editgrid.namedExpr.Editor.prototype._onInputExprFocus=function(){
this.setActiveChild(this.elements["inputExpr"],"ActiveSelectionMonitor");
};
editgrid.namedExpr.Editor.prototype.setDetectInputExprChange=function(_1c06){
if(_1c06){
if(this._inputExprTimerId==null){
this._inputExprTimerId=setInterval(this.detectInputExprChange,500);
}
}else{
if(this._inputExprTimerId){
clearInterval(this._inputExprTimerId);
this._inputExprTimerId=null;
}
}
};
editgrid.namedExpr.Editor.prototype._recalcRelMode=function(val){
var pos;
if(val==null){
var _1c09=this.getSelectedNamedExpr();
if(_1c09==null||_1c09.expr==null){
val="";
}else{
val=_1c09.expr;
}
}
var _1c0a=true;
if(val==""||(pos=val.indexOf("$"))>=0&&val.substring(pos+1).indexOf("$")>=0){
_1c0a=false;
}
if(!editgrid.parseCellAddress(val)){
_1c0a=false;
}
this.setRelativeMode(_1c0a);
};
editgrid.namedExpr.Editor.prototype.setRelativeMode=function(_1c0b){
if(this._relMode!=_1c0b){
this._relMode=_1c0b;
if(this.onRelativeModeChange){
this.onRelativeModeChange();
}
this.elements["relPane"].style.visibility=_1c0b?"visible":"hidden";
this.elements["relHelp"].style.display=_1c0b?"":"none";
if(_1c0b){
this._redrawRelTo();
}
}
};
editgrid.namedExpr.Editor.prototype._detectInputExprChange=function(){
var val=this.elements["inputExpr"].value;
if(this._lastInputExprVal!=val){
this._lastInputExprVal=val;
this._recalcRelMode(val);
}
};
editgrid.namedExpr.Editor.prototype._onMouseDown=function(e){
if(this._lastActiveChild!=std.event.element(e)){
this.setActiveChild(null);
}
};
editgrid.namedExpr.Editor.prototype._commitChange=function(){
var list=this.localNamedExprModel.getAll();
for(var i=0;i<list.length;++i){
var _1c10=list[i];
if(_1c10.hasLocalChange){
this.onAddOrUpdate(_1c10.sheetId,_1c10.name,_1c10.expr,_1c10.row,_1c10.col);
}
}
list=this.localNamedExprModel.getDeletedItems();
for(var i=0;i<list.length;++i){
var _1c10=list[i];
this.onDel(_1c10.sheetId,_1c10.name);
}
};
editgrid.namedExpr.Editor.prototype._onButtonOk=function(){
this._commitChange();
this.onClose();
};
editgrid.namedExpr.Editor.prototype._onButtonClose=function(){
this.onClose();
};
editgrid.namedExpr.Editor.prototype._onSheetSelectChange=function(){
var idx=this.elements["sheetList"].selectedIndex;
var _1c12=this.sheetSelect.getItem(idx);
this._scopeSheetId=_1c12.data.id;
this._redrawNamedExprList(this._scopeSheetId);
this._onNamedExprSelectChange();
};
editgrid.namedExpr.Editor.prototype._onNamedExprSelectChange=function(){
this._recalcRelMode();
this._redrawNamedExprInputFields();
if(this.onNamedExprSelectChange){
this.onNamedExprSelectChange();
}
};
editgrid.namedExpr.Editor.prototype._rangeSelectListener=function(sheet,range,pos){
if(this.elements["inputExpr"]==this._lastActiveChild){
this.elements["inputExpr"].value=editgrid.escapeSheetName(sheet.name)+"!"+range.getNameAbs();
this._onInputExprChange();
}
};
editgrid.namedExpr.NamedRangePopup=function(_1c16,_1c17,_1c18,_1c19){
std.topic.define(this,"change");
this.onModelAdd=std.lang.bind(this,this._onModelAdd);
this.onModelDel=std.lang.bind(this,this._onModelDel);
this.listPopup=new editgrid.select.ListPopup({setValue:std.lang.bind(this,this._listPopupSetValue),getValue:std.lang.bind(this,this._listPopupGetValue),offsetNode:_1c16,buttonNode:_1c18,classNames:_1c19});
std.topic.subscribe(this.listPopup,"change",std.lang.bind(this,this._listPopupOnChange));
this.listBoxHashSet=new editgrid.select.HashSetWrapper(this.listPopup.listBox);
if(_1c17){
this.inputNode=_1c17;
this._inputFocusDelegator=std.customfocus.getManager().newDelegator(this,std.lang.bind(this,this._onInputFocus),std.lang.bind(this,this._onInputBlur));
std.event.observe(_1c17,"focus",std.event.listener(this,function(e){
this._inputFocusDelegator.focus();
}));
}
};
editgrid.namedExpr.NamedRangePopup.prototype._listPopupSetValue=function(item){
this.inputNode.value=item.toString();
};
editgrid.namedExpr.NamedRangePopup.prototype._listPopupGetValue=function(){
return this.inputNode.value;
};
editgrid.namedExpr.NamedRangePopup.prototype._listPopupOnChange=function(){
std.topic.publish(this,"change");
};
editgrid.namedExpr.NamedRangePopup.prototype._onInputBlur=function(){
this.listPopup.setCapture(false);
this._inputFocusDelegator.detach();
};
editgrid.namedExpr.NamedRangePopup.prototype._onInputFocus=function(){
this.inputNode.select();
this.listPopup.setCapture(true);
};
editgrid.namedExpr.NamedRangePopup.prototype.attachModel=function(_1c1c){
this.model=_1c1c;
std.topic.subscribe(this.model,"onAdd",this.onModelAdd);
std.topic.subscribe(this.model,"onDel",this.onModelDel);
};
editgrid.namedExpr.NamedRangePopup.prototype._redrawListPopup=function(){
this.listBoxHashSet.removeAll();
var _1c1d=this.model.getVisibleInScope(this.activeSheetId);
_1c1d.sort(function(a,b){
return a.name<b.name?-1:a.name==b.name?0:1;
});
for(var i=0;i<_1c1d.length;++i){
var item=_1c1d[i];
if(item.range){
this.listBoxHashSet.put(item.name,new editgrid.namedExpr.NamedExprItem(item));
}
}
};
editgrid.namedExpr.NamedRangePopup.prototype.setActiveSheet=function(_1c22){
this.activeSheetId=_1c22;
this._redrawListPopup();
};
editgrid.namedExpr.NamedRangePopup.prototype._onModelAdd=function(_1c23,name,_1c25){
if(_1c23&&_1c23!=this.activeSheetId){
return;
}
this._redrawListPopup();
};
editgrid.namedExpr.NamedRangePopup.prototype._onModelDel=function(_1c26,name){
if(_1c26&&_1c26!=this.activeSheetId){
return;
}
this._redrawListPopup();
};
editgrid.webchart={};
editgrid.webchart.Editor=function(_1c28){
this.templateTreeGetter=_1c28;
};
editgrid.webchart.Editor.prototype.getRoot=function(_1c29){
if(typeof (this.elements)=="undefined"){
var tree=this.templateTreeGetter();
this.elements=std.dom.extractAttachmentPoints(tree);
this._populateTypeSelect();
std.event.observe(this.elements.buttonInsert,"click",std.event.listener(this,this._onInsert));
std.event.observe(this.elements.buttonClose,"click",std.event.listener(this,this._onClose));
}
var _1c2b=this.elements.root.tagName;
return this.elements.root;
};
editgrid.webchart.Editor.prototype._onInsert=function(e){
var opt=this._currentOption;
var _1c2e=editgrid.webchart.schema.help[opt.getAttribute("typeId")][0];
var _1c2f=_1c2e.template&&_1c2e.template[0]?_1c2e.template[0]:"";
var _1c30=_1c2e.template&&_1c2e.template[1]?_1c2e.template[1]:"";
this.onInsertFunction(_1c2e.name+"("+_1c2f,_1c30+")");
};
editgrid.webchart.Editor.prototype._onClose=function(e){
this.onClose();
};
editgrid.webchart.Editor.prototype._populateTypeSelect=function(){
var types=editgrid.webchart.schema.services.types;
var _1c33=this.elements["selectType"];
var _1c34=this.elements["optionType"];
var _1c35=this.elements["optionTypeTitle"];
var _1c36=this.elements["optionTypeIcon"];
_1c33.innerHTML="";
for(var i=0;i<types.length;i++){
_1c35.innerHTML=types[i].title;
_1c36.style.backgroundPosition=-types[i].iconPos+"px 0";
_1c34.setAttribute("typeId",types[i].id);
var opt=_1c34.cloneNode(true);
std.event.observe(opt,"mouseover",std.lang.bind(this,this._optionSetHover,opt,true));
std.event.observe(opt,"mouseout",std.lang.bind(this,this._optionSetHover,opt,false));
std.event.observe(opt,"click",std.lang.bind(this,this._onSelectOption,opt));
std.event.observe(opt,"dblclick",std.lang.bind(this,this._onInsert));
_1c33.appendChild(opt);
}
this._onSelectOption(_1c33.firstChild);
};
editgrid.webchart.Editor.prototype._optionSetHover=function(opt,hover){
if(opt!=this._currentOption){
opt.className=hover?"Hover":"";
}
};
editgrid.webchart.Editor.prototype._onSelectOption=function(opt){
if(this._currentOption){
this._currentOption.className="";
}
opt.className="Selected";
this._currentOption=opt;
this._populateOption(opt);
};
editgrid.webchart.Editor.prototype._populateOption=function(opt){
var _1c3d=this.elements["FormulaSelectorHelpPane"];
var _1c3e=opt.getAttribute("typeId");
var _1c3f=editgrid.webchart.schema.help[_1c3e];
var _1c40=this.elements.FormulaTemplate;
var _1c41=this.elements.FormulaName;
var _1c42=this.elements.FormulaDescription;
var _1c43=this.elements.FormulaSynopsisBody;
var _1c44=this.elements.FormulaExampleBody;
_1c3d.innerHTML="";
for(var i=0;i<_1c3f.length;++i){
var doc=_1c3f[i];
_1c41.innerHTML=doc.name;
_1c43.innerHTML=doc.name+"("+doc.param+")";
_1c42.innerHTML=doc.summary+"<br/><br/><br/>"+doc.description+"<br/>";
_1c44.innerHTML=doc.examples.join("<br/>");
var _1c47=_1c40.cloneNode(true);
_1c3d.appendChild(_1c47);
}
};
editgrid.webchart.schema={services:{types:[{id:"gchart",iconPos:80,title:loc("Google Charts")},{id:"yfinance",iconPos:176,title:loc("Yahoo! Finance")},{id:"reuters",iconPos:192,title:loc("Reuters")},{id:"alexa",iconPos:144,title:loc("Alexa")},{id:"compete",iconPos:128,title:loc("Compete")}]},help:{alexa:[{name:"ALEXACHART",param:"website[,range,options]",summary:loc("Renders a chart image in the cell according to the paramters, mashup Alexa.com"),description:["","<table class=\"FunctionInfo\">","<tr><td>websites</td><td>"+loc("website name")+"</td></tr>","<tr><td>range</td><td>"+loc("time range to plot; possible values: 7d, 1m, 3m, 6m, 1y, 3y, 5y, max")+"</td></tr>","<tr><td>options</td><td>",loc("option=value pairs separated by [_1]","\"&\""),"<br/>","<ul>","<li>type: rank, reach, pageviews</li>","<li>zoom: 1</li>","<li>framecolor: eg. c0c0cc</li>","<li>w: "+loc("width of image")+"</li>","<li>h: "+loc("height of image")+"</li>","</ul>","</td></tr>","</table>"].join(""),examples:["=alexachart(\"editgrid.com\")","=alexachart(\"facebook.com\",\"1y\",\"type=rank\")"]}],compete:[{name:"COMPETECHART",param:"websites[,options]",summary:loc("Renders a chart image in the cell according to the parameters, mashup Compete.com"),description:["","<table class=\"FunctionInfo\">","<tr><td>websites</td><td>"+loc("list of website names, separated by [_1]","\"|\"")+"</td></tr>","<tr><td>options</td><td>",loc("option=value pairs separated by [_1]","\"&\""),"<br/>","<ul>","<li>type: uv, att, avgstay, ppv, sess</li>","<li>size: small, medium, large</li>","</ul>","</td></tr>","</table>"].join(""),examples:["=competechart(\"editgrid.com\")","=competechart(\"facebook.com|myspace.com|xanga.com\",\"type=uv\")"]}],yfinance:[{name:"YFINANCECHART",param:"symbol[,range,options]",summary:loc("Renders a chart image in the cell according to the parameters, mashup Yahoo! Finance"),description:["","<table class=\"FunctionInfo\">","<tr><td>symbol</td><td>"+loc("stock ticker, i.e. YHOO")+"</td></tr>","<tr><td>range</td><td>",loc("time range to plot; possible values: 1d, 5d, 3m, 6m, 1y, 2y, 5y, max"),"</td></tr>","<tr><td>options</td><td>",loc("option=value pairs separated by [_1]","\"&\""),"<br/>","<ul>","<li>type: bar, line, cdl</li>","<li>size: small, medium, large</li>","<li>log: "+loc("shows chart in logarithmic scale; possible values: 0, 1")+"</li>","</ul>","</td></tr>","</table>"].join(""),examples:["=yfinancechart(\"YHOO\")","=yfinancechart(\"GOOG\",\"5d\")","=yfinancechart(\"YHOO|GOOG|MSFT\",\"3m\",\"type=bar&size=medium\")"]}],reuters:[{name:"REUTERSCHART",param:"symbols[,days,options]",summary:loc("Renders a chart image in the cell according to the parameters, mashup Reuters.com"),description:["","<table class=\"FunctionInfo\">","<tr><td>symbol</td><td>"+loc("stock ticker, i.e. GOOG")+"</td></tr>","<tr><td>duration</td><td>"+loc("duration of data, eg. 7, 180, \"1year\", \"3year\"")+"</td></tr>","<tr><td>options</td><td>",loc("option=value pairs separated by [_1]","\"&\""),"<br/>","<ul>","<li>display: mountain, line, ohlc, candlestick, bar, dot</li>","<li>frequency: 15minute, 1hour, 1day, 1week</li>",,"<li>width: "+loc("width of image")+"</li>","<li>height: "+loc("height of image")+"</li>","</ul>","</td></tr>","</table>"].join(""),examples:[,"=reuterschart(\"MSFT\",30)","=reuterschart(\"MSFT\",\"3year\",\"width=250&height=200&display=line\")"]}],gchart:[{name:"GOOGLECHART",param:"type,data[,options]",summary:loc("Renders a chart image in the cell according to the parameters, mashup Google Chart API"),description:["","<table class=\"FunctionInfo\">","<tr><td>type</td><td>line, sparkline, stackedbar, stackedcolumn, pie3d, pie</td></tr>","<tr><td>data</td><td>"+loc("a range, eg. B11:D15")+"</td></tr>","<tr><td>options</td><td>",loc("option=value pairs separated by [_1]","\"&\""),"<br/><ul>","<li>series: col, row</li>","</ul>","<br/>"+loc("For complete set of options available, see"),"<br/><a href=\"http://code.google.com/apis/chart/\" target=\"_blank\">http://code.google.com/apis/chart/</a>","</td></tr>","</table>"].join(""),examples:["=googlechart(\"pie3d\", H4:H7)","=googlechart(\"sparkline\", B5:H5)","=googlechart(\"pie\",H4:H7,\"series=col&chco=ff0000,00ff00\")"],template:["\"stackedbar\",",",\"\""]}]}};
editgrid.templates={};
editgrid.templates.TemplateRepository=function(){
this.templates={};
this.html={};
};
editgrid.templates.TemplateRepository.prototype.addHTML=function(id,_1c49){
this.html[id]=_1c49;
this.templates[id]=null;
return this;
};
editgrid.templates.TemplateRepository.prototype.get=function(id){
if(this.templates[id]==null){
this.templates[id]=new editgrid.templates.HTMLTemplate(id,this.html[id]);
this.html[id]="";
}
return this.templates[id];
};
editgrid.templates.HTMLTemplate=function(id,_1c4c){
this.id=id;
this.root=std.dom.newElement("div",null,{id:id,innerHTML:_1c4c});
};
editgrid.templates.HTMLTemplate.prototype.getRoot=function(){
return this.root;
};
editgrid.templates.createHTMLTemplates=function(){
var _1c4d=new editgrid.templates.TemplateRepository();
_1c4d.html={messageBrowser:loc("Sorry! The browser you are now using is not fully supported in this release. You may have problem working with a spreadsheet.<br/>[_1]Please consult here for a list of all supported browsers[_2].","<a href=\""+editgrid.config.baseUrl+"/doc/feature/browsers.html\">","</a>"),messageNetworkConnectError:["<b>",loc("Unable to connect to the EditGrid server. The network connection may have some problem."),"<br/>",loc("Please wait while reconnecting..."),"</b>"].join(""),messageNetworkServerError:["<b>",loc("Unable to connect to the EditGrid server. The server may be temporarily down."),"<br/>",loc("Please wait while reconnecting..."),"</b>"].join(""),messageNetworkTimeoutError:["<table style=\"width: 100%; font-weight: bold\"><tr>","\n\t<td>",loc("Timeout while connecting to the EditGrid server. The server may be too busy."),"</td>","\n\t<td style=\"text-align: right; margin-left: 4px\">","\n\t\t<button onclick=\"grid.network.retryRequest()\">",loc("Retry"),"</button>","\n\t</td>","\n\t</tr></table>"].join(""),responseSaveFailed:["<table style=\"width: 100%; height:24px; font-weight: bold\"><tr>","\n\t<td>",loc("A server error has occurred. Your lastest changes, if any, may be lost."),"</td>","\n\t<td style=\"text-align: right; margin-left: 4px\">","\n\t\t<button onclick=\"grid.submitTrace('GridServerErrorTrace');location.reload(true)\">",loc("Report and Reload"),"</button>","\n</td>","\n</tr></table>"].join(""),responseError:["<table style=\"width: 100%; height:24px; font-weight: bold\"><tr>","\n\t<td>",loc("Script error processing response (revision: ${grid.revision}, message: ${error.message}, line: ${error.lineNumber})"),"</td>","\n\t<td style=\"text-align: right; margin-left: 4px\">","\n\t\t<button onclick=\"grid.submitTrace('GridScriptErrorTrace');location.reload(true)\">",loc("Report and Reload"),"</button>","\n</td>","\n</tr></table>"].join("")};
return _1c4d;
};
editgrid.layout={};
editgrid.layout.StandardLayout=function(args){
var param=std.lang.defaultize(args,[]);
this.template=std.lang.defaultize(param.template,editgrid.layout.StandardLayoutTemplate);
this.resizeHandler=new editgrid.layout.StandardResizeHandler();
};
editgrid.layout.StandardLayout.prototype.setResizeHandler=function(_1c50){
this.resizeHandler=_1c50;
};
editgrid.layout.StandardLayout.prototype.getRoot=function(){
if(this.root==null){
this.root=std.dom.newElement("div",null,{innerHTML:this.template},{backgroundColor:"#ffffff"});
}
return this.root;
};
editgrid.layout.StandardLayout.prototype.getNodes=function(){
if(this.nodes==null){
this.nodes=std.dom.extractAttachmentPoints(this.getRoot());
}
return this.nodes;
};
editgrid.layout.StandardLayout.prototype.doLayout=function(_1c51,grid){
var root=this.getRoot();
var nodes=this.getNodes();
this.grid=grid;
if(nodes.viewContainer){
nodes.viewContainer.appendChild(grid.view.sheetElement);
}
if(nodes.fxBarContainer){
nodes.fxBarContainer.appendChild(grid.view.fxBarElement);
}
if(nodes.menubarContainer){
nodes.menubarContainer.appendChild(grid.menubar.getRoot());
}
if(nodes.toolbarContainer){
nodes.toolbarContainer.appendChild(grid.toolbar.getRoot());
}
if(nodes.sidePaneContainer){
nodes.sidePaneContainer.appendChild(grid.sidePane.getRoot());
}
if(nodes.statusBarContainer){
nodes.statusBarContainer.appendChild(grid.statusBar.getRoot());
}
if(nodes.alertHolder){
nodes.alertHolder.appendChild(grid.alertBar.getRoot());
}
if(nodes.statusBarContainer){
nodes.statusBarContainer.appendChild(grid.statusBar.getRoot());
}
nodes.progressBarContainer=std.dom.newElement("div",null,null,{position:"relative",visibility:"hidden",left:"0px",top:"0px",width:"100%"});
nodes.progressBarContainer.appendChild(grid.progressBar.getRoot());
this._progressBarContainerHidden=true;
if(grid.workbook.isReady){
this._showElements();
}else{
this._hideElements();
}
std.topic.subscribe(grid.workbook,"onBeforeCheckout",std.lang.bind(this,this._hideElements));
std.topic.subscribe(grid.workbook,"onReady",std.lang.bind(this,this._showElements));
std.topic.subscribe(grid,"onRecalcLayout",std.lang.bind(this,this._handleResize));
this._setContainer(_1c51);
_1c51.insertBefore(nodes.progressBarContainer,_1c51.firstChild);
this.resizeHandler.init(grid,this);
};
editgrid.layout.StandardLayout.prototype._showElements=function(){
this.getRoot().style.visibility="";
};
editgrid.layout.StandardLayout.prototype._hideElements=function(){
this.getRoot().style.visibility="hidden";
};
editgrid.layout.StandardLayout.prototype._handleResize=function(){
this.resizeHandler.onResize(null,null);
};
editgrid.layout.StandardLayout.prototype.extend=function(id,root){
var node=this.getNodes()[id];
if(node){
if(node.firstChild){
node.replaceChild(root,node.firstChild);
}else{
node.appendChild(root);
}
}
return this;
};
editgrid.layout.StandardLayout.prototype.setShowSidePane=function(bool,width){
if(bool){
this.nodes.sidePaneContainer.style.width=(width===undefined?250:width)+"px";
this.nodes.sidePaneContainer.style.display="";
}else{
this.nodes.sidePaneContainer.style.display="none";
}
this.resizeHandler.onResize(null,null);
};
editgrid.layout.StandardLayout.prototype._setContainer=function(_1c5a){
this.container=_1c5a;
this.container.style.overflow="hidden";
var _1c5b=_1c5a.firstChild;
if(_1c5b&&_1c5b!=this.getRoot()){
_1c5a.removeChild(_1c5b);
}
_1c5a.appendChild(this.getRoot());
};
editgrid.layout.StandardLayoutTemplate=["<div>","\n\t\t<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td attachPoint=\"headerbar\"></td></tr></table>","\n\t\t<table class=\"MenuBarHolder\" style=\"width: 100%; border-collapse: separate; border-bottom: 1px solid #c0c0c0\" cellspacing=\"0\" border=\"0\"><tr><td>","\n\t\t\t<span attachPoint=\"menubarRight\" style=\"float: right\"></span>","\n\t\t\t<span attachPoint=\"menubarContainer\"></span>","\n\t\t</td></tr></table>","\n\t\t<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" height=\"100%\"><tr><td valign=\"top\">","\n\t\t\t<table class=\"ToolBar\" style=\"border-collapse: separate\" cellspacing=\"0\" border=\"0\"><tr>","\n\t\t\t\t<td class=\"ToolBar\" attachPoint=\"toolbarContainer\"></td>","\n\t\t\t</tr></table>","\n\t\t\t<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><tr><td attachPoint=\"fxBarContainer\"></td></tr></table>","\n\t\t\t<div attachPoint=\"alertHolder\"></div>","\n\t\t\t<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">","\n\t\t\t\t<tr><td width=\"100%\" attachPoint=\"viewContainer\"></td></tr>","\n\t\t\t</table>","\n\t\t\t<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"table-layout: fixed\"><tr><td attachPoint=\"statusBarContainer\"></td></tr></table>","\n\t\t</td><td attachPoint=\"sidePaneContainer\" valign=\"top\" style=\"display: none; height: 100%\"></td></tr></table>","</div>"].join("");
editgrid.layout.StandardResizeHandler=function(){
};
editgrid.layout.StandardResizeHandler.prototype.init=function(grid,_1c5d){
this.grid=grid;
this.layout=_1c5d;
if(std.browser.isIE){
std.event.observe(_1c5d.container,"resize",std.lang.bind(this,this.onResize));
this.onResize(null,null);
}else{
(this.detectResize=std.lang.bind(this,this._detectResize))();
}
};
editgrid.layout.StandardResizeHandler.prototype._detectResize=function(){
var w=this.layout.container.clientWidth;
var h=this.layout.container.clientHeight;
if(w!=this._containerWidth||h!=this._containerHeight){
this.onResize(w,h);
this._containerWidth=w;
this._containerHeight=h;
}
setTimeout(this.detectResize,25);
};
editgrid.layout.StandardResizeHandler.prototype._alignProgressBar=function(w,h){
var root=this.grid.progressBar.getRoot();
var size=std.dom.getDimensions(root);
root.style.left=((w-size.width)>>1)+"px";
root.style.top=((h-size.height)>>1)+"px";
var _1c64=this.layout;
if(_1c64._progressBarContainerHidden){
_1c64._progressBarContainerHidden=false;
_1c64.nodes.progressBarContainer.style.visibility="visible";
i;
}
};
editgrid.layout.StandardResizeHandler.prototype.onResize=function(w,h){
var grid=this.grid;
var _1c68=this.layout.container;
var pane=grid.sheetTabPane.container;
var _1c6a=grid.toolbar;
var nodes=this.layout.nodes;
if(grid.progressBar.isVisible()){
this._alignProgressBar(_1c68.clientWidth,_1c68.clientHeight);
}
var w=_1c68.clientWidth-nodes.sidePaneContainer.offsetWidth;
_1c6a.recalcLayout(w);
var _1c6c=std.dom.getTargetPos(nodes.viewContainer);
var _1c6d=std.dom.getTargetPos(nodes.headerbar);
var h=_1c68.clientHeight-(_1c6c.y-_1c6d.y)-nodes.statusBarContainer.offsetHeight;
grid.view.setSize(w,h);
pane.style.width=w+"px";
};
editgrid.layout.HomeResizeHandler=function(){
};
editgrid.layout.HomeResizeHandler.prototype=new editgrid.layout.StandardResizeHandler();
editgrid.layout.HomeResizeHandler.prototype.init=function(grid,_1c6f){
this.grid=grid;
this.layout=_1c6f;
std.viewport.addResizeListener(std.lang.bind(this,this.onResize));
};
editgrid.layout.HomeResizeHandler=function(){
};
editgrid.layout.HomeResizeHandler.prototype=new editgrid.layout.StandardResizeHandler();
editgrid.layout.HomeResizeHandler.prototype.init=function(grid,_1c71){
this.grid=grid;
this.layout=_1c71;
std.viewport.addResizeListener(std.lang.bind(this,this.onResize));
};
editgrid.layout.HomeResizeHandler.prototype.onResize=function(W,H){
if(W==null&&H==null){
var _1c74=std.dom.getBodyExtent();
W=_1c74.width;
H=_1c74.height;
}
var nodes=this.layout.nodes;
var grid=this.grid;
var pane=grid.sheetTabPane.container;
var _1c78=nodes.sidePaneContainer;
this._alignProgressBar(W,H);
var w=W-_1c78.offsetWidth;
grid.toolbar.recalcLayout(w);
var _1c7a=std.dom.getTargetPos(nodes.viewContainer);
h=H-_1c7a.y-nodes.statusBarContainer.offsetHeight;
grid.view.setSize(w,h);
grid.sidePane.setSize(_1c78.offsetWidth,_1c78.offsetHeight);
pane.style.width=w+"px";
var _1c7b=std.dom.getTargetPos(nodes.toolbarContainer);
_1c78.style.height=(H-_1c7b.y)+"px";
};
editgrid.UnsavedBlocker=function(){
this.isEnabled=false;
this.shallSkip=false;
this.skipNextCount=0;
this.onBeforeUnloadListener=std.event.listener(this,this._onBeforeUnload);
};
editgrid.UnsavedBlocker.prototype.enable=function(){
if(!this.isEnabled){
this.isEnabled=true;
this.shallSkip=false;
this.skipNextCount=0;
std.event.observe(window,"beforeunload",this.onBeforeUnloadListener);
}
};
editgrid.UnsavedBlocker.prototype.disable=function(){
if(this.isEnabled){
std.event.stopObserving(window,"beforeunload",this.onBeforeUnloadListener);
}
};
editgrid.UnsavedBlocker.prototype.skipNext=function(){
this.skipNextCount++;
this.shallSkip=true;
setTimeout(std.lang.bind(this,this._onSkipNextTimeout),1000);
};
editgrid.UnsavedBlocker.prototype.setShallBlockCallback=function(_1c7c){
this.shallBlockCallback=_1c7c;
};
editgrid.UnsavedBlocker.prototype._onBeforeUnload=function(e){
var msg="\n"+loc("You haven't assigned a name to this sheet.")+"\n\n"+loc("All data will be lost.")+"\n";
if(!this.shallSkip&&(!this.shallBlockCallback||this.shallBlockCallback())){
e.returnValue=msg;
return msg;
}
};
editgrid.UnsavedBlocker.prototype._onSkipNextTimeout=function(){
this.skipNextCount--;
if(this.skipNextCount==0){
this.shallSkip=false;
}
};
editgrid.SavingBlocker=function(){
this.isEnabled=false;
this.onBeforeUnloadListener=std.event.listener(this,this._onBeforeUnload);
};
editgrid.SavingBlocker.prototype.enable=function(){
if(!this.isEnabled){
this.isEnabled=true;
std.event.observe(window,"beforeunload",this.onBeforeUnloadListener);
}
};
editgrid.SavingBlocker.prototype.disable=function(){
if(this.isEnabled){
this.isEnabled=false;
std.event.stopObserving(window,"beforeunload",this.onBeforeUnloadListener);
}
};
editgrid.SavingBlocker.prototype.setShallBlockCallback=function(_1c7f){
this.shallBlockCallback=_1c7f;
};
editgrid.SavingBlocker.prototype._onBeforeUnload=function(e){
var msg=loc("Some changes are not yet saved.")+"\n"+loc("You'll lose these changes if you navigate away before saving is completed.");
if(!this.shallBlockCallback||this.shallBlockCallback()){
e.returnValue=msg;
return msg;
}
};
editgrid.EditingMacroBlocker=function(){
this.isEnabled=false;
this.onBeforeUnloadListener=std.event.listener(this,this._onBeforeUnload);
};
editgrid.EditingMacroBlocker.prototype.enable=function(){
if(!this.isEnabled){
this.isEnabled=true;
std.event.observe(window,"beforeunload",this.onBeforeUnloadListener);
}
};
editgrid.EditingMacroBlocker.prototype.disable=function(){
if(this.isEnabled){
this.isEnabled=false;
std.event.stopObserving(window,"beforeunload",this.onBeforeUnloadListener);
}
};
editgrid.EditingMacroBlocker.prototype.setShallBlockCallback=function(_1c82){
this.shallBlockCallback=_1c82;
};
editgrid.EditingMacroBlocker.prototype._onBeforeUnload=function(e){
var msg=loc("Your macro changes are not yet saved.")+"\n"+loc("Before you navigate away, please make a backup of these changes.");
if(!this.shallBlockCallback||this.shallBlockCallback()){
e.returnValue=msg;
return msg;
}
};
editgrid.statusbar={};
editgrid.statusbar.Statusbar=function(items){
this._construct(items);
};
editgrid.statusbar.Statusbar.prototype.getRoot=function(){
return this.root;
};
editgrid.statusbar.Statusbar.prototype._construct=function(_1c86){
var _1c87=new std.dom.Builder();
this.root=_1c87.push("table",{className:"hideiflite StatusBar",border:"0",cellPadding:0,cellSpacing:0,width:"100%"});
if(!std.browser.isIE){
this.root.style.borderCollapse="separate";
}
_1c87.push("tbody");
this._row=_1c87.push("tr");
_1c87.push("td");
_1c87.append("div",{className:"LeftPad"}).appendChild(std.dom.newText(" "));
_1c87.pop();
this.builder=new std.dom.Builder(this._row);
for(var i=0;i<_1c86.length;++i){
this.add(_1c86[i]);
}
};
editgrid.statusbar.Statusbar.prototype.add=function(_1c89){
this.addItem(new editgrid.statusbar.ItemFactories[_1c89.type](_1c89));
};
editgrid.statusbar.Statusbar.prototype.addItem=function(item){
item._add(this.builder);
if(item.id){
this[item.id]=item.getRoot();
}
};
editgrid.statusbar.Html=function(param){
this.init(param);
this.root=std.dom.newElement("div",null,{innerHTML:param.html},param.width?{width:param.width+"px"}:{});
};
editgrid.statusbar.Icon=function(param){
this.init(param);
this.root=std.dom.newElement("div",null,{className:param.className},{width:"18px"});
if(param.title){
this.root.title=param.title;
}
};
editgrid.statusbar.Lamp=function(param){
this.init(param);
this.root=std.dom.newElement("div",null,{className:param.className},{width:"18px"});
this.root.appendChild(std.dom.newElement("div",null,{className:"Icon"}));
if(param.title){
this.root.title=param.title;
}
};
editgrid.statusbar.Text=function(param){
this.init(param);
this.root=std.dom.newElement("div",null,null,param.width?{width:param.width+"px"}:{});
this.root.appendChild(std.dom.newText(param.title));
};
editgrid.statusbar.Link=function(param){
this.init(param);
this.root=std.dom.newElement("a",null,{href:param.href,innerHTML:param.title});
};
editgrid.statusbar.Expand=function(param){
this.init(param);
this.root=std.dom.newElement("div",null,{width:"10px"});
this.root.appendChild(std.dom.newText(" "));
};
editgrid.statusbar.Spacer=function(param){
this.init(param);
this.width=std.lang.defaultize(param.width,2);
this.root=std.dom.newElement("div");
};
editgrid.statusbar.Separator=function(param){
this.init(param);
this.root=std.dom.newElement("div",null,{className:"Separator"});
};
editgrid.statusbar.Item=function(){
};
editgrid.statusbar.Item.prototype.init=function(param){
this.id=param.id;
this.type=param.type;
};
editgrid.statusbar.Item.prototype.getRoot=function(){
return this.root;
};
editgrid.statusbar.Item.prototype._add=function(_1c94){
_1c94.append("td").appendChild(this.getRoot());
};
editgrid.statusbar.Html.prototype=new editgrid.statusbar.Item();
editgrid.statusbar.Icon.prototype=new editgrid.statusbar.Item();
editgrid.statusbar.Lamp.prototype=new editgrid.statusbar.Item();
editgrid.statusbar.Text.prototype=new editgrid.statusbar.Item();
editgrid.statusbar.Link.prototype=new editgrid.statusbar.Item();
editgrid.statusbar.Spacer.prototype=new editgrid.statusbar.Item();
editgrid.statusbar.Separator.prototype=new editgrid.statusbar.Item();
editgrid.statusbar.Expand.prototype=new editgrid.statusbar.Item();
editgrid.statusbar.Spacer.prototype._add=function(_1c95){
_1c95.append("td",null,{paddingLeft:this.width+"px"}).appendChild(this.root);
};
editgrid.statusbar.Separator.prototype._add=function(_1c96){
_1c96.append("td",null).appendChild(this.root);
};
editgrid.statusbar.Expand.prototype._add=function(_1c97){
_1c97.append("td",null,{width:"100%"}).appendChild(this.root);
};
editgrid.statusbar.ItemFactories={"html":editgrid.statusbar.Html,"icon":editgrid.statusbar.Icon,"lamp":editgrid.statusbar.Lamp,"text":editgrid.statusbar.Text,"link":editgrid.statusbar.Link," ":editgrid.statusbar.Spacer,"expand":editgrid.statusbar.Expand,"-":editgrid.statusbar.Separator};
editgrid.ProgressBar=function(){
this._visible=true;
};
editgrid.ProgressBar.prototype.setVisible=function(_1c98){
this._getNodes().root.style.display=(this._visible=_1c98)?"":"none";
};
editgrid.ProgressBar.prototype.setPercentage=function(_1c99){
this._getNodes().slider.style.width=_1c99+"%";
if(_1c99==100){
this._getNodes().barContainer.style.backgroundPosition="bottom left";
}
};
editgrid.ProgressBar.prototype.setText=function(text){
this._getNodes().text.innerHTML=text;
};
editgrid.ProgressBar.prototype.setProgress=function(_1c9b,text){
this.setPercentage(_1c9b);
this.setText(text);
};
editgrid.ProgressBar.prototype._getNodes=function(){
if(!this.nodes){
this.nodes={};
this.nodes.root=std.dom.newElement("div",null,{className:"ProgressBar"},{display:"none"});
this.nodes.barContainer=std.dom.newElement("div",this.nodes.root,{className:"ProgressBarContainer"});
var _1c9d=std.dom.newElement("div",this.nodes.barContainer,{className:"ProgressBarSliderContainer"});
this.nodes.slider=std.dom.newElement("div",_1c9d,{className:"ProgressBarSlider"},{width:"0%"});
this.nodes.text=std.dom.newElement("div",this.nodes.root,{className:"ProgressBarText"});
}
return this.nodes;
};
editgrid.ProgressBar.prototype.getRoot=function(){
return this._getNodes().root;
};
editgrid.ProgressBar.prototype.isVisible=function(){
return this._visible;
};
if(typeof (editgrid.component)=="undefined"){
editgrid.component={};
}
editgrid.component.DomTreeLoader=function(_1c9e){
_1c9e=_1c9e||{};
this._url=_1c9e.url;
this._resource=_1c9e.resource;
this.transportFactory=_1c9e.transportFactory;
std.topic.define(this,"onLoad");
std.topic.define(this,"onRefresh");
std.topic.define(this,"onCreate");
this.onload=_1c9e.onLoad;
this.oncreate=_1c9e.onCreate||function(node){
return new editgrid.component.DomWrapper(node);
};
this.extraParam=_1c9e.extraParam;
this.useMocker=_1c9e.useMocker;
this.onLoadedSuccess=std.lang.bind(this,this._onLoadedSuccess);
std.topic.subscribe(this,"onLoad",std.lang.bind(this,function(ctx){
if(this.onload){
this.onload(ctx.instance);
}
}));
std.topic.subscribe(this,"onCreate",std.lang.bind(this,function(ctx){
if(this.oncreate){
ctx.instance=this.oncreate(ctx.node,ctx.resource);
}
}));
};
editgrid.component.DomTreeLoader.prototype.getSplashHTML=function(){
return "<div style=\"width:100%;height:100%\"><table width=\"100%\" height=\"100%\"><tr><td align=\"center\" valign=\"middle\"><div class=\"ContentLoading\" style=\"width:126px;margin-bottom:12px\"><div class=\"ContentLoadingText\">"+loc("Loading")+"...</div></div></td></tr></table></div>";
};
editgrid.component.DomTreeLoader.prototype.getRoot=function(){
if(this.root==null){
this.root=std.dom.newTree(this.getSplashHTML());
if(this._resource){
std.ajax.loadMap(this._resource,std.lang.bind(this,this._onLoadResSuccess),{transportFactory:this.transportFactory});
}else{
this._loadedRes=null;
}
var url=std.lang.evaluate(this._url);
if(this.useMocker){
var _1ca3=this.mocker=std.mocker.mock(this.root,url,true,std.lang.bind(this,this._onMockSuccess),this.transportFactory,this.extraParam);
std.topic.subscribe(_1ca3,"onRefresh",std.lang.bind(this,this._onRefreshSuccess));
}else{
new std.ajax.Request(url,{transportFactory:this.transportFactory,onSuccess:std.lang.bind(this,this._onLoadHtmSuccess)});
}
}
return this.root;
};
editgrid.component.DomTreeLoader.prototype._onLoadHtmSuccess=function(htm){
this._loadedHtm=htm;
if(this._loadedRes!==undefined){
this._fireLoadedSuccess();
}
};
editgrid.component.DomTreeLoader.prototype._onLoadResSuccess=function(res){
this._loadedRes=res;
if(this._loadedHtm!==undefined){
this._fireLoadedSuccess();
}
};
editgrid.component.DomTreeLoader.prototype._fireLoadedSuccess=function(){
setTimeout(this.onLoadedSuccess,0);
};
editgrid.component.DomTreeLoader.prototype._onLoadedSuccess=function(){
var ctx={node:std.dom.newTree(this._loadedHtm.responseText),resource:this._loadedRes};
std.topic.publish(this,"onCreate",ctx);
var inst=ctx.instance;
var root=inst&&inst.getRoot?inst.getRoot():ctx.node;
if(this.root.firstChild){
this.root.replaceChild(root,this.root.firstChild);
}else{
this.root.appendChild(root);
}
this.root.style.display="block";
std.topic.publish(this,"onLoad",ctx);
};
editgrid.component.DomTreeLoader.prototype._onRefreshSuccess=function(){
var ctx={node:this.root,resource:this._loadedRes};
std.topic.publish(this,"onRefresh",ctx);
};
editgrid.component.DomTreeLoader.prototype._onMockSuccess=function(){
var ctx={node:this.root,resource:this._loadedRes};
std.topic.publish(this,"onCreate",ctx);
std.topic.publish(this,"onLoad",ctx);
};
editgrid.component.DomTreeLoader.prototype.reload=function(url){
if(this.useMocker){
this.mocker.reload(url);
}else{
new std.ajax.Request(url,{transportFactory:this.transportFactory,onSuccess:std.lang.bind(this,this._onLoadHtmSuccess)});
}
};
editgrid.component.DomWrapper=function(root){
this.root=root;
};
editgrid.component.DomWrapper.prototype.getRoot=function(){
return this.root;
};
editgrid.Overlay=function(){
this.element=std.dom.element("Overlay");
this.onShowContext=null;
this.onShow=null;
this.onHideContext=null;
this.onHide=null;
if(!this.element){
var _1cad=document.getElementsByTagName("body").item(0);
this.element=document.createElement("div");
this.element.setAttribute("id","Overlay");
this.element.className="Overlay";
this.element.style.display="none";
this.element.style.position="absolute";
this.element.style.top="0";
this.element.style.left="0";
_1cad.appendChild(this.element);
}
};
editgrid.Overlay.prototype.show=function(){
this.element.style.height="100%";
this.element.style.width="100%";
this.element.style.display="";
this.onShow();
};
editgrid.Overlay.prototype.hide=function(){
this.element.style.display="none";
this.onHide();
};
editgrid.Cursor=function(grid){
this._grid=grid;
std.topic.subscribe(this._grid.view,"onSelectChange",std.lang.bind(this,this._onMove));
std.topic.subscribe(this._grid.view,"onEditorOn",std.lang.bind(this,this._onStartEdit));
std.topic.subscribe(this._grid.view,"onEditorOff",std.lang.bind(this,this._onFinishEdit));
std.topic.define(this,"onMove");
std.topic.define(this,"onStartEdit");
std.topic.define(this,"onFinishEdit");
};
editgrid.Cursor.prototype._set=function(rowFr,colFr,rowTo,colTo){
if(rowTo===undefined){
rowTo=rowFr;
}
if(colTo===undefined){
colTo=colFr;
}
this._grid.view.pane.relocateCurBox(rowFr,colFr,rowTo,colTo,true,false,true);
};
editgrid.Cursor.prototype.getSheet=function(){
return this._grid.getActiveSheet();
};
editgrid.Cursor.prototype.moveTo=function(_1cb3){
_1cb3=editgrid.CellRef.from(_1cb3);
this._set(_1cb3.row,_1cb3.col);
};
editgrid.Cursor.prototype.moveBy=function(_1cb4,_1cb5){
var _1cb6=this._grid.view.pane.cursor;
this._set(_1cb6._rowFr+_1cb4,_1cb6._rowTo+_1cb5);
};
editgrid.Cursor.prototype.selectAll=function(){
this._grid.selectCell();
};
editgrid.Cursor.prototype.selectRows=function(from,to){
this.selectRange(editgrid.RangeRef.fromRows(from,to));
};
editgrid.Cursor.prototype.selectCols=function(from,to){
this.selectRange(editgrid.RangeRef.fromCols(from,to));
};
editgrid.Cursor.prototype.selectRange=function(range){
range=editgrid.RangeRef.from(range);
this._set(range.rowFr,range.colFr,range.rowTo,range.colTo);
};
editgrid.Cursor.prototype.insertText=function(text){
return this._grid.view.pane.insertText(text);
};
editgrid.Cursor.prototype.isInEditMode=function(){
return this._grid.view.pane.editor.isOn;
};
editgrid.Cursor.prototype.startEdit=function(){
this._grid.view.pane.showEditor(false,true,false);
};
editgrid.Cursor.prototype.finishEdit=function(){
this._grid.view.pane.hideEditor(true);
};
editgrid.Cursor.prototype.getCellRef=function(){
var _1cbd=this._grid.view.pane.cursor.focusBox;
return new editgrid.CellRef(_1cbd.rowFr,_1cbd.colFr);
};
editgrid.Cursor.prototype.getRangeRef=function(){
var _1cbe=this._grid.view.pane.cursor;
return new editgrid.RangeRef(_1cbe._rowFr<_1cbe._rowTo?_1cbe._rowFr:_1cbe._rowTo,_1cbe._colFr<_1cbe._colTo?_1cbe._colFr:_1cbe._colTo,_1cbe._rowFr<_1cbe._rowTo?_1cbe._rowTo:_1cbe._rowFr,_1cbe._colFr<_1cbe._colTo?_1cbe._colTo:_1cbe._colFr);
};
editgrid.Cursor.prototype.getRange=function(){
return this.getSheet().getRange(this.getRangeRef());
};
editgrid.Cursor.prototype.getCell=function(){
return this.getSheet().getCell(this.getCellRef());
};
editgrid.Cursor.prototype._onMove=function(){
std.topic.publish(this,"onMove",this);
};
editgrid.Cursor.prototype._onStartEdit=function(_1cbf){
std.topic.publish(this,"onStartEdit",_1cbf);
};
editgrid.Cursor.prototype._onFinishEdit=function(_1cc0){
std.topic.publish(this,"onFinishEdit",_1cc0);
};
editgrid.Cursor.prototype.addOnMoveListener=function(_1cc1){
if(typeof (_1cc1)!="function"){
throw new Error("Listener must be a function.");
}
var _1cc2=new editgrid.ListenerHandle(std.lang.bind(this,function(){
_1cc1(this.getCell(),this.getRange());
}));
std.topic.subscribe(this,"onMove",_1cc2.getHandle());
return _1cc2;
};
editgrid.Cursor.prototype.addOnStartEditListener=function(_1cc3){
if(typeof (_1cc3)!="function"){
throw new Error("Listener must be a function.");
}
var _1cc4=new editgrid.ListenerHandle(std.lang.bind(this,function(_1cc5){
_1cc3(_1cc5,this.getCell());
}));
std.topic.subscribe(this,"onStartEdit",_1cc4.getHandle());
return _1cc4;
};
editgrid.Cursor.prototype.addOnFinishEditListener=function(_1cc6){
if(typeof (_1cc6)!="function"){
throw new Error("Listener must be a function.");
}
var _1cc7=new editgrid.ListenerHandle(std.lang.bind(this,function(_1cc8){
_1cc6(_1cc8,this.getCell());
}));
std.topic.subscribe(this,"onFinishEdit",_1cc7.getHandle());
return _1cc7;
};
editgrid.Cursor.prototype.removeOnMoveListener=function(_1cc9){
std.topic.unsubscribe(this,"onMove",_1cc9.getHandle());
};
editgrid.Cursor.prototype.removeOnStartEditListener=function(_1cca){
std.topic.unsubscribe(this,"onStartEdit",_1cca.getHandle());
};
editgrid.Cursor.prototype.removeOnFinishEditListener=function(_1ccb){
std.topic.unsubscribe(this,"onFinishEdit",_1ccb.getHandle());
};
editgrid.Cell=function(sheet,_1ccd){
this._sheet=sheet;
this._cellRef=_1ccd;
};
editgrid.Cell.prototype._get=function(_1cce,_1ccf){
var ret=null;
var range=editgrid.RangeRef.fromCellRef(this._cellRef);
this._sheet.loadRange(range,std.lang.bind(this,function(){
var r=this._cellRef.row;
var c=this._cellRef.col;
var cell=this._sheet._getCell(r,c);
ret=_1ccf(this._sheet,cell,r,c);
if(_1cce&&typeof (_1cce)=="function"){
_1cce(ret);
}
}));
return ret;
};
editgrid.Cell.prototype._getCell=function(_1cd5,_1cd6,obj){
var row=this._cellRef.row;
var col=this._cellRef.col;
var cell=this._sheet._getCell(row,col);
if(!cell){
if(_1cd5&&typeof (_1cd5)=="function"){
_1cd5(null);
}
return null;
}else{
if(cell==editgrid.CellData.NOT_LOADED_CELL){
if(_1cd5&&typeof (_1cd5)=="function"){
var sheet=this._sheet;
this._sheet.loadRange(editgrid.RangeRef.fromCellRef(this._cellRef),function(){
var cell=sheet._getCell(row,col);
if(cell){
_1cd5(std.lang.bind(obj?obj:cell,_1cd6)(row,col));
}else{
_1cd5(null);
}
});
}
return null;
}else{
var ret=std.lang.bind(obj?obj:cell,_1cd6)(row,col);
if(_1cd5&&typeof (_1cd5)=="function"){
_1cd5(ret);
}
return ret;
}
}
};
editgrid.Cell.prototype.getSheet=function(){
return this._sheet;
};
editgrid.Cell.prototype.getCol=function(){
return this._cellRef.col;
};
editgrid.Cell.prototype.getRow=function(){
return this._cellRef.row;
};
editgrid.Cell.prototype.getCellRef=function(){
return this._cellRef;
};
editgrid.Cell.prototype.getText=function(_1cde){
return this._get(_1cde,function(sheet,cell,r,c){
return cell?cell.getText():"";
});
};
editgrid.Cell.prototype.getDisplayText=function(_1ce3){
return this._get(_1ce3,function(sheet,cell,r,c){
return cell?cell.getRText():"";
});
};
editgrid.Cell.prototype.getValue=function(_1ce8){
return this._get(_1ce8,function(sheet,cell,r,c){
return cell?cell.ntext:"";
});
};
editgrid.Cell.prototype.getStyle=function(_1ced){
return this._get(_1ced,std.lang.bind(this,function(sheet,call,r,c){
return sheet.getStyle(r,c).clone(true)._connectCell(this);
}));
};
editgrid.Cell.prototype.setText=function(text,lazy){
if(text==null){
text="";
}
text=text+"";
if(lazy&&text===this.getText()){
return;
}
this._sheet.setCell(this._cellRef.row,this._cellRef.col,""+text,null,null);
};
editgrid.Cell.prototype.setStyle=function(style,lazy){
this.applyStyle(style,lazy);
};
editgrid.Cell.prototype.applyStyle=function(hash,lazy){
if(lazy&&this.getStyle().isImmuteTo(editgrid.Style.fromHash(hash))){
return;
}
this._sheet.setRangeStyle(editgrid.RangeRef.fromCellRef(this._cellRef),editgrid.Style.fromHash(hash));
};
editgrid.Cell.prototype.setCommentText=function(text,lazy){
if(lazy&&text==this.getCommentText()){
return;
}
this._sheet.setCellComment(this._cellRef.row,this._cellRef.col,text==null?"":text);
};
editgrid.Cell.prototype.getCommentText=function(_1cfa){
var cc=this._sheet.getCellComment(this._cellRef.row,this._cellRef.col);
var text=(cc!=null&&cc.text!=null)?cc.text:"";
if(_1cfa&&typeof (_1cfa)=="function"){
_1cfa(text);
}
return text;
};
editgrid.Cell.prototype.toString=function(){
return this._cellRef.getName();
};
editgrid.Range=function(sheet,_1cfe){
this._rangeRef=_1cfe;
this._sheet=sheet;
};
editgrid.Range.prototype.getSheet=function(){
return this._sheet;
};
editgrid.Range.prototype.getRowFr=function(){
return this._rangeRef.rowFr;
};
editgrid.Range.prototype.getColFr=function(){
return this._rangeRef.colFr;
};
editgrid.Range.prototype.getRowTo=function(){
return this._rangeRef.rowTo;
};
editgrid.Range.prototype.getColTo=function(){
return this._rangeRef.colTo;
};
editgrid.Range.prototype.getRangeRef=function(){
return this._rangeRef;
};
editgrid.Range.prototype.getCells=function(){
var cells=[];
for(var i=this._rangeRef.rowFr;i<=this._rangeRef.rowTo;i++){
cells[i-this._rangeRef.rowFr]=[];
for(var j=this._rangeRef.colFr;j<=this._rangeRef.colTo;j++){
cells[i-this._rangeRef.rowFr][j-this._rangeRef.colFr]=this._sheet.getCell(new editgrid.CellRef(i,j));
}
}
return cells;
};
editgrid.Range.prototype._diff=function(_1d02,value,_1d04){
var _1d05=this[_1d02]();
for(var i=0;i<_1d05.length;i++){
for(var j=0;j<_1d05[i].length;j++){
if(!_1d04(_1d05,value,i,j)){
return true;
}
}
}
return false;
};
editgrid.Range.prototype.setText=function(text,lazy){
if(text==null){
text="";
}
text=text+"";
if(lazy&&!this._diff("getTexts",text,function(o,n,i,j){
return o[i][j]===n;
})){
return;
}
this._sheet.setRangeText(this._rangeRef,text);
};
editgrid.Range.prototype.setTexts=function(texts,lazy){
texts=this._normalizeTexts(texts);
if(lazy&&!this._diff("getTexts",texts,function(o,n,i,j){
return o[i][j]===n[i][j];
})){
return;
}
this._sheet.setRangeTexts(this._rangeRef,texts);
};
editgrid.Range.prototype._normalizeTexts=function(texts){
var ret=[];
var ref=this._rangeRef;
for(var i=0,r=ref.rowFr;r<=ref.rowTo;r++,i++){
ret[i]=[];
for(var j=0,c=ref.colFr;c<=ref.colTo;c++,j++){
ret[i][j]=texts[i]==null||texts[i][j]==null?"":texts[i][j]+"";
}
}
return ret;
};
editgrid.Range.prototype.clearTexts=function(){
this._sheet.rangeClear(this._rangeRef,SSS_CLEAR_CONTENTS);
};
editgrid.Range.prototype._get=function(_1d1b,_1d1c){
var ret=[];
for(var i=0;i<=this._rangeRef.rowTo-this._rangeRef.rowFr;i++){
ret[i]=[];
for(var j=0;j<=this._rangeRef.colTo-this._rangeRef.colFr;j++){
ret[i][j]=null;
}
}
this._sheet.loadRange(this._rangeRef,std.lang.bind(this,function(){
for(var r=this._rangeRef.rowFr,i=0;r<=this._rangeRef.rowTo;r++,i++){
for(var c=this._rangeRef.colFr,j=0;c<=this._rangeRef.colTo;c++,j++){
var cell=this._sheet._getCell(r,c);
ret[i][j]=_1d1c(this._sheet,cell,r,c);
}
}
if(_1d1b&&typeof (_1d1b)=="function"){
_1d1b(ret);
}
}));
return ret;
};
editgrid.Range.prototype.getTexts=function(_1d23){
return this._get(_1d23,function(sheet,cell,r,c){
return cell?cell.getText():"";
});
};
editgrid.Range.prototype.getDisplayTexts=function(_1d28){
return this._get(_1d28,function(sheet,cell,r,c){
return cell?cell.getRText():"";
});
};
editgrid.Range.prototype.getValues=function(_1d2d){
return this._get(_1d2d,function(sheet,cell,r,c){
return cell?cell.ntext:"";
});
};
editgrid.Range.prototype.getStyles=function(_1d32){
return this._get(_1d32,function(sheet,cell,r,c){
return sheet.getStyle(r,c).clone(true)._connectCell(sheet.getCell([r,c]));
});
};
editgrid.Range.prototype.setStyle=function(style,lazy){
this.applyStyle(style,lazy);
};
editgrid.Range.prototype.applyStyle=function(hash,lazy){
var style=editgrid.Style.fromHash(hash);
if(lazy&&!this._diff("getStyles",style,function(o,n,i,j){
return o[i][j].isImmuteTo(n);
})){
return;
}
this._sheet.setRangeStyle(this._rangeRef,style);
};
editgrid.Range.prototype.clearStyles=function(){
this._sheet.rangeClear(this._rangeRef,SSS_CLEAR_FORMATS);
};
editgrid.Range.prototype.clearAll=function(){
this._sheet.rangeClear(this._rangeRef,SSS_CLEAR_ALL);
};
editgrid.Range.prototype.copy=function(){
this._sheet.rangeCopy(this._rangeRef);
};
editgrid.Range.prototype.pasteAll=function(){
this._sheet.paste(this._rangeRef);
};
editgrid.Range.prototype.pasteContent=function(){
this._sheet.paste(this._rangeRef,SSS_PASTE_CONTENT);
};
editgrid.Range.prototype.pasteStyle=function(){
this._sheet.paste(this._rangeRef,SSS_PASTE_FORMATS);
};
editgrid.Range.prototype.merge=function(){
this._sheet.mergeCells(this._rangeRef);
};
editgrid.Range.prototype.unmerge=function(){
this._sheet.unmergeCells(this._rangeRef);
};
editgrid.Range.prototype.eachCell=function(func){
if(typeof func!="function"){
throw new TypeError("\"func\" is not a function");
}
var _1d41=this._rangeRef,sheet=this._sheet;
for(var _1d43=_1d41.rowFr;_1d43<=_1d41.rowTo;_1d43++){
for(var _1d44=_1d41.colFr;_1d44<=_1d41.colTo;_1d44++){
func.call(null,new editgrid.Cell(sheet,new editgrid.CellRef(_1d43,_1d44)),_1d43,_1d44);
}
}
};
editgrid.Range.prototype.eachRow=function(func){
if(typeof func!="function"){
throw new TypeError("\"func\" is not a function");
}
var _1d46=this._rangeRef,sheet=this._sheet;
for(var _1d48=_1d46.rowFr;_1d48<=_1d46.rowTo;_1d48++){
var cols=[];
for(var _1d4a=_1d46.colFr;_1d4a<=_1d46.colTo;_1d4a++){
cols.push(new editgrid.Cell(sheet,new editgrid.CellRef(_1d48,_1d4a)));
}
func.call(null,cols,_1d48);
}
};
editgrid.Range.prototype.eachCol=function(func){
if(typeof func!="function"){
throw new TypeError("\"func\" is not a function");
}
var _1d4c=this._rangeRef,sheet=this._sheet;
for(var _1d4e=_1d4c.colFr;_1d4e<=_1d4c.colTo;_1d4e++){
var rows=[];
for(var _1d50=_1d4c.rowFr;_1d50<=_1d4c.rowTo;_1d50++){
rows.push(new editgrid.Cell(sheet,new editgrid.CellRef(_1d50,_1d4e)));
}
func.call(null,rows,_1d4e);
}
};
editgrid.Range.prototype.toString=function(){
return this._rangeRef.getName();
};
editgrid.SidePane=function(){
std.topic.define(this,"onSetSize");
std.topic.define(this,"onChangeURL");
};
editgrid.SidePane.prototype.getRoot=function(){
return this._getNodes().root;
};
editgrid.SidePane.prototype._getNodes=function(){
if(!this.nodes){
this.nodes={};
this.nodes.root=std.dom.newElement("div",null,{},{height:"100%",backgroundColor:"#f0f0f0"});
}
return this.nodes;
};
editgrid.SidePane.prototype.setSize=function(w,h){
std.topic.publish(this,"onSetSize",w,h);
};
editgrid.SidePane.prototype.loadUrl=function(url,_1d54){
var root=this._getNodes().root;
var _1d56=url+"?domain="+_1d54;
this.iframe=std.dom.newElement("iframe",root,{frameBorder:0,src:_1d56},{height:"100%",width:"100%",backgroundColor:"white",backgroundImage:"url('"+editgrid.config.baseUrl+"static/style/img/sidepane/progressLoader.gif')",backgroundRepeat:"no-repeat",backgroundPosition:"50px 30px "});
};
editgrid.SidePane.prototype.changeUrl=function(url){
this.iframe.src=url;
std.topic.publish(this,"onChangeURL");
};
if(!editgrid.gridlet){
editgrid.gridlet={};
}
editgrid.gridlet.Toolbox=function(_1d58,id,title,_1d5b,_1d5c){
_1d5c=_1d5c||{};
this._toolbox=new editgrid.toolbox.Toolbox();
this._onCreate=_1d5b;
var _1d5d="gridlet.toolbox."+_1d58._providerId+"."+id+"."+Math.random();
var url=_1d58._config.baseUrl+"gridlet/toolbox";
var elm=std.dom.newElement("div",null,{title:title},null);
var width=_1d5c.width?parseInt(_1d5c.width):400;
var _1d61=_1d5c.height?parseInt(_1d5c.height):280;
var _1d62=this._iframe=std.dom.newElement("iframe",elm,{src:url,id:_1d5d,name:_1d5d,frameborder:"0",width:width,height:_1d61},{border:"none",width:width+"px",height:_1d61+"px"});
var _1d63;
_1d63=std.lang.bind(this,function(){
this._onLoad(_1d62,_1d63);
});
std.event.observe(_1d62,"load",_1d63);
this._toolbox.init(elm);
std.topic.subscribe(this._toolbox,"onShow",std.lang.bind(this,this._fireOnOpenListener));
std.topic.subscribe(this._toolbox,"onClose",std.lang.bind(this,this._fireOnCloseListener));
std.topic.subscribe(this._toolbox,"onRelease",std.lang.bind(this,this._onRelease));
std.topic.define(this,"onRelease");
this._onOpenListeners=[];
this._onCloseListeners=[];
};
editgrid.gridlet.Toolbox.prototype._onLoad=function(_1d64,_1d65){
std.event.stopObserving(_1d64,"load",_1d65);
this._onCreate(_1d64);
};
editgrid.gridlet.Toolbox.prototype.setSize=function(width,_1d67){
this._iframe.style.width=width+"px";
this._iframe.style.height=_1d67+"px";
};
editgrid.gridlet.Toolbox.prototype.open=function(){
this._toolbox.showAtCenter();
};
editgrid.gridlet.Toolbox.prototype.close=function(){
this._toolbox.close(true);
};
editgrid.gridlet.Toolbox.prototype.release=function(){
this._toolbox.release();
};
editgrid.gridlet.Toolbox.prototype._onRelease=function(){
std.topic.publish(this,"onRelease");
};
editgrid.gridlet.Toolbox.prototype._fireOnOpenListener=function(){
for(var i=0;i<this._onOpenListeners.length;i++){
this._onOpenListeners[i]();
}
};
editgrid.gridlet.Toolbox.prototype._fireOnCloseListener=function(){
for(var i=0;i<this._onCloseListeners.length;i++){
this._onCloseListeners[i]();
}
};
editgrid.gridlet.Toolbox.prototype.addOnOpenListener=function(_1d6a){
this._onOpenListeners.push(_1d6a);
};
editgrid.gridlet.Toolbox.prototype.addOnCloseListener=function(_1d6b){
this._onCloseListeners.push(_1d6b);
};
editgrid.gridlet.GridletController=function(grid,_1d6d,macro,id,name,code,_1d72){
this.grid=grid;
this._config=_1d6d;
this._providerName=name;
this._providerId=id;
this._code=code;
this._macro=macro;
this._provider=new editgrid.gridlet.GridletProvider(grid.gridlet._stub,id);
this._actions={};
this._toolboxes={};
this._menuItems=[];
this._toolbarItems=[];
this._objectControls={};
this._inited=false;
var attrs={};
attrs.name=name;
attrs.baseUrl=grid.config.baseUrl;
attrs.gridletBaseUrl=_1d6d.remoteSite.baseUrl;
std.topic.define(this,"onError");
std.topic.define(this,"onPostInstall");
this.__onSettingsUpdate=std.lang.bind(this,this._onSettingsUpdate);
std.topic.subscribe(macro,"onSettingsUpdate",this.__onSettingsUpdate);
this._init(id,name,code,_1d72,attrs);
};
editgrid.gridlet.GridletController.prototype._init=function(id,name,code,_1d77,attrs){
editgrid.gridlet.GridletProvider.install(null,null,id,name,code,_1d77,attrs);
};
editgrid.gridlet.GridletController.prototype.postInstall=function(){
this._inited=true;
std.topic.publish(this,"onPostInstall");
};
editgrid.gridlet.GridletController.prototype.onScriptError=function(e){
std.topic.publish(this,"onError",e);
};
editgrid.gridlet.GridletController.prototype._initToolbox=function(id,title,_1d7c,_1d7d){
var _1d7e=this._toolboxes[id]=new editgrid.gridlet.Toolbox(this,id,title,_1d7c,_1d7d);
std.topic.subscribe(_1d7e,"onRelease",std.lang.bind(this,this.removeToolbox,id));
};
editgrid.gridlet.GridletController.prototype.initToolbox=function(id,title,_1d81,_1d82){
};
editgrid.gridlet.GridletController.prototype.addToolbox=function(_1d83){
_1d83.init(this);
};
editgrid.gridlet.GridletController.prototype.getToolbox=function(id){
return this._toolboxes[id];
};
editgrid.gridlet.GridletController.prototype.removeToolbox=function(id){
delete this._toolboxes[id];
};
editgrid.gridlet.GridletController.prototype.addMenuItem=function(path,id,func,_1d89){
this.grid.addMenuItem(path,id,func,_1d89);
this._menuItems.push(path+(path?"/":"")+id);
};
editgrid.gridlet.GridletController.prototype.removeMenuItem=function(path){
this.grid.removeMenuItem(path);
this._menuItems=std.array.without(this._menuItems,path);
};
editgrid.gridlet.GridletController.prototype.addScriptAction=function(name,func,keys){
this.grid.addScriptAction(this._providerId+":"+name,func,keys);
this._actions[name]=name;
};
editgrid.gridlet.GridletController.prototype.removeScriptAction=function(name){
this.grid.removeScriptAction(this._providerId+":"+name);
delete this._actions[name];
};
editgrid.gridlet.GridletController.prototype.addToolbarItem=function(name,func,_1d91){
this.grid.addToolbarItem(this._providerId+":"+name,func,_1d91);
this._toolbarItems.push(name);
};
editgrid.gridlet.GridletController.prototype.removeToolbarItem=function(name){
this.grid.removeToolbarItem(this._providerId+":"+name);
};
editgrid.gridlet.GridletController.prototype.setSettings=function(_1d93){
this._macro.setSettings(_1d93);
};
editgrid.gridlet.GridletController.prototype._onSettingsUpdate=function(){
std.async.call(this._provider,this._provider.updateSettings,this._macro.settings);
};
editgrid.gridlet.GridletController.prototype.addSheetObject=function(clazz,attr,data){
this.grid.addSheetObject(this._providerId+":"+clazz,attr,data);
};
editgrid.gridlet.GridletController.prototype.createSheetObjectControl=function(ctrl){
this._provider.createSheetObjectControl(std.lang.bind(this,this._postCreateSheetObjectControl,ctrl),std.lang.bind(this,this.onScriptError),ctrl);
};
editgrid.gridlet.GridletController.prototype._postCreateSheetObjectControl=function(ctrl){
var _ctrl=new editgrid.gridlet.GridletProvider.SheetObjectControl(this.grid.gridlet._stub,this._provider,ctrl._id);
this._objectControls[ctrl._id]=ctrl;
ctrl.postInstall(_ctrl);
};
editgrid.gridlet.GridletController.prototype.release=function(){
this._releaseActions();
this._releaseMenus();
this._releaseToolbarItems();
this._releaseToolboxes();
this._releaseObjectControls();
std.topic.unsubscribe(this._macro,"onSettingsUpdate",this.__onSettingsUpdate);
editgrid.gridlet.GridletProvider.uninstall(null,null,this._providerId);
};
editgrid.gridlet.GridletController.prototype._releaseActions=function(){
for(var name in this._actions){
try{
this.grid.removeScriptAction(this._providerId+":"+name);
}
catch(e){
std.log.error(e);
}
}
};
editgrid.gridlet.GridletController.prototype._releaseToolbarItems=function(){
for(var i=0;i<this._toolbarItems.length;i++){
try{
this.grid.removeToolbarItem(this._providerId+":"+this._toolbarItems[i]);
}
catch(e){
std.log.error(e);
}
}
};
editgrid.gridlet.GridletController.prototype._releaseMenus=function(){
for(var i=this._menuItems.length-1;i>=0;i--){
try{
this.grid.removeMenuItem(this._menuItems[i]);
}
catch(e){
std.log.error(e);
}
}
};
editgrid.gridlet.GridletController.prototype._releaseToolboxes=function(){
for(var k in this._toolboxes){
try{
this._toolboxes[k].release();
delete this._toolboxes[k];
}
catch(e){
std.log.error(e);
}
}
};
editgrid.gridlet.GridletController.prototype._releaseObjectControls=function(){
for(var k in this._objectControls){
try{
this._objectControls[k].doUninstall();
delete this._objectControls[k];
}
catch(e){
std.log.error(e);
}
}
};
editgrid.gridlet.SheetObjectControl=function(_1d9f){
this._config=_1d9f;
this._ctrl=null;
this._count=0;
this._iframes=[];
std.topic.define(this,"onRelease");
};
editgrid.gridlet.SheetObjectControl.prototype=new editgrid.so.CustomSheetObjectControl();
editgrid.gridlet.SheetObjectControl.prototype.init=function(){
editgrid.so.CustomSheetObjectControl.prototype.init.apply(this,arguments);
return this;
};
editgrid.gridlet.SheetObjectControl.prototype.initDelegate=function(_1da0,_1da1,cmenu){
if(this._ctrl){
this._initDelegate(_1da0,_1da1,cmenu);
}
};
editgrid.gridlet.SheetObjectControl.prototype.update=function(param){
this._update();
if(param&&param.action=="updateContent"){
if(this._ctrl){
this._ctrl.update(null,std.lang.bind(this,this._onError),this._data,this._rdata);
}
}else{
if(param&&param.action=="updateBounds"){
var width=this._object.getWidth();
var _1da5=this._object.getHeight();
this.element.style.width=width+"px";
this.element.style.height=_1da5+"px";
for(var i=0;i<this._elements.length;i++){
this._elements[i].style.width=width+"px";
this._elements[i].style.height=_1da5+"px";
}
width=width-2;
_1da5=_1da5-27;
for(var i=0;i<this._containers.length;i++){
this._containers[i].style.width=width+"px";
this._containers[i].style.height=_1da5+"px";
}
for(var i=0;i<this._iframes.length;i++){
this._iframes[i].style.width=width+"px";
this._iframes[i].style.height=_1da5+"px";
}
if(this._ctrl){
this._ctrl.updateSize(null,std.lang.bind(this,this._onError),width,_1da5);
}
}
}
};
editgrid.gridlet.SheetObjectControl.prototype.setSize=function(width,_1da8){
editgrid.so.CustomSheetObjectControl.prototype.setSize.call(this,width,_1da8);
};
editgrid.gridlet.SheetObjectControl.prototype.setData=function(data){
editgrid.so.CustomSheetObjectControl.prototype.setData.call(this,data);
};
editgrid.gridlet.SheetObjectControl.prototype._initDelegate=function(_1daa,_1dab,cmenu){
var url=this._config.baseUrl+"gridlet/so";
var _1dae="gridlet_sheetobject_"+this._id+"_"+this._count++;
var width=this._object.getWidth()-2;
var _1db0=this._object.getHeight()-27;
var _1db1=std.dom.newElement("iframe",null,{src:url,id:_1dae,name:_1dae,frameborder:"0",width:width,height:_1db0},{padding:"0px",margin:"0px",border:"none",width:width+"px",height:_1db0+"px"});
std.event.observe(_1db1,"load",std.lang.bind(this,function(){
this._ctrl.initDelegate(null,std.lang.bind(this,this._onError),function(text){
_1daa.innerHTML=std.string.escapeHTML(text);
},function(name,func,_1db5){
cmenu.addItem(name,name,_1db5?["w_ok"]:["any"]).onClick=func;
},std.lang.bind(this,this.setSize),std.lang.bind(this,this.setData),_1db1);
}));
_1dab.appendChild(_1db1);
var lock=false;
if(std.browser.isFF){
std.topic.subscribe(this._view,"onScrollStart",function(){
_1db1.style.width="0px";
});
std.topic.subscribe(this._view,"onScrollEnd",std.lang.bind(this,function(){
if(!lock){
lock=true;
setTimeout(std.lang.bind(this,function(){
_1db1.style.width=this._object.getWidth()+"px";
lock=false;
},0));
}
}));
}
this._iframes.push(_1db1);
};
editgrid.gridlet.SheetObjectControl.prototype.doInstall=function(_1db7){
this._controller=_1db7;
_1db7.createSheetObjectControl(this);
};
editgrid.gridlet.SheetObjectControl.prototype.postInstall=function(ctrl){
this._ctrl=ctrl;
for(var i=0;i<this._containers.length;i++){
this._initDelegate(this._headers[i],this._containers[i],this._cmenus[i]);
}
};
editgrid.gridlet.SheetObjectControl.prototype.doUninstall=function(){
if(this._ctrl){
this._ctrl.release();
this._ctrl=null;
}
for(var i=0;i<this._containers.length;i++){
this._containers[i].innerHTML="";
}
for(var i=0;i<this._headers.length;i++){
this._headers[i].innerHTML="Loading...";
}
};
editgrid.gridlet.SheetObjectControl.prototype.release=function(){
if(this._ctrl){
this._ctrl.release();
}
};
editgrid.gridlet.SheetObjectControl.prototype._onError=function(e){
std.topic.publish(this._controller,"onError",e);
};
editgrid.SerializerFactory=function(){
};
editgrid.SerializerFactory.prototype.init=function(grid,stub,_1dbe){
this._grid=grid;
this._stub=stub;
this._factory=_1dbe;
this.doInit();
return this;
};
editgrid.SerializerFactory.prototype.doInit=function(){
};
editgrid.SerializerFactory.prototype.accepts=function(type){
return false;
};
editgrid.SerializerFactory.prototype.getSerializer=function(type){
var _1dc1=this.doGetSerializer(type);
return function(o){
if(o!=null){
return encodeURIComponent(_1dc1(o));
}else{
return o===undefined?"@":"$";
}
};
};
editgrid.SerializerFactory.prototype.getDeserializer=function(type){
var _1dc4=this.doGetDeserializer(type);
return function(s){
if(s=="@"){
return undefined;
}else{
if(s=="$"){
return null;
}else{
return _1dc4(decodeURIComponent(s));
}
}
};
};
editgrid.CompositeSerializerFactory=function(){
};
editgrid.CompositeSerializerFactory.prototype.init=function(grid,stub){
this._factories=[new editgrid.FunctionSerializerFactory().init(grid,stub,this),new editgrid.ArraySerializerFactory().init(grid,stub,this),new editgrid.DefaultSerializerFactory().init(grid,stub,this)];
return this;
};
editgrid.CompositeSerializerFactory.prototype.accepts=function(type){
for(var i=0;i<this._factories.length;i++){
if(this._factories[i].accepts(type)){
return true;
}
}
return false;
};
editgrid.CompositeSerializerFactory.prototype.getSerializer=function(type){
for(var i=0;i<this._factories.length;i++){
if(this._factories[i].accepts(type)){
return this._factories[i].getSerializer(type);
}
}
return null;
};
editgrid.CompositeSerializerFactory.prototype.getDeserializer=function(type){
for(var i=0;i<this._factories.length;i++){
if(this._factories[i].accepts(type)){
return this._factories[i].getDeserializer(type);
}
}
return null;
};
editgrid.FunctionSerializerFactory=function(){
};
editgrid.FunctionSerializerFactory.prototype=new editgrid.SerializerFactory();
editgrid.FunctionSerializerFactory.prototype.doInit=function(){
this._serializers={};
this._deserializers={};
this._funcs={};
this._count=0;
this._remoteFuncs={};
this._stub.register("editgrid.FunctionSerailizerFactory.call",std.lang.bind(this,this._call));
};
editgrid.FunctionSerializerFactory.prototype.accepts=function(type){
return type.match(/^function\((.*)\)$/)!=null;
};
editgrid.FunctionSerializerFactory.prototype.doGetSerializer=function(type){
var args=type.match(/^function\((.*)\)$/)[1].split(/\,[\ ]*/);
for(var i=0;i<args.length;i++){
args[i]=this._factory.getDeserializer(args[i]);
}
return std.lang.bind(this,function(f){
return this._buildSerializer(f,args);
});
};
editgrid.FunctionSerializerFactory.prototype._getFuncId=function(f){
for(var i in this._funcs){
if(f==this._funcs[i].f){
return i;
}
}
return -1;
};
editgrid.FunctionSerializerFactory.prototype._buildSerializer=function(f,_1dd6){
if(typeof f!="function"){
return -1;
}
var id=this._getFuncId(f);
if(id==-1){
id=this._count++;
if(f.__runonce__){
id="o"+id;
}
this._funcs[id]={f:f,wrapper:this._buildWrapper(id,f,_1dd6)};
}
return id;
};
editgrid.FunctionSerializerFactory.prototype._buildWrapper=function(id,f,_1dda){
return std.lang.bind(this,function(args){
args=args.split(",");
var _1ddc=[];
if(f.__async__){
_1ddc.push(function(){
});
_1ddc.push(f.__throw__?f.__throw__:function(e){
setTimeout(function(){
throw e;
},0);
});
}
for(var i=0;i<_1dda.length&&i<args.length;i++){
_1ddc.push(_1dda[i](args[i]));
}
f.apply(null,_1ddc);
if(f.__runonce__){
delete this._funcs[id];
}
});
};
editgrid.FunctionSerializerFactory.prototype.doGetDeserializer=function(type){
var args=type.match(/^function\((.*)\)/)[1].split(/\,[\ ]*/);
for(var i=0;i<args.length;i++){
args[i]=this._factory.getSerializer(args[i]);
}
return std.lang.bind(this,function(id){
return this._buildFunction(id,args);
});
};
editgrid.FunctionSerializerFactory.prototype._buildFunction=function(id,_1de4){
if(id==-1){
return null;
}
var func=this._remoteFuncs[id];
if(!func){
func=this._remoteFuncs[id]=std.lang.bind(this,function(){
var args=[];
for(var i=0;i<_1de4.length;i++){
args[i]=_1de4[i](arguments[i]);
}
args=[id,args.join(",")];
this._stub.call("editgrid.FunctionSerailizerFactory.call",args,null,null);
if(id.indexOf("o")==0){
delete this._remoteFuncs[id];
}
});
}
return func;
};
editgrid.FunctionSerializerFactory.prototype._call=function(args){
this._funcs[args[0]].wrapper(args[1]);
};
editgrid.ArraySerializerFactory=function(){
};
editgrid.ArraySerializerFactory.prototype=new editgrid.SerializerFactory();
editgrid.ArraySerializerFactory.prototype.accepts=function(type){
return type.match(/\[\]$/)!=null;
};
editgrid.ArraySerializerFactory.prototype.doGetSerializer=function(type){
var _1deb=this._factory.getSerializer(type.substring(0,type.length-2));
return function(o){
var a=[];
for(var i=0;i<o.length;i++){
a.push(_1deb(o[i]));
}
return a.join(",");
};
};
editgrid.ArraySerializerFactory.prototype.doGetDeserializer=function(type){
var _1df0=this._factory.getDeserializer(type.substring(0,type.length-2));
return function(s){
s=s.split(",");
for(var i=0;i<s.length;i++){
s[i]=_1df0(s[i]);
}
return s;
};
};
editgrid.DefaultSerializerFactory=function(){
};
editgrid.DefaultSerializerFactory.prototype=new editgrid.SerializerFactory();
editgrid.DefaultSerializerFactory.prototype.DEFAULT_SERIALIZER=function(o){
return o+"";
};
editgrid.DefaultSerializerFactory.prototype.DEFAULT_DESERIALIZER=function(s){
return s;
};
editgrid.DefaultSerializerFactory.prototype.doInit=function(){
this._serializers={};
this._deserializers={};
var grid=this._grid;
var _1df6=this._factory;
var se=std.lang.bind(_1df6,_1df6.getSerializer);
var de=std.lang.bind(_1df6,_1df6.getDeserializer);
this._serializers["integer"]=function(i){
return i+"";
};
this._deserializers["integer"]=function(s){
return parseInt(s);
};
this._serializers["number"]=function(n){
return n+"";
};
this._deserializers["number"]=function(s){
return parseFloat(s);
};
this._serializers["string"]=function(s){
return s;
};
this._deserializers["string"]=function(s){
return s;
};
this._serializers["boolean"]=function(b){
return b?"1":"0";
};
this._deserializers["boolean"]=function(s){
return s=="1"?true:false;
};
var _1e01=0;
this._serializers["hash"]=this._serializers["array"]=function(h){
if(_1e01>4){
return "";
}
_1e01++;
var s=[];
for(var key in h){
if(key.indexOf("_")==0){
continue;
}
var value=h[key];
if(value===null){
s.push(se("string")(key));
s.push("s"+se("string")(value));
continue;
}
switch(typeof value){
case "number":
s.push(se("string")(key));
s.push("i"+se("number")(value));
break;
case "string":
s.push(se("string")(key));
s.push("s"+se("string")(value));
break;
case "boolean":
s.push(se("string")(key));
s.push("b"+se("boolean")(value));
break;
case "object":
if(value.constructor.toString().indexOf("Array")!=-1){
s.push(se("string")(key));
s.push("a"+encodeURIComponent(se("array")(value)));
}else{
s.push(se("string")(key));
s.push("h"+encodeURIComponent(se("hash")(value)));
}
break;
}
}
_1e01--;
return s.join(",");
};
var _1e06=function(s,_1e08){
var h=_1e08?[]:{};
var s=s.indexOf(",")!=-1?s.split(","):[];
for(var i=0;i<s.length;i+=2){
var key=de("string")(s[i]);
var value=s[i+1];
var type=value.charAt(0);
value=value.substring(1);
switch(type){
case "i":
value=de("number")(value);
break;
case "s":
value=de("string")(value);
break;
case "b":
value=de("boolean")(value);
break;
case "h":
value=de("hash")(decodeURIComponent(value));
break;
case "a":
value=de("array")(decodeURIComponent(value));
break;
default:
throw new Error("Invalid type ["+type+"]");
}
h[key]=value;
}
return h;
};
this._deserializers["hash"]=function(s){
return _1e06(s,false);
};
this._deserializers["array"]=function(s){
return _1e06(s,true);
};
this._serializers["Window"]=function(w){
return w.name;
};
this._deserializers["Window"]=function(s){
try{
return top.frames[s];
}
catch(e){
return top.frames["gridContainer"].frames[s];
}
};
this._serializers["editgrid.CellRef"]=function(c){
c=editgrid.CellRef.from(c);
return se("integer")(c.row)+","+se("integer")(c.col);
};
this._deserializers["editgrid.CellRef"]=function(s){
var a=s.split(",");
return new editgrid.CellRef(parseInt(a[0]),parseInt(a[1]));
};
this._serializers["editgrid.RangeRef"]=function(r){
r=editgrid.RangeRef.from(r);
return r.rowFr+","+r.colFr+","+r.rowTo+","+r.colTo;
};
this._deserializers["editgrid.RangeRef"]=function(s){
var a=s.split(",");
return new editgrid.RangeRef(parseInt(a[0]),parseInt(a[1]),parseInt(a[2]),parseInt(a[3]));
};
this._serializers["editgrid.Style"]=function(s){
return s==null?null:[se("integer")(s.bits),se("integer")(s.mask),se("string")(s.backColor),se("string")(s.fontColor),se("string")(s.fontName),se("integer")(s.fontSize),se("string")(s.format),se("editgrid.Cell")(s._cell),se("editgrid.Border[]")(s.borders)].join(",");
};
this._deserializers["editgrid.Style"]=function(s){
if(s==null){
return null;
}
s=s.split(",");
var style=new editgrid.Style();
style.bits=de("integer")(s[0]);
style.mask=de("integer")(s[1]);
style.backColor=de("string")(s[2]);
style.fontColor=de("string")(s[3]);
style.fontName=de("string")(s[4]);
style.fontSize=de("integer")(s[5]);
style.format=de("string")(s[6]);
style._cell=de("editgrid.Cell")(s[7]);
style.borders=de("editgrid.Border[]")(s[8]);
if(style._cell){
style._connectCell(style._cell);
}
return style;
};
this._serializers["editgrid.Border"]=function(b){
return se("integer")(b.type)+","+se("string")(b.color);
};
this._deserializers["editgrid.Border"]=function(s){
s=s.split(",");
return new editgrid.Border(de("integer")(s[0]),de("string")(s[1]));
};
this._serializers["editgrid.Grid"]=function(g){
return "";
};
this._deserializers["editgrid.Grid"]=function(s){
return grid;
};
this._serializers["editgrid.Cursor"]=function(c){
return "";
};
this._deserializers["editgrid.Cursor"]=function(s){
return grid.getCursor();
};
this._serializers["editgrid.Workbook"]=function(b){
return "";
};
this._deserializers["editgrid.Workbook"]=function(s){
return grid.getWorkbook();
};
this._serializers["editgrid.Worksheet"]=function(s){
return se("string")(s.id);
};
this._deserializers["editgrid.Worksheet"]=function(s){
return grid.getWorkbook().getSheetById(de("string")(s));
};
this._serializers["editgrid.Cell"]=function(c){
return se("string")(c._sheet.id)+","+se("editgrid.CellRef")(c._cellRef);
};
this._deserializers["editgrid.Cell"]=function(s){
var args=s.split(",");
var id=de("string")(args[0]);
var _1e29=de("editgrid.CellRef")(args[1]);
return grid.getWorkbook().getSheetById(id).getCell(_1e29);
};
this._serializers["editgrid.Range"]=function(c){
return se("string")(c._sheet.id)+","+se("editgrid.RangeRef")(c._rangeRef);
};
this._deserializers["editgrid.Range"]=function(s){
var args=s.split(",");
var id=de("string")(args[0]);
var _1e2e=de("editgrid.RangeRef")(args[1]);
return grid.getWorkbook().getSheetById(id).getRange(_1e2e);
};
this._serializers["editgrid.gridlet.GridletController"]=function(c){
return se("string")(c._providerId);
};
this._deserializers["editgrid.gridlet.GridletController"]=function(s){
return grid.gridlet.getController(de("string")(s));
};
this._serializers["editgrid.gridlet.GridletProvider"]=function(p){
return se("string")(p._id);
};
this._deserializers["editgrid.gridlet.GridletProvider"]=function(s){
return editgrid.gridlet.GridletProvider.getInstance(de("string")(s));
};
this._serializers["editgrid.gridlet.Toolbox"]=function(t){
return se("string")(t.providerId)+","+se("string")(t.id);
};
this._deserializers["editgrid.gridlet.Toolbox"]=function(s){
s=s.split(",");
return grid.gridlet.getController(de("string")(s[0])).getToolbox(de("string")(s[1]));
};
this._serializers["editgrid.gridlet.SheetObjectControl"]=function(o){
return [se("string")(o._id),se("string")(o._clazz),se("hash")(o._attrs),se("hash")(o._data),se("hash")(o._rdata),se("integer")(o._width),se("integer")(o._height)].join(",");
};
this._deserializers["editgrid.gridlet.SheetObjectControl"]=function(s){
s=s.split(",");
var o=new editgrid.gridlet.SheetObjectControl();
o._id=de("string")(s[0]);
o._clazz=de("string")(s[1]);
o._attrs=de("hash")(s[2]);
o._data=de("hash")(s[3]);
o._rdata=de("hash")(s[4]);
o._width=de("integer")(s[5]);
o._height=de("integer")(s[6]);
return o;
};
this._serializers["editgrid.gridlet.GridletProvider.SheetObjectControl"]=function(o){
return [se("string")(o._provider._id),se("string")(o._id)].join(",");
};
this._deserializers["editgrid.gridlet.GridletProvider.SheetObjectControl"]=function(s){
s=s.split(",");
return de("editgrid.gridlet.GridletProvider")(s[0]).getSheetObjectControl(s[1]);
};
this._serializers["editgrid.ListenerHandle"]=function(o){
return se("number")(o.id);
};
this._deserializers["editgrid.ListenerHandle"]=function(s){
return new editgrid.FakeListenerHandle(de("number")(s));
};
};
editgrid.DefaultSerializerFactory.prototype.accepts=function(type){
return true;
};
editgrid.DefaultSerializerFactory.prototype.doGetSerializer=function(type){
var s=this._serializers[type];
if(!s){
s=this.DEFAULT_SERIALIZER;
}
return s;
};
editgrid.DefaultSerializerFactory.prototype.doGetDeserializer=function(type){
var d=this._deserializers[type];
if(!d){
d=this.DEFAULT_DESERIALIZER;
}
return d;
};
editgrid.Stub=function(opts){
opts=opts||{};
this._funcs=[];
this._pendingCalls=[];
this._retries=0;
this._tunnel=null;
this.isReadOnly=opts.isReadOnly;
std.topic.define(this,"onConnectionFail");
std.topic.define(this,"onShutdown");
};
editgrid.Stub.prototype.MAX_RETRIES=5;
editgrid.Stub.prototype.RETRY_TIMEOUT=1000;
editgrid.Stub.prototype.CONNECTION_TIMEOUT=10000;
editgrid.Stub.prototype.init=function(grid){
this.registerFuncs();
this._serializerFactory=new editgrid.CompositeSerializerFactory().init(grid,this);
};
editgrid.Stub.prototype.start=function(){
this._connect();
};
editgrid.Stub.prototype._connect=function(){
var _1e43;
try{
_1e43=this._tunnel=top.frames[location.host].tunnel;
}
catch(e){
try{
_1e43=this._tunnel=top.frames["gridContainer"].frames[location.host].tunnel;
}
catch(e){
}
}
if(!_1e43){
this._retryConnect();
return;
}
_1e43.setConsole(std.log.getConsole());
_1e43.setOnShutdown(std.lang.bind(this,function(){
std.topic.publish(this,"onShutdown");
}));
for(var i=0;i<this._funcs.length;i++){
var func=this._funcs[i];
this._register(func.id,func.func);
}
_1e43.done();
for(var i=0;i<this._pendingCalls.length;i++){
var call=this._pendingCalls[i];
this._call(call.fid,call.args,call.callback,call.errHandler);
}
this._pendingCalls=null;
setTimeout(std.lang.bind(this,this._checkConnection),this.CONNECTION_TIMEOUT);
};
editgrid.Stub.prototype._retryConnect=function(){
if(this._retries>3){
std.topic.publish(this,"onConnectionFail");
}else{
this._retries++;
setTimeout(std.lang.bind(this,this._connect),this.RETRY_TIMEOUT);
}
};
editgrid.Stub.prototype._checkConnection=function(){
if(!this._tunnel._inited&&!this._tunnel._shutdown){
std.topic.publish(this,"onConnectionFail","No responses from remote host");
}
};
editgrid.Stub.prototype.call=function(fid,args,_1e49,_1e4a){
if(this._tunnel){
this._call(fid,args,_1e49,_1e4a);
}else{
this._pendingCalls.push({fid:fid,args:args,callback:_1e49,errHandler:_1e4a});
}
};
editgrid.Stub.prototype._call=function(fid,args,_1e4d,_1e4e){
var s="";
if(args){
for(var i=0;i<args.length;i++){
if(i!=0){
s+=",";
}
s+=this._serializerFactory.getSerializer("string")(args[i]);
}
}
this._tunnel.call(fid,s,_1e4d,_1e4e);
};
editgrid.Stub.prototype.register=function(id,func){
this._funcs.push({id:id,func:func});
};
editgrid.Stub.prototype._register=function(id,func){
this._tunnel.register(id,function(args){
var ret={};
try{
ret.result=func(args);
}
catch(e){
std.log.error(e);
ret.error=e;
}
return ret;
});
};
editgrid.Stub.prototype.serializer=function(type){
return this._serializerFactory.getSerializer(type);
};
editgrid.Stub.prototype.deserializer=function(type){
return this._serializerFactory.getDeserializer(type);
};
editgrid.Stub.prototype.registerFuncs=function(){
var self=this;
this.register("editgrid.Range.getSheet",function(args){
return self.serializer("editgrid.Worksheet")(self.deserializer("editgrid.Range")(args[0]).getSheet());
});
this.register("editgrid.Range.getRowFr",function(args){
return self.serializer("integer")(self.deserializer("editgrid.Range")(args[0]).getRowFr());
});
this.register("editgrid.Range.getColFr",function(args){
return self.serializer("integer")(self.deserializer("editgrid.Range")(args[0]).getColFr());
});
this.register("editgrid.Range.getRowTo",function(args){
return self.serializer("integer")(self.deserializer("editgrid.Range")(args[0]).getRowTo());
});
this.register("editgrid.Range.getColTo",function(args){
return self.serializer("integer")(self.deserializer("editgrid.Range")(args[0]).getColTo());
});
this.register("editgrid.Range.getRangeRef",function(args){
return self.serializer("editgrid.RangeRef")(self.deserializer("editgrid.Range")(args[0]).getRangeRef());
});
this.register("editgrid.Range.getCells",function(args){
return self.serializer("editgrid.Cell[][]")(self.deserializer("editgrid.Range")(args[0]).getCells());
});
this.register("editgrid.Range.setText",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.setText] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).setText(self.deserializer("string")(args[1]),self.deserializer("boolean")(args[2]));
});
this.register("editgrid.Range.setTexts",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.setTexts] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).setTexts(self.deserializer("string[][]")(args[1]),self.deserializer("boolean")(args[2]));
});
this.register("editgrid.Range.clearTexts",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.clearTexts] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).clearTexts();
});
this.register("editgrid.Range.getTexts",function(args){
return self.serializer("string[][]")(self.deserializer("editgrid.Range")(args[0]).getTexts(self.deserializer("function(string[][])")(args[1])));
});
this.register("editgrid.Range.getDisplayTexts",function(args){
return self.serializer("string[][]")(self.deserializer("editgrid.Range")(args[0]).getDisplayTexts(self.deserializer("function(string[][])")(args[1])));
});
this.register("editgrid.Range.getValues",function(args){
return self.serializer("string[][]")(self.deserializer("editgrid.Range")(args[0]).getValues(self.deserializer("function(string[][])")(args[1])));
});
this.register("editgrid.Range.getStyles",function(args){
return self.serializer("string[][]")(self.deserializer("editgrid.Range")(args[0]).getStyles(self.deserializer("function(editgrid.Style[][])")(args[1])));
});
this.register("editgrid.Range.setStyle",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.setStyle] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).setStyle(self.deserializer("hash")(args[1]),self.deserializer("boolean")(args[2]));
});
this.register("editgrid.Range.applyStyle",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.applyStyle] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).applyStyle(self.deserializer("hash")(args[1]),self.deserializer("boolean")(args[2]));
});
this.register("editgrid.Range.clearStyles",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.clearStyles] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).clearStyles();
});
this.register("editgrid.Range.clearAll",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.clearAll] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).clearAll();
});
this.register("editgrid.Range.copy",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.copy] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).copy();
});
this.register("editgrid.Range.pasteAll",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.pasteAll] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).pasteAll();
});
this.register("editgrid.Range.pasteContent",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.pasteContent] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).pasteContent();
});
this.register("editgrid.Range.pasteStyle",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.pasteStyle] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).pasteStyle();
});
this.register("editgrid.Range.merge",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.merge] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).merge();
});
this.register("editgrid.Range.unmerge",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Range.unmerge] cannot run in a read-only book.");
}
self.deserializer("editgrid.Range")(args[0]).unmerge();
});
this.register("editgrid.Range.eachCell",function(args){
self.deserializer("editgrid.Range")(args[0]).eachCell(self.deserializer("function(editgrid.Cell, integer, integer)")(args[1]));
});
this.register("editgrid.Range.eachRow",function(args){
self.deserializer("editgrid.Range")(args[0]).eachRow(self.deserializer("function(editgrid.Cell[], integer)")(args[1]));
});
this.register("editgrid.Range.eachCol",function(args){
self.deserializer("editgrid.Range")(args[0]).eachCol(self.deserializer("function(editgrid.Cell[], integer)")(args[1]));
});
this.register("editgrid.Range.toString",function(args){
return self.serializer("string")(self.deserializer("editgrid.Range")(args[0]).toString());
});
this.register("editgrid.Workbook.getSheetByIndex",function(args){
return self.serializer("editgrid.Worksheet")(self.deserializer("editgrid.Workbook")(args[0]).getSheetByIndex(self.deserializer("integer")(args[1])));
});
this.register("editgrid.Workbook.getSheets",function(args){
return self.serializer("editgrid.Worksheet[]")(self.deserializer("editgrid.Workbook")(args[0]).getSheets());
});
this.register("editgrid.Workbook.getSheetById",function(args){
return self.serializer("editgrid.Worksheet")(self.deserializer("editgrid.Workbook")(args[0]).getSheetById(self.deserializer("integer")(args[1])));
});
this.register("editgrid.Workbook.getSheetByName",function(args){
return self.serializer("editgrid.Worksheet")(self.deserializer("editgrid.Workbook")(args[0]).getSheetByName(self.deserializer("string")(args[1])));
});
this.register("editgrid.Workbook.moveSheetTo",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Workbook.moveSheetTo] cannot run in a read-only book.");
}
self.deserializer("editgrid.Workbook")(args[0]).moveSheetTo(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]));
});
this.register("editgrid.Workbook.moveSheetBy",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Workbook.moveSheetBy] cannot run in a read-only book.");
}
self.deserializer("editgrid.Workbook")(args[0]).moveSheetBy(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]));
});
this.register("editgrid.Workbook.copySheet",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Workbook.copySheet] cannot run in a read-only book.");
}
self.deserializer("editgrid.Workbook")(args[0]).copySheet(self.deserializer("integer")(args[1]),self.deserializer("string")(args[2]),self.deserializer("integer")(args[3]));
});
this.register("editgrid.Workbook.addSheet",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Workbook.addSheet] cannot run in a read-only book.");
}
self.deserializer("editgrid.Workbook")(args[0]).addSheet(self.deserializer("string")(args[1]),self.deserializer("integer")(args[2]));
});
this.register("editgrid.Workbook.addSheetNextTo",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Workbook.addSheetNextTo] cannot run in a read-only book.");
}
self.deserializer("editgrid.Workbook")(args[0]).addSheetNextTo(self.deserializer("integer")(args[1]),self.deserializer("string")(args[2]),self.deserializer("boolean")(args[3]));
});
this.register("editgrid.Workbook.deleteSheet",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Workbook.deleteSheet] cannot run in a read-only book.");
}
self.deserializer("editgrid.Workbook")(args[0]).deleteSheet(self.deserializer("integer")(args[1]));
});
this.register("editgrid.Workbook.addOnSheetsChangeListener",function(args){
return self.serializer("editgrid.ListenerHandle")(self.deserializer("editgrid.Workbook")(args[0]).addOnSheetsChangeListener(self.deserializer("function(editgrid.Worksheet)")(args[1]),self.deserializer("string")(args[2])));
});
this.register("editgrid.Workbook.removeOnSheetsChangeListener",function(args){
self.deserializer("editgrid.Workbook")(args[0]).removeOnSheetsChangeListener(self.deserializer("editgrid.ListenerHandle")(args[1]));
});
this.register("editgrid.Workbook.waitForChange",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Workbook.waitForChange] cannot run in a read-only book.");
}
self.deserializer("editgrid.Workbook")(args[0]).waitForChange(self.deserializer("function()")(args[1]));
});
this.register("editgrid.Cursor.getSheet",function(args){
return self.serializer("editgrid.Worksheet")(self.deserializer("editgrid.Cursor")(args[0]).getSheet());
});
this.register("editgrid.Cursor.moveTo",function(args){
self.deserializer("editgrid.Cursor")(args[0]).moveTo(self.deserializer("editgrid.CellRef")(args[1]));
});
this.register("editgrid.Cursor.moveBy",function(args){
self.deserializer("editgrid.Cursor")(args[0]).moveBy(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]));
});
this.register("editgrid.Cursor.selectAll",function(args){
self.deserializer("editgrid.Cursor")(args[0]).selectAll();
});
this.register("editgrid.Cursor.selectRows",function(args){
self.deserializer("editgrid.Cursor")(args[0]).selectRows(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]));
});
this.register("editgrid.Cursor.selectCols",function(args){
self.deserializer("editgrid.Cursor")(args[0]).selectCols(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]));
});
this.register("editgrid.Cursor.selectRange",function(args){
self.deserializer("editgrid.Cursor")(args[0]).selectRange(self.deserializer("editgrid.RangeRef")(args[1]));
});
this.register("editgrid.Cursor.insertText",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Cursor.insertText] cannot run in a read-only book.");
}
self.deserializer("editgrid.Cursor")(args[0]).insertText(self.deserializer("string")(args[1]));
});
this.register("editgrid.Cursor.isInEditMode",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Cursor.isInEditMode] cannot run in a read-only book.");
}
return self.serializer("boolean")(self.deserializer("editgrid.Cursor")(args[0]).isInEditMode());
});
this.register("editgrid.Cursor.startEdit",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Cursor.startEdit] cannot run in a read-only book.");
}
self.deserializer("editgrid.Cursor")(args[0]).startEdit();
});
this.register("editgrid.Cursor.finishEdit",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Cursor.finishEdit] cannot run in a read-only book.");
}
self.deserializer("editgrid.Cursor")(args[0]).finishEdit();
});
this.register("editgrid.Cursor.getCellRef",function(args){
return self.serializer("editgrid.CellRef")(self.deserializer("editgrid.Cursor")(args[0]).getCellRef());
});
this.register("editgrid.Cursor.getRangeRef",function(args){
return self.serializer("editgrid.RangeRef")(self.deserializer("editgrid.Cursor")(args[0]).getRangeRef());
});
this.register("editgrid.Cursor.getRange",function(args){
return self.serializer("editgrid.Range")(self.deserializer("editgrid.Cursor")(args[0]).getRange());
});
this.register("editgrid.Cursor.getCell",function(args){
return self.serializer("editgrid.Cell")(self.deserializer("editgrid.Cursor")(args[0]).getCell());
});
this.register("editgrid.Cursor.addOnMoveListener",function(args){
return self.serializer("editgrid.ListenerHandle")(self.deserializer("editgrid.Cursor")(args[0]).addOnMoveListener(self.deserializer("function(editgrid.Cell, editgrid.Range)")(args[1])));
});
this.register("editgrid.Cursor.addOnStartEditListener",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Cursor.addOnStartEditListener] cannot run in a read-only book.");
}
return self.serializer("editgrid.ListenerHandle")(self.deserializer("editgrid.Cursor")(args[0]).addOnStartEditListener(self.deserializer("function(hash, editgrid.Cell)")(args[1])));
});
this.register("editgrid.Cursor.addOnFinishEditListener",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Cursor.addOnFinishEditListener] cannot run in a read-only book.");
}
return self.serializer("editgrid.ListenerHandle")(self.deserializer("editgrid.Cursor")(args[0]).addOnFinishEditListener(self.deserializer("function(hash, editgrid.Cell)")(args[1])));
});
this.register("editgrid.Cursor.removeOnMoveListener",function(args){
self.deserializer("editgrid.Cursor")(args[0]).removeOnMoveListener(self.deserializer("editgrid.ListenerHandle")(args[1]));
});
this.register("editgrid.Cursor.removeOnStartEditListener",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Cursor.removeOnStartEditListener] cannot run in a read-only book.");
}
self.deserializer("editgrid.Cursor")(args[0]).removeOnStartEditListener(self.deserializer("editgrid.ListenerHandle")(args[1]));
});
this.register("editgrid.Cursor.removeOnFinishEditListener",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Cursor.removeOnFinishEditListener] cannot run in a read-only book.");
}
self.deserializer("editgrid.Cursor")(args[0]).removeOnFinishEditListener(self.deserializer("editgrid.ListenerHandle")(args[1]));
});
this.register("editgrid.Worksheet.addOnRangeChangeListener",function(args){
return self.serializer("editgrid.ListenerHandle")(self.deserializer("editgrid.Worksheet")(args[0]).addOnRangeChangeListener(self.deserializer("editgrid.RangeRef")(args[1]),self.deserializer("function(editgrid.Range, string)")(args[2]),self.deserializer("string")(args[3])));
});
this.register("editgrid.Worksheet.removeOnRangeChangeListener",function(args){
self.deserializer("editgrid.Worksheet")(args[0]).removeOnRangeChangeListener(self.deserializer("editgrid.ListenerHandle")(args[1]));
});
this.register("editgrid.Worksheet.addOnValueChangeListener",function(args){
return self.serializer("editgrid.ListenerHandle")(self.deserializer("editgrid.Worksheet")(args[0]).addOnValueChangeListener(self.deserializer("editgrid.RangeRef")(args[1]),self.deserializer("function(editgrid.Range, string)")(args[2]),self.deserializer("string")(args[3])));
});
this.register("editgrid.Worksheet.removeOnValueChangeListener",function(args){
self.deserializer("editgrid.Worksheet")(args[0]).removeOnValueChangeListener(self.deserializer("editgrid.ListenerHandle")(args[1]));
});
this.register("editgrid.Worksheet.addOnStyleChangeListener",function(args){
return self.serializer("editgrid.ListenerHandle")(self.deserializer("editgrid.Worksheet")(args[0]).addOnStyleChangeListener(self.deserializer("editgrid.RangeRef")(args[1]),self.deserializer("function(editgrid.Range, string)")(args[2]),self.deserializer("string")(args[3])));
});
this.register("editgrid.Worksheet.removeOnStyleChangeListener",function(args){
self.deserializer("editgrid.Worksheet")(args[0]).removeOnStyleChangeListener(self.deserializer("editgrid.ListenerHandle")(args[1]));
});
this.register("editgrid.Worksheet.getId",function(args){
return self.serializer("integer")(self.deserializer("editgrid.Worksheet")(args[0]).getId());
});
this.register("editgrid.Worksheet.getName",function(args){
return self.serializer("string")(self.deserializer("editgrid.Worksheet")(args[0]).getName());
});
this.register("editgrid.Worksheet.rename",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.rename] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).rename(self.deserializer("string")(args[1]));
});
this.register("editgrid.Worksheet.setHidden",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.setHidden] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).setHidden(self.deserializer("boolean")(args[1]));
});
this.register("editgrid.Worksheet.loadRange",function(args){
self.deserializer("editgrid.Worksheet")(args[0]).loadRange(self.deserializer("editgrid.RangeRef")(args[1]),self.deserializer("function")(args[2]));
});
this.register("editgrid.Worksheet.isRangeLoaded",function(args){
return self.serializer("boolean")(self.deserializer("editgrid.Worksheet")(args[0]).isRangeLoaded(self.deserializer("editgrid.RangeRef")(args[1])));
});
this.register("editgrid.Worksheet.getRange",function(args){
return self.serializer("editgrid.Range")(self.deserializer("editgrid.Worksheet")(args[0]).getRange(self.deserializer("editgrid.RangeRef")(args[1])));
});
this.register("editgrid.Worksheet.insertRows",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.insertRows] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).insertRows(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]),self.deserializer("function()")(args[3]));
});
this.register("editgrid.Worksheet.insertCols",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.insertCols] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).insertCols(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]),self.deserializer("function()")(args[3]));
});
this.register("editgrid.Worksheet.deleteRows",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.deleteRows] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).deleteRows(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]),self.deserializer("function()")(args[3]));
});
this.register("editgrid.Worksheet.deleteCols",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.deleteCols] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).deleteCols(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]),self.deserializer("function()")(args[3]));
});
this.register("editgrid.Worksheet.setRowSize",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.setRowSize] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).setRowSize(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]),self.deserializer("integer")(args[3]));
});
this.register("editgrid.Worksheet.setColSize",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.setColSize] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).setColSize(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]),self.deserializer("integer")(args[3]));
});
this.register("editgrid.Worksheet.getExtent",function(args){
return self.serializer("hash")(self.deserializer("editgrid.Worksheet")(args[0]).getExtent());
});
this.register("editgrid.Worksheet.setRowHidden",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.setRowHidden] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).setRowHidden(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]),self.deserializer("boolean")(args[3]));
});
this.register("editgrid.Worksheet.setColHidden",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.setColHidden] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).setColHidden(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]),self.deserializer("boolean")(args[3]));
});
this.register("editgrid.Worksheet.hideRows",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.hideRows] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).hideRows(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]));
});
this.register("editgrid.Worksheet.hideCols",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.hideCols] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).hideCols(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]));
});
this.register("editgrid.Worksheet.unhideRows",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.unhideRows] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).unhideRows(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]));
});
this.register("editgrid.Worksheet.unhideCols",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Worksheet.unhideCols] cannot run in a read-only book.");
}
self.deserializer("editgrid.Worksheet")(args[0]).unhideCols(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]));
});
this.register("editgrid.Worksheet.getCell",function(args){
return self.serializer("editgrid.Cell")(self.deserializer("editgrid.Worksheet")(args[0]).getCell(self.deserializer("editgrid.CellRef")(args[1])));
});
this.register("editgrid.Worksheet.getRowSize",function(args){
return self.serializer("integer")(self.deserializer("editgrid.Worksheet")(args[0]).getRowSize(self.deserializer("integer")(args[1])));
});
this.register("editgrid.Worksheet.getColSize",function(args){
return self.serializer("integer")(self.deserializer("editgrid.Worksheet")(args[0]).getColSize(self.deserializer("integer")(args[1])));
});
this.register("editgrid.gridlet.Toolbox.setSize",function(args){
self.deserializer("editgrid.gridlet.Toolbox")(args[0]).setSize(self.deserializer("")(args[1]),self.deserializer("")(args[2]));
});
this.register("editgrid.gridlet.Toolbox.open",function(args){
self.deserializer("editgrid.gridlet.Toolbox")(args[0]).open();
});
this.register("editgrid.gridlet.Toolbox.close",function(args){
self.deserializer("editgrid.gridlet.Toolbox")(args[0]).close();
});
this.register("editgrid.gridlet.Toolbox.release",function(args){
self.deserializer("editgrid.gridlet.Toolbox")(args[0]).release();
});
this.register("editgrid.gridlet.Toolbox.addOnOpenListener",function(args){
self.deserializer("editgrid.gridlet.Toolbox")(args[0]).addOnOpenListener(self.deserializer("function()")(args[1]));
});
this.register("editgrid.gridlet.Toolbox.addOnCloseListener",function(args){
self.deserializer("editgrid.gridlet.Toolbox")(args[0]).addOnCloseListener(self.deserializer("function()")(args[1]));
});
this.register("editgrid.Grid.getConfig",function(args){
return self.serializer("hash")(self.deserializer("editgrid.Grid")(args[0]).getConfig());
});
this.register("editgrid.Grid.getSessionInfo",function(args){
return self.serializer("hash")(self.deserializer("editgrid.Grid")(args[0]).getSessionInfo());
});
this.register("editgrid.Grid.getBookInfo",function(args){
return self.serializer("hash")(self.deserializer("editgrid.Grid")(args[0]).getBookInfo());
});
this.register("editgrid.Grid.getCursor",function(args){
return self.serializer("editgrid.Cursor")(self.deserializer("editgrid.Grid")(args[0]).getCursor());
});
this.register("editgrid.Grid.getWorkbook",function(args){
return self.serializer("editgrid.Workbook")(self.deserializer("editgrid.Grid")(args[0]).getWorkbook());
});
this.register("editgrid.Grid.setActiveSheet",function(args){
self.deserializer("editgrid.Grid")(args[0]).setActiveSheet(self.deserializer("integer")(args[1]));
});
this.register("editgrid.Grid.getActiveSheet",function(args){
return self.serializer("editgrid.Worksheet")(self.deserializer("editgrid.Grid")(args[0]).getActiveSheet());
});
this.register("editgrid.gridlet.GridletController.postInstall",function(args){
self.deserializer("editgrid.gridlet.GridletController")(args[0]).postInstall();
});
this.register("editgrid.gridlet.GridletController.onScriptError",function(args){
self.deserializer("editgrid.gridlet.GridletController")(args[0]).onScriptError(self.deserializer("hash")(args[1]));
});
this.register("editgrid.gridlet.GridletController._initToolbox",function(args){
self.deserializer("editgrid.gridlet.GridletController")(args[0])._initToolbox(self.deserializer("string")(args[1]),self.deserializer("string")(args[2]),self.deserializer("function(Window)")(args[3]),self.deserializer("hash")(args[4]));
});
this.register("editgrid.gridlet.GridletController.initToolbox",function(args){
self.deserializer("editgrid.gridlet.GridletController")(args[0]).initToolbox(self.deserializer("string")(args[1]),self.deserializer("string")(args[2]),self.deserializer("function(Window)")(args[3]),self.deserializer("hash")(args[4]));
});
this.register("editgrid.gridlet.GridletController.addToolbox",function(args){
self.deserializer("editgrid.gridlet.GridletController")(args[0]).addToolbox(self.deserializer("editgrid.toolbox.AbstractToolbox")(args[1]));
});
this.register("editgrid.gridlet.GridletController.addMenuItem",function(args){
self.deserializer("editgrid.gridlet.GridletController")(args[0]).addMenuItem(self.deserializer("string")(args[1]),self.deserializer("string")(args[2]),self.deserializer("function()")(args[3]),self.deserializer("hash")(args[4]));
});
this.register("editgrid.gridlet.GridletController.removeMenuItem",function(args){
self.deserializer("editgrid.gridlet.GridletController")(args[0]).removeMenuItem(self.deserializer("string")(args[1]));
});
this.register("editgrid.gridlet.GridletController.addScriptAction",function(args){
self.deserializer("editgrid.gridlet.GridletController")(args[0]).addScriptAction(self.deserializer("string")(args[1]),self.deserializer("function(hash)")(args[2]),self.deserializer("string")(args[3]));
});
this.register("editgrid.gridlet.GridletController.removeScriptAction",function(args){
self.deserializer("editgrid.gridlet.GridletController")(args[0]).removeScriptAction(self.deserializer("string")(args[1]));
});
this.register("editgrid.gridlet.GridletController.addToolbarItem",function(args){
self.deserializer("editgrid.gridlet.GridletController")(args[0]).addToolbarItem(self.deserializer("stirng")(args[1]),self.deserializer("function()")(args[2]),self.deserializer("hash")(args[3]));
});
this.register("editgrid.gridlet.GridletController.removeToolbarItem",function(args){
self.deserializer("editgrid.gridlet.GridletController")(args[0]).removeToolbarItem(self.deserializer("stirng")(args[1]));
});
this.register("editgrid.gridlet.GridletController.setSettings",function(args){
self.deserializer("editgrid.gridlet.GridletController")(args[0]).setSettings(self.deserializer("string")(args[1]));
});
this.register("editgrid.gridlet.GridletController.addSheetObject",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.gridlet.GridletController.addSheetObject] cannot run in a read-only book.");
}
self.deserializer("editgrid.gridlet.GridletController")(args[0]).addSheetObject(self.deserializer("string")(args[1]),self.deserializer("hash")(args[2]),self.deserializer("hash")(args[3]));
});
this.register("editgrid.gridlet.SheetObjectControl.setSize",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.gridlet.SheetObjectControl.setSize] cannot run in a read-only book.");
}
self.deserializer("editgrid.gridlet.SheetObjectControl")(args[0]).setSize(self.deserializer("integer")(args[1]),self.deserializer("integer")(args[2]));
});
this.register("editgrid.gridlet.SheetObjectControl.setData",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.gridlet.SheetObjectControl.setData] cannot run in a read-only book.");
}
self.deserializer("editgrid.gridlet.SheetObjectControl")(args[0]).setData(self.deserializer("hash")(args[1]));
});
this.register("editgrid.Cell.getSheet",function(args){
return self.serializer("editgrid.Worksheet")(self.deserializer("editgrid.Cell")(args[0]).getSheet());
});
this.register("editgrid.Cell.getCol",function(args){
return self.serializer("integer")(self.deserializer("editgrid.Cell")(args[0]).getCol());
});
this.register("editgrid.Cell.getRow",function(args){
return self.serializer("integer")(self.deserializer("editgrid.Cell")(args[0]).getRow());
});
this.register("editgrid.Cell.getCellRef",function(args){
return self.serializer("editgrid.CellRef")(self.deserializer("editgrid.Cell")(args[0]).getCellRef());
});
this.register("editgrid.Cell.getText",function(args){
return self.serializer("string")(self.deserializer("editgrid.Cell")(args[0]).getText(self.deserializer("function(string)")(args[1])));
});
this.register("editgrid.Cell.getDisplayText",function(args){
return self.serializer("string")(self.deserializer("editgrid.Cell")(args[0]).getDisplayText(self.deserializer("function(string)")(args[1])));
});
this.register("editgrid.Cell.getValue",function(args){
return self.serializer("string")(self.deserializer("editgrid.Cell")(args[0]).getValue(self.deserializer("function(string)")(args[1])));
});
this.register("editgrid.Cell.getStyle",function(args){
return self.serializer("editgrid.Style")(self.deserializer("editgrid.Cell")(args[0]).getStyle(self.deserializer("function(editgrid.Style)")(args[1])));
});
this.register("editgrid.Cell.setText",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Cell.setText] cannot run in a read-only book.");
}
self.deserializer("editgrid.Cell")(args[0]).setText(self.deserializer("string")(args[1]),self.deserializer("boolean")(args[2]));
});
this.register("editgrid.Cell.setStyle",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Cell.setStyle] cannot run in a read-only book.");
}
self.deserializer("editgrid.Cell")(args[0]).setStyle(self.deserializer("hash")(args[1]),self.deserializer("boolean")(args[2]));
});
this.register("editgrid.Cell.applyStyle",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Cell.applyStyle] cannot run in a read-only book.");
}
self.deserializer("editgrid.Cell")(args[0]).applyStyle(self.deserializer("hash")(args[1]),self.deserializer("boolean")(args[2]));
});
this.register("editgrid.Cell.setCommentText",function(args){
if(self.isReadOnly()){
throw new Error("Function [editgrid.Cell.setCommentText] cannot run in a read-only book.");
}
self.deserializer("editgrid.Cell")(args[0]).setCommentText(self.deserializer("string")(args[1]),self.deserializer("boolean")(args[2]));
});
this.register("editgrid.Cell.getCommentText",function(args){
return self.serializer("string")(self.deserializer("editgrid.Cell")(args[0]).getCommentText(self.deserializer("function(string)")(args[1])));
});
this.register("editgrid.Cell.toString",function(args){
return self.serializer("string")(self.deserializer("editgrid.Cell")(args[0]).toString());
});
};
editgrid.gridlet.GridletProvider=function(stub,id){
editgrid.gridlet.GridletProvider._stub=stub;
this._stub=stub;
this._id=id;
};
editgrid.gridlet.GridletProvider.install=function(_1ee1,_1ee2,id,name,code,_1ee6,attrs){
var self=this;
self._stub.call("editgrid.gridlet.GridletProvider.install",[self._stub.serializer("string")(id),self._stub.serializer("string")(name),self._stub.serializer("string")(code),self._stub.serializer("string")(_1ee6),self._stub.serializer("hash")(attrs)],_1ee1?function(ret){
_1ee1(undefined);
}:null,_1ee2);
};
editgrid.gridlet.GridletProvider.install.__async__=true;
editgrid.gridlet.GridletProvider.uninstall=function(_1eea,_1eeb,id){
var self=this;
self._stub.call("editgrid.gridlet.GridletProvider.uninstall",[self._stub.serializer("string")(id)],_1eea?function(ret){
_1eea(undefined);
}:null,_1eeb);
};
editgrid.gridlet.GridletProvider.uninstall.__async__=true;
editgrid.gridlet.GridletProvider.prototype.createSheetObjectControl=function(_1eef,_1ef0,ctrl){
var self=this;
self._stub.call("editgrid.gridlet.GridletProvider.createSheetObjectControl",[self._stub.serializer("editgrid.gridlet.GridletProvider")(self),self._stub.serializer("editgrid.gridlet.SheetObjectControl")(ctrl)],_1eef?function(ret){
_1eef(undefined);
}:null,_1ef0);
};
editgrid.gridlet.GridletProvider.prototype.createSheetObjectControl.__async__=true;
editgrid.gridlet.GridletProvider.prototype.updateSettings=function(_1ef4,_1ef5,_1ef6){
var self=this;
self._stub.call("editgrid.gridlet.GridletProvider.updateSettings",[self._stub.serializer("editgrid.gridlet.GridletProvider")(self),self._stub.serializer("string")(_1ef6)],_1ef4?function(ret){
_1ef4(undefined);
}:null,_1ef5);
};
editgrid.gridlet.GridletProvider.prototype.updateSettings.__async__=true;
editgrid.gridlet.GridletProvider.SheetObjectControl=function(stub,_1efa,id){
this._stub=stub;
this._provider=_1efa;
this._id=id;
};
editgrid.gridlet.GridletProvider.SheetObjectControl.prototype.initDelegate=function(_1efc,_1efd,_1efe,_1eff,_1f00,_1f01,win){
var self=this;
self._stub.call("editgrid.gridlet.GridletProvider.SheetObjectControl.initDelegate",[self._stub.serializer("editgrid.gridlet.GridletProvider.SheetObjectControl")(self),self._stub.serializer("function(string)")(_1efe),self._stub.serializer("function(string, function(), boolean)")(_1eff),self._stub.serializer("function(integer, integer)")(_1f00),self._stub.serializer("function(hash)")(_1f01),self._stub.serializer("Window")(win)],_1efc?function(ret){
_1efc(undefined);
}:null,_1efd);
};
editgrid.gridlet.GridletProvider.SheetObjectControl.prototype.initDelegate.__async__=true;
editgrid.gridlet.GridletProvider.SheetObjectControl.prototype.update=function(_1f05,_1f06,data,rdata){
var self=this;
self._stub.call("editgrid.gridlet.GridletProvider.SheetObjectControl.update",[self._stub.serializer("editgrid.gridlet.GridletProvider.SheetObjectControl")(self),self._stub.serializer("hash")(data),self._stub.serializer("hash")(rdata)],_1f05?function(ret){
_1f05(undefined);
}:null,_1f06);
};
editgrid.gridlet.GridletProvider.SheetObjectControl.prototype.update.__async__=true;
editgrid.gridlet.GridletProvider.SheetObjectControl.prototype.updateSize=function(_1f0b,_1f0c,width,_1f0e){
var self=this;
self._stub.call("editgrid.gridlet.GridletProvider.SheetObjectControl.updateSize",[self._stub.serializer("editgrid.gridlet.GridletProvider.SheetObjectControl")(self),self._stub.serializer("integer")(width),self._stub.serializer("integer")(_1f0e)],_1f0b?function(ret){
_1f0b(undefined);
}:null,_1f0c);
};
editgrid.gridlet.GridletProvider.SheetObjectControl.prototype.updateSize.__async__=true;
editgrid.gridlet.GridletProvider.SheetObjectControl.prototype.release=function(_1f11,_1f12){
var self=this;
self._stub.call("editgrid.gridlet.GridletProvider.SheetObjectControl.release",[self._stub.serializer("editgrid.gridlet.GridletProvider.SheetObjectControl")(self)],_1f11?function(ret){
_1f11(undefined);
}:null,_1f12);
};
editgrid.gridlet.GridletProvider.SheetObjectControl.prototype.release.__async__=true;
editgrid.gridlet.GridletManager=function(grid){
this._grid=grid;
this._inited=false;
this._started=false;
this._controllers={};
this._objects={};
this._config=this._buildConfig(grid.config);
this._debug=this._config.debug;
this._stub=new editgrid.Stub({isReadOnly:function(){
return grid.isReadOnly();
}});
};
editgrid.gridlet.GridletManager.prototype._buildConfig=function(_1f16){
return {baseUrl:_1f16.gridletBaseUrl,hostUrl:_1f16.gridletBaseUrl+"gridlet/host",debug:_1f16.gridletDebug,localSite:{host:location.host,baseUrl:_1f16.revUrl},remoteSite:{host:_1f16.gridletHost,baseUrl:_1f16.gridletBaseUrl}};
};
editgrid.gridlet.GridletManager.prototype.init=function(){
if(this._inited){
return;
}
this._inited=true;
this._stub.init(this._grid,this._debug);
std.topic.subscribe(this._stub,"onConnectionFail",std.lang.bind(this,this.onConnectionFail));
std.topic.subscribe(this._stub,"onShutdown",std.lang.bind(this,this.onStubShutdown));
if(this._started){
this._start();
}
};
editgrid.gridlet.GridletManager.prototype.start=function(){
this._started=true;
if(this._inited){
this._start();
}
};
editgrid.gridlet.GridletManager.prototype._start=function(){
if(document.domain!=location.host){
this._config.localSite.domain=document.domain;
}
var _1f17=this._config.localSite;
var _1f18=this._config.remoteSite;
this._generateTunnel(_1f17,_1f18);
this._generateTunnel(_1f18,_1f17);
this._generateGridletHost(this._config.hostUrl);
this._stub.start();
};
editgrid.gridlet.GridletManager.prototype.onConnectionFail=function(){
editgrid._alert(loc(["The EditGrid Macro subsystem failed to start. Please note that only the following browsers are supported:"," - Microsoft Internet Explorer 6 or above"," - Mozilla Firefox 2 or above"," - Apple Safari 3 or above","","If you are using Internet Explorer 6, please go to <a href=\"http://wiki.editgrid.com/display/dev/Enabling+Macro+in+IE6\" target=\"_blank\">here</a> for troubleshooting.","If you are using other browsers, please try to refresh the spreadsheet, and see if it works again.","Please <a href=\"mailto:cs@editgrid.com?subject=[Grid]%20EditGrid%20Macro%20cannot%20start\">contact us</a> if the problem persists."].join("<br>")));
};
editgrid.gridlet.GridletManager.prototype.onStubShutdown=function(){
editgrid._alert(loc(["The EditGrid Macro subsystem has been overwhelmed with too many requests.","Due to security concern, the subsystem has been shut down, and all macros will cease to work.","Please kindly reload the spreadsheet to reactivate it."].join("<br>")));
};
editgrid.gridlet.GridletManager.prototype._generateTunnel=function(site1,site2){
var url=site1.baseUrl+"tunnel";
url+="?host="+encodeURIComponent(site2.host);
url+="&base="+encodeURIComponent(site2.baseUrl);
if(site1.domain){
url+="&d1="+encodeURIComponent(site1.domain);
}
if(site2.domain){
url+="&d2="+encodeURIComponent(site2.domain);
}
if(this._debug){
url+="&debug=1";
}
var frame=std.dom.newElement("iframe",null,{src:url,id:site1.host,name:site1.host},{position:"absolute",height:"0px",width:"0px",visibility:"hidden"});
document.body.appendChild(frame);
};
editgrid.gridlet.GridletManager.prototype._generateGridletHost=function(url,debug){
url+="?book="+this._grid.workbook.bookInfo.bookId;
if(this._debug){
url+="&debug=1";
}
var frame=std.dom.newElement("iframe",null,{src:url,id:"gridlet",name:"gridlet"},{position:"absolute",height:"0px",width:"0px",visibility:"hidden"});
document.body.appendChild(frame);
};
editgrid.gridlet.GridletManager.prototype.install=function(macro,id,name,code,_1f24){
if(!this._inited){
this.init();
}
if(this._controllers[id]){
return editgrid._alert(loc("Gridlet [[_1]] has been already installed.",std.string.escapeHTML(id)));
}
if(this._debug){
std.log.debug("["+location.host+"] INSTAL - "+id+", "+name);
}
var _1f25=this._controllers[id]=new editgrid.gridlet.GridletController(this._grid,this._config,macro,id,name,code,_1f24);
var _1f26=this._objects[id];
if(_1f26){
for(var i=0;i<_1f26.length;i++){
std.topic.subscribe(_1f25,"onPostInstall",std.lang.bind(_1f26[i],_1f26[i].doInstall,_1f25));
}
}
std.topic.subscribe(_1f25,"onError",std.lang.bind(this,this.uninstall,id));
return _1f25;
};
editgrid.gridlet.GridletManager.prototype.uninstall=function(id){
if(!this._controllers[id]){
return editgrid._alert(loc("Gridlet [[_1]] is not installed.",std.string.escapeHTML(id)));
}
if(this._debug){
std.log.debug("["+location.host+"] UNINST - "+id);
}
this._controllers[id].release();
delete this._controllers[id];
};
editgrid.gridlet.GridletManager.prototype.getController=function(id){
return this._controllers[id];
};
editgrid.gridlet.GridletManager.prototype.newSheetObjectControl=function(so,view){
var clazz=so.extension.data.clazz;
var _1f2d=clazz.substring(0,clazz.indexOf(":"));
var _1f2e=this._controllers[_1f2d];
var ctrl=new editgrid.gridlet.SheetObjectControl({baseUrl:this._config.baseUrl}).init(so,view);
if(!this._objects[_1f2d]){
this._objects[_1f2d]=[];
}
this._objects[_1f2d].push(ctrl);
if(_1f2e){
ctrl.doInstall(_1f2e);
}
std.topic.subscribe(ctrl,"onRelease",std.lang.bind(this,this._removeSheetObjectControl,_1f2d,ctrl));
return ctrl;
};
editgrid.gridlet.GridletManager.prototype._removeSheetObjectControl=function(_1f30,ctrl){
this._objects[_1f30]=std.array.without(this._objects[_1f30],ctrl);
};
editgrid.Macro=function(grid,_1f33,_1f34){
for(var i in this.COLUMNS){
this[i]="";
}
this._grid=grid;
this.readOnlyFlag=this._grid.isReadOnly();
this._gridlet=_1f33;
this.rowNum=_1f34;
this.macroSheet=this._grid.getWorkbook().getSheetByName("macr\u01a1");
this._isInstalled=false;
this.local=true;
std.topic.define(this,"onCompilationError");
std.topic.define(this,"onDisable");
std.topic.define(this,"onEnable");
std.topic.define(this,"onDescriptionUpdate");
std.topic.define(this,"onSettingsUpdate");
};
editgrid.Macro.prototype.COLUMNS={"name":"A","status":"B","code":"C","compiledCode":"D","supportReadOnly":"E","userId":"F","userName":"G","version":"H","description":"I","settings":"J"};
editgrid.Macro.prototype.ERROR_MESSAGES={101:loc("missing macro name"),102:loc("missing description"),103:loc("missing code"),104:loc("missing compiled code"),201:loc("macro is already published"),202:loc("macro has not published"),401:loc("unauthorized operation"),404:loc("macro not found")};
editgrid.Macro.prototype._get=function(key){
return this.macroSheet.getCell(this.COLUMNS[key]+this.rowNum).getCommentText();
};
editgrid.Macro.prototype._set=function(key,value){
this[key]=value;
this.macroSheet.getCell(this.COLUMNS[key]+this.rowNum).setCommentText(value);
};
editgrid.Macro.prototype.init=function(name,code,flag){
this._enable(name);
this.setName(name);
this.setSupportReadOnly(flag);
this.setCode(code);
};
editgrid.Macro.prototype.load=function(){
for(var i in this.COLUMNS){
this[i]=this._get(i);
}
if(this.isEnabled()){
if(!this.readOnlyFlag){
this.install();
}else{
if(this.supportReadOnly=="true"){
this.install();
}
}
}
};
editgrid.Macro.prototype.download=function(attrs){
if(!attrs){
this._request("install",{macro_name:this.name,user_id:this.userId});
return;
}
for(var i in attrs){
this._set(i,attrs[i]);
}
if(this.isEnabled()){
this.uninstall();
}
this.install();
};
editgrid.Macro.prototype.publish=function(){
editgrid._confirm(loc("Do you want to publish your macro [[_1]] into the public repository?",std.string.escapeHTML(this.name)),std.lang.bind(this,function(_1f3f){
if(_1f3f){
this._publish();
}
}),{ok:"Yes",cancel:"No"});
};
editgrid.Macro.prototype._publish=function(){
this._request("publish",{macro_name:this.name,description:this.description,code:this.code,compiled_code:this.compiledCode});
};
editgrid.Macro.prototype.republish=function(){
editgrid._confirm(loc("Macro [[_1]] has been already uploaded in the repository. Do you want to override the macro with a new version?",std.string.escapeHTML(this.name)),std.lang.bind(this,function(_1f40){
if(_1f40){
this._republish();
}
}),{ok:"Yes",cancel:"No"});
};
editgrid.Macro.prototype._republish=function(){
this._request("republish",{macro_name:this.name,description:this.description,code:this.code,compiled_code:this.compiledCode});
};
editgrid.Macro.prototype.findUpdate=function(){
this._request("findupdate",{macro_name:this.name,user_id:this.userId,version:this.version});
};
editgrid.Macro.prototype.onPublishSuccess=function(res){
if(res.error){
if(res.error==201){
this.republish();
}else{
editgrid._alert(loc("Macro [[_1]] cannot be published due to [_2].",std.string.escapeHTML(this.name),this.ERROR_MESSAGES[res.error]));
}
}else{
this._set("userId",res.userId);
this._set("userName",res.userName);
this._set("version",res.version);
editgrid._alert(loc("Macro [[_1]] is published to repository succuessfully.",std.string.escapeHTML(this.name)));
}
};
editgrid.Macro.prototype.onRepublishSuccess=function(res){
if(res.error){
editgrid._alert(loc("Macro [[_1]] cannot be published due to [_2].",std.string.escapeHTML(this.name),this.ERROR_MESSAGES[res.error]));
}else{
this._set("userId",res.userId);
this._set("userName",res.userName);
this._set("version",res.version);
editgrid._alert(loc("Macro [[_1]] is published to repository succuessfully.",std.string.escapeHTML(this.name)));
}
};
editgrid.Macro.prototype.onFindupdateSuccess=function(res){
if(res.error){
editgrid._alert(loc("Cannot check for updates to macro [[_1]] due to [_2]",std.string.escapeHTML(this.name),this.ERROR_MESSAGES[res.error]));
}else{
if(res.update){
editgrid._confirm(loc("There is an update for macro [[_1]]. Would you like to update to the latest version?",std.string.escapeHTML(this.name)),std.lang.bind(this,function(_1f44){
if(_1f44){
this.download();
}
}),{ok:"Yes",cancel:"No"});
}else{
editgrid._alert(loc("You have already installed the latest version of Macro [[_1]].",std.string.escapeHTML(this.name)));
}
}
};
editgrid.Macro.prototype.onInstallSuccess=function(res){
this.download(res);
};
editgrid.Macro.prototype._request=function(_1f46,_1f47){
new std.ajax.Request(this._grid.config.baseUrl+"grid/widget/macro/"+_1f46,{method:"POST",postBody:this._buildPostBody(_1f47),onSuccess:std.lang.bind(this,this._onResponseSuccess,_1f46),onFailure:std.lang.bind(this,this._onResponseFailure,_1f46)});
};
editgrid.Macro.prototype._buildPostBody=function(_1f48){
var ret=[];
for(var i in _1f48){
ret.push(encodeURIComponent(i)+"="+encodeURIComponent(_1f48[i]));
}
return ret.join("&");
};
editgrid.Macro.prototype._onResponseSuccess=function(_1f4b,req){
try{
_1f4b=_1f4b.substring(0,1).toUpperCase()+_1f4b.substring(1);
var res=eval("("+req.responseText+")");
this["on"+_1f4b+"Success"](res);
}
catch(e){
var _1f4e=this["on"+_1f4b+"Failure"];
if(_1f4e){
}else{
this._onResponseFailure();
}
}
};
editgrid.Macro.prototype._onResponseFailure=function(_1f4f,req){
editgrid._alert(loc("Operation failure due to internal server error."));
};
editgrid.Macro.prototype.getName=function(){
return this.name;
};
editgrid.Macro.prototype.setName=function(name){
this._set("name",name);
};
editgrid.Macro.prototype.getSupportReadOnly=function(){
return this.supportReadOnly;
};
editgrid.Macro.prototype.setSupportReadOnly=function(flag){
this._set("supportReadOnly",flag);
};
editgrid.Macro.prototype.setDescription=function(desc){
this._set("description",desc);
std.topic.publish(this,"onDescriptionUpdate");
};
editgrid.Macro.prototype.getDescription=function(){
return this.description;
};
editgrid.Macro.prototype.getShortDescription=function(){
var desc=this.description.replace(/(.*)(\n.*)?/g,"$1");
return desc.length>50?desc.substring(0,50)+"...":desc;
};
editgrid.Macro.prototype.setSettings=function(_1f55){
this._set("settings",_1f55);
std.topic.publish(this,"onSettingsUpdate");
};
editgrid.Macro.prototype.isEnabled=function(){
return this.status=="enabled";
};
editgrid.Macro.prototype._enable=function(){
this._set("status","enabled");
};
editgrid.Macro.prototype._disable=function(){
this._set("status","disabled");
};
editgrid.Macro.prototype.getCode=function(){
return this.code;
};
editgrid.Macro.prototype.setCode=function(code){
this.compile(code);
};
editgrid.Macro.prototype.getCompiledCode=function(){
return this.compiledCode;
};
editgrid.Macro.prototype.setCompiledCode=function(_1f57){
this._set("compiledCode",_1f57);
if(this.isEnabled()){
if(this._isInstalled){
this.uninstall();
}
this.install();
}else{
if(!this.compilationError){
editgrid._confirm([loc("Macro [[_1]] is disabled.",std.string.escapeHTML(this.name)),loc("Do you want to enable it now?")].join("<br/>"),std.lang.bind(this,function(_1f58){
if(_1f58){
this.install();
}
}),{ok:"Yes",cancel:"No"});
}
}
};
editgrid.Macro.prototype.install=function(){
if(!this.compiledCode){
return;
}
this._isInstalled=true;
var _1f59=this._gridlet.install(this,this.name,this.name,this.compiledCode,this.settings);
if(_1f59){
std.topic.subscribe(_1f59,"onError",std.lang.bind(this,this._onScriptError));
if(this.macroSheet&&this.local&&!this.isEnabled()&&!this.readOnlyFlag){
this._enable();
}
std.topic.publish(this,"onEnable",this);
}
};
editgrid.Macro.prototype.uninstall=function(){
this._isInstalled=false;
this._gridlet.uninstall(this.name);
if(this.macroSheet&&this.local&&this.isEnabled()){
this._disable();
}
this.status="disabled";
std.topic.publish(this,"onDisable",this);
};
editgrid.Macro.prototype.compile=function(code){
var frame=document.createElement("iframe");
frame.src=this._grid.config.revUrl+"gridlet/compiler?domain="+eventd.domain;
this.compilationError=false;
std.event.observe(frame,"load",std.lang.bind(this,function(){
var _1f5c=new editgrid.toolbox.Toolbox();
_1f5c.init(std.dom.newText(loc("Please wait while Macro is compiling...")));
_1f5c.setTitle(loc("Compiling")+"...");
_1f5c.setOverlay(editgrid.toolbox.ModalToolbox.getOverlay());
try{
_1f5c.showAtCenter();
_1f5c.focus();
var _1f5d=frame.contentWindow.compile(code,"onFinished","onError",std.lang.bind(this,this._onCompilationError));
}
finally{
_1f5c.close();
_1f5c.release();
if(!this.compilationError){
this.code=code;
this._set("code",code);
this.setCompiledCode(_1f5d);
}
setTimeout(function(){
document.body.removeChild(frame);
},0);
}
}));
document.body.appendChild(frame);
};
editgrid.Macro.prototype._onCompilationError=function(e){
this.compilationError=true;
if(!e.source){
return editgrid._alert("<div class=\"undraggable\">"+["<b>"+loc("Macro [[_1]] has triggered an internal error during compilation",std.string.escapeHTML(this.name))+"</b>","",std.string.escapeHTML(e.message)+loc(" at line ")+std.string.escapeHTML(e.lineNumber),].join("<br>")+"</div>");
}
editgrid._alert("<div class=\"undraggable\">"+["<b>"+loc("Macro [[_1]] has compilation error",std.string.escapeHTML(this.name))+"</b>","",std.string.escapeHTML(e.message)+loc(" at line ")+std.string.escapeHTML(e.lineNumber),"<code style=\"padding-left: 10px\">"+std.string.escapeHTML(e.source.split("\n")[e.lineNumber-1])+"</code>",""].join("<br>")+"</div>");
};
editgrid.Macro.prototype._onScriptError=function(e){
if(!this.readOnlyFlag){
this._disable();
}
editgrid._alert("<div class=\"undraggable\">"+["<b>"+loc("Macro [[_1]] has script error and has been disabled",std.string.escapeHTML(this.name))+"</b>","",std.string.escapeHTML(e.message)+loc(" at line ")+std.string.escapeHTML(e.lineNumber),"<code style=\"padding-left: 10px\">"+std.string.escapeHTML(e.source)+"</code>",""].join("<br>")+"</div>");
};
editgrid.MacroManager=function(grid,_1f61){
this.macros={};
this.numberOfMacros=0;
this._grid=grid;
this._gridlet=_1f61;
this._sheetName="macr\u01a1";
this._warnMessage="DO NOT REMOVE OR MODIFY this sheet, which is essential to EditGrid Macro.";
std.topic.define(this,"onDeleteUpdate");
std.topic.define(this,"onCreateUpdate");
};
editgrid.MacroManager.prototype.NUM_CELL_RANGE=new editgrid.RangeRef(0,1,0,1);
editgrid.MacroManager.prototype.STATUS_CELL_RANGE=new editgrid.RangeRef(1,1,65535,1);
editgrid.MacroManager.prototype.COMPILED_CODE_CELL_RANGE=new editgrid.RangeRef(0,3,65535,3);
editgrid.MacroManager.prototype.DESCRIPTION_CELL_RANGE=new editgrid.RangeRef(0,8,65535,8);
editgrid.MacroManager.prototype.SETTINGS_CELL_RANGE=new editgrid.RangeRef(0,9,65535,9);
editgrid.MacroManager.prototype.init=function(){
this._gridlet.start();
this.macroSheet=this._grid.getWorkbook().getSheetByName(this._sheetName);
if(!this.macroSheet){
if(!this._grid.isReadOnly()){
var _1f62=this._grid.getWorkbook();
_1f62.addOnSheetsChangeListener(std.lang.bind(this,function(sheet,type){
if(type=="Add"&&this._sheetName==sheet.name){
this.macroSheet=sheet;
if(!this.macroSheet){
return;
}
var style=new editgrid.Style().setBold(true);
var a1=this.macroSheet.getCell("A1");
a1.setStyle(style);
a1.setText(this._warnMessage);
this.macroSheet.setColSize(0,0,500);
if(this.code&&this.name){
this.createMacro(this.name,this.code,this.flag);
}
if(this.attrs){
this.download(this.attrs);
}
this._addRemoteListener();
}
}),"all");
return;
}else{
return;
}
}
var num=this.macroSheet.getCell("B1").getCommentText();
this.numberOfMacros=num?parseInt(num):0;
for(var i=2;i<this.numberOfMacros+2;i++){
this._loadMacro(i);
}
this._addRemoteListener();
};
editgrid.MacroManager.prototype._addRemoteListener=function(){
std.topic.subscribe(this.macroSheet,"onRemoteUpdate",std.lang.bind(this,function(range,type){
if(type!="comment"){
return;
}
if(range.intersects(this.NUM_CELL_RANGE)){
this._numCellFlag=true;
}
if(range.intersects(this.COMPILED_CODE_CELL_RANGE)){
this._compiledCodeFlag=true;
}
if(range.intersects(this.STATUS_CELL_RANGE)){
this._remoteUpdateStatus(range);
}
if(range.intersects(this.DESCRIPTION_CELL_RANGE)){
this._remoteUpdateDesc(range);
}
if(range.intersects(this.SETTINGS_CELL_RANGE)){
this._remoteUpdateSettings(range);
}
if(this._numCellFlag&&this._compiledCodeFlag){
this._remoteUpdateMacros();
}
if(!this._numCellFlag&&range.intersects(this.COMPILED_CODE_CELL_RANGE)){
this._remoteUpdateCodeChange(range);
}
}));
};
editgrid.MacroManager.prototype._loadMacro=function(_1f6b){
var macro=new editgrid.Macro(this._grid,this._gridlet,_1f6b);
macro.load();
if(!macro.name){
throw "Macro has no name!";
}
this.macros[macro.name]=macro;
};
editgrid.MacroManager.prototype._remoteUpdateCodeChange=function(range){
var _1f6e=this.macroSheet.getCell("A"+(range.rowFr+1)).getCommentText();
var code=this.macroSheet.getCell("C"+(range.rowFr+1)).getCommentText();
if(this.macros[_1f6e]){
if(this.macros[_1f6e].isEnabled()&&this.macros[_1f6e].code!=code){
this.macros[_1f6e].compile(code);
}
}
};
editgrid.MacroManager.prototype._remoteUpdateStatus=function(range){
var _1f71=this.macroSheet.getCell("A"+(range.rowFr+1)).getCommentText();
var _1f72=this.macroSheet.getCell("B"+(range.rowFr+1)).getCommentText();
if(this.macros[_1f71]){
this.macros[_1f71].local=false;
if(_1f72=="disabled"&&this.macros[_1f71].isEnabled()){
this.macros[_1f71].status="disabled";
this.macros[_1f71].uninstall();
}else{
if(_1f72=="enabled"&&!this.macros[_1f71].isEnabled()){
this.macros[_1f71].status="enabled";
this.macros[_1f71].install();
}
}
this.macros[_1f71].local=true;
}
};
editgrid.MacroManager.prototype._remoteUpdateDesc=function(range){
var _1f74=this.macroSheet.getCell([range.rowFr,0]).getCommentText();
var desc=this.macroSheet.getCell([range.rowFr,8]).getCommentText();
if(this.macros[_1f74]){
var macro=this.macros[_1f74];
macro.description=desc;
std.topic.publish(macro,"onDescriptionUpdate");
}
};
editgrid.MacroManager.prototype._remoteUpdateSettings=function(range){
var _1f78=this.macroSheet.getCell([range.rowFr,0]).getCommentText();
var _1f79=this.macroSheet.getCell([range.rowFr,9]).getCommentText();
if(this.macros[_1f78]){
var macro=this.macros[_1f78];
macro.settings=_1f79;
std.topic.publish(macro,"onSettingsUpdate");
}
};
editgrid.MacroManager.prototype._remoteUpdateMacros=function(){
var _1f7b=this.numberOfMacros;
var num=this.macroSheet.getCell("B1").getCommentText();
this.numberOfMacros=num?parseInt(num):0;
if(this.numberOfMacros==0){
for(var _1f7d in this.macros){
this.macros[_1f7d].macroSheet=null;
if(this.macros[_1f7d].isEnabled()){
this.macros[_1f7d].uninstall();
}
delete this.macros[_1f7d];
}
std.topic.publish(this,"onDeleteUpdate");
return;
}
var _1f7e=false;
if(this.numberOfMacros>_1f7b){
for(var i=2;i<this.numberOfMacros+2;i++){
var _1f7d=this.macroSheet.getCell("A"+i).getCommentText();
if(typeof (this.macros[_1f7d])=="undefined"){
this._loadMacro(i);
_1f7e=true;
this._numCellFlag=false;
this._compiledCodeFlag=false;
}
}
if(_1f7e){
std.topic.publish(this,"onCreateUpdate");
}
}
if(this.numberOfMacros<_1f7b){
var _1f80=this.macros;
this.macros={};
for(var i=2;i<this.numberOfMacros+2;i++){
var _1f7d=this.macroSheet.getCell("A"+i).getCommentText();
if(_1f80[_1f7d]){
this.macros[_1f7d]=_1f80[_1f7d];
_1f7e=true;
this._numCellFlag=false;
this._compiledCodeFlag=false;
}
}
for(var _1f7d in _1f80){
if(!this.macros[_1f7d]){
_1f80[_1f7d].uninstall();
}
}
if(_1f7e){
std.topic.publish(this,"onDeleteUpdate");
}
}
};
editgrid.MacroManager.prototype.getNumberOfMacros=function(){
return this.numberOfMacros;
};
editgrid.MacroManager.prototype.setNumberOfMacros=function(_1f81){
this.numberOfMacros=_1f81;
this.macroSheet.getCell("B1").setCommentText(_1f81);
};
editgrid.MacroManager.prototype.getMacro=function(name){
return this.macros[name];
};
editgrid.MacroManager.prototype.deleteMacro=function(macro){
--this.numberOfMacros;
var _1f84=macro.rowNum;
if(macro.isEnabled()){
macro.uninstall();
}
delete this.macros[macro.name];
this.macroSheet.deleteRows(_1f84-1,1);
for(var name in this.macros){
var m=this.macros[name];
if(m.rowNum>_1f84){
--m.rowNum;
}
}
this.setNumberOfMacros(this.numberOfMacros);
if(this.numberOfMacros==0){
var _1f87=this._grid.getWorkbook();
_1f87.deleteSheet(this.macroSheet.getId());
this.macroSheet=null;
}
std.topic.publish(this,"onDeleteUpdate");
};
editgrid.MacroManager.prototype.createMacro=function(name,code,flag){
if(!this.macroSheet){
this.name=name;
this.code=code;
this.flag=flag;
var _1f8b=this._grid.getWorkbook();
_1f8b.addSheet(this._sheetName);
return;
}
++this.numberOfMacros;
var macro=new editgrid.Macro(this._grid,this._gridlet,this.numberOfMacros+1);
this.macros[name]=macro;
this.setNumberOfMacros(this.numberOfMacros);
std.topic.publish(this,"onCreateUpdate");
macro.init(name,code,flag);
};
editgrid.MacroManager.prototype.download=function(attrs){
if(this.macros[attrs.name]){
editgrid._alert(loc("Macro with the name [[_1]] has already exist. Please uninstalled the old macro before installing.",attrs.name));
return;
}
if(this._grid.workbook.bookSessionInfo.userId==attrs.userId){
this._download(attrs);
}else{
editgrid._confirm("<span style=\"color:red;font-weight:bold;\">"+loc("Third party macro has the full accessbility to your spreasheet and may contain malicious code.")+"</span> "+loc("Are you sure to continue the installation?"),std.lang.bind(this,function(_1f8e){
if(_1f8e){
this._download(attrs);
}
}));
}
};
editgrid.MacroManager.prototype._download=function(attrs){
if(!this.macroSheet){
this.attrs=attrs;
var _1f90=this._grid.getWorkbook();
_1f90.addSheet(this._sheetName);
return;
}
++this.numberOfMacros;
var macro=this.macros[attrs.name]=new editgrid.Macro(this._grid,this._gridlet,this.numberOfMacros+1);
macro.download(attrs);
this.setNumberOfMacros(this.numberOfMacros);
std.topic.publish(this,"onCreateUpdate");
};
editgrid.MacroToolbox=function(_1f92,node,_1f94){
this.userId=_1f94;
this.macroManager=_1f92;
this._subscribers=[];
this.refresh(node);
this.idle=true;
std.topic.subscribe(this.macroManager,"onDeleteUpdate",std.lang.bind(this,this.updateMacroList,false));
std.topic.subscribe(this.macroManager,"onCreateUpdate",std.lang.bind(this,this.updateMacroList,false));
};
editgrid.MacroToolbox.prototype.refresh=function(node){
this._release();
this.activeControl=null;
this.slots=std.dom.extractAttachmentPoints(node);
this.updateMacroList(true);
};
editgrid.MacroToolbox.prototype.updateMacroList=function(_1f96){
if(this.slots["installedMacroList"]){
this.slots["installedMacroList"].innerHTML="";
this._initInstalledMacroList();
}else{
if(this.slots["getMacroList"]){
this._initGetMacroList(_1f96);
}else{
if(this.slots["developMacroList"]){
this.slots["developMacroList"].innerHTML="";
this._initDevelopMacroList();
}
}
}
};
editgrid.MacroToolbox.prototype._initGetMacroList=function(_1f97){
var items=this.slots["macroItem"];
items=std.lang.isArray(items)?items:[items];
for(var i=0;i<items.length;i++){
var item=items[i];
var _1f9b=std.dom.extractAttachmentPoints(item)["installButton"];
var _1f9c=std.dom.extractAttachmentPoints(item)["uninstallButton"];
var _1f9d=std.dom.extractAttachmentPoints(item)["viewSourceButton"];
var url=_1f9b.getAttribute("action");
var name=item.getAttribute("eg_name");
var _1fa0=item.getAttribute("eg_user");
var macro=this.macroManager.macros[name];
if(macro&&macro.userId&&macro.userId==_1fa0){
_1f9b.style.display="none";
_1f9c.style.display="inline";
}else{
_1f9b.style.display="inline";
_1f9c.style.display="none";
}
if(item.className=="Selected"){
this.activeControl=item;
}
if(_1f97){
std.event.observe(item,"click",std.lang.bind(this,function(item){
if(this.activeControl){
this.activeControl.className=this.activeControl.className.replace(/Selected ?/g,"");
}
item.className="Selected "+item.className;
this.activeControl=item;
},item));
std.event.observe(_1f9b,"click",std.lang.bind(this,function(url){
var macro=eval("("+std.ajax.getText(url)+")");
this.macroManager.download(macro);
},url));
std.event.observe(_1f9c,"click",std.lang.bind(this,function(name){
this._onBtnUninstallClick(this.macroManager.macros[name]);
},name));
std.event.observe(_1f9d,"click",std.lang.bind(this,function(name,_1fa7){
this._onBtnViewRemoteSourceClick(name,_1fa7);
},name,_1fa0));
}
}
};
editgrid.MacroToolbox.prototype._initDevelopMacroList=function(){
std.event.observe(this.slots["createNewButton"],"click",std.lang.bind(this,this._onBtnCreateClick));
this._initMacroList("developMacroList",{filter:std.lang.bind(this,function(macro){
return macro.userId==""||macro.userId==this.userId;
}),controlBuilder:std.lang.bind(this,function(b,macro){
b.push("table");
b.push("tbody");
b.push("tr");
b.push("td",{},{textAlign:"left"});
if(macro.version){
var _1fab=this._appendButton(b,loc("Republish"),loc("Republish the macro into public repository"));
std.event.observe(_1fab,"click",std.lang.bind(this,this._onBtnRepublishClick,macro));
}else{
var _1fac=this._appendButton(b,loc("Publish"),loc("Publish the macro into public repository"));
std.event.observe(_1fac,"click",std.lang.bind(this,this._onBtnPublishClick,macro));
}
b.pop();
b.push("td",{},{textAlign:"right"});
var _1fad=this._appendButton(b,loc("Edit"),loc("Click to edit macro source code"));
var _1fae=this._appendButton(b,loc("Disable"),loc("Disable the macro"),"DisableButton");
var _1faf=this._appendButton(b,loc("Enable"),loc("Enable the macro"),"EnableButton");
var _1fb0=this._appendButton(b,loc("Delete"),loc("Delete the macro from your spreadsheet"));
b.pop();
b.pop();
b.pop();
b.pop();
std.event.observe(_1fad,"click",std.lang.bind(this,this._onBtnEditClick,macro));
std.event.observe(_1fae,"click",std.lang.bind(this,this._onBtnDisableClick,macro));
std.event.observe(_1faf,"click",std.lang.bind(this,this._onBtnEnableClick,macro));
std.event.observe(_1fb0,"click",std.lang.bind(this,this._onBtnUninstallClick,macro));
}),descBuilder:std.lang.bind(this,function(b,macro){
var desc=macro.getDescription();
b.push("div",{className:"MacroLongDesc"});
var _1fb4=b.push("a",{href:"javascript:void(0)",title:loc("Click to edit description...")});
b.append("div",{innerHTML:desc?std.string.fullEscapeHTML(desc):loc("No description")});
b.pop();
b.pop();
var _1fb5=b.append("div",{className:"MacroShortDesc",innerHTML:std.string.fullEscapeHTML(macro.getShortDescription())});
std.event.observe(_1fb4,"click",std.lang.bind(this,this._onBtnEditDescClick,macro));
this._subscribe(macro,"onDescriptionUpdate",function(){
var desc=macro.getDescription();
_1fb4.innerHTML=desc?std.string.fullEscapeHTML(desc):loc("No description");
_1fb5.innerHTML=std.string.fullEscapeHTML(macro.getShortDescription());
});
})});
};
editgrid.MacroToolbox.prototype._initInstalledMacroList=function(){
this._initMacroList("installedMacroList",{controlBuilder:std.lang.bind(this,function(b,macro){
b.push("table");
b.push("tbody");
b.push("tr");
b.push("td",{},{textAlign:"left"});
if(macro.version){
var _1fb9=this._appendButton(b,loc("Check for update"),loc("Check for update"));
std.event.observe(_1fb9,"click",std.lang.bind(this,this._onBtnFindUpdateClick,macro));
}
b.pop();
b.push("td",{},{textAlign:"right"});
var _1fba=this._appendButton(b,loc("Disable"),loc("Disable the macro"),"DisableButton");
var _1fbb=this._appendButton(b,loc("Enable"),loc("Enable the macro"),"EnableButton");
var _1fbc=this._appendButton(b,loc("Uninstall"),loc("Uninstall the macro from your spreadsheet"));
b.pop();
b.pop();
b.pop();
b.pop();
std.event.observe(_1fba,"click",std.lang.bind(this,this._onBtnDisableClick,macro));
std.event.observe(_1fbb,"click",std.lang.bind(this,this._onBtnEnableClick,macro));
std.event.observe(_1fbc,"click",std.lang.bind(this,this._onBtnUninstallClick,macro));
}),descBuilder:std.lang.bind(this,function(b,macro){
var _1fbf=b.append("div",{innerHTML:std.string.fullEscapeHTML(macro.getDescription()),className:"MacroLongDesc"});
var _1fc0=b.append("div",{innerHTML:std.string.fullEscapeHTML(macro.getShortDescription()),className:"MacroShortDesc"});
var _1fc1=b.append("div",{innerHTML:std.string.escapeHTML(loc("View source")),className:"MacroViewSource"});
std.event.observe(_1fc1,"click",std.lang.bind(this,this._onBtnViewSourceClick,macro));
this._subscribe(macro,"onDescriptionUpdate",function(){
_1fbf.innerHTML=std.string.fullEscapeHTML(macro.getDescription());
_1fc0.innerHTML=std.string.fullEscapeHTML(macro.getShortDescription());
});
}),remarkBuilder:std.lang.bind(this,function(macro){
return "&nbsp;by "+(macro.userName&&macro.userId!=this.userId?std.string.escapeHTML(macro.userName):"me");
}),emptyBuilder:std.lang.bind(this,function(){
var b=new std.dom.Builder();
var item=b.push("li");
b.push("div",{className:"MacroEmptyBox"});
b.push("table");
b.push("tbody");
b.push("tr");
b.push("td",{innerHTML:loc("There is no installed macro.")},{textAlign:"center"});
return item;
})});
};
editgrid.MacroToolbox.prototype._initMacroList=function(slot,_1fc6){
var list=this.slots[slot];
var names=[];
for(var name in this.macroManager.macros){
names.push(name);
}
names.sort(function(a,b){
return (""+a).toLowerCase()>(""+b).toLowerCase();
});
if(names.length>0){
for(var i=0;i<names.length;i++){
var name=names[i];
var macro=this.macroManager.macros[name];
if(_1fc6.filter&&!_1fc6.filter(macro)){
continue;
}
var b=new std.dom.Builder();
var item=b.push("li",{className:macro.isEnabled()?"":"Disabled"});
b.push("a",{href:"javascript:void(0);",title:std.string.escapeHTML(name)});
b.push("div",{className:"MacroItemBox"});
b.push("table");
b.push("tbody");
b.push("tr");
b.push("td",{width:50});
b.append("div",{className:"MacroIcon"});
b.pop();
b.push("td",{width:"100%"});
b.push("div",{innerHTML:std.string.escapeHTML(name),className:"MacroTitle"});
var _1fd0=b.append("span",{innerHTML:(_1fc6.remarkBuilder?_1fc6.remarkBuilder(macro):"")+(macro.isEnabled()?"":" (disabled)"),className:"MacroRemark"});
b.pop();
if(_1fc6.descBuilder){
_1fc6.descBuilder(b,macro);
}
b.pop();
b.pop();
b.push("tr");
b.push("td",{colSpan:2});
b.push("div",{className:"MacroControl"});
if(_1fc6.controlBuilder){
_1fc6.controlBuilder(b,macro);
}
b.pop();
b.pop();
b.pop();
b.pop();
b.pop();
b.pop();
b.pop();
b.pop();
if(i==0){
this.activeControl=item;
item.className="Selected "+item.className;
}
std.event.observe(item,"click",std.lang.bind(this,function(item){
if(this.activeControl){
this.activeControl.className=this.activeControl.className.replace(/Selected ?/g,"");
}
item.className="Selected "+item.className;
this.activeControl=item;
},item));
this._subscribe(macro,"onDisable",std.lang.bind(this,this._onMacroDisable,item,_1fd0));
this._subscribe(macro,"onEnable",std.lang.bind(this,this._onMacroEnable,item,_1fd0));
list.appendChild(item);
}
}else{
if(_1fc6.emptyBuilder){
list.appendChild(_1fc6.emptyBuilder());
}
}
};
editgrid.MacroToolbox.prototype._appendButton=function(b,_1fd3,title,_1fd5){
_1fd5=_1fd5?"InputButton "+_1fd5:"InputButton";
return b.append("button",{innerHTML:std.string.escapeHTML(_1fd3),title:std.string.escapeHTML(title),className:_1fd5});
};
editgrid.MacroToolbox.prototype._onMacroDisable=function(item,_1fd7){
item.className+="Disabled";
_1fd7.innerHTML+=" (disabled)";
};
editgrid.MacroToolbox.prototype._onMacroEnable=function(item,_1fd9){
item.className=item.className.replace(/Disabled/g,"");
_1fd9.innerHTML=_1fd9.innerHTML.replace(/ \(disabled\)$/,"");
};
editgrid.MacroToolbox.prototype._onBtnCreateClick=function(){
this.onCreate();
};
editgrid.MacroToolbox.prototype._onBtnEditClick=function(macro){
this.onEdit(macro);
};
editgrid.MacroToolbox.prototype._onBtnDisableClick=function(macro){
macro.uninstall();
};
editgrid.MacroToolbox.prototype._onBtnEnableClick=function(macro){
macro.install();
};
editgrid.MacroToolbox.prototype._onBtnPublishClick=function(macro){
macro.publish();
};
editgrid.MacroToolbox.prototype._onBtnRepublishClick=function(macro){
macro.republish();
};
editgrid.MacroToolbox.prototype._onBtnEditDescClick=function(macro){
editgrid._prompt(loc("Enter the description:"),macro.getDescription(),function(value){
macro.setDescription(value);
},null,{useTextArea:true});
};
editgrid.MacroToolbox.prototype._onBtnUninstallClick=function(macro){
editgrid._confirm([loc("Are you sure you want to delete Macro ["+std.string.escapeHTML(macro.name)+"]?")].join("<br/>"),std.lang.bind(this,function(_1fe2){
if(_1fe2){
this.macroManager.deleteMacro(macro);
}
}),{ok:"Yes",cancel:"No"});
};
editgrid.MacroToolbox.prototype._onBtnFindUpdateClick=function(macro){
macro.findUpdate();
};
editgrid.MacroToolbox.prototype._onBtnViewRemoteSourceClick=function(name,_1fe5){
this.onViewRemoteSource(name,_1fe5);
};
editgrid.MacroToolbox.prototype._onBtnViewSourceClick=function(code){
this.onViewSource(code);
};
editgrid.MacroToolbox.prototype.getRoot=function(){
return this.slots.root;
};
editgrid.MacroToolbox.prototype._subscribe=function(obj,topic,func){
this._subscribers.push({obj:obj,topic:topic,func:func});
std.topic.subscribe(obj,topic,func);
};
editgrid.MacroToolbox.prototype._release=function(){
for(var i=0;i<this._subscribers.length;i++){
std.topic.unsubscribe(this._subscribers[i].obj,this._subscribers[i].topic,this._subscribers[i].func);
}
this._subscribers=[];
};
editgrid.MacroEditor=function(grid,_1fec){
this.grid=grid;
this.schema=editgrid.MacroEditor.schema;
this.templateTreeGetter=_1fec;
};
editgrid.MacroEditor.schema={inputs:["inputMacroName"],buttons:["save","close"],checkboxs:["checkboxSupportReadOnly"]};
editgrid.MacroEditor.prototype.getRoot=function(){
if(std.lang.undef(this.elements)){
var tree=this.templateTreeGetter();
this.elements=std.dom.extractAttachmentPoints(tree);
this.inputMacroName=this.elements["inputMacroName"];
this.checkboxSupportReadOnly=this.elements["checkboxSupportReadOnly"];
this.iframeEditor=this.elements["iframeEditor"];
this.initEditor();
this.initButtons();
std.event.observe(this.iframeEditor,"load",std.lang.bind(this,function(){
this.initDelayed();
}));
}
return this.elements.root;
};
editgrid.MacroEditor.prototype.initEditor=function(macro){
this.macro=macro;
this.iframeEditor.style.opacity=0;
this.iframeEditor.src=this.grid.config.revUrl+"static/js/editarea/editarea.html?ts="+new Date().getTime()+(document.domain!=location.host?"&domain="+document.domain:"");
std.event.observe(this.inputMacroName,"click",std.lang.bind(this,function(e){
this.inputMacroName.value="";
this.inputMacroName.style.color="#000000";
}));
};
editgrid.MacroEditor.prototype.initDelayed=function(){
if(!this.macro){
this.inputMacroName.value="[Please give a name to this macro]";
this.inputMacroName.disabled=false;
this.inputMacroName.style.color="#CCCCCC";
if(this.iframeEditor.contentWindow){
this.iframeEditor.contentWindow.editAreaLoader.setValue("myEditor","");
}
setTimeout(std.lang.bind(this,function(){
this.iframeEditor.style.opacity=1;
}),1000);
}else{
this.inputMacroName.value=this.macro.name;
this.inputMacroName.disabled=true;
this.checkboxSupportReadOnly.checked=(this.macro.supportReadOnly=="true")?true:false;
if(this.iframeEditor.contentWindow){
this.iframeEditor.contentWindow.editAreaLoader.setValue("myEditor",this.macro.code);
}
setTimeout(std.lang.bind(this,function(){
this.iframeEditor.style.opacity=1;
this.iframeEditor.focus();
}),1000);
}
};
editgrid.MacroEditor.prototype.initButtons=function(){
var _1ff0=this.schema.buttons;
for(var i=0;i<_1ff0.length;++i){
std.lang.bind(this,function(){
var name=std.string.capitalize(_1ff0[i]);
std.event.observe(this.elements["button"+name],"click",std.lang.bind(this,function(e){
var _1ff4=this["on"+name];
if(_1ff4){
_1ff4(e);
}
}));
})();
}
};
editgrid.MacroEditor.prototype.getParameters=function(){
var _1ff5={};
var _1ff6=this.schema.inputs;
var _1ff7=this.schema.checkboxs;
for(var i=0;i<_1ff6.length;++i){
_1ff5[_1ff6[i]]=this.elements[_1ff6[i]].value;
}
for(var i=0;i<_1ff7.length;i++){
_1ff5[_1ff7[i]]=this.elements[_1ff7[i]].checked;
}
_1ff5["code"]=this.iframeEditor.contentWindow.editAreaLoader.getValue("myEditor");
return _1ff5;
};
editgrid.IntervalSlotArray=function(items,bound){
this.items=items;
this.bound=bound;
};
editgrid.IntervalSlotArray.prototype.setInterval=function(posFr,posTo){
this.posFr=posFr;
this.posTo=posTo;
for(var i=0,pos=posFr;pos<=posTo;++i,++pos){
this.items.insertNew(i);
}
};
editgrid.IntervalSlotArray.prototype.shiftInterval=function(_1fff,_2000){
var delta=_2000-_1fff;
var oldFr=this.posFr;
var oldTo=this.posTo;
if(delta>0&&_1fff>oldTo||delta<0&&_2000>oldTo){
return true;
}
if(delta<0&&_2000<=oldFr&&oldTo<_1fff){
return false;
}
var newFr,newTo;
if(_1fff<=oldFr){
this.moveBy(delta);
}else{
if(delta>0){
newFr=oldFr;
newTo=oldTo+delta;
var _2006=_1fff-oldFr;
var _2007=_2006+delta-1;
for(var i=_2006;i<=_2007;++i){
this.items.insertNew(i);
}
if(newTo>this.bound){
var len=this.items.length();
this.items.remove(len-newTo+this.bound,len-1);
newTo=this.bound;
}
}else{
if(_2000<oldFr){
newFr=_2000;
}else{
newFr=oldFr;
}
var right=_1fff-1;
if(right>=oldTo){
newTo=_2000-1;
}else{
newTo=oldTo+delta;
}
var delFr=_2000-oldFr;
var delTo=right<=oldTo?right-oldFr:this.items.length()-1;
this.items.remove(delFr<0?0:delFr,delTo);
}
if(newTo>this.bound){
newTo=this.bound;
}
}
this.posFr=newFr;
this.posTo=newTo;
return true;
};
editgrid.IntervalSlotArray.prototype.moveBy=function(delta){
var newFr=this.posFr+delta;
var newTo=this.posTo+delta;
if(newTo<0||newFr>this.bound){
return false;
}
if(newFr<0){
newFr=0;
this.items.remove(0,-newFr+1);
}
if(newTo>this.bound){
var len=this.items.length();
this.items.remove(len-newTo+this.bound,len-1);
newTo=this.bound;
}
this.posFr=newFr;
this.posTo=newTo;
return true;
};
editgrid.IntervalSlotArray.prototype.expandLeft=function(_2011){
var newFr=this.posFr-_2011;
if(newFr<0){
newFr=0;
_2011=this.posFr;
}
for(var i=0;i<_2011;++i){
this.items.insertNew(i);
}
this.posFr=newFr;
};
editgrid.IntervalSlotArray.prototype.expandRight=function(_2014){
var pos=this.posTo;
for(var i=0;i<_2014&&pos<=this.bound;++i){
this.items.insertNew(pos-this.posFr+1);
pos++;
}
if(pos>this.bound){
pos=this.bound;
}
this.posTo=pos;
};
editgrid.IntervalSlotArray.prototype.clear=function(){
this.items.remove(0,this.items.length()-1);
};
editgrid.sheet=editgrid.sheet||{};
editgrid.sheet.filter={};
editgrid.sheet.filter.FilterFieldItems=function(_2017,arr){
this.fields=arr;
this.onFieldConditionChange=std.lang.bind(this,this._onFieldConditionChange);
};
editgrid.sheet.filter.FilterFieldItems.prototype.insertNew=function(idx){
var field=new editgrid.sheet.filter.FilterField();
std.topic.subscribe(field,"onConditionChange",this.onFieldConditionChange);
this.fields.splice(idx,0,field);
if(this.onAdd){
this.onAdd(field,idx);
}
};
editgrid.sheet.filter.FilterFieldItems.prototype.remove=function(idxFr,idxTo){
var _201d=[];
for(var i=idxFr;i<=idxTo;++i){
_201d.push(this.fields[i]);
}
this.fields.splice(idxFr,idxTo-idxFr+1);
if(this.onDel){
for(var i=0;i<_201d.length;++i){
this.onDel(_201d[i],i+idxFr);
}
}
};
editgrid.sheet.filter.FilterFieldItems.prototype.length=function(){
return this.fields.length;
};
editgrid.sheet.filter.FilterFieldItems.prototype._onFieldConditionChange=function(field,_2020,_2021){
if(parent.onFieldConditionChange){
parent.onFieldConditionChange(field,_2020,_2021);
}
};
editgrid.sheet.filter.AutoFilter=function(sheet){
this.sheet=sheet;
this.fields=[];
this.active=0;
var _2023=new editgrid.sheet.filter.FilterFieldItems(this,this.fields);
_2023.onAdd=std.lang.bind(this,this._onItemAdd);
_2023.onDel=std.lang.bind(this,this._onItemDel);
_2023.onFieldConditionChange=std.lang.bind(this,this._onItemConditionChange);
this.fieldArray=new editgrid.IntervalSlotArray(_2023,255);
std.topic.define(this,"onFieldAdd");
std.topic.define(this,"onFieldDel");
};
editgrid.sheet.filter.AutoFilter.prototype.setRange=function(range){
if(this.range){
this.reset();
}
this.range=range;
this.fieldArray.setInterval(range.colFr,range.colTo);
};
editgrid.sheet.filter.AutoFilter.prototype.updateRange=function(isRow,_2026,_2027,_2028){
this.range=_2028;
if(!isRow){
return this._shiftCol(_2026,_2027,_2028);
}
return true;
};
editgrid.sheet.filter.AutoFilter.prototype._shiftCol=function(_2029,_202a,_202b){
var _202c=this.fieldArray;
if(_202c.shiftInterval(_2029,_202a)){
var _202d=_202c.posTo-_202c.posFr+1;
var _202e=_202b.colTo-_202b.colFr+1;
if(_2029<_202a){
if(_202d<_202e){
if(_202c.posFr==_202b.colFr&&_202c.posTo<_202b.colTo){
_202c.expandRight(_202e-_202d);
}else{
if(_202c.posFr>_202b.colFr){
_202c.expandLeft(_202e-_202d);
_202c.moveBy(_2029-_202a);
}
}
}
}else{
if(_202d<_202e){
_202c.expandRight(_202e-_202d);
}
}
return true;
}
return false;
};
editgrid.sheet.filter.AutoFilter.prototype.reset=function(){
this.fieldArray.clear();
this.range=null;
this.active=0;
};
editgrid.sheet.filter.AutoFilter.prototype._onItemAdd=function(field,idx){
std.topic.publish(this,"onFieldAdd",this,field,idx);
};
editgrid.sheet.filter.AutoFilter.prototype._onItemDel=function(field,idx){
if(field.getCondition()!=editgrid.sheet.filter.condition.NONE){
this.active--;
}
std.topic.publish(this,"onFieldDel",this,field,idx);
};
editgrid.sheet.filter.AutoFilter.prototype._onItemConditionChange=function(field,_2034,_2035){
if(_2034!=_2035){
if(_2034==editgrid.sheet.filter.condition.NONE){
this.active++;
}else{
if(_2035==editgrid.sheet.filter.condition.NONE){
this.active--;
}
}
}
};
editgrid.sheet.filter.AutoFilter.prototype.toJSON=function(){
var _2036=[];
for(var i=0;i<this.fields.length;++i){
var item=this.fields[i].toJSON();
if(item!=null){
item.index=i;
_2036.push(item);
}
}
return {range:this.range.getNameSimple(),fields:_2036};
};
editgrid.sheet.filter.FilterField=function(){
this.id=(editgrid.sheet.filter.FilterField._nextId++);
std.topic.define(this,"onConditionChange");
};
editgrid.sheet.filter.FilterField.prototype.setCondition=function(cond){
var _203a=this.getCondition();
this.cond=cond;
std.topic.publish(this,"onConditionChange",this,_203a,this.getCondition());
};
editgrid.sheet.filter.FilterField.prototype.getCondition=function(){
return this.cond||editgrid.sheet.filter.condition.NONE;
};
editgrid.sheet.filter.FilterField.prototype.toJSON=function(){
return this.getCondition().toJSON();
};
editgrid.sheet.filter.FilterField._nextId=0;
editgrid.sheet.filter.condition={};
editgrid.sheet.filter.condition.TYPE_NONE=0;
editgrid.sheet.filter.condition.TYPE_TOP_N=48;
editgrid.sheet.filter.condition.TYPE_EXPR=1;
editgrid.sheet.filter.condition.TYPE_BLANKS=-1;
editgrid.sheet.filter.condition.TYPE_NON_BLANKS=-2;
editgrid.sheet.filter.condition.NONE={type:editgrid.sheet.filter.condition.TYPE_NONE};
editgrid.sheet.filter.condition.NONE.toJSON=function(){
return null;
};
editgrid.sheet.filter.condition.TopN=function(isTop,count,isAbs){
this.type=editgrid.sheet.filter.condition.TYPE_TOP_N;
this.top=isTop;
this.abs=isAbs;
this.count=count;
};
editgrid.sheet.filter.condition.TopN.prototype.isTop=function(){
return this.top;
};
editgrid.sheet.filter.condition.TopN.prototype.isAbsolute=function(){
return this.abs;
};
editgrid.sheet.filter.condition.TopN.prototype.toJSON=function(){
return {type:"TopN",top:this.top,item:this.abs?1:0,count:this.count};
};
editgrid.sheet.filter.condition.Expr=function(ops,vals,_2040){
this.type=editgrid.sheet.filter.condition.TYPE_EXPR;
this.op=ops;
this.val=vals;
this.andOr=_2040;
};
editgrid.sheet.filter.condition.Expr.fromExact=function(text){
return new editgrid.sheet.filter.condition.Expr(["eq"],[text],[1]);
};
editgrid.sheet.filter.condition.Expr.prototype.toJSON=function(){
var json={type:"Expr",isAnd:this.andOr[0]};
for(var i=0;i<this.op.length;++i){
json["op"+i]=this.op[i];
}
for(var i=0;i<this.val.length;++i){
json["val"+i]=this.val[i];
}
for(var i=0;i<this.andOr.length;++i){
json["isAnd"+i]=this.andOr[i];
}
return json;
};
editgrid.sheet.filter.condition.BLANKS={type:editgrid.sheet.filter.condition.TYPE_BLANKS,toJSON:function(){
return {type:"blanks"};
}};
editgrid.sheet.filter.condition.NON_BLANKS={type:editgrid.sheet.filter.condition.TYPE_NON_BLANKS,toJSON:function(){
return {type:"noblanks"};
}};
editgrid.sheet.filter.FilterFieldBox=function(_2044,field,row,col){
editgrid.sheet.RangeBox.call(this,row,col,row,col);
this.filter=_2044;
this.field=field;
this.id="filterFieldBox"+field.id;
};
editgrid.sheet.filter.FilterFieldBox.prototype=new editgrid.sheet.RangeBox();
editgrid.sheet.filter.FilterFieldBox.prototype.widthAdjustment=-2;
editgrid.sheet.filter.FilterFieldBox.prototype.heightAdjustment=-2;
editgrid.sheet.filter.FilterFieldBox.prototype.element=document.createElement("div");
editgrid.sheet.filter.FilterFieldBox.prototype.element.className="filterFieldBox";
editgrid.sheet.filter.FilterFieldBox.prototype.getIndex=function(){
return this.colFr-this.filter.range.colFr;
};
editgrid.sheet.filter.FilterFieldBox.prototype.onRedraw=function(box,_2049){
if(_2049.btn==null){
_2049.btn=std.dom.newElement("div",_2049.element,{},{position:"absolute"});
var _204a=_2049.listPopup=new editgrid.select.ListPopup({setValue:std.lang.bind(this,this._listPopupSetValue),getValue:std.lang.bind(this,this._listPopupGetValue),offsetNode:_2049.element,buttonNode:_2049.btn,classNames:this._getStyle(this.field.getCondition())});
_204a.minWidth=100;
_204a.listBox.maxHeight=250;
_204a.setPopupLoader(std.lang.bind(this,this._listPopupLoad));
_204a.field=this.field;
_2049.conditionChangeHandler=std.lang.bind(this,function(field,_204c,_204d){
if(_204d.type!=_204c.type){
_204a.setStyleClassNames(this._getStyle(_204d));
}
});
std.topic.subscribe(_204a,"change",std.lang.bind(this,function(){
this._listPopupChange(_2049);
}));
std.topic.subscribe(this.field,"onConditionChange",_2049.conditionChangeHandler);
std.event.observe(_2049.btn,"dblclick",std.event.listener(this,function(e){
std.event.stop(e);
}));
}
var size=16;
var _2050=_2049.btn.style;
_2050.width=size+"px";
_2050.height=size+"px";
};
editgrid.sheet.filter.FilterFieldBox.prototype._getStyle=function(cond){
return (cond==editgrid.sheet.filter.condition.NONE)?{normal:"filterFieldBoxButton",hover:"filterFieldBoxButtonHover",visible:"filterFieldBoxButtonVisible"}:{normal:"filterFieldBoxButtonActive",hover:"filterFieldBoxButtonActiveHover",visible:"filterFieldBoxButtonActiveVisible"};
};
editgrid.sheet.filter.FilterFieldBox.prototype._listPopupLoad=function(_2052){
if(this.onInitPopup){
this.onInitPopup(this.filter,this.getIndex(),_2052);
}
};
editgrid.sheet.filter.FilterFieldBox.prototype._listPopupChange=function(_2053){
var _2054=_2053.listPopup.listBox.getSelectedItem();
if(this.onSelectChange){
this.onSelectChange(this.filter,this.getIndex(),_2054,_2053.listPopup);
}
};
editgrid.sheet.filter.FilterFieldBox.prototype._listPopupSetValue=function(item){
};
editgrid.sheet.filter.FilterFieldBox.prototype._listPopupGetValue=function(){
};
editgrid.sheet.filter.FilterFieldBox.prototype.release=function(_2056){
if(_2056.conditionChangeHandler){
std.topic.unsubscribe(this.field,"onConditionChange",_2056.conditionChangeHandler);
_2056.conditionChangeHandler=null;
}
if(_2056.listPopup){
_2056.listPopup.detach();
_2056.listPopup=null;
}
_2056.btn=null;
};
editgrid.sheet.filter.FilterFieldItem=function(value,label){
this.value=value;
this.label=label;
};
editgrid.sheet.filter.FilterFieldItem.prototype=new editgrid.select.ListItem();
editgrid.sheet.filter.FilterFieldItem.prototype.toString=function(){
return this.label!=null?this.label:this.value;
};
editgrid.sheet.filter.FILTER_ITEM_ALL=new editgrid.sheet.filter.FilterFieldItem("(All)","("+loc("All")+")");
editgrid.sheet.filter.FILTER_ITEM_TOP10=new editgrid.sheet.filter.FilterFieldItem("(Top 10...)","("+loc("Top 10")+"...)");
editgrid.sheet.filter.FILTER_ITEM_CUSTOM=new editgrid.sheet.filter.FilterFieldItem("(Custom...)","("+loc("Custom")+"...)");
editgrid.sheet.filter.FILTER_ITEM_BLANKS=new editgrid.sheet.filter.FilterFieldItem("(Blanks)","("+loc("Blanks")+")");
editgrid.sheet.filter.FILTER_ITEM_NON_BLANKS=new editgrid.sheet.filter.FilterFieldItem("(Non Blanks)","("+loc("Non Blanks")+")");
editgrid.sheet.filter.AutoFilterTop10Editor=function(root){
this.elements=std.dom.extractAttachmentPoints(root);
std.event.observe(this.elements.btnOk,"click",std.event.listener(this,function(e){
this.onOk();
}));
std.event.observe(this.elements.btnCancel,"click",std.event.listener(this,function(e){
this.onCancel();
}));
};
editgrid.sheet.filter.AutoFilterTop10Editor.prototype.setCondition=function(cond){
var isAbs=1,isTop=1,count=10;
if(cond.type==editgrid.sheet.filter.condition.TYPE_TOP_N){
isAbs=cond.isAbsolute();
isTop=cond.isTop();
count=cond.count;
}
var ele=this.elements;
ele.itemsOrPercent.selectedIndex=isAbs?0:1;
ele.topOrBottom.selectedIndex=isTop?0:1;
ele.numItems.value=count;
};
editgrid.sheet.filter.AutoFilterTop10Editor.prototype.getCondition=function(cond){
var ele=this.elements;
return new editgrid.sheet.filter.condition.TopN(ele.topOrBottom.selectedIndex?0:1,ele.numItems.value,ele.itemsOrPercent.selectedIndex?0:1);
};
editgrid.sheet.filter.AutoFilterCustomEditor=function(root){
this.elements=std.dom.extractAttachmentPoints(root);
std.event.observe(this.elements.btnOk,"click",std.event.listener(this,function(e){
this.onOk();
}));
std.event.observe(this.elements.btnCancel,"click",std.event.listener(this,function(e){
this.onCancel();
}));
};
editgrid.sheet.filter.AutoFilterCustomEditor.prototype._toFormOpVal=function(op,val){
var pos=op.length?"engl".indexOf(op.charAt(0)):-1;
if(pos==-1){
}else{
if(pos<2){
var len=val.length;
if(len>=1){
var begin=(val.charAt(0)=="*");
var ends=(val.charAt(len-1)=="*");
var _206c=begin&&ends;
if(_206c){
if(len>1){
pos+=10;
val=val.substring(1,len-1);
}
}else{
if(begin){
pos+=6;
val=val.substring(1);
}else{
if(ends){
pos+=8;
val=val.substring(0,len-1);
}
}
}
}
}else{
pos=(pos-1)*2;
pos+=(op.length==3);
}
}
return {op:pos,val:val};
};
editgrid.sheet.filter.AutoFilterCustomEditor.prototype._addAsterisk=function(_206d,val,after){
if(val==""){
return _206d||after?"*":"";
}
if(_206d&&val.charAt(0)!="*"){
val="*"+val;
}
if(after&&val.charAt(val.length-1)!="*"){
val+="*";
}
return val;
};
editgrid.sheet.filter.AutoFilterCustomEditor.prototype._fromFormOpVal=function(op,val){
var opMap=["","eq","ne","gt","gte","lt","lte"];
if(++op<opMap.length){
return {op:opMap[op],val:val};
}else{
if(op<9){
return {op:opMap[op-6],val:this._addAsterisk(0,val,"*")};
}else{
if(op<11){
return {op:opMap[op-8],val:this._addAsterisk("*",val,0)};
}else{
if(op<13){
return {op:opMap[op-10],val:this._addAsterisk("*",val,"*")};
}
}
}
}
};
editgrid.sheet.filter.AutoFilterCustomEditor.prototype.setCondition=function(cond){
var _2074={andOr:[1],op:["",""],val:["",""]};
if(cond.type==editgrid.sheet.filter.condition.TYPE_EXPR){
_2074=cond;
}
var ele=this.elements,el;
for(var i=0;i<_2074.op.length;++i){
var opVal=this._toFormOpVal(_2074.op[i],_2074.val[i]);
if((el=ele["op"+i])!=null){
el.value=opVal.op;
}
if((el=ele["val"+i])!=null){
el.value=opVal.val;
}
if(_2074.andOr[i]!=null){
if((el=ele["and"+i])!=null){
el.checked=_2074.andOr[i];
}
if((el=ele["or"+i])!=null){
el.checked=!_2074.andOr[i];
}
}
}
};
editgrid.sheet.filter.AutoFilterCustomEditor.prototype.getCondition=function(){
var _2079={andOr:[],op:[],val:[]};
var ele=this.elements,el;
for(var i=0;i<2;++i){
var op,val;
if((el=ele["op"+i])!=null){
op=el.value;
}
if((el=ele["val"+i])!=null){
val=el.value;
}
if((el=ele["and"+i])!=null){
_2079.andOr.push(el.checked);
}
var opVal=this._fromFormOpVal(op,val);
if(opVal.op!=""){
_2079.op[i]=opVal.op;
_2079.val[i]=opVal.val;
}
}
return new editgrid.sheet.filter.condition.Expr(_2079.op,_2079.val,_2079.andOr);
};
editgrid.UnhideSheet=function(_2080,_2081){
this._workbook=_2080;
this.templateTreeGetter=_2081;
};
editgrid.UnhideSheet.HiddenSheetItem=function(data){
this.data=data;
};
editgrid.UnhideSheet.HiddenSheetItem.prototype=new editgrid.select.ListItem();
editgrid.UnhideSheet.HiddenSheetItem.prototype.toString=function(){
return this.data.name;
};
editgrid.UnhideSheet.prototype.getRoot=function(){
if(std.lang.undef(this.elements)){
var tree=this.templateTreeGetter();
this.elements=std.dom.extractAttachmentPoints(tree);
}
this.sheetSelect=new editgrid.select.NativeSelectWrapper(this.elements["hiddenSheetList"]);
std.event.observe(this.elements["hiddenSheetList"],"dblclick",std.event.listener(this,this._onButtonOk));
std.event.observe(this.elements["buttonOk"],"click",std.event.listener(this,this._onButtonOk));
std.event.observe(this.elements["buttonClose"],"click",std.event.listener(this,this._onButtonClose));
this.redrawSheetList();
return this.elements.root;
};
editgrid.UnhideSheet.prototype.redrawSheetList=function(){
this.sheetSelect.removeAll();
std.list.iterate(this._workbook.getSheets(),std.lang.bind(this,function(sheet){
if(sheet.hidden){
this.sheetSelect.put(sheet.name,new editgrid.UnhideSheet.HiddenSheetItem(sheet));
}
}));
};
editgrid.UnhideSheet.prototype.getSelectedSheets=function(){
var _2085=this.sheetSelect.getSelectedValues();
var _2086=[];
for(var i=0;i<_2085.length;i++){
_2086[i]=this.sheetSelect.get(_2085[i]).data;
}
return _2086;
};
editgrid.UnhideSheet.prototype._onButtonClose=function(){
this.onClose();
};
editgrid.UnhideSheet.prototype._onButtonOk=function(){
this.onOk();
};
editgrid.trace={};
editgrid.trace.init=function(max){
this._buffer=[];
this._max=max||500;
this._start=0;
this._next=0;
this._dropped=0;
this._logger=null;
};
editgrid.trace.entryToString=function(entry){
return std.date.asTimeStrUTC(entry.time)+" "+entry.namespace+" - "+entry.message;
};
editgrid.trace.getString=function(){
var text=[];
if(this._dropped>0){
text.push("*** skipping the oldest "+this._dropped+" line(s).");
}
var n=(this._next-this._start+this._max)%this._max;
for(var i=0;i<n;i++){
var entry=this._buffer[(this._start+i)%this._max];
text.push(editgrid.trace.entryToString(entry));
}
return text.join("\n");
};
editgrid.trace.setLogger=function(_208e){
this._logger=_208e;
};
editgrid.trace.newTracer=function(_208f){
var clz=this;
return function(_2091){
var entry=clz._buffer[clz._next]={namespace:_208f,time:new Date(),message:_2091};
if(clz._logger){
clz._logger(clz.entryToString(entry));
}
clz._next=(clz._next+1)%clz._max;
if(clz._start==clz._next){
clz._dropped++;
clz._start=(clz._start+1)%clz._max;
}
return _2091;
};
};
editgrid.trace.init();
editgrid.Grid=function(_2093){
std.perf.mark("init");
std.topic.define(this,"onLoad");
std.topic.define(this,"onRecalcLayout");
std.topic.define(this,"onStatusChange");
this.config={baseUrl:null,staticUrl:null,gridSessionId:new Date().getTime(),timingSheetDiff:null,timingKeepAlive:null,defaultFont:null,acceptFonts:[],docFunctionBase:null,hideMenuItems:[],gridEventdUrl:null,chatEventdUrl:null,maxCol:256,maxRow:65536,netYieldTime:100,minFlashInterval:300,jsonPath:"cmd/json/5/",transportFactory:"std.ajax.getTransport",eventdEnabled:true,eventdDomainSuffix:2,suppressSessionKeyWarning:false,oooc_url:null,SidePaneChat:0};
this.config=std.hash.merge(this.config,editgrid.config);
this.config=std.hash.merge(this.config,_2093);
this.setLoadProgress("init");
this._initTracers();
this._initNetwork();
this._initWorkbook();
this._initView();
this._initHiddenContainer();
this._initStatusBar();
this._initClip();
this._initSheetTabPane();
this._initAlertBar();
this._initActions();
this._initToolBar();
this._initFormulaBar();
this._initMenuBar();
this._initContextMenu();
this._initSidePane();
this._initModalOverlay();
this._initOnExitBlocker();
this._initKeyCapture();
this._initCursor();
this._initGridlet();
this._registerDestructor();
if(!std.browser.isSupport){
this.setAlert("browser",this._getHtmlTemplates().get("messageBrowser").getRoot().innerHTML,"Warn");
}
if(editgrid.dev){
this.dev=new editgrid.dev.Dev(this);
}
};
editgrid.Grid.prototype._registerDestructor=function(){
var old=window.onunload;
window.onunload=std.lang.bind(this,function(){
if(old){
old();
}
this.release();
window.onunload=null;
});
};
editgrid.Grid.prototype.release=function(){
this.tracer.grid("release()");
std.mocker.release();
this.view.release();
};
editgrid.Grid.prototype.loadBook=function(id){
if(this.config.isRemoteGrid){
throw new Error("Grid.loadBook is deprecated. Please use Grid.openBook instead.");
}
this._loadBook(id);
};
editgrid.Grid.prototype._loadBook=function(id){
if(id!=parseInt(id)){
throw new Error("Grid.loadBook accepts BookRevId only at the moment.");
}
var _2097=parseInt(id);
this.bookRevId=_2097;
this.workbook.checkout(_2097);
};
editgrid.Grid.prototype.openBook=function(param,_2099){
var _209a=std.ajax.getTransport(this.config.transportFactory);
_209a.onreadystatechange=std.lang.bind(this,function(){
if(_209a.readyState==4){
var _209b=null;
if(_209a.status==200){
var res=_209a.responseText;
if(res==parseInt(res)){
this._loadBook(res);
}else{
_209b="Server error: "+res;
}
}else{
if(_209a.status==403){
_209b="Permission denied";
}else{
if(_209a.status==404){
_209b="Workbook not found";
}else{
_209b="Server error";
}
}
}
if(_209b){
if(_2099){
_2099(_209b);
}else{
this._onLoadFailed(new Error(_209b));
}
}
}
});
var url=this.config.baseUrl+"grid/open_remote_grid?";
if(param.path){
url+="path="+param.path;
}else{
if(param.id){
url+="id="+param.id;
}else{
if(param.bookRevId){
url+="bookRevId="+param.bookRevId;
}else{
throw new Error("Either path, id or bookRevId has to be specified.");
}
}
}
if(this.config.bookAccessToken){
url+="&bt="+this.config.bookAccessToken;
}else{
if(this.config.sessionKey){
url+="&rgs="+this.config.sessionKey;
}
}
_209a.open("GET",url);
if(this.config.sessionKey&&!this.config.suppressSessionKeyWarning){
editgrid._alert(loc(["It may be insecure to use session key to authenticate a remote grid. Please <a href=\"[_1]\" target=\"_blank\">read this</a> for more information.","(To suppress this warning, set the <b>suppressSessionKeyWarning</b> option to 1 when constructing the grid.)"].join("<br>"),"https://wiki.editgrid.com/display/devdoc/Securing+Your+Keys"),function(){
_209a.send("");
});
}else{
_209a.send("");
}
};
editgrid.Grid.prototype.getConfig=function(){
var _209e=this.config;
var ret={};
ret.baseUrl=_209e.baseUrl;
return ret;
};
editgrid.Grid.prototype.getSessionInfo=function(){
var _20a0=this.workbook.bookSessionInfo;
var ret={};
ret.isLogin=_20a0.isLogin;
ret.isOwner=_20a0.isOwner;
ret.isReadOnly=_20a0.isReadOnly;
ret.userId=_20a0.userId;
ret.userName=_20a0.userName;
return ret;
};
editgrid.Grid.prototype.getBookInfo=function(){
var _20a2=this.workbook.bookInfo;
var ret={};
ret.bookId=_20a2.bookId;
ret.bookName=_20a2.bookName;
ret.orgId=_20a2.orgId;
ret.orgName=_20a2.orgName;
ret.workspaceId=_20a2.workspaceId;
ret.workspaceName=_20a2.workspaceName;
ret.path=_20a2.path;
ret.url=this.config.baseUrl+_20a2.path;
return ret;
};
editgrid.Grid.prototype.toggleMenuBar=function(){
if(this.menubar.isExpanded()){
this.menubar.setExpanded(false);
}else{
this.menubar.select(0);
this.menubar.setExpanded(true);
this.menubar.getSelectedItem().select(0);
}
};
editgrid.Grid.prototype.setCaptureDocumentFocus=function(bool){
this.view.setCaptureDocumentFocus(bool);
};
editgrid.Grid.prototype._isNonActionKey=function(ke){
var e=ke.evt;
for(var i=0;i<this._nonActionKeyCombs.length;i++){
if(this._nonActionKeyCombs[i].check(ke.keyIdentifier,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey)){
return true;
}
}
return false;
};
editgrid.Grid.prototype._isNonActionTerminatingKey=function(ke){
var e=ke.evt;
for(var i=0;i<this._nonActionTerminatingKeyCombs.length;i++){
if(this._nonActionTerminatingKeyCombs[i].check(ke.keyIdentifier,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey)){
return true;
}
}
return false;
};
editgrid.Grid.prototype._findActionForKey=function(ke){
var e=ke.evt;
for(var name in this.actions){
var _20ae=this.actions[name];
var _20af=_20ae.getShortcutList();
for(var i=0;i<_20af.length;i++){
if(_20af[i].check(ke.keyIdentifier,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey)){
return _20ae;
}
}
}
return null;
};
editgrid.Grid.prototype._isFunctionKey=function(ke){
return ke.keyIdentifier>=112&&ke.keyIdentifier<=123;
};
editgrid.Grid.prototype._onKeyDown=function(ke){
var e=ke.evt;
var clz;
if(editgrid.toolbox&&(clz=editgrid.toolbox.Toolbox)){
if(clz._focus){
clz._focus.onKeyEvent(ke);
}
}
if(ke.keyIdentifier==std.keytable.ESCAPE[0]){
this.view.focus();
}
if(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||this._isFunctionKey(ke)){
var _20b5;
if(!this._isNonActionKey(ke)&&(_20b5=this._findActionForKey(ke))){
if(this.view.captureEvent&&!_20b5.isDisabled()){
_20b5.performAction();
}
if(!this._isNonActionTerminatingKey(ke)){
std.event.vanish(e);
}
}
}
};
editgrid.Grid.prototype._onKeyPress=function(ke){
var e=ke.evt;
if(this.view.processKey(ke)){
return false;
}
if(std.browser.isFF&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||this._isFunctionKey(ke))){
}
};
editgrid.Grid.prototype._onKeyUp=function(ke){
var e=ke.evt;
if(std.browser.platform.isMacOS&&std.browser.isFF&&e.metaKey){
switch(ke.keyIdentifier){
case std.keytable.C[0]:
case std.keytable.X[0]:
case std.keytable.V[0]:
var _20ba;
if(!this._isNonActionKey(ke)&&(_20ba=this._findActionForKey(ke))){
if(this.view.captureEvent&&!_20ba.isDisabled()){
_20ba.performAction();
}
}
break;
}
}
};
editgrid.Grid.prototype.addAction=function(name,data){
if(data instanceof std.action.AbstractAction){
this.actions[name]=data;
}else{
if(typeof (data.url)!="undefined"){
return this.actions[name]=new std.action.Url(data);
}else{
if(typeof (data.script)!="undefined"){
return this.actions[name]=new std.action.Script(data);
}else{
std.log.error("Can't create action");
}
}
}
};
editgrid.Grid.prototype.addScriptAction=function(name,func,keys){
this.actions[name]=new std.action.Script({script:function(_20c0,data){
func(data);
},shortcutList:keys});
};
editgrid.Grid.prototype.removeScriptAction=function(name){
delete this.actions[name];
};
editgrid.Grid.prototype.addToolbarItem=function(id,func,_20c5){
var btn=new editgrid.toolbar.Custom({id:id,action:new std.action.Script({script:func}),height:_20c5.height,title:_20c5.tooltip,text:_20c5.text,image:_20c5.image});
this.toolbar.add(btn);
};
editgrid.Grid.prototype.removeToolbarItem=function(id){
this.toolbar.remove(id);
};
editgrid.Grid.prototype.addMenuItem=function(path,id,func,_20cb){
var _20cc=path?this.menubar.locate(path):this.menubar;
if(!path&&func){
throw new Error("Only menu can insert into menubar.");
}
if(!_20cc){
throw new Error("Cannot find menu ["+path+"].");
}
if(!_20cc.add){
throw new Error("["+path+"] is not a menu.");
}
if(_20cc.getItem){
if(_20cc.getItem(id)){
throw new Error("Menu item ["+path+"/"+id+"] has already existed.");
}
}else{
if(_20cc.get(id)){
throw new Error("Menu item ["+path+"/"+id+"] has already existed.");
}
}
var item;
if(func){
item=new ui.menu.MenuItem("button",{id:id,text:_20cb.text,action:new std.action.Script({script:func})});
}else{
item=new ui.menu.Menu({id:id,text:_20cb.text});
}
_20cc.add(item);
this.menubar.updateUI();
};
editgrid.Grid.prototype.removeMenuItem=function(path){
var item=this.menubar.locate(path);
if(!item){
throw new Error("Cannot find menu item ["+path+"]");
}
path=path.replace(/(^|\/)[^\/]+$/,"");
var _20d0=path?this.menubar.locate(path):this.menubar;
if(!_20d0){
throw new Error("Cannot find menu ["+path.join("/")+"].");
}
if(_20d0.removeItem){
_20d0.removeItem(item._id);
}else{
if(_20d0.remove){
_20d0.remove(item);
}else{
throw new Error("["+path+"] is not a menu nor a menu group.");
}
}
this.menubar.updateUI();
};
editgrid.Grid.prototype.addSheetObject=function(clazz,attr,data){
this.view.customSheetObjectInsert(clazz,attr,data);
};
editgrid.Grid.prototype._initKeyCapture=function(){
std.event.keyObserve(document,"keydown",std.event.listener(this,this._onKeyDown));
std.event.keyObserve(document,"keypress",std.event.listener(this,this._onKeyPress));
std.event.keyObserve(document,"keyup",std.event.listener(this,this._onKeyUp));
if(std.browser.isSafariWin&&std.browser.major<525){
std.event.keyObserve(document,"keyup",std.event.listener(this,function(ke){
if(ke.evt.ctrlKey&&"ACEGJORVXZ-=".indexOf(String.fromCharCode(ke.keyIdentifier))!=-1||ke.keyIdentifier==186){
this._onKeyDown(ke);
}
}));
}
this._nonActionKeyCombs=[];
if(!(std.browser.isOpera||(std.browser.isSafariWin&&std.browser.major<525))){
this._nonActionKeyCombs.push(new std.action.KeyComb("CTRL V"));
}
this._nonActionTerminatingKeyCombs=[];
this._nonActionTerminatingKeyCombs.push(new std.action.KeyComb("CTRL C"));
this._nonActionTerminatingKeyCombs.push(new std.action.KeyComb("CTRL X"));
this._nonActionTerminatingKeyCombs.push(new std.action.KeyComb("CTRL V"));
this._nonActionTerminatingKeyCombs.push(new std.action.KeyComb("CTRL A"));
this._nonActionTerminatingKeyCombs.push(new std.action.KeyComb("CTRL Z"));
};
editgrid.Grid.prototype._initActions=function(){
this.actions={};
var bind=std.lang.bind;
var _20d6=function(){
var args=arguments;
return function(){
var parts=[];
for(var i=0;i<args.length;i++){
parts.push(std.lang.evaluate(args[i]));
}
return parts.join("");
};
};
var f={};
f.IsOwner=bind(this,function(){
return this.workbook.bookSessionInfo.isOwner;
});
f.IsLogin=bind(this,function(){
return this.workbook.bookSessionInfo.isLogin;
});
f.IsNamed=bind(this,function(){
return this.workbook.bookInfo.isPersisted;
});
f.ReadOnly=bind(this,function(){
return this.isReadOnly();
});
f.SelAllRows=bind(this.view,this.view.isCursorSelectedAllRows);
f.SelAllCols=bind(this.view,this.view.isCursorSelectedAllCols);
f.LockEnabled=bind(this,function(){
return this.view.isLockable();
});
f.ChatReady=bind(this,function(){
return this.chatInitialized&&this.chatbox.chat.getUsersCount()>0;
});
f.EditMode=bind(this,function(){
return this.view.pane&&this.view.pane.editor.isOn;
});
f.IsOneSheet=bind(this,function(){
return this.sheetTabPane&&this.sheetTabPane.tabs.length==1;
});
f.UndoReady=bind(this,function(){
return !this.workbook.undoRedo.isUndoDisabled();
});
f.RedoReady=bind(this,function(){
return !this.workbook.undoRedo.isRedoDisabled();
});
f.MacroEnable=bind(this,function(){
return this.macroEnable;
});
f.FocusedSheetObject=bind(this,function(){
return this.view.focusedObject;
});
f.IsHiddenSheet=bind(this,function(){
return this.workbook.sheet.hidden;
});
f.HasHiddenSheet=bind(this,function(){
return this.workbook.hasHiddenSheet();
});
f.HasUnhiddenSheets=bind(this,function(){
return this.workbook.hasUnhiddenSheets();
});
f.HasLinkedSheet=bind(this,function(){
var _20db=false;
this.sheetTabPane.tabForeach(function(tab){
if(tab.linkSheet){
_20db=true;
}
});
return _20db;
});
f.LinkedSheet=bind(this,function(){
var id=this.sheetTabPane.selectedId;
if(id==-1){
return false;
}
var tab=this.sheetTabPane.getTabById(id);
return tab&&tab.linkSheet;
});
f.BaseUrl=bind(this,function(){
return this.config.baseUrl;
});
f.BookId=bind(this,function(){
return this.workbook.bookInfo.bookId;
});
this.addAction("book.new",{url:_20d6(f.BaseUrl,"new"),disabled:[f.EditMode]});
this.addAction("book.save",{script:bind(this,this.saveNew),disabled:[f.EditMode,f.ReadOnly]});
this.addAction("book.saveas",{url:_20d6(f.BaseUrl,"legacy/workspace/copy/",f.BookId),disabled:{not:f.IsNamed},popup:"PropertiesViewWindow"});
this.addAction("book.close",{url:_20d6(f.BaseUrl,"grid/close/",f.BookId)});
this.addAction("book.reupload",{url:_20d6(f.BaseUrl,"book/upload_new_version/",f.BookId),disabled:[{not:f.IsNamed},f.ReadOnly]});
this.addAction("book.markrev",{url:_20d6(f.BaseUrl,"property/history/mark/",f.BookId),disabled:[{not:f.IsNamed},f.ReadOnly],popup:"PropertiesViewWindow"});
this.addAction("book.viewrev",{url:_20d6(f.BaseUrl,"property/history/list/",f.BookId),disabled:{not:f.IsNamed},popup:"PropertiesViewWindow"});
this.addAction("book.properties",{url:_20d6(f.BaseUrl,"property/summary/view/",f.BookId),disabled:{not:f.IsNamed},popup:"PropertiesViewWindow"});
this.addAction("book.print",{script:bind(this,this.togglePrintDialog)});
this.addAction("book.printbook",{script:bind(this,this.printBook),shortcutList:"CTRL P"});
this.addAction("book.printsheet",{script:bind(this,this.printCurrentSheet)});
this.addAction("book.printrange",{script:bind(this,this.printCurrentSheetRange)});
this.addAction("book.remotedata",{script:bind(this,function(_20df){
this.showRemoteDataEditor(_20df.getValue());
}),disabled:[f.EditMode,f.LinkedSheet,!this.config.enableRemoteData]});
this.addAction("book.retryerrordata",{script:bind(this.view,this.view.retryErrorData),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,!this.config.enableRemoteData]});
this.addAction("book.updatelinkedsheet",{script:bind(this,this.updateLinkedSheet,null),disabled:[f.ReadOnly,{not:f.LinkedSheet}]});
this.addAction("book.updatealllinkedsheets",{script:bind(this,this.updateAllLinkedSheet,null),disabled:[f.ReadOnly,{not:f.HasLinkedSheet}]});
this.addAction("book.mdf",{url:_20d6(f.BaseUrl,"property/customexport/list/",f.BookId),disabled:[f.EditMode],popup:"PropertiesViewWindow"});
this.addAction("book.shareuser",{script:bind(this,this.showShare2UserToolbox),disabled:[{not:f.IsNamed},{not:f.IsOwner}]});
this.addAction("book.shareemail",{script:bind(this,this.showShare2EmailToolbox),disabled:[{not:f.IsNamed},{not:f.IsOwner}]});
std.list.iterate(editgrid.permission.workbook.Type.getAllTypes(),bind(this,function(_20e0){
var _20e1="book.set"+_20e0.getId();
var _20e2=std.lang.bind(this,this.setBookPermission,_20e0.getTypeNumber());
var _20e3=std.lang.bind(this.workbook.permission,this.workbook.permission.isTypeOf,_20e0);
this.addAction(_20e1,{script:_20e2,selected:_20e3,disabled:[{not:f.IsNamed},{not:f.IsOwner}]});
}));
this.addAction("book.permalinks",{script:bind(this,function(_20e4){
this.showBookPermalink(_20e4.getValue());
}),disabled:{not:f.IsNamed}});
this.addAction("book.publishregion",{script:bind(this,this.showPublishRegionToolbox),disabled:[f.EditMode,{not:f.IsNamed}]});
this.addAction("book.publishhtmltable",{script:bind(this,this.showPublishHtmlTableToolbox),disabled:{not:f.IsNamed}});
this.addAction("book.publishminigrid",{script:bind(this,this.showPublishMiniGridToolbox),disabled:{not:f.IsNamed}});
this.addAction("book.publishcalc",{script:bind(this,this.showPublishCalcToolbox),disabled:{not:f.IsNamed}});
this.addAction("book.publish",{url:_20d6(f.BaseUrl,"property/publish/blog/",f.BookId),disabled:{not:f.IsNamed},popup:"PropertiesViewWindow"});
var _20e5=bind(this,function(items){
std.list.iterate(items,bind(this,function(item){
var _20e8=item.getId();
var _20e9="book.license"+_20e8;
var _20ea=std.lang.bind(this,this.setBookLicense,_20e8);
var _20eb=std.lang.bind(this,function(id){
return this.workbook.bookInfo.licenseType==id;
},_20e8);
this.addAction(_20e9,{script:_20ea,selected:_20eb,disabled:[{not:f.IsNamed},{not:f.IsOwner}]});
if(item.hasChildren()){
_20e5(item.getChildren());
}
}));
});
_20e5(editgrid.license.getAllTypes());
this.addAction("book.download",{script:bind(this,this.toggleDownloadDialog)});
this.addAction("book.export",{script:bind(this,function(_20ed){
this.exportBook(_20ed.getValue());
})});
if(this.config.gridletEnabled){
this.addAction("macro.library",{script:bind(this,this.showMacroLibraryToolbox),disabled:[{not:f.MacroEnable}]});
this.addAction("macro.new",{script:bind(this,this.showNewMacroToolbox),disabled:[{not:f.MacroEnable}]});
this.addAction("macro.manage",{script:bind(this,this.showDevelopMacroToolbox),shortcutList:"ALT F8",disabled:[{not:f.MacroEnable}]});
}
this.addAction("nav.import",{url:_20d6(f.BaseUrl,"legacy/workspace/import"),disabled:[f.EditMode]});
this.addAction("nav.workspace",{url:_20d6(f.BaseUrl,"workspace"),disabled:{not:f.IsLogin}});
this.addAction("grid.onctrls",{script:bind(this,this._onCtrlS),shortcutList:"CTRL S"});
this.addAction("grid.undo",{script:bind(this.view,this.view.undo),shortcutList:"CTRL Z",disabled:[f.EditMode,{not:f.UndoReady}]});
this.addAction("grid.redo",{script:bind(this.view,this.view.redo),shortcutList:"CTRL Y",disabled:[f.EditMode,{not:f.RedoReady}]});
this.addAction("grid.cut",{script:bind(this.view,this.view.selCut),shortcutList:"CTRL X",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,f.FocusedSheetObject]});
this.addAction("grid.copy",{script:bind(this.view,this.view.selCopy),shortcutList:"CTRL C",disabled:[f.EditMode]});
this.addAction("grid.paste",{script:bind(this,this.pasteInternal,null,null,false,false,false),shortcutList:"CTRL V",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.pastespecial",{script:bind(this,this.showPasteSpecialDialog),shortcutList:"CTRL ALT V",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.syscopy",{script:bind(this,this.copyToClipboard),shortcutList:"CTRL SHIFT C",disabled:[f.EditMode]});
this.addAction("grid.syspaste",{script:bind(this,this.pasteFromClipboard),shortcutList:"CTRL SHIFT V",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.insrow",{script:bind(this.view,this.view.insertRowBefore),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,f.SelAllRows]});
this.addAction("grid.inscol",{script:bind(this.view,this.view.insertColBefore),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,f.SelAllCols]});
this.addAction("grid.delrow",{script:bind(this.view,this.view.deleteRow),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,f.SelAllRows]});
this.addAction("grid.delcol",{script:bind(this.view,this.view.deleteCol),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,f.SelAllCols]});
this.addAction("grid.inssheetbefore",{script:bind(this,this.showInsertSheetDialog,null,false),disabled:[f.EditMode,f.ReadOnly]});
this.addAction("grid.inssheetafter",{script:bind(this,this.showInsertSheetDialog,null,true),disabled:[f.EditMode,f.ReadOnly]});
this.addAction("grid.delsheet",{script:bind(this,this.showRemoveSheetDialog,null),disabled:[f.IsOneSheet,f.EditMode,f.ReadOnly]});
this.addAction("grid.hidesheet",{script:bind(this,this.hideSheet,null),disabled:[{not:f.HasUnhiddenSheets},f.EditMode,f.ReadOnly,f.IsHiddenSheet]});
this.addAction("grid.unhidesheet",{script:bind(this,this.showUnhideSheetDialog,null),disabled:[f.EditMode,f.ReadOnly,{not:f.HasHiddenSheet}]});
this.addAction("grid.renamesheet",{script:bind(this,this.showRenameSheetDialog,null),disabled:[f.EditMode,f.ReadOnly]});
this.addAction("grid.find",{script:bind(this,this.showFindDialog),shortcutList:std.browser.isIE?null:"CTRL F",disabled:[f.EditMode]});
this.addAction("grid.replace",{script:bind(this,this.showReplaceDialog),shortcutList:"CTRL H",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.repairarrayformula",{script:bind(this,this.showRepairArrayFormulaDialog),disabled:[f.EditMode,f.ReadOnly]});
this.addAction("grid.gotocell",{script:bind(this,this.showGoToCellDialog),shortcutList:"CTRL G",disabled:[f.EditMode]});
this.addAction("grid.lock",{script:bind(this.view,this.view.selLock),shortcutList:"CTRL 2",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,{not:f.LockEnabled}]});
this.addAction("grid.formatpaint",{script:bind(this.view,this.view.toggleFormatPaint),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.recal",{script:bind(this.view,this.view.recalc),shortcutList:"F9",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.autofillright",{script:bind(this.view,this.view.autofillSelectionRight),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,f.SelAllRows,f.SelAllCols]});
this.addAction("grid.autofilldown",{script:bind(this.view,this.view.autofillSelectionDown),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,f.SelAllRows,f.SelAllCols]});
this.addAction("grid.fillright",{script:bind(this.view,this.view.fillSelectionRight),shortcutList:"CTRL SHIFT R",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,f.SelAllRows,f.SelAllCols]});
this.addAction("grid.filldown",{script:bind(this.view,this.view.fillSelectionDown),shortcutList:"CTRL SHIFT D",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,f.SelAllRows,f.SelAllCols]});
this.addAction("grid.clearall",{script:bind(this.view,this.view.selClearAll),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.clearcontent",{script:bind(this.view,this.view.selClearContents),shortcutList:"DELETE",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.clearformat",{script:bind(this.view,this.view.selClearFormats),shortcutList:"CTRL SHIFT DELETE",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.clearcomment",{script:bind(this.view,this.view.selClearComments),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.freezepane",{script:bind(this.view,this.view.toggleFreezePanes),shortcutList:"CTRL 3",disabled:[f.EditMode,f.LinkedSheet]});
this.addAction("grid.textoverflow",{script:bind(this.view,this.view.toggleTextOverflow),disabled:[f.EditMode,f.ReadOnly]});
this.addAction("grid.verticalalign",{script:bind(this,this.toggleVerticalAlign),disabled:[f.EditMode,f.ReadOnly]});
this.addAction("grid.autofitrow",{script:bind(this.view,this.view.autoFitRowSelection),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.autofitcol",{script:bind(this.view,this.view.autoFitColSelection),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.colsize",{script:bind(this.view,this.view.selSetColSize),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.rowsize",{script:bind(this.view,this.view.selSetRowSize),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.colhide",{script:bind(this.view,this.view.selHideCols),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,f.SelAllRows]});
this.addAction("grid.rowhide",{script:bind(this.view,this.view.selHideRows),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,f.SelAllCols]});
this.addAction("grid.colunhide",{script:bind(this.view,this.view.selUnhideCols),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.rowunhide",{script:bind(this.view,this.view.selUnhideRows),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.sort",{script:bind(this,this.showSortDialog),shortcutList:"CTRL ALT S",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.autofilter",{script:bind(this.view,this.view.selToggleAutoFilter),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.summation",{script:bind(this.view,this.view.sum),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.insfunction",{script:bind(this,this.toggleFormulaDialog),disabled:[f.LinkedSheet]});
this.addAction("grid.inschart",{script:bind(this,this.showGraphInsert),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.inscellcomment",{script:bind(this,this.showCellCommentInsert),shortcutList:"SHIFT F2",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.inshyperlink",{script:bind(this,this.showHyperlinkEditor),shortcutList:"CTRL K",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.insimage",{script:bind(this,this.showRemoteImageInsert),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.insmashup",{script:bind(this,this.showWebChartEditor),disabled:[f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.insformula",{script:bind(this,this.toggleFormulaDialog),disabled:[f.LinkedSheet]});
this.addAction("grid.insnamedexpr",{script:bind(this,this.showNamedExprEditor),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.inscurrentdate",{script:bind(this.view,this.view.insertCurrentDate),shortcutList:"CTRL ;",disabled:[f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.inscurrenttime",{script:bind(this.view,this.view.insertCurrentTime),shortcutList:"CTRL SHIFT ;",disabled:[f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.inscurrentdatetime",{script:bind(this.view,this.view.insertCurrentDateTime),shortcutList:"CTRL .",disabled:[f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.inscheckbox",{script:bind(this,this.insertCheckbox),disabled:[f.ReadOnly,f.LinkedSheet]});
this.addAction("grid.selectall",{script:bind(this,function(){
this.view.pane.curBoxSet(null,null,null,null,false,true);
}),shortcutList:"CTRL A",disabled:[f.EditMode]});
this.addAction("grid.remotedatafetchonce",{script:bind(this.view,this.view.selFetchOnceRemoteData),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,!this.config.enableRemoteData]});
this.addAction("grid.remotedataexpand",{script:bind(this.view,this.view.expandRemoteData),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet,!this.config.enableRemoteData]});
this.addAction("view.formula",{script:bind(this.view,this.view.toggleFxMode),shortcutList:"CTRL SHIFT `",disabled:[f.EditMode]});
this.addAction("view.gridlines",{script:bind(this.view,this.view.toggleGridLines),disabled:[f.EditMode]});
this.addAction("view.crosshair",{script:bind(this.view,this.view.toggleCrosshairMode),disabled:[f.EditMode]});
this.addAction("grid.hiddensheet",{script:bind(this,this.toggleHiddenSheetMode),disabled:[f.EditMode,f.ReadOnly,{not:f.HasHiddenSheet}]});
this.addAction("view.lock",{script:bind(this.view,this.view.toggleLockVisible),shortcutList:"CTRL ALT 2",disabled:[f.EditMode]});
this.addAction("view.cellproperties",{script:bind(this,this.showCellProperties),disabled:[f.EditMode]});
this.addAction("view.aboutrtu",{script:bind(this,this.showAboutRTU),disabled:[f.EditMode]});
this.addAction("view.aboutmacro",{script:bind(this,this.showAboutMacro),disabled:[f.EditMode]});
this.addAction("view.quicksort",{script:bind(this,this.showQuickView,"sort"),disabled:[{not:f.IsNamed},f.EditMode]});
this.addAction("view.quickautofilter",{script:bind(this,this.showQuickView,"autofilter"),disabled:[{not:f.IsNamed},f.EditMode]});
this.addAction("format.number",{script:bind(this,this.toggleNumFormatter),shortcutList:"CTRL 1",disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("format.border",{script:bind(this,this.toggleBorderDialog),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("format.fontcolor",{script:bind(this,this.showFontColorPicker),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("format.cellcolor",{script:bind(this,this.showCellColorPicker),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("format.wordwrap",{script:bind(this.view,this.view.selToggleWrapText),disabled:[f.EditMode,f.ReadOnly,f.LinkedSheet]});
this.addAction("format.fontface",{script:bind(this,function(_20ee){
this.view.selSetFont(_20ee.getValue());
}),disabled:[f.ReadOnly,f.LinkedSheet]});
this.addAction("format.fontsize",{script:bind(this,function(_20ef){
this.view.selSetFontSize(_20ef.getValue());
}),disabled:[f.ReadOnly,f.LinkedSheet]});
this.addAction("forma