var dozoom;
var imgswap;
var newpic = new Image();
var firstrun = 1;
var donefirst;
var base = document.getElementsByTagName('base')[0].href;

// Change these
var rotatetime = 2500; // Time for each image to be displayed in milliseconds
var fadetime = 800; // Time for cross-fade in milliseconds

// Don't touch these!
var rotateimgs = new Array();
var pos = 0;
var go;
var inprogress = 0;

function getimages(div) {
	var container = $(div);
	if(div == "mainimg") var nodes = "IMG";
	else var nodes = "A";
	for(var i = 0; i < container.childNodes.length; i++) {
		if(container.childNodes[i].nodeName == nodes) {
			container.childNodes[i].id = "fadeimg_" + i;
			$('fadeimg_' + i).style.display = "none";
			rotateimgs[rotateimgs.length] = container.childNodes[i];
			if(rotateimgs.length == 1) container.childNodes[i].style.display = "block";
		}
	}
	if(rotateimgs.length > 1) go = setInterval(rotateimages, rotatetime + fadetime);
}

function rotateimages() {
	if(!rotateimgs[pos + 1]) var newpos = 0;
	else var newpos = pos + 1;
	fadeimg(rotateimgs[newpos], rotateimgs[pos]);
	pos = newpos;
}

function fadeimg(el, oldel) {
	var myFade = new Fx.Tween($(el.id), {
		duration: fadetime,
		onStart: function() { inprogress = 1; },
		onComplete: function() { 
			oldel.style.display = "none";
			inprogress = 0;
		}
	});
	myFade.set('opacity', 0);
	el.style.display = "block";
	oldel.style.zIndex = 4;
	el.style.zIndex = 5;
	myFade.start('opacity', 1);
}

function showprev() {
	if(pos == 0) fadeto(rotateimgs.length - 1);
	else fadeto(pos - 1);
}
function shownext() {
	if(pos == rotateimgs.length - 1) fadeto(0);
	else fadeto(pos + 1);
}

function fadeto(newpos) {
	if(newpos != pos && inprogress != 1) {
		fadeimg(rotateimgs[newpos], rotateimgs[pos]);
		pos = newpos;
		clearInterval(go);
	}
}

function showbox(id) {
	if(id == "newbox") {
		$('newbox').style.display = "block";
		$('newlink').className = "newbesthead curnbh";
		$('bestbox').style.display = "none";
		$('bestlink').className = "newbesthead";
	}
	else if(id == "bestbox") {
		$('bestbox').style.display = "block";
		$('bestlink').className = "newbesthead curnbh";
		$('newbox').style.display = "none";
		$('newlink').className = "newbesthead";
	}
}


function loadimg(id) {
	newpic = new Image(); 
	newpic.src = base + "products/" + id + "-large.jpg";
}

function domainimg(id) {
	var curimg = $('productimg').src;
	var imgbits = curimg.split("/");
	if(imgbits[imgbits.length - 1] != (id + "-large.jpg")) {
		imgswap = new Fx.Tween('productimg', { property: 'opacity', link: 'chain' });
		$('productimg').fade('out');
		loadimg(id);
		imgswap.start(0).chain(function() { checkimg(id) });
	}
}

function checkimg(id) {
	if(newpic.complete) {
		$('productimg').src = newpic.src;
		$('productimg').alt = $('productthumb' + id).alt;
		$('productimg').title = $('productimg').alt;
		shownewimg(id);
	}
	else setTimeout("checkimg(" + id + ")", 100);
}

function shownewimg(id) {	
	$('productimg').fade('in');
}

function setcol(vartype, colid, init) {
	var prevcol = $('selection' + vartype).value;
	$('selection' + vartype).value = colid;
	$('colourbox' + prevcol).className = "colbox";
	$('colourbox' + colid).className = "colbox coloursel";
	if(typeof init == "undefined") checkstock();
}
function fixcol() {
	var cols = $('colboxes').value;
	if(cols.length > 0) {
		var colbits = cols.split("|");
		for(var i = 0; i < colbits.length - 1; i++) {
			var defcol = $('defaultcol' + colbits[i]).value;
			$('colourbox' + defcol).className = "colbox";
			setcol(colbits[i], $('selection' + colbits[i]).value, 0);
		}
	}
}
function checkstock() {
	var varids = $('varids').value;
	varids = varids.split("|");
	var optionsstr = "prodid=" + $('prodid').value + "&versionids=" + $('verids').value + "&presel=" + $('presel').value;
	for(var i = 0; i < varids.length - 1; i++) {
		optionsstr += "&var[]=" + $('selection' + varids[i]).value;
	}
	if(firstrun == 1) {
		firstrun = 0;
		donefirst = 1;
		optionsstr += "&firstrun=1";
	}
	var curtime = new Date().getTime();
	optionsstr += "&curtime=" + curtime;
	doshopajax("cmsplus/store-stockcheck.php", optionsstr);
}

function stockupdate() {
	optionsstr = "prodid=" + $('prodid').value + "&verid=" + $('verid').value;
	doshopajax("cmsplus/store-stocknotify.php", optionsstr);
}
function getprice(currency, isbasket) {
	if(isbasket == 1) var useprice = $('finaltot').innerHTML;
	else {
		if($('saleprice')) var useprice = $('saleprice').innerHTML;
		else var useprice = $('ourprice').innerHTML;
	}
	optionsstr = "currency=" + currency + "&amt=" + useprice;
	doshopajax("cmsplus/store-currencyconvert.php", optionsstr);
}

function doshopajax(url, data) {
	var req = new Request({
		url: url,
		method: 'post', 
		onRequest: $('fl_loading').style.display = 'block',
		onSuccess: function(response) { doshopresponse(url, response); }
		});
	req.send(data);
}

function doshopresponse(url, response) {
	$('fl_loading').style.display = 'none';
	if(url == "cmsplus/store-stockcheck.php") {
		$('presel').value = "";
		updatestock(response);
	}
	else if(url == "cmsplus/store-stocknotify.php") stockmessage(response);
	else showmsg("alert&lt;&gt;&lt;&gt;&lt;&gt;" + response);
}

function stockmessage(response) {
	if(response == 1) showmsg("success&lt;&gt;&lt;&gt;&lt;&gt;We'll send you an email when we get more stock.");
	else if(response == 2) showmsg("alert&lt;&gt;&lt;&gt;&lt;&gt;You must be signed in to sign up for stock updates.");
	else if(response == 3) showmsg("alert&lt;&gt;&lt;&gt;&lt;&gt;You're already signed up for stock updates on this product.");
	else showmsg("error&lt;&gt;&lt;&gt;&lt;&gt;Sorry, we couldn't store your request right now. Please try again later.");

}

function updatestock(response) {
	$('pleasewait').style.display = "none";
	if(response == 0) {
		$('invalidcombo').style.display = "block";
		$('outstock').style.display = "none";
		if($('quantity')) $('quantity').style.display = "none";
		$('basketadd').style.display = "none";
	}
	else {
		var respbits = response.split("&");
		var curpart;
		for(var i = 0; i < respbits.length; i++) {
			if(respbits[i].indexOf("boxcontent=") == 0) {
				curpart[0] = "boxcontent";
				curpart[1] = respbits[i].substr(11);
				curpart[1] = curpart[1].replace(/\(FL_AMP\)/g, "&");
			}
			else curpart = respbits[i].split("=");
			if(curpart[0] == "swapto") {
				var newsels = curpart[1].split(";");
				for(var l = 0; l < newsels.length; l++) {
					var newsel = newsels[l].split(":");
					if($('selection' + newsel[0])) {
						if($('selection' + newsel[0]).tagName == "SELECT") {
							$('selection' + newsel[0]).value = newsel[1];
						}
						else {
							var prevcol = $('selection' + newsel[0]).value;
							$('selection' + newsel[0]).value = newsel[1];
							$('colourbox' + prevcol).className = "colbox";
							$('colourbox' + newsel[1]).className = "colbox coloursel";
						}
					}
				}
			}
			if(curpart[0] == "verid" && curpart[1] != "") $('verid').value = curpart[1];
			if(curpart[0] == "price") {
				if(donefirst == 1) donefirst = 0;
				else {
					if($('ourprice').innerHTML != curpart[1]) hilight('pricebox');
				}
				$('ourprice').innerHTML = curpart[1];
			}
			if(curpart[0] == "yousave" && $('yousave')) $('yousave').innerHTML = curpart[1];
			if(curpart[0] == "yousavepercent" && $('yousavepercent')) $('yousavepercent').innerHTML = curpart[1];
			if(curpart[0] == "saleprice" && $('saleprice')) $('saleprice').innerHTML = curpart[1];
			if(curpart[0] == "stock") {
				$('invalidcombo').style.display = "none";
				if(curpart[1] == 0) {
					$('outstock').style.display = "block";
					if($('quantity')) $('quantity').style.display = "none";
					$('basketadd').style.display = "none";
				}
				else {
					$('outstock').style.display = "none";
					var dropopt;
					var maxorder = $('maxorder').value;
					if(curpart[1] <= maxorder) var countto = curpart[1];
					else var countto = maxorder;
					if($('quantity')) {
						var quantlen = $('quantitybox').options.length;
						for(var k = 0; k < quantlen; k++) $('quantitybox').options[0] = null;
						for(var j = 1; j <= countto; j++) {
							dropopt = document.createElement("option");
							dropopt.text = j;
							dropopt.value = j;
							$('quantitybox').options.add(dropopt);
						}
						$('quantity').style.display = "block";
					}
					$('basketadd').style.display = "block";
				}
			}
			if(curpart[0] == "boxcontent") {
				if($('pricebox').innerHTML != curpart[1]) hilight('pricebox');
				$('pricebox').innerHTML = curpart[1];
			}
			if(curpart[0] == "defaultimage") {
				if(curpart[1] != -1) {
					var curimg = $('productimg').src;
					var imgbits = curimg.split("/");
					if(imgbits[imgbits.length - 1] != (curpart[1] + "-large.jpg")) domainimg(curpart[1]);
				}
			}
		}
	}
	doloyalty();
}

function otherchk() {
	if($('usertitle').value == -1) $('titleother').style.visibility = "visible";
	else $('titleother').style.visibility = "hidden";
}

function addressdel(id) {
	$('deladdress' + id).innerHTML = "to confirm you wish to delete this address, <a href=\"store/account/addresses/?address=" + id + "&amp;del=1\">click here<\/a>";
}
function listdel(id) {
	$('dellist' + id).innerHTML = "to confirm you wish to delete this list, <a href=\"store/account/lists/?id=" + id + "&amp;del=1\">click here<\/a>";
}
function delwish(id) {
	$('del_' + id) .value = 1;
	$('wishrow_' + id) .style.display = "none";
	
}
function searchbox(mode) {
	if(mode == 1) {
		if($('shopsearch').value == $('defsearch').value) $('shopsearch').value = "";
	}
	else {
		if($('shopsearch').value == "") $('shopsearch').value = $('defsearch').value;
	}
}

function newaddsel() { $('addressnew').checked = true; }
function hidecheck() { $('checkoutbutton').style.display = "none"; }

function sendfriend(prodid) {
	var base = document.getElementsByTagName('base')[0].href;
	window.open(base + 'store/sendfriend/?prodid=' + prodid,'','status=no,width=400,height=500,left=20,top=20,scrollbars=yes');
}

function dodesigner() {
	var des = $('designersdrop').value;
	var base = document.getElementsByTagName('base')[0].href;
	window.location = base + "store/designer/" + des;
}
function dodesignercat(catid) {
	var des = $('designercatdrop').value;
	var base = document.getElementsByTagName('base')[0].href;
	if($('lo')) {
		var urlbit = "lo=" + $('lo').value + "&hi=" + $('hi').value;
	}
	else var urlbit = "";
	if(catid == 1) {
		if(des == 0) window.location = base + "store/";
		else window.location = base + "store/designer/" + des + "/";
	}
	else {
		if($('catlink')) {
			if($('catlink').value != "") $('catlink').value = "category/" + $('catlink').value;
			var curpage = "store/" + $('catlink').value;
		}
		else {
			var curpage = location.href;
			if(curpage.indexOf("?") != -1) {
				var cpbits = curpage.split("?");
				curpage = cpbits[0];
			}
		}
		if(des == 0) {
			if(urlbit != "") urlbit = "?" + urlbit;
			window.location = curpage + urlbit;
		}
		else {
			if(urlbit != "") urlbit = "&" + urlbit;
			window.location = curpage + "?designer=" + des + urlbit;
		}
	}
}
function narrowprice() {
	if($('designer')) var urlbit = "designer=" + $('designer').value;
	else var urlbit = "";
	var price = $('narrowprice').value;
	var prices = price.split("-");
	if($('catlink')) {
		if($('catlink').value != "") $('catlink').value = "category/" + $('catlink').value;
		var base = document.getElementsByTagName('base')[0].href;
		var curpage = base + "store/" + $('catlink').value;
	}
	else {
		var curpage = location.href;
		if(curpage.indexOf("?") != -1) {
			var cpbits = curpage.split("?");
			curpage = cpbits[0];
		}
	}

	if(prices[0] == 0 && prices[1] == 0) {
		if(urlbit != "") urlbit = "?" + urlbit;
		window.location = curpage + urlbit;
	}
	else {
		if(urlbit != "") urlbit = "&" + urlbit;
		window.location = curpage + "?lo=" + prices[0] + "&hi=" + prices[1] + urlbit;
	}
}

function hilight(boxid) {
	if($(boxid)) {
		var myTween = new Fx.Tween(boxid, {duration: 1000});
		var endcol = $(boxid).getStyle('backgroundColor');
		myTween.start('background-color', '#ff9', endcol);
	}
}

function updatebasket() {
	$('updatebutton').click();
}

function choose(id) {
	$('options_' + id).style.display = "block";
}
function chosen(id, option, textdesc) {
	$('options_' + id).style.display = "none";
	if($('bundleitem_' + id).value == "") {
		var tochoose = $('tochoose').value * 1;
		tochoose = tochoose - 1;
		$('tochoose').value = tochoose;
		if(tochoose == 0) {
			$('quantity').style.display = "block";
			$('basketadd').style.display = "block";
		}
	}
	$('bundleitem_' + id).value = option;
	$('link_' + id).innerHTML = textdesc + " (Click to change)";
	$('desc_' + id).value = textdesc;
}
function chosendrop(productid, prodname) {
	var option = $('productver_' + productid).value;
	var w = $('productver_' + productid).selectedIndex;
	var textdesc = prodname + ": " + $('productver_' + productid).options[w].text;
	chosen(productid, option, textdesc);
	if(option == "") {
		var tochoose = $('tochoose').value * 1;
		tochoose = tochoose + 1;
		$('tochoose').value = tochoose;
		$('quantity').style.display = "none";
		$('basketadd').style.display = "none";
	
	}
}

function dolistlink(isblur) {
	var listlink = $('listlink').value;
	listlink = listlink.replace(/ /g, '-');
	listlink = listlink.toLowerCase();
	listlink = listlink.replace(/[^a-z0-9\-]/g, '');
	listlink = listlink.replace(/[-]+/g, '-');
	if(listlink == "") listlink = "my-link";
	$('showlistlink').innerHTML = listlink;
	if(listlink == "my-link") listlink = "";
	if(isblur == 1) $('listlink').value = listlink;
}

function doloyalty() {
	if($('pointsper')) {
		var amt = $('ourprice').innerHTML;
		var fig = Math.floor(amt);
		var pointsper = $('pointsper').value;
		var pointsworth = $('pointsworth').value;
		var earn = fig * pointsper;
		var earnamt = earn * pointsworth;
		earnamt = Math.round(earnamt * 1000);
		earnamt = earnamt/1000;
		earnamt = earnamt + "";
		if(earnamt.indexOf(".") == -1) earnamt = earnamt + ".00";
		else {
			var earnbits = earnamt.split(".");
			if(earnbits[1].length == 1) earnamt = earnamt + "0";
		}
		$('loyaltypts').innerHTML = earn;
		$('loyaltyamt').innerHTML = earnamt;
		$('loyalty').style.display = "block";
	}
}

// TJPzoom 3 * János Pál Tóth
// 2007.07.12
// Docs @ http://valid.tjp.hu/tjpzoom/ 
// News @ http://tjpzoom.blogspot.com/

function TJPzoomswitch(obj) {
 TJPon[obj]=((TJPon[obj])?(0):(1));
 return TJPon[obj];
}

function TJPzoomif(obj,highres) {
 if(TJPon[obj]) {TJPzoom(obj,highres);}
}

function TJPzoom(obj,highres) {
 TJPzoomratio=TJPzoomheight/TJPzoomwidth;
 if(TJPzoomoffsetx > 1) {
  TJPzoomoffset='dumb';
  TJPzoomoffsetx=TJPzoomoffsetx/TJPzoomwidth;
  TJPzoomoffsety=TJPzoomoffsety/TJPzoomheight;
 }
 if(!obj.style.width) {
  if(obj.width > 0) {
   //educated guess
   obj.style.width=obj.width+'px';
   obj.style.height=obj.height+'px';
  }
 }
 if(typeof(highres) != typeof('')) {highres=obj.src}
 var TJPstage=document.createElement("div");
 TJPstage.style.width=obj.style.width;
 TJPstage.style.height=obj.style.height;
 TJPstage.style.overflow='hidden';
 TJPstage.style.position='absolute';
 if(typeof(TJPstage.style.filter) != typeof(nosuchthing) && document.all) {
   //hi IE
   if((navigator.appVersion + '').indexOf('Mac') == -1 && navigator.appName == 'Microsoft Internet Explorer') { //Mac IE gets out
	TJPstage.style.filter='alpha(opacity=0)';
	TJPstage.style.backgroundColor='#ffffff';
   }
  } else {
   //hi decent gentlemen
   TJPstage.style.backgroundImage='transparent';
  }
 TJPstage.setAttribute('onmousemove','TJPhandlemouse(event,this);');
 TJPstage.setAttribute('onmousedown','TJPhandlemouse(event,this);');
 TJPstage.setAttribute('onmouseup','TJPhandlemouse(event,this);');
 TJPstage.setAttribute('onmouseout','TJPhandlemouse(event,this);');
 if(navigator.userAgent.indexOf('MSIE')>-1) {
  TJPstage.onmousemove = function() {TJPhandlemouse(event,this);}
  TJPstage.onmousedown = function() {TJPhandlemouse(event,this);}
  TJPstage.onmouseup = function() {TJPhandlemouse(event,this);}
  TJPstage.onmouseout = function() {TJPhandlemouse(event,this);}
 }
 obj.parentNode.insertBefore(TJPstage,obj);
 
 TJPwin=document.createElement("div");
 TJPwin.style.width='0px';
 TJPwin.style.height='0px';
 TJPwin.style.overflow='hidden';
 TJPwin.style.position='absolute';
 TJPwin.style.display='none';
 tw1='<div style="position:absolute;overflow:hidden;margin:';
 TJPwin.innerHTML= 
 tw1+TJPshadowthick+'px 0 0 '+TJPshadowthick+'px; background-color:'+TJPbordercolor+'; width:'+(TJPzoomwidth-TJPshadowthick*2)+'px;height:'+(TJPzoomheight-TJPshadowthick*2)+'px"></div>' +
 tw1+(TJPshadowthick+TJPborderthick)+'px 0 0 '+(TJPshadowthick+TJPborderthick)+'px; width:'+(TJPzoomwidth-TJPshadowthick*2-TJPborderthick*2)+'px;height:'+(TJPzoomheight-TJPshadowthick*2-TJPborderthick*2)+'px;"><img src="'+obj.src+'" style="position:absolute;margin:0;padding:0;border:0; width:'+(TJPzoomamount*parseInt(obj.style.width))+'px;height:'+(TJPzoomamount*parseInt(obj.style.height))+'px;" />'+((obj.src!=highres)?('<img src="'+highres+'" style="position:absolute;margin:0;padding:0;border:0; width:'+(TJPzoomamount*parseInt(obj.style.width))+'px;height:'+(TJPzoomamount*parseInt(obj.style.height))+'px;" onload="if(this.parentNode) {this.parentNode.parentNode.getElementsByTagName(\'div\')[2].style.display=\'none\';}" />'):(''))+'</div>';
 if(highres != obj.src) {
  TJPwin.innerHTML+='<div style="position:absolute; margin:'+(TJPshadowthick+TJPborderthick)+'px 0 0 '+(TJPshadowthick+TJPborderthick)+'px;">'+TJPloading+'</div>';
 }
 if(TJPshadowthick>0) {
  st1='<span style="position:absolute; display:inline-block; margin: ';
  st2='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=\'scale\',src='
  st3='filter:alpha(opacity=0);margin:0;padding:0;border:0;"/></span>';
  TJPwin.innerHTML+=
  st1+'0 0 0 0    ; width:'+TJPshadowthick*2+'px; height:'+TJPshadowthick*2+'px;'+st2+'\''+TJPshadow+'nw.png\')"><img src="'+TJPshadow+'nw.png" style="width:'+TJPshadowthick*2+'px; height:'+TJPshadowthick*2+'px;'+st3 +
  st1+'0 0 0 '+(TJPzoomwidth-TJPshadowthick*2)+'px; width:'+TJPshadowthick*2+'px; height:'+TJPshadowthick*2+'px;'+st2+'\''+TJPshadow+'ne.png\')"><img src="'+TJPshadow+'ne.png" style="width:'+TJPshadowthick*2+'px; height:'+TJPshadowthick*2+'px;'+st3 +
  st1+''+(TJPzoomheight-TJPshadowthick*2)+'px 0 0 0px; width:'+TJPshadowthick*2+'px; height:'+TJPshadowthick*2+'px;'+st2+'\''+TJPshadow+'sw.png\',sizingMethod=\'scale\')"><img src="'+TJPshadow+'sw.png" style="width:'+TJPshadowthick*2+'px; height:'+TJPshadowthick*2+'px;'+st3 +
  st1+''+(TJPzoomheight-TJPshadowthick*2)+'px 0 0 '+(TJPzoomwidth-TJPshadowthick*2)+'px; width:'+TJPshadowthick*2+'px; height:'+TJPshadowthick*2+'px;'+st2+'\''+TJPshadow+'se.png\',sizingMethod=\'scale\')"><img src="'+TJPshadow+'se.png" style="width:'+TJPshadowthick*2+'px; height:'+TJPshadowthick*2+'px;'+st3 +
  
  st1+'0 0 0 '+(TJPshadowthick*2)+'px; width:'+(TJPzoomwidth-TJPshadowthick*4)+'px; height:'+TJPshadowthick*2+'px;'+st2+'\''+TJPshadow+'n.png\',sizingMethod=\'scale\')"><img src="'+TJPshadow+'n.png" style="width:'+(TJPzoomwidth-TJPshadowthick*4)+'px; height:'+TJPshadowthick*2+'px;'+st3 +
  st1+''+(TJPshadowthick*2)+'px 0 0 0; width:'+(TJPshadowthick*2)+'px; height:'+(TJPzoomheight-TJPshadowthick*4)+'px;'+st2+'\''+TJPshadow+'w.png\',sizingMethod=\'scale\')"><img src="'+TJPshadow+'w.png" style="width:'+(TJPshadowthick*2)+'px; height:'+(TJPzoomheight-TJPshadowthick*4)+'px;'+st3 +
  st1+''+(TJPshadowthick*2)+'px 0 0 '+(TJPzoomwidth-TJPshadowthick*2)+'px; width:'+(TJPshadowthick*2)+'px; height:'+(TJPzoomheight-TJPshadowthick*4)+'px;'+st2+'\''+TJPshadow+'e.png\',sizingMethod=\'scale\')"><img src="'+TJPshadow+'e.png" style="width:'+(TJPshadowthick*2)+'px; height:'+(TJPzoomheight-TJPshadowthick*4)+'px;'+st3 +
  st1+''+(TJPzoomheight-TJPshadowthick*2)+'px 0 0 '+(TJPshadowthick*2)+'px; width:'+(TJPzoomwidth-TJPshadowthick*4)+'px; height:'+TJPshadowthick*2+'px;'+st2+'\''+TJPshadow+'s.png\',sizingMethod=\'scale\')"><img src="'+TJPshadow+'s.png" style="width:'+(TJPzoomwidth-TJPshadowthick*4)+'px; height:'+TJPshadowthick*2+'px;'+st3;
 }
 ;
 //marker - zoomer
 obj.parentNode.insertBefore(TJPwin,TJPstage);

 TJPresize(obj);
}

function TJPresize(obj) {
 sbr=0; sbl=0;
 if(TJPzoomwidth-2*TJPborderthick-3*TJPshadowthick < 22) {sbr=1}
 if(TJPzoomheight-2*TJPborderthick-3*TJPshadowthick < 22) {sbr=1}
 if(TJPzoomwidth > parseFloat(obj.style.width)) {sbl=1;}
 if(TJPzoomheight > parseFloat(obj.style.height)) {sbl=1}
 
 if(sbr==1 && sbl == 1) {
  TJPzoomwidth=parseFloat(obj.style.width)/2;
  TJPzoomheight=parseFloat(obj.style.height)/2;
  TJPzoomratio=TJPzoomheight/TJPzoomwidth;
 }

 if(sbr==1) {
  if(TJPzoomwidth<TJPzoomheight) {
   TJPzoomheight=TJPzoomheight/TJPzoomwidth*(22+2*TJPborderthick+3*TJPshadowthick); TJPzoomwidth=22+2*TJPborderthick+3*TJPshadowthick;
  } else {
   TJPzoomwidth=TJPzoomwidth/TJPzoomheight*(22+2*TJPborderthick+3*TJPshadowthick); TJPzoomheight=22+2*TJPborderthick+3*TJPshadowthick;
  }
 }
 

 if(sbl==1) {
  if(parseFloat(obj.style.width)/parseFloat(obj.style.height) > TJPzoomwidth/TJPzoomheight) {
   TJPzoomheight=parseFloat(obj.style.height);
   TJPzoomwidth=TJPzoomheight/TJPzoomratio;
  } else {
   TJPzoomwidth=parseFloat(obj.style.width);
   TJPzoomheight=TJPzoomratio*TJPzoomwidth;
  }
 }

 TJPzoomwidth=Math.floor(TJPzoomwidth/2)*2;
 TJPzoomheight=Math.floor(TJPzoomheight/2)*2;

 ww=obj.parentNode.getElementsByTagName('div')[0];
 ww.style.width=TJPzoomwidth+'px';
 ww.style.height=TJPzoomheight+'px';
 w=ww.getElementsByTagName('div')[0];
 w.style.width=TJPzoomwidth-TJPshadowthick*2+'px';
 w.style.height=TJPzoomheight-TJPshadowthick*2+'px';
 w=ww.getElementsByTagName('div')[1];
 w.style.width=TJPzoomwidth-TJPshadowthick*2-TJPborderthick*2+'px';
 w.style.height=TJPzoomheight-TJPshadowthick*2-TJPborderthick*2+'px';
 if(TJPshadowthick > 0) {
  w=ww.getElementsByTagName('span')[1]; w.style.margin='0 0 0 '+(TJPzoomwidth-TJPshadowthick*2)+'px';
  w=ww.getElementsByTagName('span')[2]; w.style.margin=(TJPzoomheight-TJPshadowthick*2)+'px 0 0 0px';
  w=ww.getElementsByTagName('span')[3]; w.style.margin=(TJPzoomheight-TJPshadowthick*2)+'px 0 0 '+(TJPzoomwidth-TJPshadowthick*2)+'px';

  w=ww.getElementsByTagName('span')[6]; w.style.margin=(TJPshadowthick*2)+'px 0 0 '+(TJPzoomwidth-TJPshadowthick*2)+'px';
  w=ww.getElementsByTagName('span')[7]; w.style.margin=(TJPzoomheight-TJPshadowthick*2)+'px 0 0 '+(TJPshadowthick*2)+'px';

  www=(TJPzoomwidth-TJPshadowthick*4)+'px';
  w=ww.getElementsByTagName('span')[4]; w.style.width=www;
  w=w.getElementsByTagName('img')[0]; w.style.width=www;
  w=ww.getElementsByTagName('span')[7]; w.style.width=www;
  w=w.getElementsByTagName('img')[0]; w.style.width=www;
  
  www=(TJPzoomheight-TJPshadowthick*4)+'px';
  w=ww.getElementsByTagName('span')[5]; w.style.height=www;
  w=w.getElementsByTagName('img')[0]; w.style.height=www;
  w=ww.getElementsByTagName('span')[6]; w.style.height=www;
  w=w.getElementsByTagName('img')[0]; w.style.height=www;
 }
}

function TJPfindposy(obj) {
 var curtop = 0;
 if(!obj) {return 0;}
 if (obj.offsetParent) {
  while (obj.offsetParent) {
   curtop += obj.offsetTop
   obj = obj.offsetParent;
  }
 } else if (obj.y) {
  curtop += obj.y;
 }
 return curtop;
}

function TJPfindposx(obj) {
 var curleft = 0;
 if(!obj) {return 0;}
 if (obj && obj.offsetParent) {
  while (obj.offsetParent) {
   curleft += obj.offsetLeft
   obj = obj.offsetParent;
  }
 } else if (obj.x) {
  curleft += obj.x;
 }
 return curleft;
}


function TJPhandlemouse(evt,obj) {
 var evt = evt?evt:window.event?window.event:null; if(!evt) { return false; }
 if(evt.pageX) {
  nowx=evt.pageX-TJPfindposx(obj)-TJPadjustx;
  nowy=evt.pageY-TJPfindposy(obj)-TJPadjusty;
 } else {
  if(document.documentElement && document.documentElement.scrollTop) {
   nowx=evt.clientX+document.documentElement.scrollLeft-TJPfindposx(obj)-TJPadjustx;
   nowy=evt.clientY+document.documentElement.scrollTop-TJPfindposy(obj)-TJPadjusty;
  } else {
   nowx=evt.x+document.body.scrollLeft-TJPfindposx(obj)-TJPadjustx;
   nowy=evt.y+document.body.scrollTop-TJPfindposy(obj)-TJPadjusty;
  }
 }
 if(evt.type == 'mousemove') {
  TJPsetwin(obj,nowx,nowy);
 } else if(evt.type == 'mousedown') {
  TJPmouse=1; //left: 1, middle: 2, right: 3
  TJPmousey=nowy;
  TJPmousex=nowx;
 } else if(evt.type =='mouseup') {
  TJPmouse=0;
 } else if(evt.type =='mouseout') {
  TJPmouse=0;
  if(navigator.appVersion.indexOf('Mac') == -1 || navigator.appVersion.indexOf('MSIE') == -1) { //hi Mac IE
   x=obj.parentNode;
   x.removeChild(x.getElementsByTagName('div')[0]);
   x.removeChild(x.getElementsByTagName('div')[0]);
  }
 }
}


// TJPzoom 3 * János Pál Tóth
// Docs @ http://valid.tjp.hu/tjpzoom/ 
// News @ http://tjpzoom.blogspot.com/


function TJPsetwin(obj,nowx,nowy) {
 obj.parentNode.getElementsByTagName('div')[0].style.display='block';
 if(TJPzoomoffset=='smart') {
  TJPzoomoffsetx=.1+.8*nowx/parseFloat(obj.style.width);
  TJPzoomoffsety=.1+.8*nowy/parseFloat(obj.style.height);
 }

 stage=obj.parentNode.getElementsByTagName('div')[0];
 if(TJPmouse == 1) {
  if(Math.abs(nowy-TJPmousey) >= 1) {
   TJPzoomamount*=((nowy>TJPmousey)?(0.909):(1.1));
   TJPmousey=nowy;
   if(TJPzoomamount < TJPzoomamountmin) {TJPzoomamount=TJPzoomamountmin;}
   if(TJPzoomamount > TJPzoomamountmax) {TJPzoomamount=TJPzoomamountmax;}
   stage.getElementsByTagName('div')[1].getElementsByTagName('img')[0].style.width=  parseInt(obj.style.width)*TJPzoomamount+'px';
   stage.getElementsByTagName('div')[1].getElementsByTagName('img')[0].style.height=  parseInt(obj.style.height)*TJPzoomamount+'px';
   if(stage.getElementsByTagName('div')[1].getElementsByTagName('img')[1]) {
    stage.getElementsByTagName('div')[1].getElementsByTagName('img')[1].style.width= stage.getElementsByTagName('div')[1].getElementsByTagName('img')[0].style.width;
    stage.getElementsByTagName('div')[1].getElementsByTagName('img')[1].style.height= stage.getElementsByTagName('div')[1].getElementsByTagName('img')[0].style.height;
   }
  }
  if(Math.abs(nowx-TJPmousex) >= 12 && TJPzoomwindowlock==0) {
   TJPzoomwidth*=((nowx>TJPmousex)?(1.1):(0.909));
   TJPzoomheight=TJPzoomwidth*TJPzoomratio;
   TJPresize(obj);
   TJPmousex=nowx;
  }
 }
 stage.style.marginLeft=nowx-(TJPzoomwidth -2*TJPborderthick-2*TJPshadowthick)*TJPzoomoffsetx-TJPborderthick-TJPshadowthick+'px';
 stage.style.marginTop= nowy-(TJPzoomheight-2*TJPborderthick-2*TJPshadowthick)*TJPzoomoffsety-TJPborderthick-TJPshadowthick+'px';
 clip1=0; clip2=TJPzoomwidth; clip3=TJPzoomheight; clip4=0;
 nwidth=TJPzoomwidth; nheight=TJPzoomheight;
 tmp=(1-2*TJPzoomoffsetx)*(TJPborderthick+TJPshadowthick);
 
 if(nowx-TJPzoomwidth*TJPzoomoffsetx < tmp) {
  clip4=TJPzoomwidth*TJPzoomoffsetx-nowx + tmp;
 } else if(parseFloat(nowx-TJPzoomwidth*TJPzoomoffsetx+TJPzoomwidth) > parseFloat(obj.style.width)+tmp) {
  clip2= TJPzoomwidth*TJPzoomoffsetx - nowx + parseFloat(obj.style.width)+tmp;
  nwidth=TJPzoomwidth*TJPzoomoffsetx-nowx+parseInt(obj.style.width)+TJPborderthick+TJPshadowthick;
 }
 
 tmp=(1-2*TJPzoomoffsety)*(TJPborderthick+TJPshadowthick);
 
 if(nowy-TJPzoomheight*TJPzoomoffsety < tmp) {
  clip1=TJPzoomheight*TJPzoomoffsety-nowy+tmp;
 } else if(parseFloat(nowy-TJPzoomheight*TJPzoomoffsety+TJPzoomheight) > parseFloat(obj.style.height)+tmp) {
  clip3= TJPzoomheight*TJPzoomoffsety - nowy + parseFloat(obj.style.height)+tmp;
  nheight=TJPzoomheight*TJPzoomoffsety - nowy + parseFloat(obj.style.height)+TJPborderthick+TJPshadowthick;
 }
 stage.style.width=nwidth+'px';
 stage.style.height=nheight+'px';

 stage.style.clip='rect('+clip1+'px,'+clip2+'px,'+clip3+'px,'+clip4+'px)';

 if(nowy-TJPzoomoffsety*(TJPzoomheight-2*TJPborderthick-2*TJPshadowthick) < 0) { t=-(nowy-TJPzoomoffsety*(TJPzoomheight-2*TJPborderthick-2*TJPshadowthick))} 
 else if(nowy-TJPzoomoffsety*(TJPzoomheight-2*TJPborderthick-2*TJPshadowthick) > parseFloat(obj.style.height)-TJPzoomheight+TJPborderthick*2+TJPshadowthick*2) { t=-TJPzoomamount*parseFloat(obj.style.height)+TJPzoomheight-TJPborderthick*2-TJPshadowthick*2-((nowy-TJPzoomoffsety*(TJPzoomheight-2*TJPborderthick-2*TJPshadowthick))-(parseFloat(obj.style.height)-TJPzoomheight+TJPborderthick*2+TJPshadowthick*2)); }
 else { t=(-TJPzoomamount*parseFloat(obj.style.height)+TJPzoomheight-TJPborderthick*2-TJPshadowthick*2)/(parseFloat(obj.style.height)-TJPzoomheight+TJPborderthick*2+TJPshadowthick*2)*(nowy-TJPzoomoffsety*(TJPzoomheight-2*TJPborderthick-2*TJPshadowthick)) }
 stage.getElementsByTagName('div')[1].getElementsByTagName('img')[0].style.marginTop=t+'px';

 if(stage.getElementsByTagName('div')[1].getElementsByTagName('img')[1]) {
  stage.getElementsByTagName('div')[1].getElementsByTagName('img')[1].style.marginTop=t+'px';
 }

 if(nowx-TJPzoomoffsetx*(TJPzoomwidth-2*TJPborderthick-2*TJPshadowthick) < 0) { t=-(nowx-TJPzoomoffsetx*(TJPzoomwidth-2*TJPborderthick-2*TJPshadowthick))} 
 else if(nowx-TJPzoomoffsetx*(TJPzoomwidth-2*TJPborderthick-2*TJPshadowthick) > parseFloat(obj.style.width)-TJPzoomwidth+TJPborderthick*2+TJPshadowthick*2) { t=-TJPzoomamount*parseFloat(obj.style.width)+TJPzoomwidth-TJPborderthick*2-TJPshadowthick*2-((nowx-TJPzoomoffsetx*(TJPzoomwidth-2*TJPborderthick-2*TJPshadowthick))-(parseFloat(obj.style.width)-TJPzoomwidth+TJPborderthick*2+TJPshadowthick*2)); }
 else { t=(-TJPzoomamount*parseFloat(obj.style.width)+TJPzoomwidth-TJPborderthick*2-TJPshadowthick*2)/(parseFloat(obj.style.width)-TJPzoomwidth+TJPborderthick*2+TJPshadowthick*2)*(nowx-TJPzoomoffsetx*(TJPzoomwidth-2*TJPborderthick-2*TJPshadowthick)) }
 stage.getElementsByTagName('div')[1].getElementsByTagName('img')[0].style.marginLeft=t+'px';

 if(stage.getElementsByTagName('div')[1].getElementsByTagName('img')[1]) {
  stage.getElementsByTagName('div')[1].getElementsByTagName('img')[1].style.marginLeft=t+'px';
 }
}

function TJPinit() {
 TJPadjustx=0; TJPadjusty=0;
 if(navigator.userAgent.indexOf('MSIE')>-1) {TJPadjustx=2;TJPadjusty=2;}
 if(navigator.userAgent.indexOf('Opera')>-1) {TJPadjustx=0; TJPadjusty=0;}
 if(navigator.userAgent.indexOf('Safari')>-1) {TJPadjustx=1; TJPadjusty=2;}
}

var TJPon=new Array();
var TJPadjustx,TJPadjusty;
var TJPmouse=0; var TJPmousey; var TJPmousex;
var TJPloading='<div style="background-color: #f6f6f6; color: #333333; padding:0 5px;font-size: 10px;">Loading...</div>';


TJPinit();

var TJPzoomratio;
var TJPzoomwidth=150;              //zoom window size
var TJPzoomheight=150; 
var TJPzoomwindowlock=0;           //set to 1 to lock window size
var TJPzoomoffset;
var TJPzoomoffsetx=0.5;
var TJPzoomoffsety=0.5;
var TJPzoomamount=3;
var TJPzoomamountmin=1;
var TJPzoomamountmax=10;

var TJPborderthick=1;              //border thickness, SET 0 to no borders
var TJPbordercolor='#cccccc';      //border color

var TJPshadowthick=0;              //shadow image size/2, SET 0 to have no shadows (saves cpu)
var TJPshadow='';

function gozoom() {
	var zoomimage = $('productimg').src.replace(/-large.jpg/, "-zoom.jpg");
	TJPzoom(this, zoomimage);
}

window.addEvent('domready', function() {
	if($('varids')) {
		fixcol();
		var presel = $('presel').value;
		checkstock();
	}
	if($('imgrotate')) getimages('imgrotate');
	if($('mainimg')) getimages('mainimg');
	if(dozoom == 1) {
		if($('productimg')) $('productimg').addEvent('mouseover', gozoom);
	}
});
