// JScript source code


var isIE = (document.all) ? true : false;
var isOpera = (navigator.userAgent.toUpperCase().indexOf('OPERA')>-1)
var isWin =	(navigator.userAgent.toUpperCase().indexOf("WIN") > -1) ? true : false; 
var allHiddenSelects = [];

var PopUpWin

//  Variables for handling layer (FastHelp) state
var VisibleLayerID = '';
var HooverImageClickedID = '';
var StickyLayerID = '';
var DownImageCtrlID='';


/******************************************
Show or Hide all Select Tags
*******************************************/
function SetSelectVisibilityInternal(visibility) {
    
    var allSelects = document.getElementsByTagName("Select");
    
    
    var j = 0;

    
	for (var i = 0; i < allSelects.length; i++) {

	    if (visibility == 'hidden') {
	        if (allSelects[i].style.visibility == 'hidden') {
	            allHiddenSelects[j++] = allSelects[i].id;
	        }
	        allSelects[i].style.visibility=visibility;
	    }
	    else {
	        var showSelect = true;
	        
	        for (var k = 0; k <= allHiddenSelects.length; k++) {
	            if (allHiddenSelects[k] == allSelects[i].id) {
	                showSelect = false;
	                break;
	            }
	        }
	        if (showSelect) {
	            allSelects[i].style.visibility=visibility;
	        }
	    }
		
	}
}

/******************************************
Show or Hide all Ancor Tags
*******************************************/
function SetAncorVisibility(TagRefToSearch, visibility){
	var allAncors=TagRefToSearch.getElementsByTagName("A");
	for(var i = 0; i < allAncors.length; i++) {
		allAncors[i].style.visibility=visibility;
	}
}


/******************************************
Show FastHelp Layer
*******************************************/
function ShowFastHelp(NonIEEvent, LayerIdToShow, HooverControlID, ShowDirectionUp, posTop ){ 
	var UpSize = 150;
	var myEventObject;
	var ctrlClicked;

	var LayerIdShowRef = document.getElementById(LayerIdToShow);
	
	//Found layer to show
	if (LayerIdShowRef!=null){										

		// Hide previously shown layers other than currently requested
		if (VisibleLayerID!=LayerIdToShow && VisibleLayerID!='') {
			HideFastHelp();
		}
	
		// Do IE/nonIE processsing for the event object
		if (isIE==true){
			myEventObject=window.event; 		
			ctrlClicked=myEventObject.srcElement;
		}
		else{
			myEventObject=NonIEEvent; 		
			ctrlClicked=myEventObject.target;
		}

		// Check if click or hoover
		if (myEventObject.type=='click'){
			// Clicked! Check if we're sticky - if so hide
			if (StickyLayerID==LayerIdToShow){
				HideFastHelp();
				return;
			}

			//Show the anchor containing the close link
			SetAncorVisibility(LayerIdShowRef, 'visible');
			StickyLayerID=LayerIdToShow;
			
			// Remove onmouseout event for hoover image
			var clickedImgRef = document.getElementById(HooverControlID);
			if (clickedImgRef!=null){
				// Attaching/detaching events works differently in IE
				if (isIE==true){
					clickedImgRef.detachEvent('onmouseout', this.HideFastHelp);
				}
				else{
					clickedImgRef.removeEventListener('onmouseout', this.HideFastHelp, false);
					clickedImgRef.removeEventListener('mouseout', this.HideFastHelp, false);
				}
				clickedImgRef.onmouseout = '';   //Stops the next mouseout (feels unneccessary)
				HooverImageClickedID=HooverControlID;
			}
			
			// Let image sink down a bit
			if (ctrlClicked.nodeName=='IMG'){
				var src = ctrlClicked.src.toLowerCase();
				var pos = src.lastIndexOf('.gif');
				if (pos>0){
					ctrlClicked.src=src.substring(0,pos) + '_down.gif';
					DownImageCtrlID=ctrlClicked.id;
				}
			}
		} // (window.event.type=='click')
		else {
			// If not Click - Must be hoover 
			if (StickyLayerID==''){
				//Hide the anchor containing the close link if not sticky
				SetAncorVisibility(LayerIdShowRef, 'hidden');
			}
		} // (window.event.type!='click')
	
		// Make requested layer visible
		LayerIdShowRef.style.visibility = 'visible';

		// Position Layer
		var pos = LayerIdToShow.lastIndexOf('_');
		if (pos > 0){
			var baseCtrlName = LayerIdToShow.substring(0,pos) + '_tdText';
			var baseCtrlRef = document.getElementById(baseCtrlName);
			if (baseCtrlRef!=null){
				LayerIdShowRef.style.width=baseCtrlRef.style.width;
			}
		}
		var tempY;
		if (posTop == -1){ 
			tempY = myEventObject.clientY;  //+ document.body.onmousedown;	
		}
		else{
			tempY = posTop;
		}
		if (tempY < 0){
			tempY = 0;
		}
		if(ShowDirectionUp==true){
			LayerIdShowRef.style.top=tempY - UpSize + "px";
			LayerIdShowRef.style.height=UpSize + "px";
		}
		else{
			LayerIdShowRef.style.top=tempY+10+"px";
		}

		// Hide all select tags prior to showing layer
		SetSelectVisibilityInternal('hidden');
		VisibleLayerID=LayerIdToShow;

	} // (LayerIdShowRef!=null)
}


/******************************************
Hide FastHelp Layer
*******************************************/
function HideFastHelp(e){

	// Hide saved layer ID
	var hideRef = document.getElementById(VisibleLayerID);
	if (hideRef!=null){
		hideRef.style.visibility = 'hidden';
		VisibleLayerID='';
		StickyLayerID='';

		// Show all select tags prior to hiding layer
		SetSelectVisibilityInternal('visible');
		SetAncorVisibility(hideRef, 'hidden');

		// Reset sunken image
		var ctrlClicked = document.getElementById(DownImageCtrlID);
		if (ctrlClicked!=null){
			if (ctrlClicked.nodeName=='IMG'){
				var src = ctrlClicked.src.toLowerCase();
				var pos = src.lastIndexOf('_down.gif');
				if (pos > 0){
					ctrlClicked.src=src.substring(0,pos) + '.gif';
				}
				DownImageCtrlID='';	
			}
		} 
	} 

	// Restore onmouseout for last sticky layer
	var clickedImgRef = document.getElementById(HooverImageClickedID);
	if (clickedImgRef!=null){
		clickedImgRef.onmouseout = 'return HideFastHelp();';
		// Attaching/detaching events works differently in IE
		if (isIE==true){
			clickedImgRef.attachEvent('onmouseout', this.HideFastHelp);
		}
		else{
			clickedImgRef.addEventListener('mouseout', this.HideFastHelp, false);
		}
		HooverImageClickedID='';
	}
}

/******************************************
 Set cssClass on arbitrary control by 
 Control instance or Control name
*******************************************/
function setClassName(ctrl, className, backgroundImageName ) {
	if(ctrl!=null){
		ctrl.className=className;
		if(backgroundImageName!=null){
			ctrl.style.backgroundImage="url('" + backgroundImageName + "')";
		}		
	} 
}

function setClassNameByCtrlName(ctrlName, className, backgroundImageName ) {
	var ctrl = document.getElementById(ctrlName);
	if(ctrl!=null){
		ctrl.className=className;
		if(backgroundImageName!=null){
			ctrl.style.backgroundImage="url('" + backgroundImageName + "')";
		}		
	} 
}

