

/**
 * Initializes popup code on load.  
 */
function initPopUp_sc() {
		
      // Add the HTML to the body
      scroll(0,10);
      theBody = document.getElementsByTagName('BODY')[0];
      popmask = document.createElement('div');
      popmask.id = 'popupMask_sc';
      popcont = document.createElement('div');
      popcont.id = 'popupContainer_sc';
      popcont.innerHTML = '' +
            '<div id="popupInner">' +
                  '<iframe style="width:100%;height:100%;background-color:transparent;" scrolling="no" frameborder="0" allowtransparency="true" id="popupFrame_sc" name="popupFrame_sc" width="100%" height="100%"></iframe>' +
            '</div>';
      theBody.appendChild(popmask);
      theBody.appendChild(popcont);
            
      gPopupMask = document.getElementById("popupMask_sc");
      gPopupContainer = document.getElementById("popupContainer_sc");
      gPopFrame = document.getElementById("popupFrame_sc");    
            
      // check to see if this is IE version 6 or lower. hide select boxes if so
      // maybe they'll fix this in version 7?
      var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10);
      if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE") > -1) {
            gHideSelects = true;
      }
      
}

 /**
      * @argument width - int in pixels
      * @argument height - int in pixels
      * @argument url - url to display
      * @argument returnFunc - function to call when returning true from the window.
      * @argument showCloseBox - show the close box - default true
      */

function showPopWin_sc(url, width, height) {
	
      gPopupIsShown = true;
      disableTabIndexes_sc();
      gPopupMask.style.display = "block";
      gPopupContainer.style.display = "block";
      
      // calculate where to place the window on screen

      centerPopWin_sc(width, height);
      
      gPopupContainer.style.width = width + "px";
      gPopupContainer.style.height = height + "px";
      
      setMaskSize_sc();
      gPopFrame.style.width = width +"px";
      gPopFrame.style.height = height + "px";
      
      // set the url
      gPopFrame.src = url;
      
            // for IE
      if (gHideSelects == true) {
            hideSelectBoxes_sc();
      }
    
}

//
var gi = 0;
function centerPopWin_sc(width, height) {

	if (gPopupIsShown == true) {
		if (width == null || isNaN(width)) {
			width = gPopupContainer.offsetWidth;
		}
		if (height == null) {
			height = gPopupContainer.offsetHeight;

		}

		

		//var theBody = document.documentElement;
		var theBody = document.getElementsByTagName("BODY")[0];
		
		//  if(navigator.appName == 'Microsoft Internet Explorer') {
			theBody.style.overflow = "hidden";
		/* } else {
			theBody.style.overflow = "auto";
		}*/

		
		var scTop = parseInt(theBody.scrollTop,10);
		var scLeft = parseInt(theBody.scrollLeft,10);
		
		gPopupMask.style.top = scTop + "px";
		gPopupMask.style.left = scLeft + "px";
	
		setMaskSize_sc();
		
		var fullHeight = getViewportHeight_sc();
		var fullWidth = getViewportWidth_sc();
		
		var topSpace = (scTop + ((fullHeight - (height)) / 2));

		if(topSpace <= 0) {
			topSpace = 92;
		}
		gPopupContainer.style.top = topSpace + "px";
		gPopupContainer.style.left =  (scLeft + ((fullWidth - width) / 2)) + "px";

	}
	addEvent_sc(window, "resize", centerPopWin_sc);
	window.onscroll = centerPopWin_sc;

}

/**
 * Sets the size of the popup mask.
 *
 */
function setMaskSize_sc() {
		
      var theBody = document.getElementsByTagName("BODY")[0];
                  
      var fullHeight = getViewportHeight_sc();
      var fullWidth = getViewportWidth_sc();
      
      // Determine what's bigger, scrollHeight or fullHeight / width
    // alert(fullHeight+" - "+theBody.scrollHeight);
      if (fullHeight > theBody.scrollHeight) {
            popHeight = fullHeight;
      } else if(navigator.appName == "Netscape"){ //-- This is for Crome and Netscape, as theBody.scrollHeight keep adding up and is incorrect
      		 popHeight = fullHeight;
      }else {         
            popHeight = theBody.scrollHeight;
      }
      
      if (fullWidth > theBody.scrollWidth) {
            popWidth = fullWidth;
      } else {
            popWidth = theBody.scrollWidth;
      }
      
      if(navigator.appName == 'Microsoft Internet Explorer') {
            gPopupMask.style.height = popHeight + "px";
            gPopupMask.style.width = popWidth + "px";
      } else {
              gPopupMask.style.height = "2200px";
            // gPopupMask.style.height = popHeight + "px";
            gPopupMask.style.width = popWidth - 17 + "px";
      }
}

/**
 * @argument callReturnFunc - bool - determines if we call the return function specified
 * @argument returnVal - anything - return value 
 */
function hidePopWin_sc(callReturnFunc) {
		
      gPopupIsShown = false;
      var theBody = document.getElementsByTagName("BODY")[0];
      theBody.style.overflow = "";
      restoreTabIndexes_sc();
      if (gPopupMask == null) {
            return;
      }
      gPopupMask.style.display = "none";
      gPopupContainer.style.display = "none";
      /*if (callReturnFunc == true && gReturnFunc != null) {
            gReturnFunc(window.frames["popupFrame"].returnVal);
      }*/
      //gPopFrame.src = 'loading.html';
      // display all select boxes
      if (gHideSelects == true) {
            displaySelectBoxes_sc();
      }
}


// Tab key trap. iff popup is shown and key was [TAB], suppress it.
// @argument e - event - keyboard event that caused this function to be called.
function keyDownHandler_sc(e) {
		
    if (gPopupIsShown && e.keyCode == 9)  return false;
}

// For IE.  Go through predefined tags and disable tabbing into them.
function disableTabIndexes_sc() {
		
      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++;
                  }
            }
      }
}

// For IE. Restore tab-indexes.
function restoreTabIndexes_sc() {
		
      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++;
                  }
            }
      }
}


/**
* Hides all drop down form select boxes on the screen so they do not appear above the mask layer.
* IE has a problem with wanted select form tags to always be the topmost z-index or layer
*
* Thanks for the code Scott!
*/
function hideSelectBoxes_sc() {

      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].style.visibility="hidden";
                  }
            }
      }
}

/**
* Makes all drop down form select boxes on the screen visible so they do not reappear after the dialog is closed.
* IE has a problem with wanted select form tags to always be the topmost z-index or layer
*/
function displaySelectBoxes_sc() {
		
      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].style.visibility="visible";
                  }
            }
      }
}

function addEvent_sc(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_sc(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 {
     return false;
  }
}

/**
 * Code below taken from - http://www.evolt.org/article/document_body_doctype_switching_and_more/17/30655/
 *
 * Modified 4/22/04 to work with Opera/Moz (by webmaster at subimage dot com)
 *
 * Gets the full width/height because it's different for most browsers.
 */
function getViewportHeight_sc() {
		
	  //alert("0"+screen.height);
      if (screen.height) return screen.height; 
      //document.body.clientHeight+document.documentElement.scrollTop+10 ; //FF //document.body.clientHeight && document.documentElement.scrollTop
      //alert("1");
      if (window.innerHeight!=window.undefined) return window.innerHeight; //FF //IE some
      //alert("2");
      if (document.compatMode=='CSS1Compat') return screen.height; //document.body.offsetHeight; // document.body.scrollHeight; //document.documentElement.clientHeight ; //IE
      //alert("3");
      if (document.body.clientheight ) return document.body.clientHeight ; //others
      return window.undefined; 
}
function getViewportWidth_sc() {
		
      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; 
}


/**
 * Initializes popup code on load.  
 */
function initDesignPopUp_sc() {
		
      // Add the HTML to the body
      scroll(0,5);
      theBody = document.getElementsByTagName('BODY')[0];
      popmask = document.createElement('div');
      popmask.id = 'popupMask_sc';
      popcont = document.createElement('div');
      popcont.id = 'popupContainer_sc';
      popcont.innerHTML = '' +
            '<div>' +
                  '<iframe style="width:100%;height:100%;background-color:transparent;  overflow-x: hidden;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame_sc" name="popupFrame_sc" width="100%" height="100%"></iframe>' +
            '</div>';
      theBody.appendChild(popmask);
      theBody.appendChild(popcont);
            
      gPopupMask = document.getElementById("popupMask_sc");
      gPopupContainer = document.getElementById("popupContainer_sc");
      gPopFrame = document.getElementById("popupFrame_sc");    
            
      // check to see if this is IE version 6 or lower. hide select boxes if so
      // maybe they'll fix this in version 7?
      var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10);
      if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE") > -1) {
            gHideSelects = true;
      }
      
}

function CloseModalPopup_sc() {  
      window.parent.location.reload();          
}


function showPopUp_sc(showURL,height,width){  
                       initPopUp_sc();                                    
                  showPopWin_sc(showURL, height , width, null);
}

function showDesignPopUp_sc(showURL,height,width){  
                  initDesignPopUp_sc();                                    
                  showPopWin_sc(showURL, height , width, null);
}

<!--/* SCRIPT for DHTML POPUP ends here */-->