
var Zoom = {
    obj : null,
    init : function(img, bimg) {
	img.onmouseover = null;
	if(img.parentNode.getElementsByTagName('DIV').length < 1) {
	    var imgdiv = document.createElement('DIV');
	    imgdiv.style.position = 'absolute';
	    imgdiv.style.width = img.offsetWidth+'px';
	    imgdiv.style.height = img.offsetHeight+'px';
	    imgdiv.style.top = 0+'px';
	    imgdiv.style.left = 0+'px';
	    imgdiv.style.border = '0';
	    img.parentNode.appendChild(imgdiv);
	} else imgdiv = img.parentNode.getElementsByTagName('DIV')[0];
	imgdiv.style.background = 'url(./images/trans.gif)';
	    
        var o = Zoom.obj = imgdiv;  
	o.img=img;
	o.top = imgdiv.parentNode.offsetTop;
        o.zdiv = document.getElementById('zoom');
	o.zdeco = o.zdiv.getElementsByTagName('SPAN')[0];
	
        // Chargement de l'image zoom
        if(o.zdiv.getElementsByTagName('IMG').length>0) o.zdiv.removeChild(o.zdiv.getElementsByTagName('IMG')[0]);
        o.zimg = window.parent.document.createElement('IMG');
        o.zdiv.appendChild(o.zimg);	
	o.zdiv.style.width = o.zdiv.parentNode.offsetWidth+'px';
        o.zdiv.style.visibility = 'hidden';
        o.zimg.style.visibility = 'hidden';
	o.zdeco.style.visibility = 'hidden';
	o.zmx = Math.round(o.zdiv.offsetWidth/2);
	o.zmy = Math.round(o.zdiv.offsetHeight/2);
	o.onmouseout=Zoom.kill;
        o.zimg.onload = function() {
	    if(!Zoom.obj || Zoom.obj == null) { return; }
            var o = Zoom.obj;
            o.xcoef = this.offsetWidth/o.img.offsetWidth;
            o.ycoef = this.offsetHeight/o.img.offsetHeight;
	    o.ppos = Zoom.pagePos();
	    //o.ppos.y -= parseInt(document.getElementById('cdrright').getElementsByTagName('DIV')[0].style.top)
	    //o.ppos.x -= document.getElementById('gglobal').offsetLeft;
	    o.onmousedown = Zoom.start;
            
        };  o.zimg.setAttribute('src',bimg);//'http://www.hype-down.com/'+unescape(bimg);
    },

    start : function(e) {	
	var o = Zoom.obj = this;
        e = Zoom.setE(e);
	var ex = e.clientX;
	var ey = e.clientY;

	o.onmouseout = null;

	//On redimentionne et on positionne le pad
        o.w = 60;
        //o.h = o.w * this.offsetHeight / this.offsetWidth;
        o.h = o.w * o.zdiv.offsetHeight / o.zdiv.offsetWidth;
        o.style.width = o.w+'px';
        o.style.height = o.h+'px';

	//On determine les coordonnes de l'image par rapport  la fenetre;
	//var ppos = Zoom.pagePos();
	o.minMouseX = o.img.parentNode.offsetLeft + document.getElementById('cdrright').offsetLeft + document.getElementById('gglobal').offsetLeft - o.ppos.x;
        o.maxMouseX = o.minMouseX + o.img.offsetWidth - o.offsetWidth;
        o.minMouseY = document.getElementById('cdrright').getElementsByTagName('DIV')[0].offsetTop + document.getElementById('colorimgs').offsetTop + document.getElementById('global').offsetTop - o.ppos.y;
        o.maxMouseY = o.minMouseY + o.img.offsetHeight - o.offsetHeight;
	
	o.minX = 0;
	o.minY = 0;
	o.maxX = o.img.offsetWidth - o.w;
	o.maxY = o.img.offsetHeight - o.h;
	
	var ox = parseInt(ex - o.minMouseX - o.w/2);
	var oy = parseInt(ey - o.minMouseY - o.h/2);
	ox = Math.max(ox, o.minX);
	ox = Math.min(ox, o.maxX);
	oy = Math.max(oy, o.minY);
	oy = Math.min(oy, o.maxY);
	
	o.style.border = 'solid black 1px';
	o.style.left = ox+'px';
	o.style.top = oy+'px';
	
	o.difx = ex - ox;
	o.dify = ey - oy;
	
	o.zdeco.style.visibility = 'visible';
        o.zimg.style.visibility = 'visible';
	o.zdiv.style.visibility = 'visible';
	o.zimg.style.left = Math.round(-o.xcoef*(ox+o.w/2))+o.zmx+'px';
        o.zimg.style.top = Math.round(-o.ycoef*(oy+o.h/2))+o.zmy+'px';
	
	document.onmousemove = Zoom.move;
	document.onmouseup =  Zoom.kill;
    },
    
    move : function(e) {
        var o = Zoom.obj;
        e = Zoom.setE(e);
	
	var ex = e.clientX;
	var ey = e.clientY;
	
	var ox = parseInt(ex - o.difx);
	var oy = parseInt(ey - o.dify);
	ox = Math.max(ox, o.minX);
	ox = Math.min(ox, o.maxX);
	oy = Math.max(oy, o.minY);
	oy = Math.min(oy, o.maxY);
	
	o.style.left = ox+'px';
	o.style.top = oy+'px';
	
	o.zimg.style.left = Math.round(-o.xcoef*(ox+o.w/2))+o.zmx+'px';
        o.zimg.style.top = Math.round(-o.ycoef*(oy+o.h/2))+o.zmy+'px';
	
    },
    
    kill : function() {
        var o = Zoom.obj;
	o.img.onmouseover = function() { Zoom.init(this, 'images/art/'+this.getAttribute('id')); };
        document.onmousemove = null;
        document.onmouseup = null;
        if(o.zdiv.getElementsByTagName('IMG').length>0) o.zdiv.removeChild(o.zdiv.getElementsByTagName('IMG')[0]);
	o.zdiv.style.visibility = 'hidden';
	o.zdeco.style.visibility = 'hidden';
	o.parentNode.removeChild(o);
        o = Zoom.obj = null;
    },
    
    pagePos:function() {
	//returne la distance X & Y
	var scrOfX = 0, scrOfY = 0;
	
	if( window.pageYOffset && typeof( window.pageYOffset ) == 'number' ) {
	  //Netscape compliant
	  scrOfY = window.pageYOffset;
	  scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
	  //DOM compliant
	  scrOfY = document.body.scrollTop;
	  scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
	  //IE6 standards compliant mode
	  scrOfY = document.documentElement.scrollTop;
	  scrOfX = document.documentElement.scrollLeft;
	}
	return {x:scrOfX, y:scrOfY};

    },
    setE : function(e) {
        if (typeof e == 'undefined') e = window.event;
    	if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
    	if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
    	return e;
    }
}

function changeImg(img, fname) {//appelle depuis le click sur une vignette
  idi = img.name.substr(img.name.lastIndexOf('_'));
  var mimg=document.getElementById('colorimg'+idi).getElementsByTagName('img')[0];
  //var mimg=img.parentNode.parentNode.parentNode.parentNode.parentNode.getElementsByTagName('img')[0];
  mimg.setAttribute('src',img.src);
  tmp = unescape(img.src);
  var p0 = tmp.lastIndexOf('images/art/');// + 11;
  var p1 = tmp.lastIndexOf('&size=');
  var fn = tmp.substring(p0, p1);
  mimg.setAttribute('id',fname);
  //parent.debug(mimg.id+' <> '+fname);
  mimg.onmouseover=function() {
    Zoom.init(this,'images/art/'+mimg.id);
  }
}
