var popupClassName;

function processCommand(responseText) {

	var response = responseText.split("|");
	if (response[1] == "refreshTab") {
		refreshCurrentTab();
		if (response[2]!="")
		{
			getElement('messagetype').className = response[1];
			getElement('messagetext').innerHTML = response[2];		
			showElement('popupAlert');
			setTimeout('removeMessage()', 4000);
		}
	}
	if (response[1] == "error") {
		getElement('messagetype').className = response[1];
		getElement('messagetext').innerHTML = response[2];
		showElement('popupAlert');
		setTimeout('removeMessage()', 4000);
		try { refreshcontroller(); } catch(exc) {}
	}
	if (response[1] == "message") {
		getElement('messagetype').className = response[1];
		getElement('messagetext').innerHTML = response[2];		
		showElement('popupAlert');
		setTimeout('removeMessage()', 4000);
		try { refreshcontroller(); } catch(exc) {}
	}
	if (response[1] == "runJs") {
		eval(response[2]);
	}
}

function startAjaxPopupReturnFalse(eventTarget, eventArgument, evt) {
    if (!evt) evt = window.event || window.Event;

    startAjaxPopup(eventTarget, eventArgument);
    evt.cancelBubble = true;
    return false;
}

function startAjaxPopup(eventTarget, eventArgument) {doAjax(startAjaxPopupComplete, false, eventTarget, eventArgument); }

function startAjaxPopupComplete(responseText, responseXML) {
//document.write(responseText)
	if (responseText.charAt(0) == '|')
	{
		processCommand(responseText);
	}
	else
	{
	    enableShade('shade');
	    getElement('ajaxPopupContainer').innerHTML = responseText;
	    getElement('ajaxPopupContainer').className = popupClassName;
	    showElement('ajaxPopupContainer');
	}
}

function ajaxPopupCommand(eventTarget, eventArgument) {
    rememberScrollPos('rememberScroll');
	doAjax(ajaxPopupCommandComplete, false, eventTarget, eventArgument);
}
function ajaxPopupCommandComplete(responseText, responseXML) {
//document.write(responseText)
	if (responseText.charAt(0) == '|')
	{
		disableShade('shade');
		hideElement('ajaxPopupContainer');
	
		processCommand(responseText);
	}
	else
	{
	    getElement('ajaxPopupContainer').innerHTML = responseText;
		setRememberedScrollPos('rememberScroll');
    }
}

function closeAjaxPopup(eventTarget, eventArgument){ doAjax(closeAjaxPopupComplete, false, eventTarget, eventArgument); }
function closeAjaxPopupComplete(responseText, responseXML)
{
	disableShade('shade');
	hideElement('ajaxPopupContainer');
	hideElement('popupContainer');
	getElement('ajaxPopupContainer').innerHTML = '';
	
	if (responseText.charAt(0) == '|')
	{
		processCommand(responseText);
	}
}
//--------------------------------------------------------------------------------------------------------------------------------------

var headerClassName;
var headerContainerId = "";

function getHeaderContainerId() {
	if (headerContainerId == "") {
		if (getElement("headerContainer")) {
			headerContainerId = "headerContainer";
		} else {
			headerContainerId = "ajaxHeaderContainer";
		}
	}
	return headerContainerId;
}

function startAjaxHeader(eventTarget, eventArgument) { doAjax(startAjaxHeaderComplete, false, eventTarget, eventArgument); }
function startAjaxHeaderComplete(responseText, responseXML)
{
	if (responseText.charAt(0) == '|') {
		var response = responseText.split("|");
		if (response[1] == "refreshTab") {
			refreshCurrentTab();
			response[1] = "message";	// Use the 'message' class name
		}
		getElement('messagetype').className = response[1];
		getElement('messagetext').innerHTML = response[2];		
		showElement('popupAlert');
		setTimeout('removeMessage()', 4000);
	} else if (responseText.charAt(0) == '#') {
		var response = responseText.split("##");
		getElement(getHeaderContainerId()).innerHTML = response[1];
		getElement(getHeaderContainerId()).className = popupClassName;
		showElement(getHeaderContainerId());

		Header_timerDurationSecs = Number(response[2]);
		if (response[4] == "") {
			Header_sectionStartTime = null;
		} else {
			Header_sectionStartTime = new Date();
			Header_sectionStartTime.setTime(Date.parse(response[4]));
		}
		switch (response[3]) {
			case "START" :
				Header_StartTimer();
				break;
			case "PAUSE" :
				Header_PauseTimer();
				break;
			case "STOP" :
				Header_StopTimer();
				break;
		}
	} else {
		getElement(getHeaderContainerId()).innerHTML = responseText;
		getElement(getHeaderContainerId()).className = popupClassName;
		showElement(getHeaderContainerId());
	}
}

function ajaxHeaderCommand(eventTarget, eventArgument){ rememberScrollPos('rememberScroll'); doAjax(ajaxHeaderCommandComplete, false, eventTarget, eventArgument); }
function ajaxHeaderCommandComplete(responseText, responseXML)
{
	if (responseText.charAt(0) == '|') {
		hideElement(getHeaderContainerId());
	
		var response = responseText.split("|");
		if (response[1] == "refreshTab") {
			refreshCurrentTab();
			response[1] = "message";	// Use the 'message' class name
		}
		getElement('messagetype').className = response[1];
		getElement('messagetext').innerHTML = response[2];		
		showElement('popupAlert');
		setTimeout('removeMessage()', 4000);
	} else {
		getElement(getHeaderContainerId()).innerHTML = responseText;
		setRememberedScrollPos('rememberScroll');
	}
}

function closeAjaxHeader(eventTarget, eventArgument){ doAjax(closeAjaxHeaderComplete, false, eventTarget, eventArgument); }
function closeAjaxHeaderComplete(responseText, responseXML)
{
	hideElement(getHeaderContainerId());
	//hideElement('headerContainer');
	getElement(getHeaderContainerId()).innerHTML = '';
	if (responseText.charAt(0) == '|')
	{
		var response = responseText.split("|");
		if (response[1] == "refreshTab") {
			refreshCurrentTab();
			response[1] = "message";	// Use the 'message' class name
		}
		getElement('messagetype').className = response[1];
		getElement('messagetext').innerHTML = response[2];		
		showElement('popupAlert');
		setTimeout('removeMessage()', 4000);
	}
}

