var mnTemoin = 0 ; // Permet d'intercepter l'évenement close en cas d'impression (mode non modal)
var aTabHiddenSelect = new Array();
var nNbOpenLayer = 0 ;

function getClientHeight() {
    var nHeight = 0;
    if (window.innerHeight) { 
		//Navigateurs sauf Explorer
		nHeight = window.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight) {
		//Internet Explorer mode Strict
		nHeight = document.documentElement.clientHeight;
	}
	else if (document.body && document.body.clientHeight) {
		//Autres Internet Explorer
		nHeight = document.body.clientHeight;
	}

    return nHeight;
}

function MMA_Layer_GetParam(tabParams, szParam, szDefault) {
    var tabParam;
    var szRet, szParamTemp, szName, szValue;
    var nIndex, nIndexEgal;
    var bTrouve;

    szRet = szDefault;
    nIndex = 0;
    bTrouve = false;
    while (nIndex < tabParams.length && !bTrouve){
        szParamTemp = tabParams[nIndex];
        nIndexEgal = szParamTemp.indexOf("=");
        if (nIndexEgal != -1) {
            szName = szParamTemp.substr(0, nIndexEgal);
            szValue = szParamTemp.substr(nIndexEgal + 1);
            if (szName.toLowerCase() == szParam.toLowerCase()) {
                if (szValue != "") {
                    szRet = szValue;
                }
                bTrouve = true;
            }
        }
        nIndex++;
    }

    return szRet;
}

function MMA_Layer_GetPath()
{
    var szPath;
    var oScript;
    var szSrc;
    var nIndex;
    
    szPath = "";
    oScript = document.getElementById("MMA_Layer_Script");
    if (oScript != null) {
        szSrc = oScript.src;
        nIndex = szSrc.lastIndexOf("/");
        if (nIndex != -1) {
            szPath = szSrc.substr(0, nIndex + 1);
        }
    }

    return szPath;
}

function MMA_Layer_ShowSelect(bShow)
{
	var oSelect;
	var oIframe;
	var nIndexS;
	var nIndexI;
	
	if (bShow) {
		nNbOpenLayer--;
	}
	else {
		nNbOpenLayer++;
	}
	try
	{
		if (navigator.appName == "Microsoft Internet Explorer")
		{
			var nIndexVersionMSIE = navigator.appVersion.indexOf("MSIE") + 5;
			var	nVersion = parseInt(navigator.appVersion.charAt(nIndexVersionMSIE));
			if (nVersion < 7)
			{
				if (bShow) {
					if (nNbOpenLayer == 0) {
						while (aTabHiddenSelect.length != 0) {
							aTabHiddenSelect.pop().style.visibility = "visible";
						}
					}
				}
				else {
					oSelect = document.getElementsByTagName("SELECT");
					nIndexS = 0;
					while (nIndexS < oSelect.length)
					{
						if (oSelect[nIndexS].style.visibility != "hidden") {
							oSelect[nIndexS].style.visibility = "hidden";
							aTabHiddenSelect.push(oSelect[nIndexS]);
						}
						nIndexS++;
					}
		
					oIframe = document.getElementsByTagName("iframe");
					nIndexI = 0;
					while (nIndexI < oIframe.length)
					{
						oSelect = document.frames[nIndexI].document.getElementsByTagName("SELECT");
						nIndexS = 0 ;
						while (nIndexS < oSelect.length)
						{
							if (oSelect[nIndexS].style.visibility != "hidden") {
								oSelect[nIndexS].style.visibility = "hidden";
								aTabHiddenSelect.push(oSelect[nIndexS]);
							}
							nIndexS++;
						}
						nIndexI++;
					}
				}
			}
		}
	}
	catch(err)
	{}
	return;
}

function MMA_Layer_Open(szParams) {
    var szPath;
    var szId, szUrl, nWidth, nHeight, szImage, szScrolling, szModale, szClose, szPrint, szCloseImage, szPrintImage;
    var oLayerGlobal;
    var oLayerFond;
    var oLayerFrame;
    var nLayerHeight;
    var szCommandes;
    var nClientHeight;
    var nHeightIFrame;
    var nScroll;
    
    MMA_Layer_ShowSelect(false);    
    szPath = MMA_Layer_GetPath();
    /* Récupération des paramètres */
    var tabParams = szParams.split(new RegExp("[;]+", "g"));
    szId = MMA_Layer_GetParam(tabParams, "id", "MMA_Layer");
    szUrl = MMA_Layer_GetParam(tabParams, "url", "about:blank");
    nWidth = MMA_Layer_GetParam(tabParams, "width", "630");
    nHeight = MMA_Layer_GetParam(tabParams, "height", "400");
    szImage = MMA_Layer_GetParam(tabParams, "image", "");
    szScrolling = MMA_Layer_GetParam(tabParams, "scrolling", "auto");
    szModale = MMA_Layer_GetParam(tabParams, "modale", "no");
    szClose = MMA_Layer_GetParam(tabParams, "close", "no");
    szPrint = MMA_Layer_GetParam(tabParams, "print", "no");
    szCloseImage = MMA_Layer_GetParam(tabParams, "close_image", "");
    szPrintImage = MMA_Layer_GetParam(tabParams, "print_image", "");
    /* DEBUT TRAITEMENTS */
    oLayerGlobal = document.getElementById(szId);
    if (oLayerGlobal == null) {
        nScroll = document.body.scrollTop;
        nClientHeight = getClientHeight();
        // Création du DIV Global
        oLayerGlobal = document.createElement("div");
        oLayerGlobal.setAttribute("id", szId);
        // Création DIV Fond
        oLayerFond = document.createElement("div");
        oLayerFond.className = "MMA_Layer_Fond";
        if (nClientHeight > document.body.scrollHeight) {
            nLayerHeight = nClientHeight;
        }
        else {
            nLayerHeight = document.body.scrollHeight;
        }
        oLayerFond.setAttribute("style", "height: " + nLayerHeight + "px");
        oLayerFond.style.height = nLayerHeight;
        // Ajout DIV Fond
        oLayerGlobal.appendChild(oLayerFond);
        if (szImage != "") {
            // Création DIV Cadre
            oLayerCadre = document.createElement("div");
            oLayerCadre.className = "MMA_Layer_Cadre";
            nLayerHeight = nClientHeight;
            oLayerCadre.setAttribute("style", "height: " + nLayerHeight  + "px");
            oLayerCadre.style.height = nLayerHeight;
            oLayerCadre.innerHTML = "\
            <table width=\"100%\" height=\"100%\" style=\"width: 100%; height: 100%\">\
              <tr>\
                <td align=\"center\" valign=\"middle\">\
                  <img alt=\"\" src=\"" + szImage + "\" />\
                </td>\
              </tr>\
            </table>";
            // Ajout DIV Cadre
            oLayerGlobal.appendChild(oLayerCadre);
        }
        // Création DIV Frame
        oLayerFrame = document.createElement("div");
        oLayerFrame.className = "MMA_Layer_Frame";
        nLayerHeight = nClientHeight;
        oLayerFrame.setAttribute("style", "top: " + nScroll + "px; height: " + nLayerHeight + "px");
        oLayerFrame.style.top = nScroll;
        oLayerFrame.style.height = nLayerHeight;
        szCommandes = "";
        if (szClose == "yes" || szPrint == "yes") {
            szCommandes += "\
            <table cellpadding='5' cellspacing='0'>\
              <tr>\
                <td nowrap>";
            if (szPrint == "yes") {
                if (szPrintImage == "") {
					if (szModale == "no") {
						szCommandes += "<a href=\"javascript:;\" onclick=\"MMA_Layer_PrintButton('id=" + szId + "_IFrame');\" class=\"MMA_Layer_Print\">IMPRIMER</a>&nbsp;&nbsp;";
						}
					else {
						szCommandes += "<a href=\"javascript:;\" onclick=\"MMA_Layer_Print('id=" + szId + "_IFrame');\" class=\"MMA_Layer_Print\">IMPRIMER</a>&nbsp;&nbsp;";
						}							
                }
                else {
                    if (szImage != "") {
						if (szModale == "no") {
					        szCommandes += "<a href=\"JavaScript:;\" onclick=\"MMA_Layer_PrintButton('id=" + szId + "_IFrame');\"><img border=\"0\" src=\"" + szPrintImage + "\" alt=\"\" /></a>&nbsp;&nbsp;";
						    }
						else {
							szCommandes += "<a href=\"JavaScript:;\" onclick=\"MMA_Layer_Print('id=" + szId + "_IFrame');\"><img border=\"0\" src=\"" + szPrintImage + "\" alt=\"\" /></a>&nbsp;&nbsp;";
						}        
                    }
                }              
            }
            if (szClose == "yes") {
                if (szCloseImage == "") {
					szCommandes += "<a href=\"JavaScript:;\" onclick=\"MMA_Layer_Close('id=" + szId + "');\" class=\"MMA_Layer_Close\">FERMER X</a>&nbsp;&nbsp;";
					}
                else {
                    if (szImage != "") {
						szCommandes += "<a href=\"JavaScript:;\" onclick=\"MMA_Layer_Close('id=" + szId + "');\"><img border=\"0\" src=\"" + szCloseImage + "\" alt=\"\" /></a>&nbsp;&nbsp;";
						}
					}
            }
            szCommandes += "\
                </td>\
              </tr>\
            </table>";
        }
        nHeightIFrame = 100;
        if (szClose == "yes" || szPrint == "yes") {
            nHeightIFrame = 97;
        }
        if (szImage == "") {
            oLayerFrame.innerHTML = "\
            <table width=\"100%\" height=\"" + nHeightIFrame + "%\" style=\"width: 100%; height: " + nHeightIFrame + "%\">\
                <tr>\
                    <td align=\"center\" valign=\"middle\">\
                        <table cellpadding='0' cellspacing='0'>\
                            <tr>\
                                <td><img src=\"" + szPath + "MMA_Layer_GH.gif\" \></td>\
                                <td style=\"background-image: url(" + szPath + "MMA_Layer_H.gif)\" align=\"right\">" + szCommandes + "</td>\
                                <td><img src=\"" + szPath + "MMA_Layer_DH.gif\" \></td>\
                            </tr>\
                            <tr>\
                                <td style=\"background-image: url(" + szPath + "MMA_Layer_G.gif)\"></td>\
                                <td><iframe style=\"overflow:scroll\" id=\"" + szId + "_IFrame\" scrolling=\"" + szScrolling + "\" src=\"" + szUrl + "\" width=\"" + nWidth + "px\" height=\"" + nHeight + "px\" frameborder=\"0\"></iframe></td>\
                                <td style=\"background-image: url(" + szPath + "MMA_Layer_D.gif)\"></td>\
                            </tr>\
                            <tr>\
                                <td><img src=\"" + szPath + "MMA_Layer_GB.gif\" \></td>\
                                <td style=\"background-image: url(" + szPath + "MMA_Layer_B.gif)\"></td>\
                                <td><img src=\"" + szPath + "MMA_Layer_DB.gif\" \></td>\
                            </tr>\
                        </table>\
                    </td>\
                </tr>\
            </table>\
            ";
        }
        else {
            oLayerFrame.innerHTML = "\
            <table width=\"100%\" height=\"" + nHeightIFrame + "%\" style=\"width: 100%; height: " + nHeightIFrame + "%\">\
              <tr>\
                <td align=\"center\" valign=\"middle\">\
                  <table>\
                    <tr>\
                      <td align=\"right\">" + szCommandes + "</td>\
                    </tr>\
                    <tr>\
                      <td>\
                        <iframe style=\"overflow:scroll\" id=\"" + szId + "_IFrame\" scrolling=\"" + szScrolling + "\" src=\"" + szUrl + "\" width=\"" + nWidth + "px\" height=\"" + nHeight + "px\" frameborder=\"0\" style=\"background-color: transparent\" allowtransparency=\"true\"></iframe>\
                      </td>\
                    </tr>\
                  </table>\
                </td>\
              </tr>\
            </table>";
        }
        // Ajout DIV Frame
        oLayerGlobal.appendChild(oLayerFrame);
        // Ajout DIV Global
        document.body.appendChild(oLayerGlobal);
        if (szModale == "no") {
            document.getElementById(szId).onclick = function() { MMA_Layer_Close('id=' + szId); };
        }
        //window.scroll(0, 0);
    }
    
    return;
}

function MMA_Layer_SetHeight(szParams) {
    var szId;
    var oFrame;
    var szDomain;

    /* Récupération des paramètres */
    var tabParams = szParams.split(new RegExp("[;]+", "g"));
    szId = MMA_Layer_GetParam(tabParams, "id", "MMA_Layer");
    szDomain = MMA_Layer_GetParam(tabParams, "domain", "");
    if (szDomain != '') {
        document.domain = szDomain;
    }
    /* DEBUT TRAITEMENTS */
    oFrame = document.getElementById(szId + '_IFrame');
    if (oFrame != null) {
        if (oFrame.contentDocument == null) {
            oFrame.height = window.frames[szId + '_IFrame'].document.body.scrollHeight + 16;
        }
        else {
            oFrame.height = oFrame.contentDocument.body.scrollHeight + 16;
        }
    }
    
    return;
}

function MMA_Layer_Close(szParams) {
    var szId, szUrl;
    var oLayer;
	if (mnTemoin == 1){
		mnTemoin = 0 ; 
	}
	else
	{
		MMA_Layer_ShowSelect(true);
		/* Récupération des paramètres */
		var tabParams = szParams.split(new RegExp("[;]+", "g"));
		szId = MMA_Layer_GetParam(tabParams, "id", "MMA_Layer");
		szUrl = MMA_Layer_GetParam(tabParams, "url", "");
		if (szUrl != "") {
		    parent.document.location = szUrl;
		}
		else {
			oLayer = parent.document.getElementById(szId);
			if (oLayer != null) {
			    parent.document.body.removeChild(oLayer);
			}
		}
    }
    return;
}

function MMA_Layer_Print(szParams) {
    var szId;
    var oLayer;
    /* Récupération des paramètres */
    var tabParams = szParams.split(new RegExp("[;]+", "g"));
    szId = MMA_Layer_GetParam(tabParams, "id", "MMA_Layer_IFrame");
    oLayer = document.getElementById(szId);
    if (oLayer != null) {
        oLayer.contentWindow.focus();
        oLayer.contentWindow.print();
    }
    return;
}

function MMA_Layer_PrintButton(szParams) {
	mnTemoin = 1 ;
	MMA_Layer_Print(szParams) ;
    return;
}
