/* LIBRARY SCRIPTS
 * Specific functionality
 * 1.0
 
 * SCRIPT CHANGES (Eg. Date (dd/mm/yyyy), Name (Tom.McCourt), Change (function name))
 *
 * 08/08/2007, Tom.McCourt, Created
------------------------------------------------------------*/

/* Load
------------------------------*/
Event.domLoad(function() {
		if (sIFR) {
			sIFR.initialize()
		}
		flickerFix();
		Masthead.init();
		//MiniBasket.init();
		var bodyId = document.body.id;
		
		switch(bodyId) {
			case "home-page":
				MiniNewsletter.init();
			break;
			case "detail-page":
			/*	ProductZoom.init();
				MiniNewsletter.init();*/
			break;
			default:
			MiniNewsletter.init();
			break;
		}
	}
);	

/* Header
------------------------------*/
var Masthead = {
	mosaic : new Array("1", "2", "3", "4"),
	init : function() {
		var random = this.mosaic[Math.floor(Math.random() * this.mosaic.length)];

		// Change the header background
	/*	var header = document.getElementById("header");
		header.style.backgroundImage = "url(" + UrlUtils.absoluteWebPath("/images/default/en/site/bg/header-" + random + ".gif") + ")";
 */
		// Change the logo
	/*	var logo = document.getElementById("site-logo");
		logo = logo.getElementsByTagName("img")[0];
		logo.src = UrlUtils.absoluteWebPath("/images/default/en/site/global/site-logo-" + random + ".gif");
*/
		// Change the logo
/*		var submit = document.getElementById("mini-search");
		submit = submit.getElementsByTagName("input")[1];
		submit.src = UrlUtils.absoluteWebPath("/images/default/en/site/buttons/mini-search-" + random + ".gif");
		*/
	}
};


/* MiniSearch
------------------------------*/
var MiniSearch = {
	search			: null,
	field			: null,
	defaultValue	: null,
	submit			: null,
	init : function() {
		this.search = document.getElementById("mini-search");
		if (!this.search) { return; }
		
		var inputs	= this.search.getElementsByTagName("input");
		this.field	= inputs[0];
		this.submit = inputs[1];

		if (this.field) {
			this.field.defaultValue = this.field.value;

			this.field.onkeydown = function() {
				FormUtils.assignButton(event, this, MiniSearch.submit.id);
			};
			
			this.field.onfocus = function() {
				if (this.value === MiniSearch.defaultValue) {
					this.value = "";
				}
			};

			this.field.onblur = function() {
				if (this.value === "") {
					this.value = MiniSearch.defaultValue;
				}
			};
		}
	}
};

/* MiniBasket
------------------------------*/
var MiniBasket = {
	basket : null,
	update : function() {
		this.basket = document.getElementById("mini-basket");
		if (!this.basket) { return; }
		var total = this.basket.getElementsByTagName("span")[0].innerHTML;
		
		var summaryTotal = document.getElementById("mini-basket-summary-total").firstChild;

		summaryTotal.innerHTML = total;
	},
	close : function() {
		var miniBasketSummary = document.getElementById("mini-basket-summary");
		miniBasketSummary.style.display = "none";
		return false;
	}
};

/* DeliveryInfo
------------------------------*/
var DeliveryInfo = {
	toggle : function(e) {
		var info = document.getElementById("delivery-info");
		if (info) {
			if (info.style.display == "block") {
				info.style.display = "none";
			} else {
				info.style.display = "block";
			}
		}
		return false;
	}
};

/* DeliveryInfo
------------------------------*/
var MiniNewsletter = {
	pageForm: null,
	field: null,
	defaultText: "",
	init: function() {
		this.pageForm = document.forms[0];
		var news = document.getElementById("mini-newsletter");
		var inputs = news.getElementsByTagName("input");
		var field = inputs[0];
		this.defaultText = field.value;
		var submit = inputs[1];
		submit.onclick = function() {
			// Cancel the form submission
			var f = document.forms[0];
			f.onsubmit = function() {
				return false;
			};
			
			//check the url and direct to appropriate newsletter page
			var siteurl = window.location.href;
			var url_check_uk = siteurl.indexOf("en-GB");
			var url_check_fr = siteurl.indexOf("fr-FR");
			var url_check_us = siteurl.indexOf("en-US");

			if (url_check_uk != -1){
				window.location.href = "EmailSignUp.aspx?email=" + encodeURIComponent(field.value) + "&language=en-GB";
			}
			else if (url_check_fr != -1) {
				window.location.href = "EmailSignUp.aspx?email=" + encodeURIComponent(field.value) + "&language=fr-FR";		
			}
			else if (url_check_us != -1){
				window.location.href = "EmailSignUp.aspx?email=" + encodeURIComponent(field.value) + "&language=en-US";					
			}
		};
		// Store the default text
		this.defaultText = field.value;
		field.onfocus = function() {
			if (this.value === MiniNewsletter.defaultText) {
				this.value = "";
			}
		};
		field.onblur = function() {
			if (this.value === "") {
				this.value = MiniNewsletter.defaultText;
			}
		};
	}
};

var Catalogue = {
	download: function(e, t) {
		e.className += " catalogue-progress";
		e.innerHTML = t;
		return true;
	}
};

/* Zoom
------------------------------*/

var ProductZoom = {
	tabs: {"spin": null, "zoom": null},
	canvas: {"spin": null, "zoom": null},
	init: function() {
		this.tabs.spin = document.getElementById("product-zoom-tab-spin");
		if (this.tabs.spin) {
			this.tabs.spin = this.tabs.spin.firstChild;
		}
		this.tabs.zoom = document.getElementById("product-zoom-tab-zoom");
		if (this.tabs.zoom) {
			this.tabs.zoom = this.tabs.zoom.firstChild;
		}
	},
	// Tab between prdouct image types
	select: function(el) {
		// Reset the styles 
		if (this.tabs.spin) {
			this.tabs.spin.src = this.tabs.spin.src.replace("-o.gif", ".gif");
		}
		if (this.tabs.zoom) {
			this.tabs.zoom.src = this.tabs.zoom.src.replace("-o.gif", ".gif");
		}
		var spin = document.getElementById("product-canvas-spin");
		if (spin) {
			spin.style.display = "none";
		}

		var zoom = document.getElementById("product-canvas-zoom");
		if (zoom) {
			zoom.style.display = "none";
		}
		
		// Now show the selected style
		switch(el) {
			case "spin":
				if (this.tabs.spin) {
					this.tabs.spin.src = this.tabs.spin.src.replace(".gif", "-o.gif");
				}
				var spin = document.getElementById("product-canvas-spin");
				if (spin) {
					spin.style.display = "block";
				}
			break;
			case "zoom":
				if (this.tabs.zoom) {
					this.tabs.zoom.src = this.tabs.zoom.src.replace(".gif", "-o.gif");
				}
				var zoom = document.getElementById("product-canvas-zoom");
				if (zoom) {
					zoom.style.display = "block";
				}
			break;
		}
		// Prevent clicking
		return false;
	}
};