window.addEvent('domready', function() {
	if ($('banner')) {
		var s = new SliderFade('banner', ['banner1.jpg','banner3.jpg','banner7.jpg','banner5.jpg','banner6.jpg','banner2.jpg', 'banner8.jpg', 'banner9.jpg', 'banner4.jpg'], 'http://www.perignat-les-sarlieve.fr/templates/01/images/');
	}
	
	if ($('agendaRub')) {
		var reqNews = new Request({method : 'get', 
										url : $('agendaRubMairie').get('href'),
										onComplete: function(response) { $('agendaContent').set('html', response); }
									   }).send();
		$$('#agendaRub a').each(function(item, i) {
			item.addEvent('click', function(e) {
			e.stop();
			var reqNews = new Request({method : 'get', 
										url : this.get('href'),
										onComplete: function(response) { $('agendaContent').set('html', response);}
									   }).send();

			if (this.get('id') == 'agendaRubMairie') {
				$('agendaContent').removeClass($('agendaContent').get('class'));
				$('agendaContent').addClass('mairie');
			}
			else if (this.get('id') == 'agendaRubCulture') {
				$('agendaContent').removeClass($('agendaContent').get('class'));
				$('agendaContent').addClass('culture');
			}
			else {
				$('agendaContent').removeClass($('agendaContent').get('class'));
				$('agendaContent').addClass('sports');		
			}
			});
		});
	}
	
	
	
	if ($('gallery')) {
		var g = new Gallery('caption', 'browser', 'pages');
	}


	if ($('content-form') != null) {
		var myForm = new Forms('content-form');
	}
		
	if (Browser.Engine.name == 'trident' && Browser.Engine.version == 4) {
			$$('#main_navigation > li').each(function(i, e) {
				i.addEvents({
					'mouseenter': function () {
						this.set('class', this.get('class')+'_over over');
					},
					'mouseleave' : function () {
						this.set('class', this.get('class').replace(/^(.*)_over\sover$/,'$1'));
					}
				});
			});
	}
	
	
	if ($('scrollerNews')) {
		/*var opt = {
  		duration: 15000,
  		delay: 1000,
  		auto:true}
		var scroller = new QScroller('scrollerNews',opt);
		scroller.load();
	}*/
		var quotes = [];
		$$('#scrollerNewsHide div').each(function(el,i) {quotes.push(el.get('text')); });
		var i = 0;
		var fx = new Fx.Text('scrollerNews', {
			    duration: 3000,
			    transition: Fx.Transitions.Circ.easeOut
			});
		fx.start(quotes[i]);
		
        (function(){
			if (i < quotes.length-1) i++;
			else i = 0;
			fx.start(quotes[i]);
        }).periodical(7000);
	}
});


var SliderFade = new Class ({
	Implements: Options,

	options : {
		imageTime	:	4000,
		fadeTime	:	1500
	},
	
	initialize : function (container, images, path, options) {
		this.setOptions(options);
		this.container = $(container);
		
		this.images = images.map(function(url) {
			return new Element('img', 
							   {'src' : path+url,
							    'width' : '100%', 'height': '100%',
								'tween' : {duration : this.options.fadeTime}
							   });
		}, this);

		this.index = 0;
		this.currentImage = this.images[this.index].inject(container);
		this.fade.periodical(this.options.imageTime + this.options.fadeTime, this);
	},
	
	fade : function () {
		this.index = (this.index + 1) % this.images.length;
		this.lastImage = this.currentImage;
		
		this.currentImage = this.images[this.index].fade('hide').inject(this.container).fade('in');
	}
});


var SliderText = new Class ({
	Implements: Options,

	options : {
		imageTime	:	4000,
		fadeTime	:	1500
	},
	
	initialize : function (container, options) {
		this.setOptions(options);
		this.container = $(container);
		this.text = [];
	
		var tmpTxt = this.container.getElements('p');
		tmpTxt.each(function(el, i) {
			el.setStyle('tween', {duration : this.options.fadeTime});
			this.text[i] = el;
		}, this);

		this.index = 0;
		this.currentImage = this.text[this.index].inject(container);
		this.fade.periodical(this.options.imageTime + this.options.fadeTime, this);
	},
	
	fade : function () {
		this.index = (this.index + 1) % this.text.length;
		this.lastImage = this.currentImage;
		
		this.currentImage = this.text[this.index].fade('hide').inject(this.container).fade('in');
	}
});



var Forms = new Class ({
		Implements: Options,
		
		options : {
			formValidInput : 'valid-form',
			errorClass : 'error'
		},

		initialize : function (container, options) {
			this.setOptions(options);
			this.validForm = $(this.options.formValidInput);
			
			this.container = $(container);

			this.obl = [];
			this.initUrl();
			this.initPopup();

			
			this.container.addEvent('submit', function(event) { 
				this.obl.empty();
				this.parseInput(this.container); 
				if (this.obl.length > 0) {
					event.preventDefault(); 
					this.displayObl();
				}
			}.bind(this));
		},
		
		initUrl : function () {
			this.action = this.container.get('action');
		},
		
		initPopup : function () {
			this.popup = new Element ('div', {'id' : 'popup'});
			this.popup.inject(document.body, 'top');
			
			this.popup.addEvents({
				'show' : function () { this.toggleClass('show'); },
				'hide' : function () { this.toggleClass('show'); }
			});
		},
		
		parseInput : function (container) {
			var bool = true;
			(container.getElements('input, textarea, select')).each(function (elt, i) {
				if (elt.hasClass('obligatoire') && this.testInput(elt) == false) {
					elt.addClass(this.options.errorClass);
					this.obl.push(elt);
				}else if (elt.hasClass('error')) elt.removeClass('error');
			}, this);
		},
		
		testInput : function (tag) {
			var result =  true;

			switch (tag.get('tag')) {
				case 'input'	:	if (tag.get('type') == 'text') {
										if (tag.get('value').trim() == '')
											result = false;
										tag.addEvent('click', function() { this.select(); });
									}
									else if (tag.get('type') == 'checkbox' && tag.checked == false) result = false;
									else if (tag.get('type') == 'radio' && tag.checked == false) result = false
									break;

				case "textarea"	:	if (tag.get('value').trim() == '') result = false;
									break;

				case "select"	:	if (tag.getSelected() == null) result = false;
									break
			}
			
			return result;
		},

		displayObl : function () {
			this.popup.empty();
			
			var background = new Element('div', {'class': 'background'});
			background.inject(this.popup);
			
			var message = new Element('div', {'class': 'message'});
			message.addEvent('click', function () { this.popup.fireEvent('hide'); }.bind(this));

			if (this.obl.length > 0) {
				(new Element('p', {'html' : 'Les champs du formulaire <span class="rouge">en rouge</span> contiennent des erreurs ou ne sont pas remplis correctement'})).inject(message);
				(new Element('p', {'html' : '&gt;&gt; Revenir sur le formulaire', 'class' : 'link'})).inject(message);
				(new Element('p', {'class' : 'footer'})).inject(message);
	
				message.inject(this.popup);
				
				this.popup.fireEvent('show');
			}
		},
		
		initDate : function (container, radical) {
			var current = ($('key-gen').get('value')).split('-');

			$$('#'+container+' input').each(function (e, i) {
				if (e.get('name') == radical+'_d') e.set('value', current[0]);
				else if (e.get('name') == radical+'_m') e.set('value', current[1]);
				else if (e.get('name') == radical+'_y') e.set('value', current[2]);
			})

		}
	});
