﻿// Modal Dialog Box
// copyright 8th July 2006 by Stephen Chapman
// http://javascript.about.com/\
//   http://javascript.about.com/library/blmodald1.htm
// permission to use this Javascript on your web page is granted
// provided that all of the code in this script (including these
// comments) is used without any alteration
function pageWidth()
{
    return window.innerWidth != null? window.innerWidth: document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth:document.body != null? document.body.clientWidth:null;
}
function pageHeight()
{
    return window.innerHeight != null? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight:document.body != null? document.body.clientHeight:null;
}
function posLeft()
{
    return typeof window.pageXOffset != 'undefined' ? window.pageXOffset:document.documentElement && document.documentElement.scrollLeft? document.documentElement.scrollLeft:document.body.scrollLeft? document.body.scrollLeft:0;
}
function posTop() 
{
    return typeof window.pageYOffset != 'undefined' ? window.pageYOffset:document.documentElement && document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop?document.body.scrollTop:0;
}
function $(x)
{
    return document.getElementById(x);
}
function scrollFix()
{
    var obol=$('ol');
    obol.style.top=posTop()+'px';
    obol.style.left=posLeft()+'px'
}
function sizeFix()
{
    var obol=$('ol');
    obol.style.height=pageHeight()+'px';
    obol.style.width=pageWidth()+'px';
}
function kp(e)
{
    ky=e?e.which:event.keyCode;
    if(ky==88||ky==120)
        hidePopUp();
    return false
}
function inf(h)
{
    tag=document.getElementsByTagName('select');
    for(i=tag.length-1;i>=0;i--)
        tag[i].style.visibility=h;
    tag=document.getElementsByTagName('iframe');
    for(i=tag.length-1;i>=0;i--)
        tag[i].style.visibility=h;
    tag=document.getElementsByTagName('object');
    for(i=tag.length-1;i>=0;i--)
        tag[i].style.visibility=h;
}
function showPopUp(obl, wd, ht)
{
    var h='hidden';
    var b='block';
    var p='px';
    var obol=$('ol');
    var obbxd = $('mbd');
    obbxd.innerHTML = $(obl).innerHTML;
    
    //dd
    clearControlsValues("input", 'mbd');
    clearControlsValues("textarea", 'mbd');
    clearControlsValues("select", 'mbd');
    
    obol.style.height=pageHeight()+p;
    obol.style.width=pageWidth()+p;
    obol.style.top=posTop()+p;
    obol.style.left=posLeft()+p;
    obol.style.display=b;
    var tp=posTop()+((pageHeight()-ht)/2)-12;
    var lt=posLeft()+((pageWidth()-wd)/2)-12;
    var obbx=$('mbox');
    obbx.style.top=(tp<0?0:tp)+p;
    obbx.style.left=(lt<0?0:lt)+p;
    obbx.style.width=wd+p;
    obbx.style.height=ht+p;
    inf(h);
    obbx.style.display=b;
    return false;
}
function hidePopUp(divName)
{
    var v='visible';
    var n='none';
    $('ol').style.display=n;
    $('mbox').style.display=n;
    inf(v);
    document.onkeypress='';
    updateSourceControls(divName);
}
function initmb()
{
    var ab='absolute';
    var n='none';
    var obody=document.getElementsByTagName('body')[0];
    var frag=document.createDocumentFragment();
    var obol=document.createElement('div');
    obol.setAttribute('id','ol');
    obol.style.display=n;
    obol.style.position=ab;
    obol.style.top=0;
    obol.style.left=0;
    obol.style.zIndex=998;
    obol.style.width='100%';
    frag.appendChild(obol);
    var obbx=document.createElement('div');
    obbx.setAttribute('id','mbox');
    obbx.style.display=n;
    obbx.style.position=ab;
    obbx.style.zIndex=999;
    var obl=document.createElement('span');
    obbx.appendChild(obl);
    var obbxd=document.createElement('div');
    obbxd.setAttribute('id','mbd');
    obl.appendChild(obbxd);
    frag.insertBefore(obbx,obol.nextSibling);
    obody.insertBefore(frag,obody.firstChild);
    window.onscroll = scrollFix;
    window.onresize = sizeFix;
}

function clearControlsValues(tagName, divName)
{
    var theDiv = document.getElementById(divName);
    var theInputs = theDiv.getElementsByTagName(tagName);
    for (i=0; i< theInputs.length; i++)
    {
        if (theInputs[i].type != "button")
        {
            theInputs[i].value = "";
        }
    }//for
}

function processControls(tagName, theDiv, theMDiv)
{
    var theInputs = theDiv.getElementsByTagName(tagName);
    var theMInputs = theMDiv.getElementsByTagName(tagName);
    for (i=0; i< theInputs.length; i++)
    {
        if (theMInputs[i].value)
        {
            if (theInputs[i].type == "checkbox")
            {
                theInputs[i].checked = theMInputs[i].checked;
            }
            theInputs[i].value = theMInputs[i].value;
            //reset the values
            if (theMInputs[i].type != "button")
            {
                theMInputs[i].value = "";
            }
        }
    }//for
}

function updateSourceControls(divName)
{
    var theDiv = document.getElementById(divName);
    var theMDiv = document.getElementById("mbd");
    processControls("input", theDiv, theMDiv);
    processControls("textarea", theDiv, theMDiv);
    processControls("select", theDiv, theMDiv);
}

window.onload = initmb;
