var necklacePrice = 14.99;
var shippingFirstPackage = 4;

function updateForm() {          
    // Get quantity values
    var quantity_1 = document.getElementById('20_quantity').value;
    var quantity_2 = document.getElementById('24_quantity').value;
    // Get shipping values
    var first_name = document.getElementById('first_name').value;
    var last_name = document.getElementById('last_name').value;
    var email = document.getElementById('email').value;
    var confirm_email = document.getElementById('confirm_email').value;
    var address_1 = document.getElementById('address_1').value;
    var address_2 = document.getElementById('address_2').value;
    var country = document.getElementById('country').value;
    var state = document.getElementById('state').value;
    var city = document.getElementById('city').value;
    var zip = document.getElementById('zip').value;
    
    var valid_email = /^[a-z._\-0-9A-Z]{1,}\@[a-z._\-0-9A-Z]{1,}\.[a-z]{2,4}$/.test(email);
    
    quantity_1 = quantity_1 * 1;
    quantity_2 = quantity_2 * 1;
    
    var shippingCost = 0;
    if (country != '') {
        shippingCost = 6;
        if (country == 'CA') {
           shippingCost = 3;
        }
        else if (country == 'US') {
           shippingCost = 4;
        }
    }
    
    // Handle error notices
    if (first_name == '') { document.getElementById('first_name_notice').innerHTML = 'Required'; }else{ document.getElementById('first_name_notice').innerHTML = ''; }  
    if (last_name == '') { document.getElementById('last_name_notice').innerHTML = 'Required'; }else{ document.getElementById('last_name_notice').innerHTML = ''; }  
    if (email == '') { document.getElementById('email_notice').innerHTML = 'Required'; }else{
        if (valid_email == false) { document.getElementById('email_notice').innerHTML = 'The E-mail you entered is not valid'; } else { document.getElementById('email_notice').innerHTML = ''; }
    }  
    if (confirm_email == '') { document.getElementById('confirm_email_notice').innerHTML = 'Required'; }else{
        if (email != confirm_email) { document.getElementById('confirm_email_notice').innerHTML = 'E-mails do not match'; }else if (email == confirm_email) { document.getElementById('confirm_email_notice').innerHTML = ''; }  
    }  
    if (address_1 == '') { document.getElementById('address_1_notice').innerHTML = 'Required'; }else{ document.getElementById('address_1_notice').innerHTML = ''; }  
    if (country == '') { document.getElementById('country_notice').innerHTML = 'Required'; }else{ document.getElementById('country_notice').innerHTML = ''; }  
    if (state == '') { document.getElementById('state_notice').innerHTML = 'Required'; }else{ document.getElementById('state_notice').innerHTML = ''; }  
    if (city == '') { document.getElementById('city_notice').innerHTML = 'Required'; }else{ document.getElementById('city_notice').innerHTML = ''; }  
    if (zip == '') { document.getElementById('zip_notice').innerHTML = 'Required'; }else{ document.getElementById('zip_notice').innerHTML = ''; }
    
    
    // Correct User Input
    if (quantity_1 >= 0 && quantity_2 >= 0){
    }else {
        quantity_1 = 0;
        quantity_2 = 0;
        document.getElementById('20_quantity').value = 1;
        document.getElementById('24_quantity').value = 1;
    } 
    
    var total_necklaces = quantity_1 + quantity_2;
    
    // Toggle checkout button
    if ((quantity_1 == 0 && quantity_2 == 0) || first_name == '' || last_name == '' || email == '' || confirm_email == '' || address_1 == '' || country == '' || state == '' || city == '' || zip == '' || email != confirm_email || valid_email == false){    
        // Disable check out button                
        document.getElementById('checkout_button').disabled = 'disabled';
        document.getElementById('checkout_button').className = 'flat_button center disabled';
        document.getElementById('checkout_button').value = 'Please Complete the Form Above Before Continuing';
    }else {
        document.getElementById('checkout_button').disabled = '';
        document.getElementById('checkout_button').className = 'flat_button center';
        document.getElementById('checkout_button').value = 'Continue to Check Out';
    }
    
    // Process values
    var necklace_1_total = quantity_1 * necklacePrice;
    var necklace_2_total = quantity_2 * necklacePrice;
    var sub_total = necklace_1_total + necklace_2_total;
    var shippingTotal;
    if (total_necklaces <= shippingFirstPackage) {
        shippingTotal = shippingCost;                    
    }
    else {
        shippingTotal = shippingCost + 2;
    }
    var grandTotal = sub_total + shippingTotal;
    
    // Clean up the numbers
    necklace_1_total = Math.round(necklace_1_total*100)/100;
    necklace_2_total = Math.round(necklace_2_total*100)/100;
    shippingTotal = Math.round(shippingTotal*100)/100;
    grandTotal = Math.round(grandTotal*100)/100;
    
    // Update dollar values
    document.getElementById('20_necklace_total').innerHTML = '$' + necklace_1_total;
    document.getElementById('24_necklace_total').innerHTML = '$' + necklace_2_total;
    document.getElementById('sub_total').innerHTML = '$' + sub_total;
    if (country == '') {
        document.getElementById('shipping_total').innerHTML = 'Please select a country.';
    }
    else {
        document.getElementById('shipping_total').innerHTML = '$' + shippingTotal;
    }
    document.getElementById('grand_total').innerHTML = '<strong>$' + grandTotal + ' (CAD)</strong>';
    
    // Determine payment method             
    for (i = 0; i < document.getElementsByName('paymentMethod').length; i++) {
        if (document.getElementsByName('paymentMethod')[i].checked == true) {
            var paymentMethod = document.getElementsByName('paymentMethod')[i].value;                    
        }
    }
    
    // Set check out data form values
    if (paymentMethod == 'paypal') {
        document.getElementById('checkoutForm').action = 'https://www.paypal.com/cgi-bin/webscr';
        var hiddenValues = "<input type='hidden' name='cmd' value='_cart'>";
        hiddenValues += "<input type='hidden' name='upload' value='1'>";
        hiddenValues += "<input type='hidden' name='business' value='82MXM4QGHXPSL'>";
        hiddenValues += "<input type='hidden' name='lc' value='CA'>";
        
        if (quantity_1 > 0){
            hiddenValues += "<input type='hidden' name='item_name_1' value='Interfaithing Necklace (20 Inch Chain)'>";
            hiddenValues += "<input type='hidden' name='amount_1' value='" + necklacePrice + "'>";
            hiddenValues += "<input type='hidden' name='quantity_1' value='" + quantity_1 + "'>";
        }
        
        if (quantity_2 > 0){
            if (quantity_1 == 0) {
                hiddenValues += "<input type='hidden' name='item_name_1' value='Interfaithing Necklace (24 Inch Chain)'>";
                hiddenValues += "<input type='hidden' name='amount_1' value='" + necklacePrice + "'>";
                hiddenValues += "<input type='hidden' name='quantity_1' value='" + quantity_2 + "'>";
            }
            else {
                hiddenValues += "<input type='hidden' name='item_name_2' value='Interfaithing Necklace (24 Inch Chain)'>";
                hiddenValues += "<input type='hidden' name='amount_2' value='" + necklacePrice + "'>";
                hiddenValues += "<input type='hidden' name='quantity_2' value='" + quantity_2 + "'>";
            }
        }
        
        hiddenValues += "<input type='hidden' name='currency_code' value='CAD'>";
        hiddenValues += "<input type='hidden' name='button_subtype' value='products'>";
        hiddenValues += "<input type='hidden' name='no_note' value='1'>";
        hiddenValues += "<input type='hidden' name='no_shipping' value='2'>";
        hiddenValues += "<input type='hidden' name='rm' value='1'>";
        hiddenValues += "<input type='hidden' name='return' value='http://www.interfaithing.com/thankyou/'>";
        hiddenValues += "<input type='hidden' name='cancel_return' value='http://www.interfaithing.com/necklace/'>";
        hiddenValues += "<input type='hidden' id='shipping' name='shipping_1' value='" + shippingTotal + "'>";
        
        hiddenValues += "<input type='hidden' name='first_name' value='" + first_name + "'>";
        hiddenValues += "<input type='hidden' name='last_name' value='" + last_name + "'>";
        hiddenValues += "<input type='hidden' name='address1' value='" + address_1 + "'>";
        hiddenValues += "<input type='hidden' name='address2' value='" + address_2 + "'>";
        hiddenValues += "<input type='hidden' name='city' value='" + city + "'>";
        hiddenValues += "<input type='hidden' name='state' value='" + state + "'>";
        hiddenValues += "<input type='hidden' name='country' value='" + country + "'>";
        hiddenValues += "<input type='hidden' name='email' value='" + email + "'>";
        hiddenValues += "<input type='hidden' name='zip' value='" + zip + "'>";
        
        hiddenValues += "<input type='hidden' name='bn' value='PP-BuyNowBF:btn_buynowCC_LG.gif:NonHosted'>";
        hiddenValues += "<img alt='' border='0' src='https://www.paypal.com/en_US/i/scr/pixel.gif' width='1' height='1'>"; 
        document.getElementById('checkoutValues').innerHTML = hiddenValues;
    }
}

updateForm(); 
