text: 'use strict';
  
  var
  	ko = require('knockout'),
  	
  	App = require('%PathToCoreWebclientModule%/js/App.js')
  ;
  
  function CAbstractScreenView(sModuleName)
  {
  	this.shown = ko.observable(false);
  	this.$viewDom = null;
  	this.browserTitle = ko.observable('');
  	this.sModuleName = sModuleName;
  }
  
  CAbstractScreenView.prototype.ViewTemplate = '';
  CAbstractScreenView.prototype.ViewConstructorName = '';
  
  CAbstractScreenView.prototype.showView = function ()
  {
  	if (!this.shown())
  	{
  		this.$viewDom.show();
  		this.shown(true);
  		this.onShow();
  
  		if (this.ViewConstructorName !== '')
  		{
  			App.broadcastEvent(this.sModuleName + '::ShowView::after', {'Name': this.ViewConstructorName, 'View': this});
  		}
  	}
  };
  
  CAbstractScreenView.prototype.hideView = function ()
  {
  	if (this.shown())
  	{
  		this.$viewDom.hide();
  		this.shown(false);
  		this.onHide();
  	}
  };
  
  CAbstractScreenView.prototype.onBind = function ()
  {
  };
  
  CAbstractScreenView.prototype.onShow = function ()
  {
  };
  
  CAbstractScreenView.prototype.onHide = function ()
  {
  };
  
  CAbstractScreenView.prototype.onRoute = function (aParams)
  {
  };
  
  module.exports = CAbstractScreenView;