function Trim(orgString)
{
    return LTrim(RTrim(orgString));
}

function LTrim(orgString)
{
    return orgString.replace(/^\s+/, '');
}

function RTrim(orgString)
{
    return orgString.replace(/\s+$/, '');
}

function StartsWith(orgString, str)
{
    return (orgString.match("^" + str) == str);
}

function validateFieldNatural(field, nameField)
{
    /*
     2)Not only space
     3)Not negativ number
     4)Not characters
     5)Not number and Characters
     6)Not character special
     7)Not number and characters special
     8) Not Number and space
     */
    var rValue = true;
    var valueField = new String();

    valueField = field.value;
    valueField = Trim(valueField); // Without spaces

    // 4),5),6),7)
    if (isNaN(valueField))
    {
        rValue = false;
        alert(nameField + ' field must be a number');
        field.focus();
    }
    else //3)
    {
        if (valueField < 0)
        {
            rValue = false;
            alert(nameField + ' field must be a positive number');
            field.focus();
        }

    }
    if (rValue == false)
    {
        field.value = "0";
    }
    return rValue;
}

// same functionality as the validateFieldNotEmpty, but this time, 
// no alert is called, it just returns the true resp. false.
function fieldNotEmpty(field)
{
    var rValue = true;
    var valueField = new String();
    valueField = field.value;
    valueField = Trim(valueField); // Without spaces
    if (valueField == "")
    {
        rValue = false;
    }
    return rValue;
}

function validateFieldNotEmpty(field, nameField)
{
    /*
     1) Not empty
     2) Not only space
     */
    var rValue = true;
    var valueField = new String();
    valueField = field.value;
    valueField = Trim(valueField); // Without spaces

    if (valueField == "")
    {
        rValue = false;
        alert(nameField + ' empty');
        field.focus();

    }

    return rValue;
}
function validateFieldNumbersOrSpaces(field, nameField)
{
    /*
     1) Only space or number
     */
    var rValue = true;
    var valueField = new String();
    var fin = false;
    var i = 0;
    valueField = field.value;
    valueField = Trim(valueField); // Without spaces

    if (!valueField.length == 0) // it should have minimum 1 character else to check with validateNotEmpty
    {
        while (!fin)
        {
            i++;
            if (i > valueField.length) // the  string end
            {
                fin = true
            }
            else if (!(!isNaN(valueField.substring(i - 1, i)) || valueField.substring(i - 1, i) == '-')) // Number or negative
            {
                rValue = false;
                alert(nameField + ' must be numeric or blank');
                field.focus();
                fin = true
            }
        }
    }
    return rValue;
}
function validateComboSelected(comboArg, nameComboArg)
{
    /*
     1) Value not -1
     */
    return validateComboSelectedDefault(comboArg, nameComboArg, -1);
}

function validateComboSelectedDefault(comboArg, nameComboArg, defaultValue)
{
    var nameCombo = nameComboArg;
    var combo = comboArg;
    var rValue = true;
    var valueCombo = combo.options[combo.selectedIndex].value;

    if (valueCombo == defaultValue)
    {
        rValue = false;
        alert('The ' + nameCombo + ' combo must be selected');
        combo.focus();
    }
    return rValue;
}

function checkSize(field)
{
    var cadena = new String(field.value);
    if (cadena.length > 255)
    {
        alert('Field too long. This field has been cut to 255 characters');
        field.value = cadena.substring(0, 255);
    }
}

function isValidString(string) {

    if (!string) return false;
    var iChars = "*|,\":<>[]{}`\';()@&$#%";

    for (var i = 0; i < string.length; i++) {
        if (iChars.indexOf(string.charAt(i)) != -1)
            return false;
    }
    return true;
}

function validateFieldNumbersRequired(field, nameField)
{
    if (!validateFieldNotEmpty(field, nameField)) {
    	return false;
    }

    /*
     1) Only space or number
     */
    var rValue = true;
    var valueField = new String();
    var fin = false;
    var i = 0;
    valueField = field.value;
    valueField = Trim(valueField); // Without spaces

    if (!valueField.length == 0) // it should have minimum 1 character else to check with validateNotEmpty
    {
        while (!fin)
        {
            i++;
            if (i > valueField.length) // the  string end
            {
                fin = true
            }
            else if (!(!isNaN(valueField.substring(i - 1, i)) || valueField.substring(i - 1, i) == '-')) // Number or negative
            {
                rValue = false;
                alert(nameField + ' must be numeric or blank');
                field.focus();
                fin = true
            }
        }
    }
    return rValue;
}