/**
 * Skrypt DHTML do weryfikacji poprawności numerów telefonicznych. 
 * Dzięki uprzejmości SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Deklaracje niezbędnych zmiennych
var digits = "0123456789";
// w numerach telefonicznych można podawać jedynie cyfry
var phoneNumberDelimiters = "()- ";
// znaki dozwolone w międzynarodowych numerach telefonicznych
// (wraz ze znakiem + umieszczanym na samym początku)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimalna ilość cyfr w międzynarodowym numerze tel.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Sprawdzenie czy bieżący znak jest cyfrą.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // Wszystkie znaki są cyframi.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Przejrzenie kolejno wszystkich znaków łańcucha.
    // Jeśli znak jest prawidłowy, zostaje on dodany do łańcucha returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Sprawdzenie czy bieżący znak nie jest odstępem.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone) {
  s=stripCharsInBag(strPhone,validWorldPhoneChars); 
  return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function validatePhone(phoneNumber) {
  if ((phoneNumber == null) || (phoneNumber == "")) {
    alert("Proszę podać numer telefonu.");
    return false;
  }
  if (checkInternationalPhone(phoneNumber) == false) {
    alert("Proszę podać prawidłowy numer telefonu.");
    return false;
  }
  return true;
}
