function inpConstants() {
	
}
inpConstants.normal = 1;
inpConstants.error = 2;
inpConstants.cssBoxes = new Array(3);
inpConstants.Windows = new Array();

/**
 * Klasse zur Beschreibung eindes HTML-Input-Feldes. Es werden die Tooltip- und
 * Fehlermeldungstexte und deren Darstellung fesgelegt. Des weiteren wird ein
 * optionales Info-Symbol beschrieben.
 * 
 * @param {string}
 *            ptooltip HTML-Tooltip-Text, welcher im Ballon angezeigt wird.
 * 
 * @param {string}
 *            pjavamsg HTML-Text fuer die Anzeige Meldung auf der Webseite per
 *            Javascript.
 * 
 * @param {string}
 *            picon Optional. HTML-ID des Icons, welches auf der Webseite als
 *            Ausloeser fuer die Anzeige eines Tooltips verwendet wird. D.h.
 *            wenn der Benutzer mit der Maus ueber dieses Symbol faehrt, wird
 *            der Tooltip eingeblendet.
 * 
 * @param {array}
 *            Optional. Ein Array mit den CSS-Klassennamen fuer die Darstellung
 *            HTML-Inputs-Feldes. Der Index in dem Array wird Ueber die
 *            Konstanten ttConstants.normal /.error dargestellt. Das
 *            Konstanten-Array inpConstants.cssBoxes ist bereits vordefiniert
 *            und wird verwendet, wenn der Parameter 'undefined' ist. Die
 *            einzelnen CSS-Klassennamen sollten am Anfang des Javascripts
 *            vorbelegt werden: inpConstants.cssBoxes[inpConstants.normal] =
 *            'inpnormal'; inpConstants.cssBoxes[inpConstants.error] =
 *            'inperror';
 */
function inputDesc(ptooltip, pjavamsg, picon, pcssBoxes) {
	
	this.tooltip = ptooltip;
	this.javamsg = pjavamsg;

	if (picon != undefined && picon != '') {
		this.icon = document.getElementById(picon);
	}

	if (pcssBoxes === undefined) {
		this.cssBoxes = inpConstants.cssBoxes;
	} else {
		this.cssBoxes = pcssBoxes;
	}
	
	this.resetError = function resetError(element, useTooltip, useJavaMsg) {
		
		if (useTooltip) {
			this.tooltip.hideTip();
			this.tooltip.setLevelIcon(this.icon, ttConstants.info);
		}
		
		if (useJavaMsg) {
			this.javamsg.hideMessage();
		}
		
		if (element.className != this.cssBoxes[inpConstants.normal]) {
			element.className = this.cssBoxes[inpConstants.normal];
		}
		
	};
	
	this.showError = function showError(element, useTooltip, useJavaMsg) {
		
		if (useTooltip) {
			this.tooltip.showError(element);
		}
		
		if (useJavaMsg) {
			this.javamsg.showMessage();
		}
			
		if (element.className != this.cssBoxes[inpConstants.error]) {
			element.className = this.cssBoxes[inpConstants.error];
		}
	};
		
}

function switchDisp(elemName, orgclass) {

	var elem = document.getElementById(elemName);
	
	if (elem.className == "nodisplay") {
		elem.className = orgclass;
	} else {
		elem.className = "nodisplay";
	}
 
}

function cookieDetect() {
	if (!navigator.cookieEnabled) {
		jmsgCookie.showMessage();
	}
}

// Text in die Zwischenablage kopieren
function copyToClipboard(ctype, ctext) {
	
	if (window.clipboardData) {
		window.clipboardData.setData(ctype, ctext);
	}
}

// Oeffnen eines Fensters
function openWindow(url, name, options, posx, posy) {

	var newwin = true;
	var win = undefined;
	
	for ( var i = 0; i < inpConstants.Windows.length; i++ ) {
	
		if (inpConstants.Windows[i].closed) {
			inpConstants.Windows.splice(i, 1);
		} else {
			if (inpConstants.Windows[i].name == name) {
				win = inpConstants.Windows[i];
				newwin = false;
				break;
			}
		}
	}
	
	if (newwin) {
		win = window.open(url, name, options);
		inpConstants.Windows.push(win);
		win.moveTo(posx, posy);
	} else {
		win.focus();
	}
	
	return win;
	
}

function setFocus(id, win) {
	
	if (win == undefined) {
		win = self;
	}
	
	try {	
		var elem = win.document.getElementById(id);
		elem.focus();
		selText(elem);
		return false;
	}
		catch(e) {
	}
}

function resetField(id, condField, cond) {
	
	if (condField != undefined) {
		if (cond == document.getElementById(condField).value) {
			return;
		}
	}
	
	document.getElementById(id).value = '';
}

function validateNumbers(element, decpoint, signed, desc, useTooltip, useJavaMsg) {
	
	var valChar;
	var val = element.value;
	var err = false;
	var numberexp = /[^\d\.]/g;


	if (signed == true) {
		numberexp = /[^\d\.-]/g;
	}
	
	if (decpoint == true) {
		if (signed == true) {
			numberexp = /[^\d\.,-]/g;
		} else {
			numberexp = /[^\d\.,]/g;
		}
	}

	
	var newval = val.replace(numberexp, '');
	
	if (newval != val) {
		element.value = newval;
		desc.showError(element, useTooltip, useJavaMsg);
	} else {
		desc.resetError(element, useTooltip, useJavaMsg);
	}
	
	return true;
}


