// Javascript document

function updateDropdowns(form)
{
	updateFinishes(form);
	updateFrames(form)
}

function updateFinishes(form)
{
	var aSize = form.size.value.split("::");
	if(aSize[0] > 0)
	{
		form.finish.options.length = 0;
		form.finish.options[0] = new Option("Not selected","0::0::None");
		var counter = 1;
		for(i=0;i<aFinishes.length;i++)
		{
			if(aFinishes[i][1] == aSize[0])
			{
				var strDesc = unescape(aFinishes[i][3]);
				if(aFinishes[i][2] > 0)
				{
					strDesc = strDesc + " (£" + aFinishes[i][2] + ")";
				}
				form.finish.options[counter] = new Option(strDesc,aFinishes[i][0] + "::" + aFinishes[i][2] + "::" + aFinishes[i][3]);
				counter++;
			}
		}
	}
	else
	{
		form.finish.options.length = 0;
		form.finish.options[0] = new Option("Choose a size first","0::0::Not selected");
	}
	updatePrice(form);
}

function updateFrames(form)
{
	var aSize = form.size.value.split("::");
	if(aSize[0] > 0)
	{
		form.frame.options.length = 0;
		form.frame.options[0] = new Option("No frame","0::0::None");
		var counter = 1;
		for(i=0;i<aFrames.length;i++)
		{
			if(aFrames[i][1] == aSize[0])
			{
				form.frame.options[counter] = new Option(unescape(aFrames[i][3]) + " (£" + aFrames[i][2] + ")",aFrames[i][0] + "::" + aFrames[i][2] + "::" + aFrames[i][3]);
				counter++;
			}
		}
	}
	else
	{
		form.frame.options.length = 0;
		form.frame.options[0] = new Option("Choose a size first","0::0::None");
	}
	updatePrice(form);
}

function updatePrice(form)
{
	var aSize = form.size.value.split("::");
	var aFinish = form.finish.value.split("::");
	var aFrame = form.frame.value.split("::");
	var quantity = parseInt(form.quantity.value);
	
	var price = parseFloat(aSize[1]) + parseFloat(aFinish[1]) + parseFloat(aFrame[1]);
	form.pPrice.value = price;
	if(quantity == parseInt(quantity))
	{
		price = price * quantity;
		price = price.toFixed(2);
		var strText = "£" + price;
		
		var newSpan = document.createElement("span");
		newSpan.setAttribute("id","displayPrice");
		var newText = document.createTextNode(strText);
		newSpan.appendChild(newText);
		
		var objContainer = document.getElementById("priceContainer");
		var oldSpan = document.getElementById("displayPrice");
		var replaced = objContainer.replaceChild(newSpan,oldSpan);
	}
}

function submit_image(form)
{
	if(validate_image(form) == true)
	{
		form.submit();
	}
}

function validate_image(form)
{
	var return_value = false;
	var aSize = form.size.value.split("::");
	var aFinish = form.finish.value.split("::");
	var quantity = form.quantity.value;
	
	if(aSize[0] == 0)
	{
		alert("Please select a size");
		form.size.focus();
	}
	else if(aFinish[0] == 0)
	{
		alert("Please select a finish");
		form.finish.focus();
	}
	else if(quantity != parseInt(quantity))
	{
		alert("Please enter a valid quantity");
		form.quantity.focus();
	}
	else
	{
		return_value = true;
	}
	return return_value;
}

function submit_personal(form)
{
	if(validate_personal(form) == true)
	{
		form.submit();
	}
}

function validate_personal(form)
{
	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(form.email.value == "")
	{
		alert("Please enter your Email Address");
		form.email.focus();
	}
	else if(form.phone.value == "")
	{
		alert("Please enter your telephone number");
		form.phone.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
	{
		return_value = true;
	}
	
	return return_value;
}

function submit_payment(form)
{
	if(validate_payment(form) == true)
	{
		form.submit();
	}
}

function validate_payment(form)
{
	var return_value = false;
	
	if(trim(form.ccHolder.value) == "")
	{
		alert("Please enter the card holder's name");
		form.ccHolder.focus();
	}
	else if(form.ccType.value == 0)
	{
		alert("Please select a card type");
		form.ccType.focus();
	}
	else if(cardval(form.ccNumber.value) == false)
	{
		alert("Please enter a valid card number");
		form.ccNumber.focus();
	}
	else if(form.ccEndMonth.value == 0)
	{
		alert("Please select an end date");
		form.ccEndMonth.focus();
	}
	else if(form.ccEndYear.value == 0)
	{
		alert("Please select an end date");
		form.ccEndYear.focus();
	}
	else if(trim(form.ccSecurity.value) == "")
	{
		alert("Please enter your card security number");
		form.ccSecurity.focus();
	}
	else if(form.termsRead.checked == false)
	{
		alert("Please confirm that you have read and agree to our terms and conditions");
		form.termsRead.focus();
	}
	else
	{
		return_value = true;
	}
	
	//alert(return_value);
	//return false;
	return return_value;
}

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()",500));
}

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 encodeMyHtml(inputData)
{
     var encodedHtml = escape(inputData);
     encodedHtml = encodedHtml.replace(/\//g,"%2F");
     encodedHtml = encodedHtml.replace(/\?/g,"%3F");
     encodedHtml = encodedHtml.replace(/=/g,"%3D");
     encodedHtml = encodedHtml.replace(/&/g,"%26");
     encodedHtml = encodedHtml.replace(/@/g,"%40");
     return encodedHtml;
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

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 validate_contact(form)
{
	var return_value = false;
	if(form.name.value == "")
	{
		alert("Please enter your name");
		form.name.focus();
	}
	else if(form.email.value == "" && form.phone.value == "")
	{
		alert("Please enter your email address or phone number");
		form.email.focus();
	}
	else
	{
		return_value = true;
	}
	
	return return_value;
}