// jsEffects.js


// 01. toggleInputBox
//------------------------------------------------------------------------------------------

function toggleInputBox(id,text){

var obj = document.getElementById(id);
	if(obj.value == text){
		obj.value = "";
	}else if(trim(obj.value) == ""){
		obj.value = text;
	}else{
		obj.value = trim(obj.value);
	}
	
}


// 02. ratingHover
//------------------------------------------------------------------------------------------

function ratingHover(num){
	for (i = 1; i<=5; i++){
		document.getElementById("star_"+i).src = '/images/c4b_icon_nostar.jpg';
	}
	for (i = 1; i<=num; i++){
		document.getElementById("star_"+i).src = '/images/c4b_icon_star.jpg';
	}		
}

function ratingOut2(){
	window.setTimeout('ratingOut()', 1000);
}

function ratingOut(){
	for (i = 1; i<=5; i++){
		document.getElementById("star_"+i).src = '/images/c4b_icon_nostar.jpg';
	}
	var selected = document.getElementById("rating_num").value;
	for (i = 1; i<=selected; i++){
		document.getElementById("star_"+i).src = '/images/c4b_icon_star.jpg';
	}
}

function ratingDown(num){
	document.getElementById("rating_num").value = num;
}


// 03. toggleSideTabs
//------------------------------------------------------------------------------------------

function toggleSideTabs(id){
	
	var tabsid = "side_tabs";

	var text = document.getElementById("side_"+id).parentNode.childNodes;
	for (var i = 0; i < text.length; i++) {
		if(text[i].id != undefined){
			if(text[i].id != tabsid){
				text[i].style.display = 'none';
			}
		}
	}
	
	var tabs = document.getElementById("side_tabs").getElementsByTagName("a");
	for (var i = 0; i < tabs.length; i++) {
		tabs[i].className = '';
	}	
	document.getElementById("side_"+id).style.display="block";
	document.getElementById("tab_"+id).className="tab_selected";

}


// 04. trim
//------------------------------------------------------------------------------------------

function trim(str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}


// 05. tooltips
//------------------------------------------------------------------------------------------

$(function() {
	$('#proinfo_icondetails *').tooltip({ 
		track: true, 
		delay:0,
		showURL: false
	}); 
	$('.prolist_icondetails *').tooltip({ 
		track: true, 
		delay:0,
		showURL: false
	});
	$('.helppoint').tooltip({ 
		track: true, 
		delay:0,
		showURL: false
	});
});



// 06. viewShipping
//------------------------------------------------------------------------------------------

function viewShipping(){
	if ($('#shipping_details').is(":hidden")){
        $('#shipping_details').slideDown("normal");
	}else{
        $('#shipping_details').slideUp("normal");
	}
}
	
// 07. populate_bundle_colours
//------------------------------------------------------------------------------------------

function populate_bundle_colours(){
	if(document.getElementById("colours")){
		this_colour = document.getElementById("colours").value
		if(document.getElementById("colours_1"))
			document.getElementById("colours_1").value = this_colour
		if(document.getElementById("colours_2"))
			document.getElementById("colours_2").value = this_colour
		if(document.getElementById("colours_3"))
			document.getElementById("colours_3").value = this_colour
	}
}


// 08. populate_bundle_text
//------------------------------------------------------------------------------------------

function populate_bundle_text(row, i, prodname, prodid){
	this_size = document.getElementById("bed_sizes").value
	this_str = '<li class="clearfix"><form action="/shop/display_basket.html" method="post" class="bundle_purchase"><a href="/'+row[7]+'"><img src="/images/50/50/'+row[8]+'.jpg" alt="'+row[1]+'" /></a><div class="bundle_titles"><a href="/'+row[7]+'">'+row[1]+'</a> ('+row[5]+')</div> <div class="bundle_prices"><span>\u00A3'+row[3]+'</span> (Normally \u00A3'+row[4]+') || Total Price: <strong>\u00A3'+row[6]+'</strong></div> <select name="quantity"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option></select> <input type="submit" name="action" value="Add to Basket" class="btn_addtobasket_sm"/><input type="hidden" name="bed_sizes" id="bed_sizes_'+i+'"/><input type="hidden" name="colours" id="colours_'+i+'"/><input type="hidden" name="productid" value="'+prodid+'"/><input type="hidden" name="productid2" value="'+row[0]+'"/></form></li>'
	//this_str = '<li class="clearfix"><form action="/shop/display_basket.html" method="post" class="bundle_purchase"><img src="#" alt="'+row[1]+'" /><span class="bundle_titles">Buy '+row[1]+' for \u00A3'+row[3]+' (normally \u00A3'+row[4]+') with '+prodname+' ('+row[5]+')<br/>Total Price: \u00A3'+row[6]+' <input type="submit" name="action" value="Add to Basket"/><input type="hidden" name="bed_sizes" id="bed_sizes_'+i+'"/><input type="hidden" name="colours" id="colours_'+i+'"/><input type="hidden" name="productid" value="'+prodid+'"/><input type="hidden" name="productid2" value="'+row[0]+'"/></form></li>'
	return this_str
}

// Browser detect

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

// 09. populate_bundles
//------------------------------------------------------------------------------------------
	
function populate_bundles(bd, prodname, prodid){
	if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 8) {
		//document.getElementById('bundle_deals').innerHTML = '<li style="color: red;">Error - your browser can not bisplay this section. Please call us on +44 (0)1484 666563</li>';
	} else {
		if(document.getElementById("bed_sizes")){
			this_size = document.getElementById("bed_sizes").value
			size = this_size.split("::")
	
			arr = bd.split("::")
			str = []
			k=1
			for(i=0; i<=arr.length-1; i++){
				row = arr[i].split(",")
				if(row[2] == size[1]){
					str = str+populate_bundle_text(row, k, prodname, prodid)
					k++
				}
			}
			document.getElementById("bundle_deals").innerHTML = str
		
			document.getElementById("bed_sizes_1").value = this_size
			document.getElementById("bed_sizes_2").value = this_size
			if(document.getElementById("bed_sizes_3"))
				document.getElementById("bed_sizes_3").value = this_size
		
			populate_bundle_colours()
		}else
			document.getElementById("product_bundles").style.display = "none"
		change_price()
	} // End browser detect
}


// 10. show_image
//------------------------------------------------------------------------------------------

function show_image(img){
	var target = document.getElementById("proimg_main").getElementsByTagName("img");
	for(var i = 0; i < target.length; i++){
		target[i].src = "/images/339/339/"+img+".jpg";
		target[i].jqimg = "/images/2500/2500/"+img+".jpg";
	}
}


// 11. toggleRecommended
//------------------------------------------------------------------------------------------

function toggleRecommended(id){

	var date = new Date();
	date.setTime(date.getTime()+(7*24*60*60*1000));
	var expires = date.toGMTString();

	if(document.getElementById(id).innerHTML == "Hide"){
		$(document.getElementById('smooth_content')).slideUp("normal");
		document.getElementById(id).innerHTML = "Show";
		document.getElementById(id).className = "state_show";
		document.cookie ='rec=hidden; expires='+expires+'; path=/'
	}else{
		$(document.getElementById('smooth_content')).slideDown("normal");
		document.getElementById(id).innerHTML = "Hide"
		document.getElementById(id).className = "state_hide";
		document.cookie ='rec=visible; expires='+expires+'; path=/'
	}

}


// 11. toggleFilter
//------------------------------------------------------------------------------------------

function toggleFilter(id){

	var date = new Date();
	date.setTime(date.getTime()+(7*24*60*60*1000));
	var expires = date.toGMTString();

	if(document.getElementById(id).innerHTML == "Hide"){
		$(document.getElementById('smooth_content')).slideUp("normal");
		document.getElementById(id).innerHTML = "Show";
		document.getElementById(id).className = "state_show";
		document.cookie ='filter=hidden; expires='+expires+'; path=/'
	}else{
		$(document.getElementById('smooth_content')).slideDown("normal");
		document.getElementById(id).innerHTML = "Hide"
		document.getElementById(id).className = "state_hide";
		document.cookie ='filter=visible; expires='+expires+'; path=/'
	}

}


// 11. toggleSmooth
//------------------------------------------------------------------------------------------

function toggleSmooth(id){

	if(document.getElementById(id).innerHTML == "Hide"){
		$(document.getElementById('smooth_content')).slideUp("normal");
		document.getElementById(id).innerHTML = "Show";
		document.getElementById(id).className = "state_show";
	}else{
		$(document.getElementById('smooth_content')).slideDown("normal");
		document.getElementById(id).innerHTML = "Hide"
		document.getElementById(id).className = "state_hide";
	}

}


// xx. Drop Menu Functions
//------------------------------------------------------------------------------------------

var timeout	= 500;
var timein = 0;
var closetimer	= 0;
var currentSub = 0;
var opentimer = 0;


function subOpen(id){
	cancelClose();
	opentimer = window.setTimeout('subOpen2(\''+id+'\')', timein);
	timein = 500;
}

function subOpen2(id){	
	if(opentimer){
		if(currentSub) currentSub.style.display = "none";
		currentSub = document.getElementById(id).getElementsByTagName("ul");
		currentSub = currentSub[0];
		currentSub.style.display = "block";
		//$(currentSub).slideDown("normal");
	}	
}

function subClose(){
	if(currentSub){
		currentSub.style.display = "none";
		//$(currentSub).slideUp("normal");
	}
}

function subCloseTimer(){
	closetimer = window.setTimeout(subClose, timeout);
}

function cancelClose(){
	subCancelOpen()
	if(closetimer){
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

function subCancelClose(){
	subCancelOpen()
	if(closetimer){
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

function subCancelOpen(){
	if(opentimer){
		window.clearTimeout(opentimer);
		opentimer = null;
	}
}

document.onclick = subClose;