﻿
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function ValidateRequiredField(fieldID, validationControlID, correctMessage, incorrectMessage) {
    if (document.getElementById(fieldID).value == null || trim(document.getElementById(fieldID).value, "") == "") {
        ActionValidation(fieldID, validationControlID, false, incorrectMessage);
    }
    else {
        ActionValidation(fieldID, validationControlID, true, correctMessage);
    }
}

function ValidateRegularExpression(fieldID, validationControlID, regularExpression, correctMessage, incorrectMessage) {
    if (document.getElementById(fieldID).value == "") {
        ActionValidation(fieldID, validationControlID, true, correctMessage);
    }
    else if (document.getElementById(fieldID).value.match(regularExpression)) {
        ActionValidation(fieldID, validationControlID, true, correctMessage);
    }
    else {
        ActionValidation(fieldID, validationControlID, false, incorrectMessage);
    }
}

function ValidateGreaterThan(fieldID, validationControlID, greaterThan, correctMessage, incorrectMessage) {
    if (document.getElementById(fieldID).value == "") {
        ActionValidation(fieldID, validationControlID, true, correctMessage);
    }
    else if (parseFloat(document.getElementById(fieldID).value) > greaterThan) {
        ActionValidation(fieldID, validationControlID, true, correctMessage);
    }
    else {
        ActionValidation(fieldID, validationControlID, false, incorrectMessage);
    }
}

function ValidateLessThan(fieldID, validationControlID, lessThan, correctMessage, incorrectMessage) {
    if (document.getElementById(fieldID).value == "") {
        ActionValidation(fieldID, validationControlID, true, correctMessage);
    }
    else if (parseFloat(document.getElementById(fieldID).value) < lessThan) {
        ActionValidation(fieldID, validationControlID, true, correctMessage);
    }
    else {
        ActionValidation(fieldID, validationControlID, false, incorrectMessage);
    }
}

function ValidatePhoneNumber(fieldID, validationControlID, correctMessage, incorrectMessage) {
    ValidateRegularExpression(fieldID, validationControlID, /^(\+)?([-\._\(\) ]?[\d]{3,20}[-\._\(\) ]?){2,10}$/, correctMessage, incorrectMessage);
}

function ValidateEmailAddress(fieldID, validationControlID, correctMessage, incorrectMessage) {
    ValidateRegularExpression(fieldID, validationControlID, /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/, correctMessage, incorrectMessage);
}

function ValidateInteger(fieldID, validationControlID, correctMessage, incorrectMessage) {
    ValidateRegularExpression(fieldID, validationControlID, /(^-?\d\d*$)/, correctMessage, incorrectMessage);
}

function ValidateEquals(fieldID, fieldEqualsID, validationControlID, correctMessage, incorrectMessage) {
    if (document.getElementById(fieldID).value == "") {
        ActionValidation(fieldID, validationControlID, true, correctMessage);
    }
    else if (document.getElementById(fieldID).value == document.getElementById(fieldEqualsID).value) {
        ActionValidation(fieldID, validationControlID, true, correctMessage);
    }
    else {
        ActionValidation(fieldID, validationControlID, false, incorrectMessage);
    }
}

function ValidateDoesNotContain(fieldID, fieldDoesNotContainID, validationControlID, doesNotContainPrefix, doesNotContainSuffix, correctMessage, incorrectMessage) {
    if (document.getElementById(fieldID).value == "") {
        ActionValidation(fieldID, validationControlID, true, correctMessage);
    }
    else if (document.getElementById(fieldDoesNotContainID).value.indexOf(doesNotContainPrefix + document.getElementById(fieldID).value + doesNotContainSuffix) == -1) {
        ActionValidation(fieldID, validationControlID, true, correctMessage);
    }
    else {
        ActionValidation(fieldID, validationControlID, false, incorrectMessage);
    }
}

function ValidateOther(fieldID, valid, validationControlID, correctMessage, incorrectMessage) {
    if (valid) {
        ActionValidation(fieldID, validationControlID, true, correctMessage);
    }
    else {
        ActionValidation(fieldID, validationControlID, false, incorrectMessage);
    }
}

function ActionValidation(fieldID, validateControlID, valid, message) {
    if (valid) {
        if (document.getElementById(fieldID).value == null || document.getElementById(fieldID).value == "") {
            document.getElementById(validateControlID + "_imgNoImage").style.display = "inline";
            document.getElementById(validateControlID + "_imgCorrectImage").style.display = "none";
            document.getElementById(validateControlID + "_fldSeriunValidationResult").value = "";
        }
        else {
            document.getElementById(validateControlID + "_imgNoImage").style.display = "none";
            document.getElementById(validateControlID + "_imgCorrectImage").style.display = "inline";
            document.getElementById(validateControlID + "_imgCorrectImage").alt = message;
            document.getElementById(validateControlID + "_fldSeriunValidationResult").value = "true";
        }
        document.getElementById(validateControlID + "_imgInCorrectImage").style.display = "none";
    }
    else {
        document.getElementById(validateControlID + "_imgNoImage").style.display = "none";
        document.getElementById(validateControlID + "_imgInCorrectImage").style.display = "inline";
        document.getElementById(validateControlID + "_imgInCorrectImage").alt = message;
        document.getElementById(validateControlID + "_imgCorrectImage").style.display = "none";
        document.getElementById(validateControlID + "_fldSeriunValidationResult").value = "false";
    }
    if (document.getElementById(validateControlID + "_fldSeriunValidationLabel").value != null && document.getElementById(validateControlID + "_fldSeriunValidationLabel").value != "")
        document.getElementById(validateControlID + "_fldSeriunValidationMessage").value = document.getElementById(validateControlID + "_fldSeriunValidationLabel").value + ": " + message;
    else
        document.getElementById(validateControlID + "_fldSeriunValidationMessage").value = message;
}

function ValidateForm() {
    var arrFields = document.getElementsByTagName("input");
    var i = 0;
    for (i = 0; i < arrFields.length; i++) {
        if (arrFields[i].type == "hidden" && arrFields[i].id != null && arrFields[i].id.length > 28) {
            if (arrFields[i].id.substr(arrFields[i].id.length - 28, 28) == "_fldSeriunValidationClientID") {
                if (arrFields[i].value != null && arrFields[i].value != "") {
                    var strFieldID = arrFields[i].value;
                    var funcCall = strFieldID + "_Validate();"
                    try
                    {
                        var ret = eval(funcCall);
                    }
                    catch(err)
                    {
                        alert(funcCall + "\r\nError: " + err.description);
                    }
                }
            }
        }
    }
}

function GetFormValidationSummary() {
    var strReturn = "";
    var arrFields = document.getElementsByTagName("input");
    var i = 0;
    for (i = 0; i < arrFields.length; i++) {
        if (arrFields[i].type == "hidden" && arrFields[i].id != null && arrFields[i].id.length > 26) {
            if (arrFields[i].id.substr(arrFields[i].id.length - 26, 26) == "_fldSeriunValidationResult") {
                if (arrFields[i].value == "false") {
                    var strFieldStartID = arrFields[i].id.substr(0, arrFields[i].id.length - 26)
                    strReturn += document.getElementById(strFieldStartID + "_fldSeriunValidationMessage").value + "<br />";
                }
            }
        }
    }
    return strReturn;
}

function ValidateContactFormInput(validationSpanID) {
    var strValidationSummary = GetFormValidationSummary();
    if (strValidationSummary != null && strValidationSummary.length > 0) {
        document.getElementById(validationSpanID).innerHTML = "<strong>Please fix the following errors before submitting these details:</strong><br />" + strValidationSummary + "<br />";
        return false;
    }
    else
        return true;
}

function ValidateUserProfileFormInput(validationSpanID) {
    var strValidationSummary = GetFormValidationSummary();
    if (strValidationSummary != null && strValidationSummary.length > 0) {
        document.getElementById(validationSpanID).innerHTML = "<strong>Please fix the following errors before submitting these details:</strong><br />" + strValidationSummary + "<br />";
        return false;
    }
    else
        return true;
}

function ValidateAccountProfileFormInput(validationSpanID) {
    var strValidationSummary = GetFormValidationSummary();
    if (strValidationSummary != null && strValidationSummary.length > 0) {
        document.getElementById(validationSpanID).innerHTML = "<strong>Please fix the following errors before submitting these details:</strong><br />" + strValidationSummary + "<br />";
        return false;
    }
    else
        return true;
}

function ValidateSectorFormInput(validationSpanID) {
    var strValidationSummary = GetFormValidationSummary();
    if (strValidationSummary != null && strValidationSummary.length > 0) {
        document.getElementById(validationSpanID).innerHTML = "<strong>Please fix the following errors before submitting these details:</strong><br />" + strValidationSummary + "<br />";
        return false;
    }
    else
        return true;
}

function ValidateRegistrationFormInput(validationSpanID) {
    var strValidationSummary = GetFormValidationSummary();
    if (strValidationSummary != null && strValidationSummary.length > 0) {
        document.getElementById(validationSpanID).innerHTML = "<strong>Please fix the following errors before submitting these details:</strong><br />" + strValidationSummary + "<br />";
        return false;
    }
    else
        return true;
}

function ValidatePageEditorInput(validationSpanID) {
    var strValidationSummary = GetFormValidationSummary();
    if (strValidationSummary != null && strValidationSummary.length > 0) {
        document.getElementById(validationSpanID).innerHTML = "<strong>Please fix the following errors before submitting these details:</strong><br />" + strValidationSummary + "<br />";
        return false;
    }
    else
        return true;
}

function Abbreviate(strInput, upperCase, removeSpaces, length, paddingChar) {
    if (trim(paddingChar, "").Length == 0)
        paddingChar = "X";
    else
        paddingChar = paddingChar.substr(0, 1);
    var strReturn = strInput;
    if (upperCase)
    {
        strReturn = strReturn.toUpperCase();
        paddingChar = paddingChar.toUpperCase();
    }
    if (removeSpaces)
        strReturn = strReturn.replace(" ", "").replace("\r", "").replace("\n", "").replace("\t", "");
    if (strReturn.length >= length)
        return strReturn.substr(0, length);
    else
    {
        var intCurrentLength = strReturn.length;
        var i = 0;
        for (i = intCurrentLength; i < length; i++)
        {
            strReturn += paddingChar;
        }
        return strReturn;
    }
}

