/*

$Id: scrapbook.js,v 1.7 2006/12/01 21:29:20 patrick Exp $
Scrapbook behaviors by christian.fecteau@espacecourbe.com

*/

// old Geckos
if (	!document.readyState &&
	!window.opera &&
	!window.find &&
	window.home &&
	document.getElementsByTagName &&
	navigator.product &&
	(navigator.product == 'Gecko')	)
{
	window.oldGecko = true;
}


// let's check that we can run the script and... go!!!
if (	document.getElementsByTagName &&
	document.createElement	)
{
	// harvest alien onload
	var scrapbook_old_onload = null;
	if (typeof window.onload == "function")
	{
		scrapbook_old_onload = window.onload;
	}
	window.onload = function()
	{
		// run the alien onload
		if (scrapbook_old_onload)
		{
			scrapbook_old_onload();
			scrapbook_old_onload = null;
		}
		scrapbook_init();
	}
}

function scrapbook_init()
{
	// loop through each thumbnail
	for (var i=0,d; d=document.getElementsByTagName('div')[i]; i++)
	{
		if (d.className && d.className.match(/^photo-modele-\d{1}$/i))
		{
			// we got a thumbnail!
			if (window.oldGecko)
			{
				d.style.cssFloat = 'none';
			}
			// check if it is swappable (2 valid images)
			var recto = d.parentNode.getElementsByTagName('img')[0];
			var verso = d.parentNode.getElementsByTagName('img')[1];		
			if (	recto && recto.className && recto.className.toLowerCase()=='photo1' && 
				verso && verso.className && verso.className.toLowerCase()=='photo2'	)
			{
				// yes it is, let's remember it
				d.swappable = true;
			}
			// retrieve and attach events to nav images based on their filename
			for (var j=0,e; e=d.getElementsByTagName('img')[j]; j++)
			{
				if (e.src.match(/fleches\.gif$/i) && d.swappable)
				{
					e.style.cursor = document.all ? 'hand' : 'pointer';
					e.onclick = function(){scrapbook_swap(this);}
				}
				else if (e.src.match(/loupe\.gif$/i))
				{
					e.style.cursor = document.all ? 'hand' : 'pointer';
					e.onclick = function(){scrapbook_zoom(this);}
				}
			}
		}
	}
}
function scrapbook_swap(ref)
{
	var imgs = ref.parentNode.getElementsByTagName('img');
	var recto = imgs[0].src;
	var verso = imgs[1].src;
	imgs[0].src = verso;
	imgs[1].src = recto;
}
function scrapbook_zoom(ref)
{
	var chemin = ref.parentNode.getElementsByTagName('img')[0].src;
	chemin = chemin.replace(/_p(\.[A-Za-z]{3,4})$/,'_g$1');
	var titre = chemin.replace(/^.+\/(.+_g\.[A-Za-z]{3,4})$/,'$1');
	popImage(chemin,titre);
}

/*
script provided by http://www.howtocreate.co.uk/perfectPopups.html
changes made:
- changed target _blank to imgWin
- added a var statement for PositionX, etc.
- if (image > availWidth|availHeight) { opener.location = image; self.close(); }
*/


//really not important (the first two should be small for Opera's sake)
var PositionX = 10,
PositionY = 10,
defaultWidth = 600,
defaultHeight = 400;

//kinda important
var AutoClose = false;

//don't touch
function popImage(imageURL,imageTitle){
	var imgWin = window.open('','imgWin','scrollbars=no,resizable=1,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY);
	if( !imgWin ) { return true; } //popup blockers should not cause errors
	imgWin.document.write('<html><head><title>'+imageTitle+'<\/title><script type="text\/javascript">\n'+
		'function resizeWinTo() {\n'+
		'if( !document.images.length ) { document.images[0] = document.layers[0].images[0]; }\n'+
		'var oH = document.images[0].height, oW = document.images[0].width;\n'+
		'if( !oH || window.doneAlready ) { return; }\n'+ //in case images are disabled
		'window.doneAlready = true;\n'+ //for Safari and Opera
		'var scW = screen.availWidth ? screen.availWidth : screen.width;\n'+
		'var scH = screen.availHeight ? screen.availHeight : screen.height;\n'+
		'if (scW < oW || scH < oH) { opener.location = document.images[0].src; self.close(); }\n'+
		'var x = window; x.resizeTo( oW + 200, oH + 200 );\n'+
		'var myW = 0, myH = 0, d = x.document.documentElement, b = x.document.body;\n'+
		'if( x.innerWidth ) { myW = x.innerWidth; myH = x.innerHeight; }\n'+
		'else if( d && d.clientWidth ) { myW = d.clientWidth; myH = d.clientHeight; }\n'+
		'else if( b && b.clientWidth ) { myW = b.clientWidth; myH = b.clientHeight; }\n'+
		'if( window.opera && !document.childNodes ) { myW += 16; }\n'+
		'x.resizeTo( oW = oW + ( ( oW + 200 ) - myW ), oH = oH + ( (oH + 200 ) - myH ) );\n'+
		'if( !window.opera ) { x.moveTo(Math.round((scW-oW)/2),Math.round((scH-oH)/2)); }\n'+
		'}\n'+
		'<\/script>'+
		'<\/head><body onload="resizeWinTo();"'+(AutoClose?' onblur="self.close();"':'')+'>'+
		(document.layers?('<layer left="0" top="0">'):('<div style="position:absolute;left:0px;top:0px;display:table;">'))+
		'<img src='+imageURL+' alt="Loading image ..." title="" onload="resizeWinTo();">'+
		(document.layers?'<\/layer>':'<\/div>')+'<\/body><\/html>');
	imgWin.document.close();
	if( imgWin.focus ) { imgWin.focus(); }
	return false;
}
