/**
 * @author Mark Cassar
 * @version 1.0.0 
 * @lastmodified 03/04/07
 */

if (!com) var com = new Object();
if (!com.CS) com.CS = new Object();
if (!com.CS.General) com.CS.General = new Object();
if (!com.CS.General.Window) com.CS.General.Window = new Object();

//Requirements
if (!Class) alert("com.CS.General.Popup: Please include Class com.CS.defineClass")
if (!com.CS.General.Window) alert("com.CS.General.Popup: Please include Class com.CS.General.Window")

//------------

com.CS.General.Popup = Class({
	name: "Popup",

	statics: {
		openPopup : function (url,params) {
			var id;
			if (params == null) {
				params = new Object();
			}
			if (params.id) {
				id = params.id;
			}
			else {
				id = "test";
				
			}
			var paramList = "";
			if (params.left != null) {
				paramList += "left="+params.left+",";
			}
			if (params.top != null) {
				paramList += "top"+params.top+",";
			}
			
			if (params.width != null) {
				paramList += "width="+params.width+",";
			}
			if (params.height != null) {
				paramList += "height="+params.height+",";
			}
			if (params.status == null) {
				params.status = 0;
			}
			paramList += "status="+params.status+",";
			if (params.toolbar == null) {
				params.toolbar = 0;
			}
			paramList += "toolbar="+params.toolbar+",";
			if (params.location == null) {
				params.location = 0;
			}

			paramList += "location="+params.location+",";
			if (params.menubar == null) {
				params.menubar = 0;
			}
			paramList += "menubar="+params.menubar+",";
			if (params.directories == null) {
				params.directories = 0;
			}
			paramList += "directories="+params.directories+",";
			if (params.scrollbars == null) {
				params.scrollbars = 0;
			}
			paramList += "scrollbars="+params.scrollbars+",";
			
			
			if (params.vAlign != null) {
				
				switch (params.vAlign) {
					case "top" : paramList += "top=0,";
						break;
					case "bottom" : 
						if (params.height) {
							var newWindowHeight = params.height;
							var screenHeight = com.CS.General.Window.getScreenHeight();
							var top = screenHeight - newWindowHeight;
							var offsetTop = screen.availTop;
							if (offsetTop) {
							    top += offsetTop;
							}
							paramList += "top="+top+",";
						}
					
						
						break;
					case "middle" : 
						if (params.height) {
							var newWindowHeight = params.height;
							var screenHeight = com.CS.General.Window.getScreenHeight();
							var top = (screenHeight - newWindowHeight)/2;
							var offsetTop = screen.availTop;
							if (offsetTop) {
							    top += offsetTop;
							}
							
							paramList += "top="+top+",";
						}
						break;
				}
			}
			
			if (params.hAlign != null && params.height != null) {
				switch (params.hAlign) {
					case "left" : paramList += "left=0,";
						break;
					case "middle" : 
						if (params.width) {
							var newWindowWidth = params.width;
							var screenWidth = com.CS.General.Window.getScreenWidth();
							var left = (screenWidth - newWindowWidth)/2;
							var offsetLeft = screen.availLeft;
							if (offsetLeft) {
							    left += offsetLeft;
							}
							paramList += "left="+left+",";
						}
						break;
					case "right" : 
						if (params.width) {
							var newWindowWidth = params.width;
							var screenWidth = com.CS.General.Window.getScreenWidth();
							var left = (screenWidth - newWindowWidth);
							var offsetLeft = screen.availLeft;
							if (offsetLeft) {
							    left += offsetLeft;
							}
							paramList += "left="+left+",";
						}
						break;
				}
			}
			
			
			
			
			
			paramList = paramList.substring(0,paramList.length-1);
			var windowPtr = window.open(url,id,paramList)
			return windowPtr;
			
		},
		popupBlocker : function() {
			var checkPopup = com.CS.General.Popup.openPopup("",{width:1,height:1,left:0,top:0,scrollbars:0});
			var popupsBlocked;
			if (checkPopup) {
				popupsBlocked = false;
				
			}
			else
			{
				popupsBlocked  = true;	
			}
			checkPopup.close();
			return popupsBlocked;
			 /* = com.CS.General.PopUp.openPopup("",{width:1,height:1,left:0,top:0,scrollbars:0})
			
			 var popUpsBlocked;
			 if(checkPopup)
			   popUpsBlocked = false;
			 else
			    popUpsBlocked = true;
			 checkPopup.close();
			 return popUpsBlocked;*/
		},
		hidePopup : function() {
            hidePopup_element.style.display = 'none';
            hidePopup_element.style.left = '-2000px'
        },
        showPopup : function(showElem,closeElem) {
            showElem.style.position = 'absolute';
            showElem.style.display = '';
            var itemWidth = com.CS.General.Item.getOuterWidth(showElem);
            var itemHeight = com.CS.General.Item.getOuterHeight(showElem);
            var left, top;
            left = (com.CS.General.Window.getWidth() - itemWidth) / 2;
            top = (com.CS.General.Window.getHeight() - itemHeight) / 2;
            showElem.style.left = left + 'px';
            showElem.style.top ='100px';
            hidePopup_element = showElem;
            com.CS.General.Listener.addEventListener(closeElem,"onclick",this.hidePopup);
            closeElem.style.cursor = 'pointer';
        }
		
	}
});
