
var etatImages = new Array();

function showDetailPopup(id, image, title){

	var e = document.getElementById(id);
	
	title = decodeURIComponent(title);
	title = title.split('+').join(' ');
	
	if(etatImages[id] == null) {
		etatImages[id] = isThere(image);
	}

	// si l'image est accessible, on utilise l'image elle même,
	// sinon on met l'image générique
	// --------------------------------------------------------
	if(!etatImages[id]) {
		var slashIndex = image.lastIndexOf('/');
		if(slashIndex != -1) {
			image = image.substring(0, slashIndex) + '/generique.jpg';
		}
	}
	
	document.getElementById("tooltipImg").src = image;
	document.getElementById("tooltipTitle").innerHTML = title;
	var topvalue = e.offsetTop - 28 + "px";

	document.getElementById("detailpopup").style.top = topvalue;
	var leftvalue = e.offsetLeft - 128 + "px";
	document.getElementById("detailpopup").style.left = leftvalue;
	document.getElementById("detailpopup").style.visibility = 'visible';
} 

function hideDetailPopup(){
	document.getElementById("tooltipTitle").innerHTML = '';
	document.getElementById("tooltipImg").src = null;
	document.getElementById("detailpopup").style.visibility = 'hidden';
}

function isThere(url) {
	var req= new AJ();
	try {
		req.open("HEAD", url, false);
		req.send(null);		
		return req.status== 200 ? true : false;
	}
	catch (er) {
		return false;
	}
}

function AJ() {
	var obj;
	if (window.XMLHttpRequest) obj= new XMLHttpRequest(); 
	else if (window.ActiveXObject){
		try{
			obj= new ActiveXObject('MSXML2.XMLHTTP.3.0');
		}
		catch(er){
			try{
				obj= new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(er){
				obj= false;
			}
		}
	}
	return obj;
}

function showListToolTip(id, relativeId){
    var e = document.getElementById(id);
    e.mouseIsOver = true;
    setTimeout( function(){showListToolTip_(id, relativeId)}, 500 );
}

function showListToolTip_(id, relativeId){
	var e = document.getElementById(id);
    if(e.mouseIsOver){
        var rel = document.getElementById(relativeId);
        if(!e || !rel) return;
        var relPos = getToolTipRelativePosition(rel, e, 265, -60);
        e.style.left = relPos.x + 'px';
        e.style.top = relPos.y + 'px';
        e.className = 'listTooltip_' + relPos.pos;
        e.style.visibility = 'visible';
        setTimeout( function(){hideListToolTip_(id)}, 5000);
    }
}

function getToolTipRelativePosition(objRel, objThe, offsetX, offsetY){
    var posRel = PositionUtils.getObjectPosition(objRel);
    var posAbs = PositionUtils.getObjectPosition(objRel,true);
    var sizeVP = PositionUtils.getViewportSize();
    var posScroll = getScrollingPosition();
    var x=0,y=0,pos="";
    if (posAbs.x - posScroll[0] < offsetX) {
        // move to right
        x = posRel.x - objRel.offsetWidth + offsetX + 10;
        pos+="l";
    } else {
        x = posRel.x - offsetX;
        pos+="r";
    }
    if ((posAbs.y + objRel.offsetHeight + offsetY + objThe.offsetHeight) > (posScroll[1] + sizeVP[1])) {
        // move to top
        y = posRel.y - objThe.offsetHeight - offsetY;
        pos+="b"
    } else {
        y = posRel.y + objRel.offsetHeight + offsetY;
        pos+="t";
    }
    return {x:x,y:y,pos:pos};
}

function hideListToolTip(id){
    var e = document.getElementById(id);
    e.mouseIsOver = false;
    setTimeout( function(){hideListToolTip_(id)}, 500 );
}

function hideListToolTip_(id){
    var e = document.getElementById(id);
    if(!e) return;
	e.style.visibility = 'hidden';
}

function showWishToolTip(id){
    var e = document.getElementById(id);
    if(!e) return;
    e.style.visibility = 'visible';
}

function hideWishToolTip(id){
    var e = document.getElementById(id);
    if(!e) return;
	e.style.visibility = 'hidden';
}

function getScrollingPosition() {
    var pos = [0,0];
    if (typeof window.pageYOffset != 'undefined') {
        pos = [window.pageXOffset, window.pageYOffset];
    } else
    if (typeof document.documentElement.scrollTop != 'undefined') {
        pos = [document.documentElement.scrollLeft, document.documentElement.scrollTop];
    } else
    if (typeof document.body.scrollTop != 'undefined') {
        pos = [document.body.scrollLeft, document.body.scrollTop];
    }
    return pos;
}
