

minprice=388;

	
Event.observe(window, 'load', function() {	// disable payment column
	var form = $('buy');
	var pl = form.select('.subtotal input');
	for (var i = 0; i < pl.length; i++) {
		pl[i].hide();
		Form.disable(pl[i]);
	}
	
	
	if ($('buy_deliveryAddressSamefalse').checked){
		showDeliveryDetails();
	}
	else{
		hideDeliveryDetails();
	}
	prices['buy_hmvOnline_2'] = $('buy_hmvOnlineVoucherOtherValue').value;
	obj=$('buy_hmvInstore_0__quantity');
	obj2=$('buy_waterstonesInstore_0__quantity');
	obj3=$('buy_hmvOnline_0__quantity');
	
	
	var ml = $$('input');
	var len = ml.length;
	for (var i = 0; i < len; i++) {
		loadcalculations(ml[i]);
	}
	
});

Event.observe('buy_hmvOnlineVoucherOtherValue', 'change', function() {	// disable payment column
	prices['buy_hmvOnline_2'] = $('buy_hmvOnlineVoucherOtherValue').value;
});



$('buy_deliveryAddressSamefalse').observe('click', showDeliveryDetails);
$('buy_deliveryAddressSametrue').observe('click', hideDeliveryDetails);

function showDeliveryDetails(event) {
 $('deliverydetails').show();
}
function hideDeliveryDetails(event) {
 $('deliverydetails').hide();
}
function loadcalculations(obj) {
		
		var pl = obj.id;

		
		var nmb = pl.split('_');
		var nme = nmb[0] + "_" + nmb[1] // name identifier
		var nmb = nmb[2];	// numerical identifier
		
		var ul = 0;	// total number of potential input fields with the same name identifier
		var ch = $('buy').select('[class="quantity"]');
		var re = new RegExp(nme); 
		for (i = 0; i < ch.length; i++) {
			if (re.test(ch[i].innerHTML)) {
				ul++;
				
			}
		}
		if (/(quantity)$/i.test(pl)) {	// check only quantity fields, ignore all others
			//console.log('chkmlply');
			chkmlply(obj, nme, nmb);
			//console.log('turnondiscount');
			turnondiscount(nme, nmb, ul);
			//console.log('updatetotalcost');
			updatetotalcost();
		}
		
} 





$$('input').invoke('observe', 'change',function(event) {
		
		var pl = this.id;
		
		var nmb = pl.split('_');
		var nme = nmb[0] + "_" + nmb[1] // name identifier
		var nmb = nmb[2];	// numerical identifier
		
		var ul = 0;	// total number of potential input fields with the same name identifier
		var ch = $('buy').select('[class="quantity"]');
		var re = new RegExp(nme); 
		for (i = 0; i < ch.length; i++) {
			if (re.test(ch[i].innerHTML)) {
				ul++;	
			}
		}
	
		var nextdiv=this.ancestors()[0].siblings()[0];
		if (nextdiv.hasClassName('wwerr')){
			if((this.id=='buy_smallprint' && this.checked==true) || (this.value!="" )){
				nextdiv.removeClassName('wwerr');
				nextdiv.addClassName('wwcorrect');
			}
			
		}
		
		if (nextdiv.hasClassName('wwcorrect')){
			if((this.id=='buy_smallprint' && this.checked==false) || (this.value=="")){
				nextdiv.removeClassName('wwcorrect');
				nextdiv.addClassName('wwerr');
			}
			
		}
	
	
		if (pl=='buy_hmvOnlineVoucherOtherValue'){
			if(isNaN(this.value) || this.value<0){
				alert('You must enter a number');
				this.value="0";	
			}
			var obj=$('buy_hmvOnline_2__quantity');
			loadcalculations(obj);
			
		}
			
		if (/(quantity)$/i.test(pl) ) {	// check only quantity fields, ignore all others
			
			if(isNaN(this.value) || this.value<0){
				alert('You must enter a number');
				this.value="0";	
			}
			chkmlply(this, nme, nmb);
			turnondiscount(nme, nmb, ul);
			updatetotalcost();
			
		}
		
		if ((sumprice['buy_hmvInstore'] < minprice) &&(sumprice['buy_waterstonesInstore'] < minprice) &&(sumprice['buy_hmvOnline'] < minprice)){
			$('min-warning').update("Our minimum order value is &pound;400 and must total &pound;400 of either hmv or Waterstone's paper vouchers or &pound;400 or more of e-vouchers.");
		}
		else{
			$('min-warning').update("");
		}
		
	} 



);	// listen for changes made to input fields within form

function updatetotalcost() {
	
	var discount = sumdiscount['buy_hmvInstore'];
	discount = discount + sumdiscount['buy_waterstonesInstore'];
	discount = discount + sumdiscount['buy_hmvOnline'];
	$('saving').innerHTML = "&pound; " + discount.toFixed(2);
	
	var pl = sumprice['buy_hmvInstore'];
	pl = pl + sumprice['buy_waterstonesInstore'];
	pl = pl + sumprice['buy_hmvOnline'];
	$('summation').innerHTML = "&pound; " + pl.toFixed(2);
	return pl;
}

function turnondiscount(nme, nmb, ul) {
	// calculation 
	xl = 0;
	for (i = 0; i < ul; i++) {	// loop through all quantities to get total cost
		pl = gettotalcost($(nme + "_" + i + "__quantity"), nme, i);
		xl = xl + pl;
	}
	
	dsc = discounttable(xl);
	pl = xl * (dsc/100);
	$(nme).innerHTML = "<div class='disc-ammount'>&pound;" + (xl-pl).toFixed(2) + "</div><div class='disc-percentage'>Discount @ " + dsc + "%*</div> ";	// discount
	// show discount
	if ($(nme).className == "discount hde") {
		$(nme).className = "discount shw";
	}
	sumprice[nme] = xl - pl;	// update total price
	sumdiscount[nme]= pl
}
function chkmlply(pl, nme, nmb) {

	totalcost = gettotalcost(pl, nme, nmb);
	
	subtotal = $(nme + "_" + nmb + "__subtotal");

	if (subtotal) {
		subtotal.value = totalcost;
		
		subt=subtotal.siblings()[0];
		if (totalcost > 0){
			subt.update("&pound; " + totalcost);
		}
		else{
			subt.update("");
		}

	}
}

function gettotalcost(pl, nme, nmb) {
	if (prices[nme + "_" + nmb]) {
		cost = prices[nme + "_" + nmb];
		
	} else {
		cost = 0;
	}
	totalcost = cost * pl.value;
	
	return totalcost;
}
function discounttable(xl) {
	// decide what type of discount to give
	dsc = 0;
	if (xl > 399 && xl < 1001) {
		dsc = 3;
	} else if (xl > 1000 && xl < 5001) {
		dsc = 5;
	} else if (xl > 5000 && xl < 10001) {
		dsc = 7;
	} else if (xl > 10000 && xl < 25001) {
		dsc = 8;
	} else if (xl > 25000 && xl < 50001) {
		dsc = 9;
	} else if (xl > 50000 ) {
		dsc = 10;	
	} else {
		dsc = 0;
	}
	return dsc;

}
function validate_form(pl, event) {
	var vl = updatetotalcost();
	var chk = "";
	var chknm = 0;
	// check voucher amounts
	

if ((sumprice['buy_hmvInstore'] < minprice) &&(sumprice['buy_waterstonesInstore'] < minprice) &&(sumprice['buy_hmvOnline'] < minprice)){
	chknm++;
	$('min-warning').update("Our minimum order value is &pound;400 and must total &pound;400 of either hmv or Waterstone's paper vouchers or &pound;400 or more of e-vouchers.");	
	chk = "Our minimum order value is 400 pounds and must total 400 pounds of either hmv or Waterstone's paper vouchers or 400 pounds or more of e-vouchers.";
}


var er = $$('div.wwerr');
	var len = er.length;
	for (var i = 0; i < len; i++) {
		er[i].remove();
	}
	
var correct = $$('div.wwcorrect');
	var len = correct.length;
	for (var i = 0; i < len; i++) {
		correct[i].remove();
	}	
	// check 'your details'
	var yd = new Array();
	if ($('buy_yourDetails_companyName').value == "") {
		chknm++;
		//$('wwgrp_buy_yourDetails_companyName').className = "wwgrp err";
		$('wwgrp_buy_yourDetails_companyName').insert({top:'<div id="wwerr_buy_deliveryDetails_companyName" class="wwerr"><div class="errorMessage">Please enter company name</div></div>'});
	}
	if ($('buy_yourDetails_initials').value == "") {
		chknm++;
		//$('wwgrp_buy_yourDetails_initials').className = "wwgrp err";
		$('wwgrp_buy_yourDetails_initials').insert({top:'<div id="wwerr_buy_yourDetails_initials" class="wwerr"><div class="errorMessage">Please enter initials</div></div>'});
	}
	if ($('buy_yourDetails_surname').value == "") {
		chknm++;
		//$('wwgrp_buy_yourDetails_surname').className = "wwgrp err";
		$('wwgrp_buy_yourDetails_surname').insert({top:'<div id="wwerr_buy_yourDetails_surname" class="wwerr"><div class="errorMessage">Please enter surname </div></div>'});
	}
	if ($('buy_yourDetails_address').value == "") {
		chknm++;
		//$('wwgrp_buy_yourDetails_address').className = "wwgrp err";
		$('wwgrp_buy_yourDetails_address').insert({top:'<div id="wwerr_buy_yourDetails_address" class="wwerr"><div class="errorMessage">Please enter address </div></div>'});
	}
	if ($('buy_yourDetails_postcode').value == "") {
		chknm++;
		//$('wwgrp_buy_yourDetails_postcode').className = "wwgrp err";
		$('wwgrp_buy_yourDetails_postcode').insert({top:'<div id="wwerr_buy_yourDetails_postcode" class="wwerr"><div class="errorMessage">Please enter postcode </div></div>'});
	}
	if ($('buy_yourDetails_telephone').value == "") {
		chknm++;
		//$('wwgrp_buy_yourDetails_telephone').className = "wwgrp err";
		$('wwgrp_buy_yourDetails_telephone').insert({top:'<div id="wwerr_buy_yourDetails_telephone" class="wwerr"><div class="errorMessage">Please enter telephone </div></div>'});
	}
	if ($('buy_yourDetails_email').value == "") {
		chknm++;
		//$('wwgrp_buy_yourDetails_email').className = "wwgrp err";
		$('wwgrp_buy_yourDetails_email').insert({top:'<div id="wwerr_buy_yourDetails_email" class="wwerr"><div class="errorMessage">Please enter email</div></div>'});
	}
	
	if ($('buy_deliveryAddressSametrue').checked == false) {
		
		if ($('buy_deliveryDetails_companyName').value == "") {
			chknm++;
			//$('wwgrp_buy_deliveryDetails_companyName').className = "wwgrp err";
			$('wwgrp_buy_deliveryDetails_companyName').insert({top:'<div id="wwerr_buy_deliveryDetails_companyName" class="wwerr"><div class="errorMessage">Please enter company name</div></div>'});
		}
		if ($('buy_deliveryDetails_initials').value == "") {
			chknm++;
			//$('wwgrp_buy_deliveryDetails_initials').className = "wwgrp err";
			$('wwgrp_buy_deliveryDetails_initials').insert({top:'<div id="wwerr_buy_deliveryDetails_initials" class="wwerr"><div class="errorMessage">Please enter initials</div></div>'});
		}
		if ($('buy_deliveryDetails_surname').value == "") {
			chknm++;
			//$('wwgrp_buy_deliveryDetails_surname').className = "wwgrp err";
			$('wwgrp_buy_deliveryDetails_surname').insert({top:'<div id="wwerr_buy_deliveryDetails_surname" class="wwerr"><div class="errorMessage">Please enter surname </div></div>'});
		}
		if ($('buy_deliveryDetails_address').value == "") {
			chknm++;
			//$('wwgrp_buy_deliveryDetails_address').className = "wwgrp err";
			$('wwgrp_buy_deliveryDetails_address').insert({top:'<div id="wwerr_buy_deliveryDetails_address" class="wwerr"><div class="errorMessage">Please enter address </div></div>'});
		}
		if ($('buy_deliveryDetails_postcode').value == "") {
			chknm++;
			//$('wwgrp_buy_deliveryDetails_postcode').className = "wwgrp err";
			$('wwgrp_buy_deliveryDetails_postcode').insert({top:'<div id="wwerr_buy_deliveryDetails_postcode" class="wwerr"><div class="errorMessage">Please enter postcode </div></div>'});
		}
		if ($('buy_deliveryDetails_telephone').value == "") {
			chknm++;
			//$('wwgrp_buy_deliveryDetails_telephone').className = "wwgrp err";
			$('wwgrp_buy_deliveryDetails_telephone').insert({top:'<div id="wwerr_buy_deliveryDetails_telephone" class="wwerr"><div class="errorMessage">Please enter telephone </div></div>'});
		}
		if ($('buy_deliveryDetails_email').value == "") {
			chknm++;
			//$('wwgrp_buy_deliveryDetails_email').className = "wwgrp err";
			$('wwgrp_buy_deliveryDetails_email').insert({top:'<div id="wwerr_buy_deliveryDetails_email" class="wwerr"><div class="errorMessage">Please enter email</div></div>'});
		}
		
	}
	
	if ($('buy_smallprint').checked==false){
		chknm++;
		
		//$('wwgrp_buy_smallprint').className = "wwgrp err-checkbox";
		$('wwgrp_buy_smallprint').insert({top:'<div id="wwerr_buy_smallprint" class="wwerr"><div class="errorMessage" errorfor="buy_smallprint"> You must read and agree to the small print </div></div>'});
	}
	
	if (chknm > 0) {
		
		if (chk!=""){
			alert(chk);
		}
		
		
		return false;
		
	} else {
		
		return true;
	}
}


Event.observe('print-button', 'click', function(event){
	window.print();
	event.stop();
});


Event.observe('order-button', 'click', function(event){
	
	buyform=$('buyform');
	if (!validate_form(buyform)){
		event.stop();	
	}
});

