document.observe("dom:loaded", function() {
	if($('pageCarouselItems') == null) return;

	if($('carouselControls') != null) {

		$('pageCarouselItems').ani = false;
		$('carouselControls').counter = 0;
		$('carouselControls').itemsCount = $$('#pageCarouselItems dl').length;

		var next = $$('#carouselControls a[href=#next]')[0];
		var prev = $$('#carouselControls a[href=#prev]')[0];

		$('carouselControls').setEnabled=function() {
			if($('carouselControls').counter >= $('carouselControls').itemsCount-6) {
				$$('#carouselControls a[href=#next]')[0].setOpacity(0.1);
				$$('#carouselControls a[href=#next]')[0].setStyle({
					cursor:"default"
				});
			} else {
				$$('#carouselControls a[href=#next]')[0].setOpacity(1);
				$$('#carouselControls a[href=#next]')[0].setStyle({
					cursor:"auto"
				});
			}
			if($('carouselControls').counter <= 0) {
				$$('#carouselControls a[href=#prev]')[0].setOpacity(0.1);
				$$('#carouselControls a[href=#prev]')[0].setStyle({
					cursor:"default"
				});
			} else {
				$$('#carouselControls a[href=#prev]')[0].setOpacity(1);
				$$('#carouselControls a[href=#prev]')[0].setStyle({
					cursor:"auto"
				});
			}
		};
		$('carouselControls').setEnabled();

		next.observe('click', function(e) {
			Event.stop(e);

			if($('carouselControls').counter >= $('carouselControls').itemsCount-6) return;

			if(!$('pageCarouselItems').ani) {
				$('pageCarouselItems').ani = true;
				new Effect.Move($('pageCarouselItems'), {
															x:-160,
															mode:'relative',
															duration: 0.5,
															transition: Effect.Transitions.EaseFromTo,
															afterFinish:function() {
																$('pageCarouselItems').ani = false;
																$('carouselControls').counter++;
																$('carouselControls').setEnabled();
															}
														});
			}
		}.bindAsEventListener(next));

		prev.observe('click', function(e) {
			Event.stop(e);

			if($('carouselControls').counter <= 0) return;

			if(!$('pageCarouselItems').ani) {
				$('pageCarouselItems').ani = true;
				new Effect.Move($('pageCarouselItems'), {
															x:160,
															mode:'relative',
															duration: 0.5,
															transition: Effect.Transitions.EaseFromTo,
															afterFinish:function() {
																$('pageCarouselItems').ani = false;
																$('carouselControls').counter--;
																$('carouselControls').setEnabled();
															}
														});
			}
		}.bindAsEventListener(prev));
	}
});


document.observe("dom:loaded", function() {

	if($('slideshowWrapper') == null) return;

	if($('slideshowControls') != null) {

		$('slideshow').ani = false;
		$('slideshow').current = 1;
		$('slideshow').counter = 0;
		$('slideshow').distance = 625;
		$('slideshow').items = $$('#slideshowControls li').length;


		$$('#slideshowControls a').each(function(l) {
			l.observe('click', function(e) {
				Event.stop(e);
				var to = this.rel;

				$('slideshow').gotoSlide(to);

			}.bindAsEventListener(l));
		});

		$('slideshow').gotoSlide=function(to) {
			if(to == $('slideshow').current || $('slideshow').ani) return;

			var dif = $('slideshow').current - to;
			var negative = (dif < 0);
			dif = Math.abs(dif);

			var moveDistance = $('slideshow').distance*dif;
			if(negative) moveDistance = moveDistance*-1;

			$('slideshow').ani = true;
			$('slideshow').goingTo = to;

			$$('#slideshowControls li').invoke('removeClassName', 'active');
			$($$('#slideshowControls a[href=#'+to+']')[0].parentNode).addClassName('active');

			new Effect.Move($('slideshowItems'), {
														x:moveDistance,
														mode:'relative',
														duration: 0.5,
														transition: Effect.Transitions.EaseTo,
														afterFinish:function() {
															$('slideshow').ani = false;
															$('slideshow').current = $('slideshow').goingTo;
														}
													});

		}

		/* Slideshow element */
		$('slideshow').pe = new PeriodicalExecuter(function() {
			var to = ($('slideshow').current+1 > $('slideshow').items) ? 1 : $('slideshow').current+1;
			$('slideshow').gotoSlide(to);
		}, 8);

		$('slideshowItems').observe('mouseover', function() {
			$('slideshow').pe.stop();
		});
		$('slideshowItems').observe('mouseout', function() {
			$('slideshow').pe.stop();
			$('slideshow').pe = new PeriodicalExecuter(function() {
				var to = ($('slideshow').current+1 > $('slideshow').items) ? 1 : $('slideshow').current+1;
				$('slideshow').gotoSlide(to);
			}, 8);
		});

	}
});

document.observe("dom:loaded", function() {
	$$('input.memorize').each(function(field) {
		field.defaultValue = $F(field);
		field.observe('focus', function() {
			if($F(this) == this.defaultValue) this.value = "";
		}.bindAsEventListener(field));
		field.observe('blur', function() {
			if($F(this).blank()) this.value = this.defaultValue;
		}.bindAsEventListener(field));

	});

	// Zebra rows on content tables
	$$('#content tr:nth-child(even)').invoke('addClassName', 'odd');
});


Effect.Transitions.EaseTo     = function(pos) { return Math.pow(pos,0.25); };
Effect.Transitions.EaseFrom   = function(pos) { return Math.pow(pos,4); };
Effect.Transitions.EaseFromTo = function(pos) { return (pos < 0.5) ? Effect.Transitions.EaseFrom(pos) : Effect.Transitions.EaseTo(pos); }