var found = false;
var defaultEmptyOK = false
var checkNiceness = true;
var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyzאבגדהוזחטיכלמנסעפצקרשת"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZאבגדהוזחטיכלמנסעפצקרשת"
var whitespace = " \t\n\r";
var phoneChars = "()-+ ";
var mMessage = "שגיאה: יש להזין נתונים בשדה זה"
var pPrompt = "שגיאה:";
var pAlphanumeric = "יש להזין טקסט המורכב מאותיות ומספרים בלבד";
var pAlphabetic   = "יש להזין אותיות בלבד";
var pInteger = "יש להזין רק מספרים שלמים";
var pNumber = "יש להזין מספרים בלבד";
var pPhoneNumber = "נא להזין מספר טלפון";
var pEmail = "יש להזין כתובת דואר אלקטרוני חוקית";
var pName = "ניתן להזין טקסט המורכב מאותיות מספרים ומרווחים";
var pNice = "אין להשתמש מסימני פיסוק";

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isWhitespace (s)
{   var i;
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        // si el caracter en que estoy no aparece en whitespace,
        // entonces retornar falso
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}


function stripCharsInBag (s, bag)
{   
		var i;
    var returnString = "";

    // Buscar por el string, si el caracter no esta en "bag", 
    // agregarlo a returnString
    
    for (i = 0; i < s.length; i++)
    {   var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}

function isLetter (c)
{
    return( ( uppercaseLetters.indexOf( c ) != -1 ) ||
            ( lowercaseLetters.indexOf( c ) != -1 ) )
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isLetterOrDigit (c)
{   return (isLetter(c) || isDigit(c))
}

function isInteger (s)
{   var i;
    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);
    
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if( i != 0 ) {
            if (!isDigit(c)) return false;
        } else { 
            if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}
function isNumeric (s)

{   var i;
	 
    if (isEmpty(s)) 
       if (isNumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isNumeric.arguments[1] == true);
	
    // Search through string's characters one by one
    // until we find a non-alphanumeric character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number or letter.
        var c = s.charAt(i);

        if (! ( isDigit(c) ) )
        return false;
    }

    // All characters are numbers or letters.
    return true;
}

/**************************************************************************/

function isPhoneNumber (s)
{   var modString;
	
    if (isEmpty(s)) {
			 if (isPhoneNumber.arguments.length == 1) return defaultEmptyOK;
       else return (isPhoneNumber.arguments[1] == true);
     }
     
    modString = stripCharsInBag( s, phoneChars );
    if (modString.length > 7 && isNumeric(modString))
			return (true);
}

/**************************************************************************/

function isEmail (s)
{
    if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
    
    if (isWhitespace(s)) return false;
    var i = 1;
    var sLength = s.length;
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

/**************************************************************************/




