/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.com
 * http://www.extjs.com/license
 */
Ext.Desktop = function(app){
	this.taskbar = new Ext.ux.TaskBar(app);
	var taskbar = this.taskbar;
	
	var desktopEl = Ext.get('x-desktop');
    var taskbarEl = Ext.get('ux-taskbar');
    var xshortcuts = Ext.get('x-shortcuts');
	var yshortcuts = Ext.get('y-shortcuts');
	var zshortcuts = Ext.get('z-shortcuts');
	var qshortcuts = Ext.get('q-shortcuts');
	var wshortcuts = Ext.get('w-shortcuts');

    var windows = new Ext.WindowGroup();
    var activeWindow;
		
    function minimizeWin(win){
        win.minimized = true;
        win.hide();
    }

    function markActive(win){
        if(activeWindow && activeWindow != win){
            markInactive(activeWindow);
        }
        taskbar.setActiveButton(win.taskButton);
        activeWindow = win;
        Ext.fly(win.taskButton.el).addClass('active-win');
        win.minimized = false;
    }

    function markInactive(win){
        if(win == activeWindow){
            activeWindow = null;
            Ext.fly(win.taskButton.el).removeClass('active-win');
        }
    }

    function removeWin(win){
    	taskbar.removeTaskButton(win.taskButton);
        layout();
    }

    function layout(){
        desktopEl.setHeight(Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight());
    }
    Ext.EventManager.onWindowResize(layout);

    this.layout = layout;

    this.createWindow = function(config, cls){
    	var win = new (cls||Ext.Window)(
            Ext.applyIf(config||{}, {
                manager: windows,
                minimizable: true,
                maximizable: true
            })
        );
        win.render(desktopEl);
        win.taskButton = taskbar.addTaskButton(win);

        win.cmenu = new Ext.menu.Menu({
            items: [

            ]
        });

        win.animateTarget = win.taskButton.el;
        
        win.on({
        	'activate': {
        		fn: markActive
        	},
        	'beforeshow': {
        		fn: markActive
        	},
        	'deactivate': {
        		fn: markInactive
        	},
        	'minimize': {
        		fn: minimizeWin
        	},
        	'close': {
        		fn: removeWin
        	}
        });
        
        layout();
        return win;
    };

    this.getManager = function(){
        return windows;
    };

    this.getWindow = function(id){
        return windows.get(id);
    }
    
    this.getWinWidth = function(){
		var width = Ext.lib.Dom.getViewWidth();
		return width < 200 ? 200 : width;
	}
		
	this.getWinHeight = function(){
		var height = (Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight());
		return height < 100 ? 100 : height;
	}
		
	this.getWinX = function(width){
		return (Ext.lib.Dom.getViewWidth() - width) / 2
	}
		
	this.getWinY = function(height){
		return (Ext.lib.Dom.getViewHeight()-taskbarEl.getHeight() - height) / 2;
	}

    layout();

    if(xshortcuts){
        xshortcuts.on('click', function(e, t){
            if(t = e.getTarget('dt', xshortcuts)){
                e.stopEvent();
                var module = app.getModule(t.id.replace('-shortcut', ''));
                if(module){
                    module.createWindow();
                }
            }
        });
    }
	
    if(qshortcuts){
        qshortcuts.on('click', function(e, t){
            if(t = e.getTarget('dt', qshortcuts)){
                e.stopEvent();
                var module = app.getModule(t.id.replace('-shortcut', ''));
                if(module){
                    module.createWindow();
                }
            }
        });
    }
    if(wshortcuts){
        wshortcuts.on('click', function(e, t){
            if(t = e.getTarget('dt', wshortcuts)){
                e.stopEvent();
                var module = app.getModule(t.id.replace('-shortcut', ''));
                if(module){
                    module.createWindow();
                }
            }
        });
    }
	
	if(yshortcuts){
        yshortcuts.on('click', function(e, t){
            if(t = e.getTarget('dt', yshortcuts)){
                e.stopEvent();
                nazwa_klikniecia = t.id.replace('-shortcut', '');
				if (nazwa_klikniecia == "zs1rowecki") { 
					window.open('http://zs1rowecki.pl', 'zs1rowecki', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "carmart4u") { 
					window.open('http://carmart4u.us', 'carmart4u', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "stronalazienki") {
					window.open('http://stronalazienki.pl', 'stronalazienki', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "zyciezambrowa") { 
					window.open('http://zyciezambrowa.pl', 'zyciezambrowa', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "autoczesci") { 
					window.open('http://autoczesci.us', 'autoczesci', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "jaskra") { 
					window.open('http://jaskra-pasze.pl', 'jaskra', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "buldog") { 
					window.open('http://buldog.pl', 'buldog', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "fensternachmass") { 
					window.open('http://shop.fensternachmass.de', 'fensternachmass', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
            }
        });
    }
	if(zshortcuts){
        zshortcuts.on('click', function(e, t){
            if(t = e.getTarget('dt', zshortcuts)){
                e.stopEvent();
                nazwa_klikniecia = t.id.replace('-shortcut', '');
				if (nazwa_klikniecia == "artdeco") { 
					window.open('http://artdeco.eu.com', 'artdeco', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "shopping") { 
					window.open('http://shopping-city.pl', 'shipping', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "zabytkoweauta") { 
					window.open('http://zabytkoweauta.zambrow.org', 'zabytkoweauta', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "drewimpex") { 
					window.open('http://drewimpex.pl', 'drewimpex', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "26trav") { 
					window.open('http://26trav.com', '26trav', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "pronect") { 
					window.open('http://pronect.pl', 'pronect', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "ppp") { 
					window.open('http://ppp.zambrow.org', 'ppp', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "pluton") { 
					window.open('http://pluton.pc.pl', 'pluton', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "paintball") { 
					window.open('http://paintball.pluton.pc.pl', 'paintball', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
				if (nazwa_klikniecia == "komputery") { 
					window.open('http://komputery.pluton.pc.pl', 'komputery', 'menubar=yes,toolbar=yes,location=yes,directories=no,status=yes,scrollbars=yes,resizable=yes,fullscreen=no,channelmode=no,width=1024'); 
				}
            }
        });
    }
};

