var ZOOM_ATTRIBUTES = [ "zoom_text", "zoom_price", "zoom_cardType", "zoom_folding" ];

var zoomTimer;
function zoomStart( link, e )
{
	var zoom = document.getElementById( "zoom" );
	if( !zoom ) return;
    zoom.className = link.parentNode.className.substr( 5 ); // skip the "card"
	zoomMove( e );
	var zoomImg = document.getElementById( "zoomImg" );
	var img = link.getElementsByTagName( "img" )[0];
	zoomImg.src = img.src;
	var url = img.src;
	if( url.indexOf( '/E-Greeting/' ) < 0 ) {
		var end = url.lastIndexOf( "/" );
		var start = url.lastIndexOf( "/", end - 1 );
		url = url.substr( 0, start + 1 ) + "Large" + url.substr( end );
	}
	zoomImg = document.getElementById( "zoomLoader" );
	zoomImg.onload = zoomReplace;
	setInterval( zoomCheck, 1000 );
	zoomImg.src = url;
	showZoomDetails( link );
	zoom.style.display = "block";
}

function zoomReplace()
{
	clearInterval( zoomTimer );
	var loaderImg = document.getElementById( "zoomLoader" );
	document.getElementById( "zoomImg" ).src = loaderImg.src;
}

function zoomCheck()
{
	var zoomImg = document.getElementById( "zoomLoader" );
	if( zoomImg.complete ) {
		zoomReplace();
	}
}

function zoomMove( e )
{
	e = e || event;
	var zoom = document.getElementById( "zoom" );
	if( !zoom ) return;
	var x = e.clientX;
	var y = e.clientY;
	var offset = document.body.scrollTop || 0;
	y += offset;
	x += 16; // offset right
	y -= 16; // offset up

	if( x + zoom.offsetWidth >= document.body.clientWidth )
	{
		x -= zoom.offsetWidth + 24;
	}
	if( y + zoom.offsetHeight >= offset + document.body.clientHeight )
	{
		y -= zoom.offsetHeight - 24;
	}

	var container = document.getElementById( "page" );
	zoom.style.left = (x - container.offsetLeft) + "px";
	zoom.style.top = (y - container.offsetTop) + "px";
}

function zoomStop(  )
{
	var zoom = document.getElementById( "zoom" );
	if( !zoom ) return;
	zoom.style.display = 'none';
	clearInterval( zoomTimer );
}

function showZoomDetails( element )
{
	for( i = 0; i < ZOOM_ATTRIBUTES.length; i++ ) {
		var name = ZOOM_ATTRIBUTES[i];
		var data = element.getAttribute( name );
		var node = document.getElementById( name );
		node.innerHTML = "";
		var lines = data.split( "\n" );
		for( var l = 0; l < lines.length; l++ ) {
			node.appendChild( document.createTextNode( lines[l] ) );
			if( l < lines.length - 1 ) {
				node.appendChild( document.createElement( "br" ) );
			}
		}
	}
}

