﻿// JavaScript Document
function isEmptyElement(elem) {
	var isEmpty = false;
	switch(elem.type) {
		case "text":
		case "password":
			if(elem.value.length==0) { isEmpty = true; }
			break;
		case "select-one":
			//alert(document.forms[frm].elements[i].name+"="+document.forms[frm].elements[i].value+"; len="+val.length+"; type="+document.forms[frm].elements[i].type);
			//testmodeecho("select: "+elem.name+": "+elem.value);
			if(elem.value.length==0 || elem.value==-1 || elem.value=="-1" || elem.value=="") { isEmpty = true; }
			break;
		case "select-multiple":
			if(elem.value.length==0) { isEmpty = true; }
			break;
		case "radio":
			break;
		case "checkbox":
			//alert("checkbox: elemID="+elemID+"; checked="+document.forms[frm].elements[i].checked);
			//if(!elem.checked) { isEmpty = true; }
			break;
	}
	return isEmpty
}

function changeClass(elemID,elem,isEmpty) {
	var classError = "Error";
	var foundError = false;
	var cls, cls2;
	if(isEmpty) {
		//leeres Feld
		testmodeecho(elem.name+" is empty");
		cls = elem.className;
		if(!findClassInString(classError,cls)) {
			testmodeecho("Class noch nicht zugewiesen");
			cls2 = cls+" "+classError; //Error-Class MIT Leerzeichen
			//cls2 = cls.replace(/Pflicht/gi,"PflichtError");
			elem.className = cls2;
		}
		foundError = true;
	}
	else {
		$j("#"+elemID).removeClass("Error");
		cls = elem.className;
		if(findClassInString(classError,cls)) {
			var pos1 = cls.substring(0,cls.indexOf(" "+classError)-1);
			var pos2 = cls.substring(pos1+classError.length+2);
			cls2 = pos1+pos2;
			
			//cls2 = cls.replace(/PflichtError/gi,"Pflicht");
			elem.className = cls2;
		}
	}
	return foundError;
}

function findClassInString(cls,str) {
	var arr = str.split(" ");
	found = false;
	for(var i=0; i<arr.length; i++) {
		if(cls==arr[i]) {
			found = true;
			//testmodeecho("hier: "+arr[i]+", class="+cls+", found="+found);
			break;
		}
	}
	return found;
}

function checkForm() {
	var args = checkForm.arguments;
	var frm = args[0];
	var elemID;
	var foundError = false;
	var isEmpty = false;
	
	var classNoError = "Pflicht";
	//alert("[ FUNCTION checkForm ]: frm="+frm);
	
	for(var i=0; i<document.forms[frm].elements.length; i++) {
		elemID = document.forms[frm].elements[i].id;
		if(elemID.length>0 && document.getElementById(elemID).className) {
			//alert(elemID+"; exists? -> "+document.getElementById(elemID)+"; className="+document.getElementById(elemID).className);
			isEmpty = false;
			//if(document.getElementById(elemID).className.indexOf(classNoError)!=-1) {
			if(findClassInString(classNoError,document.getElementById(elemID).className)) {
				isEmpty = isEmptyElement(document.forms[frm].elements[i]);
				testmodeecho(document.getElementById(elemID).name+" isEmpty? -> "+isEmpty);
				foundError2 = changeClass(elemID,document.getElementById(elemID),isEmpty,classNoError);
				if(!foundError && foundError2) { foundError = true; }
			}
		}
	}
	return !foundError;
}

function checkFormItems() {
	var args = checkFormItems.arguments;
	var classNoError = args[0];
	var isEmpty = false;
	var foundError = false;
	for(var i=1; i<args.length; i++) {
		elem = document.getElementById(args[i]);
		if(findClassInString(classNoError,elem.className)) {
			isEmpty = isEmptyElement(document.getElementById(args[i]));
			foundError2 = changeClass(document.getElementById(args[i]),isEmpty,classNoError);
			if(!foundError && foundError2) { foundError = true; }
		}
	}
	
	return !foundError;
}

function getSelectedValues(selName) {
	var selVals = new Array();
	for(var i=0; i<document.getElementById(selName).options.length; i++) {
		if(document.getElementById(selName).options[i].selected) {
			selVals.push(document.getElementById(selName).options[i].value);
		}
	}
	return selVals;
}
