/**
 * Gestion des onglets dynamique
 * @version 1.1 29/09/2008
 * @author Charles-Alexandre Monette
 * Ajout 29/09/2008 - Ajout de la fonction gto(id)
 */

var actif = null;
var objMinuterie = null;
var ongletsInvisibles = Array();
var imagesInvisibles = Array();
var ongletActif = 0;
var contenu = null;
var contenuImage = null;
var olBase = null;

function TableauOnglets( pane, tabs, effet ) {
    var premier = true;
    for ( id in tabs ) {
        if( premier ) {
            premier = false;
            updatePane( pane, $( tabs[ id ] ), effet );
        }

        Event.observe( id, 'click', function( e ) { 
            for ( id in tabs ) $( id ).removeClassName( 'active' );
            ancetres = Element.ancestors( Event.element( e ) );
            ancetres[ 1 ].addClassName( 'active' );
            if ( actif != ancetres[ 1 ].id ) updatePane( pane, $( tabs[ ancetres[ 1 ].id  ] ), effet );
            actif = ancetres[ 1 ].id;
            Event.stop( e );
        } );
    }
}

function updatePane( pane, cible, effet ) {
    if( effet == 'fade' ) Element.hide( pane );
    Element.update( pane, cible.innerHTML );
    if( effet == 'fade' ) {
        new Effect.Appear( pane );
    } else if( effet == 'morph' ) {
        var ancetres = Element.ancestors( pane );
        new Effect.Morph( ancetres[ 0 ], {
          style: { height: cible.getHeight() + 'px' },
          duration: 0.5
        });
    }
}

function Minuterie( pane, paneImage, onglets, listeImages, ol ) {
    ongletsInvisibles = onglets;
    imagesInvisibles = listeImages;
    contenu = pane;
    contenuImage = paneImage;
    olBase = ol;
}

function play() {
    if ( actif != null ) nxt();
    actif = true;
    objMinuterie = window.setTimeout( "play();", 3000 );
}

function pause() {
    actif = false;
    window.clearTimeout( objMinuterie );
}

function nxt() {
    pause();
    $( olBase + ( ongletActif + 1 ) ).removeClassName( 'active' );
    ongletActif++;
    if ( ongletActif >= ongletsInvisibles.length ) ongletActif = 0;
    afficher( ongletActif );
}

function bck() {
    pause();
    $( olBase + ( ongletActif + 1 ) ).removeClassName( 'active' );
    ongletActif--;
    if ( ongletActif < 0 ) ongletActif = ( ongletsInvisibles.length - 1 );
    afficher( ongletActif );
}

function gto( id ) {
    pause();
    id--;
    if( ongletActif != id ) $( olBase + ( ongletActif + 1 ) ).removeClassName( 'active' );
    if( id != ongletActif ) {
        ongletActif = id;
        afficher( id );
    }
}

function changeState() {
    if ( actif ) {
        pause();
    } else {
        play();    
    }
}

function afficher( noOnglet ) {
    cible = $( ongletsInvisibles[ noOnglet ] );
    cibleImage = $( imagesInvisibles[ noOnglet ] );
    if( contenu != null ) Element.hide( contenu );
    if( contenuImage != null ) Element.hide( contenuImage );
    $( olBase + ( ongletActif + 1 ) ).addClassName( 'active' );
    if( contenu != null ) window.setTimeout( "Element.update( contenu, cible.innerHTML );", 100 );
    if( contenuImage != null ) window.setTimeout( "Element.update( contenuImage, cibleImage.innerHTML );", 100 );
    if( contenuImage != null ) window.setTimeout( "new Effect.Appear( contenuImage, { duration: 0.3 } );", 100 );
    if( contenu != null ) {
        if ( navigator.userAgent.search(/^(.*)Safari(.*)$/) == -1 ) {
            window.setTimeout( "new Effect.Appear( contenu, { duration: 0.3 } );", 100 );
        } else {
            window.setTimeout( "Element.show( contenu );", 200 );
        }
    }
}