var basketSummaryElement = null;
var discount = 0.0;

function change_bg_colour(which,div_id)
{
	var el = document.getElementById(div_id);
	if(el){
		if(which =='on'){
//			el.style.backgroundColor = "#f6f7fb";
			el.style.backgroundColor = "#F3F4F8";
			el.style.cursor = "pointer";
		
		}else{
			el.style.backgroundColor = "#FFF";
			el.style.cursor = "default";		
		}
	}	
}

function changeProdImage(newImage)
{
	document.getElementById('main_prod_image').src='/shop/product_images/'+newImage;
}

function changeBestSellers(new_page, current_page, page_count)
{
	if(new_page != current_page && new_page >=1 && new_page<=page_count) // is different page and in valid range
	{
		var request = createXmlHttpRequestObject();
		request.open('GET', '/shop/main/ajax_best_sellers/'+new_page, true);
		request.setRequestHeader("Connection", "close");

		request.onreadystatechange = function() 
		{
			if (request.readyState == 4 && request.status == 200) 
			{
				var divElement = document.getElementById('best-sellers');
				var html = '<div class="featured-section-header">';
				html += '<h3>Best Sellers</h3><ul>';
				html += '<li><a href="#" title="" onclick="changeBestSellers('+(new_page-1)+','+new_page+','+page_count+');return false;">&lt;</a></li>';
				for(var i=1; i<=page_count; i++)
				{			
					if(i == new_page){
						html += '<li class="active"><a href="#" title="" onclick="changeBestSellers('+i+','+new_page+');return false;">'+i+'</a></li>';
					}else{
						html += '<li><a href="#" title="" onclick="changeBestSellers('+i+','+new_page+','+page_count+');return false;">'+i+'</a></li>';
					}
				}
				html += '<li><a href="#" title="" onclick="changeBestSellers('+(new_page+1)+','+new_page+','+page_count+');return false;">&gt;</a></li>';
				html += '</ul></div>';
				
				html += request.responseText;
				divElement.innerHTML = html;						
			}	
		} //function	
		request.send(null);	
	}
}


function changeFeaturedProducts(new_page, current_page, page_count)
{
	if(new_page != current_page && new_page >=1 && new_page<=page_count) // is different page and in valid range
	{
		var request = createXmlHttpRequestObject();
		request.open('GET', '/shop/main/ajax_featured_products/'+new_page, true);
		request.setRequestHeader("Connection", "close");

		request.onreadystatechange = function() 
		{
			if (request.readyState == 4 && request.status == 200) 
			{
				var divElement = document.getElementById('featured-products');
				var html = '<div class="featured-section-header">';
				html += '<h3>Featured products</h3><ul>';
				html += '<li><a href="#" title="" onclick="changeFeaturedProducts('+(new_page-1)+','+new_page+','+page_count+');return false;">&lt;</a></li>';
				for(var i=1; i<=page_count; i++)
				{			
					if(i == new_page){
						html += '<li class="active"><a href="#" title="" onclick="changeFeaturedProducts('+i+','+new_page+');return false;">'+i+'</a></li>';
					}else{
						html += '<li><a href="#" title="" onclick="changeFeaturedProducts('+i+','+new_page+','+page_count+');return false;">'+i+'</a></li>';
					}
				}
				html += '<li><a href="#" title="" onclick="changeFeaturedProducts('+(new_page+1)+','+new_page+','+page_count+');return false;">&gt;</a></li>';
				html += '</ul></div>';
				
				html += request.responseText;
				divElement.innerHTML = html;						
			}	
		} //function	
		request.send(null);	
	}
}

function showProdFullDesc()
{
	document.getElementById('prod_short_desc').style.display='none';
	document.getElementById('prod_full_desc').style.display='block';
}

function hideProdFullDesc()
{
	document.getElementById('prod_full_desc').style.display='none';
	document.getElementById('prod_short_desc').style.display='block';
}

function addtocart(prod_id)
{
	var quantityElement = document.getElementById('quantity');
	var quantity = 1;
	if(quantityElement){
		quantity = parseInt(quantityElement.value);
	}

	var request = createXmlHttpRequestObject();
	var params = 'prod_id='+prod_id+'&quantity='+quantity;
	request.open('POST', '/shop/main/ajax_add_to_basket', true);
	request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	request.setRequestHeader("Content-length", params.length);
	request.setRequestHeader("Connection", "close");
	request.onreadystatechange = function() 
	{
		if(request.readyState == 4 && request.status == 200) 
		{
			if(request.responseText.length > 0 ){
				basketSummaryElement = document.getElementById('basket-sum');
				if(basketSummaryElement){
					basketSummaryElement.innerHTML = request.responseText;
					showBasketAlert();
					setTimeout("hideBasketAlert();", 1000);
				}
			}
		}	
	} //function	
	request.send(params);		
}


function hideBasketAlert()
{
//alert('hideBasketAlert()');
	basketAlertElement = document.getElementById('layer1');
	if(basketAlertElement){
		basketAlertElement.style.visibility = 'hidden';
	}
}
function showBasketAlert()
{
//alert('showBasketAlert()');
	basketAlertElement = document.getElementById('layer1');
	if(basketAlertElement){
		if (document.documentElement)
		{
			theLeft = document.documentElement.scrollLeft;
			theTop = document.documentElement.scrollTop;
		}
		else if (document.body)
		{
			theLeft = document.body.scrollLeft;
			theTop = document.body.scrollTop;
		}
		theLeft += 400;
		theTop += 300;
		basketAlertElement.style.left = theLeft + 'px' ;
		basketAlertElement.style.top = theTop + 'px' ;
		basketAlertElement.style.visibility = 'visible';
	}
}



/*
function validateCheckout()
{
	var nameElement = document.getElementById('nameInput');
	var teleElement = document.getElementById('teleInput');
	var emailElement = document.getElementById('emailInput');
	var valid = true;
	if(nameElement.value.length < 1){
		alert('You must enter your name');
		valid = false;
	}
	if(teleElement.value.length >0 ){
		var telematch = teleElement.value.match(/[0-9+() \-]{7,20}/);
		if(telematch== null || telematch[0] != teleElement.value){
			alert('Please enter a valid telephone number');
			valid = false;
		}
	}else{
		alert('You must enter a telephone number');
		valid = false;	
	}
	if(emailElement.value.length >0 ){
//		var emailmatch = emailElement.value.match(/[a-zA-Z0-9.-_]+@[a-zA-Z0-9.-_]+[.][a-zA-Z]+/);
		var emailmatch = emailElement.value.match(/[-+.%\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}/);
		if(emailmatch== null || emailmatch[0] != emailElement.value){
			alert('Please enter a valid email address');
			valid = false;
		}
	}else{
		alert('You must enter an email address');
		valid = false;	
	}
	return valid;
}
*/

function validate_webuser()
{
	var valid = true;
	var emailElement = document.getElementById('emailInput');
	var passwordElement = document.getElementById('passwordInput');
	
	var emailmatch = emailElement.value.match(/[-+.%\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}/);
	if(emailElement.value.length >0 ){
		if(emailmatch== null || emailmatch[0] != emailElement.value){
			alert('Please enter a valid email address');
			valid = false;
		}
	}else{
		alert('You must enter an email address');
		valid = false;	
	}
	if(valid==true && passwordElement.value.length < 5){
		alert('Passwords should be at least 5 characters');
		valid = false;
	}	
	return valid;
}

function validate_email_reminder()
{
	var valid = true;
	var emailElement = document.getElementById('emailInput');
	
	var emailmatch = emailElement.value.match(/[-+.%\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}/);
	if(emailElement.value.length >0 ){
		if(emailmatch== null || emailmatch[0] != emailElement.value){
			alert('Please enter a valid email address');
			valid = false;
		}
	}else{
		alert('You must enter an email address');
		valid = false;	
	}
	return valid;	
}

function validate_phoneuser()
{
	var valid = true;

	var emailElement = document.getElementById('emailInput');
	var postcodeElement = document.getElementById('postcodeInput');
	var passwordElement = document.getElementById('passwordInput');
	var passwordElement2 = document.getElementById('password2Input');
	
	var emailmatch = emailElement.value.match(/[-+.%\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}/);
//	var postcodematch = postcodeElement.value.match(/^[A-Z]{1,2}[0-9]{1,2}[A-Z]? ?[0-9]{1}[A-Z]{2}$/i);

	if(document.getElementById('firstnameInput').value.length == 0){
		alert("Please enter your first name");
		valid = false;
	}	
	if(valid==true && document.getElementById('lastnameInput').value.length == 0){
		alert("Please enter your last name");
		valid = false;
	}	
	if(valid==true && emailElement.value.length >0 ){
		if(valid==true && emailmatch== null || emailmatch[0] != emailElement.value){
			alert('Please enter a valid email address');
			valid = false;
		}
	}else if(valid==true){
		alert('You must enter an email address');
		valid = false;	
	}
	if(valid==true && postcodeElement.value.length == 0 ){
		alert('You must enter a postcode');
		valid = false;	
	}
	if(valid==true && (passwordElement.value.length ==0 || passwordElement2.value.length == 0)){
			alert('Please enter and repeat your password');
			valid = false;		
	}
	if(valid==true && passwordElement.value.length < 5){
			alert('Passwords should be at least 5 characters');
			valid = false;
	}	
	if(valid==true && passwordElement.value != passwordElement2.value){
		alert("Passwords don't match");
		valid = false;
	}	
	return valid;
}

function validate_newuser()
{
	var valid = true;

	var emailElement = document.getElementById('emailInput');
	var passwordElement = document.getElementById('passwordInput');
	var passwordElement2 = document.getElementById('password2Input');
	var telephoneElement = document.getElementById('telephoneInput');
	
	var emailmatch = emailElement.value.match(/[-+.%\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}/);
	var telephonematch = telephoneElement.value.match(/^[\)\(+0-9 \-.]{7,22}$/);

	if(document.getElementById('firstnameInput').value.length == 0){
		alert("Please enter your first name");
		valid = false;
	}	
	if(valid==true && document.getElementById('lastnameInput').value.length == 0){
		alert("Please enter your last name");
		valid = false;
	}	
	if(valid==true && telephoneElement.value.length >0 ){
		if(valid==true && telephonematch== null || telephonematch[0] != telephoneElement.value){
			alert('Please enter a valid telephone number');
			valid = false;
		}
	}else if(valid==true){
		alert('You must enter your telephone number');
		valid = false;	
	}
	if(valid==true && emailElement.value.length >0 ){
		if(valid==true && emailmatch== null || emailmatch[0] != emailElement.value){
			alert('Please enter a valid email address');
			valid = false;
		}
	}else if(valid==true){
		alert('You must enter an email address');
		valid = false;	
	}
	if(valid==true && (passwordElement.value.length ==0 || passwordElement2.value.length == 0)){
			alert('Please enter and repeat your password');
			valid = false;		
	}
	if(valid==true && passwordElement.value.length < 5){
			alert('Passwords should be at least 5 characters');
			valid = false;
	}	
	if(valid==true && passwordElement.value != passwordElement2.value){
		alert("Passwords don't match");
		valid = false;
	}	
	return valid;
}

function validate_newclient()
{
	var valid = true;

	var emailElement = document.getElementById('emailInput');
	var passwordElement = document.getElementById('passwordInput');
	var passwordElement2 = document.getElementById('password2Input');
	var telephoneElement = document.getElementById('telephoneInput');
	
	var emailmatch = emailElement.value.match(/[-+.%\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}/);
	var telephonematch = telephoneElement.value.match(/^[\)\(+0-9 \-.]{7,22}$/);

	if(document.getElementById('firstnameInput').value.length == 0){
		alert("Please enter your client's first name");
		valid = false;
	}	
	if(valid==true && document.getElementById('lastnameInput').value.length == 0){
		alert("Please enter your client's last name");
		valid = false;
	}	
	if(valid==true && telephoneElement.value.length >0 ){
		if(valid==true && telephonematch== null || telephonematch[0] != telephoneElement.value){
			alert('Please enter a valid telephone number');
			valid = false;
		}
	}else if(valid==true){
		alert("You must enter your client's telephone number");
		valid = false;	
	}
	if(valid==true && emailElement.value.length >0 ){
		if(valid==true && emailmatch== null || emailmatch[0] != emailElement.value){
			alert('Please enter a valid email address');
			valid = false;
		}
	}else if(valid==true){
		alert('You must enter an email address');
		valid = false;	
	}
	return valid;
}

function update_postage()
{
	var cartCost  = document.getElementById('cartTotalInput').value;
	var currency = document.getElementById('currencyInput').value;
	var postage = document.getElementById('postage_select').value;
//alert("*"+postage+"*")	;
	var postageCost = parseFloat(postageOptions[parseInt(postage)]);
//alert("postageCost *"+postageCost+"*")	;
	var totalCost = parseFloat(cartCost) + postageCost - discount;
	document.getElementById('postage_display').innerHTML = currency + postageCost.toFixed(2);
	document.getElementById('total_cost').innerHTML = currency + totalCost.toFixed(2);
}

function newDeliveryAddress()
{
	var country = document.getElementById('new_country').value;
	changedDeliveryAddress(document.getElementById('new_address'), country);
}

function changedDeliveryAddress(radioElement, country)
{
	if(radioElement.checked == true){
		var request = createXmlHttpRequestObject();
		optionsElement = document.getElementById('postage_select');
		var params = 'country='+country+'&current='+encodeURIComponent(optionsElement.value);
		request.open('POST', '/shop/account/ajax_postage_options', true);
		request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		request.setRequestHeader("Content-length", params.length);
		request.setRequestHeader("Connection", "close");
		request.onreadystatechange = function() 
		{
			if(request.readyState == 4 && request.status == 200) 
			{
//alert(request.responseText);
				if(request.responseText.length > 0 ){
					optionsElement = document.getElementById('postage_select');
					if(optionsElement){
						var optionsData = eval('('+request.responseText+')');
						var selectedIndex = 0;
						optionsElement.options.length = 0;
						for(var i=0; i<optionsData.length; i++){
							optionsElement.add(new Option(optionsData[i].text, optionsData[i].value, false, optionsData[i].selected), null);
							if(optionsData[i].selected === true){
								selectedIndex = i;
							}
//alert(optionsData[i].text+', '+optionsData[i].value+', '+false+', '+optionsData[i].selected);
						}
						optionsElement.selectedIndex = selectedIndex;
						update_postage();
					}
				}
			}	
		} //function	
		request.send(params);				
	}
}

function showVoucherInput()
{
	var inputElement = document.getElementById('code_input_row');
	if(inputElement.style.visibility == 'visible'){
		inputElement.style.visibility = 'hidden';
	}else{
		inputElement.style.visibility = 'visible';
	}
}

function updateDiscount()
{
	var inputElement = document.getElementById('voucher_code');
	if(inputElement.value.length == 0){
		alert('You must enter a voucher code');
	}else{
		var request = createXmlHttpRequestObject();
		var params = 'code='+encodeURIComponent(inputElement.value);
		request.open('POST', '/shop/account/ajax_voucher_check', true);
		request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		request.setRequestHeader("Content-length", params.length);
		request.setRequestHeader("Connection", "close");
		request.onreadystatechange = function() 
		{
			if(request.readyState == 4 && request.status == 200) 
			{
				if(request.responseText.length > 0 ){
					var voucherResponse = eval(request.responseText);
					if(voucherResponse.error.length > 0){
						alert(voucherResponse.error);
						discount = 0.0;
					}else{
						discount = voucherResponse.discountValue;
					}	
					var cartCost  = document.getElementById('cartTotalInput').value;
					var currency = document.getElementById('currencyInput').value;
					var postage = document.getElementById('postage_select').value;
					var postageCost = parseFloat(postageOptions[parseInt(postage)]);
					var totalCost = parseFloat(cartCost) + postageCost - discount;
					document.getElementById('total_cost').innerHTML = currency + totalCost.toFixed(2);
					document.getElementById('discount_value').innerHTML = currency + '-' + discount.toFixed(2);
				}
			}	
		} //function	
		request.send(params);				
	}	
}

function newDeliverTo()
{
	var selectElement = document.getElementById('deliverto');
	var request = createXmlHttpRequestObject();
	var params = 'nen_id='+encodeURIComponent(selectElement.value);

	request.open('POST', '/shop/account/ajax_client_addresses', true);
	request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	request.setRequestHeader("Content-length", params.length);
	request.setRequestHeader("Connection", "close");
	request.onreadystatechange = function() 
	{
		if(request.readyState == 4 && request.status == 200) 
		{
			if(request.responseText.length > 0 ){
				var addressDiv = document.getElementById('deliveryAddresses');
//				addressDiv.innerHTML = '';
				addressDiv.innerHTML = request.responseText;
			}
		}	
	} //function	
	request.send(params);				
}

function hideNewClientPopup()
{
	var popup = document.getElementById('new_client_div');
	if(popup){
		popup.style.visibility = 'hidden';
	}
}
function showNewClientPopup()
{
	popup = document.getElementById('new_client_div');
	if(popup){
		if (document.documentElement)
		{
			theLeft = document.documentElement.scrollLeft;
			theTop = document.documentElement.scrollTop;
		}
		else if (document.body)
		{
			theLeft = document.body.scrollLeft;
			theTop = document.body.scrollTop;
		}
		theLeft += 300;
		theTop += 50;
		popup.style.left = theLeft + 'px' ;
		popup.style.top = theTop + 'px' ;
		popup.style.visibility = 'visible';
	}
}
function sendNewClientPopup()
{
}








// creates an XMLHttpRequest instance
function createXmlHttpRequestObject() 
{
  // will store the reference to the XMLHttpRequest object
  var xmlHttp;
  // this should work for all browsers except IE6 and older
  try
  {
    // try to create XMLHttpRequest object
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    // assume IE6 or older
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
    // try every prog id until one works
 
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
      { 
        // try to create XMLHttpRequest object
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // return the created object or display an error message
  if (!xmlHttp)
    ;//alert("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}

