

// --- BEGIN CROSS-BROWSER INITIALIZATION FUNCTION FOR STATUS MESSAGE OBJECTS ---

function initStatusMesg(strElemName, strVarName, strText, blnStartReDot) {
	var oSMElem = null;
	if(document.all)  // MSIE
		oSMElem = document.all(strElemName);
	else if(document.getElementById)  // NN6+
		oSMElem = document.getElementById(strElemName);

	if(oSMElem != null) {
		eval( strVarName + ' = new jsStatusMessage(oSMElem, strVarName, strText);' );
		if(blnStartReDot)
			eval( strVarName + '.StartDot();' );
	}
}

// --- END CROSS-BROWSER INITIALIZATION FUNCTION FOR STATUS MESSAGE OBJECTS ---



// --- BEGIN CONSTRUCTOR FOR STATUS MESSAGE CLASS ---

function jsStatusMessage(oElem, strVarName, strText) {
	this.Elem = oElem;
	this.BaseText = strText;
	this.VarName = strVarName;

	this.Dots = 0;
	this.MaxDots = 5;
	this.ReDotInterval = 444;
	this.curTimeoutID = null;

	this.ChangeTextTo = JSSM_ChangeTextTo;
	this.ReDot = JSSM_ReDot;
	this.StartDot = JSSM_StartDot;
	this.StopDot = JSSM_StopDot;
}

// --- END CONSTRUCTOR FOR STATUS MESSAGE CLASS ---



// --- BEGIN METHODS OF STATUS MESSAGE CLASS ---

function JSSM_ChangeTextTo(strText) {
	if(document.all || document.getElementById)
		this.Elem.innerHTML = strText;
}

function JSSM_ReDot() {
	if(document.all || document.getElementById) {
		++this.Dots;
		if(this.Dots > this.MaxDots)
			this.Dots = 0;

		var i;
		var strText = this.BaseText + '<b>';
		for(i = 1;  i <= this.Dots;  ++i)
			strText += ".";
		for(i = this.Dots+1;  i <= this.MaxDots;  ++i)
			strText += "&nbsp;";

		this.ChangeTextTo('</b>' + strText);

		this.curTimeoutID = setTimeout(this.VarName + '.ReDot()', this.ReDotInterval);
	}
}

function JSSM_StartDot() {
	this.ReDot();
}

function JSSM_StopDot() {
	clearTimeout(this.curTimeoutID);
}

// --- END METHODS OF STATUS MESSAGE CLASS ---

