var gallerySeries = new Array('photography/flesh-soul/fluid-form', 'artwork/experiments/discarded', 'artwork/experiments/dream-shards', 'photography/abstract/alien-life', 'photography/flesh-soul/deva-set-1', 'photography/flesh-soul/portraits', 'photography/flesh-soul/conceptual', 'photography/flesh-soul/abstract-nudes', 'photography/flesh-soul/interaction', 'photography/flesh-soul/kevin-john', 'photography/flesh-soul/flesh-landscapes', 'photography/flesh-soul/kim-wrang-henriksen', 'photography/flesh-soul/jasmin', 'photography/flesh-soul/erin-english', 'photography/flesh-soul/nataliya-k', 'photography/flesh-soul/tyrande', 'photography/flesh-soul/erin-elizabeth-set-1', 'photography/flesh-soul/spitfire', 'photography/flesh-soul/james-slinka', 'photography/surroundings/while-they-sleep', 'photography/surroundings/swiss-alps', 'photography/surroundings/agapia-monastery');
var galleries = new Array('artwork/visions/aphrodisia', 'photography/flesh-soul/fluid-form', 'artwork/experiments/digital-dreams', 'artwork/experiments/binary-reflux', 'artwork/experiments/used-to', 'artwork/experiments/discarded', 'artwork/experiments/untitled', 'artwork/experiments/the-one-voice', 'artwork/experiments/technical-difficulties', 'artwork/experiments/source', 'artwork/experiments/silence', 'artwork/experiments/self-in-static', 'artwork/experiments/sanity-test', 'artwork/experiments/paint-me-a-beauty', 'artwork/experiments/memory-fades', 'artwork/experiments/loneliness-as-a-cure-for-love', 'artwork/experiments/ignorance-as-bliss', 'artwork/experiments/experience', 'artwork/experiments/elegantly-wasted', 'artwork/experiments/dream-shards', 'artwork/experiments/convenience', 'artwork/visions/melting-consciousness', 'artwork/visions/elemental', 'artwork/visions/rupture', 'artwork/visions/lost', 'artwork/visions/teardrop', 'artwork/visions/eternal-symphony', 'artwork/visions/mimic-i', 'artwork/visions/sainthood', 'artwork/visions/sleeping-beauty', 'artwork/visions/rebirth', 'artwork/visions/progress', 'artwork/visions/phantasmagorical-rhapsody', 'artwork/visions/no-signal', 'artwork/visions/mimic-ii', 'artwork/visions/messenger-of-a-lost-world', 'artwork/visions/mating-ritual', 'artwork/visions/post-god', 'artwork/visions/losing-oneself', 'artwork/visions/limbo', 'artwork/visions/i-think-i-might-be', 'artwork/visions/human-nature', 'artwork/visions/fleeting-glimpse', 'artwork/visions/fluidity-in-dreams', 'artwork/visions/the-ultimate-clash', 'artwork/visions/fire-goddess', 'artwork/visions/fire-dance', 'artwork/visions/field-of-hopes-and-fears', 'artwork/visions/essence', 'artwork/visions/entombed', 'photography/abstract/alien-life', 'photography/flesh-soul/deva-set-1', 'photography/flesh-soul/portraits', 'photography/flesh-soul/conceptual', 'photography/flesh-soul/abstract-nudes', 'photography/flesh-soul/interaction', 'photography/flesh-soul/kevin-john', 'photography/flesh-soul/flesh-landscapes', 'photography/flesh-soul/kim-wrang-henriksen', 'photography/flesh-soul/jasmin', 'photography/flesh-soul/erin-english', 'photography/flesh-soul/nataliya-k', 'photography/flesh-soul/tyrande', 'photography/flesh-soul/erin-elizabeth-set-1', 'photography/flesh-soul/spitfire', 'photography/flesh-soul/james-slinka', 'artwork/visions/dream-weaver', 'artwork/visions/discovery', 'artwork/visions/dear-mira', 'artwork/visions/the-deafening-sound', 'photography/surroundings/while-they-sleep', 'photography/surroundings/swiss-alps', 'photography/surroundings/agapia-monastery', 'artwork/visions/content', 'artwork/visions/contact', 'artwork/visions/conduit', 'artwork/visions/beyond-this-dream', 'artwork/visions/burn-the-mona-lisa', 'artwork/visions/urban-chaos', 'artwork/visions/woman', 'artwork/visions/wavelengths');
var galleryIds = new Array(85, 84, 67, 65, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 66, 46, 14, 55, 44, 60, 59, 48, 56, 57, 54, 53, 51, 50, 49, 47, 45, 52, 43, 42, 41, 40, 38, 39, 61, 37, 36, 35, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 1, 2, 62, 64, 63); 
var galleryFadeDuration = 500;
var galleryUrl = '/gallery-thumbs/';

function galleryThumbs(sender, galleryId, idx, hashAction) {
	hoverImg(sender.getElements('img')[0]);
	var scrollerDiv = $(sender).getParent().getParent().getParent();
	scrollerDiv.store('original-content', scrollerDiv.innerHTML);
	galleryRequest(sender, 'thumbs', galleryId, galleryId, idx, hashAction);
}

function galleryRestoreContent(scrollerDiv) {
	if( ! scrollerDiv.retrieve('original-content', false) ) return;
	scrollerDiv.innerHTML = scrollerDiv.retrieve('original-content');
	updateLinks(scrollerDiv);
	scrollerDiv.eliminate('original-content');
}

function galleryCategMain(sender, galleryId, categoryId, hashAction) {
	var scrollerDiv = $(sender).getParent().getParent().getParent();
	scrollerDiv.eliminate('original-content');
	galleryRequest(sender, 'categMain', galleryId, categoryId, 0, hashAction);
}

function galleryRequest(sender, action, galleryId,  param, jparam, hashAction) {
	pausePolling = true;

	if(hashAction == undefined) hashAction = function() { pausePolling = false; }
	var scrollerDiv = $(sender).getParent().getParent().getParent();
	scrollerDiv.set('morph', { duration: galleryFadeDuration, transition: Fx.Transitions.linear, 
		onComplete: function() {
			scrollerDiv.innerHTML = '';
			var workingDiv = new Element( 'div', { 'class': 'element-loading', 'styles': { 'height': '200px' } } );
			scrollerDiv.set('morph', { duration: 500, transition: Fx.Transitions.linear, 
				onComplete: function() {
					var data = 'sessid=' + sessid;
					data += '&action=' + action;
					data += '&param=' + ( param == undefined ? '' : param );
					var ajaxGallery = getNewXMLHttp();
					ajaxGallery.open("POST", galleryUrl, true);
					ajaxGallery.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");	    
					ajaxGallery.onreadystatechange = function() {
						if(ajaxGallery.readyState != 4) return;
						//alert(ajaxGallery.responseText);
						
						scrollerDiv.set('morph', { duration: galleryFadeDuration, transition: Fx.Transitions.linear,
							onComplete: function() {
								workingDiv.dispose();
								scrollerDiv.innerHTML = ajaxGallery.responseText;
								updateLinks(scrollerDiv);
								var initObj = { duration: galleryFadeDuration, transition: Fx.Transitions.linear };
								if(action == 'thumbs' && parseInt(jparam) > 0) {
									initObj.onComplete = function() {
										var obj = scrollerDiv.getElements('.thumbs .image a')[jparam - 1];
										overlaySlideShow(obj);
										hashAction.run();
									}	
								} else {
									initObj.onComplete = hashAction;
								}
								scrollerDiv.set('morph',  initObj );
								scrollerDiv.morph( { opacity: [0, 1] } );
								
								$$('#element-' + currentIdx + ' .scrolling-content')[0].style.height = scrollerDiv.getSize().y + 'px';
								
								$('element-' + currentIdx).set('morph', { duration: galleryFadeDuration, transition: Fx.Transitions.linear } );
								$('element-' + currentIdx).morph( { height: scrollerDiv.getSize().y } );
							} 
						} );
						scrollerDiv.morph( { opacity: [ 1, 0 ] } );
					};
					ajaxGallery.send(data);
				}
			} );
			scrollerDiv.grab(workingDiv);
			scrollerDiv.morph( { opacity: [0, 1] } );
		} 
	} );
	scrollerDiv.morph( { opacity: [1, 0] } );
}

function galleryIsSeries(hash) {
	if(hash.split('/').length == 4) {
		hash = hash.split('/'); 
		hash.pop();
		hash = hash.join('/');
	}
	return gallerySeries.contains(hash);
}

function galleryGetIdFromHash(hash) {
	if(hash.split('/').length == 4) {
		hash = hash.split('/'); 
		hash.pop();
		hash = hash.join('/');
	}
	id = parseInt( galleryIds[ galleries.indexOf( hash ) ] );
	if ( isNaN(id) ) id = 0;
	return id;
}