FORM_ERROR_MSG = "Skriptfehler: Die Anzahl der Formularfelder im HTML Dokument"+
		              " passt nicht zur Anzahl der Knoten in Editor.js";

function FormField(owner, num) {
	this.num=num;
	this.owner = owner;

	this.mark = function() {
		// markiert das Eingabefeld bei fehlerhafter Eingabe
		document.getElementById("cell"+this.num).style.background="url(imgs/alert.gif) 6px 30px no-repeat";
	}
	
	this.clearMark = function() {
		// loescht die Markierung
		document.getElementById("cell"+this.num).style.background="white";
	}
	
	this.drawActive = function() {
		// setzt Stil fuer aktives Formularfeld
		document.getElementById("node"+this.num).style.border="#BB2F24 1px solid";
		document.getElementById("name"+this.num).style.border="#BB2F24 1px solid";
		document.getElementById("from"+this.num).style.border="#BB2F24 1px solid";
		document.getElementById("to"+this.num).style.border="#BB2F24 1px solid";
	}
	
	this.drawInActive = function() {
		// setzt Stil fuer inaktives Formularfeld
		document.getElementById("node"+this.num).style.border="#DFB2AE 1px solid";
		document.getElementById("name"+this.num).style.border="#DFB2AE 1px solid";
		document.getElementById("from"+this.num).style.border="#DFB2AE 1px solid";
		document.getElementById("to"+this.num).style.border="#DFB2AE 1px solid";
	}

	this.getInput = function() {
		// gibt die relevante Eingabe des Formularfelds als Liste
		var form = document.getElementById("node"+this.num);
		if (!form) {
			throw new Error(FORM_ERROR_MSG);
			return;
		}
		strg=form.value;
		if (strg!=null) {
			var input=strg.split(",");
			var j = 0;
			var result = new Array();
			var mistakes = 0;
			for (var i=0;i<input.length;i++) {
				var x= input[i]-1;
				if (x>=0 && x<this.owner.num_nodes) {
					result[j]=x;
					j++;
				}
				else if (x != -1){
					mistakes++;
				}
			}
			// Warnmeldung bei fehlerhafter Eingabe
			// TODO: einen anderen Platz dafuer im Quelltext suchen
			if (mistakes>0) {
				this.mark()
			} else 
				this.clearMark();
			return result;
			}
		return null;
	}
	
	this.nameNotEmpty = function() {
		// gibt true zurueck, wenn das Formularfeld in der Spalte "name"
		// nicht leer ist
		var form = document.getElementById("name"+this.num);
		if (!form) {
			throw new Error(FORM_ERROR_MSG);
			return;
		}
		if (form.value!="") return true;
		return false;
	}

	this.toNotEmpty = function() {
		// gibt true zurueck, wenn das Formularfeld in der Spalte "name"
		// nicht leer ist
		var form = document.getElementById("to"+this.num);
		if (!form) {
			throw new Error(FORM_ERROR_MSG);
			return;
		}
		if (form.value!="") return true;
		return false;
	}

	this.fromNotEmpty = function() {
		// gibt true zurueck, wenn das Formularfeld in der Spalte "name"
		// nicht leer ist
		var form = document.getElementById("from"+this.num);
		if (!form) {
			throw new Error(FORM_ERROR_MSG);
			return;
		}
		if (form.value!="") return true;
		return false;
	}

}

