﻿//called by validate request in asp.net when ValidateRequest is set to true, which it is by default
function ClientValidate(source, agruments) {
    var re = new RegExp("(</?(\\w+)(\\s*\\w*\\s*=\\s*(\"[^\"]*\"|'[^']'|[^>]*))*|/?>|&(\\w{2,9}|\\#\\d{1,5});)");
    arguments[1].IsValid = (re.exec(arguments[1].Value) == null);
}

function ClientValidateEmail(source, agruments) {
    var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
    arguments[1].IsValid = filter.test(arguments[1].Value)
}

function IsEmailValid(el) {
    var message = el.value;
    var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
    return filter.test(message);
}

// USE AS: onkeyup="return numbersOnly(this);"
function numbersOnly(el) {
    el.value = el.value.replace(/[^0-9,\.]/g, "");
}

function allowOnlyNumbers(ev, el) {
    if (ev.keyCode < 44 || ev.keyCode > 57 || ev.keyCode == 45 || ev.keyCode == 47) {
        ev.returnValue = false;
        //el.value = el.value.replace(/[^0-9]/[.]/g, "");
        return false;
    }

    return true;
}


// XSS Validation methods
// e - event, need to pass 'event'
function xssFilterOnKeyPress(e) {
    var keyVal = (window.event) ? event.keyCode : e.keyCode;
    if (window.event) keyVal = window.event.keyCode;
    var isValid = !(keyVal == 39 || keyVal == 34 || keyVal == 134 || keyVal == 60 || keyVal == 62);

    if (!isValid) {
        window.status = 'Chevron and quote symbols are not allowed';
    }

    return isValid;
}

// el - element, need to pass 'this'
function xssFilterOnKeyUp(el) {
    var valueToValidate = el.value;
    var initialLength = valueToValidate.length;

    valueToValidate = valueToValidate.replace(/[\"\'][\s]*javascript:(.*)[\"\']/gi, "\"\"");
    valueToValidate = valueToValidate.replace(/script(.*)/gi, "");
    valueToValidate = valueToValidate.replace(/eval\((.*)\)/gi, "");
    valueToValidate = valueToValidate.replace(/alert\((.*)\)/gi, "");

    if (initialLength > valueToValidate.length) {
        el.value = valueToValidate;
        window.status = 'JavaScript keywords are not allowed';
    }

    return true;
}



