﻿var IEmax = 2000;
var IE = (navigator.userAgent.indexOf('MSIE') != -1) ? true : false;
var xDialogBoxPosition = 0;
var yDialogBoxPosition = 0;
var ViewportHeight = 0;
var RealLength = 0;
var PageWidth = 0;
var PageHeight = 0;
var ShadowDiv;
var DialogDiv;

function GetViewportDimensions() {
var viewX = 0;
var viewY = 0;
if(self.innerWidth) {
   viewX=self.innerWidth;
   viewY=self.innerHeight;
   }
else if(document.documentElement&&document.documentElement.clientWidth) {
   viewX=document.documentElement.clientWidth;
   viewY=document.documentElement.clientHeight;
   }
else if(document.body) {
   viewX=document.body.clientWidth;
   viewY=document.body.clientHeight;
   }
return Array(viewX,viewY);
} // function GetViewportDimensions()

function GetPageDimensions() {
var pageX = 0;
var pageY = 0;
if(window.innerHeight && window.scrollMaxY) {
   pageX = window.innerWidth + window.scrollMaxX;
   pageY = window.innerHeight + window.scrollMaxY;
   }
else if(document.body.scrollHeight > document.body.offsetHeight) {
   pageX = document.body.scrollWidth;
   pageY = document.body.scrollHeight;
}
else if(document.body.scrollWidth && document.body.scrollHeight) {
   pageX = document.body.scrollWidth;
   pageY = document.body.scrollHeight;
}
else {
   pageX = document.body.offsetWidth;
   pageY = document.body.offsetHeight;
     }
var viewDimensions = GetViewportDimensions();
if(pageX < viewDimensions[0]) { pageX = viewDimensions[0]; }
if(pageY < viewDimensions[1]) { pageY = viewDimensions[1]; }
else if(IE) { 
   pageY += 25;
   RealLength = pageY;
   ViewportHeight = viewDimensions[1];
   if(pageY > IEmax) { pageY = IEmax; }
   }
return Array(pageX,pageY);
} // function GetPageDimensions()

function ShadeTheWindow(shadow) {
var pageDimensions = GetPageDimensions();
PageWidth = pageDimensions[0];
PageHeight = pageDimensions[1];
ShadowDiv = document.getElementById(shadow);
ShadowDiv.style.width = PageWidth + "px";
ShadowDiv.style.height = PageHeight + "px";
ShadowDiv.style.display = "block";
} // function ShadeTheWindow();

function PositionDialogDiv() {
var xScrollPosition = window.pageXOffset ? window.pageXOffset : document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft;
var yScrollPosition = window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
if(IE && PageHeight == IEmax) { 
   var shadowpos = ( yScrollPosition < (IEmax - ViewportHeight) ) ? 0 : yScrollPosition - 1;
   if( (shadowpos + PageHeight) > RealLength ) { shadowpos = RealLength - IEmax; }
   ShadowDiv.style.top = shadowpos + "px";
}
var dArr = GetViewportDimensions();
remWidth = parseInt(DialogDiv.style.width.replace("px", ""));
if (DialogDiv.style.height != "")
    remHeight = parseInt(DialogDiv.style.height.replace("px", ""));
else 
    remHeight = 100;

DialogDiv.style.left = dArr[0] / 2 - (remWidth/2) + xScrollPosition + "px";  //xDialogBoxPosition + xScrollPosition + "px";
DialogDiv.style.top = dArr[1] / 2 - (remHeight/2)  + yScrollPosition + "px"; ; //yDialogBoxPosition + yScrollPosition + "px";
} // function PositionDialogDiv()

function DisplayDialogDiv(dialog) {
DialogDiv = document.getElementById(dialog);
if(xDialogBoxPosition == 0 && yDialogBoxPosition == 0) {
   xDialogBoxPosition = parseInt(DialogDiv.style.left);
   yDialogBoxPosition = parseInt(DialogDiv.style.top);
   }
PositionDialogDiv();
DialogDiv.style.display = "block";
window.onscroll = PositionDialogDiv;
} // function DisplayDialogDiv()

function PresentDialogDiv(shadow,dialog) {
ShadeTheWindow(shadow);
DisplayDialogDiv(dialog);
} // function PresentDialogDiv()

function RemoveDialogDiv() {
DialogDiv.style.display = "none";
ShadowDiv.style.display = "none";
}

