﻿function password_strength(pwfield, feedbackfield, col1, col2, col3, col4){
   //Über die DOM-Methode document.getElementById wird der Wert aus dem Eingabefeld geholt
   //und der Variablen val zugewiesen.
   var val = document.getElementById(pwfield).value;

   //Anschließend wird über die selbe DOM-Methode ein Referenzpunkt für das Feedback erzeugt 
   //und in der Variablen call gespeichert.
   var call = document.getElementById(feedbackfield);
            
   //Ab hier beginnt die Prüfung.
   //Das Passwort ist entweder zu kurz, unsicher, sicher oder sehr sicher
   
   //Ist das Passwort wenigstens 6 Zeichen lang?
   if (val.length > 4)  
   {    
        
      //Wenn das Passwort neben Buchstaben zusätzlich wenigstens eine Zahl 
      //und ein Sonderzeichen enthält, ist es "sehr sicher".    
      if (val.match(/\d{1,}/) && val.match(/[a-zA-ZäöüÄÖÜ]{1,}/) && val.match(/\W/)) 
        {   
      call.style.backgroundColor=col4;
      call.style.width="100%";               
      call.innerHTML = "&nbsp;<strong>sicher</strong>";
        }
        
        //Wenn das Passwort nur eine Zahl oder ein Sonderzeichen enthält, ist es "sicher"?           
        else if (val.match(/\d{1,}/) && val.match(/[a-zA-ZäöüÄÖÜ]{1,}/) || val.match(/\W/) && val.match(/[a-zA-ZäöüÄÖÜ]{1,}/)) 
        {   
    		call.style.backgroundColor=col3;
    		call.style.width="75%"; 
    		call.innerHTML = "&nbsp;<strong>relativ sicher</strong>";
        }
        else //Hier enthält das Passwort weder Ziffern noch Sonderzeichen und ist somit "unsicher".
        {   
         
    call.style.backgroundColor=col2;
    call.style.width="50%"; 
    call.innerHTML = "&nbsp;<strong>relativ unsicher</strong>";}
    } 
    else //Hier enthält das Passwort nicht mal die erforderlichen 6 Zeichen und ist daher "zu kurz"
    {
    call.style.backgroundColor=col1;
    call.style.width="25%"; 
    call.innerHTML = "&nbsp;<strong>unsicher</strong>";}          
    }; 
