	function app_typecheck(obj) { 
		var parsed = obj.value; 
		var required = false;
		var failureid = document.getElementById('lastfailure').getAttribute('failureid');

		if (('null' != failureid) && (failureid != obj.id)) {
			// Es liegt ein Fehler bei einem Eingabefeld vor.
			// Dieses Feld hat die ID == failureid. Auf dieses Feld soll der Fokus gesetzt werden.

			// Diese Behandlung ist so notwendig, um zu vermeiden, daß zwei Felder mit required == true sich
			// wechselseitig endlos aufrufen.

			document.getElementById(failureid).focus();
		} else {
			// Entweder ist kein alter Fehler zu behandeln oder das fehlerhafte Eingabefeld wurde zur
			// erneuten Prüfung übergeben.

			// Ist das Feld ein Mußfeld?
			required = 'true' == obj.getAttribute('required');

			// Hintergrund und Schrift auf Standard setzen
			obj.style.backgroundColor = '#97aab3'; 
			obj.style.color = 'white';

			// Falls ein fehlerhaftes Feld behandelt wird, den Fehler zunächst zurücksetzen
			document.getElementById('lastfailure').setAttribute('failureid', 'null', 1);

			if (required && ('' == obj.value)) { 
				// Ein Mußfeld und es wurde nichts eingegeben

				obj.style.backgroundColor = 'yellow'; 
				obj.style.color = 'black';
				document.getElementById('lastfailure').setAttribute('failureid', obj.id, 1);
				obj.focus(); 
			} 
			
			if ('' != obj.value) { 
				// Typenprüfung der Eingabe

				switch (obj.getAttribute('datatype')) {
					case 'integer' : parsed = parseInt(obj.value).toString(10);
						break;
					case 'float' : parsed = parseFloat(obj.value.replace(/,/, '.')).toString(10);
						break;
				}

				if ('NaN' == parsed) { 
					// Feld sollte vom Typ integer oder float sein ist aber NaN

					obj.style.backgroundColor = 'yellow'; 
					obj.style.color = 'black';
					document.getElementById('lastfailure').setAttribute('failureid', obj.id, 1);
					obj.focus(); 
				} else obj.value = parsed; 
			}
		}

		return true;
	} 

	function app_NewsEnabler(appv_checkbox, IDNews) {
		if (appv_checkbox.checked) {
			var msg = 'Eingabe nicht möglich, da Bezug zu einem Bild oder einem Projekt';

			// Eigentlich muß hier eine Schleife über alle freigegeben Sprachen aus tblSprache erfolgen
			document.getElementById('txtContent1_' + IDNews + '_1').disabled = true;
			document.getElementById('txtContent1_' + IDNews + '_2').disabled = true;
			document.getElementById('txtContent1_' + IDNews + '_3').disabled = true;

			document.getElementById('txtContent2_' + IDNews + '_1').disabled = true;
			document.getElementById('txtContent2_' + IDNews + '_2').disabled = true;
			document.getElementById('txtContent2_' + IDNews + '_3').disabled = true;

			document.getElementById('txtContent1_' + IDNews + '_1').value = msg;
			document.getElementById('txtContent1_' + IDNews + '_2').value = msg;
			document.getElementById('txtContent1_' + IDNews + '_3').value = msg;

			document.getElementById('txtContent2_' + IDNews + '_1').value = msg;
			document.getElementById('txtContent2_' + IDNews + '_2').value = msg;
			document.getElementById('txtContent2_' + IDNews + '_3').value = msg;
		} else {
			document.getElementById('txtContent1_' + IDNews + '_1').disabled = false;
			document.getElementById('txtContent1_' + IDNews + '_2').disabled = false;
			document.getElementById('txtContent1_' + IDNews + '_3').disabled = false;

			document.getElementById('txtContent2_' + IDNews + '_1').disabled = false;
			document.getElementById('txtContent2_' + IDNews + '_2').disabled = false;
			document.getElementById('txtContent2_' + IDNews + '_3').disabled = false;

			document.getElementById('txtContent1_' + IDNews + '_1').value = '';
			document.getElementById('txtContent1_' + IDNews + '_2').value = '';
			document.getElementById('txtContent1_' + IDNews + '_3').value = '';

			document.getElementById('txtContent2_' + IDNews + '_1').value = '';
			document.getElementById('txtContent2_' + IDNews + '_2').value = '';
			document.getElementById('txtContent2_' + IDNews + '_3').value = '';
		}

		switch (appv_checkbox.name) {
			case 'bProjektbezug' :
				document.getElementById('IDBezug').disabled = !document.getElementById('bProjektbezug').checked; 
				if (appv_checkbox.checked) {
					document.getElementById('bBildbezug').checked = false; 
					document.getElementById('btUploadStart').disabled = true;
				} 
				break;
			case 'bBildbezug' :
				document.getElementById('btUploadStart').disabled = !document.getElementById('bBildbezug').checked; 
				if (appv_checkbox.checked) {
					document.getElementById('bProjektbezug').checked = false; 
					document.getElementById('IDBezug').disabled = true;
				}
				break;
			default: ;
		}

	}

	function app_showDescription() {
		picNr = 1;
		for (i = 0; i < document.images.length; i++) {
			var img = document.images[i];

			if (img.className == 'activeImage') picNr = img.getAttribute('appv_PicNr');
		}
		
		if ('' != document.getElementById('imgDescr' + picNr).getAttribute('appv_Description')) {
			if ('false' == document.getElementById('imgShowDescr').getAttribute('appv_visible')) {
				document.getElementById('txtBildbeschreibung').innerHTML = document.getElementById('imgDescr' + picNr).getAttribute('appv_Description');
				document.getElementById('imgShowDescr').src = '/images/ui/dreieck-schwarz.gif';
				document.getElementById('imgShowDescr').setAttribute('appv_visible', 'true', 1);
			} else {
				document.getElementById('txtBildbeschreibung').innerHTML = '';
				document.getElementById('imgShowDescr').src = '/images/ui/dreieck-weiss.gif';
				document.getElementById('imgShowDescr').setAttribute('appv_visible', 'false', 1);
			}
		} else { 
			document.getElementById('imgShowDescr').src = '/images/ui/dreieck-trans.gif';
			document.getElementById('imgShowDescr').getAttribute('appv_visible', 'false', 1);
		}
	}

	function app_SetPermissions(appv_form, appv_Permission) {
		var len = appv_form.elements.length;
		
		for (i = 0; i < len; i++) {
			var elem = appv_form.elements[i];
			if ((elem.getAttribute('appv_Permissions') && (-1 == elem.getAttribute('appv_Permissions').indexOf(appv_Permission)))) {
				elem.disabled = "disabled";
			}
		}
	}

	function app_UploadStart(mode, ID) {
		// Ruft in einem neuen Fenster einen Dialog zum Upload von Bildern auf.

		var W = window.open("/prog/inc/upload.php?mode=" + mode + "&IDBezug=" + ID,"wdUpload","width=520,height=520,left=100,top=100,scrollbars=yes");
		W.self.focus();
	}
