function bookNow() {
	var form = window.document.pretty;
	if (calcShcool(0) > 0) {
		form.outpostshop_action.value = "BookClasses";
		form.submit();
	}
}

function bookingDetails() {
	var form = window.document.outpostShowBasket;
	for (i=0; i < form.people_count.value; i++) {
		if (form.elements["class_firstname_" + i].value == "" ||
			form.elements["class_surname_" + i].value == "") {
			
			alert("Please complete all name fields.");
			return;
		}
	} 
	form.outpostshop_action.value = "ClassCheckout";
	form.submit();
}

function calcShcool(index) {
	var form = window.document.pretty;
	var rows = form.sys_row_count.value;
	var totalQty = 0;
	var totalValue = 0;

	
	for (i = 0; i <= rows; i++) {

		quantity =  parseInt(form.elements['sys_quantity_' + i].value);
		
		if (quantity >= 1) {
			var soldout = form.elements['soldout_' + i].value;
			if (soldout == "Y") {
				alert("Sorry, this class is now sold out. You can choose another date or class, or join our waiting list (please see Waiting list heading on this page).");
				form.elements['sys_quantity_' + i].value = "";
				form.elements['sys_quantity_' + i].focus();
				return;
			}
			
			var limit =  parseInt(form.elements['limit_' + i].value);
			var quantity =  parseInt(form.elements['sys_quantity_' + i].value);
			if (limit - quantity < 0) {
				alert("Sorry, there are not enough places left to accept this booking. You can choose another date or class, or join our waiting list (please see Waiting list heading on this page).");
				form.elements['sys_quantity_' + i].value = "";
				form.elements['sys_quantity_' + i].focus();
				return;
			}
		}

		var value = 0;
		var price = form.elements['price_' + i].value;
		limit =  parseInt(form.elements['limit_' + i].value);
		
		if (!isNaN(quantity)) totalQty = totalQty + quantity;
		if (!isNaN(quantity)) totalValue = totalValue + (price * quantity);
		if (!isNaN(quantity)) value = price * quantity;
		
		if (value > 0) form.elements['sys_price_' + i].value = num_format(value, 2);
		else form.elements['sys_price_' + i].value = "";
	} 
	form.elements['frm_total'].value = num_format(totalValue, 2);
	return totalQty;
}


function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported)
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

function validateObject(control) {
	control.style.backgroundColor = '#ffffff';
	if (control.value == '') {
		control.style.backgroundColor = '#ce7b6b';
		control.focus();
		confirm("Please fill in all mandatory fields, which are highlighted in red.");
		return false;
	}
    return true;
}


function trim(object) {
	value = object.value;
	object.value=value;
}

function saveCustomer() {       
	var form = window.document.manage;
	form.action.value= 'done';
	if (validate('shop')) form.submit();
}

function validate(action) {

	var form = window.document.manage;

	if (!validateObject(form.first_name)) return false;
	if (!validateObject(form.surname)) return false;
	if (!validateObject(form.address_1)) return false;
	if (!validateObject(form.telephone)) return false;
	
	form.email.style.backgroundColor = '#ffffff';
	if (!validateObject(form.email) || !isEmail(form.email.value)) {
		form.email.style.backgroundColor = '#ce7b6b';
		form.email.focus();
		confirm("Please enter a valid email address.");
		return false;
	}

	if (action != 'register' && action != 'register_complete') {
		if (!validateObject(form.card_number)) return false;
		if (!validateObject(form.expiry_date)) return false;
	}
            
	return true;
}

function frmDel(form, order_id, product_id, style, colour, category, sub_category) {
    var form = window.document.forms[form];
    if (confirm("Are you sure you want to delete this product from your order.")) {
		ajaxDeleteBasketItem({sys_order_id: order_id, sys_item_id: product_id, sys_style: style, sys_colour: colour, sys_category: category, sys_sub_category: sub_category});
		form.outpostshop_action.value = "showBasket";
		form.submit();
	}
}

function delClass(form, order_id, product_id, style, colour, category, sub_category) {
    var form = window.document.forms[form];
    if (confirm("Are you sure you want to delete this product from your order.")) {
		ajaxDeleteBasketItem({sys_order_id: order_id, sys_item_id: product_id, sys_style: style, sys_colour: colour, sys_category: category, sys_sub_category: sub_category});
		form.category.value = "Cooking School";
		form.sub_category.value = "Classes";
		form.title.value = "";
		form.outpostshop_action.value = "showBasket";
		form.submit();
	}
}


function listChanged(object) {
    var form = window.document.manage;
	
	if (object.name == 'month_list' || object.name == 'year_list') {
		form.expiry_date.value = form.month_list.options[form.month_list.selectedIndex].text + '/' +  form.year_list.options[form.year_list.selectedIndex].text ;
	}
	else if (object.name == 'delivery_country') {
		form.submit();
	}
	else  {
		form.outpostshop_action.value= 'changed';
		form.submit();
	}
}

function buyProduct() {       
    var totalQty = 0;
    var form = window.document.manage;
    
    start = 0;
    end = parseInt(form.elements['sys_product_row_count'].value);
    
    for(i=start; i <= end; i++) {
		quote_quantity = 'quantity_'  + String(i);
		var quantity = parseInt(form.elements[quote_quantity].value);
		if (!isNaN(quantity)) totalQty = totalQty + quantity;
    }
    if (totalQty <= 0)
		alert("You have not selected any products.");
    else {
		form.outpostshop_action.value= 'buy';
		form.submit();
    }
}

function purchaseBasket(action) {     
	var form = window.document.manage_del;
	form.outpostshop_action.value= 'complete';
	form.submit();
}

function cancelDel() {       
	var form = window.document.manage_del;
	form.outpostshop_action.value= 'cancel';
	form.submit();
}

function cancel() {       
	var form = window.document.manage;
	form.outpostshop_action.value= 'cancel';
	form.submit();
}
