function WindowHelper(){}
    
    WindowHelper.PopupNames =
    {
        FullSize : "FullSize",
	    Help : "Help",
	    ShowPolls : "ShowPolls",
	    PreviewSlide : "PreviewSlide"
    }

	WindowHelper.IsOpen = function (wnd)
	{
		if (!wnd)
		{
			return false;
		}
		if (wnd == null)
		{
			return false;
		}
		if (wnd.closed == true)
		{
			return false;
		}
		return true;
	}

	WindowHelper.CreateNamedPopup=function(popupName, name, width, height, scrollbars, resizeable)
	{
		return this.CreatePopup(WindowHelper.GetPopupURL(popupName), name, width, height, scrollbars, resizeable);
	}

	WindowHelper.CreatePopup=function(sUrl,sName,nWidth,nHeight,fScrollbars,fResizeable)
	{
		// extra offset for mac
		var offsetX = 0;
		var offsetY = 0;

		nWidth=Math.floor(nWidth) + offsetX;
		nHeight=Math.floor(nHeight) + offsetY;

		var sFeatures = "width=" + nWidth + ",height=" + nHeight;
	       
		if (fScrollbars)
		{
			sFeatures += ",scrollbars=yes";
		}
		else
		{
			sFeatures += ",scrollbars=no";
		}
	        
		if (fResizeable)
		{
			sFeatures += ",resizable=yes";
		}
		else
		{
			sFeatures += ",resizable=no";
		}

		this.PlayerDetect = new SfKernel.PlayerDetect();
		var popup = window.open(sUrl, sName, sFeatures);
		
		if(popup)
		{
		    if(!this.PlayerDetect.IsChrome())
		    {
		        // chrome has troubles positioning after resize
		        this.Center(popup, nWidth, nHeight);
		    }
		}		
		return popup;
	}

	WindowHelper.Center=function(wnd,nWidth,nHeight)
	{
		var posX = Math.round((screen.availWidth-nWidth)/2);
		var posY = Math.round((screen.availHeight - nHeight) / 2);
		wnd.moveTo(posX,posY);
	}

	WindowHelper.PopupHelp = function(sUrl, nWidth, nHeight) {
	    window.popuphelp = this.CreatePopup(sUrl, "__help", nWidth, nHeight, true, true);
	    if (!this.PlayerDetect.IsChrome()) {
	        WindowHelper.Center(window.popuphelp, nWidth, nHeight);
	    }
	    window.popuphelp.focus();
	}

	WindowHelper.MaximizeOrCenter = function(wnd, width, height)
	{
		if (WindowHelper.IsWidthOrHeightGreater(width, height))
		{
			WindowHelper.Maximize(wnd);
		}
		else
		{
			WindowHelper.Center(wnd, width, height);
		}
	}

	WindowHelper.Maximize = function(wnd) {
	    wnd.resizeTo(screen.availWidth, screen.availHeight);
	    if (!this.PlayerDetect.IsChrome()) {
	        wnd.moveTo(0, 0);
	    }
	}

	WindowHelper.IsWidthOrHeightGreater = function(width, height)
	{
		var screenWidth = screen.availWidth;
		var screenHeight = screen.availHeight;
		
		if (width > screenWidth || height > screenHeight)
		{
			return true;
			
		}
		else
		{
			return false;
		}
	}
	
    WindowHelper.GetPopupURL = function(popupName)
    {
	    switch (popupName)
	    {
		    case WindowHelper.PopupNames.Help:
		        if(Manifest.IsStandAlone)
		        {
		            return GlobalOptions.AppRoot + "/Players/Popups/Help/Overview.htm";
		        }
		        else
		        {
			        return GlobalOptions.AppRoot + "/Popups/Help/OverviewFullVersion.htm";
			    }
		    case WindowHelper.PopupNames.ShowPolls:
			    return GlobalOptions.AppRoot + "/Popups/Polls/PollList.aspx?" + SfKernel.RequestVariables.PlaybackTicketId + "=" + Manifest.PlaybackTicketId;
		    case WindowHelper.PopupNames.PreviewSlide:
			    return GlobalOptions.AppRoot + "/" + LayoutOptions.PreviewViewer;
		    case WindowHelper.PopupNames.FullSize:
			    return GlobalOptions.AppRoot + "/" + LayoutOptions.FullSizeViewer;
	    }
    }


