var inputHasChanged = false;
function isChanged()
{
	inputHasChanged = true;
}

function noProductsHaveChanged(url)
{
	if(!inputHasChanged)
	{
		location.href = url;
	}
	else
	{
		getTranslation("De aantallen zijn gewijzigd. Druk eerst op 'Aantal wijzigen' voordat u verder kunt gaan.");
	}
}

function inputSelectSameValue(obj, id)
{
	var el = document.getElementById(id);
	if(el)
	{
		if (obj.type == "select-one")
		{
			el.selectedIndex = obj.selectedIndex;
		}
		else if (obj.type == "text")
		{
			el.value = obj.value;
		}
		else if(obj.type == "checkbox" || obj.type == "radio")
		{
			el.checked  = obj.checked;
		}
	}
}

function updateCart(url)
{
	var items = new Object();
	items["action"] = "updateCart";
	var elements = document.getElementsByTagName("input");
	for (var i = 0; i < elements.length; i++)
	{
		items["product_" + (i+1)] = elements[i].name + "," + elements[i].id + "," + elements[i].value;
	}
	post(url, items);
}

function displayInvoiceAddress()
{
	for (var i = 0; i < 100; i++)
	{
		var el = document.getElementById("delivery_id_" + i);
		if (el)
		{
			el.style.display == "none" ? el.style.display = "table-row" : el.style.display = "none";
			el.style.visibility == "hidden" ? el.style.visibility = "visible" : el.style.visibility = "hidden";
			
			if (el.style.display == "none" && el.style.visibility == "hidden")
			{
				var inputs = el.getElementsByTagName("INPUT");
				for (var j = 0; j < inputs.length; j++)
				{					
					if (inputs[j])
					{
						inputs[j].value = "";
					}
				}
			}
		}
		else
		{
			return;
		}
	}
}

function submitForm(form, msg)
{
	if (!form.onsubmit())
	{
		if (msg)
		{
			alert(msg);
		}
		return;
	}
	form.submit();
}

function checkAgreed(form, ignore)
{
	var ignore = ignore || false;
	if (!form.agreed.checked)
	{
		//alert("U dient akkoord te gaan met de algemene voorwaarden.");
		getTranslation("U dient akkoord te gaan met de algemene voorwaarden.");
		return false;
	}
	
	if(form.payment.options[form.payment.selectedIndex].value == "" && !ignore)
	{
		//alert("Kies een betalingsmethode.");
		getTranslation("Kies een betalingsmethode.");
		return false;
	}
	
	return true;
}

function checkAddressInfo(form)
{
	var failed = false;
	var sameForInvoice = false;
	if (document.getElementById("sameForInvoice") && document.getElementById("sameForInvoice").checked)
		 sameForInvoice = true;
	
	for (var i = 0; i < form.elements.length; i++)
	{
		var e = form.elements[i];
		
		if (e.name.length > 0)
		{
			var fieldFailed = false;
			
			var label = document.getElementById(e.name)
			if(label)
				label.className = "";
			
			switch(e.name)
			{
				case "invoice_name":
					fieldFailed = setLabel(e, label, "string");
					break;
				case "invoice_address":
					fieldFailed = setLabel(e, label, "string");
					break;
				case "invoice_number":
					fieldFailed = setLabel(e, label, "string");
					break;
				case "invoice_postalcode":
					fieldFailed = setLabel(e, label, "string");
					break;
				case "invoice_city":
					fieldFailed = setLabel(e, label, "string");
					break;
				case "invoice_email":
					fieldFailed = setLabel(e, label, "email");
					break;
				case "invoice_telephone":
					fieldFailed = setLabel(e, label, "telephone");
					break;
					
				case "delivery_name":
					if (!sameForInvoice)
						fieldFailed = setLabel(e, label, "string");
					break;
				case "delivery_address":
					if (!sameForInvoice)						
						fieldFailed = setLabel(e, label, "string");
					break;
				case "delivery_number":
					if (!sameForInvoice)
						fieldFailed = setLabel(e, label, "string");
					break;
				case "delivery_postalcode":
					if (!sameForInvoice)
						fieldFailed = setLabel(e, label, "string");
					break;
				case "delivery_city":
					if (!sameForInvoice)
						fieldFailed = setLabel(e, label, "string");
					break;
				case "delivery_email":
					if (!sameForInvoice)
						fieldFailed = setLabel(e, label, "email");
					break;
				case "delivery_telephone":
					if (!sameForInvoice)
						fieldFailed = setLabel(e, label, "telephone");
					break;
			}
			
			if (fieldFailed)
			{
				failed = fieldFailed;
			}
		}
	}
	
	if (failed)
	{
		return false;
	}
	return true;
}

function setLabel(e, label, type)
{
	var failed = false;
	switch(type)
	{
		default:
			if (e.value == "")
			{
				label.className = "failed";
				failed = true;
			}
			break;
		case "telephone":
			var regX = new RegExp(/^[0-9 ]+$/);
			if (!regX.test(e.value))
			{
				label.className = "failed";
				failed = true;
			}
			break;
		case "email":
			var regX = new RegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/);
			if (!regX.test(e.value))
			{
				label.className = "failed";
				failed = true;
			}
		case "password":
			if (e.value.length < 6)
			{
				label.className = "failed";
				failed = true;
			}
			else
			{
				label.className = "";
			}	
			break;
	}
	return failed;
}

var lastColor;
function changeOrderStatusColor(id, status)
{
	var td = document.getElementById("td_" + id);
	if (td)
	{
		var span = td.getElementsByTagName("SPAN");
		if (status == 1)
		{
			lastColor = span[0].style.color;
			span[0].style.color = "#ffffff";
		}
		else
			span[0].style.color = lastColor;
	}
}
