﻿    
    // Raccourci pour obtenir un objet HTML
    // avec son identifiant ID
    function GetId(id)
    {
        return document.getElementById(id);
    }
  
    // Methode de telechargement groupe
    // de rapport
    function LoadPDF() 
    {
        // Variables
        var listeId = "";
        var nb=0;
        
        for (i=0; i<document.aspnetForm.PDF.length; i++)
        {
          if (document.aspnetForm.PDF[i].checked==true)
          {
            nb = nb+1;     
            listeId = listeId + document.aspnetForm.PDF[i].value + ";";	
          }
        }
        //alert(nb);
        if (nb > 10)
        {
            alert("Vous ne pouvez pas sélectionner plus de 10 échantillons pour télécharger les rapports PDF");
            exit;
        }
        if (nb == 0)
        {
            alert("Vous devez sélectionner au moins un échantillon !");
            exit;
        }
        if (nb <=10)
        {
          //alert("viewFile.ashx?id=" + listeId);
          window.open("viewFile.ashx?id=" + listeId + "&type=rapport");
          //location.href=("viewFile.ashx?id="+listeId);
        }
    }

    // Date du jour
	var aujourd_hui = new Date();
	
	// Insere la date du jour dans une zone de texte
	function date_aucune(zoneDateDebut,zoneDateFin)
	{
        // Zones de texte
        var dateDebut = GetId('ctl00_CPH_principal_' + zoneDateDebut + '_textBox');
        var dateFin = GetId('ctl00_CPH_principal_' + zoneDateFin + '_textBox');
        var dateDebutHidden = GetId('ctl00_CPH_principal_' + zoneDateDebut + '_hidden');
        var dateFinHidden = GetId('ctl00_CPH_principal_' + zoneDateFin + '_hidden');

        // Calcul de la date
        date_j=null;

        // On affecte les dates
        dateDebut.value=date_j;
        dateDebutHidden.value=date_j;
        dateFin.value=date_j;
        dateFinHidden.value=date_j;
	}
	
	// Insere la date du jour dans une zone de texte
	function date_jour(zoneDateDebut,zoneDateFin)
	{
        // Zones de texte
        var dateDebut = GetId('ctl00_CPH_principal_' + zoneDateDebut + '_textBox');
        var dateFin = GetId('ctl00_CPH_principal_' + zoneDateFin + '_textBox');
        var dateDebutHidden = GetId('ctl00_CPH_principal_' + zoneDateDebut + '_hidden');
        var dateFinHidden = GetId('ctl00_CPH_principal_' + zoneDateFin + '_hidden');

        // Calcul de la date
        date_j=(aujourd_hui.getDate()<10) ? '0' + aujourd_hui.getDate() : aujourd_hui.getDate(); date_j=date_j+"/";
        date_j=((aujourd_hui.getMonth()+1)<10) ? date_j + '0' + (aujourd_hui.getMonth()+1) : date_j + (aujourd_hui.getMonth()+1); date_j=date_j + "/";
        date_j=date_j+aujourd_hui.getFullYear();

        // On affecte les dates
        dateDebut.value=date_j;
        dateDebutHidden.value=date_j;
        dateFin.value=date_j;
        dateFinHidden.value=date_j;
	}

    // Insere les dates de debut et fin de semaine (jusqu'au jour actuel)
    // de la semaine en cours
	function date_semaine(zoneDateDebut,zoneDateFin)
	{
        // Zones de texte        
        var dateDebut = GetId('ctl00_CPH_principal_' + zoneDateDebut + '_textBox');
        var dateFin = GetId('ctl00_CPH_principal_' + zoneDateFin + '_textBox');        
        var dateDebutHidden = GetId('ctl00_CPH_principal_' + zoneDateDebut + '_hidden');
        var dateFinHidden = GetId('ctl00_CPH_principal_' + zoneDateFin + '_hidden');

        // Calcul des dates
        // --> jusqu'au jour en cours	
        date_j=(aujourd_hui.getDate()<10) ? '0' + aujourd_hui.getDate() : aujourd_hui.getDate(); date_j=date_j+"/";
        date_j=((aujourd_hui.getMonth()+1)<10) ? date_j + '0' + (aujourd_hui.getMonth()+1) : date_j + (aujourd_hui.getMonth()+1); date_j=date_j + "/";
        date_j=date_j+aujourd_hui.getFullYear();
	  
        // 1 er jour de la semaine pour date début	
        j=aujourd_hui.getDate()-aujourd_hui.getDay()+1;
        if (j<=0)
        {
	        date_d="01"+"/";
	        date_d=date_d + ((aujourd_hui.getMonth()+1)<10) ? date_j + '0' + (aujourd_hui.getMonth()+1) : date_j + (aujourd_hui.getMonth()+1); date_d=date_d + "/";
	        date_d=date_d + aujourd_hui.getFullYear();
        }
        else
        {
	        date_d=(j<10) ? '0' + j : j; date_d=date_d+"/";
	        date_d=((aujourd_hui.getMonth()+1)<10) ? date_d + '0' + (aujourd_hui.getMonth()+1) : date_d + (aujourd_hui.getMonth()+1); date_d=date_d + "/";
	        date_d=date_d + aujourd_hui.getFullYear();
        }
        
        // On affecte les dates
        dateDebut.value = date_d;
        dateDebutHidden.value = date_d;
        dateFin.value = date_j;
        dateFinHidden.value = date_j;			   
	}

    // Insere les dates de debut et fin de mois (jusqu'au jour actuel)
    // du mois en cours
	function date_mois(zoneDateDebut,zoneDateFin)
	{
        // Zones de texte        
        var dateDebut = GetId('ctl00_CPH_principal_' + zoneDateDebut + '_textBox');
        var dateFin = GetId('ctl00_CPH_principal_' + zoneDateFin + '_textBox');        
        var dateDebutHidden = GetId('ctl00_CPH_principal_' + zoneDateDebut + '_hidden');
        var dateFinHidden = GetId('ctl00_CPH_principal_' + zoneDateFin + '_hidden');

        // --> jusqu'au jour en cours
        date_j=(aujourd_hui.getDate()<10) ? '0' + aujourd_hui.getDate() : aujourd_hui.getDate(); date_j=date_j+"/";
        date_j=((aujourd_hui.getMonth()+1)<10) ? date_j + '0' + (aujourd_hui.getMonth()+1) : date_j + (aujourd_hui.getMonth()+1); date_j=date_j + "/";
        date_j=date_j+aujourd_hui.getFullYear();



        // 1 er jour du mois pour date début		
        date_d="01/";
        date_d=((aujourd_hui.getMonth()+1)<10) ? date_d + '0' + (aujourd_hui.getMonth()+1) : date_d + (aujourd_hui.getMonth()+1); date_d=date_d + "/";
        date_d=date_d+aujourd_hui.getFullYear();

        // On affecte les dates
        dateDebut.value = date_d;
        dateDebutHidden.value = date_d;
        dateFin.value = date_j;
        dateFinHidden.value = date_j;
    }
    
    // Fonction de controle de champ javascript    
    function controleChamp(idChamp, typeValeur, Action)
    {
        // On recupere le champ en cours
        var ok = false;
        var champ = GetId(idChamp);
        
        var regEstNumerique = new RegExp("^[0-9]*$");
        var regEstAlphabetique = new RegExp("^[a-zéèêëàäâùïîÿôö ]*$","i");
        var regEstCodePostal = new RegExp("^((0[1-9])|([1-8][0-9])|(9[0-8])|(2A)|(2B))[0-9]{3}$");
        var regEstCourriel = new RegExp('^((([a-z0-9]+)(([\.]?)|([\-\_]*))([a-z0-9]+))+|[a-z0-9]+)\@((([a-z0-9]+)(([\.]?)|([\-\_]*))([a-z0-9]+))+|[a-z0-9]+)\.[a-z]{2,4}$', 'i');
        
        modifierCouleur(idChamp, '#000000');
        
        // On regarde si le champ est bien type
        switch (typeValeur.toLowerCase())
        {
            case 'numerique':
            case 'entier':
            case 'int':
                if(regEstNumerique.test(champ.value) == true || champ.value == '')   ok = true;                
                break;
            case 'alphabetique':
            case 'alpha':
                if(regEstAlphabetique.test(champ.value) == true || champ.value == '')   ok = true;                
                break;   
            case 'codepostal':
                if(regEstCodePostal.test(champ.value) == true || champ.value == '')  ok = true;
                break;
            case 'courriel':
                if(regEstCourriel.test(champ.value) == true  || champ.value == '')  ok = true;
                break;
            default:
                break;
        }

        // En cas d'erreur, on fait...
        if(ok == false)
        {        
            switch(Action.toLowerCase())
            {
                case 'retourne0':
                    champ.value = '0';
                    break;
                case 'retournenull':
                    champ.value = '';
                    break;
                case 'texterouge':
                    modifierCouleur(idChamp, '#ff0000');
                    break;
                default:
                    break;
            }
        }        
    }
        
    function modifierCouleur(idChamp, couleur)
    {
        GetId(idChamp).style.color = couleur;
    }

    // Fonction permettant d'afficher ou masquer un bloc DIV
    // Le texte du lien est modifiable
    function afficherBloc(bloc,label,msgAgrandir,msgReduire)
    {        
        // Recuperation des objets
        var _bloc = window.GetId(bloc);
        var _label = window.GetId(label);

        // Selon le mode, on affiche ou non le bloc
        // On modifie egalement le texte du lien
        if(_bloc.style.display == "none")
        {
            _bloc.style.display = "block";
            _label.innerHTML = msgReduire;
        }
        else
        {
            _bloc.style.display = "none";
            _label.innerHTML = msgAgrandir;
            // On efface les valeurs des champs caches
        }
    }
    
    // Fonction permettant d'afficher 
    // le bloc de recherche s'il contient des donnees    
    function AfficherBlocRechercheChargement(bloc)
    {    
        // Variables
        var _bloc = GetId(bloc);    
        var urlPage = String(location);

        // On affiche la page
        if(urlPage.indexOf('filtrer=1',1) > -1)
            afficherBlocRecherche(bloc);
    }
    
    // Fonction de remise a zero des champs
    function FiltreRechercheRAZ()
    {    
        var controle;
        
        // Liste deroulante Racine/Cible
        GetId('ctl00_CPH_principal_ctl01_DropDownListCible').selectedIndex = 0;
        GetId('ctl00_CPH_principal_ctl01_DropDownListRacine').selectedIndex = 0;
        // Demandeur (Adherent/Technicien)
        GetId('ctl00_CPH_principal_ctl01_DropDownListDemandeur').selectedIndex = 0;
        GetId('ctl00_CPH_principal_ctl01_TextBoxDemandeurDebut').value = '';
        GetId('ctl00_CPH_principal_ctl01_TextBoxDemandeurFin').value = '';
        // Reference d'echantillon
        GetId('ctl00_CPH_principal_ctl01_DropDownListRechercheReference').selectedIndex = 0;
        GetId('ctl00_CPH_principal_ctl01_TextBoxReferenceDebut').value = '';
        GetId('ctl00_CPH_principal_ctl01_TextBoxReferenceFin').value = '';
        // Destinataire du rapport
        GetId('ctl00_CPH_principal_ctl01_TextBoxDestinataireRapport').value = '';    
        // Date
        GetId('ctl00_CPH_principal_ctl01_DropDownListRechercheDate').selectedIndex = 0;    
        GetId('ctl00_CPH_principal_ctl01_CalendarPopupDebut_textBox').value = '';    
        GetId('ctl00_CPH_principal_ctl01_CalendarPopupDebut_hidden').value = '';
        GetId('ctl00_CPH_principal_ctl01_CalendarPopupFin_textBox').value = '';
        GetId('ctl00_CPH_principal_ctl01_CalendarPopupFin_hidden').value = '';
        // Divers
        GetId('ctl00_CPH_principal_ctl01_DropDownListEtat').selectedIndex = 0;
        GetId('ctl00_CPH_principal_ctl01_DropDownListModeExploitation').selectedIndex = 0;
        // Code culture
        controle = GetId('ctl00_CPH_principal_ctl01_DropDownListCodeCulture'); if(controle != null) controle.selectedIndex = 0;
        // Microbio
        controle = GetId('ctl00_CPH_principal_ctl01_DropDownListCotation').selectedIndex = 0; if(controle != null) controle.selectedIndex = 0;
        controle = GetId('ctl00_CPH_principal_ctl01_DropDownListGerme1').selectedIndex = 0; if(controle != null) controle.selectedIndex = 0;
        controle = GetId('ctl00_CPH_principal_ctl01_DropDownListGerme2').selectedIndex = 0; if(controle != null) controle.selectedIndex = 0;
        controle = GetId('ctl00_CPH_principal_ctl01_DropDownListGerme3').selectedIndex = 0; if(controle != null) controle.selectedIndex = 0;
        controle = GetId('ctl00_CPH_principal_ctl01_DropDownListCotationGerme1').selectedIndex = 0; if(controle != null) controle.selectedIndex = 0;
        controle = GetId('ctl00_CPH_principal_ctl01_DropDownListCotationGerme2').selectedIndex = 0; if(controle != null) controle.selectedIndex = 0;
        controle = GetId('ctl00_CPH_principal_ctl01_DropDownListCotationGerme3').selectedIndex = 0; if(controle != null) controle.selectedIndex = 0;
    }
    
    function navCacheOnglet()
    {
        var commandes = GetId("ctl00_CPH_principal_H_commandes");
        var microbio = GetId("ctl00_CPH_principal_H_microbiologie");
        var display;
        
        if(commandes.value == "show") display = ''; else display = 'none';
        GetId("li_commandes").style.display = display; 
        if(microbio.value == "show") display = ''; else display = 'none';
        GetId("li_microbiologie").style.display = display; 
    }
    
    // Navigation par onglet dans la page de parametrage
    function TabClick(onglet)
    {
        // On masque tous les blocs
        GetId("div_general").style.display = "none";
        GetId("div_informations_personnelles").style.display = "none";
        GetId("div_commandes").style.display = "none";
        GetId("div_microbiologie").style.display = "none";
        // On change la classe CSS des onglets inactifs
        GetId("li_general").className = "";
        GetId("li_informations_personnelles").className = "";
        GetId("li_commandes").className = "";
        GetId("li_microbiologie").className = "";

        // On passe le bloc actuel en visible / On change la classe CSS de l'onglet actif
        GetId('div_' + onglet).style.display = "block";	        
        GetId('li_' + onglet).className = "active";
    }

    // Fonction move
    // Gere la position du bloc d'aide (infobulle) a afficher
    // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.
    var posX;
    var posY;
    
    document.onmousemove=move;
    document.onmousemove=position;
    function position(e)
    {
        if (navigator.appName == "Microsoft Internet Explorer") 
        {            
            // Modif proposé par TeDeum, merci à lui
            if(document.documentElement.clientWidth>0) 
            {
               posX = event.x + document.documentElement.scrollLeft
               posY = event.y + document.documentElement.scrollTop;
            }
            else
            {
                posX = event.x + document.body.scrollLeft;
                posY = event.y + document.body.scrollTop;            
            }
        }
        // Si on est pas sous IE
        else 
        {            
            posX = e.pageX;
            posY = e.pageY;            
        }
        
        // On retourne un tableau contenant la position du curseur
        return Array(posX,posY);
    }
    
    function move(e) 
    {    
        var divInfoBulle = GetId("divInfoBulle");
        
        // Si la bulle est visible, on calcul en temps reel sa position ideale
        if (navigator.appName!="Microsoft Internet Explorer") 
        { 
            // Si on est pas sous IE
            divInfoBulle.style.left=e.pageX + 5 + "px";
            divInfoBulle.style.top=e.pageY + 10 + "px";
        }
        else 
        { 
            // Modif proposé par TeDeum, merci à lui
            if(document.documentElement.clientWidth>0) 
            {                
                if(divInfoBulle != null)
                {
                    divInfoBulle.style.left = 20 + event.x + document.documentElement.scrollLeft + "px";
                    divInfoBulle.style.top = 10 + event.y + document.documentElement.scrollTop + "px";
                }
            }
            else 
            {
                if(divInfoBulle != null)
                {
                    divInfoBulle.style.left = 20 + event.x + document.body.scrollLeft + "px";
                    divInfoBulle.style.top = 10 + event.y + document.body.scrollTop + "px";
                }
            }
        }
    }
  
    // Fonction montre
    // montre les infobulles (bloc div) du champ
    function montreAideSaisie(champ,info) 
    {      
        // On recupere les objet <div>
        var divInfoChamp = GetId("infoChamp");
        var divInfo = GetId("info");
        var divInfoBulle = GetId("divInfoBulle");        
        
        // On implemente les champs de l'infobulle (s'ils existent)
        if(divInfoChamp != null && divInfo!= null && divInfoBulle != null)
        {
            divInfoChamp.innerHTML = champ;
            divInfo.innerHTML = info;
            
            // On affiche le bloc DIV (s'il existe)
            divInfoBulle.style.display="block";
        }
    }

    // Fonction cache
    // Cache les infobulles (bloc div) affiches
    function cacheAideSaisie() 
    {
        var divInfoBulle = GetId("divInfoBulle");
        
        // Si la bulle etais visible on la cache
        if(divInfoBulle != null)
        {
            divInfoBulle.style.display="none";
            i=false;
        }
    }
    
    // Fonction
    // Gere le filtre special Microbio
    // La selection d'une cotation "Satisfaisant/Pas d'analyses" bloque 
    // le [CheckBox] de choix de recherche "inclusif/Exclusif"
    function bloquerChoixExclusif(IdDDL1,IdDDL2,IdDDL3,IdRbRestrictif,IdRbElargi)
    {        
        // On obtient les elements
        ddl1 = GetId('ctl00_CPH_principal_ctl01_' + IdDDL1);
        ddl2 = GetId('ctl00_CPH_principal_ctl01_' + IdDDL2);
        ddl3 = GetId('ctl00_CPH_principal_ctl01_' + IdDDL3);
        RbRestrictif = GetId('ctl00_CPH_principal_ctl01_' + IdRbRestrictif);
        RbElargi = GetId('ctl00_CPH_principal_ctl01_' + IdRbElargi);
        
        if(ddl1 != null && ddl2 != null && ddl3 != null)
        {            
            // On decoche et bloque le [checkBox]
            if(ddl1.value == "S%" || ddl2.value == "S%" || ddl3.value == "S%")
            {
                RbElargi.checked = true;
                RbElargi.disabled = true;
                RbRestrictif.disabled = true;
            }
            else 
            {
                RbRestrictif.disabled = false;
                RbElargi.disabled = false;            
            }
        }
    }
    
  
    // Fonction gestionMultilignes
    // Gere l'affichage des lignes multiples dans le bloc de consultation
    function gestionMultilignes(tr)
    {    
        // Recupere l'objet <tr> a afficher/masquer
        var ligne = GetId(tr);
        
        if(ligne != null)
        {
            switch (ligne.style.display)
            {
                case '':
                    ligne.style.display = 'none';
                    break;
                case 'none':
                    ligne.style.display = '';
                    break;
                default:
                    ligne.style.display = 'none';
            }
        }
    }
    
    // Fonction montreBlocFond
    // Affiche le bloc opaque de fond de site
    function montreBlocFond(couleur_fond)
    {
        var height;
        var width;
        
        if(navigator.appName == 'Netscape')
        {            
            height = window.innerHeight;
            width = window.innerWidth;        
        }
        else
        {            
            height = document.documentElement.clientHeight;
            width = document.documentElement.clientWidth;
        }
        
        // On prend la valeur max entre la taille de la fenetre et celle de la page
        height = Math.max(height,document.body.clientHeight);
        width = Math.max(width,document.body.clientWidth);
        
        // On redefini la taille du bloc <div>
        GetId("div_Fond").style.background = couleur_fond;        
        GetId("div_Fond").style.height = height + "px";
        GetId("div_Fond").style.width = width + "px";

        // On affiche le bloc <div>
        GetId("div_Fond").style.display = '';
    }
    
    // Fonction montreBlocAttente
    // Montre le bloc d'attente
    function montreBlocAttente()
    {
        // Gestion du bloc
        montreBlocFond('#000000');
        // On affiche le bloc <div>
        GetId("div_AttenteMessage").style.display = '';
    }
 
     // Fonction cacheBlocAttente
     // Cache le bloc d'attente
    function cacheBlocAttente()
    {
        // Cache les blocs de message d'attente
        if(GetId("div_InformationVolante").style.display == 'none')
            GetId("div_Fond").style.display = 'none';        
        GetId("div_AttenteMessage").style.display = 'none';
    }
    
    function montreBlocInformation()
    {        
        var titre = GetId("ctl00_HF_informationTitre").value;        
        var message = GetId("ctl00_HF_informationMessage").value;
        var type = GetId("ctl00_HF_informationType").value;
        var couleur_fond;
        
        if(message != '')
        {
            if(type == 'erreur')
                couleur_fond = '#ac5f5f';
            else
                couleur_fond = '#000000';
            
            // Gestion du bloc  
            montreBlocFond(couleur_fond);    

            // On saisi les informations du bloc
            GetId("lbl_titreInformationVolante").firstChild.nodeValue = titre;        
            GetId("lbl_messageInformationVolante").firstChild.nodeValue = message;

            // On affiche le bloc <div>
            GetId("div_InformationVolante").style.display = '';

            GetId("ctl00_HF_informationTitre").value = null;
            GetId("ctl00_HF_informationMessage").value = null;
            GetId("ctl00_HF_informationType").value = null;
        }
    }
    
    function cacheBlocInformation()
    {
        // Cache les blocs de message d'information
        GetId("div_Fond").style.display = 'none';
        GetId("div_InformationVolante").style.display = 'none';
    }      
    
    // Fonction affichant les bloc <div>
    // necessaires au fonctionnement de l'ajout d'analyse par les preleveurs
    function afficherBlocAjoutAnalyse(idCommande)
    {        
        document.body.style.overflow = "hidden";
        
        var sTop;
        var sLeft;        
        
        if (navigator.appName!="Microsoft Internet Explorer") 
        { 
            sTop = posY - 300;
            sLeft = posX - 200
        }
        else
        {
            sTop = posY/2;
            sLeft = posX - 200
        }
        
        GetId('divAjoutAnalyse').style.top = sTop + "px";
        GetId('divAjoutAnalyse').style.left = sLeft + "px";

        montreBlocFond('#cccccc');
        GetId('divAjoutAnalyse').style.display='';
        
        GetId('ctl00_CPH_principal_UC_Commandes1_hfIdCommande').value = idCommande;
    }
    
    // Fonction masquant les bloc <div>
    // necessaires au fonctionnement de l'ajout d'analyse par les preleveurs
    function masquerBlocAjoutAnalyse()
    {
        document.body.style.overflow = "";
        
        GetId('divAjoutAnalyse').style.display='none'; 
        GetId('div_Fond').style.display = 'none'
    }
    
    // Fonction pour modifier le statut 'Style.display'
    // de la liste des raisons d'une annulation de commande
    function gestionBlocRaisonAnnulation(inputHTML)
    {
        // On obtient l'id du composant (apres compilation ASP)
        var idInput = inputHTML.id;
        // On recupere l'element HTML a (des)activer
        var sId = idInput.replace("chkCommandeAnnulee", "pnlRaisonAnnulation");
        var divElement = GetId(sId);        
        
        // Selon la valeur du [CheckBox], on 
        // affiche ou non la liste des raisons d'annulations
        if(inputHTML.checked == true)
        {            
            divElement.style.display = '';
        }
        else
        {
            divElement.style.display = 'none';
        }
    }    
    
    // Gestion de l'affichage des blocs de synthese de televente
    // Affiche/Masque les blocs de statistiques et de suivi de commande
    function affichageBlocSuiviTelevente(onglet)
    {        
        // On masque les blocs <div>
        GetId('div_Statistiques').style.display = 'none';
        GetId('div_SuiviCommande').style.display = 'none';
        GetId('div_Prelevements').style.display = 'none';
        
        // On change la classe CSS des onglets inactifs
        GetId("li_Statistiques").className = "";
        GetId("li_SuiviCommande").className = "";
        GetId("li_Prelevements").className = "";
        
        // On passe le bloc actuel en visible / On change la classe CSS de l'onglet actif
        GetId('ctl00_CPH_principal_hfOngletSelectionne').value = onglet;
        
        GetId('div_' + onglet).style.display = "";	        
        GetId('li_' + onglet).className = "active";
    }    
    

    function MM_swapImgRestore() { //v3.0
        var i, x, a = document.MM_sr; for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
    }

    function MM_preloadImages() { //v3.0
        var d = document; if (d.images) {
            if (!d.MM_p) d.MM_p = new Array();
            var i, j = d.MM_p.length, a = MM_preloadImages.arguments; for (i = 0; i < a.length; i++)
                if (a[i].indexOf("#") != 0) { d.MM_p[j] = new Image; d.MM_p[j++].src = a[i]; } 
        }
    }

    function MM_findObj(n, d) { //v4.01
        var p, i, x; if (!d) 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 = MM_findObj(n, d.layers[i].document);
        if (!x && d.getElementById) x = d.getElementById(n); return x;
    }

    function MM_swapImage() { //v3.0
        var i, j = 0, x, a = MM_swapImage.arguments; document.MM_sr = new Array; for (i = 0; i < (a.length - 2); i += 3)
            if ((x = MM_findObj(a[i])) != null) { document.MM_sr[j++] = x; if (!x.oSrc) x.oSrc = x.src; x.src = a[i + 2]; }
        }

