﻿function copyToErreur(elem){
	setErreur(elem.innerHTML);
}

function copyToInfos(elem){
	setInfos(elem.innerHTML);
}

function setErreur(valeur){
	var erreur = $('erreur');
	var erreur_c = $('erreur_c');
	erreur_c.innerHTML = valeur;
	montreErreur();
}

function setInfos(valeur){
	var infos = $('infos');
	var infos_c = $('infos_c');
	infos_c.innerHTML = valeur;
	montreInfos();
}

var show_erreur = true;
var show_infos = true;

function montreInfos(){
	var infos = $('infos');
	//on annule les effets voulant effacer les erreurs
	var rinfos = Effect.Queues.get('infos');
	rinfos.findAll(function(e){ return e.state=='idle' }).each( function(e) {
            e.cancel();
    });
	
	//et hop, on affiche le menu(enfin, si il est pas deja affiche)
	if(!infos.visible()){
	new Effect.Appear(infos,{ queue:{position:'end',scope:'infos',limit:2},duration:0.3,delay:0.3,beforeStart:hideSelects});
	}
	show_infos = true;
}

function montreErreur(){
	var erreur = $('erreur');
	//on annule les effets voulant effacer les erreurs
	var rerreur = Effect.Queues.get('erreur');
	rerreur.findAll(function(e){ return e.state=='idle' }).each( function(e) {
            e.cancel();
    });
	
	//et hop, on affiche le menu(enfin, si il est pas deja affiche)
	if(!erreur.visible()){
	new Effect.Appear(erreur,{ queue:{position:'end',scope:'erreur',limit:2},duration:0.3,delay:0.3,beforeStart:hideSelects});
	}
	//on affiche aussi le boutton dans le menu permettant d'afficher/montrer l'erreur
	//$('toggle_erreur').show();
	show_erreur = true;
}

function removeInfos(){
	var infos = $('infos');
	new Effect.Fade(infos, {queue:{position:'end',scope:'infos',limit:2}, duration:0.3,delay:0.3,afterFinish:showSelects});
	show_infos = false;
}

function removeErreur(){
	var erreur = $('erreur');
	new Effect.Fade(erreur,{queue:{position:'end',scope:'erreur',limit:2},duration:0.3,delay:0.3,afterFinish:showSelects});
	show_erreur = false;
}


function toggleInfos(){
	if(show_infos){
		removeInfos();
	} else {
		montreInfos();
	}
}
function toggleErreur(){
	if(show_erreur){
		removeErreur();
	} else {
		montreErreur();
	}
}

//Effets

Effect.QuickShake = function(element) {
  element = $(element);
  var oldStyle = {
    top: element.getStyle('top'),
    left: element.getStyle('left') };
    return new Effect.Move(element, 
      { x:  10, y: 0, duration: 0.02, afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x: -20, y: 0, duration: 0.05,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x:  20, y: 0, duration: 0.05,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x: -20, y: 0, duration: 0.05,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x:  20, y: 0, duration: 0.05,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x: -10, y: 0, duration: 0.02, afterFinishInternal: function(effect) {
        effect.element.undoPositioned().setStyle(oldStyle);
  }}) }}) }}) }}) }}) }});
}

//palliatif un bug de ce cher IE6 qui comprend rien a la vie des select
function hideSelects(){
	temp=navigator.appVersion.split("MSIE");
  version=parseFloat(temp[1]);
		ie6 = (navigator.appName == 'Microsoft Internet Explorer' && version < 7 ) ? 1:0
	selects = document.getElementsByTagName('select');
	if(ie6){
		for(var i=0;i<selects.length;i++){
			selects[i].hide();
		}
	}
}
function showSelects(){
	temp=navigator.appVersion.split("MSIE");
  version=parseFloat(temp[1]);
		ie6 = (navigator.appName == 'Microsoft Internet Explorer' && version < 7 ) ? 1:0
	selects = document.getElementsByTagName('select');
	if(ie6)
		for(var i=0;i<selects.length;i++){
			selects[i].show();
		}
}

function fleche(obj){
	$(obj.element.id+'_bas').toggle();
	$(obj.element.id+'_haut').toggle();
}

function imgswitch(e, act){
	var imag = e.src;
	var deb = imag.indexOf('_off.gif');
	var deb2 = imag.indexOf('_on.gif');
	if(deb != -1){
		racine = imag.substring(0,deb);
	}
	if(deb2 != -1){
		racine = imag.substring(0,deb2);
	}
	//alert(racine+'|'+deb+'-'+deb2);
	var nouv = racine+'_'+act+'.gif';
	e.src = nouv;
}

Event.observe(window, 'load', function() {
  var imgs=$$('img.to_hover');
  for(var i=0;i<imgs.length;i++){
  	Event.observe(imgs[i],'mouseover',function(event){
  		imgswitch(Event.element(event),'on');
 		});
  	Event.observe(imgs[i],'mouseout',function(event){
  		imgswitch(Event.element(event),'off');
 		});
  }
});
