
function num_format(expr, decplaces) {
	var str = ' ' + Math.round(eval(expr) * Math.pow(10, decplaces));
	while (str.length <= decplaces) {
		str = '0' + str;
	}
	var decpoint = str.length - decplaces;
	return '$' + str.substring(1, decpoint) + '.' + str.substring(decpoint,str.length);
}

function calc(object, row) {
	var total = 0.0;
	var line_total = 0.0;
	var stringValue = '';
	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);
                quote_limit = 'limit_' +  String(i);
                soldout = 'soldout_' +  String(i);
                quote_price = 'price_' +  String(i);
                        
                quote_value = 'value_' + String(i);
                quote_discount = 'discount_' +  String(i);
                var value = 'txt_value_' + String(i);
                if (form.elements[quote_quantity].value != '') {
                    if (parseInt(form.elements[quote_quantity].value) >= 0) {
                    
                        var limit = parseInt(form.elements[quote_limit].value);
                        var quantity = parseInt(form.elements[quote_quantity].value);
                        if ((form.elements[quote_limit].value == '' || 
                            limit >= quantity || limit == 0 ) &&
                            form.elements[soldout].value != 'Y') {
                            
                            var price = parseFloat(form.elements[quote_price].value);
                            var discount = parseFloat(form.elements[quote_discount].value);
                                        
                            line_total = (price - discount) * quantity;
                            form.elements[quote_value].value = line_total;	
                            fmt = '$' + line_total;
                            
                            form.elements[value].value = num_format(line_total, 2);
                            total = total + line_total;
                        }
                    }
                }
                else {
                    form.elements[quote_value].value = 0.0;	
                    fmt = '$' + 0;
                    form.elements[value].value = fmt;
                }
        }

	if (total > 0) 
            form.elements['total'].value = num_format(total, 2);
	else
            form.elements['total'].value = '$0.0';
}
 


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.address_2)) 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(product_id, style) {
    var form = window.document.manage_del;
    form.product_id.value  = product_id;



    form.style.value = style;

    if (confirm("Are you sure you want to delete this product from your order.")) 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.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.action.value= 'buy';
	form.submit();
    }
}

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

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

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