var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring;

if (checkIt('konqueror'))
{
	browser = "Konqueror";
	OS = "Linux";
}
else if (checkIt('safari')) browser = "Safari"
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV";
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('msie')) browser = "Internet Explorer"
else if (!checkIt('compatible'))
{
	browser = "Netscape Navigator"
	version = detect.charAt(8);
}
else browser = "An unknown browser";

if (!version) version = detect.charAt(place + thestring.length);

if (!OS)
{
	if (checkIt('linux')) OS = "Linux";
	else if (checkIt('x11')) OS = "Unix";
	else if (checkIt('mac')) OS = "Mac"
	else if (checkIt('win')) OS = "Windows"
	else OS = "an unknown operating system";
}

function checkIt(string)
{
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

	
var vis = new Array();
var memo_obj = new Array();

function findObj_test_forcer(n, forcer) { 
        var p,i,x;

        // Voir si on n'a pas deja memoriser cet element		
        if (memo_obj[n] && !forcer) {
                return memo_obj[n];
        }
        
        d = document; 
        if((p = n.indexOf("?"))>0 && parent.frames.length) {
                d = parent.frames[n.substring(p+1)].document; 
                n = n.substring(0,p);
        }
        if(!(x = d[n]) && d.all) {
                x = d.all[n]; 
        }
        for (i = 0; !x && i<d.forms.length; i++) {
                x = d.forms[i][n];
        }
        for(i=0; !x && d.layers && i<d.layers.length; i++) x = findObj(n,d.layers[i].document);
        if(!x && document.getElementById) x = document.getElementById(n); 
        
        // Memoriser l'element
        memo_obj[n] = x;
        
        return x;
}

function findObj(n) { 
        return findObj_test_forcer(n, false);
}
// findObj sans memorisation de l'objet - avec Ajax, les elements se deplacent dans DOM
function findObj_forcer(n) { 
        return findObj_test_forcer(n, true);
}


// Cacher/Montrer
function hide_obj(obj) {
        element = findObj(obj);
        if(element) {
                if (element.style.visibility != "hidden") element.style.visibility = "hidden";
        }
}
function show_obj(obj) {
        element = findObj(obj);
        if(element) {
                if (element.style.visibility != "visible") element.style.visibility = "visible";
        }
}


var time = new Array();
var valeur = new Array();

function slide_style_etape (obj, st, val, fin, diff) {

                layer = findObj(obj);
                if (!layer) return;
                
                
                val = parseInt(val);
                diff = parseInt(diff);
                fin = parseInt(fin);
                
        val = val + diff;
        if (OS == "Mac") val = val + diff;


        if (diff > 0) {
                        if (val > fin) val = fin;
                } else {
                        if (val < fin) val = fin;
                }
                valeur[obj+"-"+st] = val;
                                        
                if (st != "opacity") val = val + "px";
                
                
                if (st == "opacity") {
                        layer.style.opacity = (val / 101);
                    layer.style.MozOpacity = (val / 100);
                    layer.style.KhtmlOpacity = (val / 100);
                    layer.style.filter = "alpha(opacity=" + val + ")";


                        if (val != 0) { layer.style.visibility = "visible"; }
                        else { layer.style.visibility = "hidden"; }
                
                } else {
                        layer.style[st] = val;
                }
                
                if (val != fin) time[obj+"-"+st] = setTimeout("slide_style_etape('"+obj+"','"+st+"','"+val+"','"+fin+"','"+diff+"')", 100);
                        
}


function slide_style (obj, st, fin, diff, delai) {

        layer = findObj_forcer(obj);
        if (!layer) return;
        
        if (valeur[obj+"-"+st]) {
                val = valeur[obj+"-"+st];
        }
        else { 
                val = eval("layer.style."+st);
        }
        val = parseInt(val);
        
        clearTimeout (time[obj+"-"+st]);
        
        if (delai > 0) time[obj+"-"+st] = setTimeout("slide_style_etape('"+obj+"','"+st+"','"+val+"','"+fin+"','"+diff+"')", delai);
        else slide_style_etape (obj, st, val, fin, diff) ;

}


// Style Clignotant

function slide_style_etape_clignotant (obj, st, val, deb, fin, diff_inv, diff, cpt) {

                layer = findObj(obj);
                if (!layer) return;
                
                
                val = parseInt(val);
                diff = parseInt(diff);
                fin = parseInt(fin);
                
        val = val + diff;
        if (OS == "Mac") val = val + diff;


        if (diff > 0) {
                        if (val > fin) val = fin;
                } else {
                        if (val < fin) val = fin;
                }
                valeur[obj+"-"+st] = val;
                                        
                if (st != "opacity") val = val + "px";
                
                
                if (st == "opacity") {
                        layer.style.opacity = (val / 101);
                    layer.style.MozOpacity = (val / 100);
                    layer.style.KhtmlOpacity = (val / 100);
                    layer.style.filter = "alpha(opacity=" + val + ")";


                        if (val != 0) { layer.style.visibility = "visible"; }
                        else { layer.style.visibility = "hidden"; }
                
                } else {
                        layer.style[st] = val;
                }
                
                if (val != fin) time[obj+"-"+st] = setTimeout("slide_style_etape_clignotant('"+obj+"','"+st+"','"+val+"','"+deb+"','"+fin+"','"+diff_inv+"','"+diff+"','"+cpt+"')", 100);
                else {
                        cpt = parseInt(cpt);
                        cpt=cpt-1;
                        if (cpt > 0) time[obj+"-"+st] = setTimeout("slide_style_clignotant('"+obj+"','"+st+"','"+fin+"','"+deb+"','"+diff+"','"+diff_inv+"','"+cpt+"')", 100);
                        else time[obj+"-"+st] = setTimeout("slide_style('"+obj+"','"+st+"','"+fin+"','"+diff+"','0')", 100);
                }
}

function slide_style_clignotant (obj, st, deb, fin, diff_inv, diff, cpt) {

        layer = findObj_forcer(obj);
        if (!layer) return;
        
        if (valeur[obj+"-"+st]) {
                val = valeur[obj+"-"+st];
        }
        else { 
                val = eval("layer.style."+st);
        }
        val = parseInt(val);
        
        clearTimeout (time[obj+"-"+st]);
        
        slide_style_etape_clignotant (obj, st, val, deb, fin, diff_inv, diff, cpt) ;
}


// Calcul des tailles
function calcul_tailles() {
        var largeur_fenetre = 0, largeur_page = 0;
        
        // Taille fenêtre
        if( typeof( window.innerWidth ) == 'number' ) {
                largeur_fenetre = window.innerWidth;
        }
        else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
                largeur_fenetre = document.documentElement.clientWidth;
        }
        else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                largeur_fenetre = document.body.clientWidth;
        }
        else {
                largeur_fenetre = 896;
        }
        
        // Taille page
        largeur_page = largeur_fenetre;
        if (largeur_fenetre >= 936) largeur_page = 936;
        if (largeur_fenetre <= 766) largeur_page = 766;

        findObj_forcer("page").style.width = largeur_page + "px";
}


// Orientation
var timedroite;
var timegauche;
var timehaut;
var timebas;

function decal_droite(vitesse,idContenu,boucle) {
        clearTimeout(timegauche);

        layer = findObj(idContenu);
        gauche = parseInt(layer.style.left);
        gauche = gauche - vitesse;
        
        layerparent = findObj('slide_'+idContenu);
        largeurtot = layerparent.offsetWidth;
        largeur = layer.offsetWidth;

        if ((boucle) || (largeurtot - gauche < largeur)) {
                if (boucle) {
                        if (largeurtot - gauche < largeur) {
                                largeur = largeur + (vitesse * 2);
                                layer.style.width = largeur + "px";
                                gauche = gauche - vitesse;
                                layer.style.left = gauche + "px";
                        }
                        else {
                                largeur = largeur - (vitesse * 2);
                                layer.style.width = largeur + "px";
                        }
                }
                else { layer.style.left = gauche + "px"; }
                if (boucle) { timedroite = setTimeout("decal_droite("+vitesse+",'"+idContenu+"',true)", 40); }
                else { timedroite = setTimeout("decal_droite("+vitesse+",'"+idContenu+"')", 40); }
        }
        else { layer.style.left = (largeurtot - largeur) + "px"; }
}

function decal_gauche(vitesse,idContenu,boucle) {
        clearTimeout(timedroite);
        
        layer = findObj(idContenu);
        gauche = parseInt(layer.style.left);
        gauche = gauche + vitesse;
        
        if ((boucle) || (gauche < 0)) {
                if (boucle) {
                        if (gauche < 0) {
                                largeur = layer.offsetWidth;
                                largeur = largeur + (vitesse * 2);
                                layer.style.width = largeur + "px";
                        }
                        else {
                                largeur = layer.offsetWidth;
                                largeur = largeur - (vitesse * 2);
                                layer.style.width = largeur + "px";
                                gauche = gauche + vitesse;
                                layer.style.left = gauche + "px";
                        }
                }
                else { layer.style.left = gauche + "px"; }
                if (boucle) { timegauche = setTimeout("decal_gauche("+vitesse+",'"+idContenu+"',true)", 40); }
                else { timegauche = setTimeout("decal_gauche("+vitesse+",'"+idContenu+"')", 40); }
        }
        else { layer.style.left = 0 + "px"; }
}

function decal_bas(vitesse,idContenu) {
        clearTimeout(timehaut);

        layer = findObj(idContenu);
        haut = parseInt(layer.style.top);
        haut = haut - vitesse;
        
        layerparent = findObj('slide_'+idContenu);
        hauteurtot = layerparent.offsetHeight;
        hauteur = layer.offsetHeight;

        if (hauteurtot - haut < hauteur) {
                layer.style.top = haut + "px";
                timebas = setTimeout("decal_bas("+vitesse+",'"+idContenu+"')", 40);
        }
        else { layer.style.top = (hauteurtot - hauteur) + "px"; }
}

function decal_haut(vitesse,idContenu) {
        clearTimeout(timebas);

        layer = findObj(idContenu);
        haut = parseInt(layer.style.top);
        haut = haut + vitesse;
        
        if (haut < 0) {
                layer.style.top = haut + "px";
                timehaut = setTimeout("decal_haut("+vitesse+",'"+idContenu+"')", 40);
        }
        else { layer.style.top = 0 + "px"; }
}


// Gestion Etiquettes
var idRubrique_encours = '';

function montre_rubrique(idRubrique) {
        if (idRubrique != idRubrique_encours) {
                slide_style('objet_'+idRubrique,'opacity','100','10','0');
                slide_style('legende_'+idRubrique,'opacity','100','10','0');
        }
}

function cache_rubrique(idRubrique) {
        if (idRubrique != idRubrique_encours) {
                slide_style('objet_'+idRubrique,'opacity','0','-10','400');
                slide_style('legende_'+idRubrique,'opacity','0','-10','400');
        }
}


// active/désactive étiquette données générales
var hauteur_etiquette = 23;

function active_rubrique(idRubrique) {
        if (idRubrique != idRubrique_encours) {
                if (idRubrique_encours != '') desactive_rubrique(idRubrique_encours);
                slide_style('etiquette_'+idRubrique, 'bottom', '50', '10', 0);
                
                // agrandissement hauteur pour faire apparaître texte
                layer_texte = findObj('texte_'+idRubrique);
                hauteur_etiquette = hauteur_etiquette + layer_texte.offsetHeight;
                vitesse = Math.ceil(hauteur_etiquette / 8);
                slide_style('etiquette_'+idRubrique, 'height', hauteur_etiquette, vitesse, 0);
                
                idRubrique_encours = idRubrique;
        }
}

function desactive_rubrique(idRubrique) {
        idRubrique_encours = '';
        slide_style('etiquette_'+idRubrique, 'bottom', '5', '-10', 0);
        
                
        // réduction hauteur pour faire disparaître texte
        layer_texte = findObj('texte_'+idRubrique);
        vitesse = -(Math.ceil(hauteur_etiquette / 8));
        hauteur_etiquette = hauteur_etiquette - layer_texte.offsetHeight;
        slide_style('etiquette_'+idRubrique, 'height', hauteur_etiquette, vitesse, 0);
        
        cache_rubrique(idRubrique);
}


// Diapo Groupe
var idPhoto_groupe_encours = '';

function montre_photo_groupe(idPhoto_groupe) {
        if (idPhoto_groupe != idPhoto_groupe_encours) {
                if (idPhoto_groupe_encours != '') {
                        slide_style('photo_groupe_'+idPhoto_groupe_encours,'opacity','0','-10','0');
                        layer_lien_photo_groupe = findObj('lien_photo_groupe_'+idPhoto_groupe_encours);
                        layer_lien_photo_groupe.style.backgroundColor = "";
                }
                else {
                        slide_style('liens_photos_groupe', 'width', '205', '-20', '0');
                        slide_style('liens_photos_groupe', 'left', '185', '20', '0');
                }
                
                slide_style('photo_groupe_'+idPhoto_groupe,'opacity','100','10','0');
                layer_lien_photo_groupe = findObj('lien_photo_groupe_'+idPhoto_groupe);
                layer_lien_photo_groupe.style.backgroundColor = "#000";
                
                idPhoto_groupe_encours = idPhoto_groupe;
        }
}


// Plan d'accès
var montre_plan = '0';
var show_plan = '0';

function montre_cache_plan() {
        if (show_plan == '0') {
                if (montre_plan == '0') {
                        slide_style('plan_acces','width','30','10','0');
                        montre_plan = '1';
                }
                else {
                        slide_style('plan_acces','width','0','-10','0');
                        montre_plan = '0';
                }
        }
}
function show_hide_plan() {
        if (show_plan == '0') {
                slide_style('plan_acces','width','700','140','0');
                montre_plan = '1';
                show_plan = '1';
        }
        else {
                slide_style('plan_acces','width','0','-140','0');
                montre_plan = '0';
                show_plan = '0';
        }
}


// Visite guidée - Panorama
var idPano_encours = '';

function show_hide_panorama(id) {
        element = findObj('slide_pano_'+id);
        if(element) {
                if (element.style.display != "block") {
                        element.style.display = "block";
                        element_encours = findObj(idPano_encours);
                        if ((element_encours) && (element_encours.style.display != "none") && (element_encours != element)) { element_encours.style.display = "none"; }
                        idPano_encours = 'slide_pano_'+id;
                }
                else element.style.display = "none";
        }
}


// onLoad & onResize
window.onload = function() {
        calcul_tailles();
}
window.onresize = function() {
        calcul_tailles();
}

