
if( typeof( AdmeaDossier ) == 'undefined' ) AdmeaDossier = {};

AdmeaDossier.Content = function()
{
	// Private variables
	
	var contentFrameId = 'content';
	var fullscreen = false;
	var currentNode = 0;
	var contentPanel = null;
	
	var internalToggleFullscreen = function()
	{
		fullscreen = !fullscreen;

		if( fullscreen )
		{
			Ext.get( 'toplogo_xelyn' ).hide();
			AdmeaDossier.app.northPanel.hide();
			// AdmeaDossier.app.tree.tools.toggle.setVisible( false, false );
			
			AdmeaDossier.app.contentPanel.tools.maximize.hide();
			AdmeaDossier.app.contentPanel.tools.restore.show();

			if( AdmeaDossier.Session.isManager() )
			{
				AdmeaDossier.app.actionPanel.collapse( false );
				Ext.get( 'toplogo_manager' ).hide();
			}
			else
			{
				AdmeaDossier.app.tree.collapse( false );
				Ext.get( 'toplogo_gebouwdossier' ).hide();
			}			
		}
		else
		{
			Ext.get( 'toplogo_xelyn' ).show();
			// AdmeaDossier.app.tree.tools.toggle.setVisible( true, false );
			AdmeaDossier.app.northPanel.show();

			if( AdmeaDossier.Session.isManager() )
			{
				AdmeaDossier.app.actionPanel.expand( false );
				Ext.get( 'toplogo_manager' ).show();
			}
			else
			{
				AdmeaDossier.app.tree.expand( false );
				Ext.get( 'toplogo_gebouwdossier' ).show();
			}
			
			AdmeaDossier.app.contentPanel.tools.maximize.show();
			AdmeaDossier.app.contentPanel.tools.restore.hide();
		}
		
		AdmeaDossier.app.viewport.doLayout();
	}
	
	// Public 
	return {
		getContentPanel : function()
		{
			return contentPanel;
		},
		
		update : function()
		{
		},
		
		reload : function()
		{
			// frames[contentFrameId].location.reload();
			contentPanel.setSrc(contentPanel.getFrame().getDocumentURI());
		},
		
		ContentFrameName : function( newname )
		{
			if( newname )
				return contentFrameId = newname;
			else
				return contentFrameId;
		},
		
		print : function()
		{
			if( AdmeaDossier.Content.checkMethodAvailability( 'Print' ) )
				AdmeaDossier.Content.callMethod( 'Print' );
			else
			{
				/*
				frames[contentFrameId].window.focus();
				frames[contentFrameId].window.print();
				*/
				contentPanel.iframe.dom.contentWindow.focus();
				contentPanel.iframe.dom.contentWindow.print();
			}
		},
		
		getCurrentNode: function()
		{
			return currentNode;
		},
		
		nodeGetPage : function( node, e )
		{
			// getElement( 'content' )
			if( node.id != 'source' && node.id > 0 )
			{
				// frames[contentFrameId].location = ;
				contentPanel.setSrc( 'getpage.aspx?pageid=' + node.id );
				currentNode = node.id;
			}
			else
			{
				// frames[contentFrameId].location = 'getpage.aspx';
				contentPanel.setSrc( 'getpage.aspx' );
				currentNode = 0;
			}

			if( AdmeaDossier.Toolbar )
				AdmeaDossier.Toolbar.update();
		},

		search : function( node, e )
		{
			// frames['content'].location = 'getpage.aspx?search=' + encodeURI( getElement( 'searchQuery' ).value );
			contentPanel.setSrc( 'getpage.aspx?search=' + encodeURI( getElement( 'searchQuery' ).value ) );

			AdmeaDossier.Toolbar.update();
		},

		callMethod : function( methodname )
		{
			if( typeof ( frames[contentFrameId].doAction ) != 'undefined' )
				frames[contentFrameId].doAction( methodname );
		},
		
		checkMethodAvailability : function( methodname )
		{
			if( typeof( frames[contentFrameId].checkAction ) != 'undefined' )
			{
				if( frames[contentFrameId].checkAction( methodname ) )
					return true;
				else
					return false;
			}
		},
		
		toggleFullscreen : internalToggleFullscreen,
		
		expandTreeNode : function( nodeid )
		{
			if( AdmeaDossier.app.tree )
			{
				var node = AdmeaDossier.app.tree.getNodeById( nodeid );
				if( node ) node.expand();
			}
		},
		
		updateTreeSelection : function( nodeid )
		{
			currentNode = nodeid;
			
			if( AdmeaDossier.app.tree )
			{
				var node = AdmeaDossier.app.tree.getNodeById( nodeid );
				if( node ) node.ensureVisible();
			}
		},
		
		openSpecialLink : function( page )
		{
			var linktarget = null;
			
			switch( page )
			{
				case 'password':
					linktarget = 'XelynWebFiles/Templates/Password.aspx';
					break;

				case 'add_object':
					linktarget = 'add.aspx?action=AddObj&WSMId=' + parseInt( arguments[1] );
					break;

				case 'perm_editor':
					linktarget = 'PermissionEditor.aspx';
					break;

				case 'properties_editor':
					linktarget = 'menucontrol.aspx?Type=edit&WSMId=' + parseInt( arguments[1] );
					break;
			}
			
			if( linktarget )
			{
				// frames[contentFrameId].location = linktarget;
				contentPanel.setSrc( linktarget );
				currentNode = 0;
			}
		},

		openManagerPage : function( page )
		{
			var linktarget = null;
			
			switch( page )
			{
				case 'styles':
					linktarget = 'stylespage.aspx';
					break;
				case 'statistics':
					linktarget = 'statspage.aspx';
					break;
				case 'objects':
					linktarget = 'osmpage.aspx';
					break;
				case 'editor':
					linktarget = 'editorpage.aspx';
					break;
				case 'trash':
					linktarget = 'recyclebinpage.aspx';
					break;
				case 'tables':
					linktarget = 'editclass.aspx';
					break;
				case 'tabledata':
					linktarget = 'instance-editor.aspx';
					break;
				case 'explorer':
					linktarget = 'databrowser.aspx';
					break;
				case 'settings':
					linktarget = 'settingspage.aspx';
					break;
				case 'admin':
					linktarget = 'adminpage.aspx';
					break;
				case 'users':
					linktarget = 'usermanpage.aspx';
					break;
				case 'explorer':
					linktarget = 'databrowser.aspx';
					break;
				case 'eforms':
					if( 'EForms' == AdmeaDossier.Session.getSiteType() )
						linktarget = 'eformspage.aspx';
					else
					{
						Ext.MessageBox.show({
						   title: AdmeaDossier.Locale.Manager.Pages.EFormsDisabledWarningTitle,
						   msg: AdmeaDossier.Locale.Manager.Pages.EFormsDisabledWarningMessage,
						   buttons: Ext.MessageBox.OK,
						   animEl: this
					   });
					}
					break;
			}
			
			if( linktarget )
			{
				// frames[contentFrameId].location = linktarget;
				contentPanel.setSrc( linktarget );
				currentNode = 0;
			}
		},

		init : function( opts )
		{
			// var mFrame = new Ext.ux.ManagedIFrame( 'content', { autoCreate: { loadMask: false, src: 'getpage.aspx' } } );
			// mFrame.render = function() {};
			// var mFrame = new Ext.ux.ManagedIframePanel( {
			// } );

			var config = {
				region:'center',
				title: '&nbsp;',
				// headerAsText : false,
				header: true,
				fitToFrame: true,
				collapsible: false,
				split:true,
				layout: 'fit',
				hideBorders: true,
				// contentEl: 'content',
				// resizeEl: 'content',

				id: contentFrameId, //'content',
				loadMask: false,
				defaultSrc: 'getpage.aspx',
				/*
				items: [ 
				// { xtype: 'iframepanel' }
					mFrame
				],
				*/
				// border: false
				tools:
				[{
					id: 'maximize',
					handler: internalToggleFullscreen,
					qtip: AdmeaDossier.Locale.ContentPanelMaximize
				},
				{
					id: 'restore',
					handler: internalToggleFullscreen,
					qtip: AdmeaDossier.Locale.ContentPanelRestore,
					hidden: true
				}]
			};

			// update();
			if( opts )
				for( var property_name in opts )
					config[property_name] = opts[property_name];

			// return contentPanel = new Ext.Panel( config );
			return contentPanel = new Ext.ux.ManagedIframePanel( config );
		}
	};

}();

// Legacy (poluted namespace)
var ForceSelectObject = AdmeaDossier.Content.updateTreeSelection;
var ForceExpandObject = AdmeaDossier.Content.expandTreeNode;

