// JavaScript Document 

$(document).ready(function() {
	
	// Anker scrollen
	$('a[href*="#"]').click( function() {
		var anchorName = $(this).attr('href').replace('#','');
		$.scrollTo($('a[name="' + anchorName + '"]'));
		return false;
	});
						   
	$('a.print-link').click(function() {
		window.print();	
		return false;
	 });
	$('a.fav-link').click(function() {
		window.external.AddFavorite(location.href, document.title);
		return false;
	 });	
	
	$('#gallery-det a').lightBox();	
	$('#gallery a').lightBox();
	
	$('#sidebargallery a.sidbarpic').lightBox();
	$('#sidebargallery a.sidbartext').lightBox();
	
	$('.videopic a').lightpop();
	
	// 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;
	});

});
