
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 	Revision	Date			Author		Change/Comment
//	v1.00		unknown 		unknown		Initial release
//	v1.01		27/04/2006 		SBH/MET 	Updated delayed reload to check for existence of expanded message
//											added new function check on demand
//	v1.02		24/01/2007 		SBH 		Added show hide 2 routine, swiped direct from InCase.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//reveals or hides a specified div, using it's id label to identify the layer, and a visibility state of 1 (visible), 0 (hidden) or 2(toggle):
var flashTimeoutID;

function showHide(divID, visibilityState) {
	//get current state:
	var strDOM = divID + ".style.visibility";
	var currentState = eval(strDOM);
	//alert("current state=" + currentState);
	
	//set required visiblity state to the alternate of current state if action is 'toggle' (2):
	if (visibilityState == 2) {
		switch(currentState) {
		case "hidden":
			visibilityState = 1;
			break;
		case "visible":
			visibilityState = 0;
			break;
		}
	}
	//alert("proposed state=" + visibilityState);
	
	//perform visibility setting:
	switch(visibilityState) {
	case 0:
		eval(strDOM + ' = "hidden";');
		break;
	case 1:
		eval(strDOM + ' = "visible";');
		break;
	}
}

//same functionality as showHide, but using display attribute instead of visibility, to allow for compression of display:
function showHide2(divID, visibilityState) {
	var strDOM = divID + ".style.display";
	if (visibilityState == 1) {
		eval(strDOM + ' = "block";');
	}
	else {
		eval(strDOM + ' = "none";');
	}
}

//similar to showHide, but flash recursively calls itself on an x millisecond time delay with the alternate visibility state:
function flash(divID, visibilityState) {
	var strDOM = divID + ".style.visibility";
	var alternateState;
	var timeDelay = 1500; 

	//set visibility according to specified parameter:
	if (visibilityState == 1) {
		eval(strDOM + ' = "visible";');
		alternateState = 0;
	}
	else {
		eval(strDOM + ' = "hidden";');
		alternateState = 1;
	}
	
	//set up the recursive call to this function, using the alternate visibility state:
	var strExpression = "flash('" + divID + "', " + alternateState + ")";
	flashTimeoutID = setTimeout(strExpression, timeDelay);
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function delayedReload(delaySeconds, reloadURL) {
	//alert("function running");
	var strExpression;
	var timeDelay = delaySeconds*1000; 
	// 	check global variable
	//	alert(bExpandMessage);
	
	// call check on status of expanded div message
	strExpression = "reloadNow('" + reloadURL + "')";
	//	alert(strExpression);
	setTimeout(strExpression, timeDelay);
}

function reloadNow(reloadURL){
	// if expanded div message is open, reschedule reload
	if (bExpandMessage == true){
		// delay reload
		strExpression = "delayedReload(60,'" + reloadURL + "')";
	}
	else{
		// set reload now
		strExpression = "location.href = '" + reloadURL + "'";
	//alert("setTimeout(" + strExpression + ", " + timeDelay + ");");
	}
	// fire reload option
	eval(strExpression);
}
