function openWindow(theURL,winName,features) { window.open(theURL,winName,features); }
function getElement(elementId){return document.layers ? document.layers[elementId] : document.getElementById ?  document.getElementById(elementId) : document.all[elementId]; }
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 toggleElement(elementId, state) // 1 visible, 0 hidden
{
	var obj = getElement(elementId);
	if(state!=null){
	  obj.style.visibility = document.layers ? (state ? "show" : "hide") : (state ? "visible" : "hidden");
	}
	else{
	  if(obj.style.visibility==''||obj.style.visibility=='hidden'||obj.style.visibility=='hide'){
	    obj.style.visibility = document.layers ? "show" : "visible";
	  }
	  else{
		obj.style.visibility = document.layers ? "hide" : "hidden";
	  }
	}
}
function goToUrl(url) {	document.location = url; }
function showDiv(elementId,className,value,timeout){
	var obj=getElement(elementId);
	obj.style.display="block";
	obj.className=className;
	if(value!=null)
	  obj.innerHTML=value;
	if(timeout!=null||timeout>0){
	  setTimeout("hideDiv('"+elementId+"')" , timeout);
	}
}
function hideDiv(elementId){
	var obj = getElement(elementId);
	obj.style.display="none";
	obj.innerHTML='';
}
function clearValue(elementId, newText){
	var obj = getElement(elementId);
	obj.value = newText != null ? newText : "";
}
function addLoadEvent(func){
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
function pause(millis) 
{
date = new Date();
var curDate = null;

do { var curDate = new Date(); } 
while(curDate-date < millis);
}
function DivSetVisible(targetDiv, targetIframe, state, eventObj)
{
   var DivRef = document.getElementById(targetDiv);
   var IfrRef = document.getElementById(targetIframe);
   if(state)
   {
    DivRef.style.display = "block";
    IfrRef.style.width = DivRef.offsetWidth;
    IfrRef.style.height = DivRef.offsetHeight;
    IfrRef.style.top = DivRef.style.top;
    IfrRef.style.left = DivRef.style.left;
    IfrRef.style.zIndex = DivRef.style.zIndex - 1;
    IfrRef.style.display = "block";
    
    eventObj.cancelBubble = true;
    var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	moveObject(targetDiv, newXCoordinate, newYCoordinate);
	moveObject(targetIframe, newXCoordinate, newYCoordinate);
   }
   else
   {
    DivRef.style.display = "none";
    IfrRef.style.display = "none";
   }
   return true;
}
function moveObject(objectId, newXCoordinate, newYCoordinate) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.left = newXCoordinate;
	styleObject.top = newYCoordinate;
	return true;
    } else {
	// we couldn't find the object, so we can't very well move it
	return false;
    }
}
function getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its id
    if(document.getElementById && document.getElementById(objectId)) {
	// W3C DOM
	return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
	// MSIE 4 DOM
	return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
	// NN 4 DOM.. note: this won't find nested layers
	return document.layers[objectId];
    } else {
	return false;
    }
}