Files
ICEcoder/lib/ice-coder.min.js
2020-02-28 17:21:11 +00:00

207 lines
107 KiB
JavaScript

var get=function(a){return document.getElementById(a)},iceLoc=window.location.pathname,ICEcoder={filesW:250,minFilesW:14,maxFilesW:250,selectedTab:0,savedPoints:[],savedContents:[],canSwitchTabs:!0,openFiles:[],openFileMDTs:[],openFileVersions:[],cMInstances:[],nextcMInstance:1,selectedFiles:[],findMode:!1,scrollbarVisible:!1,mouseDown:!1,mouseDownInCM:!1,mouseDownMinimap:!1,draggingFilesW:!1,draggingTab:!1,draggingWithKey:!1,tabLeftPos:[],tabBGcurrent:"#1d1d1b",tabBGselected:"#49d",tabBGopen:"#c3c3c3",
tabBGnormal:"transparent",tabFGcurrent:"#fff",tabFGselected:"#fff",tabFGopenFile:"#000",tabFGnormalFile:"#eee",tabFGnormalTab:"#888",prevTab:0,serverQueueItems:[],miniMapBoxTop:0,miniMapBoxHeight:0,previewWindow:!1,previewWindowLoading:!1,pluginIntervalRefs:[],overPopup:!1,cmdKey:!1,codeZoomedOut:!1,showingTool:!1,oppTagReplaceData:[],fmReady:!1,bugReportStatus:"off",bugReportPath:"",bugFilesSizesSeen:[],bugFilesSizesActual:[],githubDiff:!1,githubAuthTokenSet:!1,splitPane:!1,splitPaneLeftPerc:100,
renderLineStyle:[],renderPaneShiftAmount:0,debounce:"",editorFocusInstance:"",openSeconds:0,indexing:!1,ready:!1,initAliases:function(){for(var a="header files fileOptions optionsFile optionsEdit optionsSource optionsHelp filesFrame editor tabsBar findBar terminal output database git content tools footer nestValid versionsDisplay splitPaneControls splitPaneNamesMain splitPaneNamesDiff charDisplay byteDisplay docExplorer miniMap miniMapContainer miniMapContent functionClassList".split(" "),b=0;b<a.length;b++)ICEcoder[a[b]]=
get(a[b])},init:function(){ICEcoder.lockedNav||(ICEcoder.filesW=ICEcoder.minFilesW);ICEcoder.setLayout();ICEcoder.overFileFolder("folder","|");ICEcoder.selectFileFolder("init");ICEcoder.filesFrame.contentWindow.focus();ICEcoder.showHide("hide",get("loadingMask"));ICEcoder.autoOpenInt=setInterval(function(){ICEcoder.fmReady&&(ICEcoder.openLastFiles&&ICEcoder.autoOpenFiles(),clearInterval(ICEcoder.autoOpenInt))},4);setInterval(ICEcoder.updateNestingIndicator,30);ICEcoder.startBugChecking();ICEcoder.autoLogoutTimer=
0;ICEcoder.oneSecondInt=setInterval(function(){ICEcoder.autoLogoutTimer++;for(var a=!1,b=1;b<=ICEcoder.savedPoints.length;b++)ICEcoder.savedPoints[b-1]!=ICEcoder.getcMInstance(b).changeGeneration()&&(a=!0);!a&&1<ICEcoder.autoLogoutMins&&ICEcoder.autoLogoutTimer==60*ICEcoder.autoLogoutMins-60&&ICEcoder.autoLogoutWarningScreen();get("autoLogoutIFrame")&&get("autoLogoutIFrame").contentWindow.document.getElementById("timeRemaning")&&(get("autoLogoutIFrame").contentWindow.document.getElementById("timeRemaning").innerHTML=
0<ICEcoder.autoLogoutTimer?60*ICEcoder.autoLogoutMins-ICEcoder.autoLogoutTimer:0);!a&&0<ICEcoder.autoLogoutMins&&ICEcoder.autoLogoutTimer>=60*ICEcoder.autoLogoutMins&&ICEcoder.logout("autoLogout");ICEcoder.openSeconds++;0==ICEcoder.openSeconds%300&&(ICEcoder.filesFrame.contentWindow.frames.pingActive.location.href=iceLoc+"/lib/session-active-ping.php");ICEcoder.indexing||ICEcoder.loadingFile||0!==ICEcoder.serverQueueItems.length||0!=ICEcoder.openSeconds%3||(ICEcoder.indexing=!0,fetch(iceLoc+"/lib/indexer.php"+
(ICEcoder.indexData?"?timestamp="+ICEcoder.indexData.timestamps.indexed+"&csrf="+ICEcoder.csrf:"")).then(function(a){return a.json()}).then(function(a){a.timestamps.changed&&(ICEcoder.indexData=a,a.gitDiff&&ICEcoder.updateGitDiffPane(),a.gitContent&&ICEcoder.highlightGitDiffs());ICEcoder.indexing=!1}))},1E3);ICEcoder.ready=!0},setLayout:function(a){var b=window.innerWidth;var c=window.innerHeight;this.header.style.width=this.tabsBar.style.width=this.findBar.style.width=b+"px";this.files.style.width=
this.editor.style.left=this.filesW+"px";this.optionsFile.style.width=this.optionsEdit.style.width=this.optionsSource.style.width=this.optionsHelp.style.width=this.filesW-60+"px";this.filesFrame.style.height=c-25-35-30+"px";this.nestValid.style.left=this.filesW+10+"px";this.versionsDisplay.style.left=this.filesW+25+"px";this.splitPaneControls.style.left=parseInt((b-this.filesW)/2+this.filesW-get("splitPaneControls").getBoundingClientRect().width/2,10)+"px";this.splitPaneNamesMain.style.left=parseInt(.25*
(b-this.filesW),10)-50+this.filesW-60+"px";this.splitPaneNamesDiff.style.left=parseInt(.75*(b-this.filesW),10)-50+this.filesW-135+"px";ICEcoder.setTabWidths();a||(this.editor.style.width=ICEcoder.content.style.width=b-this.filesW-200+"px",ICEcoder.terminal.style.width=b-this.filesW+"px",ICEcoder.output.style.width=b-this.filesW-31+"px",ICEcoder.database.style.width=b-this.filesW+"px",ICEcoder.git.style.width=b-this.filesW-31+"px",ICEcoder.content.style.height=c-25-21-28-26+"px",ICEcoder.terminal.style.height=
c+"px",ICEcoder.output.style.height=c+"px",ICEcoder.database.style.height=c+"px",ICEcoder.git.style.height=c+"px",ICEcoder.terminal.style.top=c+"px",ICEcoder.output.style.top=c+"px",ICEcoder.database.style.top=c+"px",ICEcoder.git.style.top=c+"px",!1!==ICEcoder.showingTool&&(get(ICEcoder.showingTool).style.top=0),setTimeout(function(){for(var a=0;a<ICEcoder.openFiles.length;a++)ICEcoder.splitPane||ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[a]].setSize(ICEcoder.splitPaneLeftPerc+"%",ICEcoder.content.style.height),
ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[a]+"diff"].setSize(100-ICEcoder.splitPaneLeftPerc+"%",ICEcoder.content.style.height),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[a]+"diff"].getWrapperElement().style.left=ICEcoder.splitPaneLeftPerc+"%",ICEcoder.splitPane&&ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[a]].setSize(ICEcoder.splitPaneLeftPerc+"%",ICEcoder.content.style.height);this.docExplorer.style.height=ICEcoder.content.style.height;ICEcoder.splitPane?
ICEcoder.content.contentWindow.document.getElementById("resultsBar").style.right=ICEcoder.scrollBarVisible?parseInt(parseInt(ICEcoder.content.style.width,10)/2,10)+17+"px":parseInt(parseInt(ICEcoder.content.style.width,10)/2,10)+"px":ICEcoder.content.contentWindow.document.getElementById("resultsBar").style.right=ICEcoder.scrollBarVisible?"17px":"0"},4))},setSplitPane:function(a){ICEcoder.splitPane="on"==a?!0:!1;get("splitPaneControlsOff").style.opacity=ICEcoder.splitPane?.2:.5;get("splitPaneControlsOn").style.opacity=
ICEcoder.splitPane?.5:.2;get("splitPaneNamesMain").style.opacity=get("splitPaneNamesDiff").style.opacity=ICEcoder.splitPane?1:0;ICEcoder.setLayout();if(ICEcoder.splitPane){ICEcoder.updateDiffs();var b=ICEcoder.getcMInstance();ICEcoder.cMonScroll(b,"cM"+ICEcoder.cMInstances[ICEcoder.selectedTab-1])}else if(b=ICEcoder.getcMInstance(),a=ICEcoder.getcMdiffInstance(),b){cMmarks=b.getAllMarks();for(b=0;b<cMmarks.length;b++)cMmarks[b].clear();cMdiffMarks=a.getAllMarks();for(b=0;b<cMdiffMarks.length;b++)cMdiffMarks[b].clear()}"undefined"!=
typeof ICEcoder.animSplitPaneInt&&clearInterval(ICEcoder.animSplitPaneInt);ICEcoder.animSplitPaneInt=setInterval(function(){ICEcoder.splitPane&&50.1<ICEcoder.splitPaneLeftPerc?ICEcoder.splitPaneLeftPerc=(ICEcoder.splitPaneLeftPerc-50)/1.8+50:!ICEcoder.splitPane&&99.9>ICEcoder.splitPaneLeftPerc?ICEcoder.splitPaneLeftPerc=50-(100-ICEcoder.splitPaneLeftPerc)/1.8+50:(ICEcoder.splitPaneLeftPerc=ICEcoder.splitPane?50:100,clearInterval(ICEcoder.animSplitPaneInt));ICEcoder.setLayout()},4)},toolShowHideToggle:function(a){var b=
window.innerHeight;-1<["terminal","output","database","git"].indexOf(a)&&(get("terminal").style.top=b+"px",get("output").style.top=b+"px",get("database").style.top=b+"px",get("git").style.top=b+"px",get(a).style.top=ICEcoder.showingTool===a?b+"px":0,"terminal"===a&&setTimeout(function(){ICEcoder.terminal.contentWindow.document.getElementById("command").focus()},0),ICEcoder.showingTool=ICEcoder.showingTool!==a?a:!1)},docExplorerShow:function(a){var b;get("miniMap").style.display="miniMap"==a?"block":
"none";get("functionClassList").style.display="functionClassList"==a?"block":"none";"miniMap"==a&&(miniMapInt=setInterval(function(){0!=get("miniMapContent").getBoundingClientRect().height&&(b=ICEcoder.getcMInstance(),ICEcoder.setMinimapLayout(b),clearInterval(miniMapInt))},10))},changeFilesW:function(a){ICEcoder.lockedNav&&ICEcoder.filesW!=ICEcoder.minFilesW||("undefined"!=typeof ICEcoder.changeFilesInt&&clearInterval(ICEcoder.changeFilesInt),ICEcoder.changeFilesInt=setInterval(function(){ICEcoder.changeFilesWStep(a)},
10))},changeFilesWStep:function(a){"expand"==a?ICEcoder.filesW<ICEcoder.maxFilesW-1?ICEcoder.filesW+=Math.ceil((ICEcoder.maxFilesW-ICEcoder.filesW)/2):ICEcoder.filesW=ICEcoder.maxFilesW:ICEcoder.filesW>ICEcoder.minFilesW+1?ICEcoder.filesW-=Math.ceil((ICEcoder.filesW-ICEcoder.minFilesW)/2):ICEcoder.filesW=ICEcoder.minFilesW;("expand"==a&&ICEcoder.filesW==ICEcoder.maxFilesW||"contract"==a&&ICEcoder.filesW==ICEcoder.minFilesW)&&clearInterval(ICEcoder.changeFilesInt);ICEcoder.setLayout()},canResizeFilesW:function(){ICEcoder.ready&&
"w-resize"==document.body.style.cursor?ICEcoder.mouseDown&&"gutter"==ICEcoder.mouseDownInCM&&(ICEcoder.filesW=ICEcoder.maxFilesW=250<=ICEcoder.mouseX&&400>=ICEcoder.mouseX?ICEcoder.mouseX:250>ICEcoder.mouseX?250:400,ICEcoder.files.style.width=ICEcoder.filesFrame.style.width=ICEcoder.filesW+"px",ICEcoder.setLayout(),ICEcoder.draggingFilesW=!0):ICEcoder.draggingFilesW=!1},lockUnlockNav:function(){var a=ICEcoder.filesFrame.contentWindow.document.getElementById("fmLock");ICEcoder.lockedNav=!ICEcoder.lockedNav;
a.style.backgroundPosition=ICEcoder.lockedNav?"0 0":"-16px 0"},showHidePlugins:function(a){get("plugins").style.width="show"==a?"55px":"3px";get("plugins").style.background="show"==a?"#333":"transparent";"show"==a&&ICEcoder.changeFilesW("expand")},cMonFocus:function(a,b){ICEcoder.getCaretPosition();ICEcoder.updateCharDisplay();ICEcoder.updateByteDisplay();ICEcoder.editorFocusInstance=b;ICEcoder.getCaretPosition()},cMonBlur:function(a,b){},cMonKeyUp:function(a,b){"undefined"!=typeof doFind&&clearInterval(doFind);
doFind=setTimeout(function(){ICEcoder.findReplace(get("find").value,!0,!1)},500);ICEcoder.getCaretPosition();ICEcoder.updateCharDisplay();ICEcoder.updateByteDisplay()},cMonCursorActivity:function(a,b){ICEcoder.getCaretPosition();ICEcoder.updateCharDisplay();ICEcoder.updateByteDisplay();a.removeLineClass(ICEcoder["cMActiveLine"+b],"background");a.getCursor("start").line==a.getCursor().line&&(ICEcoder["cMActiveLine"+b]=a.addLineClass(a.getCursor().line,"background","cm-s-activeLine"));"CSS"==ICEcoder.caretLocType&&
ICEcoder.cssColorPreview();var c=-1<ICEcoder.editorFocusInstance.indexOf("diff")?ICEcoder.prevLineDiff:ICEcoder.prevLine;c!=a.getCursor().line&&a.getLine(c)&&0<a.getLine(c).length&&0==a.getLine(c).replace(/\s/g,"").length&&a.replaceRange("",{line:c,ch:0},{line:c,ch:1E6});setTimeout(function(){for(var d,c=0;c<ICEcoder.renderLineStyle.length;c++){d=!1;if("diff"!=ICEcoder.renderLineStyle[c][0]&&-1==b.indexOf("diff")||"diff"==ICEcoder.renderLineStyle[c][0]&&-1<b.indexOf("diff"))d=!0;d&&a.getCursor().line+
1==ICEcoder.renderLineStyle[c][1]?a.setOption("cursorHeight",a.defaultTextHeight()/a.lineInfo(a.getCursor().line).handle.height):a.setOption("cursorHeight",1)}},0)},cMonBeforeChange:function(a,b,c,d){b=a.listSelections();for(var e=0;e<b.length;e++){var f=d.findMatchingTag(a,b[e].anchor);if(0!==c.text[0].indexOf(">")&&"undefined"!=typeof f&&"undo"!=c.origin&&"redo"!=c.origin&&"undefined"!=typeof f.open&&"undefined"!=typeof f.close){var g="open"==f.at?"close":"open";null!==f[g]&&(f=f[g].tag+";"+f[g].from.line+
":"+f[g].from.ch,-1==ICEcoder.oppTagReplaceData.indexOf(f)&&ICEcoder.oppTagReplaceData.push(f))}}},cMonChange:function(a,b,c,d){var e;b=a.listSelections();ICEcoder.loadingFile?setTimeout(function(){a.replaceRange("X",{line:1,ch:1},{line:1,ch:1});a.undo();a.clearHistory();ICEcoder.savedPoints[ICEcoder.selectedTab-1]=a.changeGeneration();ICEcoder.savedContents[ICEcoder.selectedTab-1]=a.getValue()},0):ICEcoder.redoTabHighlight(ICEcoder.selectedTab);setTimeout(function(){ICEcoder.scrollBarVisible=a.getScrollInfo().height>
a.getScrollInfo().clientHeight;ICEcoder.setLayout()},0);if("undefined"!=typeof ICEcoder.oppTagReplaceData[0])for(var f=0;f<ICEcoder.oppTagReplaceData.length;f++){var g=ICEcoder.oppTagReplaceData[f].split(";");var l=g[0];var h=1*g[1].split(":")[0];var m=1*g[1].split(":")[1];b[f]&&(e=d.findMatchingTag(a,b[f].anchor));if("undefined"!=typeof e&&(l="open"==e.at?e.open.tag:e.close.tag,"undefined"!=typeof c.from)){var n=h==c.from.line?c.text[0].length-c.removed[0].length:0;var p="close"==e.at&&h==c.from.line?
c.removed[0].length-c.text[0].length+1:1;var k={line:h,ch:m+n+("open"==e.at?2:p)};n={line:h,ch:m+n+("open"==e.at?2:p)+g[0].length}}""!=l.trim()&&"undefined"!=typeof k&&"undefined"!=typeof n&&a.getRange(k,n)==g[0]&&(a.replaceRange(l,k,n),"close"==e.at&&(ICEcoder.autocompleteSkip=!0))}ICEcoder.oppTagReplaceData=[];ICEcoder.getCaretPosition();ICEcoder.updateCharDisplay();ICEcoder.updateByteDisplay();ICEcoder.updateNestingIndicator();ICEcoder.findMode&&(ICEcoder.results.splice(ICEcoder.findResult,1),
get("results").innerHTML=ICEcoder.results.length+" "+t.results,ICEcoder.findMode=!1);ICEcoder.updateFunctionClassList();"undefined"!=typeof doMiniNav&&clearTimeout(doMiniNav);ICEcoder.loadingFile?ICEcoder.setMinimap():doMiniNav=setTimeout(function(){ICEcoder.setMinimap()},1E3);if(c=ICEcoder.openFiles[ICEcoder.selectedTab-1]){var r=c.substr(c.lastIndexOf("/")+1);var u=r.substr(r.lastIndexOf(".")+1)}ICEcoder.splitPane&&setTimeout(function(){ICEcoder.updateDiffs()},0);ICEcoder.indexData&&ICEcoder.highlightGitDiffs();
c&&ICEcoder.previewWindow.location&&"/[NEW]"!=c&&ICEcoder.updatePreviewWindow(a,c,r,u);ICEcoder.indicateChanges()},cMonUpdate:function(a,b){setTimeout(function(){get("docExplorer").style.background=window.getComputedStyle(a.getWrapperElement(),null).getPropertyValue("background")},0);ICEcoder.setMinimapLayout(a,b)},cMonScroll:function(a,b){ICEcoder.mouseDown=!1;ICEcoder.mouseDownInCM=!1;if(ICEcoder.splitPane){var c=ICEcoder.getcMInstance();var d=ICEcoder.getcMdiffInstance();var e=-1<b.indexOf("diff")?
c:d;c&&setTimeout(function(){e.scrollTo(a.getScrollInfo().left,a.getScrollInfo().top)},0)}ICEcoder.setMinimapLayout(a,b)},cMonInputRead:function(a,b){"keypress"==ICEcoder.autoComplete&&ICEcoder.codeAssist&&!a.state.completionActive&&(ICEcoder.autocompleteSkip?ICEcoder.autocompleteSkip=!1:ICEcoder.autocomplete())},cMonGutterClick:function(a,b,c,d,e){ICEcoder.mouseDownInCM="gutter"},cMonMouseDown:function(a,b,c){ICEcoder.mouseDownInCM="editor"},cMonContextMenu:function(a,b,c){b=a.coordsChar({left:c.pageX,
top:c.pageY});a.setCursor(b);c.ctrlKey&&setTimeout(function(){var b=a,c=b.getRange(b.findWordAt(b.getCursor()).anchor,b.findWordAt(b.getCursor()).head),f=null,g=0,l=ICEcoder.openFiles[ICEcoder.selectedTab-1];l=l.substr(l.lastIndexOf(".")+1);for(i in ICEcoder.indexData.functions[l])i===c&&(f=ICEcoder.indexData.functions[l][i],g++);for(i in ICEcoder.indexData.classes[l])i===c&&(f=ICEcoder.indexData.classes[l][i],g++);1===g&&-1===[null,"def"].indexOf(b.getTokenTypeAt(b.getCursor()))&&(ICEcoder.openFile(f.filePath.replace(docRoot,
"")),ICEcoder.goFindAfterOpenInt=setInterval(function(a){ICEcoder.openFiles[ICEcoder.selectedTab-1]!=a.filePath.replace(docRoot,"")||ICEcoder.loadingFile||(b=ICEcoder.getcMInstance(),setTimeout(function(a){ICEcoder.goToLine(a.range.from.line+1);b.setSelection({line:a.range.from.line,ch:a.range.from.ch},{line:a.range.to.line,ch:a.range.to.ch})},20,a),clearInterval(ICEcoder.goFindAfterOpenInt))},20,f));ICEcoder.mouseDownInCM="editor"},0)},cMonDragOver:function(a,b,c){ICEcoder.setDragCursor(b,"editor")},
cMonRenderLine:function(a,b,c,d){for(var e,f=0;f<ICEcoder.renderLineStyle.length;f++){e=!1;if("diff"!=ICEcoder.renderLineStyle[f][0]&&-1==b.indexOf("diff")||"diff"==ICEcoder.renderLineStyle[f][0]&&-1<b.indexOf("diff"))e=!0;e&&a.lineInfo(c).line+1==ICEcoder.renderLineStyle[f][1]&&(d.style[ICEcoder.renderLineStyle[f][2]]=ICEcoder.renderLineStyle[f][3])}},functionArgsTooltip:function(a,b){if(ICEcoder.indexData){if(0===ICEcoder.openFiles.length)return get("tooltip").style.display="none",!0;var c,d=ICEcoder.getcMInstance(),
e=d.coordsChar({left:ICEcoder.mouseX-ICEcoder.maxFilesW,top:ICEcoder.mouseY-72}),f=d.getRange(d.findWordAt(e).anchor,d.findWordAt(e).head);if(""===f)return get("tooltip").style.display="none",!0;var g=null,l=0,h=ICEcoder.openFiles[ICEcoder.selectedTab-1];h=h.substr(h.lastIndexOf(".")+1);for(c in ICEcoder.indexData.functions[h])c===f&&(g=ICEcoder.indexData.functions[h][c],l++);1===l&&-1===[null,"def"].indexOf(d.getTokenTypeAt(e))?(get("tooltip").style.display="block",get("tooltip").style.left=ICEcoder.mouseX-
ICEcoder.maxFilesW+10+"px",get("tooltip").style.top=ICEcoder.mouseY-30+"px",get("tooltip").style.zIndex="1",get("tooltip").innerHTML=g.params):get("tooltip").style.display="none"}},updateDiffs:function(){ICEcoder.renderLineStyle=[];ICEcoder.renderPaneShiftAmount=0;var a=ICEcoder.getcMInstance();var b=ICEcoder.getcMdiffInstance();var c=a?difflib.stringAsLines(a.getValue()):"";var d=b?difflib.stringAsLines(b.getValue()):"";c=(new difflib.SequenceMatcher(c,d)).get_opcodes();if(a){var e=a.getAllMarks();
for(d=0;d<e.length;d++)e[d].clear();e=b.getAllMarks();for(d=0;d<e.length;d++)e[d].clear()}if(a&&""!=b.getValue())for(d=0;d<c.length;d++)if("equal"!==c[d][0]){if("replace"==c[d][0]){var f=(c[d][4]-c[d][2]+1+ICEcoder.renderPaneShiftAmount)*a.defaultTextHeight();for(e=c[d][4]-1;e<=c[d][2]-1;e++)b.getLineHandle(e).height>a.defaultTextHeight()&&(f+=b.getLineHandle(e).height-a.defaultTextHeight());f>a.defaultTextHeight()&&ICEcoder.renderLineStyle.push(["main",c[d][2],"height",f+"px"]);for(e=0;e<c[d][2]-
c[d][1];e++)f=ICEcoder.findStringDiffs(a.getLine(c[d][1]+e),b.getLine(c[d][3]+e)),a.markText({line:c[d][1]+e,ch:0},{line:c[d][3]+e+ICEcoder.renderPaneShiftAmount,ch:f[0]},{className:"diffGreyLighter"}),a.markText({line:c[d][1]+e,ch:f[0]},{line:c[d][3]+e+ICEcoder.renderPaneShiftAmount,ch:f[0]+f[1]},{className:"diffGrey"}),a.markText({line:c[d][1]+e,ch:f[0]+f[1]},{line:c[d][3]+e+ICEcoder.renderPaneShiftAmount,ch:1E6},{className:"diffGreyLighter"})}else a.markText({line:c[d][1],ch:0},{line:c[d][2]-1,
ch:1E6},{className:"diffGreen"});"replace"!=c[d][0]&&c[d][1]==c[d][2]&&(ICEcoder.renderLineStyle.push(["main",c[d][2],"height",(c[d][4]-c[d][3]+1)*a.defaultTextHeight()+"px"]),a.markText({line:c[d][2]-1,ch:0},{line:c[d][2]-1,ch:1E6},{className:"diffNone"}));if("replace"==c[d][0]){f=(c[d][2]-c[d][4]+1-ICEcoder.renderPaneShiftAmount)*a.defaultTextHeight();for(e=c[d][4]-1;e<=c[d][2]-1;e++)a.getLineHandle(e).height>a.defaultTextHeight()&&(f+=a.getLineHandle(e).height-a.defaultTextHeight());f>a.defaultTextHeight()&&
ICEcoder.renderLineStyle.push(["diff",c[d][4],"height",f+"px"]);for(e=0;e<c[d][4]-c[d][3];e++)f=ICEcoder.findStringDiffs(a.getLine(c[d][1]+e),b.getLine(c[d][3]+e)),b.markText({line:c[d][1]+e-ICEcoder.renderPaneShiftAmount,ch:0},{line:c[d][3]+e,ch:f[0]},{className:"diffGreyLighter"}),b.markText({line:c[d][1]+e-ICEcoder.renderPaneShiftAmount,ch:f[0]},{line:c[d][3]+e,ch:f[0]+f[2]},{className:"diffGrey"}),b.markText({line:c[d][1]+e-ICEcoder.renderPaneShiftAmount,ch:f[0]+f[2]},{line:c[d][3]+e,ch:1E6},
{className:"diffGreyLighter"})}else b.markText({line:c[d][3],ch:0},{line:c[d][4]-1,ch:1E6},{className:"diffRed"});"replace"!=c[d][0]&&c[d][3]==c[d][4]&&(ICEcoder.renderLineStyle.push(["diff",c[d][4],"height",(c[d][2]-c[d][1]+1)*a.defaultTextHeight()+"px"]),b.markText({line:c[d][4]-1,ch:0},{line:c[d][4]-1,ch:1E6},{className:"diffNone"}));ICEcoder.renderPaneShiftAmount=c[d][2]-c[d][4]}},findStringDiffs:function(a,b){"undefined"==typeof a&&(a="");"undefined"==typeof b&&(b="");for(var c=0,d=a.length,
e=b.length;a[c]&&a[c]==b[c];c++);for(;d>c&e>c&a[d-1]==b[e-1];d--)e--;return[c,d-c,e-c]},highlightGitDiffs:function(){"undefined"!=typeof highlightGitDiffTimeout&&clearTimeout(highlightGitDiffTimeout);ICEcoder.indexData&&ICEcoder.indexData.gitContent&&(highlightGitDiffTimeout=setTimeout(function(){if(ICEcoder.indexData.gitContent[docRoot+ICEcoder.openFiles[ICEcoder.selectedTab-1]]){cM=ICEcoder.getcMInstance();cM.clearGutter("CodeMirror-linenumbers");for(var a=cM?difflib.stringAsLines(cM.getValue()):
"",b=difflib.stringAsLines(ICEcoder.indexData.gitContent[docRoot+ICEcoder.openFiles[ICEcoder.selectedTab-1]].lastHashContent),c=(new difflib.SequenceMatcher(b,a)).get_opcodes(),d=0;d<c.length;d++)if("equal"!==c[d][0])if("replace"==c[d][0])for(var e=c[d][3];e<c[d][4];e++){var f=document.createElement("DIV");f.className="CodeMirror-linenumber";b[e-(c[d][4]-c[d][2])]&&a[e].trim()===b[e-(c[d][4]-c[d][2])].trim()?f.style.background="#888":f.style.background="#f80";f.style.color="#111";f.innerHTML=e+1;
cM.setGutterMarker(e,"CodeMirror-linenumbers",f)}else if("insert"==c[d][0])for(e=c[d][3];e<c[d][4];e++)f=document.createElement("DIV"),f.className="CodeMirror-linenumber",f.style.background="#080",f.style.color="#fff",f.innerHTML=e+1,cM.setGutterMarker(e,"CodeMirror-linenumbers",f);else f=document.createElement("DIV"),f.className="CodeMirror-linenumber",cM.lineCount()>c[d][3]?(f.style.borderTop="solid #b00 1px",f.innerHTML=c[d][3]+1,cM.setGutterMarker(c[d][3],"CodeMirror-linenumbers",f)):(f.style.borderBottom=
"solid #b00 1px",f.innerHTML=c[d][3],cM.setGutterMarker(c[d][3]-1,"CodeMirror-linenumbers",f))}},ICEcoder.loadingFile?100:0))},updateGitDiffPane:function(){for(var a="",b=0;b<ICEcoder.indexData.gitDiff.paths.length;b++)a+="<div class=\"link\" onclick=\"ICEcoder.toolShowHideToggle('git'); ICEcoder.openFile('/"+ICEcoder.indexData.gitDiff.paths[b]+"')\">"+ICEcoder.indexData.gitDiff.paths[b]+"</div>\n",get("git").innerHTML=a+"<br><br>"},updatePreviewWindow:function(a,b,c,d){ICEcoder.previewWindow.location.pathname==
b?-1<["htm","html","txt"].indexOf(d)?ICEcoder.previewWindow.document.documentElement.innerHTML=a.getValue():-1<["md"].indexOf(d)&&(ICEcoder.previewWindow.document.documentElement.innerHTML=mmd(a.getValue())):-1<["css"].indexOf(d)&&-1<ICEcoder.previewWindow.document.documentElement.innerHTML.indexOf(c)&&(a=a.getValue(),c=document.createElement("style"),c.type="text/css",c.id="ICEcoder"+b.replace(/\//g,"_"),c.styleSheet?c.styleSheet.cssText=a:c.appendChild(document.createTextNode(a)),ICEcoder.previewWindow.document.getElementById(c.id)&&
ICEcoder.previewWindow.document.documentElement.removeChild(ICEcoder.previewWindow.document.getElementById(c.id)),ICEcoder.previewWindow.document.documentElement.appendChild(c));try{ICEcoder.doPesticide()}catch(e){}try{ICEcoder.doStatsJS("update")}catch(e){}try{ICEcoder.doResponsive()}catch(e){}},contentCleanUp:function(){var a=ICEcoder.getcMInstance();var b=ICEcoder.getcMdiffInstance();a=-1<ICEcoder.editorFocusInstance.indexOf("diff")?b:a;b=a.getValue();b=b.replace(/<ICEcoder:\/:textarea>/g,"</textarea>");
a.setValue(b);a.clearHistory();ICEcoder.savedPoints[ICEcoder.selectedTab-1]=a.changeGeneration();ICEcoder.savedContents[ICEcoder.selectedTab-1]=a.getValue()},undo:function(){var a=ICEcoder.getcMInstance();var b=ICEcoder.getcMdiffInstance();(-1<ICEcoder.editorFocusInstance.indexOf("diff")?b:a).undo()},redo:function(){var a=ICEcoder.getcMInstance();var b=ICEcoder.getcMdiffInstance();(-1<ICEcoder.editorFocusInstance.indexOf("diff")?b:a).redo()},indent:function(a){var b=ICEcoder.getcMInstance();var c=
ICEcoder.getcMdiffInstance();b=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:b;"more"==a?ICEcoder.content.contentWindow.CodeMirror.commands.indentMore(b):ICEcoder.content.contentWindow.CodeMirror.commands.indentLess(b)},moveLines:function(a){var b;var c=ICEcoder.getcMInstance();var d=ICEcoder.getcMdiffInstance();var e=-1<ICEcoder.editorFocusInstance.indexOf("diff")?d:c;var f=e.getCursor("start");var g=e.getCursor("end");"up"==a&&0<f.line&&(b=f.line-1);"down"==a&&g.line<e.lineCount()-1&&(b=g.line+
1);if(!isNaN(b)){var l=e.getLine(b);e.operation(function(){if("up"==a)for(var b=f.line;b<=g.line;b++)e.replaceRange(e.getLine(b),{line:b-1,ch:0},{line:b-1,ch:1E6});else for(b=g.line;b>=f.line;b--)e.replaceRange(e.getLine(b),{line:b+1,ch:0},{line:b+1,ch:1E6});e.replaceRange(l,{line:"up"==a?g.line:f.line,ch:0},{line:"up"==a?g.line:f.line,ch:1E6});e.setSelection({line:f.line+("up"==a?-1:1),ch:f.ch},{line:g.line+("up"==a?-1:1),ch:g.ch})})}},highlightLine:function(a){var b=ICEcoder.getcMInstance();var c=
ICEcoder.getcMdiffInstance();b=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:b;b.setSelection({line:a,ch:0},{line:a,ch:b.lineInfo(a).text.length})},focus:function(a){if(!/iPhone|iPad|iPod/i.test(navigator.userAgent)){var b=ICEcoder.getcMInstance();var c=ICEcoder.getcMdiffInstance();(a=a?c:b)&&a.focus()}},goToLine:function(a,b,c){a=a?a-1:get("goToLineNo").value-1;b=b?b:0;var d=ICEcoder.getcMInstance();var e=ICEcoder.getcMdiffInstance();var f=-1<ICEcoder.editorFocusInstance.indexOf("diff")?e:d;
ICEcoder.scrollingOnLine=f.getCursor().line;"undefined"!=typeof ICEcoder.scrollInt&&clearInterval(ICEcoder.scrollInt);ICEcoder.scrollInt=setInterval(function(){ICEcoder.scrollingOnLine+=(a-ICEcoder.scrollingOnLine)/5;f.scrollTo(0,f.defaultTextHeight()*ICEcoder.scrollingOnLine-f.getScrollInfo().clientHeight/10);ICEcoder.setMinimapLayout(f);Math.round(ICEcoder.scrollingOnLine)==a&&clearInterval(ICEcoder.scrollInt)},10);f.setCursor(a,b);c||(ICEcoder.focus(),setTimeout(function(){ICEcoder.focus()},0));
return!1},lineCommentToggle:function(){var a=ICEcoder.getcMInstance();var b=ICEcoder.getcMdiffInstance();a=-1<ICEcoder.editorFocusInstance.indexOf("diff")?b:a;b=a.getCursor().ch;var c=a.getCursor().line;var d=a.getLine(c);ICEcoder.lineCommentToggleSub(a,b,c,d,d.length)},tagWrapper:function(a){var b=ICEcoder.getcMInstance();var c=ICEcoder.getcMdiffInstance();var d=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:b;b=a;if("div"==a){var e=d.getCursor("start").line;var f=d.getCursor().line;d.operation(function(){d.replaceSelection("<div>\n"+
d.getSelection()+"\n</div>","around");for(var a=e+1;a<=f+1;a++)d.indentLine(a);d.indentLine(f+2,"prev");d.indentLine(f+2,"subtract")})}else-1<["p","a","h1","h2","h3"].indexOf(a)&&d.getSelection().substr(0,a.length+1)=="<"+b&&d.getSelection().substr(-(a.length+3))=="</"+a+">"?d.replaceSelection(d.getSelection().substr(d.getSelection().indexOf(">")+1,d.getSelection().length-d.getSelection().indexOf(">")-1-a.length-3),"around"):("a"==a&&(b='a href=""'),d.replaceSelection("<"+b+">"+d.getSelection()+"</"+
a+">","around"),"a"==a&&d.setCursor({line:d.getCursor("start").line,ch:d.getCursor("start").ch+9}))},addLineBreakAtEnd:function(a){var b=ICEcoder.getcMInstance();var c=ICEcoder.getcMdiffInstance();b=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:b;a||(a=b.getCursor().line);b.replaceRange(b.getLine(a)+"<br>",{line:a,ch:0},{line:a,ch:1E6})},insertLineBefore:function(a){var b=ICEcoder.getcMInstance();var c=ICEcoder.getcMdiffInstance();var d=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:b;a||(a=
d.getCursor().line);d.operation(function(){d.replaceRange("\n"+d.getLine(a),{line:a,ch:0},{line:a,ch:1E6});d.setCursor({line:d.getCursor().line-1,ch:0});d.execCommand("indentAuto")})},insertLineAfter:function(a){var b=ICEcoder.getcMInstance();var c=ICEcoder.getcMdiffInstance();var d=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:b;a||(a=d.getCursor().line);d.operation(function(){d.replaceRange(d.getLine(a)+"\n",{line:a,ch:0},{line:a,ch:1E6});d.execCommand("indentAuto")})},duplicateLines:function(a){var b=
ICEcoder.getcMInstance();var c=ICEcoder.getcMdiffInstance();b=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:b;if(!a&&b.somethingSelected()){c=b.getCursor("start");var d=b.getCursor("end");a=c.line!=d.line&&d.ch==b.getLine(d.line).length?"\n":"";b.replaceSelection(b.getSelection()+a+b.getSelection(),"end");b.setSelection(c,d)}else a||(a=b.getCursor().line),c=b.getCursor().ch,b.replaceRange(b.getLine(a)+"\n"+b.getLine(a),{line:a,ch:0},{line:a,ch:1E6}),b.setCursor(a+1,c)},removeLines:function(a){var b=
ICEcoder.getcMInstance();var c=ICEcoder.getcMdiffInstance();b=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:b;!a&&b.somethingSelected()?b.replaceSelection("","end"):(a||(a=b.getCursor().line),c=b.getCursor().ch,b.execCommand("deleteLine"),b.setCursor(a-1,c))},jumpToDefinition:function(){var a=ICEcoder.getcMInstance();var b=ICEcoder.getcMdiffInstance();a=-1<ICEcoder.editorFocusInstance.indexOf("diff")?b:a;b=a.getTokenAt(a.getCursor()).string;if(a.somethingSelected()&&ICEcoder.origCurorPos)a.setCursor(ICEcoder.origCurorPos);
else for(ICEcoder.origCurorPos=a.getCursor(),a=["var "+b,"function "+b,b+"=function",b+"= function",b+" =function",b+" = function",b+"=new function",b+"= new function",b+" =new function",b+" = new function","window['"+b+"']",'window["'+b+'"]',"this['"+b+"']",'this["'+b+'"]',b+":",b+" :","def "+b,"class "+b],b=0;b<a.length&&!ICEcoder.findReplace(a[b],!1,!1);b++);},updateFunctionClassList:function(){var a;var b=ICEcoder.getcMInstance();ICEcoder.functionClassList=[];b&&(b.doc.eachLine(function(a){ICEcoder.updateFunctionClassListItems(a)}),
setTimeout(function(){a="";for(var b=0;b<ICEcoder.functionClassList.length;b++)ICEcoder.functionClassList[b].verified&&(a+='<div onclick="ICEcoder.goToLine('+(ICEcoder.functionClassList[b].line+1)+')" class="functionClassListItem"><span class="name">'+ICEcoder.functionClassList[b].name+'</span><br><span class="params">'+ICEcoder.functionClassList[b].params+"</span></div>");get("functionClassList").innerHTML=a},0))},updateFunctionClassListItems:function(a){var b=ICEcoder.getcMInstance();var c="";-1<
a.text.indexOf("function ")&&-1<a.text.replace(/\$function/g,"").indexOf("function ")&&(c=a.text.substring(a.text.indexOf("function ")+9));-1<a.text.indexOf("class ")&&-1<a.text.replace(/\$class/g,"").indexOf("class ")&&(c=a.text.substring(a.text.indexOf("class ")+6));c=c.trim().split("{")[0].split("(");""!=c[0]&&(ICEcoder.functionClassList.push({line:b.getLineNumber(a),name:c[0],params:"("+(c[1]?c[1].replace(/[,]/g,", "):""),verified:!1}),setTimeout(function(){if(!a.styles||a.styles&&-1<a.styles.indexOf("def")&&
b.getLineNumber(a))for(var d=0;d<ICEcoder.functionClassList.length;d++)ICEcoder.functionClassList[d].line==b.getLineNumber(a)&&(ICEcoder.functionClassList[d].verified=!0)},0))},setMinimap:function(){var a;if(a=ICEcoder.getcMInstance()){ICEcoder.content.contentWindow.CodeMirror.runMode(a.getValue(),a.getOption("mode"),get("miniMapContent"));get("miniMapContent").innerHTML='<div class="cm-s-'+ICEcoder.theme+'" style="font-family: monospace; white-space: '+(1==ICEcoder.lineWrapping?"pre-wrap":"pre")+
'; font-size: 2px; line-height: 2px">'+get("miniMapContent").innerHTML+"</div>";get("miniMapContent").innerHTML=get("miniMapContent").innerHTML.replace(/<span /g,'<span style="font-size: 2px; font-family: monospace" ');get("miniMapContainer").innerHTML='<div style="position: absolute; display: inline-block; top: '+ICEcoder.miniMapBoxTop+"px; left: 0; width: 200px; height: "+ICEcoder.miniMapBoxHeight+'px; background: rgba(0,198,255,0.1); z-index: 1; cursor: pointer" id="miniMapBox"></div>';var b=get("miniMapBox");
b=new Draggabilly(b,{axis:"y",containment:!0});b.on("dragMove",function(b,d,e){yPos=this.position.y;maxHeight=parseInt(get("docExplorer").style.height,10)<=parseInt(get("miniMapContent").getBoundingClientRect().height,10)?parseInt(get("docExplorer").style.height,10):parseInt(get("miniMapContent").getBoundingClientRect().height,10);newPerc=this.position.y/(maxHeight-ICEcoder.miniMapBoxHeight);yPos=(a.getScrollInfo().height-a.getScrollInfo().clientHeight)*newPerc;a.scrollTo(0,yPos)});b.on("pointerDown",
function(a,b){ICEcoder.mouseDownMinimap=!0});b.on("pointerUp",function(a,b){ICEcoder.mouseDownMinimap=!1});ICEcoder.setMinimapLayout(a);get("docExplorer").style.right="-220px"}},setMinimapLayout:function(a,b){if(get("miniMapBox")&&a){var c=ICEcoder.getcMInstance();var d=a.getScrollInfo().top/(a.getScrollInfo().height-a.getScrollInfo().clientHeight);parseInt(get("miniMapContent").getBoundingClientRect().height,10)>parseInt(get("docExplorer").style.height,10)?(get("miniMapContainer").style.height=parseInt(get("docExplorer").style.height,
10)+"px",ICEcoder.miniMapBoxHeight=parseInt(get("docExplorer").style.height,10)/c.defaultTextHeight()*2,get("miniMapBox").style.height=ICEcoder.miniMapBoxHeight+"px",ICEcoder.miniMapBoxTop=d*parseInt(get("docExplorer").style.height,10)-d*ICEcoder.miniMapBoxHeight,get("miniMapContent").style.marginTop=-(parseInt(get("miniMapContent").getBoundingClientRect().height,10)-parseInt(get("docExplorer").style.height,10))*d+"px"):(get("miniMapContainer").style.height=parseInt(get("miniMapContent").getBoundingClientRect().height,
10)+"px",ICEcoder.miniMapBoxHeight=parseInt(get("docExplorer").style.height,10)/c.defaultTextHeight()*2,get("miniMapBox").style.height=ICEcoder.miniMapBoxHeight+"px",ICEcoder.miniMapBoxTop=d*parseInt(get("miniMapContainer").getBoundingClientRect().height,10)-d*ICEcoder.miniMapBoxHeight,get("miniMapContent").style.marginTop=0);ICEcoder.mouseDownMinimap||(get("miniMapBox").style.top=ICEcoder.miniMapBoxTop+"px")}},autocomplete:function(){var a=ICEcoder.getcMInstance();var b=ICEcoder.getcMdiffInstance();
a=-1<ICEcoder.editorFocusInstance.indexOf("diff")?b:a;ICEcoder.content.contentWindow.CodeMirror.commands.autocomplete(a)},pasteURL:function(a){var b=ICEcoder.getcMInstance();var c=ICEcoder.getcMdiffInstance();b=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:b;"CTRL"==ICEcoder.draggingWithKey&&(a=window.location.protocol+"//"+window.location.hostname+a);b.replaceSelection(a,"around")},searchForSelected:function(){var a=ICEcoder.getcMInstance();var b=ICEcoder.getcMdiffInstance();a=-1<ICEcoder.editorFocusInstance.indexOf("diff")?
b:a;ICEcoder.caretLocType&&(""!=a.getSelection()?(b=ICEcoder.caretLocType.toLowerCase()+" ","Content"==ICEcoder.caretLocType&&(b=""),window.open("http://www.google.com/#output=search&q="+b+a.getSelection())):ICEcoder.message(t["No text selected..."]))},fmAction:function(a,b){var c=get("filesFrame").contentWindow.document.getElementById(ICEcoder.selectedFiles[ICEcoder.selectedFiles.length-1]+"_perms").parentNode;var d=c.parentNode;var e=-1<c.onmouseover.toString().indexOf("'folder'")?"folder":"file";
var f=!1;"up"==b&&(d.previousSibling&&d.previousSibling.previousSibling?(f=d.previousSibling.previousSibling,"UL"==f.tagName&&(f=f.childNodes[f.childNodes.length-1])):d.parentNode.previousSibling&&(f=d.parentNode.previousSibling),f&&(f=f.childNodes[0]));"down"==b&&(d.nextSibling&&d.nextSibling.childNodes[0]?f=d.nextSibling.childNodes[0]:d.nextSibling&&d.nextSibling.nextSibling?f=d.nextSibling.nextSibling:d.parentNode.nextSibling&&(f=d.parentNode.nextSibling.nextSibling),f&&(f=f.childNodes[0]));"left"==
b&&"folder"==e&&d.parentNode.previousSibling&&ICEcoder.openCloseDir(c,!1);if("right"==b||"enter"==b)"folder"==e?ICEcoder.openCloseDir(c,!0):ICEcoder.openFile(c.childNodes[1].id.replace(/\|/g,"/"));f&&f.childNodes[1]&&(ICEcoder.overFileFolder(e,f.childNodes[1].id),ICEcoder.selectFileFolder(a))},openCloseDir:function(a,b){var c;a.onclick=function(a){a.ctrlKey||ICEcoder.cmdKey||ICEcoder.openCloseDir(this,!b)};var d=a.parentNode;d.nextSibling&&(d=d.nextSibling);d&&"UL"==d.tagName&&((c="none"==d.style.display)?
b=!0:d.style.display="none",a.parentNode.className=a.className=c?"pft-directory dirOpen":"pft-directory");b?ICEcoder.filesFrame.contentWindow.frames.fileControl.location.href=iceLoc+"/lib/get-branch.php?location="+a.childNodes[1].id+"&csrf="+ICEcoder.csrf:"UL"==d.tagName&&d.parentNode.removeChild(d);return!1},overFileFolder:function(a,b){ICEcoder.thisFileFolderType=a;ICEcoder.thisFileFolderLink=b},isFileFolder:function(a){return(a=get("filesFrame").contentWindow.document.getElementById(a.replace(iceRoot,
"").replace(/\/$/,"").replace(/\//g,"|")))?-1<a.parentNode.parentNode.className.indexOf("directory")?"folder":"file":!1},selectFileFolder:function(a,b,c){if(""==ICEcoder.thisFileFolderLink)b||a.ctrlKey||ICEcoder.cmdKey||ICEcoder.deselectAllFiles();else if(ICEcoder.thisFileFolderLink){var d=ICEcoder.thisFileFolderLink.replace(/\//g,"|");var e=ICEcoder.filesFrame.contentWindow.document.getElementById(d);if(b||a.ctrlKey||ICEcoder.cmdKey)-1<ICEcoder.selectedFiles.indexOf(d)?(ICEcoder.selectDeselectFile("deselect",
e),ICEcoder.selectedFiles.splice(ICEcoder.selectedFiles.indexOf(d),1)):(ICEcoder.selectDeselectFile("select",e),ICEcoder.selectedFiles.push(d));else if(c||a.shiftKey){var f=function(a,b,d,c){return("00000000000000000000"+a).substr(-20)};a=!1;b=e.parentNode.parentNode.parentNode;var g=ICEcoder.selectedFiles[ICEcoder.selectedFiles.length-1];c=d.replace(/\d+/g,f)<g.replace(/\d+/g,f)?d:g;g=d.replace(/\d+/g,f)>g.replace(/\d+/g,f)?d:g;if(0<ICEcoder.selectedFiles.length&&c.substr(0,c.lastIndexOf("|"))==
g.substr(0,g.lastIndexOf("|")))for(d=0;1E6>d&&("LI"!=b.childNodes[d].nodeName&&d++,e=b.childNodes[d].childNodes[0].childNodes[1],e.id==c&&(a=!0),1==a&&-1==ICEcoder.selectedFiles.indexOf(e.id)&&(ICEcoder.selectDeselectFile("select",e),ICEcoder.selectedFiles.push(e.id)),e.id!=g);d+=2);else ICEcoder.selectDeselectFile("select",e),ICEcoder.selectedFiles.push(d)}else ICEcoder.deselectAllFiles(),ICEcoder.selectDeselectFile("select",e),ICEcoder.selectedFiles.push(d)}ICEcoder.githubDiff&&(get("githubNavSelectedCount").innerHTML=
"Selected: "+ICEcoder.selectedFiles.length,get("githubNavCommit").style.color=0<ICEcoder.selectedFiles.length?"#fff":"#333",get("githubNavCommit").style.background=0<ICEcoder.selectedFiles.length?"#2187e7":"#555",get("githubNavSelectedCount").style.color=0<ICEcoder.selectedFiles.length?"#fff":"#333",get("githubNavPull").style.color=0<ICEcoder.selectedFiles.length?"#fff":"#333",get("githubNavPull").style.background=0<ICEcoder.selectedFiles.length?"#2187e7":"#555");document.findAndReplace.target[2].innerHTML=
ICEcoder.selectedFiles[0]?t["selected files"]:t["all files"];document.findAndReplace.target[3].innerHTML=ICEcoder.selectedFiles[0]?t["selected filenames"]:t["all filenames"];ICEcoder.hideFileMenu()},deselectAllFiles:function(){for(var a,b=0;b<ICEcoder.selectedFiles.length;b++)a=ICEcoder.filesFrame.contentWindow.document.getElementById(ICEcoder.selectedFiles[b]),ICEcoder.selectDeselectFile("deselect",a);ICEcoder.selectedFiles.length=0},selectDeselectFile:function(a,b){if(b){var c=-1<ICEcoder.openFiles.indexOf(b.id.replace(/\|/g,
"/"))?!0:!1;ICEcoder.openFiles[ICEcoder.selectedTab-1]==b.id.replace(/\|/g,"/")?b.style.backgroundColor="select"==a?ICEcoder.tabBGselected:ICEcoder.tabBGcurrent:b.style.backgroundColor="select"==a?ICEcoder.tabBGselected:b.style.backgroundColor=c?ICEcoder.tabBGopen:ICEcoder.tabBGnormal;b.style.color="select"==a?ICEcoder.tabFGselected:ICEcoder.tabFGnormalFile}},boxSelect:function(a,b){var c=ICEcoder.filesFrame.contentWindow.document.getElementById("fmDragBox");"down"==b&&(ICEcoder.fmDragBoxStartX=ICEcoder.mouseX,
ICEcoder.fmDragBoxStartY=ICEcoder.mouseY,ICEcoder.fmDragSelectFirst="",ICEcoder.fmDragSelectLast="");if(ICEcoder.mouseDown&&!ICEcoder.mouseDownInCM&&"drag"==b){ICEcoder.fmDraggedBox=!0;var d=0<ICEcoder.mouseX-ICEcoder.fmDragBoxStartX;c.style.left=(d?ICEcoder.fmDragBoxStartX:ICEcoder.mouseX)+"px";c.style.width=Math.abs(ICEcoder.mouseX-ICEcoder.fmDragBoxStartX)+"px";d=0<ICEcoder.mouseY-ICEcoder.fmDragBoxStartY;c.style.top=(d?ICEcoder.fmDragBoxStartY-70:ICEcoder.mouseY-70)+"px";c.style.height=Math.abs(ICEcoder.mouseY-
ICEcoder.fmDragBoxStartY)+"px";""!=ICEcoder.thisFileFolderLink&&(""==ICEcoder.fmDragSelectFirst?(ICEcoder.fmDragSelectFirst=ICEcoder.thisFileFolderLink,ICEcoder.overFileFolder(0<ICEcoder.thisFileFolderLink.indexOf(".")?"file":"folder",ICEcoder.fmDragSelectFirst),ICEcoder.selectFileFolder(a)):(ICEcoder.fmDragSelectLast=ICEcoder.thisFileFolderLink,ICEcoder.overFileFolder(0<ICEcoder.thisFileFolderLink.indexOf(".")?"file":"folder",ICEcoder.fmDragSelectLast),ICEcoder.selectFileFolder(a,!1,"shiftSim")))}"up"==
b&&(c.style.width=0,c.style.height=0)},newFile:function(){ICEcoder.newTab("alsoSave")},newFolder:function(){var a;var b=ICEcoder.selectedFiles[ICEcoder.selectedFiles.length-1].replace(/\|/g,"/");if(a=ICEcoder.getInput("Enter new folder name at "+b,""))a=(b+"/"+a).replace(/\/\//,"/"),ICEcoder.serverQueue("add",iceLoc+"/lib/file-control-xhr.php?action=newFolder&csrf="+ICEcoder.csrf,encodeURIComponent(a.replace(/\//g,"|"))),ICEcoder.serverMessage("<b>"+t["Creating Folder"]+"</b><br>"+a)},returnFileAndLine:function(a){var b=
1,c=/^([^ ]*)\s+(on\s+)?(line\s+)?(\d+)/.exec(a);null!==c?(b=c[4],a=c[1]):0<a.indexOf("://")?a.lastIndexOf(":")!==a.indexOf("://")&&(b=a.split(":")[2],a=a.substr(0,a.lastIndexOf(":"))):0<a.indexOf(":")&&(b=a.split(":")[1],a=a.split(":")[0]);0<a.indexOf("(")&&0<a.indexOf(")")&&(b=a.split("(")[1].split(")")[0],a=a.split("(")[0]);return[a,b]},openFile:function(a){if("undefined"!=typeof a){var b=ICEcoder.returnFileAndLine(a);a=b[0];b=b[1]}a&&(ICEcoder.thisFileFolderLink=a,ICEcoder.thisFileFolderType=
"file");if("/[NEW]"!=ICEcoder.thisFileFolderLink&&!1!==ICEcoder.isOpen(ICEcoder.thisFileFolderLink))ICEcoder.switchTab(ICEcoder.isOpen(ICEcoder.thisFileFolderLink)+1),1<b&&ICEcoder.goToLine(b);else if(""!=ICEcoder.thisFileFolderLink&&"file"==ICEcoder.thisFileFolderType){a=ICEcoder.thisFileFolderLink.replace(/\|/g,"/");var c=!0;100<=ICEcoder.openFiles.length&&(ICEcoder.message(t["Sorry you can..."]),c=!1);c&&(ICEcoder.shortURL=a,"/[NEW]"!=a?(ICEcoder.thisFileFolderLink=ICEcoder.thisFileFolderLink.replace(/\//g,
"|"),ICEcoder.serverQueue("add",iceLoc+"/lib/file-control.php?action=load&file="+encodeURIComponent(ICEcoder.thisFileFolderLink)+"&csrf="+ICEcoder.csrf+"&lineNumber="+b),ICEcoder.serverMessage("<b>"+t["Opening File"]+"</b><br>"+ICEcoder.shortURL)):ICEcoder.createNewTab("new"),ICEcoder.fMIconVis("fMView",1))}},openFilesFromList:function(a){for(var b=0;b<a.length;b++)ICEcoder.thisFileFolderLink=a[b].replace("|","/"),ICEcoder.thisFileFolderType="file",ICEcoder.openFile()},openPrompt:function(){var a;
if(a=ICEcoder.getInput(t["Enter relative file..."],""))-1<a.indexOf("://")?ICEcoder.getRemoteFile(a):ICEcoder.openFile(a)},getRemoteFile:function(a){if("undefined"!=typeof a){var b=ICEcoder.returnFileAndLine(a);a=b[0];b=b[1]}ICEcoder.serverQueue("add",iceLoc+"/lib/file-control-xhr.php?action=getRemoteFile&csrf="+ICEcoder.csrf+"&lineNumber="+b,encodeURIComponent(a));ICEcoder.serverMessage("<b>"+t.Getting+"</b><br>"+a)},getChangesToSave:function(){var a=ICEcoder.getcMInstance();var b=ICEcoder.savedContents[ICEcoder.selectedTab-
1];a=difflib.stringAsLines(a.getValue());b=difflib.stringAsLines(b);b=(new difflib.SequenceMatcher(b,a)).get_opcodes();for(var c=0;c<b.length;c++)for(j=b[c][3];j<b[c][4];j++)"equal"!=b[c][0]&&("undefined"==typeof b[c][5]&&(b[c][5]=""),b[c][5]+=a[j]+"\n");return JSON.stringify(b)},saveFile:function(a){var b;a||(b=ICEcoder.getChangesToSave());a=a?"saveAs":"save";var c=ICEcoder.openFiles[ICEcoder.selectedTab-1].replace(iceRoot,"").replace(/\//g,"|");if("|[NEW]"==c&&0<ICEcoder.selectedFiles.length){var d=
ICEcoder.selectedFiles[0];c=-1==d.lastIndexOf(".")||d.lastIndexOf(".")<d.lastIndexOf("|")?d+c:"|[NEW]"}c=c.replace("||","|");ICEcoder.serverQueue("add",iceLoc+"/lib/file-control-xhr.php?action=save&fileMDT="+ICEcoder.openFileMDTs[ICEcoder.selectedTab-1]+"&fileVersion="+ICEcoder.openFileVersions[ICEcoder.selectedTab-1]+"&saveType="+a+"&csrf="+ICEcoder.csrf,encodeURIComponent(c),b);ICEcoder.serverMessage("<b>"+t.Saving+"</b><br>"+ICEcoder.openFiles[ICEcoder.selectedTab-1].replace(iceRoot,""))},renameFile:function(a,
b){if(a)var c=a.replace(/\|/g,"/");else c=ICEcoder.selectedFiles[ICEcoder.selectedFiles.length-1].replace(/\|/g,"/"),a=ICEcoder.selectedFiles[ICEcoder.selectedFiles.length-1].replace(/\|/g,"/");b||(b=ICEcoder.getInput(t["Please enter the..."],c));if(b){var d=ICEcoder.openFiles.indexOf(c.replace(/\|/g,"/"));-1<d&&(ICEcoder.openFiles[d]=b,closeTabLink='<a nohref onClick="ICEcoder.closeTab(parseInt(this.parentNode.id.slice(3),10))"><img src="'+iceLoc+'/images/nav-close.gif" class="closeTab" onMouseOver="prevBG=this.style.backgroundColor;this.style.backgroundColor=\'#333\'; ICEcoder.overCloseLink=true" onMouseOut="this.style.backgroundColor=prevBG; ICEcoder.overCloseLink=false"></a>',
c=ICEcoder.openFiles[d],get("tab"+(d+1)).innerHTML=closeTabLink+" "+c.slice(c.lastIndexOf("/")).replace(/\//,""),get("tab"+(d+1)).title=b);ICEcoder.serverQueue("add",iceLoc+"/lib/file-control-xhr.php?action=rename&oldFileName="+encodeURIComponent(a.replace(/\|/g,"/"))+"&csrf="+ICEcoder.csrf,encodeURIComponent(b));ICEcoder.serverMessage("<b>"+t["Renaming to"]+"</b><br>"+b);ICEcoder.setPreviousFiles()}},moveFile:function(a,b){if(b&&b!=a){var c=ICEcoder.openFiles.indexOf(a.replace(/\|/g,"/"));if(-1<
c){ICEcoder.openFiles[c]=b;closeTabLink='<a nohref onClick="ICEcoder.closeTab(parseInt(this.parentNode.id.slice(3),10))"><img src="'+iceLoc+'/images/nav-close.gif" class="closeTab" onMouseOver="prevBG=this.style.backgroundColor;this.style.backgroundColor=\'#333\'; ICEcoder.overCloseLink=true" onMouseOut="this.style.backgroundColor=prevBG; ICEcoder.overCloseLink=false"></a>';var d=ICEcoder.openFiles[c];get("tab"+(c+1)).innerHTML=closeTabLink+" "+d.slice(d.lastIndexOf("/")).replace(/\//,"");get("tab"+
(c+1)).title=b}ICEcoder.ask("Are you sure you want to move file "+a+" to "+b+" ?")&&(ICEcoder.serverQueue("add",iceLoc+"/lib/file-control-xhr.php?action=move&oldFileName="+encodeURIComponent(a.replace(/\//g,"|"))+"&csrf="+ICEcoder.csrf,encodeURIComponent(b.replace(/\//g,"|"))),ICEcoder.serverMessage("<b>"+t["Moving to"]+"</b><br>"+b));ICEcoder.setPreviousFiles()}},deleteFiles:function(a){a=a?a:ICEcoder.selectedFiles;var b=a.toString().replace(/\|/g,"/").replace(/,/g,"\n");0<a.length&&ICEcoder.ask("Delete:\n\n"+
b+"?")&&(ICEcoder.serverQueue("add",iceLoc+"/lib/file-control-xhr.php?action=delete&&csrf="+ICEcoder.csrf,encodeURIComponent(a.join(";"))),ICEcoder.serverMessage("<b>"+t["Deleting File"]+"</b><br>"+b))},copyFiles:function(a,b,c){ICEcoder.copiedFiles=[];for(var d=0;d<a.length;d++)ICEcoder.copiedFiles[d]=a[d];b||(get("fmMenuPasteOption").style.display="block");c||ICEcoder.hideFileMenu()},pasteFiles:function(a){if(ICEcoder.copiedFiles)for(var b=0;b<ICEcoder.copiedFiles.length;b++)"|"!=ICEcoder.copiedFiles[b]?
(ICEcoder.serverQueue("add",iceLoc+"/lib/file-control-xhr.php?action=paste&location="+a+"&csrf="+ICEcoder.csrf,encodeURIComponent(ICEcoder.copiedFiles[b])),ICEcoder.serverMessage("<b>"+t["Pasting File"]+"</b><br>"+ICEcoder.copiedFiles[b].toString().replace(/\|/g,"/").replace(/,/g,"\n"))):ICEcoder.message(t["Sorry cannot paste..."]);else ICEcoder.message(t["Nothing to paste..."])},duplicateFiles:function(a){if(ICEcoder.copiedFiles)var b=ICEcoder.copiedFiles;ICEcoder.copyFiles(a,"dontShowPaste","dontHide");
a=a[0].substr(0,a[0].lastIndexOf("|"));ICEcoder.pasteFiles(a);"undefined"!=typeof b&&(ICEcoder.copiedFiles=b)},uploadFilesSelect:function(a){get("uploadDir").value=a;get("fileInput").click()},uploadFilesSubmit:function(a){""!=get("fileInput").value&&(ICEcoder.showHide("show",get("loadingMask")),get("uploadFilesForm").submit(),event.preventDefault())},showHideFileNav:function(a,b){var c=["optionsFile","optionsEdit","optionsSource","optionsHelp"];if("hide"==a)fileNavInt=setTimeout(function(){for(var a=
0;a<c.length;a++)ICEcoder.showHide("hide",get(c[a])),get(c[a]+"Nav").style.color=""},150);else for(var d=0;d<c.length;d++)ICEcoder.showHide("hide",get(c[d])),get(c[d]+"Nav").style.color="";get("fileOptions").style.opacity=0;"show"==a&&("undefined"!=typeof fileNavInt&&clearTimeout(fileNavInt),ICEcoder.showHide(a,get(b)),get(b+"Nav").style.color="#fff",get("fileOptions").style.opacity=1)},isPathFolder:function(a){a=ICEcoder.filesFrame.contentDocument.getElementsByClassName("pft-directory");for(var b=
ICEcoder.selectedFiles[0],c,d=0;d<a.length;d++)if(c=a[d],"underfined"!=typeof c&&(c=c.childNodes[0],"undefined"!=typeof c&&(c=c.childNodes[1],"undefined"!=typeof c&&b===c.getAttribute("id"))))return!0;return!1},checkExists:function(a){var b;a=a.replace(/\|/g,"/");0===a.indexOf(iceRoot)&&(a=a.replace(iceRoot,""));var c=ICEcoder.xhrObj();c.onreadystatechange=function(){4==c.readyState&&(200==c.status?(b=JSON.parse(c.responseText),b.action.timeEnd=(new Date).getTime(),b.action.timeTaken=b.action.timeEnd-
b.action.timeStart,0<=["raw","both"].indexOf(ICEcoder.fileDirResOutput)&&console.log(c.responseText),0<=["object","both"].indexOf(ICEcoder.fileDirResOutput)&&console.log(b),ICEcoder.lastFileDirCheckStatusObj=b,b.status.error?(ICEcoder.message(b.status.errorMsg),console.log("ICEcoder error info for your request..."),console.log(b),ICEcoder.serverMessage(),ICEcoder.serverQueue("del",0)):eval(b.action.doNext)):(ICEcoder.message(t["Sorry there was..."]),console.log("ICEcoder error info for your request..."),
console.log(b),ICEcoder.serverMessage(),ICEcoder.serverQueue("del",0)))};c.open("POST",iceLoc+"/lib/file-control-xhr.php?action=checkExists&csrf="+ICEcoder.csrf,!0);c.setRequestHeader("Content-type","application/x-www-form-urlencoded");var d=(new Date).getTime();c.send("timeStart="+d+"&file="+encodeURIComponent(a))},showMenu:function(a){0!=ICEcoder.selectedFiles.length&&-1!=ICEcoder.selectedFiles.indexOf(ICEcoder.selectedFiles[ICEcoder.selectedFiles.length-1].replace(/\//g,"|"))||ICEcoder.selectFileFolder(a);
a=129;var b=window.innerHeight;if("undefined"!=typeof ICEcoder.thisFileFolderLink&&""!=ICEcoder.thisFileFolderLink){var c=this.isPathFolder(ICEcoder.selectedFiles[0])?"folder":"file";get("folderMenuItems").style.display="folder"==c&&1==ICEcoder.selectedFiles.length?"block":"none";"folder"==c&&1==ICEcoder.selectedFiles.length&&(a+=67,"block"==get("fmMenuPasteOption").style.display&&(a+=19));get("singleFileMenuItems").style.display=1<ICEcoder.selectedFiles.length?"none":"block";1==ICEcoder.selectedFiles.length&&
(a+=43);get("fileMenu").style.display="inline-block";setTimeout(function(){get("fileMenu").style.opacity="1"},4);get("fileMenu").style.left=ICEcoder.mouseX+20+"px";c=ICEcoder.mouseY-ICEcoder.filesFrame.contentWindow.document.body.scrollTop-10;c+a>b&&(c-=c+a-b);get("fileMenu").style.top=c+"px"}return!1},showFileMenu:function(){get("fileMenu").style.display="inline-block";setTimeout(function(){get("fileMenu").style.opacity="1"},4)},hideFileMenu:function(){get("fileMenu").style.display="none";get("fileMenu").style.opacity=
"0"},updateFileManagerList:function(a,b,c,d,e,f,g){if("add"==a&&!get("filesFrame").contentWindow.document.getElementById(b.replace(iceRoot,"").replace(/\/$/,"").replace(/\//g,"|")+"|"+c)){var l="file"==g?"pft-file ext-"+c.substr(c.indexOf(".")+1):"pft-directory";d="file"==g?ICEcoder.newFilePerms:ICEcoder.newDirPerms;b||(b="/");b=b.replace(iceRoot,"/");b=b.replace("//","/");var h=get("filesFrame").contentWindow.document.getElementById(b.replace(/\//g,"|"));var m=h.parentNode.parentNode.nextSibling;
var n=document.createTextNode("\n");var p=777==d?"background: #800; color: #eee":"color: #888";p='<a nohref title="'+b.replace(/\/$/,"")+"/"+c+'" onMouseOver="parentNode.draggable=true;ICEcoder.overFileFolder(\''+g+"',this.childNodes[1].id)\" onMouseOut=\"parentNode.draggable=false;ICEcoder.overFileFolder('"+g+"','')\" "+("folder"==g?"ondragover=\"if(parentNode.nextSibling && parentNode.nextSibling.tagName != 'UL' && ICEcoder.thisFileFolderLink != this.childNodes[1].id) {ICEcoder.openCloseDir(this,true);}\"":
"")+' onClick="if(!event.ctrlKey && !ICEcoder.cmdKey) {'+("folder"==g?"ICEcoder.openCloseDir(this,"+("folder"==g?"true":"false")+");":"")+' if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {ICEcoder.openFile()}}" style="position: relative; left:-22px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span id="'+b.replace(/\/$/,"").replace(/\//g,"|")+"|"+c+'">'+c+'</span> <span style="'+p+'; font-size: 8px" id="'+b.replace(/\/$/,"").replace(/\//g,"|")+"|"+c+'_perms">'+d+"</span></a>";
if(!m||3>m.childNodes.length){var k=document.createElement("ul");m=h.parentNode.parentNode;m.parentNode.insertBefore(k,m.nextSibling);k=document.createElement("li");k.className=l;k.draggable=!1;k.ondragstart=function(a){ICEcoder.addDefaultDragData(this,a)};k.ondrag=function(a){ICEcoder.draggingWithKeyTest(a);ICEcoder.getcMInstance()&&(-1==ICEcoder.editorFocusInstance.indexOf("diff")?ICEcoder.getcMInstance().focus():ICEcoder.getcMdiffInstance().focus())};k.ondragover=function(a){ICEcoder.setDragCursor(a,
"folder"==g?"folder":"file")};k.ondragend=function(){ICEcoder.dropFile(this)};k.innerHTML=p;m.nextSibling.appendChild(k);m.nextSibling.appendChild(n)}else for(h=0;h<m.childNodes.length;h++)if(m.childNodes[h].className){k=0<m.childNodes[h].className.indexOf("directory")?"folder":"file";var r=m.childNodes[h].getElementsByTagName("span")[0].innerHTML;if(k==g&&r>c||"folder"==g&&"file"==k||h==m.childNodes.length-1){k=document.createElement("li");k.className=l;k.draggable=!1;k.ondragstart=function(a){ICEcoder.addDefaultDragData(this,
a)};k.ondrag=function(a){ICEcoder.draggingWithKeyTest(a);ICEcoder.getcMInstance()&&(-1==ICEcoder.editorFocusInstance.indexOf("diff")?ICEcoder.getcMInstance().focus():ICEcoder.getcMdiffInstance().focus())};k.ondragover=function(a){ICEcoder.setDragCursor(a,"folder"==g?"folder":"file")};k.ondragend=function(){ICEcoder.dropFile(this)};k.innerHTML=p;h==m.childNodes.length-1?(m.appendChild(k),m.appendChild(n)):(m.insertBefore(k,m.childNodes[h]),m.insertBefore(n,m.childNodes[h+1]));break}}"file"!=g||f||
(ICEcoder.openFiles[ICEcoder.selectedTab-1]=b+c)}"rename"==a&&(f=e.replace(/\//g,"|"),h=get("filesFrame").contentWindow.document.getElementById(f),h.innerHTML=c,h.id=b.replace(/\//g,"|")+"|"+c,h.parentNode.title=h.id.replace(/\|/g,"/"),targetElemPerms=get("filesFrame").contentWindow.document.getElementById(f+"_perms"),targetElemPerms.id=b.replace(/\//g,"|")+"|"+c+"_perms",ICEcoder.renameInChildren(h,e,b,c));"move"==a&&(ICEcoder.updateFileManagerList("add",b,c,!1,!1,!1,g),ICEcoder.updateFileManagerList("delete",
e.substr(0,e.lastIndexOf("/")),c));"chmod"==a&&(f=ICEcoder.selectedFiles[ICEcoder.selectedFiles.length-1].replace(/\|/g,"/"),h=get("filesFrame").contentWindow.document.getElementById(f.replace(/\//g,"|")+"_perms"),h.style.background=777==d?"#800":"none",h.style.color=777==d?"#eee":"#888",h.innerHTML=d);"delete"==a&&(b||(b=""),b=b.replace(iceRoot,"/"),b=b.replace("//","/"),b=b.replace(/\/$/,"").replace(/\//g,"|"),h=(b+"|"+c).replace("||","|"),h=get("filesFrame").contentWindow.document.getElementById(h).parentNode.parentNode,
ICEcoder.openCloseDir(h.childNodes[0],!1),h.parentNode.removeChild(h))},renameInChildren:function(a,b,c,d){if(a.parentNode.parentNode.nextSibling&&"UL"==a.parentNode.parentNode.nextSibling.nodeName){a=a.parentNode.parentNode.nextSibling;for(var e=0;e<a.childNodes.length;e++)if("LI"==a.childNodes[e].nodeName){var f=a.childNodes[e].childNodes[0].childNodes[1];f.id=f.id.replace(b.replace(/\//g,"|"),c.replace(/\//g,"|")+"|"+d);f.parentNode.title=f.id.replace(/\|/g,"/");var g=get("filesFrame").contentWindow.document.getElementById(f.id).nextSibling.nextSibling;
g.id=f.id+"_perms";ICEcoder.renameInChildren(f,b,c,d)}}},refreshFileManager:function(){ICEcoder.showHide("show",get("loadingMask"));ICEcoder.filesFrame.contentWindow.location.reload(!0);ICEcoder.filesFrame.style.opacity="0";ICEcoder.filesFrame.onload=function(){ICEcoder.filesFrame.style.opacity="1";ICEcoder.showHide("hide",get("loadingMask"))}},draggingWithKeyTest:function(a){var b=a.keyCode?a.keyCode:a.which?a.which:a.charCode;if(224==b||91==b||93==b)ICEcoder.cmdKey=!0;ICEcoder.draggingWithKey=a.ctrlKey||
ICEcoder.cmdKey?"CTRL":!1},addDefaultDragData:function(a,b){b.dataTransfer.setData("Text",a.id)},setDragCursor:function(a,b){a.preventDefault();ICEcoder.draggingWithKeyTest(a);a.dataTransfer.dropEffect="editor"==b?"CTRL"==ICEcoder.draggingWithKey?"copy":"link":"folder"==b?"CTRL"==ICEcoder.draggingWithKey?"copy":"move":"none"},dropFile:function(a){var b;var c=a.childNodes[0].childNodes[1].id.replace(/\|/g,"/");fileName=c.substr(c.lastIndexOf("/")+1);"editor"==ICEcoder.area&&ICEcoder.pasteURL(c);"files"==
ICEcoder.area&&setTimeout(function(){b="folder"==ICEcoder.thisFileFolderType?ICEcoder.thisFileFolderLink:ICEcoder.thisFileFolderLink.substr(0,ICEcoder.thisFileFolderLink.lastIndexOf("|"));"CTRL"==ICEcoder.draggingWithKey?(ICEcoder.copyFiles(ICEcoder.selectedFiles),ICEcoder.pasteFiles(b)):ICEcoder.moveFile(c,b.replace(/\|/g,"/")+"/"+fileName)},4);ICEcoder.mouseDown=!1;ICEcoder.mouseDownInCM=!1},findReplaceOptions:function(){get("rText").style.display=get("replace").style.display=get("rTarget").style.display=
document.findAndReplace.connector.value==t.and?"inline-block":"none"},findReplace:function(a,b,c,d,e){if(d)get("find").value=get("find").value,ICEcoder.focus();else{"undefined"==typeof e&&(e=!1);a=a.toLowerCase();var f=get("replace").value;var g=get("results");d=ICEcoder.getcMInstance();var l=ICEcoder.getcMdiffInstance();if((d=-1<ICEcoder.editorFocusInstance.indexOf("diff")?l:d)&&0<a.length&&document.findAndReplace.target.value==t["this document"]){d.getValue().toLowerCase();document.findAndReplace.connector.value==
t.and&&c&&(document.findAndReplace.replaceAction.value==t.replace&&d.getSelection().toLowerCase()==a?d.replaceSelection(f,"around"):document.findAndReplace.replaceAction.value==t["replace all"]&&(c=new RegExp(a,"gi"),d.setValue(d.getValue().replace(c,f))));c=d.getValue().toLowerCase();if(!ICEcoder.findMode||a!=ICEcoder.lastsearch){ICEcoder.results=[];ICEcoder.resultsLines=[];for(f=0;f<c.length;f++)c.substr(f,a.length)==a&&-1==ICEcoder.results.indexOf(f)&&(ICEcoder.results.push(f),-1==ICEcoder.resultsLines.indexOf(d.posFromIndex(f).line+
1)&&ICEcoder.resultsLines.push(d.posFromIndex(f).line+1));ICEcoder.lastsearch=a}if(0<ICEcoder.results.length){if(b)g.innerHTML=ICEcoder.results.length+" results";else{if(e)for(ICEcoder.findResult="undefined"==typeof ICEcoder.findResult?ICEcoder.results.length+1:ICEcoder.results.length,f=ICEcoder.results.length-1;0<=f;f--)ICEcoder.results[f]>d.indexFromPos({ch:d.getCursor().ch-1,line:d.getCursor().line})&&ICEcoder.findResult--;else for(f=ICEcoder.findResult=0;f<ICEcoder.results.length;f++)ICEcoder.results[f]<
d.indexFromPos({ch:d.getCursor().ch+1,line:d.getCursor().line})&&ICEcoder.findResult++;!e&&ICEcoder.findResult>ICEcoder.results.length-1&&(ICEcoder.findResult=0);e&&1==ICEcoder.findResult&&(ICEcoder.findResult=ICEcoder.results.length+1);g.innerHTML="Highlighted result "+(ICEcoder.findResult+(e?-1:1))+" of "+ICEcoder.results.length+" results";e?(b=d.getSearchCursor(a,{ch:d.getCursor().ch-1,line:d.getCursor().line},!0),b.findPrevious(),b.from()||(b=d.getSearchCursor(a,{line:1E6,ch:1E6},!0),b.findPrevious())):
(b=d.getSearchCursor(a,{ch:d.getCursor().ch+1,line:d.getCursor().line},!0),b.findNext(),b.from()||(b=d.getSearchCursor(a,{line:0,ch:0},!0),b.findNext()));d.setSelection(b.from(),b.to());ICEcoder.focus();ICEcoder.findMode=!0}a=ICEcoder.scrollBarVisible?parseInt(ICEcoder.content.style.height,10)/d.lineCount():d.defaultTextHeight();b=ICEcoder.scrollBarVisible?0:d.heightAtLine(0);e="";for(f=1;f<=d.lineCount();f++)g=-1<ICEcoder.resultsLines.indexOf(f)?d.getCursor().line+1==f?"#b00":"#888":"transparent",
e+='<div style="position: absolute; display: block; width: 5px; height:'+a+"px; background: "+g+"; top: "+parseInt(a*(f-1)+b,10)+'px"></div>';ICEcoder.content.contentWindow.document.getElementById("resultsBar").innerHTML=e;ICEcoder.content.contentWindow.document.getElementById("resultsBar").style.display="inline-block";return!0}g.innerHTML="No results";ICEcoder.content.contentWindow.document.getElementById("resultsBar").innerHTML="";ICEcoder.content.contentWindow.document.getElementById("resultsBar").style.display=
"none";return!1}""!=a&&c?(e=b=d="",document.findAndReplace.connector.value==t.and&&(d="&replace="+f),0<=document.findAndReplace.target.value.indexOf(t.file)&&(b="&target="+document.findAndReplace.target.value.replace(/ /g,"-")),document.findAndReplace.target.value==t["selected files"]&&(e="&selectedFiles="+ICEcoder.selectedFiles.join(":")),a=a.replace(/'/g,"&#39;"),a!=encodeURIComponent(a)?a="ICEcoder:"+encodeURIComponent(a):a,ICEcoder.showHide("show",get("loadingMask")),get("mediaContainer").innerHTML=
'<iframe src="'+iceLoc+"/lib/multiple-results.php?find="+a+d+b+e+"&csrf="+ICEcoder.csrf+'" class="whiteGlow" style="width: 700px; height: 500px"></iframe>'):(g.innerHTML="No results",ICEcoder.content.contentWindow.document.getElementById("resultsBar").innerHTML="",ICEcoder.content.contentWindow.document.getElementById("resultsBar").style.display="none")}},replaceInFile:function(a,b,c){ICEcoder.serverQueue("add",iceLoc+"/lib/file-control-xhr.php?action=replaceText&find="+b+"&replace="+c+"&csrf="+ICEcoder.csrf,
encodeURIComponent(a.replace(/\//g,"|")));ICEcoder.serverMessage("<b>"+t["Replacing text in"]+"</b><br>"+a)},getCaretPosition:function(){var a;var b=ICEcoder.getcMInstance();var c=ICEcoder.getcMdiffInstance();b=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:b;c=b.getCursor().line;var d=b.getCursor().ch;for(var e=a=0;e<c;e++)a+=b.getLine(e).length+1;ICEcoder.caretPos=a+d-1},updateCharDisplay:function(){var a=ICEcoder.getcMInstance();var b=ICEcoder.getcMdiffInstance();a=-1<ICEcoder.editorFocusInstance.indexOf("diff")?
b:a;ICEcoder.caretLocationType();ICEcoder.charDisplay.innerHTML=ICEcoder.caretLocType+", Line: "+(a.getCursor().line+1)+", Char: "+a.getCursor().ch},updateVersionsDisplay:function(){var a=ICEcoder.openFileVersions[ICEcoder.selectedTab-1];get("versionsDisplay").innerHTML="undefined"!=typeof a?ICEcoder.openFileVersions[ICEcoder.selectedTab-1]+" backup"+(1!=a?"s":""):""},updateByteDisplay:function(){var a=ICEcoder.getcMInstance();var b=ICEcoder.getcMdiffInstance();a=-1<ICEcoder.editorFocusInstance.indexOf("diff")?
b:a;ICEcoder.byteDisplay.innerHTML=a.getValue().length.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")+" bytes"},showDisplay:function(a){ICEcoder.byteDisplay.style.display="byte"==a?"inline-block":"none";ICEcoder.charDisplay.style.display="char"==a?"inline-block":"none"},showHide:function(a,b){b.style.visibility="show"==a?"visible":"hidden"},getcMInstance:function(a){return ICEcoder.content.contentWindow[isNaN(a)?"new"==a||"new"!=a&&0<ICEcoder.openFiles.length?"cM"+ICEcoder.cMInstances[ICEcoder.selectedTab-
1]:"cM1":"cM"+ICEcoder.cMInstances[a-1]]},getcMdiffInstance:function(a){return ICEcoder.content.contentWindow[(isNaN(a)?"new"==a||"new"!=a&&0<ICEcoder.openFiles.length?"cM"+ICEcoder.cMInstances[ICEcoder.selectedTab-1]:"cM1":"cM"+ICEcoder.cMInstances[a-1])+"diff"]},getMouseXY:function(a,b){ICEcoder.mouseX=a.pageX?a.pageX:a.clientX+document.body.scrollLeft;ICEcoder.mouseY=a.pageY?a.pageY:a.clientY+document.body.scrollTop;ICEcoder.area=b;"top"!=b&&(ICEcoder.mouseY+=70);"editor"==b&&(ICEcoder.mouseX+=
ICEcoder.filesW);ICEcoder.dragCursorTest();62<ICEcoder.mouseY&&ICEcoder.setTabWidths()},dragCursorTest:function(){var a;var b=ICEcoder.mouseX-ICEcoder.diffStartX;!1!==ICEcoder.draggingTab&&ICEcoder.diffStartX&&(-10>=b||10<=b)&&ICEcoder.mouseX>parseInt(ICEcoder.files.style.width,10)&&(ICEcoder.tabDragMouseX=ICEcoder.mouseX-parseInt(ICEcoder.files.style.width,10)-ICEcoder.tabDragMouseXStart,ICEcoder.tabDragMove());if(ICEcoder.ready&&(ICEcoder.mouseDown||(ICEcoder.draggingFilesW=!1),b=!ICEcoder.draggingTab&&
(ICEcoder.mouseX>ICEcoder.filesW-7&&ICEcoder.mouseX<ICEcoder.filesW+7||ICEcoder.draggingFilesW)?"w-resize":"auto",ICEcoder.content.contentWindow.document&&ICEcoder.filesFrame.contentWindow)){document.body.style.cursor=b;if(a=ICEcoder.content.contentWindow.document.body)a.style.cursor=b;if(a=ICEcoder.filesFrame.contentWindow.document.body)a.style.cursor=b}},serverMessage:function(a){var b=get("serverMessage");a?(b.innerHTML=ICEcoder.xssClean(a).replace(/&lt;b&gt;/g,"<b>").replace(/&lt;\/b&gt;/g,"</b>").replace(/&lt;br&gt;/g,
"<br>"),b.style.left="0"):setTimeout(function(){b.style.left="2000px"},200);b.style.opacity=a?1:0},cssColorPreview:function(){var a,b;var c=ICEcoder.getcMInstance();var d=ICEcoder.getcMdiffInstance();if(c=-1<ICEcoder.editorFocusInstance.indexOf("diff")?d:c){d=c.getLine(c.getCursor().line);for(a=/(#[\da-f]{3}(?:[\da-f]{3})?\b|\b(?:rgb|hsl)a?\([\s\d%,.-]+\)|\b[a-z]+\b)/gi;(b=a.exec(d))&&c.getCursor().ch>b.index+b[0].length;);(d=get("content").contentWindow.document.getElementById("cssColor"))&&d.parentNode.removeChild(d);
ICEcoder.codeAssist&&"CSS"==ICEcoder.caretLocType&&(d=document.createElement("div"),d.id="cssColor",d.style.position="absolute",d.style.display="block",d.style.width=d.style.height="20px",d.style.zIndex="1000",d.style.background=b?b[0]:"",d.style.cursor="pointer",d.onclick=function(){ICEcoder.showColorPicker(b[0])},""==d.style.backgroundColor&&(d.style.display="none"),get("header").appendChild(d),c.addWidget(c.getCursor(),get("cssColor"),!0))}},showColorPicker:function(a){get("blackMask").style.visibility=
"visible";get("mediaContainer").innerHTML='<div id="picker" class="picker"></div><br><br><input type="text" id="color" name="color" value="#000" class="colorValue"><input type="button" onClick="ICEcoder.insertColorValue(get(\'color\').value)" value="insert &gt;" class="insertColorValue"><br><input type="text" id="colorRGB" name="colorRGB" value="rgb(0,0,0)" class="colorValue"><input type="button" onClick="ICEcoder.insertColorValue(get(\'colorRGB\').value)" value="insert &gt;" class="insertColorValue">';
farbtastic("picker","color");a&&get("picker").farbtastic.setColor(a)},initCanvasImage:function(a){var b=get("canvasPicker").getContext("2d");var c=new Image;c.crossOrigin="Anonymous";c.src=a.src;c.onerror=function(){get("floatingContainer").style.visibility="hidden";get("canvasPickerColorInfo").style.display="none";get("canvasPickerCORSInfo").style.display="block"};c.onload=function(){get("canvasPicker").width=a.width;get("canvasPicker").height=a.height;b.drawImage(c,0,0,a.width,a.height);get("canvasPickerColorInfo").style.display=
"block";get("canvasPickerCORSInfo").style.display="none";get("canvasPicker").onmouseover=function(a){get("floatingContainer").style.visibility="visible"};get("canvasPicker").onmouseout=function(a){get("floatingContainer").style.visibility="hidden"}};document.getElementById("floatingContainer").style.backgroundSize=5*a.naturalWidth+"px "+5*a.naturalHeight+"px"},interactCanvasImage:function(a){var b,c,d,e,f,g,l,h,m,n,p,k;var r=get("canvasPicker").getContext("2d");get("canvasPicker").onmousemove=function(u){b=
u.pageX-this.offsetLeft;c=u.pageY-this.offsetTop;d=r.getImageData(b,c,1,1).data;e=d[0];f=d[1];g=d[2];l=e+","+f+","+g;h=ICEcoder.rgbToHex(e,f,g);get("rgbMouseXY").value=l;get("hexMouseXY").value="#"+h;get("hexMouseXY").style.backgroundColor=get("rgbMouseXY").style.backgroundColor="#"+h;m=128>e||128>f||128>g&&200>e&&200>f&&50<g?"#fff":"#000";get("hexMouseXY").style.color=get("rgbMouseXY").style.color=m;n=get("floatingContainer");n.style.left=ICEcoder.mouseX+20+"px";n.style.top=ICEcoder.mouseY+"px";
p=-(a.naturalWidth/a.width*b*5)+25;k=-(a.naturalHeight/a.height*c*5)+25;n.style.backgroundPosition=p+"px "+k+"px"};get("canvasPicker").onclick=function(){get("rgb").value=get("rgbMouseXY").value;get("hex").value=get("hexMouseXY").value;get("hex").style.backgroundColor=get("rgb").style.backgroundColor=get("hex").value;get("hex").style.color=get("rgb").style.color=m}},rgbToHex:function(a,b,c){return ICEcoder.toHex(a)+ICEcoder.toHex(b)+ICEcoder.toHex(c)},toHex:function(a){a=parseInt(a,10);if(isNaN(a))return"00";
a=Math.max(0,Math.min(a,255));return"0123456789abcdef".charAt((a-a%16)/16)+"0123456789abcdef".charAt(a%16)},insertColorValue:function(a){var b=ICEcoder.getcMInstance();var c=ICEcoder.getcMdiffInstance();b=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:b;c=b.getTokenAt(b.getCursor());b.replaceRange(a,{line:b.getCursor().line,ch:c.start},{line:b.getCursor().line,ch:1E6})},fMIconVis:function(a,b){var c;if(c=get(a))c.style.opacity=b},isOpen:function(a){a=a.replace(/\|/g,"/").replace(docRoot+iceRoot,
"");a=ICEcoder.openFiles.indexOf(a);return-1!=a?a:!1},startPluginIntervals:function(a,b,c,d){-1<b.indexOf("?")&&(b=b+"&csrf="+ICEcoder.csrf);ICEcoder["plugTimer"+a]=-1<["_parent","_top","_self",""].indexOf(c)?ICEcoder["plugTimer"+a]=setInterval("window.location='"+b+"'",6E4*d):0==c.indexOf("fileControl")?ICEcoder["plugTimer"+a]=setInterval(function(){ICEcoder.serverQueue("add",b);ICEcoder.serverMessage(c.split(":")[1])},6E4*d):ICEcoder["plugTimer"+a]=setInterval("window.open('"+b+"','"+c+"')",6E4*
d);ICEcoder.pluginIntervalRefs.push(a)},codeAssistToggle:function(){ICEcoder.codeAssist=!ICEcoder.codeAssist;get("codeAssistDisplay").style.backgroundPosition=ICEcoder.codeAssist?"0 0":"-16px 0";ICEcoder.cssColorPreview();ICEcoder.focus(-1<ICEcoder.editorFocusInstance.indexOf("diff")?"diff":!1);for(i=0;i<ICEcoder.cMInstances.length;i++){var a=ICEcoder.openFiles[i];a=a.split(".");a=a[a.length-1];if("js"==a||"json"==a){a=ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[i]];var b=ICEcoder.content.contentWindow["cM"+
ICEcoder.cMInstances[i]+"diff"];ICEcoder.codeAssist?(a.setOption("lint",!0),b.setOption("lint",!0)):(a.clearGutter("CodeMirror-lint-markers"),a.setOption("lint",!1),b.clearGutter("CodeMirror-lint-markers"),b.setOption("lint",!1))}}},serverQueue:function(a,b,c,d){var e,f,g;if(-1!==ICEcoder.serverQueueItems.indexOf(b))ICEcoder.serverMessage(),ICEcoder.serverQueue("del",0);else{var l=ICEcoder.getcMInstance();for(f=e=0;f<ICEcoder.serverQueueItems.length;f++)0<ICEcoder.serverQueueItems[f].indexOf("action=save")&&
e++;e++;if("add"==a)ICEcoder.serverQueueItems.push(b),0<b.indexOf("action=save")&&(f=document.createElement("textarea"),f.setAttribute("id","saveTemp"+e),document.body.appendChild(f),0<b.indexOf("saveType=saveAs")||0<b.indexOf("fileVersion=undefined")?get("saveTemp"+e).value=l.getValue():get("saveTemp"+e).value=d);else if("del"==a){if(ICEcoder.serverQueueItems[0]&&0<ICEcoder.serverQueueItems[0].indexOf("action=save")){d=e-1;for(f=1;f<d;f++)get("saveTemp"+f).value=get("saveTemp"+(f+1)).value;d=get("saveTemp"+
d);d.parentNode.removeChild(d)}ICEcoder.serverQueueItems.splice(0,1)}if("del"==a&&1<=ICEcoder.serverQueueItems.length||1==ICEcoder.serverQueueItems.length)if(b&&-1==b.indexOf("saveFiles=")&&-1==b.indexOf("action=load")){var h=ICEcoder.xhrObj();h.onreadystatechange=function(){4==h.readyState&&(200==h.status?(g=JSON.parse(h.responseText),g.action.timeEnd=(new Date).getTime(),g.action.timeTaken=g.action.timeEnd-g.action.timeStart,0<=["raw","both"].indexOf(ICEcoder.fileDirResOutput)&&console.log(h.responseText),
0<=["object","both"].indexOf(ICEcoder.fileDirResOutput)&&console.log(g),g.status.error?(ICEcoder.message(g.status.errorMsg),console.log("ICEcoder error info for your request..."),console.log(g),ICEcoder.serverMessage(),ICEcoder.serverQueue("del",0)):eval(g.action.doNext)):(ICEcoder.message(t["Sorry there was..."]),console.log("ICEcoder error info for your request..."),console.log(g),ICEcoder.serverMessage(),ICEcoder.serverQueue("del",0)))};h.open("POST",ICEcoder.serverQueueItems[0],!0);h.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");a=(new Date).getTime();0<b.indexOf("action=saveAs")?h.send("timeStart="+a+"&file="+c+"&contents="+encodeURIComponent(document.getElementById("saveTemp1").value)):0<b.indexOf("action=save")?h.send("timeStart="+a+"&file="+c+"&changes="+encodeURIComponent(document.getElementById("saveTemp1").value)):h.send("timeStart="+a+"&file="+c)}else setTimeout(function(){"undefined"!=typeof ICEcoder.serverQueueItems[0]&&(ICEcoder.filesFrame.contentWindow.frames.fileControl.location.href=
ICEcoder.serverQueueItems[0])},1)}},cancelAllActions:function(){window.stop();0<ICEcoder.serverQueueItems.length&&ICEcoder.serverQueueItems.splice(1,ICEcoder.serverQueueItems.length);ICEcoder.showHide("hide",get("loadingMask"));ICEcoder.serverMessage('<b style="color: #d00">'+t["Cancelled tasks"]+"</b>");setTimeout(function(){ICEcoder.serverMessage()},2E3)},setPreviousFiles:function(){var a=ICEcoder.openFiles.join(",").replace(/\//g,"|").replace(/(\|\[NEW\])|(,\|\[NEW\])/g,"").replace(/(^,)|(,$)/g,
"");""==a&&(a="CLEAR");ICEcoder.serverQueue("add",iceLoc+"/lib/settings.php?saveFiles="+encodeURIComponent(a)+"&csrf="+ICEcoder.csrf);ICEcoder.updateLast10List(a)},updateLast10List:function(a){a=a.split(",");for(var b=0;b<a.length;b++)if("CLEAR"!=a[b]){var c='<li class="pft-file ext-'+a[b].substring(a[b].lastIndexOf(".")+1)+'" style="margin-left: -21px"><a style="cursor:pointer" onclick="ICEcoder.openFile(\''+a[b].replace(/\|/g,"/")+"')\">"+a[b].replace(/\|/g,"/")+"</a></li>\n";var d=ICEcoder.content.contentWindow.document.getElementById("last10Files");
if(-1==d.innerHTML.indexOf(c)){var e=d.innerHTML.split("\n");(10<=e.length||'<div style="display: inline-block; margin-left: -39px; margin-top: -4px">[none]</div><br><br>'==e[0]||""==e[e.length-1])&&e.pop();d.innerHTML=c+e.join("\n")}}},autoOpenFiles:function(){if(0<ICEcoder.previousFiles.length&&ICEcoder.ask(t["Open previous files"]+"\n\n"+ICEcoder.previousFiles.length+" files:\n"+ICEcoder.previousFiles.join("\n").replace(/\|/g,"/").replace(new RegExp(docRoot+iceRoot,"gi"),"")))for(var a=0;a<ICEcoder.previousFiles.length;a++)ICEcoder.thisFileFolderLink=
ICEcoder.previousFiles[a].replace("|","/"),ICEcoder.thisFileFolderType="file",ICEcoder.openFile()},settingsScreen:function(a){a||(get("mediaContainer").innerHTML='<iframe src="'+iceLoc+'/lib/settings-screen.php" class="whiteGlow" style="width: 970px; height: 610px"></iframe>');ICEcoder.showHide(a?"hide":"show",get("blackMask"))},helpScreen:function(){get("mediaContainer").innerHTML='<iframe src="'+iceLoc+'/lib/help.php" class="whiteGlow" style="width: 840px; height: 485px"></iframe>';ICEcoder.showHide("show",
get("blackMask"))},versionsScreen:function(a,b){get("mediaContainer").innerHTML='<iframe src="'+iceLoc+"/lib/backup-versions.php?file="+a+"&csrf="+ICEcoder.csrf+'" class="whiteGlow" style="width: 970px; height: 640px"></iframe>';ICEcoder.showHide("show",get("blackMask"))},showManual:function(a,b){var c=b?"#"+b:"";get("mediaContainer").innerHTML='<iframe src="'+iceLoc+"/https://icecoder.net/manual?version="+a+c+'" class="whiteGlow" style="width: 800px; height: 470px"></iframe>';ICEcoder.showHide("show",
get("blackMask"))},propertiesScreen:function(a){get("mediaContainer").innerHTML='<iframe src="'+iceLoc+"/lib/properties.php?fileName="+a.replace(/\//g,"|")+"&csrf="+ICEcoder.csrf+'" class="whiteGlow" style="width: 660px; height: 330px"></iframe>';ICEcoder.showHide("show",get("blackMask"))},autoLogoutWarningScreen:function(){get("mediaContainer").innerHTML='<iframe src="'+iceLoc+'/lib/auto-logout-warning.php" id="autoLogoutIFrame" class="whiteGlow" style="width: 400px; height: 160px"></iframe>';ICEcoder.showHide("show",
get("blackMask"))},pluginsManager:function(){get("mediaContainer").innerHTML='<iframe src="'+iceLoc+'/lib/plugins-manager.php" class="whiteGlow" style="width: 800px; height: 450px"></iframe>';ICEcoder.showHide("show",get("blackMask"))},goLocalhostRoot:function(){ICEcoder.filesFrame.contentWindow.frames.fileControl.location.href=iceLoc+"/lib/go-localhost-root.php"},githubAction:function(a){get("mediaContainer").innerHTML='<iframe src="'+iceLoc+"/lib/github.php?action="+a+"&selectedFiles="+ICEcoder.selectedFiles.join(";")+
"&csrf="+ICEcoder.csrf+'" class="whiteGlow" style="width: 340px; height: 340px"></iframe>';ICEcoder.showHide("show",get("blackMask"))},githubTokenAsk:function(a){if(githubAuthToken=ICEcoder.getInput(t["Please enter your..."],""))ICEcoder.filesFrame.contentWindow.frames.fileControl.location.href=iceLoc+"/lib/github.php?action=auth&token="+githubAuthToken+"&goNext="+a+"&csrf="+ICEcoder.csrf,githubAuthToken=""},showHideGithubNav:function(a){get("githubNav").style.display="show"==a?"block":"none";get("fileNav").style.display=
"show"==a?"none":"block"},githubManager:function(){ICEcoder.githubAuthTokenSet?(get("mediaContainer").innerHTML='<iframe src="'+iceLoc+'/lib/github-manager.php" class="whiteGlow" style="width: 660px; height: 450px"></iframe>',ICEcoder.showHide("show",get("blackMask"))):ICEcoder.githubTokenAsk("showManager")},githubDiffToggle:function(){if(!ICEcoder.githubAuthTokenSet)ICEcoder.githubTokenAsk("loadFiles");else if(ICEcoder.githubDiff||ICEcoder.ask(t["This will compare..."])){ICEcoder.githubDiff=!ICEcoder.githubDiff;
var a=ICEcoder.githubDiff?"true":"false";ICEcoder.filesFrame.src="files.php?githubDiff="+a+"&csrf="+ICEcoder.csrf}},ftpManager:function(){get("mediaContainer").innerHTML='<iframe src="'+iceLoc+'/lib/ftp-manager.php" class="whiteGlow" style="width: 660px; height: 550px"></iframe>';ICEcoder.showHide("show",get("blackMask"))},useNewSettings:function(a,b,c,d,e,f,g,l,h,m,n,p,k,r,u,x,w,y,z,A,B,C,D,E){var v=a.slice(0,a.lastIndexOf("?"));v=v.slice(v.lastIndexOf("/")+1,v.lastIndexOf("."));if(ICEcoder.theme!==
v){ICEcoder.theme=v;"editor"==ICEcoder.theme&&(ICEcoder.theme="icecoder");var q=document.createElement("link");q.setAttribute("rel","stylesheet");q.setAttribute("type","text/css");q.setAttribute("href",a);ICEcoder.content.contentWindow.document.getElementsByTagName("head")[0].appendChild(q);q=document.createElement("link");q.setAttribute("rel","stylesheet");q.setAttribute("type","text/css");q.setAttribute("href",a);document.getElementsByTagName("head")[0].appendChild(q);q=-1<"3024-day base16-light eclipse elegant mdn-like neat neo paraiso-light solarized the-matrix xq-light".split(" ").indexOf(ICEcoder.theme)?
"#ccc":-1<"3024-night blackboard colorforth liquibyte night tomorrow-night-bright tomorrow-night-eighties vibrant-ink".split(" ").indexOf(ICEcoder.theme)?"#888":"#000";ICEcoder.switchTab(ICEcoder.selectedTab)}b!=ICEcoder.codeAssist&&(get("codeAssist").checked=b,ICEcoder.codeAssistToggle());c!=ICEcoder.lockedNav&&(ICEcoder.lockUnlockNav(),ICEcoder.changeFilesW(c?"expand":"contract"),ICEcoder.hideFileMenu());a=document.styleSheets[0];b=a.rules?"rules":"cssRules";a[b][0].style.fontSize=g;a=ICEcoder.filesFrame.contentWindow.document.styleSheets[3];
b=a.rules?"rules":"cssRules";a[b][0].style.fontSize=g;a=ICEcoder.content.contentWindow.document.styleSheets[6];b=a.rules?"rules":"cssRules";a[b][0].style.fontSize=g;a[b][4].style["border-left-width"]=f?"1px":"0";a[b][4].style["margin-left"]=f?"-1px":"0";a[b][2].style.cssText="background-color: "+q+" !important";ICEcoder.lineWrapping=l;ICEcoder.lineNumbers=h;ICEcoder.showTrailingSpace=m;ICEcoder.matchBrackets=n;ICEcoder.autoCloseTags=p;ICEcoder.autoCloseBrackets=k;ICEcoder.indentWithTabs=r;ICEcoder.indentSize=
x;ICEcoder.indentAuto=u;for(f=0;f<ICEcoder.cMInstances.length;f++)ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]].setOption("lineWrapping",ICEcoder.lineWrapping),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]].setOption("lineNumbers",ICEcoder.lineNumbers),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]].setOption("showTrailingSpace",ICEcoder.showTrailingSpace),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]].setOption("matchBrackets",ICEcoder.matchBrackets),
ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]].setOption("autoCloseTags",ICEcoder.autoCloseTags),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]].setOption("autoCloseBrackets",ICEcoder.autoCloseBrackets),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]].setOption("indentWithTabs",ICEcoder.indentWithTabs),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]].setOption("indentUnit",ICEcoder.indentSize),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]].setOption("tabSize",
ICEcoder.indentSize),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]].refresh(),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]+"diff"].setOption("lineWrapping",ICEcoder.lineWrapping),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]+"diff"].setOption("lineNumbers",ICEcoder.lineNumbers),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]+"diff"].setOption("showTrailingSpace",ICEcoder.showTrailingSpace),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]+
"diff"].setOption("matchBrackets",ICEcoder.matchBrackets),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]+"diff"].setOption("autoCloseTags",ICEcoder.autoCloseTags),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]+"diff"].setOption("autoCloseBrackets",ICEcoder.autoCloseBrackets),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]+"diff"].setOption("indentWithTabs",ICEcoder.indentWithTabs),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]+"diff"].setOption("indentUnit",
ICEcoder.indentSize),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]+"diff"].setOption("tabSize",ICEcoder.indentSize),ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[f]+"diff"].refresh();d!=ICEcoder.tagWrapperCommand&&(ICEcoder.tagWrapperCommand=d);e!=ICEcoder.autoComplete&&(ICEcoder.autoComplete=e);get("plugins").style.left="left"==w?"0":"auto";get("plugins").style.right="right"==w?"0":"auto";ICEcoder.bugFilePaths=y;ICEcoder.bugFileCheckTimer=z;ICEcoder.bugFileMaxLines=A;""!=
ICEcoder.bugFilePaths[0]?ICEcoder.startBugChecking():"undefined"!=typeof ICEcoder.bugFileCheckInt&&clearInterval(ICEcoder.bugFileCheckInt);ICEcoder.splitPane&&ICEcoder.updateDiffs();ICEcoder.githubAuthTokenSet=B;ICEcoder.updateDiffOnSave=C;ICEcoder.autoLogoutMins=D;E&&ICEcoder.refreshFileManager()},updateResultsDisplay:function(a){ICEcoder.findReplace(get("find").value,!0,!1);get("results").style.display="show"==a?"inline-block":"none"},fullScreenSwitcher:function(){"undefined"!=typeof document.cancelFullScreen?
document.fullScreen?document.cancelFullScreen():document.body.requestFullScreen():"undefined"!=typeof document.mozCancelFullScreen?document.mozFullScreen?document.mozCancelFullScreen():document.body.mozRequestFullScreen():"undefined"!=typeof document.webkitCancelFullScreen&&(document.webkitIsFullScreen?document.webkitCancelFullScreen():document.body.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT))},zipIt:function(a){a=a.replace(/\//g,"|");ICEcoder.filesFrame.contentWindow.frames.fileControl.location.href=
"plugins/zip-it/index.php?zip="+a+"&csrf="+ICEcoder.csrf},downloadFile:function(a){a=a.replace(/\//g,"|");ICEcoder.filesFrame.contentWindow.frames.fileControl.location.href=iceLoc+"/lib/download.php?file="+a+"&csrf="+ICEcoder.csrf},chmod:function(a,b){a=a.replace(iceRoot,"");ICEcoder.showHide("hide",get("blackMask"));ICEcoder.serverQueue("add",iceLoc+"/lib/file-control-xhr.php?action=perms&perms="+b+"&csrf="+ICEcoder.csrf,encodeURIComponent(a));ICEcoder.serverMessage("<b>chMod "+b+" on </b><br>"+
a.replace(/\|/g,"/"))},openPreviewWindow:function(){if(0<ICEcoder.openFiles.length){var a=ICEcoder.openFiles[ICEcoder.selectedTab-1];var b=a.substr(a.lastIndexOf("/")+1);var c=b.substr(b.lastIndexOf(".")+1);b=ICEcoder.getcMInstance();var d=ICEcoder.getcMdiffInstance();var e=-1<ICEcoder.editorFocusInstance.indexOf("diff")?d:b;ICEcoder.previewWindowLoading=!0;ICEcoder.previewWindow=window.open(a,"previewWindow",500,500);-1<["md"].indexOf(c)?ICEcoder.previewWindow.onload=function(){ICEcoder.previewWindowLoading=
!1;ICEcoder.previewWindow.document.documentElement.innerHTML=mmd(e.getValue())}:ICEcoder.previewWindow.onload=function(){ICEcoder.previewWindowLoading=!1;try{ICEcoder.doPesticide()}catch(f){}try{ICEcoder.doStatsJS("open")}catch(f){}try{ICEcoder.doResponsive()}catch(f){}}}},resetAutoLogoutTimer:function(){1<ICEcoder.autoLogoutMins&&ICEcoder.autoLogoutTimer>60*ICEcoder.autoLogoutMins-60&&ICEcoder.showHide("hide",get("blackMask"));ICEcoder.autoLogoutTimer=0},logout:function(a){window.location=window.location+
"?logout&"+(a?"type="+a+"&":"")+"csrf="+ICEcoder.csrf},outputMsg:function(a){ICEcoder.output.innerHTML+=a+"<br>"},message:function(a){alert(a)},ask:function(a){return confirm(a)},getInput:function(a,b){return prompt(a,b)},dataMessage:function(a){var b=ICEcoder.content.contentWindow.document.getElementById("dataMessage");b.style.display="block";b.innerHTML=a},update:function(){confirm(t["Please note for..."])?(ICEcoder.showHide("show",get("loadingMask")),window.location=iceLoc+"/lib/updater.php"):
window.open("https://icecoder.net")},updated:function(){get("blackMask").style.visibility="visible";get("mediaContainer").innerHTML='<h1 style="color: #fff; cursor: default">Thanks for updating to v'+ICEcoder.versionNo+'!</h1><h2 style="color: #888; cursor: default">Click anywhere to continue using ICEcoder...</h2>'},xhrObj:function(){try{return new XMLHttpRequest}catch(a){}try{return new ActiveXObject("Msxml3.XMLHTTP")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(a){}try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(a){}return null},
openBugReport:function(){"off"==ICEcoder.bugReportStatus&&ICEcoder.message(t["You can start..."]);"error"==ICEcoder.bugReportStatus&&ICEcoder.message(t["Error cannot find..."]);"ok"==ICEcoder.bugReportStatus&&ICEcoder.message(t["No new errors..."]);if("bugs"==ICEcoder.bugReportStatus){var a=ICEcoder.openFiles.indexOf(ICEcoder.bugReportPath.replace(/\|/g,"/"));-1<a&&ICEcoder.closeTab(a+1,"dontSetPV","dontAsk");ICEcoder.openFile(ICEcoder.bugReportPath);ICEcoder.bugFilesSizesSeen=ICEcoder.bugFilesSizesActual}},
startBugChecking:function(){var a;0!==ICEcoder.bugFileCheckTimer?("undefined"!=typeof ICEcoder.bugFileCheckInt&&clearInterval(ICEcoder.bugFileCheckInt),ICEcoder.bugFilesSizesSeen=[],ICEcoder.bugFileCheckInt=setInterval(function(){a=iceLoc+"/lib/bug-files-check.php?";a+="files="+(""!==ICEcoder.bugFilePaths[0]?ICEcoder.bugFilePaths.join():"null").replace(/\//g,"|");a+="&filesSizesSeen=";if(ICEcoder.bugFilesSizesSeen.length!=ICEcoder.bugFilePaths.length)for(var b=0;b<ICEcoder.bugFilePaths.length;b++)ICEcoder.bugFilesSizesSeen[b]=
"null";a+=ICEcoder.bugFilesSizesSeen.join();a+="&maxLines="+ICEcoder.bugFileMaxLines;a+="&csrf="+ICEcoder.csrf;var c=ICEcoder.xhrObj();c.onreadystatechange=function(){if(4==c.readyState&&200==c.status){var a=JSON.parse(c.responseText);get("bugIcon").style.backgroundPosition="off"==a.result?"0 0":"ok"==a.result?"-32px 0":"bugs"==a.result?"-48px 0":"-16px 0";ICEcoder.bugReportStatus=a.result;"null"==ICEcoder.bugFilesSizesSeen[0]&&(ICEcoder.bugFilesSizesSeen=a.filesSizesSeen);ICEcoder.bugFilesSizesActual=
a.filesSizesSeen;ICEcoder.bugReportPath=a.bugReportPath}};c.open("GET",a,!0);c.send()},parseInt(1E3*ICEcoder.bugFileCheckTimer,10)),ICEcoder.bugReportStatus="ok"):"undefined"!=typeof ICEcoder.bugFileCheckInt&&clearInterval(ICEcoder.bugFileCheckInt)},xssClean:function(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")},printCode:function(){var a=ICEcoder.getcMInstance();var b=ICEcoder.getcMdiffInstance();a=-1<ICEcoder.editorFocusInstance.indexOf("diff")?
b:a;b=ICEcoder.filesFrame.contentWindow.frames.fileControl;b.window.document.body.innerHTML='<!DOCTYPE html><head><title>ICEcoder code output</title></head><body><pre style="white-space: pre-wrap">'+ICEcoder.xssClean(a.getValue())+"</pre></body></html>";b.focus();b.print();a.focus()},indicateChanges:function(){if(!ICEcoder.loadingFile){var a="ICEcoder v "+ICEcoder.versionNo;for(var b=1;b<=ICEcoder.savedPoints.length;b++)if(ICEcoder.savedPoints[b-1]!=ICEcoder.getcMInstance(b).changeGeneration()){a+=
" \u2744";break}document.title=a}},switchTab:function(a,b){a!==ICEcoder.selectedTab&&(ICEcoder.prevTab=ICEcoder.selectedTab);ICEcoder.selectedTab=a;var c=ICEcoder.getcMInstance();var d=ICEcoder.getcMdiffInstance();if(-1<ICEcoder.editorFocusInstance.indexOf("diff")?d:c){ICEcoder.switchMode();for(var e=0;e<ICEcoder.cMInstances.length;e++)ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[e]].getWrapperElement().style.display="none",ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[e]+"diff"].getWrapperElement().style.display=
"none";c.setOption("theme",ICEcoder.theme);d.setOption("theme",ICEcoder.theme+" diff");c.getWrapperElement().style.display="block";d.getWrapperElement().style.display="block";ICEcoder.splitPane&&ICEcoder.updateDiffs();b||setTimeout(function(){ICEcoder.focus()},4);c.refresh();d.refresh();ICEcoder.updateFunctionClassList();"undefined"!=typeof doMiniNav&&clearTimeout(doMiniNav);doMiniNav=setTimeout(function(){ICEcoder.setMinimap()},ICEcoder.loadingFile?0:100);get("docExplorer").style.display="block";
get("docExplorer").style.right="-400px";ICEcoder.highlightGitDiffs();ICEcoder.redoTabHighlight(ICEcoder.selectedTab);ICEcoder.findMode=!1;ICEcoder.findReplace(get("find").value,!0,!1);ICEcoder.updateVersionsDisplay();ICEcoder.getCaretPosition();ICEcoder.updateCharDisplay();ICEcoder.updateByteDisplay()}},newTab:function(a){ICEcoder.cMInstances.push(ICEcoder.nextcMInstance);ICEcoder.selectedTab=ICEcoder.cMInstances.length;ICEcoder.showHide("show",ICEcoder.content);ICEcoder.content.contentWindow.createNewCMInstance(ICEcoder.nextcMInstance);
ICEcoder.setLayout();ICEcoder.thisFileFolderType="file";ICEcoder.thisFileFolderLink="/[NEW]";ICEcoder.openFile();var b=ICEcoder.getcMInstance("new");ICEcoder.switchTab(ICEcoder.openFiles.length);b.removeLineClass(ICEcoder["cMActiveLinecM"+ICEcoder.cMInstances[ICEcoder.selectedTab-1]],"background");ICEcoder["cMActiveLinecM"+ICEcoder.selectedTab]=b.addLineClass(0,"background","cm-s-activeLine");ICEcoder.nextcMInstance++;a&&ICEcoder.saveFile()},createNewTab:function(a){ICEcoder.openFiles.push(ICEcoder.shortURL);
var b='<a nohref onClick="ICEcoder.closeTab(parseInt(this.parentNode.id.slice(3),10))"><img src="'+iceLoc+'/images/nav-close.gif" class="closeTab" onMouseOver="prevBG=this.style.backgroundColor;this.style.backgroundColor=\'#333\'; ICEcoder.overCloseLink=true" onMouseOut="this.style.backgroundColor=prevBG; ICEcoder.overCloseLink=false"></a>';get("tab"+ICEcoder.openFiles.length).style.display="inline-block";var c=ICEcoder.openFiles[ICEcoder.openFiles.length-1];get("tab"+ICEcoder.openFiles.length).innerHTML=
b+" "+c.slice(c.lastIndexOf("/")).replace(/\//,"");get("tab"+ICEcoder.openFiles.length).title="/"+ICEcoder.openFiles[ICEcoder.openFiles.length-1].replace(/\//,"");ICEcoder.setTabWidths();ICEcoder.redoTabHighlight(ICEcoder.openFiles.length);ICEcoder.selectedTab=ICEcoder.openFiles.length;ICEcoder.savedPoints.push(0);ICEcoder.savedContents.push("");a||ICEcoder.setPreviousFiles()},nextTab:function(){ICEcoder.switchTab(ICEcoder.selectedTab+1<=ICEcoder.openFiles.length?ICEcoder.selectedTab+1:1,"noFocus")},
previousTab:function(){ICEcoder.switchTab(1<=ICEcoder.selectedTab-1?ICEcoder.selectedTab-1:ICEcoder.openFiles.length,"noFocus")},renameTab:function(a,b){ICEcoder.openFiles[a-1]=b;var c='<a nohref onClick="ICEcoder.closeTab(parseInt(this.parentNode.id.slice(3),10))"><img src="'+iceLoc+'/images/nav-close.gif" class="closeTab" onMouseOver="prevBG=this.style.backgroundColor;this.style.backgroundColor=\'#333\'; ICEcoder.overCloseLink=true" onMouseOut="this.style.backgroundColor=prevBG; ICEcoder.overCloseLink=false"></a>';
var d=ICEcoder.openFiles[a-1];get("tab"+a).innerHTML=c+" "+d.slice(d.lastIndexOf("/")).replace(/\//,"");get("tab"+a).title="/"+ICEcoder.openFiles[a-1].replace(/\//,"")},redoTabHighlight:function(a){for(var b,c,d=1;d<=ICEcoder.savedPoints.length;d++)get("tab"+d).childNodes[0]&&(get("tab"+d).childNodes[0].childNodes[0].style.backgroundColor=ICEcoder.savedPoints[d-1]!=ICEcoder.getcMInstance(d).changeGeneration()?"#b00":"transparent"),b=d==a?ICEcoder.tabFGselected:ICEcoder.tabFGnormalTab,"undefined"!=
typeof ICEcoder.openFiles[d-1]&&"/[NEW]"!=ICEcoder.openFiles[d-1]&&(c=ICEcoder.filesFrame.contentWindow.document.getElementById(ICEcoder.openFiles[d-1].replace(/\//g,"|")))&&(c.style.backgroundColor=d==a?ICEcoder.tabBGcurrent:ICEcoder.tabBGopen,c.style.color=d==a?ICEcoder.tabFGcurrent:ICEcoder.tabFGopenFile),get("tab"+d).style.color=b,get("tab"+d).style.background=d==a?ICEcoder.tabBGcurrent:ICEcoder.tabBGopen},closeTab:function(a,b,c){a||(a=ICEcoder.selectedTab);ICEcoder.getcMInstance();ICEcoder.getcMdiffInstance();
var d=!0;c||ICEcoder.savedPoints[a-1]==ICEcoder.getcMInstance(a).changeGeneration()||(d=ICEcoder.ask(t["You have made..."]));if(d){c=ICEcoder.openFiles[a-1];for(d=a;d<ICEcoder.openFiles.length;d++)get("tab"+d).innerHTML=get("tab"+(d+1)).innerHTML,get("tab"+d).title=get("tab"+(d+1)).title,ICEcoder.openFiles[d-1]=ICEcoder.openFiles[d],ICEcoder.openFileMDTs[d-1]=ICEcoder.openFileMDTs[d],ICEcoder.openFileVersions[d-1]=ICEcoder.openFileVersions[d];ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[a-
1]].getWrapperElement().style.display="none";ICEcoder.content.contentWindow["cM"+ICEcoder.cMInstances[a-1]+"diff"].getWrapperElement().style.display="none";ICEcoder.cMInstances.splice(a-1,1);get("tab"+ICEcoder.openFiles.length).style.display="none";get("tab"+ICEcoder.openFiles.length).innerHTML="";get("tab"+ICEcoder.openFiles.length).title="";ICEcoder.openFiles.pop();ICEcoder.openFileMDTs.pop();ICEcoder.openFileVersions.pop();ICEcoder.selectedTab==a&&(0<ICEcoder.openFiles.length?--ICEcoder.selectedTab:
ICEcoder.selectedTab=0);0<ICEcoder.openFiles.length&&0==ICEcoder.selectedTab&&(ICEcoder.selectedTab=1);0==ICEcoder.openFiles.length?(ICEcoder.fMIconVis("fMView",.3),get("docExplorer").style.display="none"):(ICEcoder.switchMode(),ICEcoder.switchTab(ICEcoder.selectedTab));ICEcoder.savedPoints.splice(a-1,1);ICEcoder.savedContents.splice(a-1,1);ICEcoder.redoTabHighlight(ICEcoder.selectedTab);ICEcoder.selectDeselectFile("deselect",ICEcoder.filesFrame.contentWindow.document.getElementById(c.replace(/\//g,
"|")));b||ICEcoder.setPreviousFiles();ICEcoder.updateVersionsDisplay();ICEcoder.indicateChanges()}ICEcoder.canSwitchTabs=!1;ICEcoder.setTabWidths("posOnlyNewTab");setTimeout(function(){ICEcoder.canSwitchTabs=!0},100)},closeAllTabs:function(){if(0<ICEcoder.cMInstances.length&&ICEcoder.ask(t["Close all tabs"]))for(var a=ICEcoder.cMInstances.length;0<a;a--)ICEcoder.closeTab(a,1<a?!0:!1);ICEcoder.indicateChanges()},setTabWidths:function(a){if(ICEcoder.ready){var b=parseInt(ICEcoder.content.style.width,
10)-53-22-10;var c=b/ICEcoder.openFiles.length-18;var d=-18;var e=53;var f=0;ICEcoder.tabLeftPos=[];for(var g=0;g<ICEcoder.openFiles.length;g++)a&&(g=ICEcoder.openFiles.length),d=168*ICEcoder.openFiles.length>b?parseInt(c*g,10)-parseInt(c*(g-1),10):150,e=0==g?53:parseInt(get("tab"+g).style.left,10),f=0==g?0:parseInt(get("tab"+g).style.width,10)+18,a?d=-18:(get("tab"+(g+1)).style.left=e+f+"px",get("tab"+(g+1)).style.width=d+"px"),ICEcoder.tabLeftPos.push(e+f);get("newTab").style.left=e+f+d+18+"px"}},
tabDragStart:function(a){ICEcoder.draggingTab=a;ICEcoder.diffStartX=ICEcoder.mouseX;ICEcoder.tabDragMouseXStart=(ICEcoder.mouseX-(parseInt(ICEcoder.files.style.width,10)+53+18))%150;get("tab"+a).style.zIndex=2;for(var b=1;b<=ICEcoder.openFiles.length;b++)get("tab"+b).className=b!==a?"tab tabSlide":"tab tabDrag"},tabDragMove:function(){var a=parseInt(get("tab"+ICEcoder.openFiles.length).style.width,10)+18;ICEcoder.thisLeft=a=53<=ICEcoder.tabDragMouseX?ICEcoder.tabDragMouseX<=parseInt(get("newTab").style.left,
10)-a?ICEcoder.tabDragMouseX:parseInt(get("newTab").style.left,10)-a:53;get("tab"+ICEcoder.draggingTab).style.left=a+"px";ICEcoder.dragTabNo=ICEcoder.draggingTab;for(var b=1;b<=ICEcoder.openFiles.length;b++){get("tab"+b).style.opacity=b==ICEcoder.draggingTab?1:.5;var c=ICEcoder.tabLeftPos[b]?ICEcoder.tabLeftPos[b]-ICEcoder.tabLeftPos[b-1]:c;b!=ICEcoder.draggingTab&&(b<ICEcoder.draggingTab?get("tab"+b).style.left=a<=ICEcoder.tabLeftPos[b-1]?ICEcoder.tabLeftPos[b-1]+c:ICEcoder.tabLeftPos[b-1]:get("tab"+
b).style.left=a>=ICEcoder.tabLeftPos[b-1]?ICEcoder.tabLeftPos[b-1]-c:ICEcoder.tabLeftPos[b-1])}},tabDragEnd:function(){var a;ICEcoder.setTabWidths();for(var b=1;b<=ICEcoder.openFiles.length;b++)ICEcoder.thisLeft>=ICEcoder.tabLeftPos[b-1]&&(a=ICEcoder.thisLeft==ICEcoder.tabLeftPos[0]?1:ICEcoder.dragTabNo>b?b+1:b),get("tab"+b).className="tab",get("tab"+b).style.opacity=1,b!=ICEcoder.dragTabNo?get("tab"+b).style.zIndex=1:setTimeout(function(){get("tab"+b).style.zIndex=1},150);if(ICEcoder.thisLeft&&!1!==
ICEcoder.thisLeft){var c=[];for(b=1;b<=ICEcoder.openFiles.length;b++)c.push(b);c.splice(ICEcoder.dragTabNo-1,1);c.splice(a-1,0,ICEcoder.dragTabNo);ICEcoder.sortTabs(c)}ICEcoder.setTabWidths();ICEcoder.draggingTab=!1;ICEcoder.thisLeft=!1},sortTabs:function(a){var b;var c=[ICEcoder.savedPoints,ICEcoder.savedContents,ICEcoder.openFiles,ICEcoder.openFileMDTs,ICEcoder.openFileVersions,ICEcoder.cMInstances];var d=[[],[],[],[],[],[]];for(var e=0;e<c.length;e++){for(var f=0;f<c[e].length;f++)d[e].push(c[e][a[f]-
1]);c[e]=d[e]}for(e=0;e<a.length;e++)get("tab"+a[e]).id="tab"+(e+1)+".temp",ICEcoder.selectedTab==a[e]&&(b=e+1);for(e=0;e<a.length;e++)get("tab"+(e+1)+".temp").id="tab"+(e+1);get("tab"+b)&&(get("tab"+b).className="tab tabSlide");ICEcoder.savedPoints=c[0];ICEcoder.savedContents=c[1];ICEcoder.openFiles=c[2];ICEcoder.openFileMDTs=c[3];ICEcoder.openFileVersions=c[4];ICEcoder.cMInstances=c[5];ICEcoder.setTabWidths();ICEcoder.switchTab(b)},alphaTabs:function(){if(0<ICEcoder.openFiles.length){var a;var b=
[];var c=[];var d=[];for(var e=0;e<ICEcoder.openFiles.length;e++)b.push(ICEcoder.openFiles[e].slice(ICEcoder.openFiles[e].lastIndexOf("/")+1)),c.push(ICEcoder.openFiles[e]),get("tab"+(e+1)).className="tab tabSlide";for(;0<b.length;){var f=b[0];nextValueFull=c[0];for(e=a=0;e<b.length;e++)b[e]<f&&(f=b[e],nextValueFull=ICEcoder.openFiles[ICEcoder.openFiles.indexOf(c[e])],a=e);d.push(ICEcoder.openFiles.indexOf(nextValueFull)+1);b.splice(a,1);c.splice(a,1)}ICEcoder.sortTabs(d)}},interceptKeys:function(a,
b){var c;var d=b.keyCode?b.keyCode:b.which?b.which:b.charCode;ICEcoder.resetAutoLogoutTimer();ICEcoder.last5Keys||(ICEcoder.last5Keys=[]);ICEcoder.last5Keys.push(d);6==ICEcoder.last5Keys.length&&ICEcoder.last5Keys.shift();"83,78,65,75,69"==ICEcoder.last5Keys.join()&&setTimeout(function(){e=ICEcoder.getcMInstance();for(var a=0,b=e.changeGeneration();e.changeGeneration()>b-5;)e.undo(),a++;if(ICEcoder.savedPoints[ICEcoder.selectedTab-1]==e.changeGeneration())ICEcoder.startSnake();else for(b=1;b<=a;b++)e.redo()},
0);if(ICEcoder.snakePlaying)return 37==d&&(ICEcoder.snakeDir="left"),39==d&&(ICEcoder.snakeDir="right"),38==d&&(ICEcoder.snakeDir="up"),40==d&&(ICEcoder.snakeDir="down"),!1;if(224==d||91==d||93==d)ICEcoder.cmdKey=!0;if(112===d){if(ICEcoder.codeZoomedOut)return;ICEcoder.codeZoomedOut=!0;var e=ICEcoder.getcMInstance();for(d=0;d<e.lineCount();d++){var f=!0;for(c=0;c<ICEcoder.functionClassList.length;c++)ICEcoder.functionClassList[c].line==d&&(f=!1);f&&e.addLineClass(d,"wrap","code-zoomed-out")}e.refresh();
return!1}if(46==d&&"files"==a)return ICEcoder.deleteFiles(),!1;if(b.altKey)return f=b.ctrlKey||ICEcoder.cmdKey?!0:!1,"ctrl+alt"==ICEcoder.tagWrapperCommand&&f||"alt-left"==ICEcoder.tagWrapperCommand&&!f?"content"==a?68==d?(ICEcoder.tagWrapper("div"),!1):83==d?(ICEcoder.tagWrapper("span"),!1):80==d?(ICEcoder.tagWrapper("p"),!1):65==d?(ICEcoder.tagWrapper("a"),!1):49==d?(ICEcoder.tagWrapper("h1"),!1):50==d?(ICEcoder.tagWrapper("h2"),!1):51==d?(ICEcoder.tagWrapper("h3"),!1):13==d?(ICEcoder.addLineBreakAtEnd(),
!1):37==d?(ICEcoder.filesFrame.contentWindow.focus(),!1):d:37==d?(ICEcoder.filesFrame.contentWindow.focus(),!1):39==d?(ICEcoder.focus(-1<ICEcoder.editorFocusInstance.indexOf("diff")?!0:!1),!1):d:13==d?(ICEcoder.insertLineAfter(),!1):d;if(13==d&&b.shiftKey)return ICEcoder.insertLineBefore(),!1;if(70!=d&&71!=d||!b.ctrlKey&&!ICEcoder.cmdKey){if(76==d&&(b.ctrlKey||ICEcoder.cmdKey))return d=get("goToLineNo"),d.select(),get("find").focus(),d.focus(),!1;if(73==d&&(b.ctrlKey||ICEcoder.cmdKey)&&"content"==
a)return ICEcoder.searchForSelected(),!1;if(8==d&&(b.ctrlKey||ICEcoder.cmdKey))return 0!==ICEcoder.prevTab&&ICEcoder.switchTab(ICEcoder.prevTab),!1;if(39==d&&(b.ctrlKey||ICEcoder.cmdKey)&&"content"!=a)return ICEcoder.nextTab(),!1;if(37==d&&(b.ctrlKey||ICEcoder.cmdKey)&&"content"!=a)return ICEcoder.previousTab(),!1;if(38==d&&(b.ctrlKey||ICEcoder.cmdKey)&&"content"==a)return ICEcoder.moveLines("up"),!1;if(40==d&&(b.ctrlKey||ICEcoder.cmdKey)&&"content"==a)return ICEcoder.moveLines("down"),!1;if(107!=
d&&187!=d||!b.ctrlKey&&!ICEcoder.cmdKey){if(109!=d&&189!=d||!b.ctrlKey&&!ICEcoder.cmdKey){if(83==d&&(b.ctrlKey||ICEcoder.cmdKey))return b.shiftKey?ICEcoder.saveFile("saveAs"):ICEcoder.saveFile(),!1;if(13==d&&(b.ctrlKey||ICEcoder.cmdKey)&&"/[NEW]"!=ICEcoder.openFiles[ICEcoder.selectedTab-1])return ICEcoder.resetKeys(b),window.open(ICEcoder.openFiles[ICEcoder.selectedTab-1]),!1;if(13==d&&"files"==a)return b.ctrlKey||ICEcoder.cmdKey||(0==ICEcoder.selectedFiles.length&&(ICEcoder.overFileFolder("folder",
"|"),ICEcoder.selectFileFolder("init")),ICEcoder.fmAction(b,"enter")),!1;if(38!=d&&40!=d&&37!=d&&39!=d||"files"!=a)return 79==d&&(b.ctrlKey||ICEcoder.cmdKey)?(ICEcoder.openPrompt(),!1):32==d&&(b.ctrlKey||ICEcoder.cmdKey)&&"content"==a?(ICEcoder.addSnippet(),!1):74==d&&(b.ctrlKey||ICEcoder.cmdKey)&&"content"==a?(ICEcoder.jumpToDefinition(),!1):223==d&&(b.ctrlKey||ICEcoder.cmdKey)?(ICEcoder.lockUnlockNav(),ICEcoder.changeFilesW(ICEcoder.lockedNav?"expand":"contract"),!1):190==d&&(b.ctrlKey||ICEcoder.cmdKey)?
(e=ICEcoder.getcMInstance(),c=ICEcoder.getcMdiffInstance(),c=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:e,c.getCursor(),!1):27==d&&"content"==a?(e=ICEcoder.getcMInstance(),c=ICEcoder.getcMdiffInstance(),c=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:e,1<c.getSelections().length?c.execCommand("singleSelection"):ICEcoder.lineCommentToggle(),!1):27==d&&"content"!=a?(ICEcoder.cancelAllActions(),!1):d;b.ctrlKey||ICEcoder.cmdKey||(0==ICEcoder.selectedFiles.length&&(ICEcoder.overFileFolder("folder",
"|"),ICEcoder.selectFileFolder("init")),ICEcoder.fmAction(b,38==d?"up":40==d?"down":37==d?"left":"right"));return!1}"content"==a?ICEcoder.removeLines():ICEcoder.closeTab(ICEcoder.selectedTab);return!1}"content"==a?ICEcoder.duplicateLines():ICEcoder.newTab();return!1}f=get("find");e=ICEcoder.getcMInstance();c=ICEcoder.getcMdiffInstance();c=-1<ICEcoder.editorFocusInstance.indexOf("diff")?c:e;c=c.getSelections();0<c.length&&0<c[0].length&&(f.value=c[0]);f.select();get("goToLineNo").focus();f.focus();
70==d?get("findReplaceSubmit").click():ICEcoder.findReplace(document.getElementById("find").value,!1,!0,!1,"findPrevious");return!1},resetKeys:function(a){if(112==(a.keyCode?a.keyCode:a.which?a.which:a.charCode)&&ICEcoder.codeZoomedOut){a=ICEcoder.getcMInstance();for(var b=0;b<a.lineCount();b++){for(var c=!0,d=0;d<ICEcoder.functionClassList.length;d++)ICEcoder.functionClassList[d].line==b&&(c=!1);c&&a.removeLineClass(b,"wrap","code-zoomed-out")}a.refresh();a=a.getCursor();ICEcoder.goToLine(a.line+
1,a.ch,!1);ICEcoder.codeZoomedOut=!1}ICEcoder.cmdKey=!1},addSnippet:function(){var a=ICEcoder.getcMInstance();var b=ICEcoder.getcMdiffInstance();a=-1<ICEcoder.editorFocusInstance.indexOf("diff")?b:a;b=a.getCursor().line;var c=a.getLine(b).length-a.getLine(b).replace(/^\s\s*/,"").length;a=a.getLine(b).slice(c);"function"==a.slice(0,8)?ICEcoder.doSnippet("function","function VAR() {\nINDENT\tCURSOR\nINDENT}"):"if"==a.slice(0,2)?ICEcoder.doSnippet("if","if (CURSOR) {\nINDENT\t\nINDENT}"):"for"==a.slice(0,
3)&&ICEcoder.doSnippet("for","for (var i=0; i<CURSOR; i++) {\nINDENT\t\nINDENT}")},doSnippet:function(a,b){var c=ICEcoder.getcMInstance();var d=ICEcoder.getcMdiffInstance();c=-1<ICEcoder.editorFocusInstance.indexOf("diff")?d:c;d=c.getCursor().line;if(-1<c.getLine(d).indexOf(a)){var e=c.getLine(d);var f=e.indexOf(a);e=e.slice(e.indexOf(a)+a.length+1);b=b.replace(/VAR/g,e);e=c.getLine(d).slice(0,f);f=c.getLine(d).length-c.getLine(d).replace(/^\s\s*/,"").length;f=c.getLine(d).slice(0,f);b=b.replace(/INDENT/g,
f);e+=b;f=e.indexOf("CURSOR");var g=0;var l=d;for(i=0;i<e.length;i++)e.indexOf("\n",g)<e.indexOf("CURSOR")&&(g=e.indexOf("\n",g)+1,l+=1);c.replaceRange(e.replace("CURSOR",""),{line:d,ch:0},{line:d,ch:1E6});c.setCursor(l,f);ICEcoder.focus(-1<ICEcoder.editorFocusInstance.indexOf("diff")?!0:!1)}},startSnake:function(){ICEcoder.snakePlaying=!0;ICEcoder.showHide("show",get("blackMask"));get("mediaContainer").innerHTML='<span style="font-size: 14px">Let\'s play<br><img src="'+iceLoc+'/images/snake.png" alt="snake"><br><br><br>Use arrow keys to eat your code<br><br>(it returns afterwards of course) :-)</span>';
setTimeout(function(){ICEcoder.showHide("hide",get("blackMask"));get("mediaContainer").innerHTML="";ICEcoder.playSnake()},2E3)},playSnake:function(){var a=ICEcoder.getcMInstance();a.setOption("readOnly","nocursor");a.focus();ICEcoder.snakePreHistory=a.getHistory();ICEcoder.snakePreContent=a.getValue();ICEcoder.snakePreCursor=a.getCursor();a=Math.floor(50*Math.random());ICEcoder.snakePos=[[a,0],[a,-1],[a,-2],[a,-3],[a,-4]];ICEcoder.content.contentWindow.document.getElementById("game").style.display=
"block";ICEcoder.snakeDir="down";ICEcoder.doSnake();ICEcoder.snakeInt=setInterval(function(){var a=[];a[0]=ICEcoder.snakePos[0][0]+("right"==ICEcoder.snakeDir?1:"left"==ICEcoder.snakeDir?-1:0);a[1]=ICEcoder.snakePos[0][1]+("down"==ICEcoder.snakeDir?1:"up"==ICEcoder.snakeDir?-1:0);ICEcoder.snakePos.unshift(a);ICEcoder.snakePos.pop();ICEcoder.doSnake()},100)},doSnake:function(){var a;var b=ICEcoder.getcMInstance();var c=b.defaultCharWidth();var d=b.defaultTextHeight();var e=ICEcoder.content.contentWindow.document.getElementById("game").innerHTML=
"";for(a=0;a<ICEcoder.snakePos.length;a++)e+='<div style="position: absolute; diplay: inline-block; width: '+c+"px; height: "+d+"px; top: "+(ICEcoder.snakePos[a][1]*d+4)+"px; left: "+(ICEcoder.snakePos[a][0]*c+60)+'px; background: #fff"></div>';ICEcoder.content.contentWindow.document.getElementById("game").innerHTML=e;e=b.coordsChar({top:ICEcoder.snakePos[0][1]*d+4,left:ICEcoder.snakePos[0][0]*c+60});var f=b.getLine(e.line);if(ICEcoder.snakePos[0][0]-1<=f.length-2){var g="";if("\t"===f.substr(e.ch,
1))for(a=0;a<b.getOption("tabSize");a++)g+=" ";else g=" ";ICEcoder.snakePos.push([ICEcoder.snakePos[ICEcoder.snakePos.length-1][0],ICEcoder.snakePos[ICEcoder.snakePos.length-1][1]]);b.doc.replaceRange(ICEcoder.snakePos[0][0]-1==f.length-2?"":g,e,{line:e.line,ch:e.ch+1});ICEcoder.snakePos[0][0]-1==f.length-2&&b.doc.replaceRange(b.getLine(e.line).replace(/[ \t]+$/,""),{line:e.line,ch:0},{line:e.line,ch:1E6})}else 5<=ICEcoder.snakePos.length&&ICEcoder.snakePos.pop();e=!1;for(a=1;a<ICEcoder.snakePos.length;a++)ICEcoder.snakePos[a][0]==
ICEcoder.snakePos[0][0]&&ICEcoder.snakePos[a][1]==ICEcoder.snakePos[0][1]&&(e=!0);a=b.getScrollInfo();if(0>ICEcoder.snakePos[0][0]||0>ICEcoder.snakePos[0][1]||ICEcoder.snakePos[0][0]*c+60>a.clientWidth||ICEcoder.snakePos[0][1]*d+4>a.clientHeight||e)clearInterval(ICEcoder.snakeInt),ICEcoder.content.contentWindow.document.getElementById("game").style.display="none",b.setValue(ICEcoder.snakePreContent),ICEcoder.savedPoints[ICEcoder.selectedTab-1]=b.changeGeneration(),ICEcoder.savedContents[ICEcoder.selectedTab-
1]=ICEcoder.snakePreContent,b.setHistory(ICEcoder.snakePreHistory),ICEcoder.indicateChanges(),ICEcoder.redoTabHighlight(ICEcoder.selectedTab),b.setOption("readOnly",!1),b.setCursor(ICEcoder.snakePreCursor),b.focus(),ICEcoder.snakePlaying=!1}};