var slideshowIndexes = new Array();

function slideshow(id) {
	var children = new Array();
	var childNodes = document.getElementById(id).childNodes;
	var i = 0;
	for (i = 0; i < childNodes.length; i++) {
		if (childNodes[i].nodeType == 1) {
			children[children.length] = childNodes[i];
		}
	}
	if (children.length > 1) {
		var index = slideshowIndexes[id];
		var duration = 1;
		if (navigator.userAgent.toLowerCase().indexOf("iphone") != -1 || navigator.userAgent.toLowerCase().indexOf("ipod") != -1 || navigator.userAgent.toLowerCase().indexOf("msie") != -1) {
			duration = 0;
		}
		Effect.Fade(children[index], {duration:duration, from:1.0, to:0.0});
		index++;
		if (index == children.length) {
			index = 0;
		}
		Effect.Appear(children[index], {duration:duration, from:0.0, to:1.0});
		slideshowIndexes[id] = index;
	}
}

function updateCartItem(id, field) {
	document.location = "updateCart.php?action=update&id=" + id + "&count=" + field.value;
}

function removeCartItem(id) {
	document.location = "updateCart.php?action=update&id=" + id + "&count=0";
}

function emptyCart() {
	document.location = "updateCart.php?action=empty";
}

String.prototype.removeDiacritics = function() {
	var diacritics = [
		[/[\300-\306]/g, 'A'],
		[/[\340-\346]/g, 'a'],
		[/[\310-\313]/g, 'E'],
		[/[\350-\353]/g, 'e'],
		[/[\314-\317]/g, 'I'],
		[/[\354-\357]/g, 'i'],
		[/[\322-\330]/g, 'O'],
		[/[\362-\370]/g, 'o'],
		[/[\331-\334]/g, 'U'],
		[/[\371-\374]/g, 'u'],
		[/[\321]/g, 'N'],
		[/[\361]/g, 'n'],
		[/[\307]/g, 'C'],
		[/[\347]/g, 'c'],
	];
	var result = this;
	for (var i = 0; i < diacritics.length; i++) {
		result = result.replace(diacritics[i][0], diacritics[i][1]);
	}
	return result;
}

String.prototype.trim = function() {
	return this.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function checkAddress(form, sender) {
	var error = false;
	var nameField = form.elements["cust_name"];
	if (sender == null || sender == nameField) {
		nameField.value = nameField.value.trim();
		var regexp = /^[a-z'.\- ]+$/i;
		if (!regexp.test(nameField.value.removeDiacritics())) {
			error = true;
			nameField.style.color = "#FFC156";
			nameField.style.borderStyle = "solid";
		} else {
			nameField.style.color = "#000000";
			nameField.style.borderStyle = "inset";
		}
	}
	var addressField = form.elements["cust_address"];
	if (sender == null || sender == addressField) {
		addressField.value = addressField.value.trim();
		var regexp = /^[a-z0-9'".,\- ]+$/i;
		if (!regexp.test(addressField.value.removeDiacritics())) {
			error = true;
			addressField.style.color = "#FFC156";
			addressField.style.borderStyle = "solid";
		} else {
			addressField.style.color = "#000000";
			addressField.style.borderStyle = "inset";
		}
	}
	var zipField = form.elements["cust_zip"];
	if (sender == null || sender == zipField) {
		zipField.value = zipField.value.trim();
		var regexp = /^[a-z0-9\- ]+$/i;
		if (!regexp.test(zipField.value.removeDiacritics())) {
			error = true;
			zipField.style.color = "#FFC156";
			zipField.style.borderStyle = "solid";
		} else {
			zipField.style.color = "#000000";
			zipField.style.borderStyle = "inset";
		}
	}
	var cityField = form.elements["cust_city"];
	if (sender == null || sender == cityField) {
		cityField.value = cityField.value.trim();
		var regexp = /^[a-z'\- ]+$/i;
		if (!regexp.test(cityField.value.removeDiacritics())) {
			error = true;
			cityField.style.color = "#FFC156";
			cityField.style.borderStyle = "solid";
		} else {
			cityField.style.color = "#000000";
			cityField.style.borderStyle = "inset";
		}
	}
	var countryButton = form.elements["cust_country"];
	if (sender == null || sender == countryButton) {
		if (countryButton.options[countryButton.options.selectedIndex].value == "") {
			error = true;
			countryButton.style.color = "#FFC156";
			countryButton.style.borderStyle = "none";
		} else {
			countryButton.style.color = "#000000";
			countryButton.style.borderStyle = "solid";
		}
	}
	var emailField = form.elements["cust_email"];
	if (sender == null || sender == emailField) {
		var regexp = /^[a-z0-9._%+\-]+@[a-z0-9.\-]+\.[a-z]{2,}$/i;
		if (!regexp.test(emailField.value)) {
			error = true;
			emailField.style.color = "#FFC156";
			emailField.style.borderStyle = "solid";
		} else {
			emailField.style.color = "#000000";
			emailField.style.borderStyle = "inset";
		}
	}
	return !error;
}

function checkAddressField(field) {
	return checkAddress(field.form, field);
}
