﻿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();
}