// Logout utility JavaScript Function
// File:    logout.js
// Author:  Eric Baars/Clinton Farleigh
// WebGENCAT:  3.2
// Version: 1.3
// History:
//    11 Jul 2001  Initial creation
//    13 Aug 2001  Fix bug: going to a screen above 2 above menu (opener not menu)
//			caused logout. (Invalid session ID)...CJF
//     9 Jan 2002  Added conditions for logout when coming from browse or detail display...CJF
//	  17 Jan 2002  Call closeWindow function to close are child window of current...CJF
//	   4 Feb 2002  Added gWinToClose global variable that indicates window that close operation should
//				   be performed on.  The default is top...CJF 
//	  17 May 2002  Added KeepSession arguement to keep session if browser cannot find parent of detail hyperlink.
//	  14 Jun 2002  Changed top.opener.typeID to aWindow.typeID so that check first opened window.
//	  17 Sep 2002  Added check for closeWindow function if keepSession=true...CJF

// Global window attribute for page.  
// Set to force operation on other window (eg. parent).

var gWinToClose = null ;

function closeButton( logout ) {
	var aWindow ;
	if ( gWinToClose == null ) {
		gWinToClose = top ;
	}
	if ( gWinToClose.opener ) {
		aWindow = gWinToClose.opener ;
		while ( !aWindow.top.typeID && aWindow.opener ) {
			aWindow = aWindow.opener ;
		}
	}
	var sURL = top.location.toString( ) ;
	var keepSession = ( sURL.indexOf( "KeepSession=1" ) != -1 ) ;
	if ( gWinToClose.opener && aWindow.top.typeID ) {
		if (gWinToClose.closeWindow) {
			gWinToClose.closeWindow( true ) ;
		} else {
			gWinToClose.close( ) ;
		}
	} else if ( gWinToClose.typeID == "Menu"  ) {
//	    alert("gWinToClose.typeID == Menu");
		// Close everything associated with the menu content frame.
//	    alert("MenuContentFrame.closeWindow");
		gWinToClose.parent.MenuContentFrame.closeWindow( false ) ;
//	    alert("MenuControlFrame.closeWindow");
		gWinToClose.parent.MenuControlFrame.closeWindow( false ) ;
//	    alert("gWinToClose.location = " + logout);
		gWinToClose.location = logout;
	} else if ( gWinToClose.typeID == "Login" ) {
		gWinToClose.location = logout;
	} else {
    	if( keepSession == true ) {
			if (gWinToClose.closeWindow) {
				gWinToClose.closeWindow( true ) ;
			} else {
				gWinToClose.close( ) ;
			}
    	} else {
			// Assume link came from somewhere - go back there.
	        gWinToClose.closeWindow( false ) ;
	        gWinToClose.location = logout ;
	        gWinToClose.history.back( ) ;
			if( gWinToClose.opener && gWinToClose.location.href.indexOf( "webcat/request/Logout" ) ) {  
				gWinToClose.close( ) ;
			}
        }
    }
}

