/*
	Funform Validation
	
	Funftec GbR
	Armin und Bastian Fritsch GbR
	
	Version 0.13
		20.02
			- ajax abfrage ob ein wert true oder false ist wurde integriert. Ebenfalls wurde eine Sicherheitsabfrage eingabut
			das der mitgegebene php scriptname nur buchstaben enthalten darf sonst wird abgebrochen
	
	Version 0.12
		18.02
			- feld mu� sein wie, sowie dessen Gegensatz erscheint nun die korrekte Label Bezeichnung
	
	Version 0.11
		17.02.07
			- nun IE tauglich die zeilen
				.....getAttribute(atr)... wurden erstezt durch getAttributeNode(atr).nodeValue;
			- Wenn man submit gedr�ckt hat wurden alle Felder wenn sie leer waren als falsch 
			dargestellt. Sind nun im Case abfragen drinne ob der Wert > 0 ist.
			- neue JS Funktionen :
				- min l�nge 
				- max l�ngen 
				- feld darf sein wie
				- feld darf nicht sein wie
			
	
	Version 0.1
		
	
*/

function str_replace(searchIt, replaceWith, subject) {
    //console.log('serach:'+searchIt);
	//console.log('rep:'+replaceWith);
	//console.log('sub:'+subject);
	return subject.split(searchIt).join(replaceWith);
}

YAHOO.validation = function (){
		var $E = YAHOO.util.Event;
		var $El = YAHOO.util.Element;
		var $D = YAHOO.util.Dom;
		var $C = YAHOO.util.Connect;
		var $ = $D.get;
		
		function in_array(item,arr) {
			for(p=0;p<arr.length;p++) if (item == arr[p]) return true;
			return false;
		}
		
		return  {
			init : function (e){
				
				
				var errorOutput = function(fehler) {
					
					if (fehler != undefined) {
						
						var getParent = document.getElementById(formidname).parentNode;
						
						
						var nameID = document.getElementById(formidname).getAttributeNode("id").nodeValue;
						
						//console.log(formidname);
						if(document.getElementById(nameID+"error")){
							
							var fehlerspan = document.getElementById(nameID+"error");
							fehlerspan.innerHTML= fehler;
							return false;
						} else {
							var fehlerblock = document.createElement('span');
									
							var fehlerspan = getParent.appendChild(fehlerblock);
							$D.addClass(fehlerspan,"error");
							
							
							fehlerspan.setAttribute('id',nameID+"error");
							fehlerspan.innerHTML= fehler;
							
							animation_span(nameID+"error");
							return false;
						}
						
						
						
						
						
					} else {
						var nameID = document.getElementById(formidname).getAttributeNode("id").nodeValue;
						remove_error_message(nameID+"error");
						return true;
					}
				}
				
				var onBlurCheck = function(el) {
					
					label = this.getAttributeNode("id").nodeValue;
					
					var fehler = checkfield(el,label,true);
					//console.log(fehler);
					errorOutput(fehler); 
					
					
			
					
					
				}
				
				/**
				 * Wenn auf Submit gedrückt wird, schaue nach ob es Fehler gibt
				 * wenn Fehler vorhanden dann stoppe den Vorgang
				 * @param {Object} el
				 */
				var onSubmitCheck = function(el) {
					var nameforms = $D.getElementsBy(test,'label',this);
					var submitOK = true;
					var fehlerFound = false;
					
					var allerrorSpan = document.getElementsByTagName('span');
					
						for ( i = 0; i<allerrorSpan.length;i++){
							if ($D.hasClass(allerrorSpan[i],'error')) {
							
							$E.stopEvent(el);
						}
					}
					
					for (k = 0;k < nameforms.length;k++) {
						var label = nameforms[k].getAttributeNode("for").nodeValue;
						var fehler = checkfield(el,label,false);
						if (fehler != undefined){
							fehlerFound = true;
						}
						submitOK = errorOutput(fehler);
						
					}
					
					if(fehlerFound === true){
						$E.stopEvent(el);
					}
					
				}
				
				var check_post_js = function (v){
					
					if (!/[a-z]}$/.test(v)) {
						
						return false;
						
					} else {
						return true;
					}
				}
				
				var animation_span = function (em){
					
					attributes = {
						opacity: { from:0, to:1 }
					};
					
					anim = new YAHOO.util.Anim( em, attributes, 20, YAHOO.util.Easing.backOut );
					anim.animate();
				};
				
				var get_label_text = function (field){
					//var baum = document.getElementById(field).parentNode.childNodes[1];
					//var baum = document.getElementById(field).parentNode.childNodes.replace(/[\r\n|\s]/g,'');
					var thelabel = document.getElementById(field).parentNode.childNodes[0];
					
					if (thelabel.nodeName != 'LABEL') {
						var thelabel = document.getElementById(field).parentNode.childNodes[1];
					}
					
					if (thelabel.nodeName != 'LABEL') {
						
						alert('Ihr Browser hat keine richten DOM Support');
						stop;
					}
					return(thelabel.innerHTML);
				}
				
				
				var remove_error_message = function (em){
					
					if(document.getElementById(em)){
						   ema=document.getElementById(em);
						   ema.parentNode.removeChild(ema);
					}
				};
/**
*		Hier sind alle Fehler�berpr�fungen
*/
				var check_email = function(v) {
					
					if ( v.length > 0 && !/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v)) {
						return formvalidation_wrong_email;
					}
				};
				
				var check_url = function(v){
					
					if (v.length > 0 && !/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(v)) {
						return formvalidation_wrong_httplink;
					}
				}
				
				var check_required = function(v){
					
					
					
					
					if (v == null || v.length === 0) {
						return formvalidation_wrong_mandatoryfield;
					} else {
						
						return check_min_length(v,1);
					}
				};
				
				var check_required_select = function(v){
					//console.log(v);
					if (v == null || v.length === 0 || v == 0) {
						
						return 'Diese Feld ist ein Pflichtfeld';
					} else {
						
					}
				}
				/**
					@param v = der value Wert des Feldes
					@param formidname = Die Id des Feldes
					@param onblur = kommt es von onblur oder sumbit
				*/
				var check_required_lang = function(v,formidname,onblur,specialError){
					// D�rfen nur bei Submit gepr�ft werden !
					/*
						Wenn ein Feld ausgef�llt m�ssen alle in der Sprache ausser opti
						Bei pr�fen wissen wievielw Felder gibt es ?
						1. Eine Sprache muss komplett ausgef�llt sein
						2. Wenn ein Bedingetes Pflichtfled ausgef�llt ist, m,�ssen alle der Sprache ausgef�llt sein
					*/
					if (onblur === true) {
						//wenn onblur ist und nicht die submit abfrage mache keine fehlerpr�fung
					} else {
						// wenn submit gedr�ckt wurde
						
						//hole alle Felder der Klasse vlangrequired
						var allLangReq = $D.getElementsByClassName('vlangrequired','input'); //textarea felder werden nicht geprüft !
						var allLangReqLength = allLangReq.length;
						//console.log(v,formidname,onblur,specialError);
						
						//
						// Fehler - wenn kein Sprachfeld ausgef�llt ist
						//
						
							//findValue wird auf true gesetzt sobald ein Feld in der Schleife gefunden wird welches ausgef�llt ist
							var findValue = false;
							//dursuche alle Felder und schaue ob eines davon ausgef�llt ist
							for(i=0;i<allLangReqLength;i++) {
								
								
								
								
								var fieldVal = allLangReq[i].value;
								
								var vall = fieldVal.length;
								if (vall > 0) {
									findValue = true;
								}
								
							}
							
							//wenn kein Feld gefunden wurde welches ausgef�llt war dann gebe einen Fehler aus.
							if (findValue === false) {
								//schaue nach ob eine sprachvariable im feld ist dann nehme diese sonst die allg. Sprachfehlermeldung
								return formvalidation_wrong_langmandatoryfield;
								
							}
						
						//
						// Fehler - wenn von einer Sprache nicht alle bedingten Felder ausgef�llt sind
						//
							//wenn im Feld kein Wert enthalten ist, schaue nach ob in den anderen Sprachfeldern auch nichts ist.
							// und es keine Textarea ist !
				
							if (document.getElementById(formidname).tagName != 'TEXTAREA' &&	(v == null || v.length === 0)) {
								
								//die eigene Sprache des Feldes
								var ownLangArray = formidname.split("_");
								var ownLang = ownLangArray[0];
								
								//findValue wird auf true gesetzt sobald ein Feld in der Schleife gefunden wird welches ausgef�llt ist
								var findValueL = true;
								//dursuche alle Felder und schaue ob eines davon ausgef�llt ist
								for(i=0;i<allLangReqLength;i++) {
									
									
									//hole die id splitte diese auf und schaue die sprache an
									var fid = allLangReq[i].getAttributeNode("id").nodeValue;
									
									var fidss = fid.split("_");
									if (fidss[0] == ownLang) {
										var fieldVal = allLangReq[i].value;
										var vall = fieldVal.length;
										
										
																				
										//wenn ein Wert gefunden wurde.
										if (vall > 0) {
											findValueL = false;
										}
									}
								}
								
							   //wenn kein Feld gefunden wurde welches ausgef�llt war dann gebe einen Fehler aus.
								if (findValueL === false) {
									return formvalidation_wrong_langmandatoryfieldnotAll;
									
								}
							}
						
						
					}
				};
				
				var check_number = function(v) {
				
					if (v.length > 0 && isNaN(v)) {
						return formvalidation_wrong_numeric;
					} 
				};
				
				var check_dezimal = function(v){
					
					checkv =  v.split('.').join('');
					if (v.length > 0 && isNaN(checkv)) {
						return formvalidation_wrong_dezimal;
					} 

				}
				
				var check_alphanumeric = function(v) {
					
					if (v.length > 0 && /\W/.test(v)){
						return formvalidation_wrong_alphanumeric;
					}
				}
				
				var check_dataname = function(v) {
					
					if (v.length > 0 && !/^(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(v)) {
						//if (v.length > 0 && /\W/.test(v)){
						return formvalidation_wrong_dataname;
					}
				}
				
				var check_min_length = function(v,minL) {
					
					if (v.length > 0 && isNaN(minL)) {
						minL = 3;
					}
					if (v.length == 0) return;
					if (v.length < minL) {
						return formvalidation_wrong_minlength_before+minL+formvalidation_wrong_length_after;
					}
				};
				
				var check_max_length = function(v,maxL) {
					
					
					if (v.length > maxL) {
						return formvalidation_wrong_maxlength_before+maxL+formvalidation_wrong_length_after;
					}
				};
				
				/**
				Funktionen zur Datumspr�fung
				*/
				var check_d = function(v){	
				//console.log(v);
				var split = v.split(".");
    			var day = parseInt(split[0], 10);
    			var month = parseInt(split[1] || 0, 10);
    			var year = parseInt(split[2] || 0, 10);

    			if(isNaN(year)) year = getFullYear();;

			    var check = new Date(year, month - 1, day);
    			var day2 = check.getDate();
    			var year2 = getFullYear(check);
    			var month2 = check.getMonth() + 1;

			    if (  month == month2 && day == day2 ){
			    	//do nothing
			    } else {
			    //	//console.log(year2+' '+year);
    				////console.log('hier rein wenn falsch');
					return formvalidation_wrong_date;	
    			}
    			if (year == 00 || year == 0000 || day == 00 || month == 00){
    				return formvalidation_wrong_date;	
    			}
				}
				
				var getFullYear = function(check){
					var ddate = new Date();
    			if(typeof ddate.getFullYear != 'undefined') return ddate.getFullYear();
   				 var year = date.getYear();
   				 if(year < 1000) year += 2000;
   				 //return year;
				}
				
				
				/*
				Pr�ft ob das Feld dem Datumsformat entspricht:
				tt.mm.yyyy
				returnt im Fehlerfall den Fehler
				*/
				var check_date = function(v){
						if (v.length > 0) {
							
							var dateval = v.split('.');
							if(dateval[0].length != 2){					
								return formvalidation_wrong_dateDayWL;
							} 
							if(dateval[1].length != 2){
								return formvalidation_wrong_dateMonthWL;
							}
							if(dateval[2].length != 4){
								return formvalidation_wrong_dateYearWL;
							}
							return check_d(v);
						}
				}
				
				/*
				Pr�ft ob das Feld dem erweitertem Datumsformat entspricht:
				hh:mm tt.mm.yyyy
				returnt im Fehlerfall den Fehler
				*/
				var check_datetime = function(v){
						var dateval = v.split(' ');
						if(dateval[0].length != 5){
							return formvalidation_wrong_datetime;
							
						}
						/*if(dateval[1].length != 10){
							return formvalidation_wrong_datetime;
						}*/
						//pr�fe ob stunden und minute korrekt sind
						var dayval = dateval[0].split(':');
						if(dayval[0].length != 2 || dayval[0] > 23 || dayval[0] < 0){
							return formvalidation_wrong_dateHours;
						}
						if(dayval[1].length != 2 || dayval[1] > 59 || dayval[1] < 0){
							return formvalidation_wrong_dateMinutes;
						}
						//pr�ft nun das datum
						return check_date(dateval[1]);
						
				}
				
				var check_isntExist = function(v) {
					
					return v+formvalidation_wrong_isntExist;
					
				};
				
				
				
				
				var wert_db_success_in_db = function (o){
					/* Ajax Callback, wenn der Wert in der Datenbank sein mu� */
					var otherField = document.getElementById(formidname).value;
					fieldTXT = get_label_text(formidname);
					
					var res = o.responseText;
					
					if (res == 'falsch') {
						fehler = fieldTXT+formvalidation_wrong_isntExist;
						errorOutput(fehler);
					}
				}
				var wert_db_success_n_in_db = function (o){
					/* Ajax Callback, wenn der Wert in der Datenbank NICHT sein darf */
					var otherField = document.getElementById(formidname).value;
					fieldTXT = get_label_text(formidname);
					
					
					var res = o.responseText;
					
					if (res == 'richtig') {
						fehler = fieldTXT+formvalidation_wrong_existsInDB;
						errorOutput(fehler);
					}
				}
				
				var wert_db_failure = function (o) {
						
						alert(formvalidation_wrong_problemsWithScript);
				};
					
					
				
				
				var check_like_other = function (v,isLike,field){
					
					<!-- isLike ist false f�r ist nicht wie, true f�r ist wie -->
					var otherField = document.getElementById(field).value;
					
					fieldTXT = get_label_text(field);
					
					
					if (isLike == false) {
						if (v == otherField) {
							return formvalidation_wrong_fieldMustDiffer+fieldTXT+formvalidation_wrong_sameAsEnd;
						}
					} else {
						if (v != otherField) {
							return formvalidation_wrong_fieldMustBeSame+fieldTXT+formvalidation_wrong_sameAsEnd;
						}
					}
					
					
				}
				var check_checkBoxChecked = function (v,like,errorMSG){
					
					checkBoxField = document.getElementById(v);
					
					if (checkBoxField.checked === false) {
						
						return eval(errorMSG);
					}
				}
				
				
				var check_onlyExept = function (v,like,errorMSG){
					if (v != like) {
						return eval(errorMSG);
					}
				}
				
				/**
					@param onblur wird gepfr�ft auch beim verlassen des Feldes ? true | false
				*/
				var checkfield = function(e,label,onblur){
					
					
					if (e.type == 'submit') {
						
						formidname = label;
					} else if(e.type == 'blur') {
						
						formidname = label;
					}
					
					
					
					var checkout = document.getElementById(formidname).getAttributeNode("class").nodeValue;
					
					if (checkout == 'nov') {
						return;
					}
					var check_arr = checkout.split(" ");
					var check_arr_length = check_arr.length;
					
					var fehler = '';
					
					/**
						Wenn das Feld vFormatPost enth�lt dann tue diese an den Anfang des Arrays
						
					*/
					if (onblur === false) {
						if (in_array('vFormatPost',check_arr)) {
						
						checkout  = str_replace(' vFormatPost','',checkout);
						
						check_arr = checkout.split(" ");
						//check_arr.unshift('vFormatPost');
						
						check_arr_length = check_arr.length;
						}
						if (in_array('setPostField',check_arr)) {
						
						alert('yo');
						}
						
						
					}
					
					for(i=0;i<check_arr_length;i++) {
						
						if (check_arr[i] == 'vrequired') {
							if (document.getElementById(formidname).tagName != 'TEXTAREA') {
								fehler = check_required(document.getElementById(formidname).value);
								if (fehler != undefined) {
									i = check_arr_length + 1;
								}
							} else {
								/**
								 * Textarea erstetzt duch Tinymce
								 * 
								 * Textarea wird ja durch Tinymce ersetzt so muss tinymce auf requiered ausgeführt werden !
								 */	
								
								tinyMCE.triggerSave(); 
								fehler = check_required(document.getElementById(formidname).value);
								if (fehler != undefined) {
									i = check_arr_length + 1;
								}
								
							}
						} 
						else if (check_arr[i] == 'vrequiredSelect') {
							//schaue bei einem select feld nach ob etwas gesegtzt wurde oder der wert null ist
							fehler = check_required_select(document.getElementById(formidname).value);
							
							if (fehler != undefined) {
								i = check_arr_length+1;
							}	
							
						}
						else if (check_arr[i] == 'vlangrequired') {
							fehler = check_required_lang(document.getElementById(formidname).value,formidname,onblur);
							if (fehler != undefined) {
								i = check_arr_length+1;
							}	
						} 
						else if (check_arr[i] == 'vnumber') {
							
							fehler = check_number(document.getElementById(formidname).value);
							if (fehler != undefined) {
								i = check_arr_length+1;
							}	
						} 
					
						else if(check_arr[i] == 'vemail'){
							
							fehler = check_email(document.getElementById(formidname).value);
							if (fehler != undefined) {
								i = check_arr_length+1;
							}	
							
						}
						else if(check_arr[i] == 'vurl'){
							
							fehler = check_url(document.getElementById(formidname).value);
							if (fehler != undefined) {
								i = check_arr_length+1;
							}	
							
						}
						else if(check_arr[i] == 'valphanumeric'){
							
							fehler = check_alphanumeric(document.getElementById(formidname).value);
							if (fehler != undefined) {
								i = check_arr_length+1;
							}	
							
						} else if(check_arr[i] == 'vdataname'){
							
							fehler = check_dataname(document.getElementById(formidname).value);
							if (fehler != undefined) {
								i = check_arr_length+1;
							}	
							
						} else if(check_arr[i] == 'vdate'){
							fehler = check_date(document.getElementById(formidname).value);
							if(fehler != undefined) {
								i = check_arr_length+1;
							}
						} else if(check_arr[i] == 'vdatetime'){
							fehler = check_datetime(document.getElementById(formidname).value);
							if(fehler != undefined){
								i = check_arr_length+1;
							}
						} else if (check_arr[i] == 'vFormatPost') {
								 
								if ( 
									(document.getElementById(formidname).value != '' && 
									(document.getElementById(formidname+'_old').value != document.getElementById(formidname).value)) ||
									onblur === false && document.getElementById(formidname).value == ''
								) {
									
									if (onblur === false && document.getElementById(formidname).value == '') {
									//wenn submit gedr�ckt wurde und das Feld leer ist schaue nach ob das Head Feld leer ist
										//erstetzte beim fieldnamen das post durch head
										var headFieldName = str_replace('post','head',formidname);
										var headField = document.getElementById(headFieldName).value;
										if (headField == '') {
											break;
										} else {
											var vFormatPostFieldValue = headField;
										}
									} else {
										var vFormatPostFieldValue = document.getElementById(formidname).value;
									}
									
									
									
									/**
								   	Hole die ersten zwei Zeichen der Form id denn diese sind die Sprachzeichen
								   */
								   var idofL = document.getElementById(formidname).id;
								   var fieldLanguageArray = idofL.split("_");
								   var fieldLanguage = fieldLanguageArray[0];
								  
								   
								   /**
										Formatiert den String in ein post string u.a. leerzeichen entfernen etc.
									*/
									var callback = {
										success: function(o){
											var formatValue = o.responseText;
											document.getElementById(formidname).value = formatValue;
											
											
										},
										failure : function(o){
											//alert('Kurzbeschreibung - Keine Verbindung zur Datenbank');
										}
									}
									if (YAHOO.util.Dom.inDocument('cat_select') == true) {
										
										var cat_value = document.getElementById('cat_select').value;
									}
									
									if (YAHOO.util.Dom.inDocument('news_modul_value') == true) {
										var cat_value = document.getElementById('news_modul_value').value;
									}
									
									//hole dir den Modulnamen aus dem head und nicht aus dem Postform
									var supID = document.getElementById(formidname).id.split('post');
									
									
									var check_arr_split_v = supID[0].split("_");
									if (check_arr_split_v[1] == 'cat') {
										var olink = '&is_cat=1';
										var headfromPost = document.getElementById(supID[0]+'name').getAttributeNode("class").nodeValue;
										var check_arr_split_v = headfromPost.split(";");
									} else {
										var olink = "";
									}
									
									var getTest = YAHOO.util.Connect.asyncRequest('GET','ajax/vpost.php?setPostField=1&lang='+fieldLanguage+olink+'&value='+vFormatPostFieldValue+'&modulName='+check_arr_split_v[1]+'&cat_value='+cat_value,callback);
								}
								
							}
						
						else {
							
							<!-- hier wierd gesplittet -->
							var check_arr_split = check_arr[i].split(";");
							
							if (check_arr_split[0] == 'vlangrequired') {
								fehler = check_required_lang(document.getElementById(formidname).value,formidname,onblur,check_arr_split[1]);
								if (fehler != undefined) {
									i = check_arr_length+1;
								}	
							}
							else if (check_arr_split[0] == 'vminlength') {								
								fehler = check_min_length(document.getElementById(formidname).value,check_arr_split[1]);
								if (fehler != undefined) {
									i = check_arr_length+1;
								}
							} else if (check_arr_split[0] == 'vdezimal') {								
								fehler = check_dezimal(document.getElementById(formidname).value,check_arr_split[1]);
								if (fehler != undefined) {
									i = check_arr_length+1;
								}
							}
							
							else if (check_arr_split[0] == 'vmaxlength') {
								
								fehler = check_max_length(document.getElementById(formidname).value,check_arr_split[1]);
								if (fehler != undefined) {
									i = check_arr_length+1;
								}	
							}
							
							else if (check_arr_split[0] == 'vsynonym') {
								
								fehler = check_max_length(document.getElementById(formidname).value,check_arr_split[1]);
								if (fehler != undefined) {
									i = check_arr_length+1;
								}	
							}
							else if (check_arr_split[0] == 'vnotLike') {
								
								fehler = check_like_other(document.getElementById(formidname).value,false, check_arr_split[1]);
								if (fehler != undefined) {
									i = check_arr_length+1;
								}	
							}
							else if (check_arr_split[0] == 'vonlyExept') {
								
								//es darf nur den Wert check_arr_split[1] haben
								var onlyExpetValue = check_arr_split[1];
								var errorMess = check_arr_split[2];
								fehler = check_onlyExept(document.getElementById(formidname).value,onlyExpetValue,errorMess);
								if (fehler != undefined) {
									i = check_arr_length+1;
								}
								
							}
							else if (check_arr_split[0] == 'vcheckBoxChecked') {
								
								//es darf nur den Wert check_arr_split[1] haben
								var errorMess = check_arr_split[1];
								
								fehler = check_checkBoxChecked(document.getElementById(formidname).value,onlyExpetValue,errorMess);
								if (fehler != undefined) {
									i = check_arr_length+1;
								}
								
							}
							else if (check_arr_split[0] == 'vLike') {
								
								fehler = check_like_other(document.getElementById(formidname).value,true, check_arr_split[1]);
								if (fehler != undefined) {
									i = check_arr_length+1;
								}	
							}
							else if(check_arr_split[0] == 'vdontexists') {
								
								
								var modulName = check_arr_split[1];		//der Modulname
								var modulLang = check_arr_split[2];		//die Sprache
								
								/**
										Wenn es den Head schon gibt erzeugt er eine Zahl dahinter f�rht aber noch eine Fehlermeldug aus
								*/
								var callbackgetFile = {
									success: function(o){
										var formatValue = o.responseText;
										if (formatValue != '') {
											
											document.getElementById(formidname).value = formatValue;
											errorOutput(formvalidation_wrong_TagExist);
										}
										
										
										
										
										
										
									},
									failure : function(o){
										alert('Keine Verbindung zur Datenbank');
									}
								}
									
									
								var getFile = YAHOO.util.Connect.asyncRequest('GET','/ajax/vpost.php?check_head='+document.getElementById(formidname).value+'&lang='+modulLang+'&modulName='+modulName,callbackgetFile);
								
								
								
								
							}
							else if(check_arr_split[0] == 'setPostField') {
								//console.log(check_arr_split[2]+'_old');
								/* Setzt den eingegbenen Value in das angegbene Feld formatiert hinein und pr�ft ob in DB vorhanden */
								if (document.getElementById(formidname).value != '' && 
									(document.getElementById(check_arr_split[2]+'_old').value != document.getElementById(formidname).value
									)
								) {
									
								   
								   /**
								   	Hole die ersten zwei Zeichen der Form id denn diese sind die Sprachzeichen
								   */
								   var idofL = document.getElementById(formidname).id;
								   var fieldLanguageArray = idofL.split("_");
								   var fieldLanguage = fieldLanguageArray[0];
								   
								   
								   
									/**
										Formatiert den String in ein post string u.a. leerzeichen entfernen etc.
									*/
									var callback = {
										success: function(o){
											var formatValue = o.responseText;
											
											document.getElementById(check_arr_split[2]).value = formatValue;
											
											
										},
										failure : function(o){
											('Keine Verbindung zur Datenbank');
										}
									}
									
									/*hole den cat_value*/
									if (YAHOO.util.Dom.inDocument('cat_select') == true) {
										
										var cat_value = document.getElementById('cat_select').value;
										var show_in_news = 0;
									}
									
									if (YAHOO.util.Dom.inDocument('news_modul_value') == true) {
										var cat_value = document.getElementById('news_modul_value').value;
										var show_in_news = 1;
									}
									
									if(undefined === check_arr_split[3]) {
									
										var olink = '';
									} else {
										
										var olink = '&is_cat=1';
									}
									
									var getTest = YAHOO.util.Connect.asyncRequest('GET','/ajax/vpost.php?setPostField=1&lang='+fieldLanguage+'&value='+document.getElementById(formidname).value+'&modulName='+check_arr_split[1]+'&cat_value='+cat_value+olink+'&show_in_news='+show_in_news,callback);
								}
								
								
							} else if (check_arr_split[0] == 'vajaxtest') {
									var handleSuccess = function(o){
									window.stop();
										("The success handler was called.  tId: " + o.tId + ".", "info", "example");
									
									}
									
									var handleFailure = function(o){
									//window.stop();
										//("The failure handler was called.  tId: " + o.tId + ".", "info", "example");
									
									
									}
									
									var callback =
									{
										success:handleSuccess,
										failure:handleFailure,
										argument: { foo:"foo", bar:"bar" }
									};
									
									var sUrl = "ajax/checkDBExists.php";
									var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
									("Initiating request; tId: " + request.tId + ".", "info", "example");
									
									
							} else if (check_arr_split[0] == 'vcheckExist') {
								
								<!-- Die Funktion muss so aufgerufen werden dass nicht immer die js angepasst werden mu�-->
								/*
									Aufbau von check_arr_split
										check_arr_split[0] = vcheckExist
										check_arr_split[1] = Datenbankname
										check_arr_split[2] = Datenbankfeld
										check_arr_split[3] = wie h�ufig darf der Wert gefunden werden ?
										check_arr_split[4] = fehlertext
										check_arr_split[5] = der feldname
										check_arr_split[6] = es muss mind. sovielmal gefunden werden
										
										
								*/
								
								var maxFind = check_arr_split[3]; // wie h�ufig darf der Wert gefunden werden ?
								var errorOut = check_arr_split[4]; // wie h�ufig darf der Wert gefunden werden ?
								var minFind = check_arr_split[6];
								
								
								
								function in_arraysd(item,arr) {
									//(item);(arr);
									for(p=0;p<arr.length;p++) if (item == arr[p])
									for(p=0;p<arr.length;p++) if (errorOut == erlaubteFehler[p]) return true;
									return false;
								}
								
								function in_array(needle, haystack, argStrict) {
								    // http://kevin.vanzonneveld.net
								    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
								    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
								    // *     returns 1: true
								 
								    var found = false, key, strict = !!argStrict;
								 
								    for (key in haystack) {
								        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
								            found = true;
								            break;
								        }
								    }
								 
								    return found;
								}
								
								var erlaubteFehler = new Array("formvalidation_wrong_errorForm_mail_exists","formvalidation_wrong_errorForm_user_exists","formvalidation_wrong_errorForm_mail_dontexists");
								
								if (in_array(errorOut,erlaubteFehler) === false) {
									//alert('errorOutput nicht erlaubt');
									//return;
								}
								
								
								var check_wert_db_callback = {
									success: function(o){
										var findnumbers = o.responseText; //gefundene Werte
										//(findnumbers);
										//(o.responseText);
										if (findnumbers > maxFind) {
											//document.getElementById(formidname).value = formatValue;
											formidname = check_arr_split[5];
											errorOutput(eval(errorOut));
											
										} else if(findnumbers < minFind){
											//wenn der wert nicht den mind. Anzahl gefunden hat, z.b. beim passwort vergessen
											formidname = check_arr_split[5];
											errorOutput(eval(errorOut));
										} else {
											return;
										}
									
											
											
									},
									failure : function(o){
											
											//cObj = YAHOO.util.Connect.asyncRequest('GET', '/ajax/checkDBExists.php',check_wert_db_callback);
								
											//window.stop();
											//('handleFailure: responseText: ' + o.responseText + ' statusText: ' + o.statusText);
											
									}
								}
								
								var cObj = YAHOO.util.Connect.asyncRequest('GET', '/ajax/checkDBExists.php?value='+document.getElementById(formidname).value+'&name='+check_arr_split[1]+'&field='+check_arr_split[2],check_wert_db_callback);
								//cObj = YAHOO.util.Connect.asyncRequest('GET', '/ajax/checkDBExists.php',check_wert_db_callback);
								
								
								
								
								
							} else {
								return;
								//alert('fehler in '+formidname);
							}
						}
					}
					
					return(fehler);
				
					
					
					
				};
			
			
			
			test = function(el) {
				
				return (el);
				
			}
			
			
			var nameforms = $D.getElementsBy(test,'label',this);
			
			for (i = 0;i < nameforms.length;i++) {
				
				var label = nameforms[i].getAttributeNode("for").nodeValue;
				YAHOO.util.Event.addListener(label,'blur',onBlurCheck);
				
			}
			YAHOO.util.Event.addListener(this,'submit',onSubmitCheck);
			
			
			
			
			
			}
		
		}
}();