function brandnav() {
	var currDis = document.getElementById('brandsnav').style.display;
	if (currDis == 'none') {
		document.cookie = 'showbrands=true; path=/';
		document.getElementById('brandsnav').style.display = 'block';
	} else {
		document.getElementById('brandsnav').style.display = 'none';
		document.cookie = 'showbrands=true; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/';
	}
	return false;
}


function salenav() {
	var currDis = document.getElementById('salenav').style.display;
	if (currDis == 'none') {
		document.cookie = 'salenav=true; path=/';
		document.getElementById('salenav').style.display = 'block';
	} else {
		document.getElementById('salenav').style.display = 'none';
		document.cookie = 'salenav=true; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/';
	}
	return false;
}


function brandSort() {
	var currDis = document.getElementById('brandsort').style.overflow;
	if (currDis == 'hidden') {
		document.getElementById('brandsort').style.overflow = 'visible';
		document.getElementById('blue').src = '/graphics/layout/blueup.gif';
		document.getElementById('brandsort').style.zIndex = '100';
	} else {
		document.getElementById('brandsort').style.overflow = 'hidden';
		document.getElementById('blue').src = '/graphics/layout/bluedown.gif';
		document.getElementById('brandsort').style.zIndex = '1000';
	}
	return false;
}

function prodTabs(ele) {
	var tabs = Array('details','returns','delivery');
	var bg = Array('#eee','#ddd','#ccc');
	for (i=0;i<tabs.length;i++) {
		if (ele == tabs[i]) {
			document.getElementById(tabs[i]).style.display = "block";
			document.getElementById('prod_details').style.backgroundColor = bg[i];
		} else {
			document.getElementById(tabs[i]).style.display = "none";
		}
	}
}

function setDrag(img) {
	var mydrag = new Draggable(img,{ 
		zindex: 10, 
		starteffect: false,
		endeffect: false,
		snap: function(x,y,draggable) { 
			function constrain(n, lower, upper) { 
				if (n < upper) return upper; 
				else if (n > lower) return lower; 
				else return n; 
			} 
			element_dimensions = Element.getDimensions(draggable.element); 
			parent_dimensions = Element.getDimensions(draggable.element.parentNode); 
			return[ 
				constrain(x, 0, parent_dimensions.width - element_dimensions.width), 
				constrain(y, 0, parent_dimensions.height - element_dimensions.height) 
			]; 
		}, 
		revert:false 
	});
}

function centreImg(img, newImg) {
	img.height = newImg.height;
	img.width = newImg.width;
	var h = img.height;
	var w = img.width;
	var topPos = Math.round((h-370)/2);
	var leftPos = Math.round((w-247)/2);
	topPos = topPos+"";
	leftPos = leftPos+"";
	if (topPos.charAt(0) != "-") {
		topPos = "-"+topPos+"px";
		leftPos = "-"+leftPos+"px";
	} else {
		topPos = topPos+"px";
		leftPos = leftPos+"px";
	}
	img.style.top = topPos;
	img.style.left = leftPos;
}

function imgZoom() {
	var img = document.getElementById('large-image_1');
	var zoomLink = document.getElementById('zoom_img');
	var holder = document.getElementById('prod_img');
	if (img.src == window.oText) {
		holder.innerHTML = "<img src='"+window.ozText+"' id='large-image_1' />";
		img = document.getElementById('large-image_1');
		setDrag(img);
		centreImg(img, window.zoomedImg);
		img.style.cursor = "move";
		document.getElementById('zoom').innerHTML = "Zoom Out";
	} else if (img.src == window.bText) {
		holder.innerHTML = "<img src='"+window.zbText+"' id='large-image_1' />";
		img = document.getElementById('large-image_1');
		setDrag(img);
		centreImg(img, window.zoomedBackImg);
		img.style.cursor = "move";
		document.getElementById('zoom').innerHTML = "Zoom Out";
	} else if (img.src == window.zbText) {
		holder.innerHTML = "<a href='#' onclick='imgZoom(); return false;'><img src='"+window.bText+"' id='large-image_1' /></a>";
		img = document.getElementById('large-image_1');
		centreImg(img, window.backImg);
		img.style.cursor = "pointer";
		document.getElementById('zoom').innerHTML = "Zoom In";
	} else {
		holder.innerHTML = "<a href='#' onclick='imgZoom(); return false;'><img src='"+window.oText+"' id='large-image_1' /></a>";
		img = document.getElementById('large-image_1');
		centreImg(img, window.originalImg);
		img.style.cursor = "pointer";
		document.getElementById('zoom').innerHTML = "Zoom In";
	}
}

function backView() {
	var holder = document.getElementById('prod_img');
	var imgSrc = document.getElementById('large-image_1').src
	if (imgSrc.search(/medium/) != -1) {
		holder.innerHTML = "<a href='#' onclick='imgZoom(); return false;'><img src='"+window.bText+"' id='large-image_1' /></a>";
		img = document.getElementById('large-image_1');
		centreImg(img, window.backImg);
		img.style.cursor = "pointer";
		document.getElementById('zoom').innerHTML = "Zoom In";
	} else {
		holder.innerHTML = "<img src='"+window.zbText+"' id='large-image_1' />";
		img = document.getElementById('large-image_1');
		setDrag(img);
		centreImg(img, window.zoomedBackImg);
		img.style.cursor = "move";
		document.getElementById('zoom').innerHTML = "Zoom Out";
	}
}

function frontView() {
	var holder = document.getElementById('prod_img');
	var imgSrc = document.getElementById('large-image_1').src
	if (imgSrc.search(/medium/) != -1) {
		holder.innerHTML = "<a href='#' onclick='imgZoom(); return false;'><img src='"+window.oText+"' id='large-image_1' /></a>";
		img = document.getElementById('large-image_1');
		centreImg(img, window.backImg);
		img.style.cursor = "pointer";
		document.getElementById('zoom').innerHTML = "Zoom In";
	} else {
		holder.innerHTML = "<img src='"+window.ozText+"' id='large-image_1' />";
		img = document.getElementById('large-image_1');
		setDrag(img);
		centreImg(img, window.zoomedBackImg);
		img.style.cursor = "move";
		document.getElementById('zoom').innerHTML = "Zoom Out";
	}
}

function oosCheck() {
	if (document.forms['product'].p[document.forms['product'].p.selectedIndex].className == "oos") {
		alert('Sorry, this size is currently not available.\nPlease select another size, or contact us on 01803 866 681 to find out about availability.');
	} else {
		return false;
	}
}

function setBrand(cat, brand) {
	if (brand > 0) {
		document.cookie = cat+'='+brand+'; path=/';
	} else {
		document.cookie = cat+'='+brand+'; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/;';
	}
	document.getElementById('sortForm').submit();
}

function setOrder(order) {
	document.cookie = 'sortOrder='+order+'; path=/';
	document.getElementById('sortForm').submit();
}

function buttonOver(e) {
	ele = getSrcElement(e);
	ele.className = "buttonOver";
}

function buttonOut(e) {
	ele = getSrcElement(e);
	ele.className = "button";
}

function rightOver(e) {
	ele = getSrcElement(e);
	ele.className = "float_rightOver";
}

function rightOut(e) {
	ele = getSrcElement(e);
	ele.className = "float_right";
}

function getSrcElement(ele) {
	if (window.event) ele = window.event;  
	var srcEle = ele.srcElement? ele.srcElement : ele.target;  
	return srcEle;
}

function basketSubmit() {
	var hidden = document.createElement('input');
	hidden.setAttribute('type','hidden');
	hidden.setAttribute('name','button-spacer');
	hidden.setAttribute('value','button-spacer');
	document.forms['basket'].appendChild(hidden); 
	document.forms['basket'].submit();
}

function addEvent(obj, evType, fn) { 
	if (obj.addEventListener) { 
		obj.addEventListener(evType, fn, false); 
		return true; 
	} else if (obj.attachEvent) { 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} else { 
		return false; 
	} 
}

function removeEvent(obj, evType, fn) { 
	if (obj.removeEventListener) { 
		obj.removeEventListener(evType, fn, false); 
		return true; 
	} else if (obj.detachEvent) { 
		var r = obj.detachEvent("on"+evType, fn); 
		return r; 
	} else { 
		return false; 
	} 
}

var oText, ozText, bText, zbText, originalImg, zoomedImg, backImg, zoomedBackImg;

window.onload = function() {
	if (document.getElementById('large-image_1')) {
		
		window.oText = document.getElementById('large-image_1').src;
		window.ozText = oText.replace(/medium/,'originals');
		window.bText = oText.replace(/f.jpg/,'b.jpg');
		window.zbText = oText.replace(/medium/,'originals');
		window.zbText = zbText.replace(/f.jpg/,'b.jpg');
		
		window.originalImg = new Image();
		originalImg.src = document.getElementById('large-image_1').src;
		window.zoomedImg = new Image();
		zoomedImg.src = ozText;
		window.backImg = new Image();
		backImg.src = bText;
		window.zoomedBackImg = new Image();
		zoomedBackImg.src = zbText;
		
		addEvent(document.getElementById('zoom_img'), 'click', imgZoom);
		addEvent(document.getElementById('zoom_but'), 'click', imgZoom);
		addEvent(document.getElementById('previous-image'), 'click', frontView);
		addEvent(document.getElementById('next-image'), 'click', backView);
		
	}
	if (document.getElementById('brandLink')) {
		addEvent(document.getElementById('brandLink'), 'click', brandSort);
	}
	if (document.getElementById('product')) {
		var opts = document.forms['product'].p.getElementsByTagName('option');
		for (i=0;i<opts.length;i++) {
			if (opts[i].className != "oos") {
				document.forms['product'].p.selectedIndex = i;
				break;
			}
		}
		addEvent(document.forms['product'].p, 'change', oosCheck);
	}
	var inputs = document.getElementsByTagName('input');
	for (i=0;i<inputs.length;i++) {
		if (inputs[i].type == 'button' || inputs[i].type == 'submit' || inputs[i].type == 'reset') {
			if (inputs[i].className != 'float_right important') {
				inputs[i].className = 'button';
				addEvent(inputs[i], 'mouseover', buttonOver);
				addEvent(inputs[i], 'mouseout', buttonOut);
			} else {
				addEvent(inputs[i], 'mouseover', rightOver);
				addEvent(inputs[i], 'mouseout', rightOut);
			}
		}
	}
	if (document.forms['basket']) {
		var inputs = document.forms['basket'].getElementsByTagName('input');
		for (i=0;i<inputs.length;i++) {
			if (inputs[i].type == 'text') {
				addEvent(inputs[i], 'keyup', basketSubmit);
			}
			if (inputs[i].type == 'checkbox') {
				addEvent(inputs[i], 'click', basketSubmit);
			}
		}
	}
}
