/**********************************************************************
 BEGIN MODAL DIALOG CODE (can also be loaded as external .js file)
***********************************************************************/


	
// Global for browser version branching.
var Nav4 = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 4))
// One object tracks the current modal dialog opened from this window.
//var 
window.top.dialogWin = new Object()

// Generate a modal dialog.
function openDialog(url,  width, height, returnFunc, args, name) {
   if (!window.top.dialogWin.win || (window.top.dialogWin.win && window.top.dialogWin.win.closed)) {
      // Initialize properties of the modal dialog object.
      window.top.dialogWin.returnFunc = returnFunc
      window.top.dialogWin.returnedValue = ""
      window.top.dialogWin.args = args
      window.top.dialogWin.url = url
      window.top.dialogWin.width = width
      window.top.dialogWin.height = height

      // Keep name unique so Navigator doesn't overwrite an existing dialog.
		if (name)
	   		window.top.dialogWin.name = name
		else
	   		window.top.dialogWin.name = (new Date()).getSeconds().toString()
// Assemble window attributes and try to center the dialog.
      if (Nav4) {
         // Center on the main window.
         window.top.dialogWin.left = window.screenX + ((window.outerWidth - window.top.dialogWin.width) / 2)
         window.top.dialogWin.top = window.screenY + ((window.outerHeight - window.top.dialogWin.height) / 2)
         if (window.top.dialogWin.args)
		 	var attr = window.top.dialogWin.args
		 else
		 	var attr = "screenX=" + window.top.dialogWin.left + ",screenY=" + window.top.dialogWin.top + ",resizable=no,scrollbars=yes,width=" + window.top.dialogWin.width + ",height=" + window.top.dialogWin.height
      } else {
         // The best we can do is center in screen.
         window.top.dialogWin.left = (screen.width - window.top.dialogWin.width) / 2
         window.top.dialogWin.top = (screen.height - window.top.dialogWin.height) / 2

		 if (window.top.dialogWin.args)
		 	var attr = window.top.dialogWin.args
		 else
			var attr = "left=" + window.top.dialogWin.left + ",top=" + window.top.dialogWin.top + ", resizable=no,scrollbars=yes,width=" + window.top.dialogWin.width + ",height=" + window.top.dialogWin.height
      }
      // Generate the dialog and make sure it has focus.
      window.top.dialogWin.win=window.open(window.top.dialogWin.url, window.top.dialogWin.name, attr)
      //alert(window.top.dialogWin.win.closed)
	  window.top.dialogWin.win.focus()
   } else {
      window.top.dialogWin.win.focus()
   }
}

// Event handler to inhibit Navigator form element and Internet Explorer
// link activity when dialog window is active.
function deadend() {
   if (window.top.dialogWin.win && !window.top.dialogWin.win.closed) {
	  window.top.dialogWin.win.focus()
      return false
   }
}

// Since links in Internet Explorer 4 can't be disabled, preserve IE link onclick 
// event handlers while they're "disabled." Restore when reenabling the main window.
var IELinkClicks
// Disable form elements and links in all frames for IE.
function disableForms() {
   IELinkClicks = new Array()
   for (var h = 0; h < frames.length; h++) {
      for (var i = 0; i < frames[h].document.forms.length; i++) {
         for (var j = 0; j < frames[h].document.forms[i].elements.length; j++) {
            frames[h].document.forms[i].elements[j].disabled = true
         }
      }
      IELinkClicks[h] = new Array()
      for (i = 0; i < frames[h].document.links.length; i++) {
         IELinkClicks[h][i] = frames[h].document.links[i].onclick
         frames[h].document.links[i].onclick = deadend
      }
   }
}
// Restore IE form elements and links to normal behavior.
function enableForms() {
   for (var h = 0; h < frames.length; h++) {
      for (var i = 0; i < frames[h].document.forms.length; i++) {
         for (var j = 0; j < frames[h].document.forms[i].elements.length; j++) {
            frames[h].document.forms[i].elements[j].disabled = false
         }
      }
      for (i = 0; i < frames[h].document.links.length; i++) {
         frames[h].document.links[i].onclick = IELinkClicks[h][i]
      }
   }
}

// Grab all Navigator events that might get through to form elements while 
// dialog is open. For Internet Explorer, disable form elements.
function blockEvents() {
   //alert("block events")
   if (Nav4) {
      window.captureEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS)
      document.onclick = deadend
      document.onfocus = checkModal
   } else {
      disableForms()
	  window.onfocus = checkModal
   }
}
// As dialog closes, restore the main window's original event mechanisms.
function unblockEvents() {
   if (Nav4) {
      window.releaseEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS)
      window.onclick = null
      window.onfocus = null
   } else {
      enableForms()
   }
}
function checkModal() {
	//alert("checkModal " + document.title)
   setTimeout("finishChecking()", 50)
   return true
}

function finishChecking() {		  	  
	if (window.top.dialogWin.win && !window.top.dialogWin.win.closed) {
	  window.top.dialogWin.win.focus() 
   	  if(window.top.dialogWin.win.frames.length>0){
		  window.top.dialogWin.win.frames[0].focus()
	  }
	}
}

/**************************
  END MODAL DIALOG CODE
**************************/


