/* These functions are called during the httpxmlrequest call to provide feedback on the status of the operation */

function startProgressIndicator() {
	var holder = document.getElementById('indicatorHolder');
	var img = document.createElement('img');
	img.setAttribute('src', 'images/progress_indicator.gif');
	img.setAttribute('id', 'progressIndicator');
	if (document.getElementById('progressIndicator') == null) {
		holder.appendChild(img);
	    }
}

function stopProgressIndicator() {
    var holder = document.getElementById('indicatorHolder');
    var imgId = document.getElementById('progressIndicator');
    holder.removeChild(imgId);
}


/* This function is called when the call cannot be completed */

function alertFailure(operatingStatus,call){
    if (operatingStatus != 200){
	call.abort();
	noticeOfFailure(operatingStatus);
    }
}

/* This function is called when the needed file is missing */

function noticeOfFailure(operatingStatus){
    if (operatingStatus == 404){ 
	var msg = 'Server error: required file not available';
    }
    else {
	var msg = 'Server error: operation cannot be completed';
    }
    var holder = document.getElementById('indicatorHolder');
    var span = document.createElement('span');
    var openSpan = holder.appendChild(span);
    span.setAttribute('id', 'errMsgHolder');
    /*    var msg = 'Server error: data cannot currently be retrieved'; */
    var msgHolder = document.getElementById('errMsgHolder');
    var msgCreation = document.createTextNode(msg);
    msgHolder.appendChild(msgCreation);
    setTimeout('clearErrorMsg()',5000);
}

function clearErrorMsg(){
    var holder = document.getElementById('indicatorHolder');
    var span = document.getElementById('errMsgHolder');
    document.getElementById('errMsgHolder').innerHTML = '';
    removeSpan = holder.removeChild(span);
}

function delayStop(){
    var ourtimeout = setTimeout('stopProgressIndicator()',2000);
}
