function trim(stringToTrim) // Trim leading and trailing spaces { return stringToTrim.replace(/^\s+|\s+$/g,""); } function ltrim(stringToTrim) { return stringToTrim.replace(/^\s+/,""); } var line; var line_qty; /* function update_rosette_fitting_prices() { alert(document.getElementById('rosette_fixing_type').value.search(/^\d{0,5}$/)); return; var rosette_lines = document.getElementById('total_rosette_rows').value; for(var c=1 ; c<=rosette_lines ; c++) { if(document.getElementById('rosette_line_'+c+'_line_price').value.length) { line_price = document.getElementById('rosette_line_'+c+'_line_price').value; order_total += parseFloat(line_price); } } } */ /* This function goes through all the rosette lines looking for the same product code on different lines. If the same product code is found, then the price rate for the COMBINED quantity is used. */ function get_rosette_prices() { var p = document.getElementById('rosette_fixing_type').value.match(/\d{0,5}$/g) var rosette_fixing_price = parseFloat(p[0]) / 100; var rosette_rows = document.getElementById('total_rosette_rows').value; rosette_rows = parseInt(rosette_rows); var ar = new Array(); var price_array = new Array(); var qty; for(var c=1 ; c<=rosette_rows ; c++) { { document.getElementById('rosette_line_'+c+'_quantity').style.background='white'; if(document.getElementById('rosette_line_'+c+'_quantity').value.search(/^\d{0,5}$/) == -1) { alert('Please enter digits only in the quantity field'); document.getElementById('rosette_line_'+c+'_quantity').style.background='red'; return; } var z = document.getElementById('rosette_line_'+c+'_product'); var z3 = z.options[z.selectedIndex].text; if(document.getElementById('rosette_line_'+c+'_quantity').value.length) qty = document.getElementById('rosette_line_'+c+'_quantity').value; else qty=0; qty=parseInt(qty); if(ar[z3] == undefined) ar[z3] = qty; else ar[z3] += qty; } } // Go through all the different product codes on this order var unit_price; var i; for (i in ar) // Loop through the array. Parameters are i = product code ar[i] = quantity { if(i != 'Select') // A product needs to have been selected { var all_prices = document.getElementById('prices_'+i).value; // All prices for this product code prices = all_prices.split("|"); if(ar[i] >= 1000) unit_price = parseFloat(prices[2]); else if(ar[i] >= 100) unit_price = parseFloat(prices[1]); else unit_price = parseFloat(prices[0]); unit_price += rosette_fixing_price; } else unit_price = 0; // Now that we've got the price, update all lines with this product code on for(var c=1 ; c<=rosette_rows ; c++) { z = document.getElementById('rosette_line_'+c+'_product'); z3 = z.options[z.selectedIndex].text; if(z3 == i) // Product code selected on this line = product code for which we have just got the price { document.getElementById('rosette_line_'+c+'_unit_price_product').value = unit_price.toFixed(2); update_rosette_line_price(c); } } } } function printing_on_tail_price_update(l) { line = l; line_qty = document.getElementById('rosette_line_'+line+'_quantity').value; document.getElementById('rosette_line_'+line+'_printing_on_tail').value = ltrim(document.getElementById('rosette_line_'+line+'_printing_on_tail').value); if(document.getElementById('rosette_line_'+line+'_printing_on_tail').value.length) // Printing on tail price update required { if(line_qty >= 1000) tail_printing_price = document.getElementById('printing_on_tails_price_1000_plus').value; else if(line_qty >= 100) tail_printing_price = document.getElementById('printing_on_tails_price_100_plus').value; else tail_printing_price = document.getElementById('printing_on_tails_price_standard').value; document.getElementById('rosette_line_'+line+'_printing_on_tail_price').value = tail_printing_price; } else document.getElementById('rosette_line_'+line+'_printing_on_tail_price').value = ''; update_rosette_line_price(line); } function update_rosette_line_price(l) { line = l; var price_per_item = parseFloat(document.getElementById('rosette_line_'+line+'_unit_price_product').value); if(document.getElementById('rosette_line_'+line+'_printing_on_tail_price').value.length) price_per_item += parseFloat(document.getElementById('rosette_line_'+line+'_printing_on_tail_price').value); document.getElementById('rosette_line_'+line+'_unit_price').value = price_per_item.toFixed(2); var line_price = price_per_item * document.getElementById('rosette_line_'+line+'_quantity').value; document.getElementById('rosette_line_'+line+'_line_price').value = line_price.toFixed(2); update_totals(); } function get_sash_prices() { var sash_rows = document.getElementById('total_sash_rows').value; sash_rows = parseInt(sash_rows); var ar = new Array(); var price_array = new Array(); var qty; for(var c=1 ; c<=sash_rows ; c++) { { document.getElementById('sash_line_'+c+'_quantity').style.background='white'; if(document.getElementById('sash_line_'+c+'_quantity').value.search(/^\d{0,5}$/) == -1) { alert('Please enter digits only in the quantity field'); document.getElementById('sash_line_'+c+'_quantity').style.background='red'; return; } var z = document.getElementById('sash_line_'+c+'_product'); var z3 = z.options[z.selectedIndex].text; if(document.getElementById('sash_line_'+c+'_quantity').value.length) qty = document.getElementById('sash_line_'+c+'_quantity').value; else qty=0; qty=parseInt(qty); if(ar[z3] == undefined) ar[z3] = qty; else ar[z3] += qty; } } // Go through all the different product codes on this order var unit_price; var i; for (i in ar) // Loop through the array. Parameters are i = product code ar[i] = quantity { if(i != 'Select') // A product needs to have been selected { var all_prices = document.getElementById('prices_'+i).value; // All prices for this product code prices = all_prices.split("|"); if(ar[i] >= 1000) unit_price = parseFloat(prices[2]); else if(ar[i] >= 100) unit_price = parseFloat(prices[1]); else unit_price = parseFloat(prices[0]); } else unit_price = 0; // Now that we've got the price, update all lines with this product code on for(var c=1 ; c<=sash_rows ; c++) { z = document.getElementById('sash_line_'+c+'_product'); z3 = z.options[z.selectedIndex].text; if(z3 == i) // Product code selected on this line = product code for which we have just got the price { document.getElementById('sash_line_'+c+'_unit_price_product').value = unit_price.toFixed(2); update_sash_line_price(c); } } } } function update_sash_line_price(l) { line = l; var price_per_item = parseFloat(document.getElementById('sash_line_'+line+'_unit_price_product').value); document.getElementById('sash_line_'+line+'_unit_price').value = price_per_item.toFixed(2); var line_price = price_per_item * document.getElementById('sash_line_'+line+'_quantity').value; document.getElementById('sash_line_'+line+'_line_price').value = line_price.toFixed(2); update_totals(); } function get_badge_prices(product_id, l) { var badge_rows = document.getElementById('total_badge_rows').value; badge_rows = parseInt(badge_rows); var ar = new Array(); var price_array = new Array(); var qty; for(var c=1 ; c<=badge_rows ; c++) { { document.getElementById('badge_line_'+c+'_quantity').style.background='white'; if(document.getElementById('badge_line_'+c+'_quantity').value.search(/^\d{0,5}$/) == -1) { alert('Please enter digits only in the quantity field'); document.getElementById('badge_line_'+c+'_quantity').style.background='red'; return; } var z = document.getElementById('badge_line_'+c+'_product'); var z3 = z.options[z.selectedIndex].text; if(document.getElementById('badge_line_'+c+'_quantity').value.length) qty = document.getElementById('badge_line_'+c+'_quantity').value; else qty=0; qty=parseInt(qty); if(ar[z3] == undefined) ar[z3] = qty; else ar[z3] += qty; } } // Go through all the different product codes on this order var unit_price; var i; for (i in ar) // Loop through the array. Parameters are i = product code ar[i] = quantity { if(i != 'Select') // A product needs to have been selected { var all_prices = document.getElementById('prices_'+i).value; // All prices for this product code prices = all_prices.split("|"); if(ar[i] >= 1000) unit_price = parseFloat(prices[2]); else if(ar[i] >= 100) unit_price = parseFloat(prices[1]); else unit_price = parseFloat(prices[0]); } else unit_price = 0; // Now that we've got the price, update all lines with this product code on for(var c=1 ; c<=badge_rows ; c++) { z = document.getElementById('badge_line_'+c+'_product'); z3 = z.options[z.selectedIndex].text; if(z3 == i) // Product code selected on this line = product code for which we have just got the price { document.getElementById('badge_line_'+c+'_unit_price_product').value = unit_price.toFixed(2); update_badge_line_price(c); } } } } function update_badge_line_price(l) { line = l; var price_per_item = parseFloat(document.getElementById('badge_line_'+line+'_unit_price_product').value); document.getElementById('badge_line_'+line+'_unit_price').value = price_per_item.toFixed(2); var line_price = price_per_item * document.getElementById('badge_line_'+line+'_quantity').value; document.getElementById('badge_line_'+line+'_line_price').value = line_price.toFixed(2); update_totals(); } function update_gold_blocked_tails_total() { document.getElementById('gold_blocked_tails_quantity').style.background='white'; gold_blocked_tails_quantity = document.getElementById('gold_blocked_tails_quantity').value; if(gold_blocked_tails_quantity.length && gold_blocked_tails_quantity.search(/^\d{0,5}$/) == -1) { alert('Please enter digits only in the quantity field'); document.getElementById('gold_blocked_tails_quantity').style.background='red'; return; } var gold_blocked_tails_quantity = document.getElementById('gold_blocked_tails_quantity').value; if(!gold_blocked_tails_quantity.length) gold_blocked_tails_quantity=0; var gold_blocked_tails_price = document.getElementById('gold_blocked_tails_price').value; var gold_blocked_tails_total = parseFloat(gold_blocked_tails_quantity) * parseFloat(gold_blocked_tails_price); document.getElementById('gold_blocked_tails_total').value = gold_blocked_tails_total.toFixed(2); update_totals(); } function update_judges_books_total() { document.getElementById('judges_books_quantity').style.background='white'; judges_books_quantity = document.getElementById('judges_books_quantity').value; if(judges_books_quantity.length && judges_books_quantity.search(/^\d{0,5}$/) == -1) { alert('Please enter digits only in the quantity field'); document.getElementById('judges_books_quantity').style.background='red'; return; } var judges_books_quantity = document.getElementById('judges_books_quantity').value; if(!judges_books_quantity.length) judges_books_quantity=0; var judges_books_price = document.getElementById('judges_books_price').value; var judges_books_total = parseFloat(judges_books_quantity) * parseFloat(judges_books_price); document.getElementById('judges_books_total').value = judges_books_total.toFixed(2); update_totals(); } function update_club_logo_blocks_total() { document.getElementById('club_logo_blocks_quantity').style.background='white'; club_logo_blocks_quantity = document.getElementById('club_logo_blocks_quantity').value; if(club_logo_blocks_quantity.length && club_logo_blocks_quantity.search(/^\d{0,5}$/) == -1) { alert('Please enter digits only in the quantity field'); document.getElementById('club_logo_blocks_quantity').style.background='red'; return; } var club_logo_blocks_quantity = document.getElementById('club_logo_blocks_quantity').value; if(!club_logo_blocks_quantity.length) club_logo_blocks_quantity=0; var club_logo_blocks_price = document.getElementById('club_logo_blocks_price').value; var club_logo_blocks_total = parseFloat(club_logo_blocks_quantity) * parseFloat(club_logo_blocks_price); document.getElementById('club_logo_blocks_total').value = club_logo_blocks_total.toFixed(2); update_totals(); } //////////////////////////////////////////////////////////////////////////////////////////////// function apply_discount_code() { if(document.getElementById('discount_code').value.length) { if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else { if (window.ActiveXObject) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } } } if (xhr) { xhr.onreadystatechange = apply_discount; xhr.open("GET", "get_discount_percentage.php?discount_code=" + document.getElementById('discount_code').value , true); xhr.send(null); } else { alert("Sorry, couldn't create an XMLHttpRequest"); } } /* else { document.getElementById('discount_percentage').value=0; update_totals(); }*/ } function apply_discount() { var discount_percentage; if (xhr.readyState == 4) { discount_percentage = xhr.responseText; document.getElementById('discount_percentage').value = discount_percentage; if(parseFloat(discount_percentage) > 0) document.getElementById('discount_pc').innerHTML = discount_percentage+'%'; else document.getElementById('discount_pc').innerHTML = ''; update_totals(); } } function update_totals() { var c; var order_total = 0; var line_price; var rosette_lines = document.getElementById('total_rosette_rows').value; var sash_lines = document.getElementById('total_sash_rows').value; var badge_lines = document.getElementById('total_badge_rows').value; var minimum_order_value = parseFloat(document.getElementById('minimum_order_value').value); var minimum_order_charge = parseFloat(document.getElementById('minimum_order_charge').value); var discount_percentage = parseFloat(document.getElementById('discount_percentage').value); var discount_multiplier = (100 - discount_percentage) / 100; for(c=1 ; c<=rosette_lines ; c++) { if(document.getElementById('rosette_line_'+c+'_line_price').value.length) { line_price = document.getElementById('rosette_line_'+c+'_line_price').value; order_total += parseFloat(line_price); } } for(c=1 ; c<=sash_lines ; c++) { if(document.getElementById('sash_line_'+c+'_line_price').value.length) { line_price = document.getElementById('sash_line_'+c+'_line_price').value; order_total += parseFloat(line_price); } } for(c=1 ; c<=badge_lines ; c++) { if(document.getElementById('badge_line_'+c+'_line_price').value.length) { line_price = document.getElementById('badge_line_'+c+'_line_price').value; order_total += parseFloat(line_price); } } // No longer required as per GH e-mail // if(document.getElementById('gold_blocked_tails_total').value.length) // order_total += parseFloat(document.getElementById('gold_blocked_tails_total').value); if(document.getElementById('judges_books_total').value.length) order_total += parseFloat(document.getElementById('judges_books_total').value); if(document.getElementById('club_logo_blocks_total').value.length) order_total += parseFloat(document.getElementById('club_logo_blocks_total').value); order_total *= discount_multiplier; document.getElementById('order_total_price').value = order_total.toFixed(2); if(order_total < minimum_order_value) document.getElementById('centre_set_up').value = minimum_order_charge.toFixed(2); else document.getElementById('centre_set_up').value = '0.00'; update_packing_and_post(); } function getRadioVal(radioName) { var rads = document.getElementsByName(radioName); for(var rad in rads) { if(rads[rad].checked) return rads[rad].value; } return null; } function update_packing_and_post() { var i; var r = document.getElementById('pp_rates').value; var pp_rates = r.split("^"); var order_total_price = document.getElementById('order_total_price').value; var packing_and_post=0; var packing_or_post_checked_value = getRadioVal("post_or_collect") if(packing_or_post_checked_value == 'collect') var packing_and_post = 0; else { for(i = 0; i < pp_rates.length; i++) { var p = pp_rates[i]; var s = p.split("|"); if(order_total_price > parseFloat(s[0])) { var packing_and_post = parseFloat(s[1]); break; } } } document.getElementById('packing_and_post').value = packing_and_post.toFixed(2); update_subtotal(); } function update_subtotal() { var centre_set_up = parseFloat(document.getElementById('centre_set_up').value); var product_value = document.getElementById('order_total_price').value; var packing_and_post = document.getElementById('packing_and_post').value; var subtotal = parseFloat(product_value) + parseFloat(packing_and_post) +centre_set_up; document.getElementById('subtotal').value = subtotal.toFixed(2); update_vat_amount(); } function update_vat_amount() { var subtotal = parseFloat(document.getElementById('subtotal').value); var vat_rate = parseFloat(document.getElementById('vat_rate').value); var vat_amount = (vat_rate / 100) * (subtotal); document.getElementById('vat_amount').value = vat_amount.toFixed(2); update_grand_total(); } function update_grand_total() { var subtotal = parseFloat(document.getElementById('subtotal').value); var vat_amount = parseFloat(document.getElementById('vat_amount').value); grand_total = subtotal + vat_amount; document.getElementById('grand_total').value = grand_total.toFixed(2); } function checkForm() { var error_flag = 0; var toCheck=new Array("address_line_1","address_line_2","town","postcode","daytime_phone","email_address","date_order_required"); if(!document.getElementById('customer_name').value.length && !document.getElementById('club_society_name').value.length) { error_flag = 1; document.getElementById('customer_name').style.background = 'red'; document.getElementById('club_society_name').style.background = 'red'; } else { document.getElementById('customer_name').style.background = 'white'; document.getElementById('club_society_name').style.background = 'white'; } for(var i=0;i