function preloadGallery(page_id, photo_count, photo_ext) {
	for (var i = 1; i <= photo_count; i++) {
		var image = new Image();
		image.src = "images/photo_content_" + page_id + "_" + i + "." + photo_ext;
	}
}

function nextPhoto(step) {
	var descElems = new Array();
	var capElems = new Array();
	var crtIndex = -1;
	while (true) {
		var elem = document.getElementById(
			"page_photo_desc_" + (descElems.length+1));
		if (elem != null) {
			descElems[descElems.length] = elem;
			if (elem.className != "hidden")
				crtIndex = descElems.length;
			capElems[capElems.length] = document.getElementById(
				"page_photo_cap_" + (capElems.length+1));
		} else
			break;
	}
	if (crtIndex != -1) {
		var newIndex = crtIndex + step;
		if (newIndex > descElems.length)
			newIndex = 1; 
		if (newIndex <= 0)
			newIndex = descElems.length;
		var imgElem = document.getElementById("content_photo");
		var src = new String(imgElem.src);
		var base = src.substring(0, src.lastIndexOf('/')+1);
		src = src.substring(src.lastIndexOf('/')+1);
		src = src.substring(0, src.lastIndexOf('_')+1) + newIndex
			+ src.substring(src.lastIndexOf('.'));
		imgElem.src = base + src;
		for (var i = 0; i < descElems.length; i++) {
			var index = i + 1;
			descElems[i].className = index == newIndex ? "photo_desc" : "hidden";
		}
		for (var i = 0; i < capElems.length; i++) {
			var index = i + 1;
			capElems[i].className = index == newIndex ? "photo_cap" : "hidden";
		}
	}
}

function formatPrice(value) {
    return new Number(value).toFixed(2);
}

function computeTotal() {
	var form = document.forms.order_form;
	var total = 0;
	
	var adults_amount = form.order_adults.value * adults_rate;
	document.getElementById("show_adults").innerHTML = formatPrice(adults_amount);
	total += adults_amount;
	
	var seniors_amount = form.order_seniors.value * seniors_rate;
	document.getElementById("show_seniors").innerHTML = formatPrice(seniors_amount);
	total += seniors_amount;
	
	var students_amount = form.order_students.value * students_rate;
	document.getElementById("show_students").innerHTML = formatPrice(students_amount);
	total += students_amount;
	
	var children_amount = form.order_children.value * children_rate;
	document.getElementById("show_children").innerHTML = formatPrice(children_amount);
	total += children_amount;
	
	var kids_amount = form.order_kids.value * 0;
	document.getElementById("show_kids").innerHTML = formatPrice(kids_amount);
	total += kids_amount;
	
	var gst = total * gst_rate / 100;
	form.order_gst.value = formatPrice(gst);
	document.getElementById("show_gst").innerHTML = formatPrice(gst);

	total += gst;
	form.order_total.value = formatPrice(total);
	document.getElementById("show_total").innerHTML = formatPrice(total);
	return total;
}

function validateOrder() {
	var form = document.forms.order_form;
	for (var i = 0; i < form.elements.length; i++) {
		var elem = form.elements[i];
		if (elem.type == "text" && trim(elem.value) == "") {
			alert("Please complete all fields of the form.");
			return false;
		}
	}
	if (form.order_email.value != form.order_email2.value) {
		alert("Please verify the email address.");
		return false;
	}
	if (computeTotal() == 0) {
		alert("Please select the number of persons.");
		return false;
	}
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
