var adminPagesGridWindow;
var adminCreateEditPageWindow;
var pagesWindow;
var wikiimageupload;
var imagewindow;
var uploadwindow;
var wikifileupload;
var pageTypeWindow;
var adminAnyPageWindow;
var imageGridWindow;
var adminImageDescriptionWindow;
var editImageWindow;

var actPage;
var actType;
var actPageData;
var actNode;

var TreeLoader;
var pagesTree;
var TreeRoot;

//Ext.ns('Ext.ux.form.HtmlEditor');


 // Passed via xtype into a container and with custom options:
//Ext.tip.QuickTips.init();  // enable tooltips
var HR = new Ext.panel.Panel({
    title: 'HTML Editor',
    renderTo: Ext.getBody(),
    width: 550,
    height: 250,
    frame: true,
    layout: 'fit',
    items: {
        xtype: 'htmleditor',
        enableColors: false,
        enableAlignments: false
    }
});



function newFileDownloadWindow(_comp)
{
	if(uploadwindow)
	{
		uploadwindow.hide();
		//uploadwindow.destroy();
	}
	
	if(wikifileupload)
	{
		//wikifileupload.destroy();
	}
	
	

	//if(!wikifileupload)
	{
		   var remoteProxy = new Ext.data.HttpProxy( {
		        url : 'FindFilesAll.php'
		    });
		 
		   
		    
		    var recordFields = [ 'id','originalFilename','extension','created'];
		 
		    var store1 = new Ext.data.JsonStore( {
		        proxy : remoteProxy,
		        id : 'ourRemoteStore',
		        root : 'data',
		        autoLoad : true,
		        totalProperty : 'total',
		        remoteSort : false,
		        fields : recordFields
		    });
		    
		    var filters = new Ext.ux.grid.GridFilters({
		        // encode and local configuration options defined previously for easier reuse
		        encode: false, // json encode the filter query
		        local: true,   // defaults to false (remote filtering)
		        filters: [{
		            type: 'string',
		            dataIndex: 'originalFilename'
		        },{
		            type: 'string',
		            dataIndex: 'extension'
		        },{
		            type: 'string',
		            dataIndex: 'created'
		        }
		        ]
		    });    
		 
		    var cm = new Ext.grid.ColumnModel( [ 
		    {
		    	id:'id',
		        header : 'ID',
		        sortable : true,
		        dataIndex : 'id',
		        width: 60, sortable: true
		    },
		    {
		    	id:'originalFilename',
		        header : 'Datei',
		        dataIndex : 'originalFilename',
		        width: 140, sortable: true,
				filter: 
				{
	            	type: 'string'
	            }
		    },
		    {
		    	id:'extension',
		        header : 'Endung',
		        dataIndex : 'extension',
		        width: 140, sortable: true,
				filter: 
				{
	            	type: 'string'
	            }
		    },
		    {
		    	id:'created',
		        header : 'erstellt am',
		        dataIndex : 'created',
		        width: 200, sortable: true,
				filter: 
				{
	            	type: 'string'
	            }
		    }
		    ]);
		 
		    var gridView = new Ext.grid.GridView();
		    var selModel = new Ext.grid.RowSelectionModel( {
		        singleSelect : true
		    });
		
		wikifileupload = new Ext.grid.GridPanel( {
	        title : 'Dateiauswahl',
		       height:400,
		        width : 600,
		        modal:true,
		        store : store1,
		        loadMask: {msg: 'Dateien werden geladen...'},
		        view : gridView,
		        plugins:[filters],
		        colModel : cm,
		        selModel : selModel,
		        tbar:[
		              {
		        		xtype:'label',
		        		text:'Link-Titel'
				        } ,
				        {
			        		xtype:'textfield',
			        		id:'linktitle'
				        }  
				      ],
		        listeners: 
				{
					rowdblclick: function( _grid, _rowIndex, _eventObject ) 
					{
						var selected = _grid.getSelectionModel().getSelected();
						
						var title = Ext.getCmp('linktitle').getValue();
						
						_comp.insertAtCursor('<a href="http://www.haase-boeschen.de/resources/content/' + selected.data.id + '.' + selected.data.extension +'">' + Ext.getCmp('linktitle').getValue() + '</a>');
						
						uploadwindow.hide();
					}
				}
		    });
	}
	wikifileupload.show();
	wikifileupload.focus();

	
	uploadwindow = Ext.create('Ext.window.Window', {
	 	width : 600,
        height: 400,
        modal:true,
        autoDestroy:false,
        closable:true,
	  layout: 'fit',
	  title: 'Neue Datei',
	  border:false,
	  id: Ext.id(),
	 items:[wikifileupload]
		}); 
	



	uploadwindow.show();
	uploadwindow.focus();
	uploadwindow.toFront(true);
	
}


function newImageWindowDefault(_comp)
{

	if(imagewindow)
	{
		imagewindow.hide();
	}
	
	if(wikiimageupload)
	{
		//wikiimageupload.destroy();
	}
	
	

	
		   var remoteProxy = new Ext.data.HttpProxy( {
		        url : 'findImagesAll.php'
		    });
		 
		   
		   var checky = new Ext.form.Checkbox({
		   //html:'Bild als Link'
		   });
		   
		   var laby = new Ext.form.Label({
		   text:'Bild als Link'
		   });
		   
		 var chToolbar = new Ext.Toolbar({
			items:[checky,laby],
			height: 65,
			layout:'hbox',
			width:800
	    });
		    
			Ext.define('app.gridStore', {
				 extend: 'Ext.data.Model',
				 fields: [
					'id','originalFilename','extension','created','img'
				 ]
			});

			var myStore =Ext.create('Ext.data.Store', {
				model: 'app.gridStore',
				proxy: {
					type: 'ajax',
					url: 'findImagesAll.php',  // url that will load data with respect to start and limit params
					reader: {
						type: 'json',
						root: 'data',
						//totalProperty: 'total'
					}
				},
				autoLoad:true
			});

		
		    wikiimageupload =  Ext.create('Ext.grid.Panel', {

	        title : 'Dateiauswahl',
		       height:450,
		        width : 800,
		        modal:true,
		        store : myStore,
		        loadMask: {msg: 'Dateien werden geladen...'},
		       // view : gridView,
		       // plugins:[filters],
		        //colModel : cm,
		      selType: 'cellmodel',
			    columns: [
							{xtype: 'gridcolumn',text     : 'ID', dataIndex:"id"},
							{xtype: 'gridcolumn',text     : 'Datei', dataIndex:"originalFilename"},
							{xtype: 'gridcolumn',text     : 'Endung', dataIndex:"extension"},
							{xtype: 'gridcolumn',text     : 'Bild',width:300, dataIndex:"img"}
						],

		        listeners: 
				{
					itemdblclick: function( _this, _record, _item, _index, _e,_eOpts) 
					{
						
						var title = 'userimage';
						
						if(checky.getValue() == true)
						{
							_comp.insertAtCursor('<a href="http://www.haase-boeschen.de/resources/content/' + _record.get('id') + '.' + _record.get('extension') + '" rel="lightbox[Bilder]"> <img src="http://www.haase-boeschen.de/hb20/haaseboeschen/resources/content/' + _record.get('id') + '.' + _record.get('extension') + '"></a>');
						}
						else
						{
							_comp.insertAtCursor('<img src="http://www.haase-boeschen.de/resources/content/' + _record.get('id') + '.' + _record.get('extension') + '">');
						}
						
						imagewindow.close();
					}
				}
		    });
	
	
			

	
	wikiimageupload.show();
	wikiimageupload.focus();

	
	imagewindow = Ext.create('Ext.window.Window', {
	 	width : 850,
        height: 600,
        resizable:true,
		maximizable:true,
        autoDestroy:false,
        closable:true,
	  layout: 'fit',
	  title: 'Neue Wiki-Seite',
	  border:false,
	  id: 'Mofo',
	  tbar:[chToolbar],
	 items:[wikiimageupload]
		}); 
	



	imagewindow.show();
	imagewindow.focus();
	imagewindow.toFront(true);
	
}


function newImageGridWindowDefault(_store,_pageId)
{

	if(imageGridWindow)
	{
		imageGridWindow.hide();
	}
	
	//if(!wikiimageupload)
	{
		   var remoteProxy = new Ext.data.HttpProxy( {
		        url : 'findImagesAll.php'
		    });
		 
		   
		    
		    var recordFields = [ 'id','originalFilename','extension','created','img'];
		 
		    Ext.define('app.gridStore', {
				 extend: 'Ext.data.Model',
				 fields: [
					'id','originalFilename','extension','created','img'
				 ]
			});

			var myStore =Ext.create('Ext.data.Store', {
				model: 'app.gridStore',
				proxy: {
					type: 'ajax',
					url: 'findImagesAll.php',  // url that will load data with respect to start and limit params
					reader: {
						type: 'json',
						root: 'data',
						//totalProperty: 'total'
					}
				},
				autoLoad:true
			});

		
		    wikiimageupload =  Ext.create('Ext.grid.Panel', {

	        title : 'Dateiauswahl',
		       height:450,
		        width : 800,
		        modal:true,
		        store : myStore,
		        loadMask: {msg: 'Dateien werden geladen...'},
		       // view : gridView,
		       // plugins:[filters],
		        //colModel : cm,
		      selType: 'cellmodel',
			    columns: [
							{text     : 'ID',    sortable : false, dataIndex:"id"},
							{text     : 'Datei',   sortable : false, dataIndex:"originalFilename"},
							{text     : 'Endung',   sortable : false, dataIndex:"extension"},
							{text     : 'Bild', width:300,   sortable : false, dataIndex:"img"}
						],
		        listeners: 
				{
					itemdblclick: function( _this, _record, _item, _index, _e,_eOpts) 
					{
						
						
						var data = 
						{
							imageId : _record.get('id'),
							pageId : _pageId
						};
						
						createImageDescriptionWindow(data,_store);
					}
				}
		    });
	}
	wikiimageupload.show();
	wikiimageupload.focus();

	
	imageGridWindow = Ext.create('Ext.window.Window', {
	 	width : 850,
        height: 500,
        maximizable:true,
        autoDestroy:false,
        closable:true,
	  layout: 'fit',
	  title: 'Neues Seitenelement',
	  border:false,
	  id: 'Mifi',
	 items:[wikiimageupload]
		}); 
	



	imageGridWindow.show();
	imageGridWindow.focus();
	imageGridWindow.toFront(true);
}

function createImageDescriptionWindow(_data,_store)
{

	if(adminImageDescriptionWindow)
	{
		adminImageDescriptionWindow.close();
	}
	
	 var editor = new Ext.form.HtmlEditor(
	 {
		 id:'note',
		 height: 295,
		 width:730
	 });
	
	var saveDescriptionBtnHandler = function(btn) 
	{
		var data = 
		{
			imageId : _data.imageId,
			pageId : _data.pageId,
			description: editor.getValue()
		}
		
				Ext.Ajax.request(
								{
										url:'createPageFileResource.php',
										disableCaching: true,
										method: 'POST',
										headers: {
											'Content-Type': 'application/json'
										},
										jsonData: data,
										success: function( _response, _request ) 
										{
											alert('Element angelegt');
											
											lastOptions = _store.lastOptions;
											_store.load(function(records, operation, success) {
																
															});
											
											if(adminImageDescriptionWindow)
											{
												adminImageDescriptionWindow.close();
											}
											
										},
										failure:  function( _response, _request ) {
											alert( _response.responseText );
										}
									});
	}
	
	var saveDescriptionBtn =  new Ext.Button({
	text    : 'Ok',
	height: 30,
	width: 170,
	handler : saveDescriptionBtnHandler,
	style:'background-color:#E5B2FF;'
	});
	
	
	 var editorToolbar = new Ext.Toolbar({
			items:[editor],
			height: 300,
			layout:'vbox',
			width:750
	    });
		
		var btnToolbar = new Ext.Toolbar({
			items:[saveDescriptionBtn],
			height: 100,
			layout:'vbox',
			width:400
	    });
	
	adminImageDescriptionWindow = Ext.create('Ext.window.Window', {
	 	width : 800,
        height: 400,
       
        autoDestroy:false,
        closable:true,
	  layout: 'fit',
	  title: 'Bildbeschreibung',
	  border:false,
	  id: Ext.id(),
	  tbar:[editorToolbar],
	 items:[btnToolbar]
		}); 
	



	adminImageDescriptionWindow.show();
	adminImageDescriptionWindow.focus();
	adminImageDescriptionWindow.toFront(true);
}


var mnuWikiPageContext = new Ext.menu.Menu({
    items: [{
        id: 'page-new',
        text: 'Neue Seite'
    },{
        id: 'page-change',
        text: 'Seite bearbeiten'
    },{
        id: 'page-up',
        text: 'nach oben verschieben'
    },{
        id: 'page-down',
        text: 'nach unten verschieben'
    },
	{
		id: 'page-delete',
		text: 'Seite löschen'
	}],
    listeners: {
        click: function(_menu, _item, _e, _options ) {
            switch (_item.id) {
	            case 'page-new':
						if(!actType)
						{
							actType = 'defaultPage';
						}
						
						createPageTypeWindow('create',actNode,actType);
	                break;
                case 'page-change':
					var data = {id:actPage};
					
					if(actType == 'defaultPage')
					{
						createCreateEditPageWindow('edit',actPageData,actType);
					}
					else
					{
						createAnyPageWindow('edit',actPageData,actType)
					}
					
                    break;
				case 'page-up':
					var data = 
					{
						id:actPage,
						moveposition: 'up'
					};
					
					Ext.Ajax.request(
								{
										url:'changePagePos.php',
										disableCaching: true,
										method: 'POST',
										headers: {
											'Content-Type': 'application/json'
										},
										jsonData: data,
										success: function( _response, _request ) 
										{
											
											if(pagesWindow)
											{
												pagesWindow.close();
											}
											
											pagesWindowStart();
											
										},
										failure:  function( _response, _request ) {
											alert( _response.responseText );
										}
									});
					
                    break;
				case 'page-down':
					var data = 
					{
						id:actPage,
						moveposition: 'down'
					};
					
					Ext.Ajax.request(
								{
										url:'changePagePos.php',
										disableCaching: true,
										method: 'POST',
										headers: {
											'Content-Type': 'application/json'
										},
										jsonData: data,
										success: function( _response, _request ) 
										{
											
											if(pagesWindow)
											{
												pagesWindow.close();
											}
											
											pagesWindowStart();
											
										},
										failure:  function( _response, _request ) {
											alert( _response.responseText );
										}
									});
					
					
                    break;
				case 'page-delete':
				
					if(confirm('Sind Sie sicher, dass Sie diese Seite und alle ihre Unterseiten löschen wollen?'))
					{
						var data = 
						{
							id:actPage
						};
						
						var l_urlcreate = 'deletePage.php';
						
						Ext.Ajax.request(
									{
											url:l_urlcreate,
											disableCaching: true,
											method: 'POST',
											headers: {
												'Content-Type': 'application/json'
											},
											jsonData: data,
											success: function( _response, _request ) 
											{
												
												alert('Seite gelöscht');
												
												if(pagesWindow)
												{
													pagesWindow.close();
												}
											
												pagesWindowStart();
											},
											failure:  function( _response, _request ) {
												alert( _response.responseText );
											}
										});
					}
					
				break;
            }
        }
    }
});

function createPageTypeWindow(_order,_node,_type)
{
	if(pageTypeWindow)
	{
		pageTypeWindow.close();
	}
	
	var rbGroup = new Ext.form.FormPanel({ 
				  width:350, 
				  frame:true, 
				  style:"margin: 10px auto 10px auto;", 
				  items: [{xtype:'fieldset', 
					title: 'Seiten-Typ', 
					//autoHeight:true, 
					height:150,
					items :[new Ext.form.RadioGroup({ 
					fieldLabel: 'Seiten-Typ', 
					vertical: true, 
					id:"rbGroup", 
					items: [ 
					{boxLabel: 'Standart', name: 'id-1', inputValue: 'S'}, 
					{boxLabel: 'Produkt', name: 'id-1', inputValue: 'P'}, 
					{boxLabel: 'Galerie', name: 'id-1', inputValue: 'G'} 
					]     
					})]}]}); 
					
	var pageTypeBtnHandler = function(btn) 
	{
		var val = Ext.getCmp("rbGroup").items.get(0).getGroupValue();
		
		if(val == 'S')
		{
			actType = 'defaultPage';
			createCreateEditPageWindow('create',actNode,actType);
		}
		else if(val == 'P')
		{
			actType = 'productPage';
			createAnyPageWindow('create',actNode,actType);
		}
		else if(val == 'G')
		{
			actType = 'galeryPage';
			createAnyPageWindow('create',actNode,actType);
		}
		
		if(pageTypeWindow)
		{
			pageTypeWindow.close();
		}
	}

	var pageTypeBtn =  new Ext.Button({
	text    : 'Ok',
	height: 30,
	width: 170,
	handler : pageTypeBtnHandler,
	style:'background-color:#E5B2FF;'
	});
	
	 var allToolbar = new Ext.Toolbar({
			items:[rbGroup,pageTypeBtn],
			height: 300,
			layout:'vbox',
			width:400
	    });
	
		pageTypeWindow = Ext.create('Ext.window.Window', {
	 	width : 400,
        height: 350,
        modal:true,
        autoDestroy:false,
        closable:true,
	  layout: 'fit',
	  title: 'Bitte geben Sie den Typ der neu zu erstellenden Seite an',
	  border:false,
	  id: Ext.id(),
	 tbar:[allToolbar]
		}); 
	

	pageTypeWindow.show();
	pageTypeWindow.focus();
	pageTypeWindow.toFront(true);
}



HBPagesWindowUi = Ext.extend(Ext.Window,
{
  width: 850,
  height: 600,
  layout: 'border',
  title: 'HB Window',
  border: false,
  resizable:true,
  maximizable:true,
  modal:true,
  id: 'hbWindow',
  initComponent: function() 
  {
    this.items = 
	[
      {
        xtype: 'panel',
        flex: 1,
        style: 'background-color: white',
        region: 'west',
        width: 200,
        split: true,
        layout: 'vbox',
        itemId: 'left',
        collapseMode: 'mini',
        title: '',
        id: 'westpanel',
        collapsible: false,
        border: true,
        hideCollapseTool: true,
        layoutConfig: {
          align: 'stretch',
          padding: ''
        },
        items: [
          {
            xtype: 'panel',
            flex: 1,
            title: 'Seiten',
            autoHeight: true,
            itemId: 'pagesPanel',
			id:'pagesPanelID',
            border: false,
            hidden: false,
			width:300,
            hideMode: 'display'
          }
        ]
      },
          {
            
                xtype: 'panel',
				id:'pageContent',
                itemId: 'content',
				style:'background-color:#04B404;',
                border: false,
                title: '',
                header: false,
                headerAsText: false,
                hideBorders: true,
                hideMode: 'display',
                autoScroll: true,
                region: 'center',
                tpl: '',
				width:700,
                layout: 'fit', // hier
                autoHeight: true,// hier
               // autoWidth: true // hier
              
          }
        
      
    ];
    
    
    HBPagesWindowUi.superclass.initComponent.call(this);
  }
});


function pagesWindowStart()
{
	if(pagesWindow)
	{
		pagesWindow.close();
	}
	
	pagesWindow = new HBPagesWindowUi();
	


	TreeLoader = new Ext.data.TreeStore({
		proxy: {
            type: 'ajax',
            url: 'pagesTreeProxy.php'
        },
        root: {
            text: 'Seiten',
            id: 'node',
            expanded: true
        }
	});
		
	pagesTree = new Ext.tree.Panel({
			collapsible      : false,
			animCollapse     : false,
			autoScroll       : true,
			height           : 600,
			width            : 300,
		// auto create TreeLoader
			dataUrl: 'pagesTreeProxy.php',
			store           : TreeLoader,
			root: {
				nodeType: 'async',
				text: 'Seiten',
				draggable: false,
				id: 'source'
			},
			listeners: 
			{
				itemclick: function(_view, _record, _item, _index, _e, _eOpts) {
				   //alert(objNode.getPath());
				   //Ext.getCmp('pageContent').body.update(objNode.getPath().split('/')[objNode.getPath().split('/').length-1]);
				  var selModel = pagesTree.getSelectionModel();
				 var node = selModel.getLastSelected();
					//alert(_index);
				  
				   actNode = _record.get('id');
				   
				   var data = 
						{
								id:_record.get('id')
						};
						
						if(data.id != '0')
						{
						
							var l_urlcreate = 'admin/findPage.php';
							
							
							Ext.Ajax.request(
										{
												url:l_urlcreate,
												disableCaching: true,
												method: 'POST',
												headers: {
													'Content-Type': 'application/json'
												},
												jsonData: data,
												success: function( _response, _request ) 
												{
													var resdata = Ext.decode( _response.responseText );
													
													if(resdata.data[0])
													{
													//alert('Mofo');
														actPage = resdata.data[0].id;
														actType = resdata.data[0].typ;
														actPageData = resdata.data[0];
														Ext.getCmp('pageContent').body.update('<div class="pageTitle"><h2>'+resdata.data[0].title + '</h2></div><br /><div class="pageContent">' + resdata.data[0].subtitle + resdata.data[0].content + '</div>');
													}
												},
												failure:  function( _response, _request ) {
													alert( _response.responseText );
												}
											});
						}
				},
				itemcontextmenu:function( _this, _record, _item, _index, _e, _eOpts )
				{
					//alert(_node.id);
					_e.stopEvent();
					mnuWikiPageContext.showAt(_e.xy);
				}
			}
	});

/*	TreeRoot = new Ext.tree.AsyncTreeNode({
			text		: 'Seiten',
			draggable	: false,
			id		: '0'                  // this IS the id of the startnode
		});
	
	pagesTree.setRootNode(TreeRoot);
	
	pagesTree.getRootNode().expand();
	pagesTree.getRootNode().expandChildNodes();
	*/
	Ext.getCmp('pagesPanelID').add(pagesTree);
	
	pagesWindow.show();
}

function createCreateEditPageWindow(_order,_data,_type)
{
	if(adminCreateEditPageWindow)
	{
		adminCreateEditPageWindow.close();
	}
	
	var pageTitleLabel =  new Ext.form.Label({
	    text    : '*Titel: ',
	    width: 150
	});
	
	var pageTitleTextBox =  new Ext.form.TextField({
        id: 'tTitle',
        width: 250
	});
	

	var pageNameLabel =  new Ext.form.Label({
	    text    : '*Name:',
	    width: 150
	});
	
	var pageNameTextBox =  new Ext.form.TextField({
        id: 'tName',
        width: 250
	});
	
	var pagePosLabel =  new Ext.form.Label({
	    text    : '*Position:',
	    width: 150
	});
	
	var pagePosTextBox =  new Ext.form.TextField({
        id: 'tPos',
		value:'0',
        width: 250
	});
	
	var pageContentLabel =  new Ext.form.Label({
	    text    : 'Inhalt ',
	    width: 250
	});
	
	var HR = new Ext.panel.Panel({
    title: 'HTML Editor',
    width: 650,
    height: 350,
    frame: true,
	
    layout: 'fit',
    items: {
        xtype: 'htmleditor',
        enableColors: false,
		id:'note',
        enableAlignments: false
    }
});
	var contentEditorToolbar = new Ext.Toolbar({
			items:[HR],
			height: 400,
			layout:'hbox',
			width:800
	    });
		
		
	var addImageBtnHandler = function(btn) 
	{
		newImageWindowDefault(HR.getComponent('note'));
	}
	
	var addImageBtn =  new Ext.Button({
			text    : 'Bild',
			height: 30,
			width: 170,
			handler : addImageBtnHandler,
			style:'background-color:#E5B2FF;'
			});
	
	var addImageBtnToolbar = new Ext.Toolbar({
			items:[addImageBtn],
			height: 50,
			layout:'hbox',
			width:600
	    });
	
	
	
	 var titleToolbar = new Ext.Toolbar({
			items:[pageTitleLabel,pageTitleTextBox],
			height: 35,
			layout:'hbox',
			width:800
	    });
	 
	 var nameToolbar = new Ext.Toolbar({
			items:[pageNameLabel,pageNameTextBox],
			height: 35,
			layout:'hbox',
			width:800
	    });
		
		var posToolbar = new Ext.Toolbar({
			items:[pagePosLabel,pagePosTextBox],
			height: 35,
			layout:'hbox',
			width:800
	    });
	 
	 
	 var allToolbar = new Ext.Toolbar({
			items:[titleToolbar,nameToolbar,posToolbar,addImageBtnToolbar,contentEditorToolbar],
			height: 450,
			layout:'vbox',
			width:800
	    });
	 
		var createPageBtnHandler = function(btn) 
		{ 
		 	if(pageTitleTextBox.getValue().length > 0 && pageNameTextBox.getValue().length > 0 && pagePosTextBox.getValue().length > 0)
		 	{
		 		
		 		if(_order == 'create')
		 		{
					var type = null;
				
					if(actType)
					{
						type = _type;
					}
					else
					{
						type = 'defaultPage';
					}
					
					if(actNode == 'source')
					{
						actNode = 1;
					}
					
			 		var data = 
			 		{
		 					title: pageTitleTextBox.getValue(),
		 					name:pageNameTextBox.getValue(),
		 					content:HR.getComponent('note').getValue(),
							position:pagePosTextBox.getValue(),
							parent:actNode,
							typ: type
			 		};
			 		
			 		var l_urlcreate = 'createPage.php';
			 		
			 		
			 		Ext.Ajax.request(
								{
										url:l_urlcreate,
										disableCaching: true,
										method: 'POST',
										headers: {
											'Content-Type': 'application/json'
										},
										jsonData: data,
										params:{name:pageNameTextBox.getValue()},
										success: function( _response, _request ) 
										{
											alert('Neue Seite angelegt');
											
											if(adminCreateEditPageWindow)
									 		{
												pagesWindowStart();
												adminCreateEditPageWindow.close();
									 		}
											
										},
										failure:  function( _response, _request ) {
											alert( _response.responseText );
										}
									});
		 		}
		 		else if(_order == 'edit')
		 		{
		 			var data = 
			 		{
		 					title: pageTitleTextBox.getValue(),
		 					name:pageNameTextBox.getValue(),
		 					content:HR.getComponent('note').getValue(),
							position:pagePosTextBox.getValue(),
							typ:_type,
		 					id:_data.id
			 		};
			 		
			 		
			 		var l_urlcreate = 'updatePage.php';
			 		
			 		
			 		Ext.Ajax.request(
								{
										url:l_urlcreate,
										disableCaching: true,
										method: 'POST',
										headers: {
											'Content-Type': 'application/json'
										},
										jsonData: data,
										success: function( _response, _request ) 
										{
											
											alert('Änderungen übernommen');
											
											
											
											
											if(adminCreateEditPageWindow)
									 		{
												pagesWindowStart();
												adminCreateEditPageWindow.close();
									 		}
											
											
										},
										failure:  function( _response, _request ) {
											alert( _response.responseText );
										}
									});
		 		}
		 		else if(_order == 'delete')
		 		{
		 			
				}
		 	}
		 	else
		 	{
		 		alert('Bitte überprüfen Sie ob alle mit einem * gekennzeichneten Felder ausgefüllt sind');
		 	}
		}
	 
	 var btnText = '';
	 
	 if(_order == 'create')
	 {
		 btnText = 'Speichern';
	 }
	 else if(_order == 'edit')
	 {
		 btnText = 'Änderungen übernehmen';
	 }
	 else if(_order == 'delete')
	 {
		 btnText = 'Löschen';
	 }
		
		var createPageBtn =  new Ext.Button({
			text    : btnText,
			height: 30,
			width: 170,
			handler : createPageBtnHandler,
			style:'background-color:#E5B2FF;'
			});
			

		
		var createPageBtnToolbar = new Ext.Toolbar({
			items:[createPageBtn],
			height: 80,
			layout:'hbox',
			width:680
			});
	 
		if(_order == 'edit' || _order == 'delete')
		{
				pageTitleTextBox.setValue(_data.title);
				pageNameTextBox.setValue(_data.name);
				content:HR.getComponent('note').setValue(_data.content);
				pagePosTextBox.setValue(_data.position);
		}
	 
		adminCreateEditPageWindow = Ext.create('Ext.window.Window', {
		 	width : 850,
	        height: 650,
	       
		  layout: 'fit',
		  resizable:true,
		  layoutConfig: {
	    	   flex: 1,
	    	   align: 'stretch',
	    	   pack: 'start'
	    	},
	    	bbar:[createPageBtnToolbar],
		  title: 'Page-Vorgang',
		  border:false,
		  id: 'adminCreateEditPageWindow'});
	 
		adminCreateEditPageWindow.add(allToolbar);
		adminCreateEditPageWindow.show();
		adminCreateEditPageWindow.focus();
		adminCreateEditPageWindow.toFront(true);
}

function createAnyPageWindow(_order,_data,_type)
{
	if(adminAnyPageWindow)
	{
		adminAnyPageWindow.close();
	}
	
	var pageTitleLabel =  new Ext.form.Label({
	    text    : '*Titel: ',
	    width: 150
	});
	
	var pageTitleTextBox =  new Ext.form.TextField({
        id: 'tTitle',
        width: 250
	});
	

	var pageNameLabel =  new Ext.form.Label({
	    text    : '*Name:',
	    width: 150
	});
	
	var pageNameTextBox =  new Ext.form.TextField({
        id: 'tName',
        width: 250
	});
	
	var pagePosLabel =  new Ext.form.Label({
	    text    : '*Position:',
	    width: 150
	});
	
	var pagePosTextBox =  new Ext.form.TextField({
        id: 'tPos',
		value:'0',
        width: 250
	});
	
	var pageSubtitleLabel =  new Ext.form.Label({
	    text    : 'Untertitel:',
	    width: 90
	});
	
	var HR = new Ext.panel.Panel({
		title: 'HTML Editor',
		width: 650,
		height: 130,
		frame: true,
		
		layout: 'fit',
		items: {
			xtype: 'htmleditor',
			enableColors: false,
			id:'note',
			enableAlignments: false
		}
	});
	
	/*var contentEditorToolbar = new Ext.Toolbar({
			items:[HR],
			height: 400,
			layout:'hbox',
			width:800
	    });
	*/
	var subtitleToolbar = new Ext.Toolbar({
			items:[pageSubtitleLabel,HR],
			height: 150,
			layout:'hbox',
			width:800
	    });

	   var remoteProxy = new Ext.data.HttpProxy( {
		url : 'findImagesByPage.php?pid='+_data.id
		});
		 
		   
		    
		    var recordFields = [ 'id','originalFilename','extension','created','description','img'];
		 
		    var myStore = null;
			var pageimagegrid = null
			
			
			
			 if(_order == 'create')
			 {
				 
			 }
			 else if(_order == 'edit' || _order == 'delete')
			 {
			 
			 Ext.define('app.gridStore', {
					 extend: 'Ext.data.Model',
					 fields: [
						'id','originalFilename','extension','created','img','description'
					 ]
				});
			 
				 myStore = Ext.create('Ext.data.Store', {
						model: 'app.gridStore',
						proxy: {
							type: 'ajax',
							url: 'findImagesByPage.php?pid='+_data.id,  // url that will load data with respect to start and limit params
							reader: {
								type: 'json',
								root: 'data',
								//totalProperty: 'total'
							}
						},
						autoLoad:true
					});
			
			
			   pageimagegrid = Ext.create('Ext.grid.Panel', {
				title : 'Seiten-Elemente. Zum Bearbeiten eines Elements bitte das entsprechende Element doppelklicken.',
				   height:300,
					width : 750,
					 loadMask: {msg: 'Dateien werden geladen...'},
					layout:'fit',
					store : myStore,
					
				   selType: 'cellmodel',
					columns: [
								{text     : 'ID',    sortable : false, dataIndex:"id"},
								{text     : 'Datei',   sortable : false, dataIndex:"originalFilename"},
								{text     : 'Endung',   sortable : false, dataIndex:"extension"},
								{text     : 'Beschreibung', width:200,  sortable : false, dataIndex:"description"},
								{text     : 'Bild', width:300, sortable : false, dataIndex:"img"}
							],

					listeners: 
					{
						itemdblclick: function( _this, _record, _item, _index, _e,_eOpts) 
						{
							
							var data = 
							{
								pageId:_data.id,
								fsId: _record.get('id')
							};
								
							Ext.Ajax.request(
									{
											url:'findPageFileResourceById.php',
											disableCaching: true,
											method: 'POST',
											headers: {
												'Content-Type': 'application/json'
											},
											jsonData: data,
											params:{name:pageNameTextBox.getValue()},
											success: function( _response, _request ) 
											{
												var resdata = Ext.decode( _response.responseText );
												
												createEditImageWindow(resdata.data[0]);		
											},
											failure:  function( _response, _request ) {
												alert( _response.responseText );
											}
										});
							
						}
					}
				});
			}

	var addElementBtnHandler = function(btn) 
	{ 
		newImageGridWindowDefault(myStore,_data.id);
	}
	
	var addElementBtn =  new Ext.Button({
	text    : 'Element hinzufügen',
	height: 30,
	width: 170,
	handler : addElementBtnHandler,
	style:'background-color:#E5B2FF;'
	});
	
	 var titleToolbar = new Ext.Toolbar({
			items:[pageTitleLabel,pageTitleTextBox],
			height: 35,
			layout:'hbox',
			width:800
	    });
	 
	 var nameToolbar = new Ext.Toolbar({
			items:[pageNameLabel,pageNameTextBox],
			height: 35,
			layout:'hbox',
			width:800
	    });
		
		var posToolbar = new Ext.Toolbar({
			items:[pagePosLabel,pagePosTextBox],
			height: 35,
			layout:'hbox',
			width:800
	    });
		
		addElementBtn
	 
	var newElementToolbar = new Ext.Toolbar({
			items:[addElementBtn],
			height: 35,
			layout:'hbox',
			width:800
	    });
		

	 var allToolbar = null;
	 
	 if(_order == 'create')
	 {
		 allToolbar = new Ext.Toolbar({
				items:[titleToolbar,nameToolbar,posToolbar,subtitleToolbar],
				height: 450,
				layout:'vbox',
				width:800
			});
	 }
	 else if(_order == 'edit' || _order == 'delete')
	 {
		 allToolbar = new Ext.Toolbar({
				items:[titleToolbar,nameToolbar,posToolbar,subtitleToolbar,newElementToolbar,pageimagegrid],
				height: 450,
				layout:'vbox',
				width:800
			});
	 }
	 
	 
	 
		var createPageBtnHandler = function(btn) 
		{ 
		 	if(pageTitleTextBox.getValue().length > 0 && pageNameTextBox.getValue().length > 0 && pagePosTextBox.getValue().length > 0)
		 	{
		 		
		 		if(_order == 'create')
		 		{
					var type = null;
				
					if(actType)
					{
						type = _type;
					}
					else
					{
						type = 'defaultPage';
					}
					
			 		var data = 
			 		{
		 					title: pageTitleTextBox.getValue(),
		 					name:pageNameTextBox.getValue(),
							position:pagePosTextBox.getValue(),
							content:HR.getComponent('note').getValue(),
							parent:actNode,
							typ: type
			 		};
			 		
			 		var l_urlcreate = 'createPage.php';
			 		
			 		
			 		Ext.Ajax.request(
								{
										url:l_urlcreate,
										disableCaching: true,
										method: 'POST',
										headers: {
											'Content-Type': 'application/json'
										},
										jsonData: data,
										params:{name:pageNameTextBox.getValue()},
										success: function( _response, _request ) 
										{
											alert('Neue Seite angelegt');
											
												if(adminAnyPageWindow)
												{
													pagesWindowStart();
													adminAnyPageWindow.close();
												}
											
										},
										failure:  function( _response, _request ) {
											alert( _response.responseText );
										}
									});
		 		}
		 		else if(_order == 'edit')
		 		{
		 			var data = 
			 		{
		 					title: pageTitleTextBox.getValue(),
		 					name:pageNameTextBox.getValue(),
							position:pagePosTextBox.getValue(),
							content:HR.getComponent('note').getValue(),
							typ: _type,
		 					id:_data.id
			 		};
			 		
			 		
			 		var l_urlcreate = 'updatePage.php';
			 		
			 		
			 		Ext.Ajax.request(
								{
										url:l_urlcreate,
										disableCaching: true,
										method: 'POST',
										headers: {
											'Content-Type': 'application/json'
										},
										jsonData: data,
										success: function( _response, _request ) 
										{
											
											alert('Änderungen übernommen');
											
											
												if(adminAnyPageWindow)
												{
													pagesWindowStart();
													adminAnyPageWindow.close();
												}
											
										},
										failure:  function( _response, _request ) {
											alert( _response.responseText );
										}
									});
		 		}
		 		else if(_order == 'delete')
		 		{
		 			
				}
		 	}
		 	else
		 	{
		 		alert('Bitte überprüfen Sie ob alle mit einem * gekennzeichneten Felder ausgefüllt sind');
		 	}
		}
	 
	 var btnText = '';
	 
	 if(_order == 'create')
	 {
		 btnText = 'Speichern';
	 }
	 else if(_order == 'edit')
	 {
		 btnText = 'Änderungen übernehmen';
	 }
	 else if(_order == 'delete')
	 {
		 btnText = 'Löschen';
	 }
		
		var createPageBtn =  new Ext.Button({
			text    : btnText,
			height: 30,
			width: 170,
			handler : createPageBtnHandler,
			style:'background-color:#E5B2FF;'
			});
			
	
		
		var createPageBtnToolbar = new Ext.Toolbar({
			items:[createPageBtn],
			height: 50,
			layout:'hbox',
			width:680
			});
	 
		if(_order == 'edit' || _order == 'delete')
		{
				pageTitleTextBox.setValue(_data.title);
				pageNameTextBox.setValue(_data.name);
				pagePosTextBox.setValue(_data.position);
				content:HR.getComponent('note').setValue(_data.subtitle);
		}
	 
		adminAnyPageWindow = Ext.create('Ext.window.Window', {
		 	width : 800,
	        height: 700,
	        
		  layout: 'fit',
		  resizable:true,
		  maximizable:true,
		  layoutConfig: {
	    	   flex: 1,
	    	   align: 'stretch',
	    	   pack: 'start'
	    	},
	    	bbar:[createPageBtnToolbar],
		  title: _type + '-Vorgang',
		  border:false,
		  id: 'adminAnyPageWindow'});
	 
		adminAnyPageWindow.add(allToolbar);
		adminAnyPageWindow.show();
		adminAnyPageWindow.focus();
		adminAnyPageWindow.toFront(true);
}


function createEditImageWindow(_data)
{
	if(editImageWindow)
	{
		editImageWindow.close();
	}
	
	var descriptionLabel =  new Ext.form.Label({
	    text    : 'Bildbeschreibung: ',
	    width: 100
	});
	
	var HR = new Ext.panel.Panel({
		title: 'HTML Editor',
		width: 650,
		height: 250,
		frame: true,
		
		layout: 'fit',
		items: {
			xtype: 'htmleditor',
			enableColors: false,
			id:'note',
			enableAlignments: false
		}
	});
	
	var contentEditorToolbar = new Ext.Toolbar({
			items:[HR],
			height: 300,
			layout:'hbox',
			width:800
	    });
	
	HR.getComponent('note').setValue(_data.description);
	
	var imagePanel =  new Ext.form.FormPanel({
        width: 600,
		height:150,
		autoScroll:true,
		html:_data.img
	});
	
	var descriptionToolbar = new Ext.Toolbar({
			items:[descriptionLabel,contentEditorToolbar],
			height: 350,
			layout:'hbox',
			width:800
	    });
		
	var imageToolbar = new Ext.Toolbar({
			items:[imagePanel],
			height: 200,
			layout:'hbox',
			width:800
	    });
		
	
	
	var saveChangesBtnHandler = function(btn) 
		{ 
						var data = 
						{
							id : _data.id,
							pageId:_data.pageId,
							description:HR.getComponent('note').getValue()
						};
							
						Ext.Ajax.request(
								{
										url:'updateFileResource.php',
										disableCaching: true,
										method: 'POST',
										headers: {
											'Content-Type': 'application/json'
										},
										jsonData: data,
										success: function( _response, _request ) 
										{
											alert('Änderungen übernommen');	
											
											if(editImageWindow)
											{
												editImageWindow.close();
											}
										},
										failure:  function( _response, _request ) {
											alert( _response.responseText );
										}
									});
						
		}
		
	var deleteBtnHandler = function(btn) 
		{ 
		
			if(confirm('Sind Sie sicher, dass Sie dieses Bild von dieser Seite entfernen wollen?'))
			{
						var data = 
						{
							id : _data.id,
							pageId:_data.pageId
						};
							
						Ext.Ajax.request(
								{
										url:'deleteFileResourceFromPage.php',
										disableCaching: true,
										method: 'POST',
										headers: {
											'Content-Type': 'application/json'
										},
										jsonData: data,
										success: function( _response, _request ) 
										{
											alert('Änderungen übernommen');	
											
											if(editImageWindow)
											{
												editImageWindow.close();
											}
										},
										failure:  function( _response, _request ) {
											alert( _response.responseText );
										}
									});
			}
		}
	
	var saveChangesBtn =  new Ext.Button({
		text    : 'Änderungen übernehmen',
		height: 30,
		width: 170,
		handler : saveChangesBtnHandler,
		style:'background-color:#E5B2FF;'
		});
		
	var deleteBtn =  new Ext.Button({
		text    : 'Image löschen',
		height: 30,
		width: 170,
		handler : deleteBtnHandler,
		style:'background-color:#E5B2FF;'
		});
	
	var btnToolbar = new Ext.Toolbar({
			items:[saveChangesBtn,'-',deleteBtn],
			height: 100,
			layout:'hbox',
			width:800
	    });
		
	var allToolbar = new Ext.Toolbar({
			items:[descriptionToolbar,imageToolbar,btnToolbar],
			height: 650,
			layout:'vbox',
			width:800
	    });
			
			
			editImageWindow = Ext.create('Ext.window.Window', {
		 	width : 800,
	        height: 650,
	        
		  layout: 'fit',
		  resizable:true,
		  maximizable:true,
		  layoutConfig: {
	    	   flex: 1,
	    	   align: 'stretch',
	    	   pack: 'start'
	    	},
		  title: 'Bild',
		  border:false,
		  id: 'editImageWindow'});
	 
		editImageWindow.add(allToolbar);
		editImageWindow.show();
		editImageWindow.focus();
		editImageWindow.toFront(true);
}

function bw_check()
  {
  is_major      = parseInt(navigator.appVersion);
  this.nver     = is_major;
  this.ver      = navigator.appVersion;
  this.agent    = navigator.userAgent;
  this.dom      = document.getElementById ? 1 : 0;
  this.opera    = window.opera ? 1 : 0;

  this.ie5      = (this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera) ? 1 : 0;
  this.ie6      = (this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera) ? 1 : 0;
  this.ie4      = (document.all && !this.dom && !this.opera) ? 1 : 0;
  this.ie       = this.ie4 || this.ie5 || this.ie6;
  this.mac      = this.agent.indexOf("Mac")>-1;
  this.ns6      = (this.dom && parseInt(this.ver)>=5) ? 1 : 0;
  this.ie3      = (this.ver.indexOf("MSIE") && (is_major<4));
  this.hotjava  = (this.agent.toLowerCase().indexOf('hotjava')!=-1) ? 1 : 0;
  this.ns4      = (document.layers && !this.dom && !this.hotjava) ? 1 : 0;
  this.bw       = (this.ie7 || this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera);
  this.ver3     = (this.hotjava || this.ie3);
  this.opera7   = ((this.agent.toLowerCase().indexOf('opera 7')>-1) || (this.agent.toLowerCase().indexOf('opera/7')>-1));
  this.operaOld = this.opera && !this.opera7;
  return this;
  }


function processLink(_data)
{
	 var bw = new bw_check();
			var xmlhttp;
			if (window.XMLHttpRequest)
			  {// code for IE7+, Firefox, Chrome, Opera, Safari
			  xmlhttp=new XMLHttpRequest();
			  }
			else
			  {// code for IE6, IE5
			  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
			  }
	    
		xmlhttp.onreadystatechange=function()
		  {
		  if (xmlhttp.readyState==4 && xmlhttp.status==200)
			{
				if(bw.ie4 || bw.ie5 || bw.ie6 || bw.ie7)
				{
					document.all.content.innerHTML = xmlhttp.responseText.split(":::")[1] + xmlhttp.responseText.split(":::")[2];
					document.all.header.innerHTML = xmlhttp.responseText.split(":::")[0];
				}
				else
				{
					document.getElementById("content").innerHTML=xmlhttp.responseText.split(":::")[1] + xmlhttp.responseText.split(":::")[2];
					document.getElementById("header").innerHTML=xmlhttp.responseText.split(":::")[0];
					document.getElementById("content").scrollTop = 0; 
					void(0);
				}
			}
		  }
		
		xmlhttp.open("POST","findPage.php",true);
		xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		xmlhttp.send("id="+_data);
}

