var w3c = document.getElementById && !document.all;
var ie = document.all;

if (ie || w3c) {
 
    // declaration des variables pour IE
    var overlay;
    var my_window;
}



function affiche_overlay_window(adresse_page, hauteur, largeur, typezoom) {
  
    // creation de l'overlay
    showoverlay(typezoom, "<table class='image_calque' valign='center' border='0' align ='center'>");
    // creation de la fenetre	
    //ne pas casser le zoom
    if (typezoom == 1) {
        showwindow(adresse_page, hauteur, largeur, typezoom);
    }
    else {
        var LOADING_HEIGHT = 25;
        var LOADING_WIDTH = 500;
        //si ce n'est pas un zoom; on ouvre toujours une petite zone en milieu de page
        showwindow(adresse_page, LOADING_HEIGHT, LOADING_WIDTH, typezoom);
    }
}

function affiche_popin_zoom(adresse_page, hauteur, largeur) {
    var zoom_type = 1;
    // creation de l'overlay
    showoverlay(zoom_type, "<table class='image_calque' valign='center' border='0' align ='center'>");
    // creation de la fenetre
    showwindow(adresse_page, hauteur, largeur, zoom_type);
}


function showoverlay(typezoom, text) {
    //taille du document complet (pas seulement la zone visible)
    var hauteur_visible = $(document).height();
    if (w3c || ie) {
        overlay = $('#overlay');
        overlay.html(text); // fixe le code HTML dans l'overlay balise (div)
        // Donne linfo sur le type de zoom afin de contextualiser la css. 0 ou '' par defaut // 1 pour zoom produit
        if (typezoom == 1) {
            overlay.attr('class', "calque_zoomproduit");
        } else {
            overlay.attr('class', "calque_popin");
        }
        overlay.css('visibility', 'visible');
        overlay.css('height', hauteur_visible + "px");
    }
}

function showwindow(html, hauteur, largeur, typezoom) {
    //hauteur visible
    var hauteur_visible = $(window).height();
    var largeur_visible = $(window).width();
    if (w3c || ie) {
        //affichage de la fenetre
        my_window = $('#window');
        if (typezoom == 1) {
            hauteur_visible = $(document).height();
            my_window.attr('class', "window_zoomproduit");
        } else {
            my_window.attr('class', "window");
        }
        my_window.css('visibility', 'visible');
        // Si on est dans le cas dun zoom on prend toute la hauteur disponible
        if (typezoom == 1) {
            my_window.css('height', hauteur_visible + "px");
            //my_window.style.height =hauteur_visible+"px";
        } else {
            my_window.css('height', hauteur + "px");
            //my_window.style.height =hauteur+"px";
        }
        my_window.css('width', largeur + "px");

        var centrage_popin_horiz = (largeur_visible - largeur) / 2;
        my_window.css('left', centrage_popin_horiz + "px");

        if (typezoom == 1) {
            my_window.css('top', "0px");
        } else {

            var centrage_popin_vert = (hauteur_visible - hauteur) / 2;
            my_window.css('top', centrage_popin_vert + "px");
            //pour que la popin reste a la meme position meme si on scrolle, decommenter la ligne suivante
            //my_window.style.position='fixed'; 
        }

        // affichage du corps de la fenetre (balise iframe)
        my_window = $('#contempwindow');
        my_window.css('visibility', 'visible');
        // Si on est dans le cas dun zoom on prend toute la hauteur disponible
        if (typezoom == 1) {
            my_window.css('height', "100%");
        } else {
            my_window.css('height', hauteur + "px");
        }
        my_window.css('width', largeur + "px");
        my_window.attr('src', html);
    }
}

function hidepopin() {
    
    if (w3c || ie) {
        
        // masque la fenetre (balise div [window] )
        my_window = parent.document.getElementById('window');
        my_window.style.visibility = "hidden";
        parent.document.getElementById('contempwindow').src = "popin-vide.aspx";
        parent.document.getElementById('contempwindow').href = "popin-vide.aspx";

        // masque le contenu (balise iframe [contempwindow])
        my_window = parent.document.getElementById('contempwindow');
        my_window.style.visibility = "hidden";
        my_window.src = "popin-vide.aspx";

        // masque l'overlay (balise div [overlay])
        my_window = document.all ? parent.document.all['overlay'] : parent.document.getElementById ? parent.document.getElementById('overlay') : ""
        my_window.style.visibility = "hidden";

    }
}

//Redimensionne et (eventuellement) recentre la popin sur l'affichage du navigateur
//speed : vitesse d'animation - peut etre : 'slow', 'fast' ou un nombre en millisecondes
//center_h : recentrer horizontalement?
//center_h : recentrer verticalement?
function popin_autoresize_and_center(speed, center_h, center_v) {
    //recuperation de la taille de la div ayant une classe commençant par popin_
    var elem = $("div[class^='popin_']").first();
    if (elem) {
        if (elem.hasClass('popin_vide') || elem.hasClass('popin_zoomproduit')) {
            //sur ces pages la, pas de postback ni rien, on ouvre directement avec la bonne taille
            //on ne fait rien pour la popin vide chargee avec toutes les pages ou la popin zoom qui utilise
            //un overlay special
        }
        else {
            var div_h = elem.outerHeight(); //outer pour prendre egalement les borders
            var div_w = elem.outerWidth();  //outer pour prendre egalement les borders

            popin_resize_and_center(speed, div_h, div_w, center_h, center_v)
        }
    }
    return true;
}

function popin_resize_and_center(speed, new_h, new_w, center_h, center_v) {
    //recuperation de la taille de la div ayant une classe commençant par popin_
    var elem = $("div[class^='popin_']").first();
    if (elem) {
        if (elem.hasClass('popin_vide') || elem.hasClass('popin_zoomproduit')) {
            //sur ces pages la, pas de postback ni rien, on ouvre directement avec la bonne taille
            //on ne fait rien pour la popin vide chargee avec toutes les pages ou la popin zoom qui utilise
            //un overlay special
        }
        else {
            //seulement si je suis bien dans une popin (pas popin vue seule)
            if ($('div#window', top.document).length > 0) {

                //taille de la zone affichee a l'ecran
                var viewport_w = $(top).width();
                var viewport_h = $(top).height();
                //espace entre le haut du document et la portion affichee            
                var vert_offset = $(top).scrollTop();

                //alignement horizontal
                //par defaut, on met la meme position
                var new_left = $('div#window', top.document).offset().left;
                if (center_h) {
                    new_left = (viewport_w - new_w) / 2;
                }

                //alignement vertical
                //par defaut, on met la meme position
                var new_top = $('div#window', top.document).offset().top;
                if (center_v) {
                    new_top = (viewport_h - new_h) / 2 + vert_offset;
                    //on doit toujours voir le haut
                    if (new_top < 0) {
                        new_top = 0;
                    }
                }

                //animation ! - on redimensionne et on recentre en meme temps !
                $('iframe#contempwindow', top.document).animate({ left: new_left, top: new_top, height: new_h, width: new_w }, speed);
                $('div#window', top.document).animate({ left: new_left, top: new_top, height: new_h, width: new_w }, speed);
            }
        }
    }
    return true;
}



//cause la validation des champs. Si les champs ne sont pas valide, on affiche
//les messages d'erreur, et on a donc besoin de redimensionner la popin
//Utilisation typique : dans un LinkButton ou un autre controle qui cause la validation du formulaire:
// OnClientClick="validate_and_resize();"
function validate_and_resize() {
    if (Page_ClientValidate()) {
        //la page est valide, pas de probleme, c'est un post-back
    }
    else {
        //page invalide on declenche un resize de la popin
        popin_autoresize_and_center('fast', false, false);
    }
}
	
