diff --git a/lib/client/viewer.js b/lib/client/viewer.js
index 6a476d8b..c14fcf30 100644
--- a/lib/client/viewer.js
+++ b/lib/client/viewer.js
@@ -1,215 +1,145 @@
-var CloudCommander, Util, DOM, CloudFunc, $;
-/* object contains viewer FancyBox
- * https://github.com/fancyapps/fancyBox
- */
-(function(){
- "use strict";
-
- var cloudcmd = CloudCommander,
- KeyBinding = CloudCommander.KeyBinding,
- FancyBox = {};
-
- cloudcmd.Viewer = {
- get: (function(){
- return this.FancyBox;
- })
- };
-
- /* PRIVATE FUNCTIONS */
-
- function set(){
- if(DOM.getByClass('fancybox').length)
- return;
-
- /* get all file links */
- var lA = DOM.getByTag('a', DOM.getPanel(false) ),
- lActiveA = DOM.getByTag('a', DOM.getPanel(true) ),
-
- lDblClick_f = function(pA){
- return function(){
- var lConfig = getConfig();
- lConfig.href = pA.href;
- if(pA.rel)
- $.fancybox(lConfig);
- else
- FancyBox.loadData(pA, FancyBox.onDataLoaded);
- };
- },
-
- lSetOnclick = function(pA){
- /* first two is not files nor folders*/
- for (var i = 2, n = pA.length; i < n; i++) {
-
- var lA = pA[i],
- lName = lA.title || lA.textContent;
-
- lA.className = 'fancybox';
- if(Util.checkExtension(lName, ['png','jpg', 'gif','ico']))
- lA.rel = 'gallery';
-
- lA.ondblclick = lDblClick_f(lA);
- }
- };
-
- lSetOnclick(lA);
- lSetOnclick(lActiveA);
- }
-
- /**
- * function return configureation for FancyBox open and
- * onclick (it shoud be different objects)
- */
- function getConfig(){
- return{
- /* function do her work
- * before FauncyBox shows
- */
- beforeShow : Util.retFunc( KeyBinding.unSet ),
-
- afterShow : function(){
- var lEditor = DOM.getById('CloudViewer');
- if(lEditor)
- lEditor.focus();
- },
-
- beforeClose : Util.retFunc( KeyBinding.set ),
-
- openEffect : 'none',
- closeEffect : 'none',
- autoSize : false,
- height : window.innerHeight,
- helpers : {
- overlay : {
- css : {
- 'background' : 'rgba(255, 255, 255, 0.1)'
- }
- }
- },
- padding : 0
- };
- }
-
- /**
- * function loads css and js of FancyBox
- * @pParent - this
- * @pCallBack - executes, when everything loaded
- */
- FancyBox.load = function(pCallBack){
- console.time('fancybox load');
- var lDir = cloudcmd.LIBDIRCLIENT + 'viewer/fancybox/',
- lFiles = [ lDir + 'jquery.fancybox.css',
- lDir + 'jquery.fancybox.js' ];
-
-
- DOM.anyLoadInParallel(lFiles, function(){
- console.timeEnd('fancybox load');
- pCallBack();
- })
- .cssSet({id:'viewer',
- inner : '#CloudViewer{' +
- 'font-size: 16px;' +
- 'white-space :pre' +
- '}' +
- '#CloudViewer::selection{' +
- /*
- 'background: #fe57a1;'
- 'color: #fff;'
- */
- 'background: #b3d4fc;' +
- 'text-shadow: none;' +
- '}'
- });
-
- };
-
- /**
- * function loads data an put it to pSuccess_f
- * @param pA - link to data
- * @param pSucces_f - function, thet process data (@data)
- *
- * Example: loadData('index.html', function(pData){console.log(pData)});
- */
- FancyBox.loadData = function(pA, pCallBack){
- var lLink = pA.href;
-
- /* убираем адрес хоста */
- lLink = lLink.replace(cloudcmd.HOST, '');
-
- if (lLink.indexOf(CloudFunc.NOJS) === CloudFunc.FS.length)
- lLink = Util.removeStr(lLink, CloudFunc.NOJS);
-
- DOM.getCurrentFileContent({
- url : lLink,
- error : function(){
- FancyBox.loading = false;
- },
- success : Util.retExec(pCallBack)
- });
- };
-
- FancyBox.onDataLoaded = function(pData){
- var lConfig = getConfig();
-
- /* if we got json - show it */
- if( Util.isObject(pData) )
- pData = JSON.stringify(pData, null, 4);
-
- $.fancybox('
' + pData + '
', lConfig);
-
- DOM.Images.hideLoad();
- };
-
- /**
- * function shows FancyBox
- */
- FancyBox.show = function(pCallBack){
- set();
-
- var lConfig = getConfig(),
- lResult = Util.exec(pCallBack);
-
- if(!lResult){
- var lCurrentFile = DOM.getCurrentFile(),
- lA = DOM.getByClass('fancybox', lCurrentFile)[0];
-
- if(lA){
- if(lA.rel)
- $.fancybox.open({ href : lA.href },
- lConfig);
- else
- FancyBox.loadData(lA, FancyBox.onDataLoaded);
- }
- }
- };
-
- cloudcmd.Viewer.init = function(){
- DOM.jqueryLoad( Util.retLoadOnLoad([
- FancyBox.show,
- FancyBox.load
- ]));
-
- var lView = function(){
- DOM.Images.showLoad();
- FancyBox.show( DOM.getCurrentFile() );
- };
-
- var lKeyListener = function(pEvent){
- var lF3 = cloudcmd.KEY.F3,
- lKeyBinded = KeyBinding.get(),
- lKey = pEvent.keyCode,
- lShift = pEvent.shiftKey;
-
- /* если клавиши можно обрабатывать */
- if( lKeyBinded && lKey === lF3 && lShift ){
- lView();
- pEvent.preventDefault();
- }
- };
-
- /* добавляем обработчик клавишь */
- DOM.addKeyListener(lKeyListener)
- .setButtonKey('f3', lView);
- };
-
- cloudcmd.Viewer.FancyBox = FancyBox;
+var CloudCommander, Util, DOM, CloudFunc, $;
+/* object contains viewer FancyBox
+ * https://github.com/fancyapps/fancyBox
+ */
+(function(){
+ "use strict";
+
+ var cloudcmd = CloudCommander,
+ KeyBinding = CloudCommander.KeyBinding,
+ FancyBox = {};
+
+ cloudcmd.Viewer = {
+ get: (function(){
+ return this.FancyBox;
+ })
+ };
+
+ /* PRIVATE FUNCTIONS */
+
+
+ /**
+ * function return configureation for FancyBox open and
+ * onclick (it shoud be different objects)
+ */
+ function getConfig(){
+ return{
+ /* function do her work
+ * before FauncyBox shows
+ */
+ beforeShow : function(){
+ DOM.Images.hideLoad();
+ KeyBinding.unSet();
+ },
+
+ afterShow : function(){
+ var lEditor = DOM.getById('CloudViewer');
+ if(lEditor)
+ lEditor.focus();
+ },
+
+ beforeClose : Util.retFunc( KeyBinding.set ),
+
+ openEffect : 'none',
+ closeEffect : 'none',
+ autoSize : false,
+ height : window.innerHeight,
+ helpers : {
+ overlay : {
+ css : {
+ 'background' : 'rgba(255, 255, 255, 0.1)'
+ }
+ }
+ },
+ padding : 0
+ };
+ }
+
+ /**
+ * function loads css and js of FancyBox
+ * @pParent - this
+ * @pCallBack - executes, when everything loaded
+ */
+ FancyBox.load = function(pCallBack){
+ console.time('fancybox load');
+ var lDir = cloudcmd.LIBDIRCLIENT + 'viewer/fancybox/',
+ lFiles = [ lDir + 'jquery.fancybox.css',
+ lDir + 'jquery.fancybox.js' ];
+
+
+ DOM.anyLoadInParallel(lFiles, function(){
+ console.timeEnd('fancybox load');
+ pCallBack();
+ })
+ .cssSet({id:'viewer',
+ inner : '#CloudViewer{' +
+ 'font-size: 16px;' +
+ 'white-space :pre' +
+ '}' +
+ '#CloudViewer::selection{' +
+ /*
+ 'background: #fe57a1;'
+ 'color: #fff;'
+ */
+ 'background: #b3d4fc;' +
+ 'text-shadow: none;' +
+ '}'
+ });
+
+ };
+
+
+ /**
+ * function shows FancyBox
+ */
+ FancyBox.show = function(){
+ var lConfig = getConfig(),
+ lPath = DOM.getCurrentPath();
+
+ if( Util.checkExtension(lPath, ['png','jpg', 'gif','ico']) )
+ $.fancybox.open({ href : lPath }, lConfig);
+ else{
+
+ DOM.getCurrentFileContent({
+ success : function(pData){
+ if( Util.isObject(pData) )
+ pData = JSON.stringify(pData, null, 4);
+ $.fancybox('' + pData + '
', lConfig);
+ }
+ });
+ }
+ };
+
+ cloudcmd.Viewer.init = function(){
+ DOM.jqueryLoad(
+ Util.loadOnLoad([
+ FancyBox.show,
+ FancyBox.load
+ ])
+ );
+
+ var lView = function(){
+ DOM.Images.showLoad();
+ FancyBox.show( DOM.getCurrentFile() );
+ };
+
+ var lKeyListener = function(pEvent){
+ var lF3 = cloudcmd.KEY.F3,
+ lKeyBinded = KeyBinding.get(),
+ lKey = pEvent.keyCode,
+ lShift = pEvent.shiftKey;
+
+ /* если клавиши можно обрабатывать */
+ if( lKeyBinded && lKey === lF3 && lShift ){
+ lView();
+ pEvent.preventDefault();
+ }
+ };
+
+ /* добавляем обработчик клавишь */
+ DOM.addKeyListener(lKeyListener)
+ .setButtonKey('f3', lView);
+ };
+
+ cloudcmd.Viewer.FancyBox = FancyBox;
})();
\ No newline at end of file