var gGallery, gGalIndex, gGalNextIdx, gAnimating;

YAHOO.util.Event.onDOMReady(init);

function init() {
	var div, theLink;
	// generate gallery array
	gGalIndex = 0;
	gAnimating = false;
	gGallery = new Array(5);
	gGallery[0] = document.getElementById('frame1').innerHTML;
	for (var i = 1; i <= 4; i++) {
		div = document.getElementById('tb' + i);
		theLink = div.getElementsByTagName('a')[0].href;
		if (theLink.lastIndexOf('.jpg') != -1 || theLink.lastIndexOf('.png') != -1)
			gGallery[i] = '<div align="center"><img src="' + theLink + '"></div>';
		else {
			YAHOO.util.Connect.asyncRequest('GET', theLink, {
					success: function(o) {
						gGallery[o.argument.x] = o.responseText;
					},
					failure: function(o) {
					},
					argument: { x: i }
				}, null);
		}
	}
	// initialize event listeners
	YAHOO.util.Event.addListener('arrowRight', 'click', pushNextShot);
	YAHOO.util.Event.addListener('arrowLeft', 'click', pushPrevShot);
	for (i = 0; i < 5; i++) {
		div = document.getElementById('tb' + i);
		YAHOO.util.Event.addListener(div.getElementsByTagName('a').item(0), 'click', fadeToShot, i);
	}
	seriesTabInit();
}

function pushNextShot(e) {
	if (gAnimating)
		return;
	var cDiv = document.getElementById('frame1');
	var nDiv = document.getElementById('frame2');
	nDiv.style.position = 'absolute';
	nDiv.style.left = '988px';
	nDiv.style.top = '0px';
	nDiv.style.width = '988px'
	nDiv.style.height = '480px';
	var nextIdx = gGalIndex + 1;
	if (nextIdx >= gGallery.length)
		nextIdx = 0;
	nDiv.innerHTML = gGallery[nextIdx];
	var keyDiv = document.getElementById('key');
	nDiv.style.display = "block";
	var anim1 = new YAHOO.util.Motion(cDiv, { points: { by: [-988, 0] } }, 0.5, YAHOO.util.Easing.easeOut);
	var anim2 = new YAHOO.util.Motion(nDiv, { points: { by: [-988, 0] } }, 0.5, YAHOO.util.Easing.easeOut);
	anim1.onComplete.subscribe(pushNextPost);
	anim1.animate();
	anim2.animate();
	hiliteTB(nextIdx, gGalIndex);
	gAnimating = true;
}

function pushNextPost() {
	var div1 = document.getElementById('frame1');
	var div2 = document.getElementById('frame2');
	div2.id = 'frame1';
	div1.id = 'frame2';
	div1.style.display = "none";
	gGalIndex++;
	if (gGalIndex >= gGallery.length)
		gGalIndex = 0;
	gAnimating = false;
}

function pushPrevShot(e) {
	if (gAnimating)
		return;
	var cDiv = document.getElementById('frame1');
	var nDiv = document.getElementById('frame2');
	nDiv.style.position = 'absolute';
	nDiv.style.left = '-998px';
	nDiv.style.top = '0px';
	nDiv.style.width = '988px'
	nDiv.style.height = '480px';
	var nextIdx = gGalIndex - 1;
	if (nextIdx < 0)
		nextIdx = gGallery.length - 1;
	nDiv.innerHTML = gGallery[nextIdx];
	var keyDiv = document.getElementById('key');
	nDiv.style.display = "block";
	var anim1 = new YAHOO.util.Motion(cDiv, { points: { by: [998, 0] } }, 0.5, YAHOO.util.Easing.easeOut);
	var anim2 = new YAHOO.util.Motion(nDiv, { points: { by: [998, 0] } }, 0.5, YAHOO.util.Easing.easeOut);
	anim1.onComplete.subscribe(pushPrevPost);
	anim1.animate();
	anim2.animate();
	hiliteTB(nextIdx, gGalIndex);
	gAnimating = true;
}

function pushPrevPost() {
	var div1 = document.getElementById('frame1');
	var div2 = document.getElementById('frame2');
	div2.id = 'frame1';
	div1.id = 'frame2';
	div1.style.display = "none";
	gGalIndex--;
	if (gGalIndex < 0)
		gGalIndex = gGallery.length - 1;
	gAnimating = false;
}

function fadeToShot(e, idx) {
	YAHOO.util.Event.stopEvent(e);
	if (gAnimating)
		return;
	var div1 = document.getElementById('frame1');
	var div2 = document.getElementById('frame2');
	div2.innerHTML = gGallery[idx];
	div2.style.position = 'absolute';
	div2.style.top = '0px';
	div2.style.left = '0px';
	div2.style.width = '988px';
	div2.style.height = '480px';
	div2.style.display = 'block';
	YAHOO.util.Dom.setStyle(div2, 'opacity', 0);
	var anim2 = new YAHOO.util.Anim('frame2', { opacity: { from: 0, to: 1 } }, 0.5, YAHOO.util.Easing.easeOut);
	var anim1 = new YAHOO.util.Anim('frame1', { opacity: { from: 1, to: 0 } }, 0.5, YAHOO.util.Easing.easeOut);
	anim1.onComplete.subscribe(fadeToPost);
	gGalNextIdx = idx;
	anim1.animate();
	anim2.animate();
	hiliteTB(gGalNextIdx, gGalIndex);
	gAnimating = true;
}

function fadeToPost() {
	var div1 = document.getElementById('frame1');
	var div2 = document.getElementById('frame2');
	div2.id = 'frame1';
	div1.id = 'frame2';
	div1.style.display = "none";
	YAHOO.util.Dom.setStyle(div1, 'opacity', 1);
	gGalIndex = gGalNextIdx;
	gAnimating = false;
}

function hiliteTB(newIdx, oldIdx) {
	var cur = document.getElementById('tb' + oldIdx);
	cur.getElementsByTagName('a').item(0).className = '';
	cur = document.getElementById('tb' + newIdx);
	cur.getElementsByTagName('a').item(0).className = 'active';	
}
