// JavaScript Document

// set testing mode
testing = false;

function trace(msg) {
	if (testing) {
		oldmsg = $('trace').innerHTML;
		Element.update('trace', '<p>'+msg+'</p>'+oldmsg);
	} else {
		Element.hide('trace');
	}
}

function init() {
	trace('initiate');
	// process menu rel tags
	process_menu();
	start_gallery();
}

function start_gallery() {
	next_gallery = $('nav_gallery').innerHTML;
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
		if (next_gallery == anchor.innerHTML) {
			if (!Element.hasClassName(anchor,'active')) Element.addClassName(anchor,'active');
		} else {
			if (Element.hasClassName(anchor,'active')) Element.removeClassName(anchor,'active');
		}
	}	
	trace('start gallery');
	g = $('slides').getElementsByTagName('div');
	trace('length is '+g.length);
	Effect.Appear(g[0]); // make first element fade in
	var html = '<p>1 / ' + (g.length) +'</p>';
	trace(html);
	Element.update('nav_count', html);
}

function nav(dir) {
	trace('nav '+dir);
	for (var i=0; i<g.length; i++) {
		if (Element.visible(g[i])) {
			trace('found at '+i);
			lastE = i;
			nextE = i + dir;
			if (nextE >= g.length) {	
				openNextGallery();
			} else if (nextE < 0) {
				openPrevGallery();
			} else {
				Element.setStyle(g[lastE], { 'z-index':'10'});
				Element.setStyle(g[nextE], { 'z-index':'9'});
				Element.show(g[nextE]);
				var html = '<p>' + (nextE+1) + ' / ' + (g.length) +'</p>';
				trace(html);
				Element.update('nav_count', html);
				Effect.Fade(g[lastE],{ duration:0.5, afterFinish: setBack()});
			}
			break;
		}
	}
}

function setBack() {
	//Element.setStyle(g[lastE], { 'z-index':'1'});
	//Element.hide(g[lastE]);
	//Element.setStyle(g[nextE], { 'z-index':'10'});
	//Element.show(g[nextE]);
	//Element.setOpacity(g[nextE],100);
	trace('next opacity = '+Element.getOpacity(g[nextE]));
	if (Element.getOpacity(g[nextE]) < 1) Element.setOpacity(g[nextE],1.0);
}

function process_menu() {
	if (!document.getElementsByTagName){ return; }
	anchors = $('galleries').getElementsByTagName("a");

	// loop through all anchor tags
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];

		if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "menu")){
			anchor.onclick = function () { openGallery(this); return false;}
		}
	}
}

function openGallery(objLink) {
	// record stats
	urchinTracker('/gallery.php?gallery='+objLink.innerHTML);
	// set to loading
	var html = '<p>...loading</p>';
	Element.update('slides', html);
	// now load with ajax
	var pars = '';
	var url = objLink.href;
	next_gallery = objLink.innerHTML;
	Element.update('nav_gallery', next_gallery);
	//alert('open url : '+objLink.href);
	var myAjax = new Ajax.Updater('slides', url, {method: 'post', parameters: pars, onComplete: start_gallery});
}

function openNextGallery() {
	var galleries = $('galleries').getElementsByTagName('a');
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
		if (next_gallery == anchor.innerHTML) {
			nextGalleryToOpen = i+1;
			break;
		}
	}
	if (nextGalleryToOpen >= anchors.length) nextGalleryToOpen = 0;
	openGallery(anchors[nextGalleryToOpen]);
}
function openPrevGallery() {
	var galleries = $('galleries').getElementsByTagName('a');
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
		if (next_gallery == anchor.innerHTML) {
			nextGalleryToOpen = i-1;
			break;
		}
	}
	if (nextGalleryToOpen < 0) nextGalleryToOpen = anchors.length-1;
	openGallery(anchors[nextGalleryToOpen]);
}

