function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}
var current_piv = document.getElementById('piv-0');
var current_pi = document.getElementById('pi-0');
var current_click = document.getElementById('click-0');
var scroll_top = 100;
function getScrollY() {
	var scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		scrOfY = window.pageYOffset;
	} else if( document.body && document.body.scrollTop ) {
		scrOfY = document.body.scrollTop;
	} else if( document.documentElement && document.documentElement.scrollTop ) {
		scrOfY = document.documentElement.scrollTop;
	}
	return scrOfY;
}

function switch_cover(cover_id, img_src) {
	hideAllMovies();
	hideAllMovieLinks();
	
	if (getScrollY() > scroll_top) {
		window.scrollTo(0, scroll_top);
	}
	var cover_divs = getElementsByClassName("product-image");
	for (i=0; i < cover_divs.length; i++) {
		cover_divs[i].style.display="none";
	}
	
	var cover_magnifies = getElementsByClassName("cover-magnify");
	for (i=0; i < cover_magnifies.length; i++) {
		cover_magnifies[i].style.display="";
	}
	var cover_divs = getElementsByClassName("cover current", "div");
	for (i=0; i < cover_divs.length; i++) {
		cover_divs[i].className="cover";
	}
	
	var divs = getElementsByClassName("extra-images-thumbnails", "div")[0].getElementsByTagName("div");
	for (i = 0, m = divs.length; i < m; i++) {
		divs[i].style.display = "none";
	}
	
	if (cover_id) {
		
		var divs = getElementsByClassName("print-link", "div");
		for (i = 0, m = divs.length; i < m; i++) {
			divs[i].style.display = "none";
		}
		document.getElementById("click-r-"+cover_id).className = "cover current";
		document.getElementById("pi-r-"+cover_id).style.display="block";
		document.getElementById("pi-r-img-"+cover_id).src = img_src;
		document.getElementById("pi-r-magnify-"+cover_id).style.display="none";
		if (document.getElementById("print-link-r-"+cover_id)) {
			document.getElementById("print-link-r-"+cover_id).style.display="block";
		}
	}
}

function switch_product(variation_id, img_src, main_thumbnail , extra_thumbnail, noscroll) {

	hideAllMovies();						
	showImage(variation_id);	
	hideAllImageLinks();	
	showMovieLink(variation_id);			

	// turn off current
	current_piv.style.display = "none";
	current_pi.style.display = "none";
	current_click.className = "additional-product";
	
	// set new current
	current_piv = document.getElementById("piv-" + variation_id);
	current_pi = document.getElementById("pi-" + variation_id);
	current_click = document.getElementById("click-" + variation_id);

	// current extra image
	var divs = getElementsByClassName("extra-images-thumbnails", "div")[0].getElementsByTagName("div");
	for (i = 0, m = divs.length; i < m; i++) {
		divs[i].style.display = "none";
	}

	var divs = getElementsByClassName("main-images-thumbnails", "div")[0].getElementsByTagName("div");
	for (i = 0, m = divs.length; i < m; i++) {
		divs[i].style.display = "none";
	}

	var divs = getElementsByClassName("print-link", "div");
	for (i = 0, m = divs.length; i < m; i++) {
		divs[i].style.display = "none";
	}
	document.getElementById("print-link-" + variation_id).style.display = "block";
	
	// update variation_id value for in send to friend form
	var sendToFriendInput = document.getElementById("sendto-friend-variationid-0");
	sendToFriendInput.value = variation_id;
	
	
		
	var	current_extra_click = document.getElementById("click-" + variation_id + "-extra");
	if(current_extra_click && extra_thumbnail){
		current_extra_click.style.display = "block";
	}
   
	
	var	current_main_thumbnail_click = document.getElementById("click-" + variation_id + "-main-thumbnail");
	if(current_main_thumbnail_click && main_thumbnail == 1){
		current_main_thumbnail_click.style.display = "block";
	}

	current_pi_img = current_pi.getElementsByTagName("img")[0];
	if (current_pi_img.src != img_src) {
		current_pi_img.src = img_src;
	}

	if (!noscroll && getScrollY() > scroll_top) {
		window.scrollTo(0, scroll_top);
	}
	// turn on new
	current_piv.style.display = "block";
	current_pi.style.display = "block";
	current_click.className = "additional-product current";

	var utility_belt = getElementsByClassName("add-to-favourites", "div")[0];
	if (utility_belt.style.visibility != "visible") {
		utility_belt.style.visibility = "visible";
	}
	var product_tabs = document.getElementById("producttabs");
	if (product_tabs.style.visibility != "visible") {
		product_tabs.style.visibility = "visible";
	}
	
	//hide final days banner on closed sofabeds
	if(main_thumbnail == 0){
		var final_days_banner = document.getElementById("final-days-banner");
		if(final_days_banner){ final_days_banner.style.display = "none"; }
	} else {
		var final_days_banner = document.getElementById("final-days-banner");
		if(final_days_banner){ final_days_banner.style.display = "block"; }
	}

}
var divs = document.getElementById("additional-products").getElementsByTagName("div");
var auto_height_links = new Array();
var auto_height_max = 0;
for (i = 0, m = divs.length; i < m; i++) {
	if (divs[i].className.indexOf("additional-product") == 0) {
		var links = divs[i].getElementsByTagName("a");
		for (j = 0, mj = links.length; j < mj; j++) {
			if (links[j].className == "name") {
				auto_height_links[auto_height_links.length] = links[j];
				break;
			}
		}
	}
}
for (i = 0, m = auto_height_links.length; i < m; i++) {
	var height = auto_height_links[i].offsetHeight - 4;
	if (height > auto_height_max) {
		auto_height_max = height;
	}
}
for (i = 0, m = auto_height_links.length; i < m; i++) {
 	if(auto_height_max < 26){
		auto_height_max = 26;
	}
	
	auto_height_links[i].style.height = auto_height_max + "px";
}

var filler_image = $("filler-image");
if(filler_image){
	var desired_height = $$(".additional-product")[0].getDimensions().height;
	var pod_class = filler_image.classNames();
	
	if(pod_class == "pod-4"){
	
			filler_image.setStyle({
				height: "135px"
			});
	
	} else {
	
		if (desired_height < 135) {
			filler_image.setStyle({
				height: "142px"
			});
		} else {
			
			filler_image.setStyle({
				height: desired_height+"px"
				//height: "120px"
			});
		}
	
	}
	// NP 20th July 2009 - fix for double width filler on IE6
	// for some reason, "filler_image" has no width. but when you give it a full
	// one, it's offset incorrectly
	if (pod_class != "pod-1" && Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 6) {
		filler_image.setStyle({
			width:filler_image.firstDescendant().width+"px"
		});
	}
}

var corner_group_image = $("corner-group-cube");
if(corner_group_image){
	var desired_height = $$(".additional-product")[0].getDimensions().height-1;
	if (desired_height < 140) {
		corner_group_image.setStyle({
			height: "140px"
		});
	} else {
		corner_group_image.setStyle({
			height: desired_height+"px"
		});
	}
}

var corner_group_image_container = $("corner-group-cube-container");
if(corner_group_image_container){
	var desired_height = $$(".additional-product")[0].getDimensions().height-1;
	if (desired_height < 135) {
		corner_group_image_container.setStyle({
			height: "135px"
		});
	} else {
		corner_group_image_container.setStyle({
			height: desired_height+"px"
		});
	}
}

/*
* Functions for Product Videos
*/

if($$('div.movie-link').size() > 0){
	$$('div.movie-link').each(function(s){
		var view_movie_button_id = s.getAttribute("id");
		var variation_id = view_movie_button_id.replace("view-movie-link-", "");
		
		$(view_movie_button_id).observe("click", function(){
			showMovieClick(variation_id);
		});
	});
	
	$$('div.image-link').each(function(s){
		var view_image_button_id = s.getAttribute("id");
		var variation_id = view_image_button_id.replace("view-image-link-", "");	
		
		$(view_image_button_id).observe("click", function(){
			showImageClick(variation_id);
		});
	});	
}

function showMovieClick(variation_id){
	hideAllImages();
	showMovie(variation_id);
	hideMovieLink(variation_id);
	showImageLink(variation_id);
}

function showImageClick(variation_id){
	hideAllMovies();
	showImage(variation_id);
	hideImageLink(variation_id);
	showMovieLink(variation_id);
}

function showMovie(id){
	var movie_id = "movie-" + id;

	var thumbnail_id = "click-" + id + "-extra";	
	if($(thumbnail_id)){
		$(thumbnail_id).style.display = "none"
	}	
	
	var thumbnail_id = "click-" + id + "-main-thumbnail";	
	if($(thumbnail_id)){
		$(thumbnail_id).style.display = "none"
	}		
	
	if($(movie_id)){	
		$(movie_id).show();
	}
}

function hideAllImages(){
	$$('div.product-image').each(function(s){
		s.hide();
	});
}

function hideAllMovies(){
	$$('div.product-video').each(function(s){
		s.hide();
	});
}

function hideMovie(id){
	var movie_id = "movie-" + id;
	
	if($(movie_id)){	
		$(movie_id).hide();
	}
}

function showImage(id){

	var image_id = "pi-" + id;
	if($(image_id)){	
		$(image_id).style.display = "block";
	}
	
	var thumbnail_id = "click-" + id + "-main-thumbnail";
	if($(thumbnail_id)){
		$(thumbnail_id).style.display = "block"
	}	
}

function hideImage(id){
	var image_id = "pi-" + id;
	if($(image_id)){
		$(image_id).style.display = "none";	
	}
	
	var thumbnail_id = "click-" + id + "-main-thumbnail";	
	if($(thumbnail_id)){
		$(thumbnail_id).style.display = "none"
	}	
}

function hideMovieLink(id){
	var movie_id = "view-movie-link-" + id;
	
	if($(movie_id)){
		$(movie_id).hide();
	}
}

function hideAllImageLinks(){
	$$('div.image-link').each(function(s){
		s.hide();
	});
}

function hideAllMovieLinks(){
	$$('div.movie-link').each(function(s){
		s.hide();
	});
}

function showMovieLink(id){

	hideAllMovieLinks();
	

	var movie_id = "view-movie-link-" + id;
	if($(movie_id)){	
		$(movie_id).show();
	}
}

function hideImageLink(id){
	var image_id = "view-image-link-" + id;
	if($(image_id)){	
		$(image_id).hide();
	}
}

function showImageLink(id){
	var image_id = "view-image-link-" + id;
	if($(image_id)){		
		$(image_id).show();
	}
}

