﻿var QuantityTextBoxes = Array();
function ValidateQuantityExists(sender, e) {
    var totalQuantity = GetTotalQuantity(sender);
    if (totalQuantity == null) {
        e.IsValid = false;
        SetQuantityClass("errorHilight");
    }
    else {
        e.IsValid = true;
    }
}
function ValidateQuantityRange(sender, e) {
    var totalQuantity = GetTotalQuantity(sender);
    if (totalQuantity == null || totalQuantity < 1 || totalQuantity > 100000) {
        e.IsValid = false;
        SetQuantityClass("errorHilight");
    }
    else {
        e.IsValid = true;
    }
}
function ValidateQuantityOutOfStock(sender, e) {
    if (QuantityTextBoxes.length == 0)
        GetTotalQuantity(sender);

    var outOfStockIndex = OutOfStockIndex();
    if (outOfStockIndex) {
        if (outOfStockIndex.length > 0) {
            for (var index = 0; index < outOfStockIndex.length; index++) {
                var sizeIndex = outOfStockIndex[index];
                var item = QuantityTextBoxes[sizeIndex];
                if (item.id == sender.controltovalidate) {
                    if (!isNaN(item.value) && item.value.trim() != "") {
                        var quantity = parseInt(item.value);
                        if (quantity > 0) {
                            e.IsValid = false;
                            return;
                        }
                    }
                }
            }
        }
    }
    e.IsValid = true;
}

function iValidateQuantityOutOfStock(sender, e) {

    var outOfStockIndex = OutOfStockIndex();
    var selectedSize = jQuery("#" + sender.controltovalidate)[0].selectedIndex-1;
    if (outOfStockIndex && selectedSize >= 0) {

        for (var i = 0; i < outOfStockIndex.length; i++) {
            if (outOfStockIndex[i] == selectedSize) {
                e.IsValid = false;
                return;
            }
        }

    }
    e.IsValid = true;
}

function GetTotalQuantity(sender) {
    var hasNumber = false;
    var totalQuantity = 0;

    if (QuantityTextBoxes.length == 0) {
        var nodes = sender.parentNode.parentNode.childNodes;
        if (nodes) {
            for (var nodeIndex = 0; nodeIndex < nodes.length; nodeIndex++) {
                if (nodes[nodeIndex] && "childNodes" in nodes[nodeIndex]) {
                    var nodes2 = nodes[nodeIndex].childNodes;
                    for (var itemIndex = 0; itemIndex < nodes2.length; itemIndex++) {
                        var item = nodes2[itemIndex];
                        if (item) {
                            if ("tagName" in item && "type" in item && "value" in item) {
                                if (item.tagName.toLowerCase() == "input" && item.type.toLowerCase() == "text") {
                                    if (!isNaN(item.value) && item.value.trim() != "") {
                                        hasNumber = true;
                                        var quantity = parseInt(item.value);
                                        totalQuantity += quantity;
                                    }
                                    QuantityTextBoxes.push(item);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    else {
        for (var tbIndex = 0; tbIndex <= QuantityTextBoxes.length; tbIndex++) {
            var item = QuantityTextBoxes[tbIndex];
            if (item) {
                if (!isNaN(item.value) && item.value.trim() != "") {
                    hasNumber = true;
                    var quantity = parseInt(item.value);
                    totalQuantity += quantity;
                }
            }
        }
    }

    if (!hasNumber)
        return null;
    else
        return totalQuantity;
}
function SetQuantityClass(className) {
    for (var tbIndex = 0; tbIndex <= QuantityTextBoxes.length; tbIndex++) {
        var item = QuantityTextBoxes[tbIndex];
        if (item) {
            item.className = className;
        }
    }
}
function ValidatePage() {
    SetQuantityClass(" ");
    Sys.WebForms.PageRequestManager.getInstance().remove_pageLoaded(ValidatePage);
    Page_ClientValidate();
}
