﻿function Trim(str) {
    var trimmed = str.replace(/^\s+|\s+$/g, '');
    return trimmed;
}

function IsNumeric(str) {
    if (isNaN(str)==true) {
        return false;
    } else {
        return true;
    }
}


function validate() {
    // Check for category selection
    //--------------------------------------------------------------------------------
    var select = -1;

    if (document.getElementById("IPBAMember").checked) { select = 0; }
    if (document.getElementById("NonIPBAMember").checked) { select = 1; }
    if (document.getElementById("YoungLawyer").checked) { select = 2; }
    //if (document.getElementById("Test").checked) { select = 3; }

    switch (select) {
        case -1:
            // No selection
            alert("Please select IPBA Member, Non-IPBA Member or Young Lawyer."); return false;
            break;
    }
    //--------------------------------------------------------------------------------


    // Check that the names are provided if there are accompanying person(s)
    //--------------------------------------------------------------------------------
    var numberAccompanying = document.getElementById("NumberAccompanying").value;
    if ((IsNumeric(numberAccompanying)) && (numberAccompanying > 0)) {
        if (Trim(document.getElementById("AccompanyingNames").value) == "") {
            alert("Please specify the name(s) for accompanying person(s).");
            return false;
        } else {
            var count = 0;
            var accompanyingNames = document.getElementById("AccompanyingNames").value.split(',');
            for (var i = 0; i < accompanyingNames.length; i++) {
                var names = Trim(accompanyingNames[i]);
                if (names != "")
                    count++;
            }

            if (numberAccompanying != count) {
                alert("Please specify the correct number of name(s) for the number of accompanying person(s).");
                return false;
            }
        }
    }
    //--------------------------------------------------------------------------------
    

    // Check that the user read the cancellation policy
    //--------------------------------------------------------------------------------
    if (!document.getElementById("Cancellation").checked) {
        //document.getElementById("Cancellation").focus();
        alert("Please make sure to read the terms and conditions of the cancellation policy.");
        return false;
    }
    //--------------------------------------------------------------------------------


    // Check for payment mode details
    //--------------------------------------------------------------------------------
    msg = "";
    //var paymentMode = document.getElementsByName("PaymentMode"); // This will return a collection that starts with index 1 in IE7
    var paymentMode = document.form1.PaymentMode;

    if ((paymentMode[0].checked) || (paymentMode[1].checked) || (paymentMode[2].checked)) {
        if (paymentMode[0].checked) { // Cheque
            /*
            if (Trim(document.getElementById("BankName").value) == "") {
                msg = "Please provide the bank name for the cheque payment.";
            }
            if (Trim(document.getElementById("ChequeNumber").value) == "") {
                if (msg.length > 0) msg += "\n";
                msg += "Please provide the cheque number for the cheque payment.";
            }
            */
        } else if (paymentMode[2].checked) { // Credit Card
            // CardType_0: Amex, CardType_1: Visa, CardType_2: Mastercard
            //if ((!document.getElementById("Amex").checked) && (!document.getElementById("Visa").checked) && (!document.getElementById("Mastercard").checked)) {
            if ((!document.getElementById("CardType_0").checked) && (!document.getElementById("CardType_1").checked) && (!document.getElementById("CardType_2").checked)) {
                msg = "Please select the type of card for the credit card payment.";
            }
            if (Trim(document.getElementById("CardholderName").value) == "") {
                if (msg.length > 0) msg += "\n";
                msg += "Please provide the cardholder's name for the credit card payment.";
            }
            if (Trim(document.getElementById("CardNumber").value) == "") {
                if (msg.length > 0) msg += "\n";
                msg += "Please provide the card number for the credit card payment.";
            }
            if (Trim(document.getElementById("ExpiryDate").value) == "") {
                if (msg.length > 0) msg += "\n";
                msg += "Please provide the card expiry date for the credit card payment.";
            }
            if (Trim(document.getElementById("CardSecurityCode").value) == "") {
                if (msg.length > 0) msg += "\n";
                msg += "Please provide the card security code for the credit card payment.";
            }            
        }
    } else {
        msg = "Please specify your payment mode.";
    }

    if (msg.length > 0) {
        alert(msg);
        return false;
    }
    //--------------------------------------------------------------------------------


    document.getElementById("GrandTotal").value = GrandTotalAmount;
    return true;
}


function OnCountryClicked(obj) {
    DisplayPrices();
    CalculateAmount();
}

function OnCategoryClicked(obj) {
    CalculateAmount();
}


function OnNumberAccompanyingChanged() {
    var numberAccompanying = document.getElementById("NumberAccompanying").value;
    if ((IsNumeric(numberAccompanying)) && (numberAccompanying > 0)) {
        if (document.all) {
            document.getElementById("AccompanyingNamesSection").style.display = "inline";
        } else {
        document.getElementById("AccompanyingNamesSection").style.display = "table";
        }
    } else {
        document.getElementById("AccompanyingNamesSection").style.display = "none";
    }        
    
    CalculateAmount();
}


function OnPaymentModeClicked(obj) {
    document.getElementById("CheckSection").style.display = "none";
    document.getElementById("BankTransferSection").style.display = "none";
    document.getElementById("CreditCardSection").style.display = "none";

    if (obj.value == "Cheque") {
        if (document.all) {
            document.getElementById("CheckSection").style.display = "inline";
        } else {
            document.getElementById("CheckSection").style.display = "table";
        }
        // MODIFIED: Added for Payment Gateway
        document.getElementById("Submit").value = "Submit";
    } else if (obj.value == "Bank Transfer") {
        if (document.all) {
            document.getElementById("BankTransferSection").style.display = "inline";
        } else {
            document.getElementById("BankTransferSection").style.display = "table";
        }
        // MODIFIED: Added for Payment Gateway
        document.getElementById("Submit").value = "Submit";
    } else if (obj.value == "Credit Card") {
        // MODIFIED: Commented for Payment Gateway
        if (document.all) {
            document.getElementById("CreditCardSection").style.display = "inline";
        } else {
            document.getElementById("CreditCardSection").style.display = "table";
        }
        // MODIFIED: Added for Payment Gateway
        // document.getElementById("Submit").value = "Proceed to Payment";
    }

    CalculateAmount();
}

function DisplayPrices() {
    // Display the prices in the relavant currency
    //--------------------------------------------------------------------------------
    var currency = "USD";
    if (document.getElementById("Country").value == "SG")
        currency = "SGD";

    if (currency == "USD") {
        document.getElementById("IPBAMemberPrice1").innerHTML = "USD 1,450.00";
        document.getElementById("IPBAMemberPrice2").innerHTML = "USD 1,625.00";
        document.getElementById("IPBAMemberPrice3").innerHTML = "USD 1,750.00";

        document.getElementById("NonIPBAMemberPrice1").innerHTML = "USD 1,650.00";
        document.getElementById("NonIPBAMemberPrice2").innerHTML = "USD 1,825.00";
        document.getElementById("NonIPBAMemberPrice3").innerHTML = "USD 1,950.00";

        document.getElementById("YoungLawyerPrice1").innerHTML = "USD 1,250.00";
        document.getElementById("YoungLawyerPrice2").innerHTML = "USD 1,400.00";
        document.getElementById("YoungLawyerPrice3").innerHTML = "USD 1,500.00";

        //document.getElementById("TestPrice1").innerHTML = "USD 1.00";
        //document.getElementById("TestPrice2").innerHTML = "USD 1.00";
        //document.getElementById("TestPrice3").innerHTML = "USD 1.00";        

        document.getElementById("NumberAccompanyingPrice1").innerHTML = "USD 500.00";
        document.getElementById("NumberAccompanyingPrice2").innerHTML = "USD 600.00";
        document.getElementById("NumberAccompanyingPrice3").innerHTML = "USD 700.00";

        if (document.all) {
            document.getElementById("GSTSection").style.display = "none";
        } else {
            document.getElementById("GSTSection").style.display = "none";
        }
    } else {
        document.getElementById("IPBAMemberPrice1").innerHTML = "SGD 2,175.00";
        document.getElementById("IPBAMemberPrice2").innerHTML = "SGD 2,437.50";
        document.getElementById("IPBAMemberPrice3").innerHTML = "SGD 2,625.00";

        document.getElementById("NonIPBAMemberPrice1").innerHTML = "SGD 2,475.00";
        document.getElementById("NonIPBAMemberPrice2").innerHTML = "SGD 2,737.50";
        document.getElementById("NonIPBAMemberPrice3").innerHTML = "SGD 2,925.00";

        document.getElementById("YoungLawyerPrice1").innerHTML = "SGD 1,875.00";
        document.getElementById("YoungLawyerPrice2").innerHTML = "SGD 2,100.00";
        document.getElementById("YoungLawyerPrice3").innerHTML = "SGD 2,250.00";

        //document.getElementById("TestPrice1").innerHTML = "SGD 1.00";
        //document.getElementById("TestPrice2").innerHTML = "SGD 1.00";
        //document.getElementById("TestPrice3").innerHTML = "SGD 1.00";        

        document.getElementById("NumberAccompanyingPrice1").innerHTML = "SGD 750.00";
        document.getElementById("NumberAccompanyingPrice2").innerHTML = "SGD 900.00";
        document.getElementById("NumberAccompanyingPrice3").innerHTML = "SGD 1,050.00";

        if (document.all) {
            document.getElementById("GSTSection").style.display = "inline";
        } else {
            document.getElementById("GSTSection").style.display = "table";
        }
    }
    //--------------------------------------------------------------------------------
}

var GrandTotalAmount = 0;
function CalculateAmount() {
    GrandTotalAmount = 0;

    var rateType = document.getElementById("RateType").value;
    var currency = "USD";
    if (document.getElementById("Country").value == "SG")
        currency = "SGD";

    // Calculate for category selection
    //--------------------------------------------------------------------------------
    var CategoryAmount = 0;
    document.getElementById("IPBAMemberAmount").innerHTML = "";
    document.getElementById("NonIPBAMemberAmount").innerHTML = "";
    document.getElementById("YoungLawyerAmount").innerHTML = "";
    //document.getElementById("TestAmount").innerHTML = "";
    document.getElementById("NumberAccompanyingAmount").innerHTML = "";

    if (document.getElementById("IPBAMember").checked) {
        var IPBAMemberAmount = 0;

        if (currency == "USD") {
            if (rateType == "Early Bird") {
                IPBAMemberAmount = 1450;
            } else if (rateType == "Regular") {
                IPBAMemberAmount = 1625;
            } else {
                IPBAMemberAmount = 1750;
            }
        } else { // SGD
            if (rateType == "Early Bird") {
                IPBAMemberAmount = 2175.00;
            } else if (rateType == "Regular") {
                IPBAMemberAmount = 2437.50;
            } else {
                IPBAMemberAmount = 2625.00;
            }
        }

        document.getElementById("IPBAMemberAmount").innerHTML = currency + " " + IPBAMemberAmount;
        CategoryAmount += IPBAMemberAmount;
    }
    else if (document.getElementById("NonIPBAMember").checked) {
        var NonIPBAMemberAmount = 0;

        if (currency == "USD") {
            if (rateType == "Early Bird") {
                NonIPBAMemberAmount = 1650;
            } else if (rateType == "Regular") {
                NonIPBAMemberAmount = 1825;
            } else {
                NonIPBAMemberAmount = 1950;
            }
        } else { // SGD
            if (rateType == "Early Bird") {
                NonIPBAMemberAmount = 2475.00;
            } else if (rateType == "Regular") {
                NonIPBAMemberAmount = 2737.50;
            } else {
                NonIPBAMemberAmount = 2925.00;
            }
        }

        document.getElementById("NonIPBAMemberAmount").innerHTML = currency + " " + NonIPBAMemberAmount;
        CategoryAmount += NonIPBAMemberAmount;
    }
    else if (document.getElementById("YoungLawyer").checked) {
        var YoungLawyerAmount = 0;

        if (currency == "USD") {
            if (rateType == "Early Bird") {
                YoungLawyerAmount = 1250;
            } else if (rateType == "Regular") {
                YoungLawyerAmount = 1400;
            } else {
                YoungLawyerAmount = 1500;
            }
        } else { // SGD
            if (rateType == "Early Bird") {
                YoungLawyerAmount = 1875.00;
            } else if (rateType == "Regular") {
                YoungLawyerAmount = 2100.00;
            } else {
                YoungLawyerAmount = 2250.00;
            }
        }


        document.getElementById("YoungLawyerAmount").innerHTML = currency + " " + YoungLawyerAmount;
        CategoryAmount += YoungLawyerAmount;
    }
    /*
    else if (document.getElementById("Test").checked) {
        var TestAmount = 0;

        if (currency == "USD") {
            if (rateType == "Early Bird") {
                TestAmount = 1.00;
            } else if (rateType == "Regular") {
                TestAmount = 1.00;
            } else {
                TestAmount = 1.00;
            }
        } else { // SGD
            if (rateType == "Early Bird") {
                TestAmount = 1.00;
            } else if (rateType == "Regular") {
                TestAmount = 1.00;
            } else {
                TestAmount = 1.00;
            }
        }


        document.getElementById("TestAmount").innerHTML = currency + " " + TestAmount;
        CategoryAmount += TestAmount;
    }
    */

    var numberAccompanying = document.getElementById("NumberAccompanying").value;
    if ((IsNumeric(numberAccompanying)) && (numberAccompanying > 0)) {
        var numberAccompanyingAmount = 0;

        if (currency == "USD") {
            if (rateType == "Early Bird") {
                numberAccompanyingAmount = 500 * numberAccompanying
            } else if (rateType == "Regular") {
                numberAccompanyingAmount = 600 * numberAccompanying
            } else {
                numberAccompanyingAmount = 700 * numberAccompanying
            }
        } else { // SGD
            if (rateType == "Early Bird") {
                numberAccompanyingAmount = 750.00 * numberAccompanying
            } else if (rateType == "Regular") {
                numberAccompanyingAmount = 900.00 * numberAccompanying
            } else {
                numberAccompanyingAmount = 1050.00 * numberAccompanying
            }
        }

        if (numberAccompanyingAmount != 0) {
            document.getElementById("NumberAccompanyingAmount").innerHTML = currency + " " + numberAccompanyingAmount;
            CategoryAmount += numberAccompanyingAmount;
        }
    }

    GrandTotalAmount += CategoryAmount;

    var GSTAmount = 0;
    if (document.getElementById("Country").value == "SG") {
        // GST
        GSTAmount = GrandTotalAmount * 0.07;
        GrandTotalAmount = GrandTotalAmount + GSTAmount;
    }
    //--------------------------------------------------------------------------------


    if (GrandTotalAmount > 0) {
        GSTAmount = GSTAmount.toFixed(2);
        document.getElementById("GSTAmount").innerHTML = currency + " " + GSTAmount;
    
        GrandTotalAmount = GrandTotalAmount.toFixed(2);
        document.getElementById("GrandTotalAmount").innerHTML = currency + " " + GrandTotalAmount;
        // document.getElementById("CreditCardAmount").innerHTML = GrandTotalAmount.toString(10);
    } else {
        document.getElementById("GSTAmount").innerHTML = "";
        
        document.getElementById("GrandTotalAmount").innerHTML = "";
        // document.getElementById("CreditCardAmount").innerHTML = "0";
    }
}