/*************************************/
/* Private Members                                        */
/***********************************/

errorMsgs = new Array ( /* 0 */
                                                "You have to enter numeric data",

                                                /* 1 */
                                                "You have to enter positive numeric data",

                                                /* 2 */
                                                "You have to fill all the required fields",

                                                /* 3 */
                                                "You have to enter letters only",

                                                /* 4 */
                                                "You have to enter letters and digits only",

                                                /* 5 */
                                                "Please verify your email syntax",

                                                /* 6 */
                                                "The password length must be at least 4 characters",

                                                /* 7 */
                                                "You have to enter a valid telephone number",

                                                /* 8 */
                                                "You have to enter a valid mobile number",

                                                /* 9 */
                                                "You have to enter a valid URL",

                                                /* 10 */
                                                "You have to enter a valid Fax number",

                                                /* 11 */
                                                "You have to enter nine digits only",

                                                /* 12 */
                                                "You have to enter a valid number without fractions");

function lTrim(String)
{
        if (String == null)
                return (false);

        var i = 0;
        var j = String.length - 1;

        for (; i < String.length; i++)
        {
                if (String.substr(i, 1) != ' ' &&
                    String.substr(i, 1) != '\t')
                        break;
        }

        if (i <= j)
                return (String.substr(i, (j+1)-i));
        else
                return ('');
}

function rTrim(String)
{
        if (String == null)
                return (false);

        var i = 0;
        var j = String.length - 1;


        for(; j >= 0; j--)
        {
                if (String.substr(j, 1) != ' ' &&
                        String.substr(j, 1) != '\t')
                break;
        }

        if (i <= j)
                return (String.substr(i, (j+1)-i));
        else
                return ('');
}

function trim(String)
{
        if (String == null)
                return (false);

        return rTrim(lTrim(String));
}

function isNumber(val)
{
        if (isNaN(val)==true)
        {
                error(0);    
                return false;
        }

        return true;
}

// Is number and greater than zero
function isNumberGTZ(val)
{
        if ((isNaN(val) == true) || (val == 0))
        {
                error(0);
                return false;
        }

        if (isNegative(val))
        {
                //error(1);
                return false;
        }

        if (Math.floor(val) != val)
        {
                error(12);
                return false;
        }

        return true;
}

// Is number and greater than OR EQUAL TO zero
function isNumberGEZ(val)
{
        if (isEmpty(val) == true)
        {
                return false;
        }

        if (isNaN(val) == true)
        {
                error(0);
                return false;
        }

        if (isNegative(val))
        {
                //error(1);
                return false;
        }

        if (Math.floor(val) != val)
        {
                error(12);
                return false;
        }

        return true;
}

function isNegative(val)
{
        if ((val < 0 )==true)
        {
                error(1);
                return true;
        }
        return false;
}

function isEmpty(val)
{
        var len = (trim(val)).length;
        if (len == 0)
        {
                error(2);
                return true;
        }

        return false;
}

function isExp(val)
{
        var result, range;
    range = "[A-Za-z]+[A-Za-z \-]*";
        result = val.match(range);
        if (result != val)
        {
                error(3);
                return false;
        }

        return true;
}

function isAlpha(val)
{
        var result, range;
    range = "[A-Za-z]+[A-Za-z]*";
        result = val.match(range);
        if (result != val)
        {
                error(3);
                return false;
        }

        return true;
}

function isAlphaNum(val)
{
        var result, range;
    range="[0-9A-Za-z]+[0-9A-Za-z]*";
        result=val.match(range);
        if (result != val)
        {
                error(4);
                return false;
        }

        return true;
}

function isEMail(val)
{
        var result, range;
        range="[A-Za-z0-9_&-]+[A-Za-z0-9_&-]*[.]?[A-Za-z0-9_&-]+[@][A-Za-z0-9_&-]+[.][A-Za-z0-9_&-]+[.]?[A-Za-z0-9_&-]+" ;
        result=val.match(range);
        if (result != val)
        {
                error(5);
                return false;
        }

        return true;
}

function isPassword(val)
{
        len = (trim(val)).length;

        if (len < 4 )
        {
                error(6);
                return false;
        }

        return true;
}

function isTel(val)
{
        var range, result;
        range = "[0-9]+";
        //range = "[0][1-9][0-9]+";
        result = val.match(range);
        if (result != val)
        {
                error(7);
                return false;
        }

        return true;
}

function isFax(val)
{
        var range, result;
        range = "[0-9]+";
        //range = "[0][1-9][0-9]+";
        result = val.match(range);
        if (result != val)
        {
                error(10);
                return false;
        }

        return true;
}

function isMobile(val)
{
        var range, result;
        range = "[0-9]+";
        //range = "[0][7][7,9][0-9]+";
        result = val.match(range);
        if (result != val)
        {
                error(8);
                return false;
        }

        return true;
}

function isWebSite(val)
{
        var result, range;
        range="[w,W][w,W][w,W][1-9]*[.][A-Za-z0-9]+[.][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9]?[.]?[A-Za-z0-9]*";
        result=val.match(range);
        if (result != val)
        {
                error(9);
                return false;
        }

        return true;
}

function IsCompanyName(val)
{
        var result, range;
        range="[_0-9A-Za-zÃÅÉÆÄÇ-í]+[ ÉÅÃÄÆÇ-íA-Za-z0-9_]*[_a-zÃÅÉÄÁÆÅáÇ-íA-Z0-9]*";
        result = val.match(range);
        if (result != val)
        {
                error(3);
                return false;
        }

        return true;
}

/****************************************/
/* Public Members                                                */
/****************************************/

function error(val)
{
        alert(errorMsgs[val]);
}

function isValidID(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidName(val)
{
        if (isEmpty(val))        return false;
        if (!isAlpha(val))        return false;

        return true;
}

function isValidExp(val)
{
        if (isEmpty(val))        return false;
        if (!isExp(val))        return false;

        return true;
}

function isValidUserName(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidPassword(val)
{
        if (isEmpty(val))                return false;
        if (!isPassword(val))        return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidTel(val)
{
        if (isEmpty(val))                        return false;
        if (!isTel(val))                        return false;
        //if (!validLength(val,9))        return false;
        if (!((val.length >= 7) && (val.length <= 20)))
                {
                        error(7);
                        return false;
                }

        return true;
}

function isValidFax(val)
{
//        if (isEmpty(val))                        return false;
        if (!isFax(val))                        return false;
        //if (!validLength(val,9))        return false;
        if (!((val.length >= 7) && (val.length <= 15)))
        {
                error(10);
                return false;
        }

        return true;
}

function isValidMobile(val)
{
//        if (isEmpty(val))                        return false;
        if (!isMobile(val))                        return false;
        //if (!validLength(val,9))        return false;
        if (!((val.length >= 7) && (val.length <= 15)))
        {
                error(8);
                return false;
        }

        return true;
}

function isValidEMail(val)
{
        if (isEmpty(val))        return false;
        if (!isEMail(val))        return false;

        return true;
}

function isValidWebSite(val)
{
//        if (isEmpty(val))                return false;
        if (!isWebSite(val))        return false;

        return true;
}

function isIdenticalPassword(val1, val2)
{
        if (val1 != val2)
        {
                alert("íÌÈ Ãä Êßæä ßáãÉ ÇáÓÑ æ ÊÃßíÏ ßáãÉ ÇáÓÑ ãÊØÇÈÞÊíä");
                return false;
        }

        return true;
}

function validLength(val1, val2)
{
        if (val1.length != val2)
        {
                error(11);
                return false;
        }

        return true;
}

function isValidNNPool(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidNLand(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidType(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidOrder(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidBDate(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidGSize(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidBSize(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidNMarket(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidNFloor(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidFFloor(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidHeating(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidCondition(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidElev(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidNCar(val)
{
        if (isEmpty(val))                return false;
        if (!isAlphaNum(val))        return false;

        return true;
}

function isValidJD(val)
{
        if (isEmpty(val))                return false;
        if (!isNumberGTZ(val))        return false;

        return true;
}

function isValidUS(val)
{
        if (isEmpty(val))                return false;
        if (!isNumberGTZ(val))        return false;

        return true;
}