
var txt_err_msg = "";//nachricht für die Fehlerausgabe
var bln_no_error = true; //gibt an ob ein Fehler aufgetreten ist

var str_no_number = "Der eingegebene Wert ist keine Zahl.";//Nachricht wenn ein Wert überprüft wird und keine Zahl ist
var str_no_string = "Der eingegebene Wert ist keine gültige Zeichenkette."; //Nachricht wenn ein Wert überprüft wird und kein String ist

//Erzeugt ein Objekt eines HTML-Elements und überprüft die Eingaben des benutzers
function perform_check_form(str_element, str_err_msg, type){	
	  
	  var var_value; 
	  var Obj_element;
	  
	  //Objekt des HTML-Elements erzeugen 
	  if(document.getElementById(str_element)){
	     Obj_element = document.getElementById(str_element);
	  }else{
	  	 Obj_element = document.getElementsByName(str_element);
	  }
	  
	  var_value = Obj_element.value;
	  
	  if(!var_value || var_value == "" || var_value == " ") {
	      
	  	  bln_no_error = false;
	      txt_err_msg = txt_err_msg + str_err_msg + "\n";
	  }else{
	    
	  	  if(type == "NUM") {
		  	if ( !isFinite (var_value) ) {
		  		bln_no_error = false;
		  		txt_err_msg = txt_err_msg + str_err_msg + "->\n"+ str_no_number + "->\n";
		  	}
		  }else if(type == "STR"){
		  	if ( !isNaN (var_value) ) {
		  		bln_no_error = false;
		  		txt_err_msg = txt_err_msg + str_err_msg + "->\n"+ str_no_string + "->\n";
		  	}
	  	  }	
	  
	  }
	  

}

//mit dieser Funktion kann eine Sicherheitsfrage ausgelöst und danach eine Aktion ausgeführt werden
function ask_to_perform(str_form, str_element, str_action, str_question, int_id){

	 if(confirm(str_question) == 1){
	   	  document.getElementById(str_element).value = str_action;
	   	  if ( int_id>0 ) document.getElementById('sel_id').value = int_id;
	      document.forms[str_form].submit();
	 }

}

//überprüft eine Zeichenkette auf eine angegebene Länge
function check_string_length(str_element, int_length, str_description){

	 var var_value; 
	 var Obj_element;
	   
	 if(document.getElementById(str_element)){
	     Obj_element = document.getElementById(str_element);
	 }else{
	  	 Obj_element = document.getElementsByName(str_element);
	 }
	 
	 var_value = Obj_element.value;
	 
	 if(var_value.length < int_length){
	 	txt_err_msg = txt_err_msg + "Die Zeichenkette im Feld " + str_description + "\n muss mindestens " + int_length + " Zeichen lang sein.\n";
	 	return false;
	 }else{
		return true;
	 }
}

//rezeugt ein Objekt eines angegebenen HTML-Elements 
function get_element_object(str_element){
	
	if(document.getElementById(str_element)){
	     Obj_element = document.getElementById(str_element);
	}else{
	  	 Obj_element = document.getElementsByName(str_element);
	}
	
	return Obj_element;

}

//überprüft eine E-Mail Adresse 
function check_mailadress(this_amailadress){

   
    var blanks = ''*100;
    var naughty = new Array("bastard","fuck","shit","wanker","piss");
    var sneaky = this_amailadress.toLowerCase();
    var illegal = "Die E-Mail Adresse enthält ungültige Zeichen.\nNur folgende Zeichen sind erlaubt.\n\nBuchstaben des Alphabets [groß-und kelingeschrieben]\nZahlen\nEin @ Symbol\nPunkte\nMinus Zeichen\nUnderscores\n\n";
    
    //mail check
    if (this_amailadress <= blanks){
      alert('Geben Sie bitte eine E-Mail Adresse ein.');
      return false;
    }
    else if (this_amailadress.length > 62){
       alert('Die maximale Länge einer E-Mail Adresse ist 63.');
       return false;
    }
    else if (this_amailadress.charAt(0) == " "){
       alert('Die E-Mail Adresse enthält ein Leerzeichen am ANFANG');
       return false;
    }
    else if (this_amailadress.charAt(this_amailadress.length-1) == " "){
       alert('Die E-Mail Adresse enthält ein Leerzeichen am ENDE');
       return false;
    }
    else if (this_amailadress.indexOf(" ") !=-1){
       alert('Die E-Mail Adresse enthält ein Leerzeichen');
       return false;
    }
    

    //CHECK FOR ILLEGAL CHARACTERS 1
    for (i=0; i < this_amailadress.length; i++){
    var caps = "a".toUpperCase();
    var E = this_amailadress.substring(i, i + 1);
    if ((E < "0" || "9" < E ) && E != "@"  && E !="." && E !="-"  && E !="_"  &&  E < caps || "z" < E){
     alert(illegal);
     return false;
     }
    }

    //CHECK FOR ILLEGAL CHARACTERS 2
    if ((this_amailadress.indexOf('`',0) != -1) || (this_amailadress.indexOf(String.fromCharCode(94)) != -1) || (this_amailadress.indexOf(String.fromCharCode(92)) != -1) || (this_amailadress.indexOf('[',0) != -1) || (this_amailadress.indexOf(']',0) != -1)){
     alert(illegal);
     return false;
    }

    //CHECK FOR SWEARING
    for (i=0; i < this_amailadress.length; i){
     if (sneaky.indexOf(naughty[i]) != -1){
     alert('Die E-Mail Adresse enthält mindestens eine unerwünschte Zeichenkette- '+naughty[i].toUpperCase());
     return false;
     }
    i++;
    }


   for (i=0; i < this_amailadress.length; i++){
   if (this_amailadress.charAt(i) ==" ")
   this_amailadress.charAt(i)="";
   }
   //alert(email);
	
   //GENERAL FORMATING
   if (this_amailadress.charAt(0) =="."){
    alert('Eine E-Mail Adresse kann nicht mit einem Punkt beginnen');
    return false;
   }
   else if (this_amailadress.split('@').length > 2){
    alert('Eine E-Mail Adresse darf nur ein @ - Zeichen enthalten.');
    return false;
   }
   else if (this_amailadress.indexOf ('@',0) == -1){
    alert('Die E-Mail Adresse enthält kein @ Zeichen');
    return false;
   }
   else if (this_amailadress.indexOf("@") < 2){
    alert('Vor dem @ Symbol der E-Mail Adresse müssen mindestens 2 Zeichen stehen.');
    return false;
   }
   else if (this_amailadress.charAt(this_amailadress.length-1) == "@"){
    alert('Eine E-Mail Adresse darf nicht mit @ enden');
    return false;
   }
   else if (this_amailadress.indexOf ('.') == -1){
    alert("Eine gültige E-Mail Adresse mus mindestens einen Punkt enthalten (.)");
    return false;
   }
   else if (this_amailadress.indexOf('.',this_amailadress.indexOf('@')) == -1){
    alert('Es wurde kein Punkt (.) nach dem @ gefunden');
    return false;
   }
   else if (this_amailadress.substring(this_amailadress.indexOf('@'),this_amailadress.length).indexOf(".") < 4){
    alert('Zwischen dem q und dem letzten Punkt müssenss sich mindestens 3 Zeichen befinden');
    return false;
   }
   else if (this_amailadress.lastIndexOf(".")+2 == this_amailadress.length){
    alert('Nach dem letzten Punkt müssen mindestens 2 Zeichen stehen');
    return false;
   }
   else if (this_amailadress.substring(this_amailadress.lastIndexOf("."),this_amailadress.length).length > 4){
    alert('Nach dem letzten Punkt dürfen höchstens 3 Zeichen stehen');
    return false;
   }
   else if (this_amailadress.charAt(this_amailadress.length-1) =="."){
    alert('Eine gültige E-Mail Adresse darf nicht mit einem Punkt (.) enden');
    return false;
   }
   
   return true;
   
}

//öffnet ein neues Fenster
var fenster;
function open_popup(datei, ziel, breite, hoehe) 
{
         if (fenster && !fenster.closed)
            fenster.close();
         fenster=window.open(datei, ziel,"toolbar=no,location=no,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width="+breite+",height="+hoehe);
         fenster.focus();
};


