function trimString(str){
   return str.replace(/^\s*|\s*$/g,"");
}

function validateOneCharInMiddle(str,c){
    if ((str.charAt(0) == c) || (str.charAt(str.length-1) == c))
        return false;
    if (str.split('.').length > 2)
        return false;
    return true;
}

function validateUserName(str){
    var illegalChars = /\W/; // allow letters, numbers, and underscores

    if ((str.length < 4) || (str.length > 12))
        return false;
    if (!validateOneCharInMiddle(str,'.'))
        return false;
    str = str.replace('.','');    
    if (!validateOneCharInMiddle(str,'_'))
        return false;
    if (illegalChars.test(str))
        return false;
        
    return true;
}

function validateEmail(str){
    var regex = /^([a-zA-Z0-9_\-])+([a-zA-Z0-9_\.\-])*\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/
    str = trimString(str);
    
    if(str.length < 5 || str.length > 50)
        return false;
    if (!str.match(regex))
        return false;

    return true;
}

function removeSpecial(str) {
    var newStr =str;
    
    newStr = newStr.replace('.','');
    newStr = newStr.replace('-','');
    newStr = newStr.replace(',','');
    newStr = newStr.replace('"','');
    newStr = newStr.replace("'",'');
    return newStr;
}

function validateName(str) {
    var regex = /^[A-Za-z0-9\-',"\. ]{1,50}$/;
    str = trimString(str);
    
    var tempStr = removeSpecial(str);
    
    if (tempStr.length == 0)
        return false;


    if(str.length < 1 || str.length > 50)
        return false;
    if( !str.match( regex ) )
           return false;

    return true;
}

function validateFirstName(str) {
    return validateName(str);
}

function validateLastName(str) {
    return validateName(str);
}

function validatePlace(str)
{
    var regex = /^[A-Za-z0-9\-',"\. ]{1,50}$/;
    str = trimString(str);

    if(str.length < 1 || str.length > 50)
        return false;

    if(!str.match( regex ) )
        return false;
    
    return true;
}

function validateAddress(str) { 
    return validatePlace(str);
}

function validateCity(str) { 
    return validatePlace(str);
}

function IsIntNumber(str){
    var regex = /^\d+$/;
    
    if(!str.match( regex ))
        return false;
    
    return true;
}

