
	/* --- // -------------------------------------------------------
			
			@ Marti 
			@ /js/functions/misc.js
			@ Funktionen f?r (immer ben?tigte) Module im Misc Ordner
			
			@ 25.10.2007 ph,dk
			@ alpha 0.1
			
			Changelog:
			
	------------------------------------------------------- // --- */

	$(document).ready(function() {
		// Vor dem Abschicken eines Formulars die Felder pr?fen
		$('form').submit(function() {
			var tmpName = this.name;
			var tmpSelect = ">*[name*='" + tmpName + "']";
			var tmpInput = $(tmpSelect, this); // alle felder holen
			var tmpReturn = true;
			var tmpErrors = 0;
			var inputLength = tmpInput.length;
			for(i=0;i<inputLength;i++) { // felder pruefen
				var tmpField = tmpInput[i];
				var tmpIsCheckbox = (tmpField.type == 'checkbox') ? true : false;
				var tmpClass = tmpField.className;
				var tmpJSON = tmpClass.substr(tmpClass.indexOf('{'),tmpClass.lastIndexOf('}') + 1); // json extrahieren
				
				/* wenn kein JSON String gefunden wurde, das Formular normal abschicken */
				if(tmpJSON == '') {
					return true;	
				}
				
				var tmpJSON = '(' + tmpJSON + ')';
				var tmpJSON = tmpJSON.replace(/\\/g,'\\\\'); // vor eval backslashes escapen
				var tmpObj = eval(tmpJSON);
				
				tmpReturn = true;
				
				var tmpValue = tmpField.value; // feld pruefen
				// length check
				if(tmpObj.len && !tmpIsCheckbox) {
					var tmpLen = parseInt(tmpObj.len);
					if(tmpValue.length > tmpLen) {
						tmpField.value = tmpValue.substr(0,tmpLen);
						tmpReturn = false;
					}
				}
				// required == nicht leer
				if(tmpObj.req == 'yes') { 
					if(tmpIsCheckbox) { // checkbox sonderfall
						if(tmpField.checked != true) {
							var tmpMsg = tmpObj.msg;
							tmpID = 'alertCheck' + i;
							if(!document.getElementById(tmpID)) {
								$(tmpField).after('<span id="' + tmpID +'">' + tmpMsg + '</span>');
								//document.getElementById(tmpID).setAttribute('style', 'background-color:#FFF2CF');
								document.getElementById(tmpID).className = 'checkboxAlert';
							} 
							tmpReturn = false;
						}
						else {
							if($('#alertCheck' + i)) {
								$('#alertCheck' + i).remove();
							 }
						}
					}
					else {
						if(tmpValue == '') {
							tmpReturn = false;
						}
					}
				}
				// regexp check
				if(tmpObj.regex && !tmpIsCheckbox) {
					var tmpReg = new RegExp(tmpObj.regex,'gi');
					if (!(tmpReg.exec(tmpValue))){
						tmpReturn = false;
					}
				}
				// filetype check
				if(tmpObj.fileTypes && !tmpIsCheckbox) {
					var tmpFileExt = tmpValue.split('.')[tmpValue.split('.').length - 1];
					var fArr = tmpObj.fileTypes.split(',');
					var fCount = 0;
					for(f=0;f<fArr.length;f++) {
						if(fArr[f] == tmpFileExt) {
							fCount++;
						}
					}
					if(fCount == 0) {
						tmpReturn = false;
					}
				}
				/* markierung setzen wenn etwas nicht stimmt */
				if(!tmpReturn){
					tmpErrors++;
					/* schauen obs den Classname schon gibt, wenn ja, nicht neu setzen */
					if(tmpField.className.indexOf('alertField') == -1){
						tmpField.className += ' alertField';
					}
				} else {
					/* schauen ob die alertField classe gesetzt ist, wenn ja ersetzen durch nichts */
					if(tmpField.className.indexOf('alertField') != -1){
					tmpField.className = tmpField.className.replace(' alertField','');
					}
				}
			}
			
			return (tmpErrors > 0) ? false : true;
		});
		
		
		// Funktion zum umfaerben der Tabellenrows auf der Uebersichtsliste (Organigramm / Standoruebersicht)
		$(".tdlink").hover(
		function () {			
			oldcolor = $(this).css("backgroundColor");
			$(this).css("backgroundColor","#fff");	 
		},
		function () {
			$(this).css("backgroundColor",oldcolor); // wieder zuruecksetzen auf die alte Farbe.
		}
	);	
	
		
		
	
		
	// Footer Position setzen
	//setContainerPos('reload');
		
	});
	
	// Funktion um Footer Position zu setzen
	function setContainerPos(jsMode) {
		var documentElm = this.document.documentElement;
		var isSameHeight = (documentElm.scrollHeight == documentElm.clientHeight)
		var footer = $('#footer');
		
		var korrFooterPosTop = 36;
		
		
		var topPosFooter = documentElm.scrollHeight - korrFooterPosTop;
		
		footer.css('top', topPosFooter);
		
		if(jsMode == 'reload') footer.show();
	}
	/*
	$(window).resize(function() {
		setContainerPos('resize');
	});
	
	$(window).scroll(function() {
		setContainerPos('scroll');
	});*/
	
	
