							
counter = 1;

function newRow()
{
	//row = document.getElementsByTagName("tr")[1];
    row = document.getElementById("firstgrouprow");
	tmpNode = row.cloneNode(true);
	tmpNode.id = "";

	last_td = (document.getElementsByTagName("tr")[1]).getElementsByTagName("td");


	// Eingabefelder löschen
	inputs = tmpNode.getElementsByTagName("input");
	for(i=0;i<inputs.length;i++) {
		
		if(inputs[i].type != "hidden") {
			inputs[i].value = "";
		}
		
		inputs[i].name = (inputs[i].name).replace(0, counter);
		inputs[i].id = (inputs[i].id).replace(0, counter);
		
	}

	// Dropdowns löschen
	selects = tmpNode.getElementsByTagName("select");
	for(i=0;i<selects.length;i++) {
		selects[i].name = (selects[i].name).replace(0, counter);
		selects[i].id = (selects[i].id).replace(0, counter);
	}

	new_tds = tmpNode.getElementsByTagName("td");
	// new_tds[new_tds.length-1].innerHTML = '<a href="#" onclick="removeRow(this.parentNode);return false;">Zeile entfernen</a>';

    document.getElementById("groupmembers").appendChild(tmpNode);
	counter++;
}

function removeRow(row) {
	row = row.parentNode;
	document.getElementsByTagName("tbody")[0].removeChild(row);
}

function getElementsByClassName(oElm, strTagName,oClassNames){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; i<oClassNames.length; i++){
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	}
	else{
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++){
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function appendClass(element,newClass) {
	element.className += " " + newClass;
}

function deleteClass(element, classname) {
	var oldClassName = element.className;
	var newClassName = oldClassName.replace(classname, "");

	element.className = newClassName;
}

function markAsErrorField(field) {
	appendClass(field,"cf_error");
	appendClass(field.parentNode,"cf_li_err");
}

function markCorrectField(field) {
	deleteClass(field,"cf_error");
	deleteClass(field.parentNode,"cf_li_err");
}

function setErrorText(field,text) {
	document.getElementById(field.id + "_reqtext").innerHTML = text;
}

function setVisible(div) {
	document.getElementById(div).style.display = "block";
	document.getElementById(div+"_javascript").style.display = "none";
}

function validate(form_id) {
	
	document.getElementById("sendbutton").value = "Bitte warten...";
		
	var rowsToValidate = (document.getElementById(form_id)).getElementsByTagName("li");
	
	var formIsValid = true;
	var firstNotValidElement;

	for(j=rowsToValidate.length; j>0; j--) {
		var row = rowsToValidate[j-1];
		
		deleteClass(row,"cf_li_err");
		
		var fieldsToValidate = getElementsByClassName(row,"*","fldrequired");
		var rowIsValid = true;
		
		for(i=fieldsToValidate.length; i>0; i--) {

			var field = fieldsToValidate[i-1];
						
			deleteClass(field, "cf_error");			
					
			if(field.value=="") {
				formIsValid = false;
				rowIsValid = false;
				firstNotValidElement = field;
				appendClass(field, "cf_error");
			}

		}
		
		if(!rowIsValid) {
			appendClass(row,"cf_li_err");
		}
	}
	

	if(formIsValid) {
		return true;
	}
	else {
		document.getElementById("sendbutton").value = "Senden";
		location.href = "#"+firstNotValidElement.parentNode.id;
		firstNotValidElement.focus();
		return false;
	}

}
