loaderImg = '';
isAnimating = false;
firstFadeOut = false;
newImageDetails = [];

// initial function to show big image
function showbigimage (ifile, head, capt) {
	if (document.getElementById ('bigimage').style.visibility == 'visible') {
		firstFadeOut = true;
		newImageDetails[0] = ifile;
		newImageDetails[1] = head;
		newImageDetails[2] = capt;
		newImage = new Image ();
		newImage.src = ifile;
		fadeOutObject ('bigimage');
	}
	else if (isAnimating == false) {
		// load new image
		newImage = new Image ();
		newImage.src = ifile;
		changeImageDetails (newImage, head, capt);
	}
}
// change image details
function changeImageDetails (img, head, capt) {
	// calculate vertical midpoint of client
	vMid = (document.body.clientHeight / 2);
	// calculate liftup value
	if (img.complete) liftup = (newImage.height / 2);
	// default liftup
	else liftup = (vMid / 2 + 100);

	// set new position
	vtop = document.documentElement.scrollTop + (vMid - liftup);
	document.getElementById ('bigimage').style.top = vtop +'px';

	document.getElementById ('bigcaption').innerHTML = head;
	document.getElementById ('bigcaption').innerHTML += capt;
	document.getElementById ('bigimg').src = img.src;
	document.getElementById ('bigimage').style.visibility = 'visible';
	fadeInObject ('bigimage');
}
function hidebigimage () {
	fadeOutObject ('bigimage');
}
function fadeInObject (elName) {
	if (isAnimating == false) {
	    obj = document.getElementById (elName);
	    opval = 0;
	    fadeinset = setInterval ("modifyOpacity (obj, 0.2, 'in')", 50);
	}
}
function fadeOutObject (elName) {
	if (isAnimating == false) {
	    obj = document.getElementById (elName);
	    opval = 1;
	    fadeoutset = setInterval ("modifyOpacity (obj, 0.2, 'out')", 50);
	}
}
function modifyOpacity (o, change, mtype) {
	isAnimating = true;
    if (mtype == 'in') {
		// document.getElementById ('bigimage').style.top = verticalPos;
		opval += Math.round (change * 10) / 10;
		if (opval >= 1) {
			opval = 1;
			clearInterval (fadeinset);
			isAnimating = false;
		}
	}
	else if (mtype == 'out') {
        opval -= Math.round (change * 10) / 10;
        if (opval <= 0.01) {
			opval = 0;
			clearInterval (fadeoutset);
			isAnimating = false;
			o.style.opacity = 0;
			o.style.MozOpacity = 0;
			o.style.visibility = 'hidden';
			// document.getElementById ('bighead').innerHTML = '';
			document.getElementById ('bigcaption').innerHTML = '';
			document.getElementById ('bigimg').src = loaderImg;
        }
		// check if need to replace
		if (isAnimating == false) {
			if (firstFadeOut == true) {
				firstFadeOut = false;
				showbigimage (newImageDetails[0], newImageDetails[1], newImageDetails[2]);
			}
		}
    }
    
	o.style.opacity = Math.round (opval * 10) / 10;
	o.style.MozOpacity = Math.round (opval * 10) / 10;
	o.style.filter = "Alpha (Opacity="+ (Math.round (opval * 10) * 10) +")";
}
function toggleGallery (galID) {
	g = document.getElementById (galID);
	if (g.style.visibility == 'hidden') { g.style.visibility = 'visible'; g.style.position = 'relative'; }
	else { g.style.visibility = 'hidden'; g.style.position = 'absolute'; }
}
