window.addEvent('domready', init);
window.addEvent('resize', reisze);

var mooinit = false;

function init() {
	
	mooinit = true;
	
	if($('slideshow')) {
		
		var anim;
		var z = 0;
		var slide = 0;
		var slideitems = 0;
		
		function startSlide() {
			
			$clear(anim);
						
			anim = (function() {
				
				showslide();
				
			}).periodical(5000);
			
			showslide();
			
		}
		
		function showslide() {
			
			var newSlide = new Element('div', {
				'id': 'slide_' + z,
				'class': 'item'	,
				'html': eval('item_' + slide)
			}).inject($('slideshow'));
						
			if(newSlide.getElement('a')) {
				
				newSlide.setStyle('cursor','pointer').addEvent('click', function() {
					
					var target = newSlide.getElement('a');
					window.open(target.get('href'), '_self');
					target.destroy();
					
				});	
			
			}
			
			var tween = new Fx.Tween(newSlide, {
				duration: 1000, 
				transition: Fx.Transitions.Quart.easeOut,
				link: 'cancel',
				onComplete: function(slideItem) {
					
					for(y = 1; y < 10; y++) {
						
						if($('slide_' + (z - y)))  $('slide_' + (z - y)).destroy();
					
					}
					
					z++;
									
				}
			}).start('opacity', 0, 1);
			
			slide++
			
			if(slide >= slideitems) slide = 0;
			
		}
		
		$('slideshow').getElements('div.item').each(function(elm, i) {
			
			var size = elm.getElement('.item_text').measure(function() {
				return this.getSize();
			});
			
			elm.getElement('.item_text').setStyle('padding-top', ((251 - size.y) / 2 ) - 10);
			
			this['item_' + i] = elm.get('html');			
			elm.destroy();
			slideitems++;
			
		});
		
		startSlide();
		
	}
	
	if($('projets_home')) {
		
		$('projets_home').getElements('li').each(function(elm ,i) {
			
			var h =  ((elm.getHeight() - elm.getElement('.box_align').getHeight()) / 2) - 12;
			if(h > 0) elm.getElement('.box_align').setStyle('padding-top', h);
			
		});
		
	}
	
	$$('.carousel').each(function(elm, i) {
		
		var c_pos = 0;
		var c_height = 0;
		var c_item = elm.getElement('li');	
		var c_items = elm.getElements('li');	
		var c_items_margin = c_item.getStyle('margin-right').toInt();	
		var item_width = c_item.getWidth() + c_items_margin;
		var c_tween = elm.getElement('ul');
		
		var tween_c = new Fx.Tween(c_tween, {
			duration: 500, 
			transition: Fx.Transitions.Quart.easeOut,
			link: 'cancel'
		});
		
		elm.getElements('li').each(function(elmc, c) {
			
			elmc.addEvents({
				'mouseenter': function(evt) {
					
					this.addClass('over');
					
				},	
				'mouseleave': function(evt) {
					
					this.removeClass('over');
					
				}	
			});
			
			var elmHeight = elmc.getHeight();
			if(elmHeight > c_height) c_height = elmHeight;
		
		});
		
		elm.getElements('li, .next, .prev').setStyle('height', c_height + 10);
		
		elm.getElement('.next').addEvent('click', function(evt) {
			
			var c_visible = Math.ceil((elm.getElement('.carousel_mask').getWidth() - 10) / item_width);
			
			if(c_visible < c_items.length) {
				
				c_pos++;
				if(c_pos > c_items.length - c_visible) c_pos = c_items.length - c_visible;
			
			}
			
			tween_c.start('left', (item_width * c_pos) / -1);
		
		});
		
		elm.getElement('.prev').addEvent('click', function(evt) {
			
			c_pos--;
			if(c_pos < 0) c_pos = 0;
			tween_c.start('left', (item_width * c_pos) / -1);
		
		});
		
		c_tween.setStyle('width', c_items.length * item_width);
		
		elm.setStyle('height', c_height + 25);
		
	});
	
	$$('.selectgris').each(function(elm, i) {
		
		elm.getElement('select').setStyle('display', 'none');
		
		var new_select = new Element('div', {
			'class':'select_styled',
			'events': {
				'mouseenter': function(evt) {
					
					tween.start({
						'height': size.y,
						'opacity': 1
					});
					
				},
				'mouseleave': function(evt) {
					
					tween.start({
						'height': 0,
						'opacity': 0
					});
					
				}
			}	
		}).adopt(
			new Element('a', {
				'href': 'javascript:;',
				'class':'select_styled_selected',
				'html': elm.getElement('option[selected]').get('html')
			}),
			new Element('div', {
				'class':'select_anim'	
			}).adopt(
				new Element('ul')
			)
		).inject(elm);
		
		var tween = new Fx.Morph(new_select.getElement('.select_anim'), {
			duration: 300, 
			transition: Fx.Transitions.Quart.easeOut,
			link: 'cancel'
		}).set({'height': 0,'opacity': 0});
		
		elm.getElements('option').each(function(opt, y) {
			
			if(y !== 0) {
			
				var zebra = '';
				if(y / 2 !== Math.round(y / 2)) zebra = 'zebra';
				
				var bg = '';
				if(opt.getStyle('background-image')) bg = opt.getStyle('background-image');
				
				var newOpt = new Element('li', {
					'class': zebra
				}).adopt(
					new Element('a', {
						'href': 'javascript:;',
						'class':opt.get('selected'),
						'html': opt.get('html'),
						'styles': {
							'background-image':bg
						},
						'events': {
							'click': function(evt) {
								
								var my_value = this.get('html');
								var my_action = opt.get('value');
								
								elm.getElements('option').erase('selected');
								elm.getElements('option').each(function(opt_set) {
									
									if(opt_set.get('html') == my_value) {
										
										opt_set.set('selected', true);
										new_select.getElement('.select_styled_selected').set('html', my_value);
										new_select.fireEvent('mouseleave');
										
									}
									
								});
								
								window.open(my_action, '_self');
								
							}	
						}
					})
				).inject(new_select.getElement('ul'));
			
			}
		
		});
		
		var size = new_select.getElement('.select_anim ul').measure(function(){
			return this.getSize();
		});
				
	});
		
	// SELECT
		
	$$('.select').each(function(elm, i) {
		
		var delay;
		var hide = true;
		var skipHide = false;
		var maxHeight = 400;
		
		elm.getElement('select').setStyles({
			'position':'absolute',
			'left':-10000,
			'top':0,
			'visibility': 'hidden'
		});
		
		var new_select = new Element('div', {
			'class':'select_styled',
			'events': {
				'mouseenter': function(evt) {
					
					$clear(delay);
					
					delay = (function() {
					
						tween.start({
							'height': size,
							'opacity': 1
						});
					
					}).delay(200);
					
				},
				'mouseleave': function(evt) {
					
					$clear(delay);
					
					if(hide) {
					
						delay = (function() {
						
							tween.start({
								'height': 0,
								'opacity': 0
							});
						
						}).delay(500);
					
					}
					
				}
			}	
		}).adopt(
			new Element('a', {
				'href': 'javascript:;',
				'class':'select_styled_selected',
				'html': elm.getElement('option[selected]').get('html')
			}),
			new Element('div', {
				'class':'select_anim'	
			}).adopt(
				new Element('div', {
					'class':'scroll'
				}).adopt(
					new Element('div', {
						'class':'knob'	
					})
				),
				new Element('ul')
			)
		).inject(elm);
		
		var tween = new Fx.Morph(new_select.getElement('.select_anim'), {
			duration: 300, 
			transition: Fx.Transitions.Quart.easeOut,
			link: 'cancel'
		}).set({'height': 0,'opacity': 0});
		
		elm.getElements('option').each(function(opt, y) {
			
			if(y !== 0) {
							
				var newOpt = new Element('li').adopt(
					new Element('a', {
						'href': 'javascript:;',
						'class':opt.get('selected'),
						'html': opt.get('html'),
						'events': {
							'click': function(evt) {
								
								var my_value = this.get('html');
								
								elm.getElements('option').erase('selected');
								elm.getElements('option').each(function(opt_set) {
									
									if(opt_set.get('html') == my_value) {
										
										opt_set.set('selected', true);
										new_select.getElement('.select_styled_selected').set('html', my_value);
										new_select.fireEvent('mouseleave');
										
									}
									
								});
								
							},
							'mouseenter': function(evt) {
							
								new_select.fireEvent('mouseenter');
								
							}	
						}
					})
				).inject(new_select.getElement('ul'));
			
			}
		
		});
		
		var size = new_select.getElement('.select_anim ul').measure(function(){
			var s = this.getSize().y;
			if(s > maxHeight) s = maxHeight ;
			return s;
		});
		
		var scrollHeight = new_select.getElement('.select_anim ul').getHeight();
		
		if(size >= maxHeight) {
			
			elm.getElement('.knob').addEvents({
				'mouseenter': function(evt) {
					
					skipHide = true;
					new_select.fireEvent('mouseenter');
								
				},	
				'mouseup': function(evt) {
					
					skipHide = true;
					new_select.fireEvent('mouseenter');
								
				},	
				'mousedown': function(evt) {
					skipHide = false;
					hide = false;
				}	
			});
				
			var mySlider = new Slider(elm.getElement('.scroll'), elm.getElement('.knob'), {
				range: [0, 100],
				snap: true,
				mode: 'vertical',
				onTick: function(pos) {
				},
				onChange: function(step) {
					
					var p = ((step * (scrollHeight - (maxHeight - 15))) / 100) / -1;
					new_select.getElement('ul').setStyle('top', p);
					
				},
				onComplete: function() {
					
					hide = true;
					if(!skipHide) new_select.fireEvent('mouseleave');
					skipHide = false;
					
				}
			});
			
		} else {
			
			elm.getElements('.scroll, .knob').setStyle('display', 'none');
			new_select.getElement('.select_anim ul').setStyle('width', '100%');
			
		}
		
	});
	
	$$('.gallery').each(function(elm, i) {
		
		var z = 0;
		var timer;
		var current = 0;
		
		elm.getElements('.thumbs a').each(function(el, y) {
		
			el.set('id', 'btim_' + y).addEvent('click', function(evt) {
				
				if(evt) {
					
					elm.getElement('.slides').fireEvent('click');
					current = y + 1;
					if(!$('btim_' + current)) current = 0;
					
				}
				
				var big_im = this.getElement('img').get('src').split('/').pop().split('_');
				big_im.shift();
								
				im_path = '/_upl/g_' + big_im.join('_');
				
				var im = new Element('li', {
					'id': 'im_' + z,
					'styles': {
						'left': 0,
						'top': 0,
						'z-index':z,
						'background-image':'url(' + im_path + ')'	
					}
				}).inject(elm.getElement('.slides ul'));
				
				if($('im_' + (z - 1)) && Browser.Engine.trident && Browser.Engine.version == 4)  $('im_' + (z - 1)).destroy();
				
				var tween = new Fx.Tween(im, {
					duration: 1000, 
					transition: Fx.Transitions.Quart.easeOut,
					link: 'cancel',
					onComplete: function(slideItem) {
						
						if($('im_' + (z - 1)))  $('im_' + (z - 1)).destroy();
						z++;
										
					}
				}).start('opacity', 0, 1);
					
			});
			
		});
		
		var timmer;
		var mempos = 0;
		var playpause = elm.getElement('.slides').getElement('.playpause a');
		
		elm.getElement('.slides').addEvents({
			'click': function(evt) {
				
				if(playpause.getStyle('background-image').split('/').pop().split(')').shift() !== 'pause.gif' && evt) {
					
					playpause.setStyle('background-image','url(/_img/pause.gif)');
					
					timer = (function() {
						
						if(!$('btim_' + current)) current = 0;
						$('btim_' + current).fireEvent('click');
						current++;
						if(!$('btim_' + current)) current = 0;
						
					}).periodical(3000);
					
					$('btim_' + current).fireEvent('click');
					current++;
					
				} else  {
					
					playpause.setStyle('background-image','url(/_img/play.gif)');
					
					$clear(timer);
					
				}
				
			},
			'mousemove': function(evt) {
				
				$clear(timmer);
				playpause.setStyle('display','block');
				
				timmer = (function() {
					
					playpause.setStyle('display','none');
					
				}).periodical(1000);
				
				
			},
			'mouseenter': function(evt) {
				
				$clear(timmer);
				playpause.setStyle('display','block');
				
			},
			'mouseleave': function(evt) {
				
				$clear(timmer);
				playpause.setStyle('display','none');
				
			}	
		});
		
		elm.getElement('.slides').fireEvent('click', true);
		
	});
	
	if($('form_fournisseur') || $('form_login')) {
	
		if($('form_fournisseur')) {
			
			var target = $('form_fournisseur');
			
		} else {
			
			var target = $('form_login');
			if(Browser.Engine.webkit) $('content_right_align').getElement('.submit input').setStyle('margin-top', 20);
			
		}
			
		new Form.Validator(target, {
			evaluateFieldsOnBlur: false,
			onElementFail: function(elm, err) {
				elm.setStyle('border', '1px solid #ff0000');
				if(elm.getParent().getElement('.select_styled')) elm.getParent().getElement('.select_styled').setStyle('border', '1px solid #ff0000');
			},
			onElementPass: function(elm) {
				elm.setStyle('border', '1px solid #999');
				if(elm.getParent().getElement('.select_styled')) elm.getParent().getElement('.select_styled').setStyle('border', '1px solid #999');
			}
		});
		
		Form.Validator.add('required', {
			errorMsg: 'This field is required',
			test: function(element){
				if (element.value == null || element.value.trim().length == 0) return false;
				else return true;
			}
		});
		
	}
	
	if($('autres_projets')) {
		
		var fxScroll = new Fx.Scroll($(document.body), {
			duration: 1000,
			transition: Fx.Transitions.Quart.easeOut
		});
		
		var myFx = new Fx.Slide($('autres_projets'), {
			duration: 1000,
			transition: Fx.Transitions.Quart.easeOut,
			onComplete: function(){
			}
		}).hide();	
		
		$$('.morelist').addEvent('click', function(evt) {
			
			myFx.slideIn();
			fxScroll.start(0, $('scrollto').getTop());
			
		});
		
	}
	
	reisze();
	
}

function reisze() {
	
	if(mooinit == true) {
		
		// RESIZE
		
		var currentType = $('body').get('class');
		
		switch(currentType) {
			
			case 'accueil' :
			
				var minW = 1215;
				var docW = document.getWidth();
				if(docW < 1110) docW = 1110;
				var docminW = docW - minW;
				
				if(docW >= minW) {
					
					var siteW = docW - 432;
					siteW = (Math.floor(((siteW + 8) - 78) / 229) * 229) - 8 + 78;
					
					if(siteW > minW)  siteW = minW;
					
					$('menus').setStyle('width', siteW + 235);
					$('footer_align').setStyle('width', siteW + 235);
					$('content_right_box').setStyle('width', siteW - 38);
					$('content_right_align').setStyle('width', siteW);
					
					$('site').setStyles({
						'width': 'auto',
						'margin-left': 100
					});
					
					$('footer').setStyle('padding-left', 100);
									
				} else {
					
					var siteW = docW - 282;
					siteW = (Math.floor(((siteW + 8) - 78) / 229) * 229) - 8 + 78;
					
					$('menus').setStyle('width', siteW + 235);
					$('footer_align').setStyle('width', siteW + 235);
					$('content_right_box').setStyle('width', siteW - 38);
					$('content_right_align').setStyle('width', siteW);
			
					var docminP = docminW + 100;
					if(docminP < 10) docminP = 10; 
						
					$('site').setStyles({
						'width':1030,
						'margin-left': docminP				
					});
					
					$('footer').setStyle('padding-left', docminP);
				}
				
				break;
				
			default :
			
				var minW = 1448;
				var docW = document.getWidth();
				if(docW < 1110) docW = 1110;
				var docminW = docW - 1215;
				
				if(docW >= 1215) {
					
					var siteW = docW - 200;
					siteW = (Math.floor((siteW - 78) / 231) * 231) + 78 - 16;
					
					if(siteW > minW)  siteW = minW;
					
					$('menus').setStyle('width', siteW);
					$('footer_align').setStyle('width', siteW);
					$('content_right_box').setStyle('width', siteW - 38);
					$('content_right_align').setStyle('width', siteW);
					
					if($('content_right_right') && $('body').get('class') == 'grid_light fiche') $('content_right_right').setStyle('width', siteW - 771);
				
					$('site').setStyles({
						'width': 'auto',
						'margin-left': 100
					});
					
					$('footer').setStyle('padding-left', 100);
					
				} else {
					
					var siteW = docW - 50;
					siteW = (Math.floor((siteW - 78) / 231) * 231) + 78 - 12;
					
					if(siteW > 1215)  siteW = 1215;
					
					$('menus').setStyle('width', siteW);
					$('footer_align').setStyle('width', siteW);
					$('content_right_box').setStyle('width', siteW - 38);
					$('content_right_align').setStyle('width', siteW);
					
					if($('content_right_right') && $('body').get('class') == 'grid_light fiche') $('content_right_right').setStyle('width', siteW - 771);
									
					var docminP = docminW + 100;
					if(docminP < 10) docminP = 10; 
							
					$('site').setStyles({
						'width':1030,
						'margin-left': docminP				
					});
					
					$('footer').setStyle('padding-left', docminP);
					
				}
				
				break;
				
		}
		
		if(window.getWidth() < 1000) {
			
			$('body').setStyle('overflow-x', 'auto');
			
		} else {
			
			$('body').setStyle('overflow-x', 'hidden');
			
		}
	
	}
	
}
