///////////////////////////////////////////////
/// function to change any given section
///////////////////////////////////////////////
function change(str, str2)
{
	var xmlHttp = GetXmlHttpObject();
	var toChange = str;
	var element1;
	xmlHttp.open("GET", str2, true);
	xmlHttp.onreadystatechange=function()
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{ 
			element1 = document.getElementById(str);
			element1.innerHTML=xmlHttp.responseText;
		}
	}
	xmlHttp.send(null);
}

///////////////////////////////////////////////
/// function to change any given section by name
///////////////////////////////////////////////
function changeN(str, str2)
{
	var xmlHttp = GetXmlHttpObject();
	var toChange = str;
	var element1;
	xmlHttp.open("GET", str2, true);
	xmlHttp.onreadystatechange=function()
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
		{ 
			element1 = document.getElementByName(str);
			element1.innerHTML=xmlHttp.responseText;
		}
	}
	xmlHttp.send(null);
}

///////////////////////////////////////////////
/// function to select the correct xmlHttp style and allocate it
///////////////////////////////////////////////
function GetXmlHttpObject()
{ 
	var objXmlHttp=null;
	
	if (navigator.userAgent.indexOf("Opera")>=0)
	{
		alert("This example doesn't work in Opera");
		return;
	}
	
	if (navigator.userAgent.indexOf("MSIE")>=0)
	{ 
		var strName="Msxml2.XMLHTTP";
		
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
		{
			strName="Microsoft.XMLHTTP";
			objXmlHttp=new XMLHttpRequest();
			return objXmlHttp;
		} 
		try
		{
			objXmlHttp=new ActiveXObject(strName);
			//objXmlHttp.onreadystatechange=processRequest();
			return objXmlHttp;
		} 
		catch(e)
		{ 
			alert("Error. Scripting for ActiveX might be disabled");
			return;
		} 
	}
	
	if (navigator.userAgent.indexOf("Mozilla")>=0)
	{
		objXmlHttp=new XMLHttpRequest();
		return objXmlHttp;
	}
}

function select_product() 
{
	var obj = document.getElementById('product');
	var product_id = obj.options[obj.selectedIndex].id;
	var product_name = obj.value;
	if(product_id > 0)
	{
		var link = unescape('inc/purchase_options-inc.php?action=select_product&id=' + product_id);
		change('purchase_options_container', link);
	}
	else
	{
		location.href = self.location.href;
	}
}

function select_option()
{	
	var obj2 = document.getElementById('options');
	var options_name = obj2.options[obj2.selectedIndex].text;
	type_value = obj2.options[obj2.selectedIndex].id;
	var price_div = document.getElementById('price_value_text');
	price_div.innerHTML='&pound;' + type_value;
	var extra_tenner_hf = document.getElementById('extra_tenner');
	var lockable_lid = document.getElementById('lockable_lid');
	if(extra_tenner_hf)
	{
		field = document.getElementById('price');
		
	}
	else
	{
		field = document.getElementById('price')
		field.value = parseFloat(field.value).toFixed(2);
	}
	
	if(field)
	{
		if(type_value)
		{
			if(type_value != 0)
			{
				if(extra_tenner_hf)
				{
					field.value = (parseFloat(type_value) + parseFloat(extra_tenner_hf.value));
				}
				else
				{
					field.value = type_value;
				}
				
				price_div.innerHTML = '&pound;' + field.value;
			}
			else
			{
				price_div.innerHTML = '&pound;' + field.value;
			}
		}
		else
		{
			field.value = field.value;
			price_div.innerHTML = '&pound;' + field.value;
		}
	}
	if(lockable_lid.checked == true)
	{
		lockable_lid.checked = false;
	}
	for(var i = 1; i <= 3; i++)
	{
		if(document.getElementById('option'+i))
		{
			if(document.getElementById('option'+i).checked)
			{
				document.getElementById('option'+i).checked = false;
			}
		}
	}
}

function select_colour()
{
	var obj3 = document.getElementById('colour');
	var colour_name = obj3.options[obj3.selectedIndex].text;
	var colour_price = obj3.options[obj3.selectedIndex].id;
	var price = document.getElementById('price');
	var price_div_container = document.getElementById('price_value_text_container');
	var price_div = document.getElementById('price_value_text');
	var extra_tenner_hf = document.getElementById('extra_tenner');
	
	if(colour_price == 10.00)
	{
		colour_cost = colour_price;
		
		if(colour_cost)
		{
			if(extra_tenner_hf)
			{
				price_div.innerHTML = '&pound;' + (parseFloat(price.value));
				price.value = parseFloat(price.value);
			}
			else
			{
				price_div.innerHTML = '&pound;' + (parseFloat(price.value) + parseFloat(colour_cost));
				price.value = (parseFloat(price.value) + parseFloat(colour_cost));
				
				colour_added = document.createElement('input');
				colour_added.setAttribute('type', 'hidden');
				colour_added.setAttribute('name', 'extra_tenner');
				colour_added.setAttribute('id', 'extra_tenner');
				colour_added.setAttribute('value', colour_cost);
				price_div_container.appendChild(colour_added);
			}
			
		}
	}
	else
	{
		colour_price = 0.00;
	}
}
function select_lock()
{
	checkbox = document.getElementById('lockable_lid');
	price_hidden_field = document.getElementById('price');
	price_text_box = document.getElementById('price_value_text');
	
	if(checkbox.checked == true)
	{
		price_hidden_field.value = (parseFloat(price_hidden_field.value) + parseFloat(checkbox.value));
	}
	else if(checkbox.checked == false)
	{
		price_hidden_field.value = (parseFloat(price_hidden_field.value) - parseFloat(checkbox.value));
	}
	var price_hidden_field_value = price_hidden_field.value;
	price_text_box.innerHTML='&pound;' + parseFloat(price_hidden_field_value).toFixed(2);
}

function select_extra_option(option_value)
{
	price_hidden_field = document.getElementById('price');
	price_text_box = document.getElementById('price_value_text');
	
	extra_option_checkbox = option_value;
	extra_option_price = option_value.value;
	
	current_total_price = price_hidden_field.value;
	
	if(extra_option_checkbox.checked)
	{
		//alert(extra_option_price + current_total_price);
		var new_total_price = (parseFloat(extra_option_price) + parseFloat(current_total_price));
	}
	else if(extra_option_checkbox.checked == false)
	{
		var new_total_price = (parseFloat(current_total_price) - parseFloat(extra_option_price));
	}
	price_text_box.innerHTML='&pound;' + new_total_price.toFixed(2);
	price_hidden_field.value = new_total_price.toFixed(2);
}

function add_to_basket()
{
	var params = '';
	var product_details = document.getElementById('product_details');
	var ok = 1;
	for(i = 0; i<product_details.length; i++)
	{
		if (product_details.elements[i].name)
		{
			if (params != "")
			{
				params += "&";
			}
			if(product_details.elements[i].type=='select-one')
			{
				param_type = product_details.elements[i].options[product_details.elements[i].selectedIndex].text;
			}
			else if(product_details.elements[i].type=='hidden' || product_details.elements[i].type=='text' || product_details.elements[i].type=='checkbox')
			{
				if(product_details.elements[i].type=='checkbox')
				{
					if(document.getElementById(product_details.elements[i].name).checked)
					{
						param_type = product_details.elements[i].value;
					}
					else
					{
						param_type = '';
					}
				}
				else
				{
					param_type = product_details.elements[i].value;
				}
			}
			params += encodeURIComponent(product_details.elements[i].name) + '=' + encodeURIComponent(param_type);
		}
		
		if(product_details.elements[i].name == 'options')
		{
			if(product_details.elements[i].options[product_details.elements[i].selectedIndex].text == 'Please select an option')
			{
				ok = 0;
			}
		}
		if(product_details.elements[i].name == 'colour')
		{
			if(product_details.elements[i].options[product_details.elements[i].selectedIndex].text == 'Please Select a Colour')
			{
				ok = 0;
			}
		}
	}
	if(ok == 0)
	{
		alert('Please select an option and/or colour to continue');
	}
	else
	{
		var link = unescape('inc/basket-inc.php?action=add&' + params);
		change('basket_div', link);
	}
	
}

function alert_select()
{
	alert('Please select a product before trying to add to basket');
}

function remove_product(id, element_index, qty)
{
	var link = unescape('./checkout.php?action%3Dremove%26product_id%3D' + id + '%26index%3D'+element_index);
	change('checkout', link);
	//location.href=link;
}

function delivery_address()
{
	var billing_firstname = document.getElementById('billing_firstname');
	var billing_lastname = document.getElementById('billing_lastname');
	var billing_address = document.getElementById('billing_address');
	var billing_postcode = document.getElementById('billing_postcode');
	var billing_telephone = document.getElementById('billing_telephone');
	var billing_email = document.getElementById('billing_email');
	
	var del_firstname = document.getElementById('del_firstname');
	var del_lastname = document.getElementById('del_lastname');
	var del_address = document.getElementById('del_address');
	var del_postcode = document.getElementById('del_postcode');
	var del_telephone = document.getElementById('del_telephone');
	var del_email = document.getElementById('del_email');
	
	if(document.getElementById('sameasabove').checked)
	{
		del_firstname.value = billing_firstname.value;
		del_lastname.value = billing_lastname.value;
		del_address.value = billing_address.value;
		del_postcode.value = billing_postcode.value;
		del_telephone.value = billing_telephone.value;
		del_email.value = billing_email.value;
	}
	else
	{
		del_firstname.value ='';
		del_lastname.value = '';
		del_address.value = '';
		del_postcode.value = '';
		del_telephone.value = '';
		del_email.value = '';
	}
}

function validate_checkout()
{
	var error = '';
	if(document.checkout_frm.billing_firstname.value == '')
	{
		var error = error + '* Please enter Your Firstname\n';
	}
	if(document.checkout_frm.billing_lastname.value == '')
	{
		var error = error + '* Please enter Your Last Name\n';
	}
	if(document.checkout_frm.billing_address.value == '')
	{
		var error = error + '* Please enter Your Address\n';
	}
	if(document.checkout_frm.billing_postcode.value == '')
	{
		var error = error + '* Please enter Your Postal Code\n';
	}
	if(document.checkout_frm.billing_email.value == '')
	{
		var error = error + '* Please enter a valid Email Address\n';
	}
	
	if(document.checkout_frm.card_number.value == '')
	{
		var error = error + '* Please enter a Valid Credit/Debit card number\n';
	}

	var startm = document.checkout_frm.start_date_month.value;
	var starty = document.checkout_frm.start_date_year.value;
	
//		if(startm == '' || startm == '00' || starty == '' || starty == '00')
//		{
//			var error = error + '* Please enter a Start Month and/or Year for your Credit/Debit Card\n';
//		}
	
	var expm = document.checkout_frm.expiry_date_month.value;
	var expy = document.checkout_frm.expiry_date_year.value;
	
	if(expm == '' || expm == '00' || expy == '' || expy == '00')
	{
		var error = error + '* Please enter an Expiry Month and/or Year for your Credit/Debit Card\n';
	}
	
	if(document.checkout_frm.security_number.value == '')
	{
		var error = error + '* Please enter the 3-digit Security Number located on the back of your card\n';
	}		
	
	if(document.checkout_frm.tandc.checked == false)
	{
		var error = error + '* Please agree to the terms and conditions before continuing\n';
	}		
	
	if (error != '')
	{
		alert(error);
		return false;
	}
	
}

function custom_quote()
{
	var select_box = document.getElementById('colour');
	var div = document.getElementById('custom_div');
	
	if(select_box.options[select_box.selectedIndex].value == 'Custom')
	{	
		div.innerHTML = '<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td width="105"><p class="prodtext">Please Specify:</p></td><td><input type="text" name="custom_colour"></td></table>';
	}
	else
	{
		div.innerHTML = '';
	}
}

function validate_email()
{
	var error = '';
	if(document.contact.name.value == '')
	{
		var error = error + '* Please enter your full name\n';
	}
	if(document.contact.email.value == '')
	{
		var error = error + '* Please enter your email address\n';
	}
	if (error != '')
	{
		alert(error);
		return false;
	}
	else
	{
		return true;
	}
}

function open_window(theURL,winName,features)
{
	window.open(theURL,winName,features);
}

/*function qty_calc()
{	
	var qty_box = document.getElementById('qty').value;
	var price_div = document.getElementById('price_value_text');
	var price_value = document.getElementById('options');
	var type_value = price_value.options[price_value.selectedIndex].id;
	
	if(qty_box > 1)
	{
		calculation = (qty_box * type_value);
		alert(qty_box + '*' + type_value);
		price_div.innerHTML='&pound;' + calculation;
	}
	
}*/

