var init = function () {
	scanUrlsAndForms();
	if($$('.navigation').length>0) initNav();
	if($('bm-home')) initBigMenu();
	if($('slideshow')) initSlideShow();
	if($('nav-cat')) initBigMenuInt();
	if($('read-more')) mooTabs('.tab','.feature',1,true);
	if($('iszodiac')) toggleOwner();	
	if($('deps')) toggleDep();
	if($('search-area')) initNetwork();
	if($('single-upload')) handlerUpload();
	if($('search-filter2')) mooTabs('.tab','.feature',0,true);	
}

var initNav = function(){
	var parent = $$('.navigation');
	var items = parent.getElements('ul');
	items.each(function(el,i) {
		el.addEvent('mouseover',function(){this.getParent('li').addClass('active')});	
	});
	items.each(function(el,i) {
		el.addEvent('mouseout',function(){this.getParent('li').removeClass('active')});	
	});
	parent.MooDropMenu({
		onOpen: function(el){
			el.fade('in');
		},
		onClose: function(el){
			el.fade('out');
		},
		onInitialize: function(el){
			el.fade('hide').set('tween',{duration:400});
		}
	});	
	var main = $('locale-switcher');
	main.MooDropMenu({
		onOpen: function(el){
			el.fade('in');
		},
		onClose: function(el){
			el.fade('out');
		},
		onInitialize: function(el){
			el.fade('hide').set('tween',{duration:200});
		}
	});
};
var initBigMenu = function() {
	$('bm-home').MooDropMenu({
		onOpen: function(el){
			el.fade('in');
		},
		onClose: function(el){
			el.fade('out');
		},
		onInitialize: function(el){
			el.fade('hide').set('tween',{duration:0});
		}
	});

};
var initBigMenuInt = function() {
	$('nav-cat').MooDropMenu({
		onOpen: function(el){
			el.fade('in');
		},
		onClose: function(el){
			el.fade('out');
		},
		onInitialize: function(el){
			el.fade('hide').set('tween',{duration:0});
		}
	});	
};
var initFilters = function() {
	var parent = $('search-tabs');
	var items = parent.getElements('ul');
	items.each(function(el,i) {
		el.addEvent('mouseover',function(){this.getParent('li').addClass('active')});	
	});
	items.each(function(el,i) {
		el.addEvent('mouseout',function(){this.getParent('li').removeClass('active')});	
	});	
	parent.MooDropMenu({
		onOpen: function(el){
			el.fade('in');
		},
		onClose: function(el){
			el.fade('out');
		},
		onInitialize: function(el){
			el.fade('hide').set('tween',{duration:0});
		}
	});
};

var mooTabs = function (tabs,features,start,sliding) {
	this.tabs = new MGFX.Tabs(tabs,features,{
		transitionDuration:500,
		startIndex:start,
		sliding:sliding
	});
}
var initNetwork = function() {	
	var myform = $('search-form');
	var sel = myform.getElements('select');
	var cbox = myform.getElements('input');
	sel.each(function(el,i) {		
		el.addEvent('change',function(){handlerDealers()});		
	});
	cbox.each(function(el,i) {		
		el.addEvent('click',function(){handlerDealers()});		
	});		
	$$('#search-form #country_id').addEvent('change', function(e) {
		var link = $$('#search-form');
		new Request({
		    url: link.get('rel')+'/country_id/'+$$('#country_id').get('value'),
		    onSuccess: function(responseText) {
		    	$$('#departement_id').set('html',responseText);
		    }
		}).send();
	});		
//	$$('#setCountry').addEvent('change', function(e) {
//				
//	});	
	var link = $$('#search-form');
	new Request({
	    url: link.get('rel')+'/country_id/'+$$('#country_id').get('value'),
	    onSuccess: function(responseText) {
	    	$$('#departement_id').set('html',responseText);
	    }
	}).send();
	
	handlerDealers();	
}

var handlerDealers = function() {
	var myform = $('search-form');
	var dest = $('dealerList');	
	myform.set('send', {url:myform.get('rel2'), onComplete: function(response) {
		if(response!=-1) {
			dest.set('html',response);
			Mediabox.scanPage();
		}
	}});
	myform.send();	
};

var toggleDep = function() {
	var pointer = $("country_id");
	if(pointer == null) {
		 pointer = $("setCountry");
	}
	var pane = $("deps");
	var myFx = new Fx.Slide(pane, {duration: 800,transition: Fx.Transitions.Pow.easeOut}).hide();	
	pointer.addEvent('change',function(e){
		
		var link = $$('#country_cont');
		if(pointer.id == "setCountry" && link != null) {
			
			new Request({
			    url: link.get('rel')+'/country_id/'+$$('#setCountry').get('value'),
			    onSuccess: function(responseText) {
			    	$$('#departement').set('html',responseText);
			    }
			}).send();
		}
		if(this.value==69 || this.value==71 || this.value==72 || this.value==73 || this.value==74
			|| this.value==75 || this.value==13 || this.value==51 || this.value==106 || this.value==62 
			|| this.value==13 || this.value==51 || this.value==162 || this.value== 225 || this.value== 35
		) myFx.slideIn();		
		else myFx.slideOut();		
	});

	if(pointer.value==69)myFx.slideIn();	
	if(pointer.value==51)myFx.slideIn();
	if(pointer.value==225)myFx.slideIn();
	if(pointer.value==62)myFx.slideIn();	
	if(pointer.value==106)myFx.slideIn();	
	if(pointer.value==162)myFx.slideIn();
	if(pointer.value==225)myFx.slideIn();	
	if(pointer.value==35)myFx.slideIn();
	if(pointer.value==13)myFx.slideIn();		
	if(pointer.value==71)myFx.slideIn();	
	
}
var toggleOwner = function() {
	var pointers = $$('.ownboat input');
	var pane = $("iszodiac");
	var myFx = new Fx.Slide(pane, {duration: 800,transition: Fx.Transitions.Pow.easeOut}).hide();	
	pointers.addEvent('click',function(e){
		if(this.value==1) myFx.slideIn();
		else myFx.slideOut();		
	});
}
var scanUrlsAndForms = function() {	
	$$('a.outside').addEvent('click', function(event) {
		event.stop();
		window.open(this.get('href'));
	});
	$$('.autosubmit').addEvent('change', function(e) {
		this.getParent('form').submit();
	});
}

var navSlideShow;
var initSlideShow = function() {
	var bprev = $('bprev');
	var bnext = $('bnext');
	var navs = $('slideshow').getElements('img');
	var caption =  $('prompt').set('opacity',0);
	var setCaption = function (txt) {
		if(txt!="")	{
			caption.set('html',txt).fade('in');
		}
		else caption.fade('out');
	}
	navSlideShow = new SlideShow('slideshow', {
		selector: 'img',
		autoplay: true,
		delay: 8000,
		transition: 'blindLeftFade',
		onPlay : function(){
			var txt = navs[0].get('alt');	
			setCaption(txt);		
		},		
		onShow: function(data){
			var txt = navs[data.next.index].get('alt');
			setCaption(txt);
		}						
	});	
	bprev.addEvent('click', function(e,index){
		e.stop();
		navSlideShow.show('previous', {transition: 'blindRightFade'});
	});
	bnext.addEvent('click', function(e,index){
		e.stop();
		navSlideShow.show('next', {transition: 'blindLeftFade'});
	});
};

/* ======= photo annonce ======= */ 
var handlerUpload = function () {
	var modeMulti = $('single-upload').get('upload-mode')?false:true;
	var	autoStart = $('single-upload').get('upload-mode')?true:false;
	var	filter = $('single-upload').get('data-filter')?$('single-upload').get('data-filter'):null;
	var up = new FancyUpload2($('upload-status'), $('upload-list'), {
		verbose: false,
		multiple: false,
		instantStart:autoStart,
		url: $('single-upload').get('data-action'),
		path: '/flash/Swiff.Uploader.swf',
		typeFilter: filter,
		target: 'upload-browse',
		onLoad: function() {
			$('upload-status').removeClass('hide');
			$('upload-fallback').destroy();
			this.target.addEvents({
				click: function() {
					alert(1);return false;
				},
				mouseenter: function() {
					this.addClass('hover');					
				},
				mouseleave: function() {
					this.removeClass('hover');
					this.blur();
				},
				mousedown: function() {
					this.focus();
				}
			});
		},
		onSelectFail: function(files) {
			files.each(function(file) {
				new Element('li', {
					'class': 'validation-error',
					html: file.validationErrorMessage || file.validationError,
					title: MooTools.lang.get('FancyUpload', 'removeTitle'),
					events: {
						click: function() {
							this.destroy();
						}
					}
				}).inject(this.list, 'top');
			}, this);
		},
		onSelectSuccess: function(files) {
			this.setEnabled(false);
		},
		onFileRemove: function(files) {
			this.setEnabled(true);
			if(!modeMulti){
				this.currentProgress.set(0);
				this.overallProgress.set(0);
			}
		}, 
		onFileSuccess: function(file, response) {
			var json = new Hash(JSON.decode(response, true) || {});			
			if (json.get('status') == '1') {
				file.element.addClass('file-success');
				file.info.set('html', '<strong>Image uploaded:</strong> (' + json.get('width') + ' x ' + json.get('height') + 'px, <em>' + json.get('mime') + '</em>)');
				$('filename').set('value', json.get('name'));
				this.setEnabled(false);

			} else {
				file.element.addClass('file-failed');
				file.info.set('html', '<strong>An error occured:</strong> ' + (json.get('error') ? (json.get('error') + ' #' + json.get('code')) : response));
			}
		},
		onFail: function(error) {
			switch (error) {
				case 'hidden':
					alert('To enable the embedded uploader, unblock it in your browser and refresh (see Adblock).');
					break;
				case 'blocked':
					alert('To enable the embedded uploader, enable the blocked Flash movie (see Flashblock).');
					break;
				case 'empty':
					alert('A required file was not found, please be patient and we fix this.');
					break;
				case 'flash':
					alert('To enable the embedded uploader, install the latest Adobe Flash plugin.');
			}
		}		
	});
}

/* ======= map popup dealer ======= */ 
var geocoder,map;
function initDealerMap() {
	var point = new google.maps.LatLng(48.857103,2.351704);
	var mapOptions = {
		center:point,
		mapTypeControl:false,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	map =  new google.maps.Map(document.getElementById("dealer-map"), mapOptions);
	getAddress();
};
function createPin(gps){
	var icn = new google.maps.MarkerImage('/images/wfrontend/pictos/icon-red.png');
	var marker = new google.maps.Marker({
		position:gps,
		map:map,
		icon:icn
	});	
};
function getAddress() {
var lat = $('lat').value;
var lon = $('lon').value;
var address = $('address').value;
if(lat!=''&&lon!='') {
	var point = new google.maps.LatLng(lat,lon);
	createPin(point);
	map.setCenter(point);
	map.setZoom(11);	
} else {
	geocoder = new google.maps.Geocoder();
	geocoder.geocode( { 'address': address}, function(results, status) {
		if (status == google.maps.GeocoderStatus.OK) {		
			createPin(results[0].geometry.location);
			map.setZoom(7);
			map.setCenter(results[0].geometry.location);
		} else {
			alert("Geocode was not successful for the following reason: " + status);
		}	
	});
	}
}
/* ======= map popup dealer ======= */ 
window.addEvent('domready',init);
