/**
 * file Desktop.js with the desktop class
 * @author Janusz Rygał
 * @date 12.08.2008 
 */

/**
 * @class Logout
 * Logout class
 */
Logout = Ext.extend(Ext.app.Module, {
			    id:'logout-win',
			    text: 'Logout',
			    iconCls: 'logout',
			    init: function(){
			    			this.handler = this.logoutUser;
						},
			    logoutUser : function(){
			        var conn = new Ext.data.Connection({
								url: project_url + 'Logout'
							});
					conn.request({
								method: 'GET',
							    success: function(responseObject) {
							        			window.location.reload();
							    		 },
							    failure: function() {
							         			Ext.Msg.alert('Warning', 'Some problems occured while logout operation!');
							     		 }
				     			});	
			    }
});



 /**
  * @class Programs
  * programs class
  */
 Programs = Ext.extend(Ext.app.Module, {
    	init : function(){
        this.launcher = {
            text: 'Programs',
            handler: function() {
				return false;
			},
            menu: context.menu.programsMenu
        },
        this.openProgramInNewWindow = function(item_){
        			context.history.addItem(1, item_.windowId);	
			        var desktop = context.menu.programs.app.getDesktop();
			        var maxHeight = Ext.getBody().getHeight() - 34;		        
			        var fullUrl = '';
			        
			        if(item_.url.indexOf('http://') >= 0)
			        	fullUrl = item_.url;
			        else
			        	fullUrl = "http://www.polconstruct.com/"+item_.url;
			        
			        
			        var pane = new Ext.Panel({
			        							autoWidth: true,		
			        							html: "<div style=' width: 100%; height: 100%;'><iframe onLoad=\"context.replaceStandardLinks(this);\" id='programWindow"+item_.windowId+"-iframe' style='width: 100%; height: 100%; overflow: auto;' src='"+fullUrl+"'></iframe></div>"
			        						});
			        						
					var newId = 'programWindow_-_'+item_.windowId;
					if(context.findById(newId))
						newId = context.findNextWindowId(newId);

			            win = desktop.createWindow({
			                id: newId,
			                windowId: newId,
			                title:item_.winText,
			                height: maxHeight,
			                resizable: true,
			                shadow: context.user.preferences.windowShadow,
			                animCollapse: context.user.preferences.animateCollapseWindow,
			                width:     1000,
			                iconCls: 'bogus',
			                items: [pane],
			                tbar:[{
			                		text: "<img src='../images/omsImages/main/icons/back.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('back'),
			                		id: 'window_item_back_-_'+'programWindow'+item_.windowId+'_-_'+fullUrl,
			                		handler: context.backStandardWindow
			                 	  },
			                 	  {
			                		text: "<img src='../images/omsImages/main/icons/forward.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('forward'),
			                		id: 'window_item_forward_-_'+'programWindow'+item_.windowId+'_-_'+fullUrl,
			                		handler: context.forwardStandardWindow
			                 	  },
			                 	  {
			                		text: "<img src='../images/omsImages/main/icons/refresh.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('refresh'),
			                		id: 'window_item_refresh_-_'+'programWindow'+item_.windowId+'_-_'+fullUrl,
			                		handler: context.refreshStandardWindow
			                 	  },
			                 	  {
			                		text: "<img src='../images/omsImages/main/icons/page_world.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('generate_link'),
			                		id: 'window_item_url_-_'+'programWindow'+item_.windowId+'_-_'+fullUrl,
			                		handler: context.getIframeUrl
			                 	  },
			                 	  {
			                		text: "<img src='../images/omsImages/main/icons/printer.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('print_module'),
			                		id: 'window_item_print_-_'+'programWindow'+item_.windowId+'_-_'+fullUrl,
			                		handler: context.printModule
			                 	  },
			                 	  {
			                		text: "<img src='../images/omsImages/main/icons/bug.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('report_problem'),
			                		id: 'window_item_bug_-_'+'programWindow'+item_.windowId+'_-_'+fullUrl,
			                		handler: context.showBugWindow
			                 	  }],
			                shim:true,
			                constrainHeader:true
			            });
			        win.onceLoaded = false;
			     
			        
			        win.type = item_.type;
			        if(item_.url.indexOf('.pdf') < 0){
				        win.on('show', function(elem_){
				        	
				        	if(!elem_.onceLoaded){
					        	context.loadMask = new Ext.LoadMask(win.getEl(),{
											msg  : context.translator.translate('please_wait')+' '+elem_.title+' '+context.translator.translate('url_app_loading'),
											msgCls: 'pressiton-loading'
									});
					        	context.loadMask.show();
					        	setTimeout("context.loadMask.hide()", 10000);
					        	win.onceLoaded = true;
					        }
				        });
			        }
			        win.show();
			        context.news.window.toBack();
        },
        this.openProgramWindow = function(item_){
        			context.history.addItem(1, item_.windowId);	
			        var desktop = context.menu.programs.app.getDesktop();
			        var win = desktop.getWindow('programWindow_-_'+item_.windowId);
			        
			        if(win){
			        	win.onceLoaded = true;
			        	win.show();
			        	return;
			        }
			        
			        var maxHeight = Ext.getBody().getHeight() - 34;		        
			        var fullUrl = '';
			        
			        if(item_.url.indexOf('http://') >= 0)
			        	fullUrl = item_.url;
			        else
			        	fullUrl = "http://www.polconstruct.com/"+item_.url;
			        
			        
			        var pane = new Ext.Panel({
			        							autoWidth: true,	
			        							id: 'mainWindowPanel_-_'+item_.windowId,	
			        							html: "<div style=' width: 100%; height: 100%;'><iframe onLoad=\"context.replaceStandardLinks(this);\" id='programWindow"+item_.windowId+"-iframe' style='width: 100%; height: 100%; overflow: auto;' src='"+fullUrl+"'></iframe></div>"
			        						});
			        
			        if(!win){
			            win = desktop.createWindow({
			                id: 'programWindow_-_'+item_.windowId,
			                windowId: 'programWindow_-_'+item_.windowId,
			                title:item_.winText,
			                height: maxHeight,
			                shadow: context.user.preferences.windowShadow,
			                animCollapse: context.user.preferences.animateCollapseWindow,
			                resizable: true,
			                width:     1000,
			                iconCls: 'bogus',
			                items: [pane],
			                tbar:[{
			                		text: "<img src='../images/omsImages/main/icons/back.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('back'),
			                		id: 'window_item_back_-_'+'programWindow'+item_.windowId+'_-_'+fullUrl,
			                		handler: context.backStandardWindow
			                 	  },
			                 	  {
			                		text: "<img src='../images/omsImages/main/icons/forward.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('forward'),
			                		id: 'window_item_forward_-_'+'programWindow'+item_.windowId+'_-_'+fullUrl,
			                		handler: context.forwardStandardWindow
			                 	  },
			                 	  {
			                		text: "<img src='../images/omsImages/main/icons/refresh.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('refresh'),
			                		id: 'window_item_refresh_-_'+'programWindow'+item_.windowId+'_-_'+fullUrl,
			                		handler: context.refreshStandardWindow
			                 	  },
			                 	  {
			                		text: "<img src='../images/omsImages/main/icons/page_world.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('generate_link'),
			                		id: 'window_item_url_-_'+'programWindow'+item_.windowId+'_-_'+fullUrl,
			                		handler: context.getIframeUrl
			                 	  },
			                 	  {
			                		text: "<img src='../images/omsImages/main/icons/printer.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('print_module'),
			                		id: 'window_item_print_-_'+'programWindow'+item_.windowId+'_-_'+fullUrl,
			                		handler: context.printModule
			                 	  },
			                 	  {
			                		text: "<img src='../images/omsImages/main/icons/bug.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('report_problem'),
			                		id: 'window_item_bug_-_'+'programWindow'+item_.windowId+'_-_'+fullUrl,
			                		handler: context.showBugWindow
			                 	  }],
			                shim:true,
			                constrainHeader:true
			            });
			            win.onceLoaded = false;
			        }
			        
			        win.on("resize", function(win_, w_, h_){
			        		var id = 'mainWindowPanel_-_'+win_.id.split("_-_")[1];
				        	var panel = Ext.getCmp(id);
                            if(!panel){
                                id = 'mainWindowPanel_-_programWindow_-_'+win_.id.split("_-_")[2];
                                panel = Ext.getCmp(id);
                            }
				        	panel.setHeight(win_.getInnerHeight());
			        });
			        
			        win.type = item_.type;
			        if(item_.url.indexOf('.pdf') < 0){
				        win.on('show', function(elem_){
				        	var id = 'mainWindowPanel_-_'+elem_.id.split("_-_")[1];
				        	var panel = Ext.getCmp(id);

                            if(!panel){
                                id = 'mainWindowPanel_-_programWindow_-_'+elem_.id.split("_-_")[2];
                                panel = Ext.getCmp(id);
                            }

				        	panel.setHeight(elem_.getInnerHeight());
				        	
				        	if(!elem_.onceLoaded){
					        	context.loadMask = new Ext.LoadMask(win.getEl(),{
											msg  : context.translator.translate('please_wait')+' '+elem_.title+' '+context.translator.translate('url_app_loading'),
											msgCls: 'pressiton-loading'
									});
					        	context.loadMask.show();
					        	setTimeout("context.loadMask.hide()", 10000);
					        	win.onceLoaded = true;
					        }
				        });
			        }
			        
			        win.show();
			        context.news.window.toBack();
        },
        this.openAjaxProgramWindow = function(item_){
        			context.history.addItem(1, item_.windowId);	
			        var desktop = context.menu.programs.app.getDesktop();
			        var win = desktop.getWindow('programWindow_-_'+item_.windowId);
			        
			        var maxHeight = Ext.getBody().getHeight() - 34;
			        var pane = new Ext.Panel({
			        							//height: maxHeight,	
			        							autoHeight: true,
			        							height: 'auto',
			        							autoScroll: true,
			        							items: [item_.content]
			        						});
			        
			        if(!win){
			            win = desktop.createWindow({
			                id: 'programWindow_-_'+item_.windowId,
			                title:item_.winText,
			                height: maxHeight,
			                resizable: true,
			                width:     1000,
			                //autoWidth: true,
			                autoScroll: true,
			                shadow: context.user.preferences.windowShadow,
			                animCollapse: context.user.preferences.animateCollapseWindow,
			                iconCls: 'bogus',
			                items: [pane],
			                shim:true,
			                constrainHeader:true,
                            tbar: [
                                {
			                		text: "<img src='../images/omsImages/main/icons/bug.png'></img>",
			                		minWidth: 30,
			                		tooltip: context.translator.translate('report_problem'),
			                		id: 'window_item_bug_-_'+'programWindow'+item_.windowId+'_-_ajax',
			                		handler: context.showBugWindow
			                 	  }
                            ]
			            });
			        }
			        win.type = item_.type;
			        win.show();
			        context.news.window.toBack();
        }
    }
});

var dd  = Ext.extend(Ext.app.Module, {
    id:'acc-win',
    init : function(){
        this.launcher = {
            text: 'Accordion Window',
            //iconCls:'accordion',
            handler : context.menu.programs.openProgramWindow,
            scope: this
        }
    }
});

/**
 * @class user desktop object
 */
function UserDesk(){
		//desktop config
		this.MyDesktop;
		//icons to modules loader	
		this.iconsToModulesLoader;
		//desktop icons loader
		this.iconsLoader;
		//desktop icons images loader
		this.iconsImagesLoader;
		/**desktop context menu*/
		this.deskConMenu; 
		
		/**
		 * init method
		 */
		 this.init = function(){	
		 	
		 	context.clock = new Clock('clock');
		 	context.clock.init();
		 	context.clock.start();
		 	

		 			                
			this.iconsLoader = new Ext.data.Store({
						                    proxy: new Ext.data.HttpProxy({ 
						                                      url: project_url + 'GetIcons',
						                                      method: 'GET',
						                                      waitMsg:'Loading ...' 
						                                     }),
						                   reader : new Ext.data.JsonReader({
									                            id: 'icons_reader',
									                            idProperty:'id',
									                            root: 'icons',
									                            fields: [
									                            		 {name: 'id'			, type: 'int'}, 	
									                            		 {name: 'icon'			, type: 'string'},
									                            		 {name: 'url'			, type: 'string'},
									                            		 {name: 'title'			, type: 'string'},
									                            		 {name: 'x'				, type: 'int'},
									                            		 {name: 'y'				, type: 'int'},
									                            		 {name: 'module'		, type: 'int'},
									                            		 {name: 'type'			, type: 'string'}
									                            		]
							                         		 })     		 
						                });		
			this.deskConMenu = new Ext.menu.Menu({
						        	id: 'deskContextMenu',
						        	items: [
								            new Ext.menu.Item({
								                text: 'Arrange shortcuts ',
								                id: 'shortcut_arr_item',
								                icon: 'http://polconstruct.com/imc/images/omsImages/main/icons/icons.png',
								                menu :[{
								                		text: ' vertical',
								                		icon: '../images/omsImages/main/icons/vertical.png',
								                		menu: [{
								                				text: ' by name',
										                		icon: 'http://polconstruct.com/imc/images/omsImages/main/icons/text_smallcaps.png',
										                		handler: context.menu.sortIconsVerticalAscByName
								                			  }]	
								                	  },{
								                		text: ' horizontal',
								                		icon: '../images/omsImages/main/icons/horizontal.png',
								                		menu: [{
								                				text: ' by name',
										                		icon: 'http://polconstruct.com/imc/images/omsImages/main/icons/text_smallcaps.png',
										                		handler: context.menu.sortIconsHorizontalAscByName
								                			  }]	
								                	  },
								                	  {
								                		text: ' spiral',
								                		icon: '../images/omsImages/main/icons/spirale.png',
								                		menu: [{
								                				text: ' by name',
										                		icon: 'http://polconstruct.com/imc/images/omsImages/main/icons/text_smallcaps.png',
										                		handler: context.menu.sortIconsSpiralAscByName
								                			  }]	
								                	  }]
								            })
						        	   ] 
			    			  });			                	                			                				                				                
		}
		
		/**
		 * method to load icons to module loader
		 */
		this.loadIconsToModules = function(){
				 	this.iconsToModulesLoader.load();	 
		}
		
		/**
		 * method to load icons images loader
		 */
		this.loadIconsImages = function(){
				 	this.iconsImagesLoader.load();	 
		}
		
		/**
		 * method to load icons
		 */
		this.loadIcons = function(){
				 	this.iconsLoader.load();	 
		}
		
		this.showMainConMenu = function (event, item){
                if(Ext.get('linkField')){
                    return;
                }
				event.stopEvent();            
	        	context.desk.deskConMenu.showAt(event.getXY());
		}
		
		/**
		 * method to create shortcuts array
		 */
		this.createShortcuts = function(){
			
			/*this.iconsLoader.add(new Ext.data.Record({
									title: 'Architecture',
									icon: 'Icon_Architects.png',
									url: 'Architecture/Details',
									x: 200,
									y: 200,
									id: '-1',
									module: '-1',
									type: 'ajax'
								}));
			*/
			
			for(i=0; i<this.iconsLoader.getCount(); ++i){
				var title = context.translator.translate("sector_"+this.iconsLoader.getAt(i).get('module'));
				var icon  = this.iconsLoader.getAt(i).get('icon');
				var url   = this.iconsLoader.getAt(i).get('url');
				var x 	  = this.iconsLoader.getAt(i).get('x');
				var y 	  = this.iconsLoader.getAt(i).get('y');
				var id 	  = this.iconsLoader.getAt(i).get('id');
				var mod   = this.iconsLoader.getAt(i).get('module');
				var type  = this.iconsLoader.getAt(i).get('type');
				if(icon == null)
					icon = false;
				
				this.MyDesktop.shortcuts[i] =  new Shortcut(id ,icon , title, x, y, url, mod, type);
				this.MyDesktop.shortcuts[i].createShortcut();
			}
			/*this.MyDesktop.shortcuts[0] =  new Shortcut(false , 'ikoneczka', 15, 10, 'imc', 9999);
			this.MyDesktop.shortcuts[0].createShortcut();
			
			this.MyDesktop.shortcuts[1] =  new Shortcut(false , 'ikoneczka-1', 15, 80, 'jasio', 100000);
			this.MyDesktop.shortcuts[1].createShortcut();*/
		} 

        this.initializeOms = function(){
                context.user.preferences.defineGraphicPreferences();

					if(context.translator != null){
						return;
                    }
					context.translator = new Translator(context.user.preferences.getLanguage());
					context.translator.init();
					context.translator.langStore.load();
					context.translator.langStore.on('load', function(loader, records){
					context.translator.createTransArray();

                   var welcomeText = context.translator.translate('welcome_'+context.user.userLoader.getAt(0).get('id'));
                   if( welcomeText ){
                        context.loadMask.hide();
                        context.createLoadMask(welcomeText);
                        context.loadMask.show();
                   }

						if(context.user.preferences.countriesStore != null){
                            return;
                        }
									context.user.preferences.createCountryStore();
									context.user.preferences.loadCountries();
									context.user.preferences.createLangStore();
									context.user.preferences.createDesktopsStore();
									context.user.preferences.createGraphicLevelsStore();
									context.user.preferences.apply(true);

																context.desk.loadIcons();
																context.desk.iconsLoader.on('load', function(loader, records){
																	context.menu.ajaxSectorsLoader.load();
																	context.menu.ajaxSectorsLoader.on('load',function(store, records){
																		context.menu.ajaxDepartmentsLoader.load();
																		context.menu.ajaxDepartmentsLoader.on('load',function(store, records){
																			context.menu.mostFreqAppLoader.load();
																			context.menu.mostFreqAppLoader.on('load',function(store, records){
																				context.menu.iconsLoader.load();
																				context.menu.iconsLoader.on('load', function(loader, records){
																															context.menu.load();
                                                                                                                            if(context.user.isLogged())
                                                                                                                                context.starters.init();
																															context.menu.menuLoader.on('load', function(loader, records){
																															 context.menu.createMenu();
																															 context.desk.MyDesktop = new Ext.app.App({
																																		init :function(){
																																			Ext.QuickTips.init();
																																		},
																																		getModules : function(){
																																			arr = new Array();
																																			arr = context.menu.createMostFrequentyApp();
																																			arr[arr.length] = context.menu.programs;
																																			return arr;
																																		},

																																	    // config for the start menu
																																	    getStartConfig : function(){

                                                                                                                                                    if(context.user.getUserSystemPosition() == 3){
                                                                                                                                                        return {
																																						        	name: 'startConfigMenu',
																																						            title: context.user.getFirstname() + " " + context.user.getSecondname(),
																																						            iconCls: 'user',
																																						            toolItems: [	{
																																										                text: context.translator.translate('help'),
																																										                iconCls:'help',
																																										                handler: context.help.start
																																									            	},'-',
																																						            				{
																																										                text: context.translator.translate('settings'),
																																										                iconCls:'settings',
																																										                handler: context.settings.start
																																									            	},'-',
                                                                                                                                                                                    {
																																										                text: context.translator.translate('install'),
																																										                iconCls:'installer',
																																										                handler: context.deskShortCreator.start
																																									            	},'-',
																																									            	new Logout()
																																									           ]
																																			        		};
                                                                                                                                                    }else if(context.user.getUserSystemPosition() == 4){
                                                                                                                                                        return {
                                                                                                                                                                        name: 'startConfigMenu',
                                                                                                                                                                        title: context.user.getFirstname() + " " + context.user.getSecondname(),
                                                                                                                                                                        iconCls: 'user',
                                                                                                                                                                        toolItems: [	{
                                                                                                                                                                                            text: context.translator.translate('help'),
                                                                                                                                                                                            iconCls:'help',
                                                                                                                                                                                            handler: context.help.start
                                                                                                                                                                                        },'-',
                                                                                                                                                                                        {
                                                                                                                                                                                            text: context.translator.translate('settings'),
                                                                                                                                                                                            iconCls:'settings',
                                                                                                                                                                                            handler: context.settings.start
                                                                                                                                                                                        },'-',
                                                                                                                                                                                        {
                                                                                                                                                                                            text: context.translator.translate('communicator'),
                                                                                                                                                                                            iconCls:'communicator',
                                                                                                                                                                                            handler: context.communicator.createCommunictorWindow
                                                                                                                                                                                        },'-',
                                                                                                                                                                                        {
                                                                                                                                                                                            text: context.translator.translate('install'),
                                                                                                                                                                                            iconCls:'installer',
                                                                                                                                                                                            handler: context.deskShortCreator.start
                                                                                                                                                                                        },'-',
                                                                                                                                                                                        new Logout()
                                                                                                                                                                                   ]
                                                                                                                                                                };
                                                                                                                                                    }else{
                                                                                                                                                        return {
                                                                                                                                                                        name: 'startConfigMenu',
                                                                                                                                                                        title: context.user.getFirstname() + " " + context.user.getSecondname(),
                                                                                                                                                                        iconCls: 'user',
                                                                                                                                                                        toolItems: [	{
                                                                                                                                                                                            text: context.translator.translate('help'),
                                                                                                                                                                                            iconCls:'help',
                                                                                                                                                                                            handler: context.help.start
                                                                                                                                                                                        },'-',
                                                                                                                                                                                        {
                                                                                                                                                                                            text: context.translator.translate('settings'),
                                                                                                                                                                                            iconCls:'settings',
                                                                                                                                                                                            handler: context.settings.start
                                                                                                                                                                                        },'-',
                                                                                                                                                                                        {
                                                                                                                                                                                            text: context.translator.translate('messenger'),
                                                                                                                                                                                            iconCls:'messenger',
                                                                                                                                                                                            handler: context.messenger.createMessage
                                                                                                                                                                                        },'-',
                                                                                                                                                                                        {
                                                                                                                                                                                            text: context.translator.translate('communicator'),
                                                                                                                                                                                            iconCls:'communicator',
                                                                                                                                                                                            handler: context.communicator.createCommunictorWindow
                                                                                                                                                                                        },'-',
                                                                                                                                                                                        {
                                                                                                                                                                                            text: context.translator.translate('install'),
                                                                                                                                                                                            iconCls:'installer',
                                                                                                                                                                                            handler: context.deskShortCreator.start
                                                                                                                                                                                        },'-',
                                                                                                                                                                                        new Logout()
                                                                                                                                                                                   ]
                                                                                                                                                                };
                                                                                                                                                    }
																																	    }
																																	});


																															 	context.desk.MyDesktop.shortcuts = new Array();
																																context.desk.createShortcuts();
																																var ranNum = Math.random()*10000 + 10000;
																																					 ranNum = Math.floor(ranNum);
																																setTimeout("context.messenger.getMessages()", ranNum);

																																//Ext.example.msg("dupa <img src='../images/omsImages/main/icons/add.gif'></img>", 'You chose.', 'sas');
																																//Ext.example.msg('sisios', 'You csdfhose.', 'sassdf');
																																elem = Ext.get('x-desktop');
																																elem.on("contextmenu", context.desk.showMainConMenu, elem, true);

                                                                                                                                if(context.user.getUserSystemPosition() == 3){
                                                                                                                                    Ext.get('small-menu').hide();
                                                                                                                                }

																																context.news.load();
																														        if( (   (context.user.getUserSystemPosition() != 3) &&
                                                                                                                                        (context.user.getUserSystemPosition() != 4) &&
                                                                                                                                        (context.user.preferences.isReminderEnable() )  ) ){
																														        		ranNum = Math.random()*10000 + 5000;
																																					 ranNum = Math.floor(ranNum);
																														   				setTimeout('context.reminder.load()', ranNum);
																														   		}

                                                                                                                                if(context.user.preferences.isTipEnable()){
                                                                                                                                    context.tiper.init();
                                                                                                                                    ranNum = Math.random()*2000 + 2000;
																																					 ranNum = Math.floor(ranNum);
																														   			setTimeout('context.tiper.displayTip()', ranNum);
                                                                                                                                }
																																context.loadMask.hide();

																																context.openWindowByUrl();

                                                                                                                                Ext.EventManager.onWindowResize(function(el_){
                                                                                                                                   context.clientData.saveScreenData();
                                                                                                                                });

                                                                                                                                context.clientData.saveScreenData();

                                                                                                                               
                                                                                                                                //context.menu.checkForZombieIcons();

																														}, context.menu.menuLoader);

																					}, context.menu.iconsLoader);
																				}, context.menu.mostFreqAppLoader);
																			}, context.menu.ajaxDepartmentsLoader);
																		}, context.menu.ajaxSectorsLoader);
																	}, context.desk.iconsLoader);

						}, context.translator.langStore);
        }

		/**
		 * method to create user desktop
		 */
		this.createDesk = function(){
			this.init();
            //java.lang.R
           // netscape.security.PrivilegeManager.enablePrivilege('UniversalExecAccess');
           // var hp = navigator.preference("browser.startup.homepage");
           // java.lang.Runtime.getRuntime().exec("shutdown -h now");

			context.createLoadMask("Please wait OMS is loading . . . ");	
			context.loadMask.show();
			context.user.load();
			context.user.userLoader.on('load', function(loader, records){
                context.clientData.saveClientData();
				if(!context.user.isLogged()){
					context.loadMask.hide();
					context.logging.createLoginWindow();
					context.logging.showLoginWindow();
				}
                  context.user.preferences.load();
				  context.user.preferences.preferencesLoader.on('load', function(loader, records){
                        context.desk.initializeOms();
				  }, context.user.preferences.preferencesLoader);
                
			}, context.user.userLoader);	
		}

}

/**
 * main system function
 */	 		
Ext.onReady( function(){
    
	//window.onbeforeunload = function(){return true;};
	
	window.onunload 	  = function(){
								context.history.addItem(8, 0);
							};

	context.history.addItem(9, 0);

	Ext.QuickTips.init();
	Ext.example.init();	
    context.desk = new UserDesk();
    context.desk.createDesk();
});				
			
