non so quale regola tu segua nell' organizzazione delle immagini,
per cui ti propongo una modifica in modo da rendere completamente indipendente i 2 percorsi:
ogni immagine racchiusa in un link
e in href il percorso all' immagine ingrandita

questo
codice:
	imgs=d.getElementById('gallery').getElementsByTagName('img');
	for(var k=0;k<imgs.length;k++){
		imgs[k].onmouseout=xlHide;
		imgs[k].onmouseover=xlShow;
		imgs[k].onmousemove=xlGetCoords;
	}
lo cambi in
codice:
	imgs=d.getElementById('gallery').getElementsByTagName('img');
	for(var k=0;k<imgs.length;k++){
		if(imgs[k].parentNode.tagName=='A'){
			imgs[k].onmouseout=xlHide;
			imgs[k].onmouseover=xlShow;
			imgs[k].onmousemove=xlGetCoords;
			/* decommenta la prossima riga se vuoi impedire
			che al click sul link si apra l' immagine ingrandita */
			// imgs[k].parentNode.onclick=function(){return false}
		}
	}
questo
codice:
	var fileName=xlPath+source.src.substring(source.src.lastIndexOf('/'));
in
codice:
	var fileName=source.parentNode.href;
xlPath a questo punto non ti serve piu'
ciao