// site.js
//
// JavaScript functionality for Naturally Scented Candles website
//
// copyright © 2008 WebAware Pty Ltd

function ThisSite() {
}

// formfield validation for product pages - buy
// NB: convenience only, is backed up by server-side validation
ThisSite.onSubmitProductForm = function(frm) {
	var validator = new ValidateForm(frm);

	// all drop-down lists must have something selected
	for (var i = 0; i < frm.elements.length; ++i) {
		if (frm.elements[i].tagName == 'SELECT')
			validator.isNotSelected(frm.elements[i].name);
	}
	validator.isInvalidInteger("qty");

	if (validator.hasErrors()) {
		// cleanup SimpleCart field names before showing error message
		var errmsg = validator.errmsg.replace(/fmt:/, 'Size/Format:');
		errmsg = errmsg.replace(/qty:/, 'Quantity:');
		alert(errmsg);
		return false;
	}
	return true;
}

// formfield validation for checkout
// NB: convenience only, is backed up by server-side validation
ThisSite.onSubmitCheckoutForm = function(frm) {
	var validator = new ValidateForm(frm);

	for (var i = 0; i < frm.elements.length; ++i) {
		if (frm.elements[i].tagName == 'SELECT')
			validator.isNotSelected(frm.elements[i].name);
	}
	validator.isInvalidInteger("qty");

	validator.isEmpty("Name");
	validator.isEmpty("Phone_Number");
	validator.isInvalidEmail("Email_Address", false);
	validator.isEmpty("Address");
	validator.isEmpty("Suburb");
//	validator.isEmpty("State");
//	validator.isEmpty("Postcode");

	if (validator.hasErrors()) {
		validator.showErrors();
		return false;
	}
	return true;
}

// formfield validation for checkout payment type
// NB: convenience only, is backed up by server-side validation
ThisSite.onSubmitCheckoutMethodForm = function(frm) {
	var validator = new ValidateForm(frm);

	validator.isUnchecked("method");

	if (validator.hasErrors()) {
		validator.showErrors();
		return false;
	}
	return true;
}

// formfield validation for testimonials
// NB: convenience only, is backed up by server-side validation
ThisSite.onSubmitTestimonialsForm = function(frm) {
	var validator = new ValidateForm(frm);

	validator.isEmpty("Customer_Name");
	validator.isInvalidEmail("Email_Address", true);
	validator.isEmpty("Testimonial");

	if (validator.hasErrors()) {
		validator.showErrors();
		return false;
	}
	return true;
}

// load an image into image element specified by ID
ThisSite.loadImage = function(id, src) {
	var img = document.getElementById(id);
	if (img)
		img.src = src;
}

// load the remaining images into the slideshow (hooked onto onload event)
// id: element ID of surrounding div
// slides: array of slide image filenames
ThisSite.createSlideshow = function(id, slides) {
	var container = document.getElementById(id);
	if (container) {
		for (var i = 0; i < slides.length; ++i) {
			var img = document.createElement("img");
			img.alt = "";
			img.src = slides[i][0];
			img.width = slides[i][1];
			img.height = slides[i][2];

			var div = document.createElement("div");
			div.appendChild(img);
			container.appendChild(div);
		}

		var slideshow = DivTransition.GetExtRef(id);
		eval(slideshow + " = new DivTransition(id, 'fadein', 7000, 20);");
		eval(slideshow + ".Activate()");
	}
}

// hook an event on either DOM or IE browser
ThisSite.hookEvent = function(event, hook) {
	if (window.addEventListener)
		window.addEventListener(event, hook, false);
	else if (window.attachEvent)
		window.attachEvent("on" + event, hook);
}
