﻿
function clearText(field) {

    if (field.defaultValue == field.value) field.value = '';
    else if (field.value == '') field.value = field.defaultValue;

}


function isNumber(input) {
    var inputStr = input.value
    for (var i = 0; i < inputStr.length; i++) {
        var oneChar = inputStr.substring(i, i + 1)
        if (oneChar < "0" || oneChar > "9") {
            alert("The Quantity field must contain a numeric value.")
            input.select()
            return false
        }
    }
    if (inputStr.length == 0) {
        input.value = input.defaultValue
    }
    return true
}


function MM_findObj(n, d) { //v4.0
    var p, i, x; if (!d) d = document; if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document; n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n]; for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && document.getElementById) x = document.getElementById(n); return x;
}


function MM_validateForm() { //v4.0
    var i, p, q, nm, test, num, min, max, errors = '', args = MM_validateForm.arguments;
    for (i = 0; i < (args.length - 2); i += 3) {
        test = args[i + 2]; val = MM_findObj(args[i]);
        if (val) {
            nm = val.name; if (val.value != val.defaultValue && (val = val.value) != "") {
                if (test.indexOf('isEmail') != -1) {
                    p = val.indexOf('@');
                    if (p < 1 || p == (val.length - 1)) errors += '- ' + nm + ' must contain an e-mail address.\n';
                } else if (test != 'R') {
                    if (isNaN(val)) errors += '- ' + nm + ' must contain a number.\n';
                    if (test.indexOf('inRange') != -1) {
                        p = test.indexOf(':');
                        min = test.substring(8, p); max = test.substring(p + 1);
                        if (val < min || max < val) errors += '- ' + nm + ' must contain a number between ' + min + ' and ' + max + '.\n';
                    }
                }
            } else if (test.charAt(0) == 'R') errors += '- ' + nm + ' is required.\n';
        }
    } if (errors) alert('The following error(s) occurred:\n' + errors);
    document.MM_returnValue = (errors == '');
}

// this code is used to copy shipping address to billing on the OliveOilStore.htm
function copyShippToBill() {

    var mirror
    mirror = confirm("Are you sure you want to copy Shipping Address to Billing Address?")

    if (mirror) {
        document.OnlineOrderForm.ShippingFirstName.value = document.OnlineOrderForm.BillingFirstName.value;
        document.OnlineOrderForm.ShippingSurname.value = document.OnlineOrderForm.BillingSurname.value;
        document.OnlineOrderForm.ShippingCompany.value = document.OnlineOrderForm.BillingCompany.value;
        document.OnlineOrderForm.ShippingAddressLine1.value = document.OnlineOrderForm.BillingAddressLine1.value;
        document.OnlineOrderForm.ShippingAddressLine2.value = document.OnlineOrderForm.BillingAddressLine2.value;
        document.OnlineOrderForm.ShippingSuburb.value = document.OnlineOrderForm.BillingSuburb.value;
        document.OnlineOrderForm.ShippingState.value = document.OnlineOrderForm.BillingState.value;
        document.OnlineOrderForm.ShippingPostcode.value = document.OnlineOrderForm.BillingPostcode.value;
        document.OnlineOrderForm.ShippingPhone.value = document.OnlineOrderForm.BillingPhone.value;
        document.OnlineOrderForm.ShippingEmail.value = document.OnlineOrderForm.BillingEmail.value;


    }
}


// this code calculates the number of postage boxes to use
function calculatePostage() {

    var boxes = 0

    // calculate number of items ordered
    var items = Number(document.getElementById("product1").value) +
                Number(document.getElementById("product2").value) +
                Number(document.getElementById("product3").value) +
                Number(document.getElementById("product5").value) +
                Number(document.getElementById("product6").value) +
                Number(document.getElementById("product7").value) +
                Number(document.getElementById("product8").value) +
                Number(document.getElementById("product18").value) +
                Number(document.getElementById("product19").value) + 
                Number(document.getElementById("product9").value) +
                Number(document.getElementById("product10").value) +
                Number(document.getElementById("product11").value) +
                Number(document.getElementById("product12").value) +
                Number(document.getElementById("product13").value) +
                Number(document.getElementById("product14").value)

    // calculate the number of gift vouchers ordered
    var vouchers = Number(document.getElementById("product20").value) +
                  Number(document.getElementById("product21").value) +
                  Number(document.getElementById("product22").value)
      

    // Charge for 1 box for up to each 4 items ordered
    if (items > 0) {
        boxes += Math.floor(items / 4)
        if (items % 4 > 0) {
            boxes += 1
        }
    }

    // Charge minimum 1 box if only vouchers ordered
    if (vouchers > 0 && boxes == 0) {
        boxes += 1
    }

    // Do not forward to NAB if there are no boxes (no orders)
    if (boxes < 1) {
        alert("No products have been selected for purchase.")
        document.MM_returnValue = false
    }

    document.getElementById("shipping_amount").value = boxes
}

// This method is only used to calculate the totals in the email while NAB Transact is not active yet.
function calculateTotals() {
    document.getElementById("total1").value = Number(document.getElementById("product1").value) * 25
    document.getElementById("total2").value = Number(document.getElementById("product2").value) * 35
    document.getElementById("total3").value = Number(document.getElementById("product3").value) * 38
    document.getElementById("total5").value = Number(document.getElementById("product5").value) * 19
    document.getElementById("total6").value = Number(document.getElementById("product6").value) * 13
    document.getElementById("total7").value = Number(document.getElementById("product7").value) * 13
    document.getElementById("total8").value = Number(document.getElementById("product8").value) * 13
    document.getElementById("total18").value = Number(document.getElementById("product18").value) * 27
    document.getElementById("total19").value = Number(document.getElementById("product19").value) * 45
    document.getElementById("total9").value = Number(document.getElementById("product9").value) * 55
    document.getElementById("total10").value = Number(document.getElementById("product10").value) * 79
    document.getElementById("total11").value = Number(document.getElementById("product11").value) * 125
    document.getElementById("total12").value = Number(document.getElementById("product12").value) * 95
    document.getElementById("total13").value = Number(document.getElementById("product13").value) * 125
    document.getElementById("total14").value = Number(document.getElementById("product14").value) * 210
    document.getElementById("totalship").value = Number(document.getElementById("shipping_amount").value) * 15
    
    document.getElementById("grandtotal").value = 
        Number(document.getElementById("total1").value) + 
        Number(document.getElementById("total2").value) + 
        Number(document.getElementById("total3").value) + 
        Number(document.getElementById("total5").value) + 
        Number(document.getElementById("total6").value) + 
        Number(document.getElementById("total7").value) + 
        Number(document.getElementById("total8").value) + 
        Number(document.getElementById("total18").value) + 
        Number(document.getElementById("total19").value) + 
        Number(document.getElementById("total9").value) + 
        Number(document.getElementById("total10").value) + 
        Number(document.getElementById("total11").value) + 
        Number(document.getElementById("total12").value) + 
        Number(document.getElementById("total13").value) +
        Number(document.getElementById("total14").value)

    var answer = confirm("Total value of this order is $" + document.getElementById("grandtotal").value + ".00 \nPress OK to confirm your order.")
    if (answer) {
    }
    else {
        document.MM_returnValue = false
    }
}
