// Overide WindowUtilities getPageSize to remove dock height (for maximized windows)
WindowUtilities._oldGetPageSize = WindowUtilities.getPageSize;
WindowUtilities.getPageSize = function() {
	var size = WindowUtilities._oldGetPageSize();
	var dockHeight = $('dock').getHeight();

	size.pageHeight -= dockHeight;
	size.windowHeight -= dockHeight;
	return size;
};

// Overide Windows minimize to move window inside dock
Object.extend(Windows, {
	// Overide minimize function
	minimize: function(id, event) {
	var win = this.getWindow(id)
	if (win && win.visible) {
		// Hide current window
		win.hide();
		win.dockElement.className="dock_icon";
	}
	Event.stop(event);
	},
	close: function(id, event) {
	  var win = this.getWindow(id);
	  if (win) 
	    win.close();
	    if(win.options.destroyOnClose){
	    	win.dockElement.remove();
	    	win.destroy();
	    }
	  if (event)
	    Event.stop(event);
	},
	// Restore function
	restore: function(event) {
		$('dock').cleanWhitespace();
		var buttons = $A($('dock').childNodes);
		buttons.each(function(but){
			if (but.id != 'bookmarks') but.className="dock_icon";
		});
		var element = Event.element(event);
		// Show window
		element.win.show();
		element.win.toFront();
		element.className = "dock_icon_active";
	}
});

// blur focused window if click on document
// Event.observe(document, "click", function(event) {
// 	var e = Event.element(event);
// 	if(e.tagName!='IMG'){
// 		var win = e.up(".dialog");
// 		var dock = e == $('dock') || e.up("#dock");
// 		if(!win && !dock && Windows.focusedWindow) {
// 			Windows.blur(Windows.focusedWindow.getId());
// 		}
// 	}
// })


var airpics = Class.create();

airpics.prototype = {
    initialize: function(theme,blurtheme){
        this.theme = theme;
        this.blurtheme = blurtheme;
    },
    newWindow: function(winID,winTitle,options) {
        var winOptions = (options) ? (options) : '';
        Object.extend(winOptions,{
            title: winTitle,
            id: winID,
            className: this.theme,
            focusClassName: this.theme,
            blurClassName: this.blurtheme,
            showEffect: Element.show,
            hideEffect: Element.hide,
            onClose: function(){win.dockElement.hide()},
            
            onFocus:function(){
           	    var win = Windows.getWindow(winID);
           	    //win.getContent().setStyle({overflow: 'auto'});
			    if (!win)
			      return;       
			    if (Windows.focusedWindow)
			      Windows.blur(Windows.focusedWindow.getId())
			
			    if (this.focusClassName)
			      win.changeClassName(this.focusClassName);  
			    Windows.focusedWindow = win;

                var buttons = $A($('dock').childNodes);
                buttons.each(function(but){if (but.id != 'bookmarks') but.className="dock_icon"});
                //If dockElement Exists
                if (Windows.focusedWindow.dockElement){
                	Windows.focusedWindow.dockElement.className = "dock_icon_active";
                }
            }
        });

        var win = new Window(winOptions);
        win.setConstraint(true, {left:0, right:0});

        var dockElement = document.createElement("span");
		dockElement.className = "dock_icon";
		dockElement.style.display = "none";
		//Connect Dock Element with window
		dockElement.win = win;
		$('dock').appendChild(dockElement);
		Event.observe(dockElement, "mouseup", Windows.restore);
		$(dockElement).update(win.getTitle());
		//Connect Window with Dock Element
		win.dockElement = dockElement;
	},
    destroyWindow: function(winID){
        Windows.getWindow(winID).destroy();
    },
    showWindow: function(winID){
    	var win = Windows.getWindow(winID);
        win.dockElement.style.display = "block";
        win.dockElement.className = "dock_icon_active";
        win.show();
        Windows.focus(winID);
		win.toFront();
    },
    setContent: function(winID,winUrl){
    	var win = Windows.getWindow(winID);
    	win.setAjaxContent(winUrl);
//     	urchinTracker('/html/'+winUrl);
    	pageTracker._trackPageview('/html/'+winUrl);
    	//win.dockElement.style.display = "block";
    	//win.dockElement.className = "dock_icon_active";
    	//Windows.focus(winID);
    	//win.toFront();
    },
    setContentParams: function(winID,winUrl,winParams){
    	var win = Windows.getWindow(winID);
    	win.setAjaxContent(winUrl,winParams);
//     	urchinTracker('/html/'+winUrl);
    	pageTracker._trackPageview('/html/'+winUrl);
    },
    setConstraint: function(winID, bool, padding){
    	Windows.getWindow(winID).setConstraint(bool, padding);
    }
}

