// Impression d'un article
function imprime_art(numart) {
	window.open('print.php?art='+numart, 'print', 'height=500, width=780, location=no, status=no, directories=no');
}

// Ajout d'une ombre
function addShadow(objSource) {
	var divShadow = new Element('img', { src: 'images/ombre.png', styles: { 
		position: 'absolute', left: objSource.getPosition().x, top: objSource.getPosition().y, 
		height: objSource.getSize().y+4, width: objSource.getSize().x+6, opacity: 0
	} }).inject(objSource, 'before').fade('in');
	return divShadow;
}

// Enregistrement des préférences utilisateur
function savPrefs(pref, valeur) {
	Cookie.write(pref, valeur, {duration: 1000, domain: 'marlieux.com'});
}

// ------------------------------------
// 				mooTools
// ------------------------------------
window.addEvent('domready', function() {

	// ------------------------------------
	// General
	
	// Lecture des préférences utilisateur
	//var numFond = Cookie.read('numFond');		if (numFond == null) 	numFond = 12; 		else numFond = parseInt(numFond);
	var valZoom = Cookie.read('valZoom');		if (valZoom == null) 	valZoom = 0;		else valZoom = parseInt(valZoom);
	var affApercu = Cookie.read('affApercu');	if (affApercu == null) 	affApercu = true;	else affApercu = (affApercu=='1');

	// Fond écran
	/*if (numFond != 12) $('fond').set('src', 'images/fonds/' + numFond + '.jpg');
	$('btnFond').addEvent('click', function(e) { 
		numFond++;
		if (numFond > 12) numFond = 1;
		savPrefs('numFond', numFond);
		$('fond').get('tween').start('opacity', 0).chain(function() { 
			var imgFond = new Asset.image('images/fonds/'+numFond+'.jpg', { onload: function() { 
				$('fond').set('src', imgFond.get('src')).fade('in');
			} });
		});
	});  */
	
	// Affichage ou non de l'aperçu des articles
	$$('.btnExpand').each(function(elt) { 
	   	var divExpand = elt.getParent().getNext('.divExpand');
		divExpand.store('oriHeight', divExpand.getStyle('height')); 
		elt.store('expanded', affApercu);
		if (!elt.hasClass('btnGroupe')) {
			divExpand.addEvent('resize', function() { this.getElement('div').getElement('.apercu').setStyle('height', this.getSize().y); });
			divExpand.getElement('div').getElement('.apercu').setStyle('height', divExpand.getSize().y);
		}
	});
	$('btnApercu').addEvent('click', function(e) {
		e.stop();
		affApercu = !affApercu;
		$('btnApercu').getPrevious('img').set('src', 'images/icones/' + (affApercu?'zoom_out':'loupe') + '.png');
		savPrefs('affApercu', (affApercu?'1':'0'));
		$$('.btnExpand').each(function(elt) {
			if (!elt.hasClass('btnGroupe')) {
				var divExpand = elt.getParent().getNext('.divExpand');
				elt.set('src', 'images/icones/bull_' + (affApercu?'down':'right') + '.png');
				elt.set('alt', (affApercu?'v':'>'));
				var height = divExpand.retrieve('oriHeight');
				if (height == 'auto') {
					divExpand.setStyle('height', 'auto');
					height = divExpand.getSize().y;
					divExpand.setStyle('height', (affApercu?0:height));
				}
				divExpand.get('tween').start('height', (affApercu?height:0)).chain(function() { 
					if (divExpand.retrieve('oriHeight') == 'auto' && affApercu) divExpand.setStyle('height', 'auto'); 
				});
			}
		});
	});
	if (affApercu) $('btnApercu').getPrevious('img').set('src', 'images/icones/zoom_out.png');
	else {
		$$('.btnExpand').each(function(elt) {
			if (!elt.hasClass('btnGroupe')) {
				var divExpand = elt.getParent().getNext('.divExpand');
				elt.set('src', 'images/icones/bull_' + (affApercu?'down':'right') + '.png');
				elt.set('alt', (affApercu?'v':'>'));
				divExpand.setStyle('height', 0);
			}
		});
	}

	// Gestion zoom du texte
	function setFontSize(elt, valeur) {
		if (parseInt(elt.getStyle('font-size')) > 0) {
			elt.setStyle('font-size', (parseInt(elt.getStyle('font-size')) + valeur) + 'px');
			elt.getChildren().each( function(child) {
				setFontSize(child, valeur);
			});
		}
	}
	if (valZoom != 0) $$('.divExpand').each(function(div) { setFontSize(div, valZoom); });
	$('btnZoomin').addEvent('click', function(e) {
		if (valZoom < 6) {
			valZoom = valZoom + 2;
			savPrefs('valZoom', valZoom);
			$$('.divExpand').each(function(div) { setFontSize(div, 2); });
		}
	});
	$('btnZoomout').addEvent('click', function(e) {
		if (valZoom > -2) {
			valZoom = valZoom - 2;
			savPrefs('valZoom', valZoom);
			$$('.divExpand').each( function(div) { setFontSize(div, -2); });
		}
	});
	$('btnZoomdef').addEvent('click', function(e) {
		e.stop();
		$$('.divExpand').each(function(div) { setFontSize(div, -valZoom); });
		valZoom = 0; savPrefs('valZoom', valZoom);
	});

	// Accès admin
	$('btnAdmin').addEvent('click', function(e) {
		e.stop();
		window.open('admin.php', 'admin');
	});

	// Mentions légales
	$('divLegal').setStyle('opacity', 0);
	$('btnLegal').addEvent('click', function(e) {
		e.stop();
		$('divLegal').fade('toggle');
	});
	$('divLegal').addEvent('mouseleave', function(e) {
		this.fade('out');
	});

	// Plan du site
	$('btnListe').addEvent('click', function(e) {
		e.stop();
		if ($('divListe')) $('divListe').fade('toggle');
		else {
			var divListe = new Element('div', { id: 'divListe', 
				styles: { position: 'absolute', top: 18, left: '50%', height: 420, width: 500, marginLeft: -2, border: '1px solid #888', 
						  background: 'url(images/trame_blanc.png) repeat', color: '#000', opacity: 0, overflow: 'hidden' }
			}).inject($(document.body));
			divListe.addEvent('mouseleave', function(e) { 
				divListe.get('tween').start('opacity', 0).chain(function() { divListe.dispose(); });
			}); 
			new Request({url: 'index.php?action=getlst', method: 'post', onSuccess: function(retour) {
				divListe.set('html', '<div style="padding: 8px; height: 404px; overflow: auto;">' + retour + '</div>');
				divListe.fade('in');
				var imgIci = new Element('img', { src: 'images/ici.png', styles: { height: 24, width: 120, marginTop: -3, float: 'right' } });
				if (val_rec) {
					imgIci.inject($('refrec'), 'after');
				} else if (id_art) {
					imgIci.inject($('refa'+id_art), 'after');
				} else if (id_sec) {
					imgIci.inject($('refs'+id_sec), 'after');
				} else {
					imgIci.inject($('refacc'), 'after');
				}
				var valScroll = imgIci.getPosition(divListe.getElement('div')).y - 100;
				if (valScroll < 0) valScroll = 0;
				divListe.getElement('div').scrollTo(0, valScroll);
			}}).send();
		}
	});

	// Gestion des menus
	$('ddmenu').getElements('li.ddsmenu').each( function( elem ){
		var list = elem.getElement('div.ddlinks');
		if (list) {
			var divShad = null;
			var divMenu = new Element('div', { 'html': '<div>' + list.get('html') + '</div>', 'class': 'divmenu' }).inject($(document.body));
			divMenu.setStyles({ left: elem.getPosition().x, top: elem.getPosition().y + 20 });
			var fxMenu = new Fx.Slide(divMenu.getElement('div')).hide();
			elem.addEvent('mouseenter', function() { 
				divMenu.setStyles({ left: elem.getPosition().x, top: elem.getPosition().y + 20 });
				if (divMenu.getSize().x < elem.getSize().x) divMenu.setStyle('width', elem.getSize().x);
				$$('.divmenu').fireEvent('mouseleave');
				elem.setStyle('background', '#ddf');
				fxMenu.cancel(); 
				fxMenu.slideIn().chain(function() { divShad = addShadow(divMenu); }); 
			});
			divMenu.addEvent('mouseleave', function() { fxMenu.cancel(); fxMenu.slideOut(); if (divShad) divShad.dispose(); elem.setStyle('background', ''); });
		} else 
			elem.addEvent('mouseenter', function() { $$('.divmenu').fireEvent('mouseleave'); });
	})
	$('imgBanniere').addEvent('mouseenter', function() { $$('.divmenu').fireEvent('mouseleave'); });
	$('pageContent').addEvent('mouseenter', function() { $$('.divmenu').fireEvent('mouseleave'); });

	// Validation email s'inscrire à la mailing list
	if ($('btnValmnl')) {
		$('btnValmnl').addEvent('click', function(e) {
			e.stop();
			if ($('emailml').value && $('emailml').value.contains('@') && $('emailml').value.contains('.')) {
				new Request({method: 'post', url: 'index.php?action=addmel', 
					onSuccess: function(retourAction) {
						alert(retourAction);
						$('emailml').value = '';
					}
				}).send('email=' + $('emailml').value);
			} else {
				$('emailml').highlight('#F33');
				$('emailml').focus();
			}
		});
	}
	
	// Gestion div expandable (+ groupes)
	var scrollContent = new Fx.Scroll('pageContent', { offset: { y: -10 } });
	$$('.btnExpand').setStyle('cursor', 'pointer');
	$$('.btnExpand').each(function(elt) {
		var objDiv = elt.getParent().getNext('.divExpand');
		if (elt.hasClass('btnGroupe') && id_grp) {			// Si groupe défini compression des autres groupes
			if (id_grp != elt.getNext('.idGroupe').get('html')) {
				elt.store('expanded', false);
				elt.set('src', 'images/icones/bull_right.png');
				elt.set('alt', '>');
				objDiv.setStyle('height', 0);
			}
		}
		elt.addEvent('click', function(e) {
			this.store('expanded', !this.retrieve('expanded'));
			if (this.retrieve('expanded') && this.hasClass('btnGroupe')) {	// Si groupe et expansion compression des autres
				$$('.btnGroupe').each(function(btn) {
					if (btn != elt && btn.retrieve('expanded')) btn.fireEvent('click');
				});
			}
			this.set('src', 'images/icones/bull_' + (this.retrieve('expanded')?'down':'right') + '.png');
			this.set('alt', (this.retrieve('expanded')?'v':'>'));
			var height = objDiv.retrieve('oriHeight');
			if (height == 'auto') {
				objDiv.setStyle('height', 'auto');
				height = objDiv.getSize().y;
				objDiv.setStyle('height', (this.retrieve('expanded')?0:height));
			}
			objDiv.get('tween').start('height', (this.retrieve('expanded')?height:0)).chain(function() { 
				if (objDiv.retrieve('oriHeight') == 'auto' && elt.retrieve('expanded')) objDiv.setStyle('height', 'auto'); 
				if (elt.hasClass('btnGroupe') && elt.retrieve('expanded')) scrollContent.toElement(elt);
			});
	   });
	});
	
	// Slimbox, zoom des images
	if ($$('img.slim')) {
		$$('img.slim').each( function(obj, key) {
			if (obj.getSize().x < 100 && obj.getSize().y < 100) obj.removeClass('slim');
		});
		$$('img.slim').setStyle('cursor', 'pointer');
		$$('img.slim').slimbox({counterText: "Image {x} sur {y}"}, function(el) { return [el.src, el.alt]; });
	}

	// Recherche
	$('rechTexte').addEvent('focus', function() { this.select(); });
	$('rechTexte').addEvent('keydown', function(e){
	    if (e.key == 'enter' && this.value) {
			document.location.href = 'index.php?rec=' + this.get('value');
		}
	});
	$('btnValrec').addEvent('click', function() { 
		if ($('rechTexte').get('value')) document.location.href = 'index.php?rec=' + $('rechTexte').get('value'); 
	});

	// Gestion apercus + Affichage dans les aperçus des mots clefs surlignés
	$$('.apercu').addEvent('click', function(e) {
		document.location.href = 'index.php?art=' + this.get('id').substr(6);
	});
	$$('.apercu').each( function(elt) {
		elt.addEvent('mousemove', function(e) {
			var coef = (e.client.y - this.getPosition().y - this.getScroll().y) / this.getSize().y;
			this.scrollTo(0, this.getScrollSize().y * coef);
		});
		elt.addEvent('mouseleave', function(e) {
			this.scrollTo(0, 0);
		});
	});
	if ($$('.surligne')) { 
		var cptId = 0;
		$$('.apercu').each(function(objet) {
			var scrollApercu = new Fx.Scroll(objet);
			if (objet.getElement('.surligne')) {
				cptId++;
				objet.getElement('.surligne').set('id', 'surligne' + cptId.toString());
				scrollApercu.toElement(objet.getElement('.surligne').get('id'));
			}
		});
	}
	
	// Maj style cadre météo
	var level = 0;
	function setMeteoStyle(elt) {
		level++;
		elt.setStyles({ background: '#acf', color: '#333' });
		if (level < 11) elt.getChildren().each(function(child) { setMeteoStyle(child); });
		level--;
	}
	setMeteoStyle($('divMeteo'));
	
	// Image accueil : gestion survol souris
	if ($('image_accueil')) new MooLoupe($('image_accueil'), { zoom: 1.5 });
});