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

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

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

/* 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);
}

