// JavaScript Document

function updatePremium(form)
{
	var premium = 0;
	var basePrice = parseFloat(form.prod_price.value);
	var elem = form.elements;
	for(var i=0;i<elem.length;i++)
	{
		if(elem[i].type == "select-one")
		{
			var tmpOption = elem[i].value;
			if(tmpOption.search("::") >= 0)
			{
				var aTmp = tmpOption.split("::");
				var tmpPremium = parseFloat(aTmp[1]);
				premium = premium + tmpPremium;
			}
		}
	}
	var totalPrice = basePrice + premium;
	form.prod_premium.value = premium;
	totalPrice = totalPrice.toFixed(2);
	var strText = "£" + totalPrice;
	
	var newEm = document.createElement("em");
	var newText = document.createTextNode(strText);
	newEm.appendChild(newText);
	
	var objContainer = document.getElementById("purchaseSummary");
	var oldEm = document.getElementsByTagName("em").item(0);
	var replaced = objContainer.replaceChild(newEm,oldEm);
}

function validate_product(form)
{
	for(var i = 0; i < form.elements.length; i++)
	{
		if(form.elements[i].type == "select-one")
		{
			if(form.elements[i].value == "0")
			{
				var attr_name = form.elements[i].name;
				attr_name = attr_name.replace("attr_","");
				attr_name = attr_name.replace(/_/g," ");
				alert("Please select a " + attr_name);
				form.elements[i].focus();
				return false;
			}
		}
		else if(form.elements[i].name == "qty")
		{
			if(!isNumeric(form.elements[i].value))
			{
				alert("Please enter a valid quantity");
				form.elements[i].focus();
				return false;
			}
			else if(parseInt(form.elements[i].value) > parseInt(form.prod_stock.value))
			{
				var msg = "There are only " + form.prod_stock.value + " units available. Please reduce the quantity.";
				alert(msg);
				form.elements[i].focus();
				return false;
			}
		}
	}
	return true;
}

function update_qty(form)
{
	if(validate_basket(form) == true)
	{
		form.submit();
	}
}

function validate_basket(form)
{
	var return_value = true;
	var prod_count = form.prod_count.value;
	var error_index = 0;
	for(var i=1;i<=prod_count;i++)
	{
		var tmp_field = "qty_" + i;
		var tmp_value = document.getElementById(tmp_field).value;
		if(!isNumeric(tmp_value) || parseInt(tmp_value,10) < 1)
		{
			return_value = false;
			error_index = i;
			break;
		}
	}
	if(return_value == false)
	{
		alert("Please ensure that all quantities are whole numbers");
		var tmp_field = "qty_" + error_index;
		document.getElementById(tmp_field).focus();
	}
	return return_value;
}

function isNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

   if(sText.length > 0)
   {
	   for (i = 0; i < sText.length && IsNumber == true; i++) 
		  { 
		  Char = sText.charAt(i); 
		  if (ValidChars.indexOf(Char) == -1) 
			 {
			 IsNumber = false;
			 }
		  }
   }
   else
   {
	   IsNumber = false;
   }
   return IsNumber;
   
}

function submit_login(form)
{
	if(validate_login(form) == true)
	{
		form.submit();
	}
}

function validate_login(form)
{
	var return_value = false;
	for(var i=0;i<form.lCusType.length;i++)
	{
		if(form.lCusType[i].checked == true)
		{
			var cusType = form.lCusType[i].value;
			break;
		}
	}
	if(form.lEmail.value == "")
	{
		alert("Please enter your email address");
		form.lEmail.focus();
	}
	else if(cusType == "Existing" && form.lPassword.value == "")
	{
		alert("Please enter your password");
		form.lPassword.focus();
	}
	else
	{
		return_value = true;
	}
	
	return return_value;
}

function submit_login(form)
{
	if(validate_login(form) == true)
	{
		form.submit();
	}
}

function validate_email(form)
{
	var return_value = false;
	if(form.lEmail.value == "")
	{
		alert("Please enter your email address");
		form.lEmail.focus();
	}
	else
	{
		return_value = true;
	}
	
	return return_value;
}

function submit_personal(form)
{
	if(validate_personal(form) == true)
	{
		form.submit();
	}
}

function validate_personal(form)
{
	var collection = false;
	if(form.collect.value == "Y")
	{
		if(form.collect.checked)
		{
			collection = true;
		}
	}
	
	if(collection)
	{
		var tmpAddr1 = "";
		var tmpTown = "";
		var tmpPostcode = "";
	}
	else
	{
		var tmpAddr1 = form.addr1.value;
		var tmpTown = form.town.value;
		var tmpPostcode = form.postcode.value;
	}
	
	var return_value = false;
	if(form.firstName.value == "")
	{
		alert("Please enter your first name");
		form.firstName.focus();
	}
	else if(form.lastName.value == "")
	{
		alert("Please enter your last name");
		form.lastName.focus();
	}
	else if(tmpAddr1 == "" && !collection)
	{
		alert("Please enter your address");
		form.addr1.focus();
	}
	else if(tmpTown == "" && !collection)
	{
		alert("Please enter your town");
		form.town.focus();
	}
	else if(tmpPostcode == "" && !collection)
	{
		alert("Please enter your postcode");
		form.postcode.focus();
	}
	else if(form.user_id.value == 0)
	{
		if(form.email.value == "")
		{
			alert("Please enter your email address");
			form.email.focus();
		}
		else if(form.email.value != form.email2.value)
		{
			alert("Your email addressess do not match");
			form.email.focus();
		}
		else if(form.password.value == "")
		{
			alert("Please enter a password");
			form.password.focus();
		}
		else if(form.password.value != form.password2.value)
		{
			alert("Your passwords do not match");
			form.password.focus();
		}	
		else
		{
			return_value = true;
		}
	}
	else
	{
		return_value = true;
	}
	
	return return_value;
}

function validate_registration(form)
{
	var return_value = false;
	var userId = parseInt(form.user_id.value);
	if(isNaN(userId))
	{
		userId = 0;
	}
	
	var termsChecked = true;
	var teamNameOK = true;
	if(userId == 0)
	{
		termsChecked = form.terms.checked;
		if(form.team_name.value == "" && form.user_team.checked == true)
		{
			teamNameOK = false;
		}
	}
	
	if(form.firstName.value == "")
	{
		alert("Please enter your first name");
		form.firstName.focus();
	}
	else if(form.lastName.value == "")
	{
		alert("Please enter your last name");
		form.lastName.focus();
	}
	else if(form.email.value == "")
	{
		alert("Please enter your email address");
		form.email.focus();
	}
	else if(form.password.value == "")
	{
		alert("Please enter a password");
		form.password.focus();
	}
	else if(form.password.value != form.password2.value)
	{
		alert("Your passwords do not match");
		form.password.focus();
	}
	else if(form.addr1.value == "")
	{
		alert("Please enter your address");
		form.addr1.focus();
	}
	else if(form.postcode.value == "")
	{
		alert("Please enter your postcode");
		form.postcode.focus();
	}
	else if(teamNameOK == false)
	{
		alert("Please enter your team name");
		form.team_name.focus();
	}
	else if(form.how_found.value == "" && form.user_id.value == 0)
	{
		alert("Please tell us how you found this website");
		form.how_found.focus();
	}
	else if(termsChecked == false)
	{
		alert('Please confirm that you have read and agree to our terms and conditions');
		form.terms.focus();
	}
	else
	{
		return_value = true;
	}
	
	return return_value;
}

function show_hide_delivery(doc)
{
	var cbx = doc.getElementById('use_billing');
	
	if (cbx.checked == false)
	{
		doc.getElementById('fsDeliveryDetails').style.display = 'block';
	}
	else
	{
		doc.getElementById('fsDeliveryDetails').style.display = 'none';
	}
}

function show_hide_team(doc)
{
	var cbx = doc.getElementById('user_team');
	
	if (cbx.checked == true)
	{
		doc.getElementById('spanTeamDetails').style.display = 'block';
	}
	else
	{
		doc.getElementById('spanTeamDetails').style.display = 'none';
	}
}

function submit_ch_billing(form)
{
	if(validate_ch_billing(form) == true)
	{
		form.submit();
	}
}

function validate_payment(form)
{
	var return_value = false;
	
	if(form.addr1.value == "")
	{
		alert("Please enter your address");
		form.addr1.focus();
	}
	else if(form.town.value == "")
	{
		alert("Please enter your town");
		form.town.focus();
	}
	else if(form.postcode.value == "")
	{
		alert("Please enter your postcode");
		form.postcode.focus();
	}
	else if(form.card_name.value == "")
	{
		alert("Please enter your name");
		form.card_name.focus();
	}
	else if(form.card_type.value == 0)
	{
		alert("Please select a card type");
		form.card_type.focus();
	}
	else if(cardval(form.card_number.value) == false)
	{
		alert("Please enter a valid card number");
		form.card_number.focus();
	}
	else if(form.end_month.value == 0)
	{
		alert("Please select an end date");
		form.end_month.focus();
	}
	else if(form.end_year.value == 0)
	{
		alert("Please select an end date");
		form.end_year.focus();
	}
	else if(form.card_security_code.value == "")
	{
		alert("Please enter your card security number");
		form.card_security_code.focus();
	}
	/*else if(form.terms_read.checked == false)
	{
		alert("Please confirm that you have read and agree to our terms and conditions");
		form.terms_read.focus();
	}*/
	else if(form.how_found.value == "")
	{
		alert("Please tell us how you found out about us");
		form.how_found.focus();
	}
	else
	{
		return_value = true;
	}
	
	//alert(return_value);
	//return false;
	return return_value;
}


function cardval(s) {
// remove non-numerics
var v = "0123456789";
var w = "";
for (i=0; i < s.length; i++) {
x = s.charAt(i);
if (v.indexOf(x,0) != -1)
w += x;
}
// validate number
j = w.length / 2;
if (j < 6.5 || j > 9 || j == 7) return false;
k = Math.floor(j);
m = Math.ceil(j) - k;
c = 0;
for (i=0; i<k; i++) {
a = w.charAt(i*2+m) * 2;
c += a > 9 ? Math.floor(a/10 + a%10) : a;
}
for (i=0; i<k+m; i++) c += w.charAt(i*2+1-m) * 1;
return (c%10 == 0);
}

function repeat_order(order_id)
{
	if(confirm("Are you sure? Any items currently in your basket will be removed"))
	{
		var strUrl = 'order_details.cfm?oid=' + order_id + '&REPEAT';
		window.location=strUrl;
	}
}

function validate_contact(form)
{
	var return_value = false;
	if(form.yourName.value == "")
	{
		alert("Please enter your name");
		form.yourName.focus();
	}
	else if(form.contactEmail.value == "")
	{
		alert("Please enter your email address");
		form.contactEmail.focus();
	}
	else if(form.yourComments.value == "")
	{
		alert("Please enter some comments");
		form.yourComments.focus();
	}
	else
	{
		return_value = true;
	}
	return return_value;
}

function openLargeImage(imgUrl)
{
	var features = "height=500,width=500,left=50,top=50,menubar=no,location=no,resizable=no,scrollbars=yes,status=no,toolbar=no";
	
	var new_win = window.open(imgUrl,"imgLArge",features);
}

// Global variable to store image details
var newImage = document.createElement("img");
function swapImage(filename)
{
	clearImage();
	newImage = document.createElement("img");
	var img_path = filename;
	newImage.setAttribute("src", img_path);
	newImage.setAttribute("onLoad", setTimeout("insertImage()",0));
}

function clearImage()
{
	//newImage = document.createElement("img");
	var holderDiv = document.getElementById('mainImageHolder');
	var oldImage = document.getElementById('mainImage');
	var removed = holderDiv.removeChild(oldImage);
}

function insertImage()
{
	var holderDiv = document.getElementById('mainImageHolder');
	var oldImage = document.getElementById('loadingImage');
	newImage.setAttribute("id", "mainImage");
	holderDiv.appendChild(newImage,oldImage);
}

function updateTotal(form)
{
	var premium = 0;
	var delVatRate = parseFloat(form.del_vat_rate.value);
	var delVatMultiplier = delVatRate / 100;
	var subTotal = parseFloat(form.sub_total.value);
	var prodVat = parseFloat(form.prod_vat.value);
	var vatTotal = parseFloat(form.vat_sub_total.value);
	var tmpShipping = form.shipping.value;
	var aShipping = tmpShipping.split("::");
	var shipping_desc = aShipping[0];
	var shipping = parseFloat(aShipping[1]);
	var delVat = Math.round(((shipping * delVatMultiplier) * 100)) / 100;
	vatTotal = prodVat + delVat;

	var grandTotal = subTotal + shipping + vatTotal;
	form.del_vat.value = delVat;
	form.vat_total.value = vatTotal;
	form.grand_total.value = grandTotal;
	strVatTotal = vatTotal.toFixed(2);
	strDisplayTotal = grandTotal.toFixed(2);
	var strText = "£" + strDisplayTotal;
	
	var newEm = document.createElement("em");
	var newText = document.createTextNode(strText);
	newEm.appendChild(newText);
	newEm.setAttribute("id","emTotal");
	
	var objContainer = document.getElementById("spanDisplayTotal");
	//var oldEm = document.getElementsByTagName("em").item(2);
	var oldEm = document.getElementsById("emTotal");
	var replaced = objContainer.replaceChild(newEm,oldEm);
	
	var strText2 = "£" + strVatTotal;
	
	var newEm2 = document.createElement("em");
	var newText2 = document.createTextNode(strText2);
	newEm2.appendChild(newText2);
	
	var objContainer2 = document.getElementById("spanVatTotal");
	var oldEm2 = document.getElementsByTagName("em").item(1);
	var replaced2 = objContainer2.replaceChild(newEm2,oldEm2);
}

function update_bill_addr()
{
	document.frm_payment_details.addr1.value = addr1;
	document.frm_payment_details.addr2.value = addr2;
	document.frm_payment_details.town.value = town;
	document.frm_payment_details.county.value = county;
	document.frm_payment_details.postcode.value = postcode;
}

function set_payment_form_status(form)
{
	if(form.card_type.value == "PAYPAL" || form.card_type.value == "")
	{
		form.card_name.disabled = true;
		form.card_number.disabled = true;
		form.start_month.disabled = true;
		form.start_year.disabled = true;
		form.end_month.disabled = true;
		form.end_year.disabled = true;
		form.card_issue_number.disabled = true;
		form.card_security_code.disabled = true;
		document.getElementById('spanCardDetails').style.display = 'none';
	}
	else
	{
		form.card_name.disabled = false;
		form.card_number.disabled = false;
		form.start_month.disabled = false;
		form.start_year.disabled = false;
		form.end_month.disabled = false;
		form.end_year.disabled = false;
		form.card_issue_number.disabled = false;
		form.card_security_code.disabled = false;
		document.getElementById('spanCardDetails').style.display = 'block';
	}
	
	if(form.card_type.value == "PAYPAL")
	{
		document.getElementById('spanPPInfo').style.display = 'block';
	}
	else
	{
		document.getElementById('spanPPInfo').style.display = 'none';
	}
}

function validate_payment_pp(form)
{
	var return_value = false;
	
	if(form.addr1.value == "")
	{
		alert("Please enter your address");
		form.addr1.focus();
	}
	else if(form.town.value == "")
	{
		alert("Please enter your town");
		form.town.focus();
	}
	else if(form.postcode.value == "")
	{
		alert("Please enter your postcode");
		form.postcode.focus();
	}
	else if(form.card_type.value == "")
	{
		alert("Please select a card type");
		form.card_type.focus();
	}
	else if(form.card_type.value != "PAYPAL")
	{
		if(form.card_name.value == "")
		{
			alert("Please enter your name");
			form.card_name.focus();
		}
		else if(cardval(form.card_number.value) == false)
		{
			alert("Please enter a valid card number");
			form.card_number.focus();
		}
		else if(form.end_month.value == 0)
		{
			alert("Please select an end date");
			form.end_month.focus();
		}
		else if(form.end_year.value == 0)
		{
			alert("Please select an end date");
			form.end_year.focus();
		}
		else if(form.card_security_code.value == "")
		{
			alert("Please enter your card security number");
			form.card_security_code.focus();
		}
		else
		{
			return_value = true;
		}
	}
	/*else if(form.terms_read.checked == false)
	{
		alert("Please confirm that you have read and agree to our terms and conditions");
		form.terms_read.focus();
	}*/
	else if(form.how_found.value == "")
	{
		alert("Please tell us how you found out about us");
		form.how_found.focus();
	}
	else
	{
		return_value = true;
	}
	
	//alert(return_value);
	//return false;
	return return_value;
}

function checkCollectStatus(form)
{
	if(form.collect.checked)
	{
		form.addr1.disabled = true;
		form.addr2.disabled = true;
		form.town.disabled = true;
		form.county.disabled = true;
		form.postcode.disabled = true;
		document.getElementById('spanAddress').style.display = 'none';
	}
	else
	{
		form.addr1.disabled = false;
		form.addr2.disabled = false;
		form.town.disabled = false;
		form.county.disabled = false;
		form.postcode.disabled = false;
		document.getElementById('spanAddress').style.display = 'block';
	}
}
