// JavaScript Document
// Brands Dropdown
function goBrand(v)
{
	if(v==0)
	{
		return false;
	}
	else
	{
		window.location = v;
	}
}

// Input box clearer
function restoreBox(f)  {
	if(f.value=='') {
		f.value = f.defaultValue;	
	}
}

function clearBox(f)  {
	if(f.value==f.defaultValue) {
		f.value = '';	
	}
}

// Email validator
function validEmail(email) {
	return /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email);	
}

// Toggle Category Selection
function toggleCats()
{
	if(document.getElementById('changecats').style.display == 'none')
	{
		document.getElementById('changecats').style.display = 'block';
		document.getElementById('changeheader').style.display = 'block';
		
		if(document.getElementById('prodcats'))
		{
			document.getElementById('prodcats').style.display = 'none';
			document.getElementById('prodheader').style.display = 'none';
		}
	}
	else
	{
		document.getElementById('changecats').style.display = 'none';
		document.getElementById('changeheader').style.display = 'none';
		
		if(document.getElementById('prodcats'))
		{
			document.getElementById('prodcats').style.display = 'block';
			document.getElementById('prodheader').style.display = 'block';
		}
	}	
}

// Check item has all properties
function checkBasket(f)
{
	if((f.option.value == -1) || (f.quantity.value == -1))
	{
		alert('Please select an item option and a quantity');
		return false;
	}
}

function swapImage(id)
{
	document.getElementById('mainimage'+current).style.display = 'none';
	document.getElementById('mainimage'+id).style.display = 'block';
	
	if(zoom == 1)
	{
		document.getElementById('p'+current).style.display = 'none';
	}
	
	current = id;
	
	if(zoom == 1)
	{
		document.getElementById('p'+current).style.display = 'block';
	}
}

function toggleZoom()
{
	if(zoom == 0)
	{
		document.getElementById('detail-right').style.display = 'none';
		document.getElementById('p'+current).style.display = 'block';
		document.onmousemove = getMouseXY; // update(event) implied on NS, update(null) implied on IE
		getMouseXY();
		zoom = 1;
	}				
	else
	{
		document.getElementById('detail-right').style.display = 'block';
		document.getElementById('p'+current).style.display = 'none';
		zoom = 0;
	}
}



function startFollow()
{
	if(zoom == 1)
	{
		var pvx = 355;
		var pvy = 400;
		
		var bdx = 0;
		var bdy = 0;
		
		document.getElementById('follower').style.display = 'block';
		
		bxratio = document.getElementById('fp'+current).width/document.getElementById('mainimage'+current).width;
		byratio = document.getElementById('fp'+current).height/document.getElementById('mainimage'+current).height;
		
		bdx = pvx/bxratio;
		bdy = pvy/byratio;
		
		document.getElementById('follower').style.width = bdx+'px';
		document.getElementById('follower').style.height = bdy+'px';
	}
	
}

function getMouseXY(e) // works on IE6,FF,Moz,Opera7
{
	if(zoom == 1)
	{
		var mousex = 0;
		var mousey = 0;
		
		var fbdx = 0;
		var fbdy = 0;

		if(!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)
	
		if(e)
		{
			if (e.pageX || e.pageY)
			{ // this doesn't work on IE6!! (works on FF,Moz,Opera7)
				mousex = e.pageX;
				mousey = e.pageY;
			}
			else if (e.clientX || e.clientY)
			{ // works on IE6,FF,Moz,Opera7
				mousex = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
				mousey = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
			}  
		}
		
		fbdx = (parseInt(document.getElementById('follower').style.width)/2);
		fbdy = (parseInt(document.getElementById('follower').style.height)/2);
		
		//document.getElementById('tp').value = fbdx;
		
		document.getElementById('follower').style.left = (mousex-fbdx)+"px";
		document.getElementById('follower').style.top = (mousey-fbdy)+"px";
		
		trackPreview(mousex, mousey);
	}
}

function trackPreview(x,y)
{
	//var nx = x - 				
	var curleft = curtop = 0;
	
	obj = document.getElementById('mainimage'+current);				
	if(obj.offsetParent)
	{
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
		while (obj = obj.offsetParent);
	}
	
	x = x-curleft;
	y = y-curtop;
	
	xratio = document.getElementById('fp'+current).width/document.getElementById('mainimage'+current).width;
	yratio = document.getElementById('fp'+current).height/document.getElementById('mainimage'+current).height;
	
	//document.getElementById('tp').value = x;

	var left = -((x*xratio)-(355/2));
	var top = -((y*yratio)-(400/2));
	
	document.getElementById('fp'+current).style.left = left+"px";
	document.getElementById('fp'+current).style.top = top+"px";

	follow_w = document.getElementById('follower').style.width;
	follow_h = document.getElementById('follower').style.height;

	//document.getElementById('follower').innerHTML =left + " :: "+(-1*document.getElementById('fp'+current).width);
	
	if( (left < (-1*document.getElementById('fp'+current).width)) ||
		(left > 380) || 
		(top < (-1*document.getElementById('fp'+current).height)) ||
		(top > 380)) {
		endFollow();	
	}

}

function endFollow()
{
	if(zoom == 1)
	{
		document.getElementById('follower').style.display = 'none';
		//document.onmousemove = false;
		toggleZoom();
	}
}