﻿/// <reference path="jquery-1.4.2.js"/>

//Styles
function ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message) {
    $(messageObj).text(message);

    $(fieldObj).toggleClass("errorBox", true);
    $(labelObj).toggleClass("error", true);

    $(iconObj).removeClass("errorHide");
    $(messageObj).removeClass("errorHide");

    $(iconObj).toggleClass("errorShow", true);
    $(messageObj).toggleClass("errorShow", true);
}
function ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message) {
    //$(messageObj).text("");

    $(fieldObj).removeClass("errorBox");
    $(labelObj).removeClass("error");

    $(iconObj).removeClass("errorShow");
    $(messageObj).removeClass("errorShow");

    $(iconObj).toggleClass("errorHide", true);
    $(messageObj).toggleClass("errorHide", true);
}
//Error Styles
function ApplySingleErrorStyle(fieldObj) {
    $(fieldObj).toggleClass("errorBox", true);
}
function ApplySingleValidStyle(fieldObj) {
    $(fieldObj).removeClass("errorBox");
}

//Validation Functions

//IsValidRequired
function IsValidRequired(fieldObj, labelObj, iconObj, messageObj, message) {
    if (fieldObj.length > 0) {
        var fieldObjValue = jQuery.trim($(fieldObj).val());
        var tag = fieldObj.get(0).tagName;
        var result = false;
        if (tag == "INPUT" || tag == "TEXTAREA") {
            result = fieldObjValue.length == 0;
        }
        else if (tag == "SELECT") {
            result = fieldObjValue.length == 0 || fieldObjValue < 0;
        }

        if (result) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        return true;
    }
}

// IsValidNumeric
function IsValidNumeric(fieldObj, labelObj, iconObj, messageObj, message) {
    var regexp = /^-?[0-9]+$/;
    return IsValidRegularExpression(fieldObj, labelObj, iconObj, messageObj, regexp, message);
}

function IsValidNumericSingleField(fieldObj) {
    var regxpNumber = /^\d+\.?\d*$/;
    var fieldObjValue = jQuery.trim($(fieldObj).val());
    var result = fieldObjValue.match(regxpNumber)
    if (fieldObjValue.length > 0 && result == null)
        return false;
    else
        return true;
}

//IsValidCurrency
function IsValidCurrency(fieldObj, labelObj, iconObj, messageObj, message) {
    var regexp = /^\$?((\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?)\$?$/;
    return IsValidRegularExpression(fieldObj, labelObj, iconObj, messageObj, regexp, message);
}

//IsValidPercent
function IsValidPercent(fieldObj, labelObj, iconObj, messageObj, message) {
    var regexp = /^((\d{1,2})?([.][\d]{1,2})?)( )?\%?$/;
    return IsValidRegularExpression(fieldObj, labelObj, iconObj, messageObj, regexp, message);
}

//IsValidLength
function IsValidLength(fieldObj, labelObj, iconObj, messageObj, maxLength, message) {
    var fieldObjValue = jQuery.trim($(fieldObj).val());
    if (fieldObjValue.length > maxLength) {
        ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
        return false;
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidEmail
function IsValidEmail(fieldObj, labelObj, iconObj, messageObj, message) {
    var regexp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
    return IsValidRegularExpression(fieldObj, labelObj, iconObj, messageObj, regexp, message);
}

//IsValidEmail
function IsValidZipCode(fieldObj, labelObj, iconObj, messageObj, message) {
    var regexp = /^(\d{5}-\d{4}|\d{5}|\d{9})$|^([a-zA-Z]\d[a-zA-Z] ?\d[a-zA-Z]\d)$/;
    return IsValidRegularExpression(fieldObj, labelObj, iconObj, messageObj, regexp, message);
}

//IsValidMobileNumber
function IsValidPhone(fieldObj, labelObj, iconObj, messageObj, message) {
    var regexp = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;
    return IsValidRegularExpression(fieldObj, labelObj, iconObj, messageObj, regexp, message);
}

//IsValidAlphanumeric
function IsValidAlphanumeric(fieldObj, labelObj, iconObj, messageObj, message) {
    var regexp = /^[0-9a-z]+$/;
    return IsValidRegularExpression(fieldObj, labelObj, iconObj, messageObj, regexp, message);
}

//IsValidZipcode
function IsValidZipcode(fieldObj, labelObj, iconObj, messageObj, message) {
    var regexp = /^(\d{5}-\d{4}|\d{5}|\d{9})$|^([a-zA-Z]\d[a-zA-Z] ?\d[a-zA-Z]\d)$/;
    return IsValidRegularExpression(fieldObj, labelObj, iconObj, messageObj, regexp, message);
}

//IsValidDate
function IsValidDate(fieldObj, labelObj, iconObj, messageObj, message, hasStyle) {
    if (hasStyle == null)
        hasStyle = true;

    var regexp;
    if (MasterIsUSFormat())
        regexp = /^(0?[1-9]|1[012])\/(0?[1-9]|[12][0-9]|3[01])\/20\d{2}$/;
    else
        regexp = /^(0?[1-9]|[12][0-9]|3[01])\/(0?[1-9]|1[012])\/20\d{2}$/;
    return IsValidRegularExpression(fieldObj, labelObj, iconObj, messageObj, regexp, message, hasStyle);
}

//IsValidRegularExpression
function IsValidRegularExpression(fieldObj, labelObj, iconObj, messageObj, regExp, message, hasStyle) {
    if (hasStyle == null)
        hasStyle = true;

    var regxpNumber = regExp;
    var fieldObjValue = jQuery.trim($(fieldObj).val());
    var result = fieldObjValue.match(regxpNumber)
    if (fieldObjValue.length > 0 && result == null) {
        if (hasStyle)
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
        return false;
    }
    else {
        if (hasStyle)
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//******************************** Comparison Functions ****************************************
//********************************** Date Validations ****************************************
function ParseDateBasedOnFormat(strDate) {
    var date = strDate.split("/");
    var inputdate;
    if (MasterIsUSFormat())
        inputdate = new Date(date[2], date[0] - 1, date[1]);
    else
        inputdate = new Date(date[2], date[1] - 1, date[0]);
    return inputdate;
}

function ParseDateTimeBasedOnFormat(strDate, strTime) {
    var date = strDate.split("/");
    var time = strTime.split(":");
    var inputdatetime;
    if (MasterIsUSFormat)
        inputdatetime = new Date(date[2], date[0] - 1, date[1], time[0], 0, 0, 0);
    else
        inputdatetime = new Date(date[2], date[1] - 1, date[0], time[0], 0, 0, 0);
    return inputdatetime;
}

//IsValidDateAfterToday
function IsValidDateAfterToday(fieldObj, labelObj, iconObj, messageObj, message, hasStyle) {
    if (hasStyle == null)
        hasStyle = true;

    var today = new Date();
    var todayyear = today.getFullYear();
    var todaymonth = today.getMonth();
    var todayday = today.getDate();
    var todayformatted = new Date(todayyear, todaymonth, todayday);

    var fieldObjValue = jQuery.trim($(fieldObj).val());
    var inputdate = ParseDateBasedOnFormat(fieldObjValue);

    if (inputdate <= todayformatted) {
        if (hasStyle)
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
        return false;
    }
    else {
        if (hasStyle)
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidDateBeforeOrEqualTarget
function IsValidDateBeforeOrEqualTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message, hasStyle) {
    if (hasStyle == null)
        hasStyle = true;

    var fieldObjValue = jQuery.trim($(fieldObj).val());
    var targetObjValue = jQuery.trim($(targetObj).val());

    if (targetObjValue != "") {
        var fieldDate = ParseDateBasedOnFormat(fieldObjValue);
        var targetDate = ParseDateBasedOnFormat(targetObjValue);

        if (fieldDate <= targetDate) {
            if (hasStyle)
                ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
        else {
            if (hasStyle)
                ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidDateAfterOrEqualTarget
function IsValidDateAfterOrEqualTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message, hasStyle) {
    if (hasStyle == null)
        hasStyle = true;

    var fieldObjValue = jQuery.trim($(fieldObj).val());
    if (fieldObjValue != "") {
        var targetObjValue = jQuery.trim($(targetObj).val());

        if (targetObjValue != "") {
            var fieldDate = ParseDateBasedOnFormat(fieldObjValue);
            var targetDate = ParseDateBasedOnFormat(targetObjValue);

            if (fieldDate >= targetDate) {
                if (hasStyle)
                    ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
                return true;
            }
            else {
                if (hasStyle)
                    ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
                return false;
            }
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidDateAfterNow
function IsValidDateAfterNow(fieldObj, labelObj, iconObj, messageObj, timeObj, message, hasStyle) {
    if (hasStyle == null)
        hasStyle = true;

    var fieldObjValue = jQuery.trim($(fieldObj).val());
    var timeObjValue = jQuery.trim($(timeObj).val());

    var now = new Date();

    var nowYear = now.getFullYear();
    var nowMonth = now.getMonth();
    var nowDay = now.getDate();
    var nowHours = now.getHours();

    var nowformatted = new Date(nowYear, nowMonth, nowDay, nowHours, 0, 0, 0);

    var inputdate = ParseDateTimeBasedOnFormat(fieldObjValue, timeObjValue);

    if (inputdate > nowformatted) {
        if (hasStyle)
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        //ApplySingleValidStyle(timeObj);
        return true;
    }
    else {
        if (hasStyle)
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
        //ApplySingleErrorStyle(timeObj);
        return false;

    }
}

//IsValidDateAfterTarget
function IsValidDateAfterTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message, hasStyle) {
    if (hasStyle == null)
        hasStyle = true;

    var fieldObjValue = jQuery.trim($(fieldObj).val());
    var targetObjValue = jQuery.trim($(targetObj).val());

    if (targetObjValue != "") {
        var fieldDate = ParseDateBasedOnFormat(fieldObjValue);
        var targetDate = ParseDateBasedOnFormat(targetObjValue);

        if (fieldDate > targetDate) {
            if (hasStyle)
                ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
        else {
            if (hasStyle)
                ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;

        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidDateAfterTargetMax
function IsValidDateAfterTargetMax(fieldObj, labelObj, iconObj, messageObj, targetObj, maxDays, message, hasStyle) {
    if (hasStyle == null)
        hasStyle = true;

    var fieldObjValue = jQuery.trim($(fieldObj).val());
    var targetObjValue = jQuery.trim($(targetObj).val());

    if (targetObjValue != "") {
        var fieldDate = ParseDateBasedOnFormat(fieldObjValue);
        var targetDate = ParseDateBasedOnFormat(targetObjValue);

        var one_day = 1000 * 60 * 60 * 24;
        var diff = Math.ceil((fieldDate.getTime() - targetDate.getTime()) / (one_day));
        if (diff <= maxDays) {
            if (hasStyle)
                ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
        else {
            if (hasStyle)
                ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;

        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//********************************** Numeric Validations ****************************************
//IsValidNumericAfterTarget
function IsValidNumericAfterTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fieldObjValue = parseInt(jQuery.trim($(fieldObj).val()));
    var targetObjValue = parseInt(jQuery.trim($(targetObj).val()));

    if (targetObjValue != "") {
        if (fieldObjValue <= targetObjValue) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidNumericAfterTargetMax 
function IsValidNumericAfterTargetMax(fieldObj, labelObj, iconObj, messageObj, targetObj, maxValue, message) {
    var fieldObjValue = parseInt(jQuery.trim($(fieldObj).val()));
    var targetObjValue = parseInt(jQuery.trim($(targetObj).val()));

    if (targetObjValue != "") {
        var diff = fieldObjValue - targetObjValue;
        if (diff <= parseInt(maxValue)) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidNumericAfterOrEqualTarget 
function IsValidNumericAfterOrEqualTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fieldObjValue = parseInt(jQuery.trim($(fieldObj).val()));
    var targetObjValue = parseInt(jQuery.trim($(targetObj).val()));

    if (targetObjValue != "") {
        if (fieldObjValue < targetObjValue) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidNumericBeforeOrEqualTarget 
function IsValidNumericBeforeOrEqualTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fieldObjValue = parseInt(jQuery.trim($(fieldObj).val()));
    var targetObjValue = parseInt(jQuery.trim($(targetObj).val()));

    if (targetObjValue != "") {
        if (fieldObjValue > targetObjValue) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidNumericRange  
function IsValidNumericRange(fieldObj, labelObj, iconObj, messageObj, fromValue, toValue, message) {
    var fieldObjValue = parseInt(jQuery.trim($(fieldObj).val()));

    if (fieldObjValue < parseInt(fromValue) || fieldObjValue > parseInt(toValue)) {
        ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
        return false;
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//********************************** Decimal Validations ****************************************
//IsValidDecimalAfterTarget
function IsValidDecimalAfterTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fieldObjValue = parseFloat(jQuery.trim($(fieldObj).val()));
    var targetObjValue = parseFloat(jQuery.trim($(targetObj).val()));

    if (targetObjValue != "") {
        if (fieldObjValue <= targetObjValue) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidDecimalAfterTargetMax 
function IsValidDecimalAfterTargetMax(fieldObj, labelObj, iconObj, messageObj, targetObj, maxValue, message) {
    var fieldObjValue = parseFloat(jQuery.trim($(fieldObj).val()));
    var targetObjValue = parseFloat(jQuery.trim($(targetObj).val()));

    if (targetObjValue != "") {
        var diff = fieldObjValue - targetObjValue;
        if (diff <= parseFloat(maxValue)) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidDecimalAfterOrEqualTarget 
function IsValidDecimalAfterOrEqualTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fieldObjValue = parseFloat(jQuery.trim($(fieldObj).val()));
    var targetObjValue = parseFloat(jQuery.trim($(targetObj).val()));

    if (targetObjValue != "") {
        if (fieldObjValue < targetObjValue) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidDecimalBeforeOrEqualTarget 
function IsValidDecimalBeforeOrEqualTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fieldObjValue = parseFloat(jQuery.trim($(fieldObj).val()));
    var targetObjValue = parseFloat(jQuery.trim($(targetObj).val()));

    if (targetObjValue != "") {
        if (fieldObjValue > targetObjValue) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidDecimalRange  
function IsValidDecimalRange(fieldObj, labelObj, iconObj, messageObj, fromValue, toValue, message) {
    var fieldObjValue = parseFloat(jQuery.trim($(fieldObj).val()));

    if (fieldObjValue < parseFloat(fromValue) || fieldObjValue > parseFloat(toValue)) {
        ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
        return false;
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}


//********************************** Percentage Validations ****************************************
//IsValidPercentAfterTarget
function IsValidPercentAfterTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fof = fieldObj.val().replace("%", "");
    var fieldObjValue = parseFloat(jQuery.trim($(fof).val()));
    var tof = targetObj.val().replace("%", "");
    var targetObjValue = parseFloat(jQuery.trim($(tof).val()));

    if (targetObjValue != "") {
        if (fieldObjValue <= targetObjValue) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}


//IsValidPercentAfterTargetMax 
function IsValidPercentAfterTargetMax(fieldObj, labelObj, iconObj, messageObj, targetObj, maxValue, message) {
    var fof = fieldObj.val().replace("%", "");
    var fieldObjValue = parseFloat(jQuery.trim($(fof).val()));
    var tof = targetObj.val().replace("%", "");
    var targetObjValue = parseFloat(jQuery.trim($(tof).val()));

    if (targetObjValue != "") {
        var diff = fieldObjValue - targetObjValue;
        if (diff <= parseFloat(maxValue)) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidPercentAfterOrEqualTarget 
function IsValidPercentAfterOrEqualTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fof = fieldObj.val().replace("%", "");
    var fieldObjValue = parseFloat(jQuery.trim($(fof).val()));
    var tof = targetObj.val().replace("%", "");
    var targetObjValue = parseFloat(jQuery.trim($(tof).val()));

    if (targetObjValue != "") {
        if (fieldObjValue < targetObjValue) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidPercentBeforeOrEqualTarget 
function IsValidDecimalBeforeOrEqualTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fof = fieldObj.val().replace("%", "");
    var fieldObjValue = parseFloat(jQuery.trim($(fof).val()));
    var tof = targetObj.val().replace("%", "");
    var targetObjValue = parseFloat(jQuery.trim($(tof).val()));

    if (targetObjValue != "") {
        if (fieldObjValue > targetObjValue) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}


//IsValidPercentRange  
function IsValidPercentRange(fieldObj, labelObj, iconObj, messageObj, fromValue, toValue, message) {
    var fof = fieldObj.val().replace("%", "");
    var fieldObjValue = parseFloat(jQuery.trim($(fof).val()));

    if (fieldObjValue < parseFloat(fromValue) || fieldObjValue > parseFloat(toValue)) {
        ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
        return false;
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//********************************** Currency Validations ****************************************
//IsValidCurrencyAfterTarget
function IsValidCurrencyAfterTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fieldObjValue = parseFloat(jQuery.trim($(fieldObj).val()));
    var targetObjValue = parseFloat(jQuery.trim($(targetObj).val()));

    if (targetObjValue != "") {
        if (fieldObjValue <= targetObjValue) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidCurrencyAfterTargetMax 
function IsValidCurrencyAfterTargetMax(fieldObj, labelObj, iconObj, messageObj, targetObj, maxValue, message) {
    var fieldObjValue = parseFloat(jQuery.trim($(fieldObj).val()));
    var targetObjValue = parseFloat(jQuery.trim($(targetObj).val()));

    if (targetObjValue != "") {
        var diff = fieldObjValue - targetObjValue;
        if (diff <= parseFloat(maxValue)) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidCurrencyAfterOrEqualTarget 
function IsValidCurrencyAfterOrEqualTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fieldObjValue = parseFloat(jQuery.trim($(fieldObj).val()));
    var targetObjValue = parseFloat(jQuery.trim($(targetObj).val()));

    if (targetObjValue != "") {
        if (fieldObjValue < targetObjValue) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidCurrencyBeforeOrEqualTarget 
function IsValidCurrencyBeforeOrEqualTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fieldObjValue = parseFloat(jQuery.trim($(fieldObj).val()));
    var targetObjValue = parseFloat(jQuery.trim($(targetObj).val()));

    if (targetObjValue != "") {
        if (fieldObjValue > targetObjValue) {
            ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
            return false;
        }
        else {
            ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
            return true;
        }
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//IsValidCurrencyRange  
function IsValidCurrencyRange(fieldObj, labelObj, iconObj, messageObj, fromValue, toValue, message) {
    var fieldObjValue = parseFloat(jQuery.trim($(fieldObj).val()));

    if (fieldObjValue < parseFloat(fromValue) || fieldObjValue > parseFloat(toValue)) {
        ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
        return false;
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}

//********************************** Other Validations ****************************************
//IsValidEqualToTarget
function IsValidEqualToTarget(fieldObj, labelObj, iconObj, messageObj, targetObj, message) {
    var fieldObjValue = jQuery.trim($(fieldObj).val());
    var targetObjValue = jQuery.trim($(targetObj).val());

    if (fieldObjValue != targetObjValue) {
        ApplyErrorStyle(fieldObj, labelObj, iconObj, messageObj, message);
        return false;
    }
    else {
        ApplyValidStyle(fieldObj, labelObj, iconObj, messageObj, message)
        return true;
    }
}
