        
var dokument_folder;
var dokument_subfolder;

var DokumentFelder = Ext.data.Record.create([
	{ name: "DokumentID", type:'int' },
	{ name: "Name", type:'string' },
	{ name: "Dateigroesse", type:'string' },
	{ name: "Beschreibung", type:'string' },
	{ name: "EigenschaftenIcon", type:'string' },
	{ name: "BearbeitenIcon", type:'string' },
	{ name: "VerschiebenIcon", type:'string' },
	{ name: "DeleteIcon", type:'string' },
	{ name: "DatumUpload", type:'string' },
	{ name: "BenutzerName", type:'string' },
	{ name: "BearbeitenIcon", type:'string' }
]);
       
// Dummy
var dokumentStore = new Ext.data.GroupingStore({
	reader: new Ext.data.JsonReader({fields: DokumentFelder}),
  	proxy: new Ext.data.HttpProxy({url: 'dokument_data.php?action=showData&Folder=A'})
 }); 

var dokumentEditor_sm = new Ext.grid.CheckboxSelectionModel({
	checkOnly:true,
	listeners: {
        beforerowselect : function (sm, rowIndex, keep, rec) {
          	if (this.deselectingFlag && this.grid.enableDragDrop) {
            	this.deselectingFlag = false;
            	this.deselectRow(rowIndex);
            	return this.deselectingFlag;
          	}
	        return keep;
	    }
	}, 
		onMouseDown : function(e, t) {
        /* 
           * If you want make selections only by checking the checker box,
           add "&& t.className == 'x-grid3-row-checker'" to next if statement

           * If you want to make selection only with Ctrl key pressed, add
              "&& e.ctrlKey" to next if statement
        */
        if(e.button === 0 ){ 
            e.stopEvent();
            var row = e.getTarget('.x-grid3-row');
            if(row){
                var index = row.rowIndex;
                if(this.isSelected(index)){
                    if (!this.grid.enableDragDrop)
                      this.deselectRow(index);
                    else
                      this.deselectingFlag = true;
                }else{
                    this.selectRow(index, true);
                }
            }
        }
    }
});
     
function reloadDokumentSize() {
    Ext.Ajax.request({
        url:'dokument_data.php?action=getSize',
        success:function(response, action) {
			var obj = Ext.decode(response.responseText);
			if (version == PREMIUM_VERSION)
				Ext.getCmp("dokumentEditorStatusbar").setText(text_119 + renderGroesse(obj.size) 
				            + " " + text_120 + renderGroesse(250*1024*1024-obj.size));
			else if (version == BASIC_VERSION)
				Ext.getCmp("dokumentEditorStatusbar").setText(text_119 + renderGroesse(obj.size) 
				            + " " + text_120 + renderGroesse(1*1024*1024-obj.size));
			else
				Ext.getCmp("dokumentEditorStatusbar").setText(text_119 + renderGroesse(obj.size) 
				            + " " + text_120 + renderGroesse(100*1024*1024-obj.size));
				
        },
        failure: function(form, action) {
			var obj = Ext.decode(action.response.responseText);
			Ext.getCmp("dokumentEditorStatusbar").setText(obj.msg);
        }
    });
}

function renderIcon(value) {    
	return '<img src="' + value + '">';
}
    
function myRound(value, stellen) {
	if (stellen ==1)
		return Math.round(value*10)/10;    
	if (stellen ==2)
		return Math.round(value*100)/100;    
	if (stellen ==3)
		return Math.round(value*1000)/1000;    
	return Math.round(value);    
}
    
function renderGroesse(value) {    
	if (value == 0)
		return '0 Bytes';
	if (value < 1024)
		return '' + value + ' Bytes';
	if (value < 1024*1024)
		return '' + myRound(value/1024,1) + ' KB';
	return '' + myRound(value/1024/1024,1) + ' MB';
}

function moveDocToFolder(folder, subfolder) {
  	var s = dokumentEditor.getSelectionModel().getSelections();
    var jsonData = new Array();       
    for(var i = 0, r; r = s[i]; i++) {
        jsonData.push(r.data);
    }
    jsonData = Ext.encode(jsonData);
    Ext.Ajax.request({
        url:'dokument_data.php?action=moveToFolder&Folder='+folder+'&Subfolder='+subfolder,
        params: {data:jsonData},
        success:function(responce, action) {
            var s = dokumentEditor.getSelectionModel().getSelections();
            for(var i = 0, r; r = s[i]; i++){
                dokumentStore.remove(r);
            }
        },
        failure: function(form, action) {
          	Ext.MessageBox.alert(text_29, text_171);
        }
    });
}

Ext.ToolTip.prototype.onTargetOver =
	Ext.ToolTip.prototype.onTargetOver.createInterceptor(function(e) {
		this.baseTarget = e.getTarget();
	});

Ext.ToolTip.prototype.onMouseMove =
	Ext.ToolTip.prototype.onMouseMove.createInterceptor(function(e) {
		if (!e.within(this.baseTarget)) {
			this.onTargetOver(e);
			return false;
		}
	});


var dokumentEditor = new Ext.grid.GridPanel({
	id: 'dokumentEditor', 
	store: dokumentStore,   
	region: 'center',        
	margins: '0 5 5 5', 
	enableColumnMove:false,   
	enableDragDrop:true,
	ddGroup:'grid2tree',
	columns: [new Ext.grid.RowNumberer(),
              dokumentEditor_sm,
			 {header: '', dataIndex: 'BearbeitenIcon', width: 24, sizable:false, sortable: true, renderer:renderIcon},			 
			 {header: text_96, dataIndex: 'Name', width: 300, sizable:true, sortable: true},
			 {header: text_97, dataIndex: 'Dateigroesse', width: 60, sizable:false, sortable: true, renderer:renderGroesse},
			 {header: text_98, dataIndex: 'DatumUpload', width: 70, sizable:false, sortable: true},
			 {header: text_99, dataIndex: 'Beschreibung', width: 300, sizable:true, sortable: true},
			 {header: text_152, dataIndex: 'BenutzerName', width: 200, sizable:true, sortable: true}],
	loadMask: true,
	view: new Ext.grid.GroupingView(),
	collapsible: true,
    animCollapse: false,
    sm: dokumentEditor_sm,
    onRender: function() {
    	Ext.grid.GridPanel.prototype.onRender.apply(this, arguments);
    	this.addEvents("beforetooltipshow");
        this.tooltip = new Ext.ToolTip({
        	renderTo: Ext.getBody(),
        	target: this.view.mainBody,
        	listeners: {
        		beforeshow: function(qt) {
        			var v = this.getView();
		            var row = v.findRowIndex(qt.baseTarget);
		            var cell = v.findCellIndex(qt.baseTarget);
		            this.fireEvent("beforetooltipshow", this, row, cell);
        		},
        		scope: this
        	}
        });
    },
    tbar: [{
        iconCls: 'add',   
        text: text_100,
        handler: function() {
			dokumentUploadWindow();	
        }
    },{
        ref: '../removeBtn',
        iconCls: 'cancel',
        text: text_101,
        disabled: true,
        handler: function(){
            var msg;
            var s = dokumentEditor.getSelectionModel().getSelections();
            if (s.length == 1)
            	msg = text_113;
            else
            	msg = text_92 + s.length + text_109;
            
		    Ext.MessageBox.show({
		           title:text_49,
		           msg: msg,
		           buttons: Ext.MessageBox.YESNO,
		           icon: Ext.MessageBox.QUESTION,
		           fn: function(btn) {
						if (btn == 'yes') {
				            var jsonData = new Array();       
				            for(var i = 0, r; r = s[i]; i++) {
				                jsonData.push(r.data);
				            }
					        jsonData = Ext.encode(jsonData);
					        Ext.Ajax.request({
					            url:'dokument_data.php?action=removeRecord',
					            params: {data:jsonData},
					            success:function(responce, action) {
					                var s = dokumentEditor.getSelectionModel().getSelections();
					                for(var i = 0, r; r = s[i]; i++){
					                    dokumentStore.remove(r);
					                }
					                reloadDokumentSize();
					            },
					            failure: function(form, action) {
					              	Ext.MessageBox.alert(text_29, text_172);
					            }
					        });
						}
				   }
			});
        }
    },{      
	    ref: '../details',
        iconCls: 'details',
        text: text_104,
        disabled: true,
        handler: function() {   
		  	var record = dokumentEditor.getSelectionModel().getSelected();
			var id = record.get("DokumentID");   	
			dokumentEditWindow(id);
        }
    },
/*   	},
	    ref: '../zip',
        iconCls: 'zip',
        text: text_103,
        disabled: true,
		hidden:true,
        handler: function() {
		  	var s = dokumentEditor.getSelectionModel().getSelections();
		    var jsonData = new Array();       
		    for(var i = 0, r; r = s[i]; i++) {
		        jsonData.push(r.data);
		    }
		    jsonData = Ext.encode(jsonData);  
		
           	var redirect = 'dokument_data.php?action=downloadZip&data=' + escape(jsonData);
           	window.location = redirect;  
        }
    }, 
*/
		'->', {
	    emptyText:text_61,
	    text: 'category filter',    
		id:'filter-doc-edit',
	    xtype: 'textfield',
	    width: 150,
        listeners: {
            specialkey: function(field, e){
                if (e.getKey() == e.ENTER) {
					currentFilter = Ext.getCmp('filter-doc-edit').getValue();     
					dokumentStore = new Ext.data.GroupingStore({  
						reader: new Ext.data.JsonReader({fields: DokumentFelder}),
						proxy: new Ext.data.HttpProxy({url: 'dokument_data.php?Folder=' + dokument_folder + 
															'&Subfolder=' + dokument_subfolder +
						                                    '&action=showData&Filter=' + currentFilter })
					});
					dokumentEditor.reconfigure(dokumentStore, dokumentEditor.getColumnModel());
			   	   	dokumentEditor.store.reload();
                }
            }
        }
	},{
        iconCls: 'search',
        text: '',
        handler: function() {    
			currentFilter = Ext.getCmp('filter-doc-edit').getValue();     
			dokumentStore = new Ext.data.GroupingStore({  
				reader: new Ext.data.JsonReader({fields: DokumentFelder}),
				proxy: new Ext.data.HttpProxy({url: 'dokument_data.php?Folder=' + dokument_folder + 
												 	'&Subfolder=' + dokument_subfolder +
				                                    '&action=showData&Filter=' + currentFilter })
			});
			dokumentEditor.reconfigure(dokumentStore, dokumentEditor.getColumnModel());
	   	   	dokumentEditor.store.reload();   
        }
    }], 
    bbar: new Ext.ux.StatusBar({
        id: 'dokumentEditorStatusbar',
        defaultText: '',
        text: '',
        statusAlign: 'left'
    }),
	listeners: {
		render: function(g) {
			g.on("beforetooltipshow", function(grid, row, col) {
				if (col == 2)
					grid.tooltip.body.update(text_105);
				else
					grid.tooltip.body.update("");
			});
		},
		cellclick: function(grid, row, col, e){
	      	if(col == 2) {
				var record = dokumentStore.getAt(row);
				var id = record.get("DokumentID");   	
               	var redirect = 'dokument_data.php?action=downloadData&DokumentID='+id;
               	window.location = redirect;  
	      	}
	    }
	}
});

dokumentEditor.getSelectionModel().on('selectionchange', function(sm){
    dokumentEditor.removeBtn.setDisabled(sm.getCount() < 1);
    dokumentEditor.details.setDisabled(sm.getCount() != 1);
    //dokumentEditor.move.setDisabled(sm.getCount() < 1);
    //dokumentEditor.zip.setDisabled(sm.getCount() < 1);
});

