var navFrameLoaded = false;
var selectedTab = '';
var submitted = false;
var isLoggedIn = false;
var inProcess = false;

function handleNavFrameOnLoad() {
    navFrameLoaded = true;
}

function recursiveReload() {
	if( inProcess && isAOL ) {
		var fakeLoad = document.getElementById("fakeLoad");
		fakeLoad.src = "http://www.allabouthawaii.com/img/up.png";
		setTimeout("recursiveReload();", 10000);
	}
}

function startProcessingMessage() {
	inProcess = true;
	document.getElementById('headerTable').style.backgroundImage="url('img/progress.gif')";
	document.getElementById('processingMessage').style.visibility='visible';	
	recursiveReload();
}

function stopProcessingMessage() {
	document.getElementById('headerTable').style.backgroundImage="";
	document.getElementById('processingMessage').style.visibility='hidden';
	inProcess = false;
}

function disableSubmitters() {
	//disable the header
	submitted = true;
	//disable the menu if there is one
	if( window.parent.aatMainFrame && window.parent.aatMainFrame.document ) {
		var menu = window.parent.aatMainFrame.document.menuForm;
		if(menu) {
			window.parent.aatMainFrame.disableMenu();
		}
	}

	//disable the main frame
	if( window.parent.aatMainFrame && window.parent.aatMainFrame.disableControls ) {
		window.parent.aatMainFrame.disableControls();	
	}
	
	startProcessingMessage();

	//!This is dubious.  What does it mean if this much time elapses?  Is it an error or
	//just a really slow transaction?  If it is an error, do we really want the user to
	//be able to continue with a questionable state?  Commenting out for now. MS - 1/14/2004
	//after timeout - re-enable
//	setTimeout("enableSubmitters()", 60000);
}

function enableSubmitters() {
	//enable the header
	submitted = false;
	
	//enable the menu if there is one
	var menu = window.parent.aatMainFrame.document.menuForm;
	if(menu) {
		window.parent.aatMainFrame.enableMenu();
	}
	
	//enable the main frame
	if( window.parent.aatMainFrame && window.parent.aatMainFrame.enableControls ) {
		window.parent.aatMainFrame.enableControls();
	}
	
	stopProcessingMessage();
}

function handleLoginOnClick(commandCode) {
	if(!submitted) {
		disableSubmitters();
		stopProcessingMessage();
		window.parent.aatMainFrame.handleLoginOnClick(commandCode);
	}
}

//functions for setting up buttons
function loggedIn(agencyName) {
	isLoggedIn = true;
	var loginButton = document.getElementById('loginButton');
	if(loginButton) {
		loginButton.style.display='none';
	}
	var loginText = document.getElementById('agencyName');
	if(loginText) {
		loginText.innerHTML = agencyName;
		loginText.style.display='';
	}
	var helpDesk = document.getElementById('helpDesk');
	if(helpDesk) {
		helpDesk.style.display = '';
	}
}

function notLoggedIn() {
	isLoggedIn = false;
	var loginButton = document.getElementById('loginButton');
	if(loginButton) {
		loginButton.style.display='';
	}
	var loginText = document.getElementById('agencyName');
	if(loginText) {
		loginText.style.display='none';
	}
	var helpDesk = document.getElementById('helpDesk');
	if(helpDesk) {
		helpDesk.style.display = 'none';
	}
}

function handleLoginOnLoad() {
    var controls = document.getElementsByTagName('INPUT');
    for(var i=0; i<controls.length; ++i) {
        var control = controls[i];
        if(control.type=='button') {
            control.style.display='none';
        }
    }
    selectTab('Tab_Select','Login');
    document.getElementById('Tab_Select').style.display='';
}

function handleLoginCancel(lastPage,brandRegion) {
    var mainform = window.parent.aatMainFrame.document.loginForm;
    mainform.action='booking.back?nextPage='+lastPage+'&brandRegion='+brandRegion;
    mainform.submit();
}

function showButton(buttonId) {
    var inputsList = document.getElementsByTagName('INPUT');
    for(var inputIndex=0; inputIndex<inputsList.length; ++inputIndex) {
        var anInput = inputsList[inputIndex];
        if(anInput && anInput.type=='button') {
            if(anInput.id==buttonId) {
                anInput.style.display='';
            } else if(anInput.id=='loginButton') {
            	if(isLoggedIn) {
            		anInput.style.display='none';
            	} else {
            		anInput.style.display='';
            	}
        		} else {
                anInput.style.display='none';
            }
        }
    }
}

/*
	this.name = "${page.name}";
	this.buttonToDisplay = "${page.buttonToDisplay}";
	this.tabsToDisplay = "${page.tabsToDisplay}";
	this.menuItemsToDisplay = "${page.menuItemsToDisplay}";
*/
function onPageLoad(page) {
	initializeControls(page.buttonToDisplay, page.tabIdToSelect, page.tabsToDisplay, page.selectedTabText);
	
	if(page.isLoggedIn) {
		if (page.isResAgent) {
			var helpDesk = document.getElementById('helpDesk');
			if(helpDesk) {
				helpDesk.innerHTML = "<b>ARC#</b> " + page.resArc + " <b>TA's user name:</b> " + page.resTAname;
			}
		}
		loggedIn(page.agencyName);
	} else {
		notLoggedIn();
	}	
	
	var logo = document.getElementById("logo");
	logo.style.backgroundImage = "url(" + page.logoSrc + ")";
	logo.alt = page.logoAlt;

	var styleCss = document.getElementById("brandSchemeUri");
	styleCss.href = page.brandSchemeUri;	
	
	var homeTab = document.getElementById("Tab_Home");
	homeTab.homePageUri = page.brochureHomePageUri;
	
	var loginButton = document.getElementById("loginButton");
	loginButton.loginUrl = page.loginUrl;
}

//functions for setting up controls
function initializeControls(buttonIdToDisplay,tabIdToSelect,tabIdsToDisplay,selectedTabText) {
    showButton(buttonIdToDisplay);
    selectTab(tabIdToSelect,selectedTabText);
    if(tabIdsToDisplay) {
        setTabsDisplay(tabIdsToDisplay);
    }
}

