﻿// This code is from Dynamic Web Coding www.dyn-web.com 
// Copyright 2002 by Sharon Paine Permission granted to use this code as long as this entire notice is included.
// Courtesy of SimplytheBest.net - http://simplythebest.net/scripts/


//Transformed by L.Michel - ISCA on March 2009 in order to accept many different images for different articles
//and to be able to use scrolling on IE6 and FF3
//Require prototype 1.6
//Please keep those lines

var dom = (document.getElementById) ? true : false;
var ns5 = ((navigator.userAgent.indexOf("Gecko") > -1) && dom) ? true : false;
var ie5 = ((navigator.userAgent.indexOf("MSIE") > -1) && dom) ? true : false;
var ns4 = (document.layers && !dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ns4 && !ie4 && !ie5) ? true : false;

var origWidth, origHeight;
if (ns4) {
    origWidth = window.innerWidth; origHeight = window.innerHeight;
    window.onresize = function() { if (window.innerWidth != origWidth || window.innerHeight != origHeight) history.go(0); }
}

if (nodyn) { event = "nope" }
var tipFollowMouse = true;
var tipWidth = 80;
var offX = 60; // how far from mouse to show tip
var offY = 0;
var tipFontFamily = "Verdana, arial, helvetica, sans-serif";
var tipFontSize = "8pt";
var tipFontColor = "#000000";
var tipBgColor = "#DDECFF";
var origBgColor = tipBgColor; // in case no bgColor set in array
var tipBorderColor = "#000080";
var tipBorderWidth = 0;
var tipBorderStyle = "none";
var tipPadding = 1;
var articleHash = new Hash();
var messages = new Array();

if (document.images) {
    var theImgs = new Array();
    for (var i = 0; i < messages.length; i++) {
        theImgs[i] = new Image();
        theImgs[i].src = messages[i][0];
    }
}

var startStr = '<table width="' + tipWidth + '"><tr><td align="left" width="100%"><img src="';
var midStr = '" border="0" style="max-width:350px;max-height:400px;border-width:2px;border-style:solid;border-color:#CCC"></td></tr><tr><td valign="top">';
var endStr = '</td></tr></table>';

var tooltip, tipcss;
function initTip() {
    var test = new Hash();
    /*
    var test=new Array();
    test['salade'] = 'salade';
    test['coucou'] = 'coucou';
        
    alert(test['salade']);
    */
    test.set('key1', 'salade');
    test.set('key2', 'coucou');
    test.set('key3', 'bidule');
    //test.each(function(pair) { alert(pair.key + ' : ' + pair.value) });
    
    
    if (nodyn) return;
    tooltip = (ns4) ? document.tipDiv.document : (ie4) ? document.all['tipDiv'] : (ie5 || ns5) ? document.getElementById('tipDiv') : null;
    tipcss = (ns4) ? document.tipDiv : tooltip.style;
    if (ie4 || ie5 || ns5) {	// ns4 would lose all this on rewrites
        tipcss.width = tipWidth + "px";
        tipcss.fontFamily = tipFontFamily;
        tipcss.fontSize = tipFontSize;
        tipcss.color = tipFontColor;
        tipcss.backgroundColor = tipBgColor;
        tipcss.borderColor = tipBorderColor;
        tipcss.borderWidth = tipBorderWidth + "px";
        tipcss.padding = tipPadding + "px";
        tipcss.borderStyle = tipBorderStyle;
    }
    if (tooltip && tipFollowMouse) {
        if (ns4) document.captureEvents(Event.MOUSEMOVE);
        document.onmousemove = trackMouse;
    }
}


var t1, t2; // for setTimeouts
var tipOn = false; // check if over tooltip link
function doTooltipOriginal(evt, num) {

    if (!tooltip) return;
    if (t1) clearTimeout(t1); if (t2) clearTimeout(t2);
    tipOn = true;
    // set colors if included in messages array
    if (messages[num][2]) var curBgColor = messages[num][2];
    else curBgColor = tipBgColor;
    if (messages[num][3]) var curFontColor = messages[num][3];
    else curFontColor = tipFontColor;
    if (ns4) {
        var tip = '<table bgcolor="' + tipBorderColor + '" width="' + tipWidth + '" cellspacing="0" cellpadding="' + tipBorderWidth + '" border="0"><tr><td><table bgcolor="' + curBgColor + '" width="100%" cellspacing="0" cellpadding="' + tipPadding + '" border="0"><tr><td>' + startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr + '</td></tr></table></td></tr></table>';
        tooltip.write(tip);
        tooltip.close();
    } else if (ie4 || ie5 || ns5) {
        var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
        tipcss.backgroundColor = curBgColor;
        tooltip.innerHTML = tip;
    }
    if (!tipFollowMouse) positionTip(evt);
    else t1 = setTimeout("tipcss.visibility='visible'", 100);
}

function doTooltip(evt, num, obj) {

    if (!tooltip) return;
    if (t1) clearTimeout(t1); if (t2) clearTimeout(t2);
    tipOn = true;
    
    messages=articleHash.get(obj.attributes['articleId'].nodeValue);
    // set colors if included in messages array
    if (messages[num][2]) var curBgColor = messages[num][2];
    else curBgColor = tipBgColor;
    if (messages[num][3]) var curFontColor = messages[num][3];
    else curFontColor = tipFontColor;
    if (ns4) {
        var tip = '<table bgcolor="' + tipBorderColor + '" width="' + tipWidth + '" cellspacing="0" cellpadding="' + tipBorderWidth + '" border="0"><tr><td><table bgcolor="' + curBgColor + '" width="100%" cellspacing="0" cellpadding="' + tipPadding + '" border="0"><tr><td>' + startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr + '</td></tr></table></td></tr></table>';
        tooltip.write(tip);
        tooltip.close();
    } else if (ie4 || ie5 || ns5) {
        var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
        tipcss.backgroundColor = curBgColor;
        tooltip.innerHTML = tip;
    }
    if (!tipFollowMouse) positionTip(evt);
    else t1 = setTimeout("tipcss.visibility='visible'", 100);
}

var mouseX, mouseY;
function trackMouse(evt) {
    mouseX = (ns4 || ns5) ? evt.pageX : window.event.clientX + document.body.scrollLeft;
    mouseY = (ns4 || ns5) ? evt.pageY : window.event.clientY + document.body.scrollTop;
    if (window.event) {
        mouseY = window.event.clientY + document.viewport.getScrollOffsets().top;
        mouseX = window.event.clientX + document.viewport.getScrollOffsets().left;

    }
    else {
        mouseY = evt.clientY + document.viewport.getScrollOffsets().top;
        mouseX = evt.clientX + document.viewport.getScrollOffsets().left;
    }
    //window.document.title = mouseY;
    if (tipOn) positionTip(evt);
}

function positionTip(evt) {
    if (!tipFollowMouse) {
        mouseX = (ns4 || ns5) ? evt.pageX : window.event.clientX + document.body.scrollLeft;
        mouseY = (ns4 || ns5) ? evt.pageY : window.event.clientY + document.body.scrollTop;
        //alert('!tipFollowMouse');
    }
    // tooltip width and height
    var tpWd = (ns4) ? tooltip.width : (ie4 || ie5) ? tooltip.clientWidth : tooltip.offsetWidth;
    var tpHt = (ns4) ? tooltip.height : (ie4 || ie5) ? tooltip.clientHeight : tooltip.offsetHeight;
    //alert('tpHt : ' + tpHt);
    // document area in view (subtract scrollbar width for ns)
    var winWd = (ns4 || ns5) ? window.innerWidth - 20 + window.pageXOffset : document.body.clientWidth + document.body.scrollLeft;
    var winHt = (ns4 || ns5) ? window.innerHeight - 20 + window.pageYOffset : document.body.clientHeight + document.body.scrollTop;
    winHt = document.viewport.getScrollOffsets().top + document.viewport.getHeight();
    winWd = document.viewport.getScrollOffsets().left + document.viewport.getWidth();
    //window.document.title = winHt ;
    // check mouse position against tip and window dimensions
    // and position the tooltip
    /*
    alert(document.viewport.getScrollOffsets());*/
    
    if ((mouseX + offX + tpWd) > winWd) tipcss.left = (ns4) ? mouseX - (tpWd + offX) : mouseX - (tpWd + offX) + "px";
    else tipcss.left = (ns4) ? mouseX + offX : mouseX + offX + "px";

    if ((mouseY + offY + tpHt) > winHt) {
        tipcss.top = (ns4) ? winHt - (tpHt + offY) : winHt - (tpHt + offY) + "px";
        //alert('3');
        //window.status = '3';
    }
    else {
        tipcss.top = (ns4) ? mouseY + offY : mouseY + offY + "px";
        //alert('2');
        //window.status = '2';
    }
    if (!tipFollowMouse) {
        //alert('4');
        t1 = setTimeout("tipcss.visibility='visible'", 100);
     }
}

function hideTip() {
    if (!tooltip) return;
    t2 = setTimeout("tipcss.visibility='hidden'", 100);
    tipOn = false;
}