// JavaScript Document

var maxItems = 16;
var qtyPrefix = "qty";
var pricePrefix = "price";
var totalPrefix = "total";

// update total for specified item
function updateTotal(pid)
{
	var qty = document.getElementById(qtyPrefix + pid).value;
	// make sure qty is a numeric value;	
	var price = document.getElementById(pricePrefix + pid).value;
	//make sure price is numeric value
	
	var newTotal
	if (IsNumber(qty)){	
		newTotal = Number(qty) * Number(price);
	}else{
		newTotal = 0;
	}
	
	document.getElementById(totalPrefix + pid).value = newTotal;
	
	//now update the grand total
	updateGrandTotal();
}

// update the grand total
function updateGrandTotal(){	
	var grandTotal = new Number(0);
	
	for (i=1; i<maxItems+1; i++){
		var newTotal = document.getElementById(totalPrefix + i).value;
		grandTotal = Number(newTotal) + Number(grandTotal);
	}
	
	document.getElementById("grandtotal").value = grandTotal;
}

// check if value is a number
function IsNumber(val){
	return (!isNaN(Number(val)));
}

function submitClick(thisForm){
	if (ValidateForm(thisForm)){
		//set default user values
		var fullname = document.getElementById("firstname").value + " " + document.getElementById("lastname").value;
		var address = document.getElementById("address1").value + "\n" + document.getElementById("address2").value
		document.getElementById("fullname").value = fullname;
		document.getElementById("fulladdress").value = address;
		
		/*for (i=1; i<maxItems+1; i++){
			document.getElementById(qtyPrefix + i).disabled = true;
		}*/
		
		return true;
	}
	else{
		return false;
	}
}

function emailValid(email){
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	return reg.test(email);		
}

// check and validate all form fields
function ValidateForm(thisForm){
	var error = '';
	var grandTotal = document.getElementById("grandtotal").value;
	var terms = document.getElementById("acceptterms").checked;
	
	if (terms){
		if (grandTotal == 0){
			error = "Please select atleast one item";
		}
		else{
			error += (document.getElementById("firstname").value == '') ? '- First name is required\n' : '';
			error += (document.getElementById("lastname").value == '') ? '- Last name is required\n' : '';
			error += (document.getElementById("telephone").value == '') ? '- Telephone number is required\n' : '';
			error += (document.getElementById("address1").value == '') ? '- Address is required\n' : '';
			error += (document.getElementById("towncity").value == '') ? '- Town/City is required\n' : '';
			error += (document.getElementById("postcode").value == '') ? '- Post code is required\n' : '';	
			error += (document.getElementById("country").value == '') ? '- Country is required\n' : '';							
			
			var emailAddress = document.getElementById("emailaddress").value;
			if (emailAddress == ''){
				error += '- Email address is required\n';
			}else{
				if (!emailValid(emailAddress)){
					error += "- Email address is invalid";					
				}
				if (emailAddress != document.getElementById("confirmemail").value){
					error += "- Email addresses don't match";
				}
			}				
		}
	}
	else{
		error += "You must agree to our terms and conditions";
	}
	
	if (error != ''){
		alert(error);
		return false;
	}
	else{
		return true;
	}
}

