﻿function addEvent(elm, evType, fn, useCapture){
	if (elm.addEventListener) 
	{
		elm.addEventListener(evType, fn, useCapture);
		return true;
	} else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	} else {
		elm['on' + evType] = fn;
	}
}
function getText(elt) {
	if (elt.textContent) {
		return elt.textContent;
	} else {
		return elt.innerText;
	}
}
function getMouse(e){
	var x,y; var elt = (navigator.userAgent.indexOf("MSIE 5")!=-1) ? document.body : document.documentElement;
	if ( document.captureEvents ) {
		x = e.pageX;
		y = e.pageY;
	} else if ( window.event.clientX ) {
		x = window.event.clientX+elt.scrollLeft;
		y = window.event.clientY+elt.scrollTop;
	}
	window.mouseX = x;
	window.mouseY = y;
}
cancelBubble=function(e) {
	if (window.event){
		window.event.cancelBubble = true;
		window.event.returnValue = false;
		return;
	}
	if (e){
		e.stopPropagation();
		e.preventDefault();
	}
}
var navDiaporama={
    container:null,
    imagesContainer:null,
    imagesList:[],
    currentImg:null,
    zoomButton:null,
    arrow:{ left:null, right:null },
    popZoomId:"popZoomImage",
    popZoom:null,
    init:function(imId) {
		var x, firstArrow=false;
		nav = document.getElementById(imId);
        navDiaporama.container=nav;
        var childs=nav.getElementsByTagName('span');
        for (var i=0; i<childs.length; i++) {
            var chd=childs[i];
            switch (chd.nodeName) {
                case "SPAN":
                        navDiaporama.imagesContainer=chd;
                        var imgs = chd.childNodes;
                        for (var j=0; j<imgs.length; j++) {
                            var img=imgs[j];
                            if (/A|SPAN/.test(img.nodeName)) {
                                navDiaporama.imagesList.push(img);
                                img.indexNumber=navDiaporama.imagesList.length-1;
                                if (img.nodeName=="A") {
									
                                    img.onclick=navDiaporama.showZoomImg;
                                }
                            }                        
                        }
            }
        }
        var par = navDiaporama.container.parentNode;
        var a = par.getElementsByTagName("a");
        for (var i=0;i<a.length;i++) {
            if (a[i].className.match(/\bexpandimg\b/)) {
                navDiaporama.zoomButton = a[i];
                a[i].onclick=navDiaporama.showZoomImg;
            }
        }
        if(navDiaporama.imagesList.length>0 && !navDiaporama.currentImg) {
            navDiaporama.currentImg = navDiaporama.imagesList[0];
            navDiaporama.showImg(0);
        }
        if (navDiaporama.imagesList.length>1) {
            for (elt in navDiaporama.arrow) {
                var x = navDiaporama.arrow[elt]
                if (x && x.style) x.style.visibility="hidden";
            }
        }
    },
    showImg:function(imgIndex) {
        navDiaporama.currentImg.className="";
        if (!navDiaporama.imagesList[imgIndex]) return;
        navDiaporama.currentImg=navDiaporama.imagesList[imgIndex];
        navDiaporama.currentImg.className="activeimg";
        if (navDiaporama.zoomButton) {
            if (navDiaporama.currentImg.nodeName!="A" || navDiaporama.currentImg.href=="") {
                navDiaporama.zoomButton.parentNode.style.visibility="hidden";            
            } else {
                navDiaporama.zoomButton.parentNode.style.visibility="hidden";
            }
        }
    },
    showZoomImg:function(e) {
        if (navDiaporama.currentImg.nodeName=="A" && navDiaporama.currentImg.href!="") {
            var pop=navDiaporama.makePopZoom();
            pop.move();
            ifrlayer.make(pop);
        }
		return false;
    },
    makePopZoom:function(e){
        var pop = document.getElementById(navDiaporama.popZoomId);
        if (!pop) {
            var div = document.createElement("div");
            div.id=navDiaporama.popZoomId;
            div.innerHTML = ''
           




 div.style.visibility="hidden";
            var img = div.appendChild(document.createElement("img"));
            img.onload=function() {
                pop.getPositionFromWindow();
                this.pop.move();
                ifrlayer.resize(pop);
            }
            div.zoomImage = img;
            img.pop = div;
            div=document.body.appendChild(div);
            pop=div;
            navDiaporama.popZoom = div;
            var AllElt = div.getElementsByTagName("*");
            for(var i=0; i<AllElt.length;i++) {
                AllElt[i].onmousemove=AllElt[i].onmousedown=function() {return false};
            }
            pop.getPositionFromWindow   = navDiaporama.getPositionFromWindow;
		    pop.move                    = navDiaporama.movePopZoom;
		    pop.onmousedown             = navDiaporama.makePopZoomDraggable;
		    addEvent(pop,"mousedown", cancelBubble);
		    addEvent(pop,"dblclick", navDiaporama.hidePopZoom);
		}
		pop.style.visibility="hidden";
		pop.onmousemove=function(){};
        pop.zoomImage.src = navDiaporama.currentImg.href;
		
		if (!pop.titl) {
			var popTitle = pop.appendChild(document.createElement("div"));
			popTitle.className = "popupTitle";
			pop.titl = popTitle;
		}
		pop.titl.innerHTML = navDiaporama.currentImg.title;
        copyright=null;
        eltParentImg = navDiaporama.currentImg.parentNode;
        bElementCurrent = false
        var i;
        for( i=0;i<eltParentImg.childNodes.length;i++ ) {
        
            if( navDiaporama.currentImg == eltParentImg.childNodes[i] ) {
                bElementCurrent = true;
             
            }
            else if( bElementCurrent ) {
            
                if( eltParentImg.childNodes[i].nodeType != 3 && eltParentImg.childNodes[i].nodeName.toLowerCase() == "span" ) {
                    copyright = eltParentImg.childNodes[i];
                    break;                
                }
                
                if( eltParentImg.childNodes[i].nodeType != 3 && eltParentImg.childNodes[i].nodeName.toLowerCase() != "span" ) {
                    copyright = null;
                    break;                
                }
            
            }
        }
       if (copyright != null) {
        
           if (!pop.copyright ) {
                var popCopyright = pop.appendChild(document.createElement("p"));
                popCopyright.className = "copyright";
                pop.copyright = popCopyright;
            }
            
            if (/\w/.test(getText(copyright)) )  {
                pop.copyright.innerHTML = copyright.innerHTML;
                pop.copyright.display = "";
             } else {
                pop.copyright.style.display = "none";
             }
       } 
        
        if (pop.zoomImage.complete) {
            pop.zoomImage.onload();
        }
		
		return pop;
    },
    movePopZoom:function(){
       if (!isNaN(this.x)) this.style.left = this.x+"px";
       if (!isNaN(this.y)) this.style.top = this.y+"px";
       ifrlayer.move(this);
    },
    hidePopZoom:function(e){
        var pop = navDiaporama.popZoom;
        pop.style.visibility="hidden";
		pop.zoomImage.src = "/images/i/loading.gif";
        ifrlayer.hide(navDiaporama.popZoom);
    },
    getPositionFromWindow:function(e){
        var doc = (/MSIE 5|MSIE 6/.test(navigator.userAgent)) ? document.body : document.documentElement;  //document.documentElement;
        if (document.getElementById('popZoomImage')) {
			this.x = doc.offsetWidth/2-document.getElementById('popZoomImage').offsetWidth/2;
		} else {
			this.x = doc.scrollLeft;
		}
	var h_cntr = 20;
		if (document.body.clientHeight>document.getElementById('popZoomImage').offsetHeight) {
			h_cntr = document.body.clientHeight/2-document.getElementById('popZoomImage').offsetHeight/2;
		}
        this.y = doc.scrollTop+h_cntr;
    },
    makePopZoomDraggable:function(e) {
        getMouse(e);
        this.className+=" dragmode";
        this.mouseOffsetX = window.mouseX-this.offsetLeft;
        this.mouseOffsetY = window.mouseY-this.offsetTop;
        document.onselectstart = function() {return false};
        document.onmousemove = navDiaporama.moveFromMouse;
        this.onmouseup = function() {
            document.onmousemove=function() {}; //retire les fonctionnalités sur le déplacement
            document.onselectstart=function() {};
            this.className = this.className.replace(/dragmode/g,"");
        };
    },
    moveFromMouse:function(e) {
        var doc = document.documentElement;
        var p = navDiaporama.popZoom;
        getMouse(e);
        p.x = window.mouseX-p.mouseOffsetX;
        p.y = window.mouseY-p.mouseOffsetY;
        p.move();
    } 
}
ifrlayer = {
	make:function(obj) {
		if(!obj) return; obj = (typeof(obj)=="string") ? document.getElementById(obj) : obj; if(!obj) return;
		if(document.all && !window.opera && document.getElementById) {
			if(obj.parentNode && !obj.iframelayer) {
			    var ifr = obj.parentNode.insertBefore(document.createElement(''), obj);
			    if(obj.currentStyle.zIndex != "" && parseInt(obj.currentStyle.zIndex)>1 ) {
				    ifr.style.zIndex = parseInt(obj.currentStyle.zIndex)-1;
			    }
			    with(ifr.style) { 
				    filter = "mask()";
				    position = "absolute";
			    }
                obj.iframelayer = ifr;
            }
		}
		if(obj.iframelayer) {
		    obj.iframelayer.style.visibility="hidden";
            ifrlayer.resize(obj);
            ifrlayer.move(obj)
        }
	},
	hide:function(obj) {
		if(!obj) return; obj = typeof(obj)=="string" ? document.getElementById(obj) : obj; if (!obj) return;
		var ifr = obj.iframelayer;
		if(ifr) {
			ifr.style.visibility="hidden";
		}
	},
	move:function(obj) {
		if(obj && obj.iframelayer) {
		    with(obj.iframelayer.style) {
			    top = obj.offsetTop+"px";
			    left = obj.offsetLeft+"px"
		    }
		}
	},
	resize:function(obj) {
	    if(obj && obj.iframelayer) {
	        with(obj.iframelayer.style) {
	            width =  obj.offsetWidth+"px";
		        height =  obj.offsetHeight+"px";
		    }
		}
	}
}
function initpage(did) {
	navDiaporama.init(did);
}


