var CMSGallery = function(id,autostart) {
	var gallery = $('gallery_'+id);
	var galleryselect = gallery.getElement('select[name=imageJumper]');
	var galleryspeed = gallery.getElement('select[name=imageSpeed]');
	var galleryfirst = gallery.getElement('a.cms_firstslide');
	var galleryprev = gallery.getElement('a.cms_prevslide');
	var gallerylast = gallery.getElement('a.cms_lastslide');
	var gallerynext = gallery.getElement('a.cms_nextslide');
	var galleryauto = gallery.getElement('a.cms_autoslide');
	var galleryslidecontainer = 'galleryslides_'+id;
	var galleryslides = gallery.getElements('table');
	var galleryimages = gallery.getElements('table img');
	var needsIEScale = true;
	gallery.galleryperiodical = gallery.galleryperiodical || 0;
	gallery.galleryinstantiated = gallery.galleryinstantiated || false;
	if ( galleryslides.length == 0 ) {
		galleryslides = gallery.getElements('.table');
		galleryimages = gallery.getElements('.table img');
		needsIEScale = false
	}
	if ( window.ie && needsIEScale ) {
		galleryimages.each(function(image){
			image.setProperty('width',parseInt(gallery.getParent().getStyle('width'),10));
		})
	}
	var runSlide = function(slidenumber){
		var fadespeed = 750;
		var fadeout = new Fx.Style(galleryslidecontainer,'opacity',{
			duration: fadespeed,
			onComplete: function(){
				galleryselect.selectedIndex = slidenumber;
				galleryselect.fireEvent('change');
				var fadein = new Fx.Style(galleryslidecontainer,'opacity',{duration:fadespeed}).start(0,1);
			}
		}).start(1,0);
	};
	gallery.fireEvent('test');
	if ( !gallery.galleryinstantiated ) {
		gallery.addEvent('test',function(){
			gallery.galleryinstantiated = true;
		});
		galleryselect.addEvent('change',function(){
			if ( typeof galleryslides[this.selectedIndex] != 'undefined' ) {
				galleryslides.removeClass('active').addClass('inactive');
				galleryslides[this.selectedIndex].removeClass('inactive').addClass('active');
			}
		});
		galleryspeed.addEvent('change',function(){
			if ( gallery.galleryperiodical != 0 ) {
				$clear(gallery.galleryperiodical);
				var fadespeed = 1000 * ( this.selectedIndex + 1 );
				gallery.galleryperiodical = (function(){gallerynext.fireEvent('click')}).periodical(fadespeed);
				galleryauto.innerHTML = 'Stop';
			}
		});
		galleryfirst.addEvent('click',function(e){
			runSlide(0);
			if ( e ) e = new Event(e).preventDefault();
		});
		galleryprev.addEvent('click',function(e){
			var slidenumber = ( galleryselect.selectedIndex > 0 ) ? galleryselect.selectedIndex - 1 : galleryselect.options.length - 1;
			runSlide(slidenumber);
			if ( e ) e = new Event(e).preventDefault();
		});
		gallerylast.addEvent('click',function(e){
			runSlide(galleryselect.options.length - 1);
			if ( e ) e = new Event(e).preventDefault();
		});
		gallerynext.addEvent('click',function(e){
			var slidenumber = ( galleryselect.selectedIndex + 1 < galleryselect.options.length ) ? galleryselect.selectedIndex + 1 : 0;
			runSlide(slidenumber);
			if ( e ) e = new Event(e).preventDefault();
		});
		galleryauto.addEvent('click',function(e){
			if ( gallery.galleryperiodical == 0 ) {
				var fadespeed = 1000 * ( galleryspeed.selectedIndex + 1 );
				gallerynext.fireEvent('click');
				gallery.galleryperiodical = (function(){gallerynext.fireEvent('click')}).periodical(fadespeed);
				this.innerHTML = 'Stop';
			} else {
				$clear(gallery.galleryperiodical);
				gallery.galleryperiodical = 0;
				this.innerHTML = 'Play';
			}
			if ( e ) e = new Event(e).preventDefault();
		});
	}
	if ( autostart ) {
		galleryauto.fireEvent('click');
	} else if ( gallery.galleryperiodical != 0 ) {
		$clear(gallery.galleryperiodical);
		gallery.galleryperiodical = 0;
		galleryauto.setHTML('Play');
	}
};
if ( document.getElementsByTagName('body').length == 0 ) {
	window.addEvent('load',function(){
		$$('.cms_gallery2, .cms_gallery3').each(function(gallery){
			var theID = gallery.getProperty('id').split('_')[1];
			var autostart = ( gallery.hasClass('cms_gallery3') );
			CMSGallery(theID,autostart);
		});
	});

}