var stdMessageAnchor = 243;
var stdViewsScrollFieldName = "views_scroll";

function toggleRadio(fieldName, newValue, currIndex, maxIndex, it){
	// alert("toggle radio " + fieldName + "=" + newValue + "," + it);
	var i;
	for(i=1;i<=maxIndex;i++){
		var img_i = document.getElementById('img' + fieldName + i);
		if(! img_i){
			// alert("image " + img_i + " not found");
		}
		if(i == currIndex){
			if(img_i.src.indexOf("_sel") == -1){
				img_i.src = "img/radiobtn_sel.gif";
			}
		} else {
			// Nur falls nicht gesperrt. Bug #1937
			if(img_i.src.indexOf("_grey") == -1){
				img_i.src = "img/radiobtn.gif";
			}
		}
	}
	setFieldValue(fieldName,newValue);
}

function toggleCheckXXX(fieldName,newValue,it){
	// alert("toggle checkbox " + fieldName + "=" + newValue + "," + it);
	var ref = document.getElementById('img' + fieldName);
	if(! img){
		// alert("image " + img + " not found");
	}
	var refSrc = ref.src;
	if(refSrc.indexOf("_sel") != -1){
		ref.src = "img/checkbx.gif";
	} else {
		ref.src = "img/checkbx_sel.gif";
	}
	setFieldValue(fieldName,newValue);
}


function toggleCheck(fieldName, off, on, it){
	// alert("toggle checkbox " + fieldName + "=" + newValue + "," + it);
	var img = document.images['img' + fieldName];
	if(! img){
		// alert("image " + img + " not found");
	}
	var oldValue = document.forms[0][fieldName].value;
	var newValue;
	if(oldValue == off){
		newValue = on;
	} else {
		newValue = off;
	}
	if(newValue == on){
		img.src = "img/checkbx_sel.gif";
	} else {
		img.src = "img/checkbx.gif";
	}
	document.forms[0][fieldName].value = newValue;
}

function checkForm() {
	var formComplete = true;
	var checkLength = check.length;
	var firstError = 0;
	var errorText="Bitte füllen Sie das Formular aus.<br>\nPflichtfelder sind mit einem Sternchen (*) gekennzeichnet.<br>\n";
	var focusName;
	for(i=0;i<checkLength;i++){
		var fieldName = check[i].name;
		var fieldErrorText = check[i].text;
		var fieldTypeCheck = check[i].check;
		//alert(fieldName+" Value:"+fieldValue)
		if (fieldTypeCheck != 'jsignore') {
			var fieldValue = getFieldValue(fieldName);
			if (fieldTypeCheck == 'email') {
				if((fieldValue.indexOf('@') == -1) || (fieldValue.indexOf('.') == -1)){
					fieldValue = "";
				}
			}
			if (fieldValue == '') {
				firstError++;
				formComplete = false;
				if (fieldErrorText && firstError == 1) {
					errorText=fieldErrorText+"<br>\n";
					focusName=fieldName;
				}
			}
		}
	}
	if (!formComplete) {
		var ref = document.getElementById("messageBox");
		ref.style.display="block";
		ref.innerHTML = errorText;
		setFocus(focusName);
		setAnchorForms(stdMessageAnchor);
		return false;
	}
	return true;
}

function getFieldValue(fieldName){
	var fo = document.forms[0];
	if(typeof(fo[fieldName]) == "undefined"){
		// alert("getFieldValue:: no field " + fieldName);
		return "";
	} else {
		var ref = fo[fieldName];
		var fieldValue = ref.value;
		var fieldType = ref.type;
		// alert("getFieldValue:: fieldName: " + fieldName + " fieldType: " + fo[fieldName].type);
		if (typeof(fieldType) != "undefined" && fieldType.indexOf("select") != -1) {
			fieldValue = ref.options[ref.selectedIndex].value;
		}
		return fieldValue;
	}
}

function setFieldValue(fieldName,fieldValue){
	var fo = document.forms[0];
	if(typeof(fo[fieldName]) == "undefined"){
		// alert("setFieldValue:: no field " + fieldName);
		return "";
	} else {
		var ref = fo[fieldName];
		ref.value = fieldValue;
	}
}

function switchDatTable(sw) {
	div_ref = document.getElementById("datTable");
	if(div_ref){
		if (sw == 1) {
			div_ref.style.display = "";
		} else {
			div_ref.style.display = "none";
		}
	}
}

function setFocus(fieldName) {
	var fo = document.forms[0];
	// alert("setFocus:: field name: " + fieldName+ " typeof: " + typeof(fo[fieldName]) + " type: " + fo[fieldName].type);
	if(typeof(fo[fieldName]) == "undefined" || fo[fieldName].type == "hidden"){
		return;
	} else {
		fo[fieldName].focus();
	}
}

function onChangeSubmit() {
	var offset = document.body.scrollTop;
	if(typeof(offset) != "undefined"){
		setFieldValue(stdViewsScrollFieldName,offset);
	}
	document.forms[0].submit();
}

function setOpAndSubmit(op, form){
	if(typeof(form) == "undefined"){
		form = document.forms[0];
	}
	var typeForm = typeof(form);
	if(typeForm != "undefined"){
		var opElem = form.elements['op'];
		var typeFormOp = typeof(opElem);
//		alert("typeofOp " + typeFormOp);
		if(typeFormOp != "undefined"){
			opElem.value=op;
		}
		form.submit();
	}
}

function setOpAndSubmitAfterCheck(op, form){
	if(typeof(form) == "undefined"){
		form = document.forms[0];
	}
	//submit only if all required fields are filled
	var typeForm = typeof(form);
	var formOk = false;
	formOk = checkForm();
	//alert('checkForm() '+formOk);
	if(formOk){
		var backendCheckElem = form.elements['lmExecuteBackendCheck'];
		var typeFormBackendCheck = typeof(backendCheckElem);
		//alert("typeofBackendCheck " + typeFormBackendCheck);
		if(typeFormBackendCheck != "undefined"){
			backendCheckElem.value = "1";
		}
		if(typeForm != "undefined"){
			var opElem = form.elements['op'];
			var typeFormOp = typeof(opElem);
			//alert("typeofOp " + typeFormOp);
			if(typeFormOp != "undefined"){
				opElem.value=op;
			}
			form.submit();
		}
	}
}

var anchorIsSet = false;
function setAnchorForms(pos){
	if (pos) {
		window.scrollTo(0,pos);
	} else {
		if(!anchorIsSet) {
			if (stdViewsScrollFieldName == 'v_ay') {
				if (viewState.v_ay != 'undefined') {
					var views_scroll = viewState.v_ay;
					window.scrollTo(0,views_scroll);
					anchorIsSet = true;
				}
			} else {
				if (viewState.views_scroll != 'undefined') {
					var views_scroll = viewState.views_scroll;
					//alert('hier:'+views_scroll)
					window.scrollTo(0,views_scroll);
					anchorIsSet = true;
				}
			}

		}
	}
}

function checkLength(node,maxlimit) {
	if (node.value.length > maxlimit) {
		node.value = node.value.substring(0, maxlimit);
	}
}

