﻿/* ========================================================================== */
/* variables générales                                                        */
/* ========================================================================== */
var nb_ssmenus = 8;
var num_menu = 1; // 1=ephemeride, 2=themes, 3=apropos, 4=contact
var num_ssmenu = 1; // 1=fleurs, 2=feuilles, 3=troncs, 4=kyoto, 6=serres, 5=gd palais, 7=mascarons, 8=divers
var theme = 0; // 0-7
var langue = 0; // 0=fr, 1=en, 2=jp

var jour = new Date();
var titrimg = new Array();
var titre_ephem = new Array();
var numimg; // numero d'image pour ephemeride
var top, compteur, h, w, coord_g, coord_d;

// etat[0]=theme 0-8,
// etat[1]= vide:ephem ou theme  I:info, A:apropos, C:contact
// etat[2]=langue
var etat = new Array(0,"",0);

var dureeOut = 200; var dureeIn = 1000;

var code = ""; // code erreur de la page contact
var sf = new Array();

$.post("s_creation_rss.php"); // lancement éventuel de la création de rss.xml

/*=========================================================================== */
/* Initialisation du site                                                     */
/* ========================================================================== */

$(document).ready(function() {
    // initialisation de la session php puis placement de la premiere image
    init_ephemeride();
	init_dates_ephemeride();

    // analyse la chaine d'appel. Si elle provient de la liste rss, affichage direct de l'image correspondante
    var rss = analyse_requete();
    if (rss == "") {  get_image(0, $('.xxx img').attr('src'), 0, 0); } // accès direct au site
	else { get_image(0, rss[0][1], rss[1][1], 0); } // accès via une imagette de rss
    init_navimage(); /* navigation des images */

    // animation du bandeau menu general
    $('#menu_gene').hover(
        function() { $(".menu_boite").fadeIn(400); $("#menu_point").hide(); },
        function() { $(".menu_boite").fadeOut(300, function() {$("#menu_point").show(); }); }
	);
    init_menu(); // animation du menu général
    init_sous_menu();  // cas du sous-menu thèmes
    langue_site(0);

	/* mapage de l'image centrale */
    $("#gauche").click( function(){ get_image(etat[0], $('.xxx img').attr('src'), -1, -1); });
	$("#droite").click( function(){ get_image(etat[0], $('.xxx img').attr('src'), -1, 1); });

	$("#preload img").load(function () {
    	cache_image(0);
		$(".navimg").css("top", top+"px");
		$("#cpt").html(compteur);

		$('#conteneur #texte').html(titrimg[langue]);
	    if ($(".navelem").css('top')=='0px') { $('#conteneur #texte').show(); } else {$('#conteneur #texte').hide();}

		$('#conteneur .xxx #info').hide();
	    $('#conteneur #image').fadeOut(dureeOut, function(){
			$(".xxx").css({width:w+"px",height:h+"px"});
			$('#conteneur #image').attr('src',$('#preload img').attr('src')).fadeIn(dureeIn, function(){
				$("#conteneur .navimg").show();
            	$("#gauche").attr('coords',coord_g);
				$("#droite").attr('coords',coord_d);
            });
		});
	})
	.error(function () { alert("erreur preload") });  // alert('pb de chargement');

}); // fermeture de ready

/*=========================================================================== */
/* Fonctions d'initialisation des tableaux d'images et des dates
/*=========================================================================== */

function init_ephemeride() {
	// quantieme = jour de l'annee du début de l'ephemeride
	var dateCourante = new Date();
	dateCourante.setTime(dateCourante.getTime() - 29 * (24 * 3600 * 1000));
	var dateDebutAnnee = new Date();
	dateDebutAnnee.setDate(1); dateDebutAnnee.setMonth(0); dateDebutAnnee.setFullYear(dateCourante.getFullYear());
	var quantieme = (dateCourante.getTime() - dateDebutAnnee.getTime()) / (24 * 3600 * 1000);

	var tab = new Array();
	for (var i=0; i <30; i++) {
		var j = (i + quantieme +366) % 366;
	    tab[29-i] = table[0][j];
	}
	table[0] = tab;
}

function init_dates_ephemeride() {
	for (var i=0; i < 30; i++) { titre_ephem[i] = [retro(i,0), retro(i,1), retro(i,2)]; }
}

function retro(n,langue) {
	// libellé d'une date antérieure à aujoud'hui dans la bonne langue
	var d = new Date();
	d.setTime(d.getTime() - n *(24 * 3600 * 1000));
	switch (langue) {
    	case 0 : return dd = d.getDate()+" "+mois_fr[d.getMonth()+1]+" "+d.getFullYear();
        case 1 : return dd = mois_en[d.getMonth()+1]+" "+d.getDate()+", "+d.getFullYear();
		case 2 : return dd = mois_jp[d.getMonth()+1]+" "+d.getDate()+", "+d.getFullYear();
	}
}

/*=========================================================================== */

function analyse_requete() {
	var aaa = ""; var tab = new Array();
	var requete = window.location.search.substring(1);
	if (requete == "") { return aaa; }

	var elements = requete.split("&");

	for(i = 0; i < elements.length; i++) {
        tab[i] = new Array();
  		var temp = elements[i].split("=");
  		tab[i][0] = temp[0]; tab[i][1] = unescape(temp[1]);
	}
    return tab;
}

function init_navimage() {   // navigation pour les images et accès catalogue
	$('.navimg').hover(
        function() { $('#conteneur #texte').show(); $(".navelem", this).stop().animate({top:'0px'}, {queue:false,duration:400}); },
        function() { $(".navelem", this).stop().animate({top:'50px'},{queue:false,duration:200}); $('#conteneur #texte').hide(); }
    ).show();
	$('#nav_left').click(function(){ get_image(etat[0], $('.xxx img').attr('src'), -1, -1); });
	$('#nav_down').click(function(){ cache_image(1); genere_catalogue() });
	$('#nav_right').click(function(){ get_image(etat[0], $('.xxx img').attr('src'), -1, 1); });
}

function get_image(theme, nompho, numpho, sens) {

	var cpt = table[theme].length;

	if (nompho == "decor/vide.gif") { nompho = ""; numpho = 0; }
	if (nompho != "") {
        var aaa = nom_fic(nompho);
		numpho = array_search(aaa, table[theme]);
        nompho = aaa;
	}
	else { nompho = table[theme][numpho][0]; }

	var num = (numpho + sens + cpt) % cpt; var num1 = num + 1;
	if (sens != 0) { numpho = num; nompho = table[theme][numpho][0]; }

	h = table[theme][numpho][2];
	w = table[theme][numpho][1];

	titrimg = ["", "", ""];
	if (theme == 0) { titrimg = titre_ephem[numpho]; }
	if (theme == 4) { titrimg = lib4[numpho]; }

	var nomimg = "images/" + tabthemes[theme] + "/" + nompho + ".jpg";
	compteur = "" + num1 + "/" + cpt;

    top = h-50;
	coord_g = "0,0,"+(w/2)+","+h;
	coord_d = ""+(w/2)+",0,"+w+","+h;

	$('#preload img').attr('src',nomimg); // pré chargement de la nouvelle image avant manip
}

function re_affiche(nomimg, w, h) {
    $('#conteneur #image').attr('src', 'decor/vide.gif').hide();
	$(".xxx").css({width:w+"px",height:h+"px"});
	$('#conteneur #image').attr('src',nomimg).fadeIn(1000);
	$("#conteneur .navimg").show();
}

function array_search(what, tableau){
	var index = -1;
	for(var elt in tableau){
		index++;
		if (tableau[elt][0] == what ) { return index; }
	}
	index=-1;
	return index;
}

function nom_fic(nom) { //extrait le nom du fic d'une url
    var aaa = nom.split(".");
	var bbb = aaa[0].split("/");
	return bbb[bbb.length-1];
}

/*=========================================================================== */
/* Traitement des menus et sous-menus                                         */
/* ========================================================================== */

function init_menu() {

    for (var i=1; i < 5; i++) {
        var aaa = '.tbmenu #mn'+i+' a';
        if (num_menu == i) { $(aaa).css({'fontSize':"18px", 'color':"#FF0", 'textDecoration':"none"}); }
        else {
            $(aaa)
            .hover( function() { $(this).css({'fontSize':"18px", 'color':"#000", 'backgroundColor':"#FF6"});},
                    function() { $(this).css({'fontSize':"12px", 'color':"#999", 'backgroundColor':"transparent"}); }
            )
            .bind('click', function(event) { gestion_menu($(this).attr("id"),$(this).attr("href")); });
        }
    } // fin de boucle

    // cas des icones de langue
	var aaa = '.tbmenu #mn5';
    $(aaa).hover(
        function() {
            $(this).css('borderWidth',"1px").find('.flagoff').css('display','block');
            $(this).find('a img').each(function() {
				$(this).hover(
			    	function() { $(this).css('borderColor',"#FF0"); },
			        function() { $(this).css('borderColor',"#333"); }
			    );
            })
        },
        function() { $(this).css('borderWidth','0px').find(".flagoff").css('display','none'); }
    );

    $('.tbmenu #mn5 a img').each( function(){
    	$(this).click(function(){ valide_langue($(this).attr("src"), $(this).attr("id")); });
    });
	return;
}

function change_menu(ex_menu) {
	if (ex_menu > 4) return; // cas des langues
    var bbb = '.tbmenu #mn'+ex_menu+' a';
   	$(bbb)
	.css({'fontSize':"12px", 'color':"#999", 'backgroundColor':"transparent"})
	.hover( function() { $(this).css({'fontSize':"18px", 'color':"#000", 'backgroundColor':"#FF6"});},
       		function() { $(this).css({'fontSize':"12px", 'color':"#999", 'backgroundColor':"transparent"}); }
	)
	.bind('click', function(event) { gestion_menu($(this).attr("id"),$(this).attr("href")); });

    bbb = '.tbmenu #mn'+num_menu+' a';
   	$(bbb).css({'fontSize':"18px", 'color':"#FF0", 'backgroundColor':"transparent"})
	.unbind().blur();
	return false;
}

function init_sous_menu(){
	var aaa;
    for (var i = 1; i <= nb_ssmenus; i++) {
    	aaa = '.tbssmenu td#ssmn' + i;
		$(aaa).find(".ssm").click(function(){ change_ssmenu($(this).attr('id')); });
        if (num_ssmenu == i) {
        	$(aaa).find(".ssm").css({'fontSize':"18px", 'color':"#FF0", 'backgroundColor':"transparent"});
		}
        else {
             $(aaa).hover(
                function() { $(this).find(".ssm").css({'fontSize':"18px", 'color':"#000", 'backgroundColor':"#FF6"}).end();
							 if ((i > 3 ) && (i < 8)) {$(this).find('img').attr('src','decor/ptrouge.png');}
							},
                function() { $(this).find(".ssm").css({'fontSize':"12px", 'color':"#999", 'backgroundColor':"transparent"})
                             .end().find('img').attr('src','decor/infox.png');
							}
            ); // fin de hover
        } // fin du else
     } // fin de boucle
	 return;
}

function change_ssmenu(idssit) {
    var mnu = num_ssmenu;  // necessaire pour instancier num_ssmenu !!!
	var ttt = '.tbssmenu td#ssmn' + mnu;
	$(ttt).find(".ssm").css({'fontSize':"12px", 'color':"#999", 'backgroundColor':"transparent"});
	$(ttt).find('img').attr('src','decor/infox.png');
	$(ttt).find(".ssi").unbind();
    $(ttt).bind('mouseover',function(event){ $(this).find(".ssm").css({'fontSize':"18px", 'color':"#000", 'backgroundColor':"#FF6"});});
    $(ttt).bind('mouseout', function(event){ $(this).find(".ssm").css({'fontSize':"12px", 'color':"#999", 'backgroundColor':"transparent"});});

    mnu = num_ssmenu = idssit.substr(4,2);
    ttt = '.tbssmenu td#ssmn' + mnu;
	$(ttt).unbind("mouseover").unbind("mouseout");
   	$(ttt).find(".ssm").css({'fontSize':"18px", 'color':"#FF0", 'backgroundColor':"transparent"});
	etat[0] = mnu;
	if (mnu > 3 && mnu < 8) {
		$(ttt).find('img').attr('src','decor/ptrouge.png');
		$(ttt).find(".ssi").bind('click', function(event) { affiche_info(mnu); });
	}
	get_image(mnu, "", 0, 0);
	return false;
}

function affiche_info(num) {
    var data = text_info[num][etat[2]];
    etat[1] = "I";
	$("#conteneur #info").html(data).css("cursor","pointer");
	cache_image(1);
	$("#conteneur #info").show('slow').bind('click', function(event) { desaffiche_info(); }); ;
}

function desaffiche_info() {
     $("#conteneur #info").unbind().css("cursor","auto").hide();
	 etat[1] = "";
	 $("#conteneur #image").show();
	 $("#conteneur .navimg").show();
}

/*=========================================================================== */
/* Changement de langue                                                       */
/* ========================================================================== */

function valide_langue(arg1,arg2) {
	var change_langue = 0;
    var pos = arg2.substr(1,1); if (pos == 1) return;
	var ccc = "img[id=l"+pos+"]";

	var bbb = '.tbmenu #mn5 a';
    var flg1 = $(bbb).find("img[id=l1]").attr("src");
    $(bbb).find("img[id=l1]").attr("src",$(bbb).find(ccc).attr("src"));
    $(bbb).find(ccc).attr("src",flg1);
    $('.tbmenu #mn5').find(".flagoff").css('display','none');

    var aaa = arg1.substr(6,2);
	var lg = 0; if (aaa == "en") { lg = 1; } else if (aaa == "ja") { lg = 2; }
    if ( langue != lg ) {
    	langue = lg;
		etat[2] = langue;
		change_langue = 1;
        langue_site(1);
	}
	return;
}

function langue_site(n) {
	// réaffichage du site en l'état, après changement de langue
	var bbb;
    for (var i = 1; i < 5; i++) { bbb = '.tbmenu #mn'+i+' a'; $(bbb).html(l_menu[i][langue]); }
    for (var i = 1; i <= nb_ssmenus; i++) { bbb = '.tbssmenu td#ssmn' + i + ' .ssm'; $(bbb).html(l_ssmenu[i][langue]); }
    bbb = '.navelem #nav_left img'; $(bbb).attr("title",l_img_prec[langue]);
    bbb = '.navelem #nav_right img'; $(bbb).attr("title",l_img_suiv[langue]);
    bbb = '.navelem #nav_down img'; $(bbb).attr("title",l_catalogue[langue]);

    bbb = 'map #gauche'; $(bbb).attr("title",l_img_prec[langue]);
    bbb = 'map #droite'; $(bbb).attr("title",l_img_suiv[langue]);

	if (n > 0) { // pas la première fois !
		if (etat[1] == "I") { affiche_info(etat[0]); }
	    if (etat[1] == "A") { remplis_apropos(); }
	    if (etat[1] == "C") { langue_contact(); }
		if (etat[1] == "")  { $('#conteneur #texte').html(titrimg[langue]); }
	}
}

/*=========================================================================== */
/* Aiguillage général du menu principal                                       */
/* ========================================================================== */

function gestion_menu(parm1, parm2) {
	var ex_menu = num_menu;
	$("#conteneur .yyy").html("").hide();
	$("#menu_themes").hide();
	$("#conteneur #info").html("").hide(); if (etat[1] == "I") { etat[1] = ""; }
    switch (parm1) {
        case "it1" :  // ephemeride
			num_menu = 1; theme = 0; etat[0]=theme; etat[1]="";
			get_image(0, "", 0, 0);
            break;
        case "it2" :  // themes
			num_menu = 2; theme = num_ssmenu; etat[0]=theme; etat[1]="";
            $("#menu_themes").show();
			get_image(theme, "", 0, 0);
            break;
        case "it3" :  // apropos
			num_menu = 3; etat[1]="A";
			apropos();
            break;
        case "it4" :  // contact
			num_menu = 4; etat[1]="C";
			contact(0);
            break;
    }
	change_menu(ex_menu);
    return false;
}

/*=========================================================================== */
/* Re affichage complet d'une image centrale                                  */
/* De l'imagette de catalogue à l'image centrale                              */
/* -------------------------------------------------------------------------- */
function cache_image(a) {
	$("#conteneur .yyy").hide();
	$("#conteneur #texte").hide();
	$("#conteneur .navimg").hide();
	if (a==1) { $("#conteneur #image").hide(); }
}

function genere_catalogue() {
	var theme = etat[0];
	var nbelem = table[theme].length;
    var aaa = "";
	var repert = "images/" + tabthemes[theme] + "/imagettes/";

	for (var i = 0; i < nbelem; i++) {
		var bbb = repert + table[theme][i][0] + ".jpg";
		aaa += "<a href='javascript:allera("+theme+", "+i+")'><img src='"+bbb+"' class='imagette' alt='' /></a>";
	}
	aaa += "<img src='decor/vide.gif' class='basdecat' />";

	$("#conteneur #info").hide();
    $("#conteneur .yyy").html(aaa).show();
	$("#conteneur .yyy .imagette").hover(
        function() { $(this).css('borderColor',"#FF0"); },
		function() { $(this).css('borderColor',"#999"); }
	);
}

function allera(th, num) {
    $("#conteneur .yyy").html("").hide();
	get_image(th, "", num, 0);
	init_navimage();
}

/*=========================================================================== */
/* A propos - accordéon                                                       */
/* -------------------------------------------------------------------------- */
function apropos() {
	cache_image(1);
    $("#conteneur .xxx").css({width:"600px",height:"450px"});
	$("#conteneur .xxx #info").css({width:"600px",height:"450px"}).show();
    remplis_apropos();
}

function remplis_apropos() {
	var aaa = "<div class='accordion'>"+l_apropos[etat[2]]+"</div>";
	$("#conteneur .xxx #info").html(aaa);
	active_apropos();
}

function active_apropos() {
	// mecanisme de l'accordeon, a activer après mise en place effective du texte
	$(".accordion h3:first").addClass("active");
	$(".accordion p:not(:first)").hide();
	$(".accordion h3").bind("click", function(event){
		$(this).next("p").slideToggle("slow").siblings("p:visible").slideUp("slow");
		$(this).toggleClass("active");
		$(this).siblings("h3").removeClass("active");
	});
}

/*=========================================================================== */
/* Contact                                                                    */
/* -------------------------------------------------------------------------- */
function contact() {
    cache_image(1);
    $("#conteneur .xxx").css({width:"600px",height:"450px"});
	$("#conteneur #info").css({width:"600px",height:"450px"}).show();
	$("#conteneur #info").html(corps_forme(etat[2])).show();
	var options = { success: traite_contact };
	$('#myForm').ajaxForm(options);

    //$("#conteneur #info #envoi").click(function() { traite_contact(); });
}

function traite_contact(responseText, statusText) {
	var reponse = eval('('+responseText+')');
    code = reponse.code_err;
	if (code == "0") { $("#conteneur #info #sub").hide();}
    analyse_erreur(code);
}

function analyse_erreur(aaa) {
	var long = aaa.length; var res = "";
	if (long != 0) {
		var car;
		for (var i = 0; i < long; i++) {
	        car = aaa.charAt(i);
			res += lib_err[car][langue]+" | ";
		}
	    res = res.substring(0, res.length-3);
	}
	$("#conteneur #info #erreur").html(res);
}

function langue_contact() {
	sauve_forme();
	$("#conteneur #info").html(corps_forme(etat[2]));
	if (code == "0") { $("#conteneur #info #sub").hide();}
	else { $("#conteneur #info #envoi").click(function() { traite_contact(); }); }
    analyse_erreur(code);
	recup_forme();
}

function sauve_forme() {
	sf[0] = $("#nom").attr("value");
	sf[1] = $("#prenom").attr("value");
	sf[2] = $("#mail").attr("value");
	sf[3] = $("#site").attr("value");
	sf[4] = $("#message").attr("value");
}
function recup_forme() {
    $("#nom").attr("value",sf[0]);
	$("#prenom").attr("value",sf[1]);
	$("#mail").attr("value",sf[2]);
	$("#site").attr("value",sf[3]);
	$("#message").attr("value",sf[4]);
}