/* 
 * BIBLIOTHEK: lib_plzcheck
 * ZWECK: Ausgelagerte Funktionen für das Programm PLZ-Check.
 * FUNCTIONS:
 *        isPLZ(input)                  Überprüft, ob die Eingabe eine PLZ ist; Kriterium: fünfstellig und nur Ziffern.
 *        hasOnlyDigits(input)          Überprüft, ob die Eingabe lediglich aus Ziffern besteht.
 *        in_array(array, item)         Überprüft anhand einer Schleife, ob item im Array array vorhanden ist.
 *                                      Rückgabe ist der Index der Fundstelle im Array, kein Fund = -1
 *        in_range_array(array, int)    Überprüft anhand einer Schleife, ob int in einem Bereich des Range-Arrays 
 *                                      liegt. Ein Range-Array definiert sich dadurch, dass es Bereiche von Zahlen 
 *                                      ausdrückt. Der erste und der zweite Wert des Arrays stellen je die untere
 *                                      und obere Grenze des Bereichs dar. Alle geraden (mit 0) Indizes sind somit der
 *                                      Beginn eines Bereichs, die darauf folgenden ungeraden Indizes das Ende dieses
 *                                      Bereichs.
 *                                      Rückgabe ist der Index der Fundstelle der unteren Grenze im Array, 
 *                                      kein Fund = -1. Es werden nur gerade Werte zurückgegeben (und 0).
 * AUTOR: Bernhard Saumweber
 * DATUM: 20. Februar 2009
 * 
 */


function isPLZ(input) {
  // Bedingungen für PLZ (einfach): fünfstellig und alles Ziffern
  return ((hasOnlyDigits(input)) && (input.length==5));
  // return (input.length==5);
}

function hasOnlyDigits(mixstr) {
  var onlyDigits = true;
  for (i=0;i<mixstr.length;i++) {
    if (!((mixstr.charAt(i) == '0') || (mixstr.charAt(i) == '1') || (mixstr.charAt(i) == '2') || (mixstr.charAt(i) == '3') || (mixstr.charAt(i) == '4') || (mixstr.charAt(i) == '5') || (mixstr.charAt(i) == '6') || (mixstr.charAt(i) == '7') || (mixstr.charAt(i) == '8') || (mixstr.charAt(i) == '9')))
      onlyDigits = false;
  }
  return onlyDigits;
}

function in_array(a, p) {
  for (i=0; i<a.length; i++)
    if (a[i] == p) return i;
  return -1;
}
      
function in_range_array(a, p) {
  var j = a.length / 2; // Array ist notwendig gerade, da immer (Start + Stop) * n, also 2n Elemente im Array
  for (i=0; i<j; i+=2)
    if (p >= a[i] && p<= a[i+1]) return i;
  return -1;
}
