/** gallery **/
function getPageCoords (element) 
{
    var coords = {x: 0, y: 0};
    
    while (element) {
	coords.x += element.offsetLeft;
	coords.y += element.offsetTop;
	element = element.offsetParent;
    }

    return coords;
}

var elTarget = null;
var intChecker = null;
var elWait = null;

function isLoaded(img) {
    if (!img.complete) {
        return false;
    }
    if( img.loaded !== undefined ) {
	if( img.loaded != true ) {
	    return false;
	}
    }
    if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) {
        return false;
    }
    return true;
}

function onCheckImage()
{
    if( isLoaded( elTarget ) ) {
	elTarget = null;
	clearInterval( intChecker );
	intChecker = null;
	if( !elWait ) return;
	elWait.style.display = "none";
    }
}

function switchOver(target, src, waiter)
{
    if( intChecker ) {
	clearInterval( intChecker );
    }

    elTarget = document.getElementById( target );
    if( !elTarget ) return;
    elWait = document.getElementById( waiter );
    if( !elWait ) return;
    var px = getPageCoords( elTarget );
    elWait.style.left = px.x + "px";
    elWait.style.top = px.y + "px";
    elWait.style.display = "block";
    elTarget.src = src;
    intChecker = window.setInterval( onCheckImage, 100 );   
}

