/**
* le Poisson javascript document
* @author	s.rossetti | http://www.contreforme.ch/
* @copy		2010 see @author
* @version	1
*/
function init(){
	// --- external links ---
	$$('a').each(function(el,index){
		if(el.get('rel') == 'external') el.set('target','_blank');
		if(el.get('href') && el.get('href').test('http://')) el.set('target','_blank');
	});
	
	// --- image popups ---
	if($$('img.popup')){
		$$('img.popup').each(function(el,i){
			var src = el.src.replace('/mini_','/');
			var a = new Element('a',{'class':'milk', rel:'milkbox:pop',href:src}).inject(el,'before');
			a.grab(el);
		});
	}
	
	// --- googlemap ---
	if($('gmap')){
		loadGmap();
	}
	
	// --- slideshow ---
	if($('gallery_thumbs') && $('gallery_thumbs').getChildren().length>1){
		/* settings */
		var showDuration = 3500,
			imgs = $('gallery_thumbs').getElements('a'),
			currentIndex = 0,
			interval;
		
		// --- add images to container ---
		imgs.each(function(el,i){
			if(i){
				new Element('img',{
					'src':el.get('href'),
					'width':$('refimg').get('width'),
					'height':$('refimg').get('height'),
					'styles':{
						'opacity':0,
						'z-index':i
					}
				}).inject($('gallery_img','bottom')).set('tween',{'duration':750});
			}
		});
		var images = $$('#gallery_img img');
		// worker //
		var show = function(){
			images[currentIndex].fade('out');
			currentIndex = (currentIndex < images.length-1) ? currentIndex+1 : 0;
			images[currentIndex].fade('in');
		};
		var start = function() { interval = show.periodical(showDuration); };
		var stop = function() { $clear(interval); }; 
		
		imgs.each(function(el,i){
			el.i = i;
			el.addEvents({
				'mouseenter':function(){
					if(!milkbox.closed) return;
					stop();
					currentIndex = this.i;
					show();
				},
				'mouseleave':function(){
					if(!milkbox.closed) return;
					start();
				}
			});
		});
		
		// --- re-launch animation on milkbox close ---
		milkbox.addEvent('closed',function(){ 
			start();
		});
	
		start();
	}
	
	// --- scroller ---
	init_scroller();
}
function init_scroller(){
	// --- block visible area ---
	$('article').setStyle('overflow','hidden');
	
	var h		= 430; // --- container height - (padding top and bottom) / 400-40 ---
	var cont	= $('content').getSize();
	// --- if text size is bigger than the visible area ---
	if(cont.y > h){
//	console.log(cont.y,h);
		// --- inject required elements for scroll bar ---
		var scrollzone = new Element('div',{'id':'scrollzone'}).inject($('article'));
		var knob = new Element('div',{'id':'knob'}).inject(scrollzone);
		
		// --- init slider ---
		var slider = new Slider($('scrollzone'),$('knob'),{
			mode:'vertical',
			wheel:1,
			onChange:function(step){
				var s = Math.round((cont.y-h)/100);
				$('content').setStyle('margin-top',(s*step)*-1);
			}
		});
		$('article').addEvent('mousewheel',function(ev){	
			ev = new Event(ev).stop();
			var step = slider.step-ev.wheel;	
			slider.set(step);					
		});
	}
}
function loadGmap(){
	if (GBrowserIsCompatible()){
		// http://maps.google.ch/maps?q=du+Poisson,+Isler+Francine&sll=46.97534,6.878994&sspn=0.015228,0.032015&ie=UTF8&hl=fr&view=map&cid=4041714979128726750&hq=du+Poisson,+Isler+Francine&hnear=&ll=46.975538,6.878343&spn=0.010424,0.019505&z=16
		var map = new GMap2($('gmap'),{mapTypes:[G_HYBRID_MAP,G_NORMAL_MAP]});
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		var point = new GLatLng(46.975307,6.878689);
		map.setCenter(point, 14);
		map.addOverlay(createmarker(point));
		document.body.addEvent('unload',function(){
			GUnload();
		});
	}
}
function createmarker(point){
	var icon = new GIcon();
	icon.image = "__layout/le_poisson_logo_gmap.png";
	icon.iconSize = new GSize(40,23);
	icon.iconAnchor = new GPoint(20,11);
	var marker = new GMarker(point,icon);
	GEvent.addListener(marker, "click", function(){
		var win = window.open('http://maps.google.ch/?ie=UTF8&ll=46.975794,6.878396&spn=0.005395,0.009753&z=17&iwloc=lyrftr:m,4041714979128726750,46.975377,6.878289','_blank');
	});
	return marker;
}

window.addEvent('domready',init);
