window.onload = init;
window.onscroll = update_position;

function init() {
	if (document.order.process_me)
		document.order.process_me.value = 'no';
	
	if ($('scroll'))
		document.body.scrollTop = $('scroll').value;

	if ($('s3'))
		$('s3').style.display = 'none';

	if ($('shipping_details'))
		$('shipping_details').style.display = ($('shipping_check').checked ? 'none' : 'block');
		
	if ($('shipping_update'))
		$('shipping_update').style.display = 'none';

	if ($('gift_details') && $('gift_check'))
		$('gift_details').style.display = ($('gift_check').checked ? 'block' : 'none');
		
	if ($('in_my_area') && $('interest_check'))
		$('in_my_area').style.display = ($('interest_check').checked ? 'block' : 'none');
}

function update_position() {
	if ($('scroll'))
		$('scroll').value = document.body.scrollTop;
}

function update_shipping() {
	var rows = $$('#order tr');
	var tds, qty;
	var book_count = 0, dvd_count = 0, subtotal = 0, bk_total = 0;
	var f_spc = 0;
	
	for (i = 1; i < rows.length-1; i++) {
		tds = rows[i].getElementsByTagName('td')
		qty = tds[0].getElementsByTagName('input');
		
		// Full sets contain 9 books
		if (-1 != qty[0].name.indexOf('FSET')) {
			book_count += 9 * parseInt(qty[0].value);
		
		// Gift pack A has 5 books
		} else if (-1 != qty[0].name.indexOf('05B1')) {
			book_count += 5 * parseInt(qty[0].value);
			f_spc = f_spc || Number(qty[0].value) != 0;

		// Gift pack B has 13 books
		} else if (-1 != qty[0].name.indexOf('13B1')) {
			book_count += 13 * parseInt(qty[0].value);
			f_spc = f_spc || Number(qty[0].value) != 0;

		// Otherwise single book
		} else if (-1 != qty[0].name.indexOf('BK')){
			book_count += parseInt(qty[0].value);
		
		// Single DVD
		} else if (-1 != qty[0].name.indexOf('DVD')){
			dvd_count += parseInt(qty[0].value);
		
		// Full set of the 4 DVDs 
		} else if (-1 != qty[0].name.indexOf('D4PK')){
			dvd_count += 4 * parseInt(qty[0].value);
		
		// Full set of the 6 DVDs 
		} else if (-1 != qty[0].name.indexOf('D6PK')){
			dvd_count += 6 * parseInt(qty[0].value);
		}
		
		subtotal = (qty[0].value * Number(tds[2].innerHTML.substr(1))).toFixed(2);
		bk_total += Number(subtotal);
		
		tds[3].innerHTML = '$' + subtotal;
	}
	
	var prefix = ($('shipping_check').checked ? 'billing_' : 'shipping_');
	var f_country = $F(prefix + 'country');
	var f_zip = $F(prefix + 'zip');
	var f_method = $F('shipping_method');
	var f_coupon = $F('coupon');

	new Ajax.Request('/shipping/', {
		method: 'post',
		parameters: {ajax: 'yes', count: book_count, d_count: dvd_count, country: f_country, zip: f_zip, method: f_method, coupon: f_coupon, spc: f_spc},
		onComplete: function(transport) {
			var result = transport.responseText.evalJSON();
		
			$('shipping_total').update('$' + result.shipping_total.toFixed(2));
			$('total').update('$' + (bk_total + result.shipping_total).toFixed(2));

			var methods = '';

			Object.values(result.shipping_methods).each(function(s) {
				methods += '<option value="' + s.id + '"' + (s.id == result.method ? 'selected="selected"' : '') + '>' + s.carrier + '</option>\n'; 
			});

			$('shipping_method').update(methods);
		}
	});
		
	if (book_count >= 0 && dvd_count >= 0) {
		$('book_total').innerHTML = '$' + bk_total.toFixed(2);
	}
}

function checkForInt(evt) {
	evt = ( evt ) ? evt : window.event;
	var charCode = ( evt.which ) ? evt.which : evt.keyCode;
	return (charCode <= 32 || (charCode >= 48 && charCode <= 57) || charCode == 45)
}

function disable_stuff() {
	if ($('s1'))
		$('s1').disabled = true;
	if ($('s2'))
		$('s2').disabled = true;
	if ($('s3'))
		$('s3').disabled = true;
	if ($('s4'))
		$('s4').disabled = true;
	if ($('s2'))
		$('s2').value = 'Processing...';
	
	document.order.process_me.value = 'yes';
	document.order.submit();
}