﻿function showOverlay(id, visible, options) 
{  
	options = options || {};   
	var zindex = options.zindex || 50;  
	var opacity = options.opacity || 70;  
	var opaque = (opacity / 100);  
	var bgcolor = options.bgcolor || '#000000';  
	var overlay = document.getElementById(id);  
	if (visible) 
	{    
		overlay.style.opacity = opaque;
		overlay.style.MozOpacity = opaque;                       
		overlay.style.filter = 'alpha(opacity=' + opacity + ')';     
		overlay.style.zIndex = zindex;            
		overlay.style.backgroundColor = bgcolor;      
		overlay.style.display = 'block';
		if (is_ie6)
		{
			overlay.style.width = document.body.scrollWidth + 20 + 'px';
			overlay.style.height = document.body.scrollHeight + 16 + 'px';
			overlay.style.position = "absolute";
		}
	} 
	else 
	{     
		overlay.style.display = 'none';  
	}
}

/*
function resizeGrayOut()
{
	var overlay = document.getElementById("overlay");  
	//overlay.style.width = getTotalWidth();    
	//overlay.style.height = getTotalHeight();    
	showMessageBox();  
}

function getTotalHeight()
{
    var h = document.documentElement.scrollHeight; 
    return h + "px";
}

function getTotalWidth()
{
    var w = document.documentElement.offsetWidth + document.documentElement.scrollLeft; 
    return w;
}
*/


function showMessageBox()
{
	var msg = document.getElementById("messageBox");
	var messageBoxContainer = findDivByClassname(msg, "messageBoxContainer");
	var height = document.documentElement.clientHeight - messageBoxContainer.offsetHeight;
	if (height < 100)
	    messageBoxContainer.style.height = 100 + "px";
	else
	    messageBoxContainer.style.height = "auto";
	msg.style.visibility = "visible";
	moveBox("messageBox");
	document.onkeydown = messageBoxKeyDown;
	if (is_ie6)
	{
		fixIEPopup(msg);
		var boxContent = findDivByClassname(msg, "boxContent");
		var box = findDivByClassname(msg, "box");
		//msg.style.height = boxContent.offsetHeight + 100 + "px";
		//box.style.overflow = "visible";
	}
	if (is_ie7)
	{
		var box = findDivByClassname(msg, "box");
        box.style.width = 600 + "px";	
		var boxBottomLeft = findDivByClassname(msg, "boxBottomLeft");
		boxBottomLeft.style.width = 300 + "px";
		var boxBottomRight = findDivByClassname(msg, "boxBottomRight");
		boxBottomRight.style.width = 300 + "px";
	}
}

function closeMessageBox(link)
{
	if (link && link.getAttribute("callback") != null)
	{
		link.enabled = false;
		eval(link.getAttribute("callback") + "();");
	}
	var msg = document.getElementById("messageBox");
	msg.style.visibility = "hidden";    
	var overlay = document.getElementById("overlay");  
	overlay.style.display = "none";
	if (is_ie6)
	{
		var boxContent = findDivByClassname(msg, "boxContent");
		boxContent.style.height = 0 + "px";
	}
}

function moveBox(id)
{
    var box = document.getElementById(id);
    var height = parseInt((document.documentElement.clientHeight - box.offsetHeight) / 2 * 0.85) + document.documentElement.scrollTop
    var width = parseInt((document.documentElement.offsetWidth - box.offsetWidth) / 2) + document.documentElement.scrollLeft
	/*
	box.style.marginLeft = -1 * parseInt(box.offsetWidth / 2) + document.documentElement.scrollLeft + "px";
	box.style.marginTop = -1.5 * parseInt(box.offsetHeight / 2) + document.documentElement.scrollTop + "px";
	*/
	box.style.top = height + "px";
	box.style.left = width + "px";
}

function messageBoxKeyDown(e)
{
	if (!e)
		e = window.event;
	if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13))
	{
        var buttonOK = document.getElementById("messageBoxOK");
        if (buttonOK.style.display == "inline-block")
            buttonOK.click();
        var buttonYes = document.getElementById("messageBoxYes");
        if (buttonYes.style.display == "inline-block")
            buttonYes.click();
		return false;
	}
	else
	{
	    if ((e.which && e.which == 27) || (e.keyCode && e.keyCode == 27))
	    {
            var buttonOK = document.getElementById("messageBoxOK");
            if (buttonOK.style.display == "inline-block")
                buttonOK.click();
            var buttonNo = document.getElementById("messageBoxNo");
            if (buttonNo.style.display == "inline-block")
                buttonNo.click();
            return false;
        }
	    else
		    return true; 
	}
}

function moveMessageBox()
{
    moveBox("messageBox");
}

window.onresize = moveMessageBox;
addScrollEvent(moveMessageBox);


function alertMessage(header, body, headerClass, callbackFunctionName)
{
    var buttonYes = document.getElementById("messageBoxYes");
    var buttonNo = document.getElementById("messageBoxNo");
    var buttonOK = document.getElementById("messageBoxOK");
    buttonOK.style.display = "inline-block";
    buttonYes.style.display = "none";
    buttonNo.style.display = "none";
    var lblHeader = document.getElementById("messageBoxHeader");
    var lblBody = document.getElementById("messageBoxBody");
    lblHeader.innerHTML = header;
    lblBody.innerHTML = body; 
    if (headerClass == undefined || headerClass == "")
        headerClass = "grey";
    lblHeader.parentNode.className = headerClass;
	showOverlay("overlay", true, {'zindex':'50', 'bgcolor':'#606000', 'opacity':'20'});
	showMessageBox();
    if (callbackFunctionName != undefined && callbackFunctionName != "")
    {
    	//buttonOK.onclick = function(){setTimeout("window." + callbackFunctionName + "();", 0);};
    	buttonOK.setAttribute("callback", callbackFunctionName);
    }
}

function confirmMessage(clickedElement, header, body, headerClass)
{
	if (is_ie6)
		return confirm(header + "\n\n" + body);
    var confirmed = document.getElementById("messageBoxConfirmed");
    if (confirmed.value == "true")
        return true;
    var buttonYes = document.getElementById("messageBoxYes");
    var buttonNo = document.getElementById("messageBoxNo");
    var buttonOK = document.getElementById("messageBoxOK");
    buttonOK.style.display = "none";
    buttonYes.style.display = "inline-block";
    buttonNo.style.display = "inline-block";
    var lblHeader = document.getElementById("messageBoxHeader");
    var lblBody = document.getElementById("messageBoxBody");
    lblHeader.innerHTML = header;
    lblBody.innerHTML = body; 
    if (headerClass == undefined)
        headerClass = "grey";
    lblHeader.parentNode.className = headerClass
    buttonYes.onclick = function()
                        {
                                document.getElementById("messageBoxConfirmed").value = "true";
				eval(clickedElement.href.substr(11)); //remove "javascript:"
                        };
	showOverlay("overlay", true, {'zindex':'50', 'bgcolor':'#606000', 'opacity':'20'});
	showMessageBox();
	return false;
	
	// Klicka på delete --> visa box --> Y/N --> Y = trigga click, N = ingenting händer
}

var currentPopupDivID;

function popup(id, width)
{
    var content = document.getElementById(id);
    var contentContainer = document.getElementById("popupContentContainer");
    var messageBoxContainer = findDivByClassname(content, "messageBoxContainer");
    var popupBox = document.getElementById("popupBox");
    
    currentPopupDivID = id;
	while (content.childNodes.length > 0)
	{
		contentContainer.appendChild(content.firstChild);
	}
	if (width != undefined) {
	    if (width > document.documentElement.clientWidth)
	        width = document.documentElement.clientHeight - 40;
	    popupBox.style.width = width + "px";
	}

    var popupBoxHeight = popupBox.offsetHeight;
    var screenHeight = document.documentElement.clientHeight;
    var messageBoxContent = findDivByClassname(messageBoxContainer, "messageBoxContent");
    //alert(popupBoxHeight);
    //alert(screenHeight);
    if (screenHeight - popupBoxHeight < 100) {
        var availableHeight = screenHeight - 120;
        if (availableHeight < 0)
            availableHeight = 50;
        messageBoxContainer.style.height = availableHeight + "px";
        messageBoxContent.style.width = messageBoxContent.offsetWidth - 40 + "px";
    }
    else {
        messageBoxContainer.style.height = 100 + "%";
        messageBoxContent.style.width = 100 + "%";
    }

	showOverlay("overlay", true, {'zindex':'50', 'bgcolor':'#606000', 'opacity':'20'});
	showPopupBox();
}

function showPopupBox()
{
	var popup = document.getElementById("popupBox");
	popup.style.visibility = "visible";
	if (is_ie6)
		fixIEPopup(popup);
	moveBox("popupBox");
}

function fixIEPopup(popup)
{
	var boxContent = findDivByClassname(popup, "boxContent");
	if (boxContent == null)
		return;
	boxContent.style.overflow = "visible";
	var innerBoxLeft = findDivByClassname(popup, "innerBoxLeft");
	innerBoxLeft.style.height = boxContent.offsetHeight + "px";
	var innerBoxRight = findDivByClassname(popup, "innerBoxRight");
	innerBoxRight.style.height = boxContent.offsetHeight + "px";
	var boxBottomLeft = findDivByClassname(popup, "boxBottomLeft");
	boxBottomLeft.style.top = boxContent.offsetHeight + 6 + "px";
	var boxBottomRight = findDivByClassname(popup, "boxBottomRight");
	boxBottomRight.style.top = boxContent.offsetHeight + 6 + "px";
	var boxTop = findDivByClassname(popup, "boxTop");
	var box = findDivByClassname(popup, "box");
	var temp = box.offsetWidth - 13;
	if (temp < 0) 
		temp = 0;
	boxTop.style.width = temp;
	temp = box.offsetWidth - 12;
	if (temp < 0) 
		temp = 0;
	boxContent.style.width = temp;
	var boxBottom = findDivByClassname(popup, "boxBottom");
	boxBottom.style.width = boxTop.offsetWidth;
	boxBottom.style.top = boxBottomLeft.offsetTop - 1;
	boxContent.style.height = boxBottom.offsetTop;
	popup.style.height = boxContent.offsetHeight;
}

function closePopupBox(link)
{
	if (link && link.getAttribute("callback") != null)
	{
	    link.enabled = false;
	    eval(link.getAttribute("callback") + "();");
	}
    var box = document.getElementById("popupBox");
    box.style.visibility = "hidden";    
	var overlay = document.getElementById("overlay");  
	overlay.style.display = "none";

    var contentContainer = document.getElementById("popupContentContainer");
    var content = document.getElementById(currentPopupDivID);
    while (contentContainer.childNodes.length > 0)
	{
		content.appendChild(contentContainer.firstChild);
	}

	if (is_ie6)
	{
		var boxContent = findDivByClassname(box, "boxContent");
		boxContent.style.height = 0 + "px";
	}
}

function movePopupBox()
{
    moveBox("popupBox");
}


function GetContent(name)
{
    PageMethods.GetContentBlock(name, callback);
}

function callback(result)
{
    alertMessage("Info", result, "green");
}

window.onresize = movePopupBox;
addScrollEvent(movePopupBox);

