﻿
function validateTextField(sender)
{
    hideGlobalWarning();
    
    var validator = document.getElementById(sender.id);
    var controlToValidate = document.getElementById(validator.controltovalidate);
    
    $(controlToValidate).parent('label').removeClass('invalid');
    $(controlToValidate).parent('label').find('.empty').hide();
    
    validator.style.color = '';
    
    if (sender.allowNullValue == 'true' && validators_isEmpty(controlToValidate.value))
        return true;    

    if (sender.allowNullValue == 'false' && (validators_isEmpty(controlToValidate.value) || (controlToValidate.getAttribute('emptyText')==controlToValidate.value)))
    {
        $(controlToValidate).parent('label').addClass('invalid');
        //validator.style.display = 'inline';
        validator.innerHTML = validator.msg_required;
        return false;
    }

    if (sender.validateEmail=='true')
    {
       var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
       if (!emailPattern.test(controlToValidate.value))
       {
           $(controlToValidate).parent('label').addClass('invalid');
           validator.innerHTML = validator.msg_email;
           return false;
       }    
    }
    
    if (sender.validatePostCode=='true')
    {
       var emailPattern = /[0-9]{2}-[0-9]{3}$/;
       if (!emailPattern.test(controlToValidate.value))
       {
           $(controlToValidate).parent('label').addClass('invalid');
           validator.innerHTML = validator.msg_postcode;
           return false;
       }    
    }

    return true;
}

function hideGlobalWarning()
{
    var pageIsValid = true;
    var warning = document.getElementById('warning');
    
    if (warning!=null && Page_Validators!=null)
    {
        for (i = 0; i < Page_Validators.length; i++)
        {
            if (Page_Validators[i].getAttribute('isValid') == '0')
            {
                pageIsValid = false;
                break;
            }
        }

        //warning.style.display = (pageIsValid ? 'none' : 'block');

        if (pageIsValid)
            warning.style.display = 'none';
    }        
}

function validateCheckboxField(sender)
{
    var validator = document.getElementById(sender.id);
    var controlToValidate = document.getElementById(validator.controltovalidate);

    $(controlToValidate).parent('label').removeClass('invalid');
    $(controlToValidate).parent('label').find('.empty').hide();

    validator.style.color = '';

    if (controlToValidate.checked)
    {
        return true;
    }
    else
    {
        $(controlToValidate).parent('label').addClass('invalid');
        //validator.style.display = 'block !important';
        validator.innerHTML = validator.msg_required;
        return false;
    }    
}

function customValidatorAction(sender)
{
    var validator = document.getElementById(sender.id);
    var controlToValidate = document.getElementById(validator.controltovalidate);

    $(controlToValidate).parent('label').removeClass('invalid');
    $(validator).hide();
}

function validators_isEmpty(str)
{
    if (str == null) return true;
    if (str.length == 0) return true;

    for (var i = 0; i < str.length; i++)
    {
        if (str.charAt(i) != ' ')
            return false;
    }

    return true;
}

