/**** gallery settings etc ****/var fader_delay			= 10;		// delay between image transitionsvar fader_cid	 		= 1;		// joomla gallery idvar duration_text_slide = 0.5;var duration_img_appear = 1.0;/*** most likely not for editing ***/var fader_images 		= false;	// array of fader images and datavar fader_ready			= false;	// semiphore for fader load statusvar fader_spinner		= false;	// fader timed transition handlevar fader_effect_queues	= new Array('gallery-fader', 'gallery-text');var fader_index			= -1;		// pointer in the fader image list/*** so begins the nitty gritty ***/Event.observe(document, 'dom:loaded', function(event) {	init_gallery();});function init_gallery() {	if( $$('.gallery-cnt').length == 0 )		return false;			$('gallery-fader').addClassName('loading');		new Ajax.Request('/staticfiles/front_page_feature/images.json.php?cid=' + fader_cid, { 		method: 'get', 		onSuccess: function(o) {			fader_images 	= o.responseText.evalJSON(true);						fader_ready 	= true;						for(x = 0; x < fader_images.length; x++) {				a = new Element('a', {					href: '#',					'indx': x				}).update(x + 1);								$('gallery-controls').appendChild(a);								if( !x )					a.addClassName('current');			}									spin_gallery_timer();			execute_gallery_fader();		} 	});		Event.observe('gallery-controls', 'click', function(event) {		event.stop();				elt = Event.findElement(event, 'a');				if( !elt )			return;				/* update the fader image index */		if( elt.hasClassName('right') )			i = (fader_index + 1) % fader_images.length;		if( elt.hasClassName('left') )			i = (fader_index - 1 < 0 ? fader_images.length - 1 : fader_index - 1) % fader_images.length;		/* */				if( elt.getAttribute('indx') )			i = elt.getAttribute('indx');			prepare_gallery_fader(i);	});	}function cancel_gallery_animation() {	fader_effect_queues.each(function(q) {		var queue = Effect.Queues.get(q);		queue.each(function(effect) { effect.cancel(); });		});}function spin_gallery_timer() {	try {		fader_spinner.stop();	} catch(er) {}		fader_spinner = new PeriodicalExecuter(function(pe) {		execute_gallery_fader();	}, fader_delay);	}function prepare_gallery_fader(i) {	/* restart the gallery timer spinner */	spin_gallery_timer();		/* stop any animations that may be occuring */	cancel_gallery_animation();		/* cancel any image loading */	$$('#gallery-fader img').invoke('stopObserving');		/* mark the current image as old */	$$('#gallery-fader img').invoke('removeClassName', 'current');		/* set the fader to ready */	fader_ready = true;		/* pull the requested image */	execute_gallery_fader(i);}function execute_gallery_fader(i) {	if( !fader_ready )		return false;		$$('#gallery-fader img.current').invoke('removeClassName', 'current');		fader_index = i == undefined ? (fader_index + 1) % fader_images.length : i;	img = $('fader-img-' + fader_index);		$('gallery-fader').addClassName('loading');		if( !img ) {		img = new Element('img', { 			id: 'fader-img-' + fader_index,			'loaded': '0',			style: 'display: none'		});				$('gallery-fader').appendChild(img);	}		img.addClassName('current');		fader_ready = false;		if( img.getAttribute('loaded') != '1' ) {		Event.observe(img, 'load', function(event) {			elt = Event.element(event);			elt.setAttribute('loaded', '1');						fade_gallery_image(elt);		});				/* the image load observer has to be bound before the image source is set */		img.src = fader_images[fader_index].full_img;	} else 		fade_gallery_image(img);}function fade_gallery_image(elt) {	elt.setOpacity(0);	elt.show();		Element.stopObserving(elt);		slide_gallery_text();	update_controls();		$('gallery-fader').removeClassName('loading');		new Effect.Opacity(elt, { 		from: 0.0, 		to: 1.0,		duration: duration_img_appear,		queue: { scope: 'gallery-fader', position: 'end' },			afterFinish: function() {							$$('#gallery-fader > img').each(function(elt) {				if( !elt.hasClassName('current') ) {					elt.hide();				}			});						fader_ready = true;		}	});}function slide_gallery_text() {	//$('gallery-text').update(fader_images[fader_index].desc);		new Effect.Morph('gallery-text', {		style: 'text-indent: -222px', // + $('gallery-text').getWidth() + 'px',		queue: { scope: 'gallery-text', position: 'front' },		transition: Effect.Transitions.sinoidal,		duration: duration_text_slide,				afterFinish: function() {			$('gallery-text').innerHTML = fader_images[fader_index].long_nme;			$('gallery-text').setStyle({				'text-indent' : '222px'			});				}	});			new Effect.Morph('gallery-text', {					style: 'text-indent: 0px',		queue: { scope: 'gallery-text', position: 'end' },				transition: Effect.Transitions.sinoidal,				duration: duration_text_slide	});	}function update_controls() {	$$('#gallery-controls a').invoke('removeClassName', 'current');		cur_a = $$('#gallery-controls a[indx=' + fader_index + ']').first();	cur_a.addClassName('current');	pos_a = cur_a.positionedOffset();		fob = $('gallery-fob');		if( !fob ) {		fob = new Element('div', { id: 'gallery-fob' });		$('gallery-controls').appendChild(fob);	}		fob.setStyle({ 		display: 'block',		bottom: '0px'	});		$$('#gallery-controls a').invoke('removeClassName', 'hl');	cur_a.addClassName('hl');		/*	fob.clonePosition(cur_a, {		setWidth: false,		setHeight: false,		offsetTop: 2	});	*/		new Effect.Morph('gallery-fob', {					style: 'left: ' + pos_a.left + 'px;',		queue: { scope: 'gallery-fob', position: 'end' },				transition: Effect.Transitions.sinoidal,				duration: 0.5	});		}
