function ttConstants () {
}
ttConstants.info = 1;
ttConstants.warning = 2;
ttConstants.error = 3;
ttConstants.cssLevels = new Array(4);

/**
 * Klasse zur Verwaltung und Anzeige eines Tooltip-Ballons
 * 
 * @param {string} ptext		Beinhaltet den HTML-Text der Nachricht, Fehlermeldung
 * 
 * @param {ttConstants} plevel	Einer der drei Fehlerlevels ttConstants.info / .warning / .error
 * 
 * @param {array} pcssLevels	Optional. Ein Array mit den CSS-Klassennamen fuer 
 * 								die Darstellung des InfoIcons. Der Index in dem Array wird über die Konstanten
 * 								ttConstants.info / .warning /.error dargestellt. Das Konstanten-Array ttConstants.cssLevels
 * 								ist bereits vordefiniert und wird verwendet, wenn der Parameter 'undefined' ist.
 * 								Die einzelnen CSS-Klassennamen sollten am Anfang des Javascripts vorbelegt werden:
 * 								ttConstants.cssLevels[ttConstants.info] = 'iconinfo';
 *								ttConstants.cssLevels[ttConstants.warning] = 'iconwarning';
 *								ttConstants.cssLevels[ttConstants.error] = 'iconerror';
 *
 * @param {tooltip} perrTip		Optional. Objekt der Klasse "tooltip", welches einen moeglichen Fehlermeldungs-Tooltip
 * 								fuer dieses Feld darstellt.
 */
function tooltip(ptext, plevel, pcssLevels, perrTip) {

	this.text = ptext;
	this.level = plevel;
	this.errTip = perrTip;
	
	if (plevel === undefined) {
		this.level = ttConstants.info;
	} else {
		this.level = plevel;
	}
	
	if (pcssLevels === undefined) {
		this.cssLevels = ttConstants.cssLevels;
	} else {
		this.cssLevels = pcssLevels;
	}


	this.getMessage = function getMessage() {
		return this.text;
	}; 
	
	this.hideTip = function hideTip(element) {
		UnTip();
	};
	
	this.showTipFix = function showTipFix(element) {
		this.showTipLevelFix(element, this.level);
	};
	
	this.showTip = function showTip(element) {
		this.showTipLevel(element, this.level);
	};
	
	this.showQuickTip = function showQuickTip() {
		Tip(this.text);
	};
	
	this.showError = function showError(element) {

		if (this.errTip != undefined) {
			this.errTip.showTipFix(element);
		}

	};

	this.setLevelIcon = function setLevelIcon(element, plevel) {
		
		if (element === undefined ) {
			return;
		}
		
		switch (plevel) {
		case ttConstants.info:
			lclass = this.cssLevels[ttConstants.info];
			break;
		case ttConstants.warning:
			lclass = this.cssLevels[ttConstants.warning];
			break;
		case ttConstants.error:
			lclass = this.cssLevels[ttConstants.error];
			break;
		default:
			lclass = this.cssLevels[ttConstants.info];
		}
		
		if (element.className != lclass) {
			element.className = lclass;
		}
	};
	
	this.showTipLevelFix = function showTipLevelFix(element, plevel) {
		
		if (typeof(element) == 'string') {
			element = document.getElementById(element);
		}
			
		this.setLevelIcon(element, plevel);
		Tip(this.text, FIX, [element, 5, -2], BALLOONSTEMOFFSET, -999);
	};
	
	this.showTipLevel = function showTipLevel(element, plevel) {
		
		this.setLevelIcon(element, plevel);
		Tip(this.text);
	};

}

// Allgemeine Tooltips
ttOnlyNumbers = new tooltip(
		'In diesem Feld bitte nur die <b>Ziffern von 1 bis 9 bzw. Tausendertrennpunkte eingeben!</b>',
		ttConstants.error);

ttOnlyDecNumbers = new tooltip(
		'In diesem Feld bitte nur die <b>Ziffern von 1 bis 9, Tausendertrennpunkte bzw. ein Dezimalkomma eingeben!</b>',
		ttConstants.error);

var noanswer = 'Geben Sie bitte <b>&quot;-1&quot;</b> an, wenn Sie <b>keine Angabe</b> machen wollen. ';

ttOnlyNumbersSigned = new tooltip(
		noanswer + 'In diesem Feld bitte nur die <b>Ziffern von 1 bis 9 bzw. Tausendertrennpunkte eingeben!</b>',
		ttConstants.error);

ttOnlyDecNumbersSigned = new tooltip(
		noanswer + 'In diesem Feld bitte nur die <b>Ziffern von 1 bis 9, Tausendertrennpunkte bzw. ein Dezimalkomma eingeben!</b>',
		ttConstants.error);
