﻿var gHasPendingPopup = false;
var gPendingPopupUrl = null;
var gPendingPopupWidth = null;
var gPendingPopupHeight = null;
var gPendingPopupReturnFunc = null;
var gLoading = "/SH/Assets/HTML/loading.html";
var gPopupMask = null;
var gPopupContainer = null;
var gPopFrame = null;
var gReturnFunc;
var gPopupIsShown = false;
var gHideSelects = true;
var gTabIndexes = new Array();
var gTabbableTags = new Array("A","BUTTON","TEXTAREA","INPUT","IFRAME");	

function setPopUpLoadingPage(loading) {
	gLoading = loading;
}

function registerPendingPopup(url, width, height, returnFunc) 
{
    gHasPendingPopup = true;
    gPendingPopupUrl = url;
    gPendingPopupWidth = width;
    gPendingPopupHeight = height;
    gPendingPopupReturnFunc = returnFunc;
}

function processPendingPopup()
{
    if ( gHasPendingPopup )
    {
        gHasPendingPopup = false;
        showPopWin(gPendingPopupUrl, gPendingPopupWidth, gPendingPopupHeight, gPendingPopupReturnFunc);
        return false;
    }
        else
    {
        return true;
    }
}


function addEvent(obj, evType, fn){
    if (obj.addEventListener){
        obj.addEventListener(evType, fn, false);
        return true;
    } else if (obj.attachEvent){
        var r = obj.attachEvent("on"+evType, fn);
        return r;
    } else {
        return false;
    }
}

function removeEvent(obj, evType, fn, useCapture){
    if (obj.removeEventListener){
        obj.removeEventListener(evType, fn, useCapture);
        return true;
    } else if (obj.detachEvent){
        var r = obj.detachEvent("on"+evType, fn);
        return r;
    } else {
        alert("Handler could not be removed");
    }
}

function getViewportHeight() {
    if (window.innerHeight!=window.undefined) return window.innerHeight;
    if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
    if (document.body) return document.body.clientHeight; 
    return window.undefined; 
}

function getViewportWidth() {
    if (window.innerWidth!=window.undefined) return window.innerWidth; 
    if (document.compatMode=='CSS1Compat') return document.documentElement.clientWidth; 
    if (document.body) return document.body.clientWidth; 
    return window.undefined; 
}

if (!document.all) {
    document.onkeypress = keyDownHandler;
}

function initPopUp() {
    body = document.getElementsByTagName('body')[0];
    popmask = document.createElement('div');
    popmask.id = 'popupMask';
    popcont = document.createElement('div');
    popcont.id = 'popupContainer';
    popcont.innerHTML = '' +
        '<div id="popupInner">' +
            '<div id="popupTitleBar" style="border:1px">' +
            '</div>' +
            '<iframe src="'+gLoading+'" style="width:570px;height:100%;background-color:transparent;" scrolling="no" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="570" height="100%"></iframe>' +
        '</div>';
    body.appendChild(popmask);
    body.appendChild(popcont);
	
    gPopupMask = document.getElementById("popupMask");
    gPopupContainer = document.getElementById("popupContainer");
    gPopFrame = document.getElementById("popupFrame");	
	
    var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10);
    if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE") > -1) {
        gHideSelects = true;
    }
	
    var elms = document.getElementsByTagName('a');
    for (i = 0; i < elms.length; i++) {
        if (elms[i].className.indexOf("submodal") == 0) { 
            elms[i].onclick = function(){
                var width = 600;
                var height = 400;
                params = this.className.split('-');
                if (params.length == 3) {
	                width = parseInt(params[1]);
	                height = parseInt(params[2]);
                }
                showPopWin(this.href,width,height,null); return false;
            }
        }
    }
    processPendingPopup();
}
addEvent(window, "load", initPopUp);


function showPopWin(url, width, height, returnFunc) 
{
    if ( gPopupContainer == null )
    {
        registerPendingPopup(url, width, height, returnFunc);
    }
        else
    {   
        gPopupIsShown = true;
        disableTabIndexes();
        gPopupMask.style.display = "block";
        gPopupContainer.style.display = "block";
        centerPopWin(width, height);
    	
        var titleBarHeight = parseInt(document.getElementById("popupTitleBar").offsetHeight, 10);
    	
        gPopupContainer.style.width = width + "px";
        gPopupContainer.style.height = (height+titleBarHeight) + "px";
        gPopFrame.style.width = parseInt(document.getElementById("popupTitleBar").offsetWidth, 10) + "px";
        gPopFrame.style.height = (height) + "px";
    	
        gPopFrame.src = url;
        gReturnFunc = returnFunc;    
        
        // for IE
	    if (gHideSelects == true) {
		    hideSelectBoxes();
	    }
    }        	
}

var gi = 0;
function centerPopWin(width, height) {
    if (gPopupIsShown == true) {
        if (width == null || isNaN(width)) {
            width = gPopupContainer.offsetWidth;
        }
        if (height == null) {
            height = gPopupContainer.offsetHeight;
        }
		
        var fullHeight = getViewportHeight();
        var fullWidth = getViewportWidth();
        var theBody = document.documentElement;
		var tempSt = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
		var tempSl = (document.documentElement && document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
		
		var scTop = parseInt(tempSt);
        var scLeft = parseInt(tempSl);
		
        gPopupMask.style.height = fullHeight + "px";
        gPopupMask.style.width = fullWidth + "px";
        gPopupMask.style.top = scTop + "px";
        gPopupMask.style.left = scLeft + "px";
		
        window.status = gPopupMask.style.top + " " + gPopupMask.style.left + " " + gi++;
		
        var titleBarHeight = parseInt(document.getElementById("popupTitleBar").offsetHeight, 10);
		
        if ( fullHeight > height )
        {
            gPopupContainer.style.top = (scTop + ((fullHeight - (height+titleBarHeight)) / 2)) + "px";
        }
        
        if ( fullWidth > width )
        {
            gPopupContainer.style.left =  (scLeft + ((fullWidth - width) / 2)) + "px";
        }
        
        
    }
}
addEvent(window, "resize", centerPopWin);
window.onscroll = centerPopWin;

function ReloadPage()
{
    window.location.reload(true);
}

function hidePopWin(callReturnFunc) {
    gPopupIsShown = false;
    restoreTabIndexes();
    if (gPopupMask == null) {
        return;
    }
    gPopupMask.style.display = "none";
    gPopupContainer.style.display = "none";
    if (callReturnFunc == true && gReturnFunc != null) {
        gReturnFunc(window.frames["popupFrame"].returnVal);
    }
    gPopFrame.src = gLoading;
    if (gHideSelects == true) {
        displaySelectBoxes();
    }
}

function keyDownHandler(e) {
    if (gPopupIsShown && e.keyCode == 9)  return false;
}

function disableTabIndexes() {
    if (document.all) {
        var i = 0;
        for (var j = 0; j < gTabbableTags.length; j++) {
            var tagElements = document.getElementsByTagName(gTabbableTags[j]);
            for (var k = 0 ; k < tagElements.length; k++) {
                gTabIndexes[i] = tagElements[k].tabIndex;
                tagElements[k].tabIndex="-1";
                i++;
            }
        }
    }
}

function restoreTabIndexes() {
    if (document.all) {
        var i = 0;
        for (var j = 0; j < gTabbableTags.length; j++) {
            var tagElements = document.getElementsByTagName(gTabbableTags[j]);
            for (var k = 0 ; k < tagElements.length; k++) {
                tagElements[k].tabIndex = gTabIndexes[i];
                tagElements[k].tabEnabled = true;
                i++;
            }
        }
    }
}

function hideSelectBoxes() {
	for(var i = 0; i < document.forms.length; i++) {
		for(var e = 0; e < document.forms[i].length; e++){
			if( (document.forms[i].elements[e].tagName == "SELECT") || (document.forms[i].elements[e].tagName == "OBJECT") || (document.forms[i].elements[e].tagName == "EMBED")) {
				document.forms[i].elements[e].style.visibility="hidden";
			}
		}
	}
}

function displaySelectBoxes() {
    for(var i = 0; i < document.forms.length; i++) {
        for(var e = 0; e < document.forms[i].length; e++){
            if( (document.forms[i].elements[e].tagName == "SELECT") || (document.forms[i].elements[e].tagName == "OBJECT") || (document.forms[i].elements[e].tagName == "EMBED")) {
            document.forms[i].elements[e].style.visibility="visible";
            }
        }
    }
}

if( typeof(Sys) != "undefined" && typeof(Sys.Application) != "undefined" )
{
  Sys.Application.notifyScriptLoaded();
}
