var RED_COLOR = "#E60000"

function qtyIsInteger(inputValue) {
    for (k = 0; k < inputValue.length; k++) {
        var s_ch = inputValue.charAt(k)

        if (k == 0 && s_ch == "-") {
            continue
        }
        if (s_ch < "0" || s_ch > "9") {
            return false
        }
    }
    return true
}

function checkRedQuantity(iRowID, i_balance) {
    var i_Quantity;

    i_Quantity = document.getElementById("Quantity_" + iRowID).value;

    if (i_Quantity == "") {
        alert("Please input the quantity!");
        return false;
    }
    else if (i_Quantity < 1) {
        alert("Quantity cannot be less than 1!");
        return false;
    }
    else if (!qtyIsInteger(i_Quantity)) {
        alert("Quantity must be integer!");
        return false;
    }
    else {
        return true;
    }
}

function checkBatchRedQuantity(i_totalRowNo) {
    var bQuantityOK;
    var bQuantityError;
    var i_Quantity;
    var i_itemID;
    var i;

    bQuantityOK = 0;
    bQuantityError = 0;

    document.getElementById("showText").style.backgroundColor = "#FFFFFF";
    document.getElementById("showText").style.color = "#FFFFFF";
    document.getElementById("showText").innerHTML += "&nbsp;";
    document.getElementById("bonusNeed").innerHTML = "";

    for (i = 1; i <= i_totalRowNo; i++) {
        i_Quantity = document.getElementById("Quantity_" + i).value;

        if (i_Quantity == "") {
            document.getElementById("tableCampCode_" + i).style.color = "#FFFFFF";
            document.getElementById("tableCampCode_" + i).style.backgroundColor = "#CC0000";
            alert("Please input the quantity to redeem item");
            document.getElementById("tableCampCode_" + i).style.color = "#CC0000";
            document.getElementById("tableCampCode_" + i).style.backgroundColor = "#FFFFFF";

            bQuantityOK = 0;
            bQuantityError = 1;
            break;
        }
        else if (i_Quantity < 0) {
            document.getElementById("tableCampCode_" + i).style.color = "#FFFFFF";
            document.getElementById("tableCampCode_" + i).style.backgroundColor = "#CC0000";
            alert("Quantity cannot be less than 1 to redeem item");
            document.getElementById("tableCampCode_" + i).style.color = "#CC0000";
            document.getElementById("tableCampCode_" + i).style.backgroundColor = "#FFFFFF";

            bQuantityOK = 0;
            bQuantityError = 1;
            break;
        }
        else if (!qtyIsInteger(i_Quantity)) {
            document.getElementById("tableCampCode_" + i).style.color = "#FFFFFF";
            document.getElementById("tableCampCode_" + i).style.backgroundColor = "#CC0000";
            alert("Quantity must be integer to redeem item");
            document.getElementById("tableCampCode_" + i).style.color = "#CC0000";
            document.getElementById("tableCampCode_" + i).style.backgroundColor = "#FFFFFF";

            bQuantityOK = 0;
            bQuantityError = 1;
            break;
        }
        else if (i_Quantity > 0) {
            document.getElementById("tableCampCode_" + i).style.color = "#FFFFFF";
            document.getElementById("tableCampCode_" + i).style.backgroundColor = "#CC0000";
            document.getElementById("tableCampCode_" + i).style.color = "#CC0000";
            document.getElementById("tableCampCode_" + i).style.backgroundColor = "#FFFFFF";

            bQuantityOK = 1;

        }
    }

    if (bQuantityOK) {
        return confirm("The selected items will be redeemed. Confirm to proceed the redemption?");
        //return true;
    }
    else if ((bQuantityOK == 0) && (bQuantityError == 0)) {
        alert("Quantity must be greater than 0 for at least one item !");  
        return false;
    }
}

function RedemptItem(iItemID, iRowID, i_balance) {
    var iQuantity;

    if (checkRedQuantity(iRowID, i_balance)) {
        iQuantity = document.getElementById("Quantity_" + iRowID).value;

        document.getElementsByName("ItemID")[0].value = iItemID;
        document.getElementsByName("RedQuantity")[0].value = iQuantity;
        StartRed();
    }
}

function ClearFormVar() {
    document.getElementsByName("ItemID")[0].value = "";
    document.getElementsByName("RedQuantity")[0].value = "";
}

function RedemptBatchItem(i_totalRowNo) {
    if (checkBatchRedQuantity(i_totalRowNo)) {
        StartRed();
        $('#WebRedemptionItem_proxy').submit();
        return true;
    } else {
        $('#QueryWebRedemptionItemList_form').submit();
        return false;
    }
}

function writeSuccess(s) {
document.getElementById('redemptionCompletedDiv').value = escape(s);
}

function writeFailure() {
    document.getElementById('redemptionCompletedDiv').value = "failure";
}

function StartRed() {
    document.getElementById("showText").style.color = RED_COLOR;
    document.getElementById("showText").innerHTML = "<blink>Please Wait for the Redemption Process to Finish ...</blink>";
}

function FinishRed(sMessage) {
    document.getElementById("showText").style.color = "black";
    document.getElementById("showText").style.fontSize = "12px";
    document.getElementById("showText").style.fontFamily = "Arial";
    document.getElementById("showText").innerHTML += sMessage;
}

function FinishRedError(sMessage) {
    //Displays error message
    document.getElementById("showText").style.color = "red";
    document.getElementById("showText").innerHTML = sMessage;
}

function CompleteRed() {
    document.getElementById("showText").innerHTML = "";
    //Run codes if redemption is successful. Removes the blinking "please wait for redemption process to finish" text
}

function updateBonusBalance(iBalance) {
    document.getElementById("bonusBalance").innerHTML = "<span style=\"color:#876937;font-weight:bold;\">Balance Points: </span><span style=\"color:#876937;font-weight:normal;\">" + iBalance + "</span>";
}

function checkBalance(i_Quantity, s_rowID, i_bonusBalance) {
    var i_bonusNeed;
    var i_totalBonusNeed;
    var i_bonusBalance;

    i_bonusNeed = document.getElementById("tableBonusDebit_" + s_rowID).innerHTML;
    i_totalBonusNeed = i_Quantity * i_bonusNeed;
    document.getElementById("bonusNeed").innerHTML = i_bonusNeed + " bonus * " + i_Quantity + " items = " + i_totalBonusNeed + " bonus is needed.";

    if (i_bonusBalance >= i_totalBonusNeed)
        return true;
    else
        return false;
}
