    var agt=navigator.userAgent.toLowerCase();
    var is_opera = (agt.indexOf("opera") != -1);
    var is_mac = (agt.indexOf("mac")!=-1);
    var is_konq = (agt.indexOf('konqueror') != -1);
    var is_safari = ((agt.indexOf('safari')!=-1)
		&&(agt.indexOf('mac')!=-1))?true:false;
    var is_khtml  = (is_safari || is_konq)
    var is_gecko = ((!is_khtml)&&(navigator.product)
		&&(navigator.product.toLowerCase()=="gecko"))?true:false;
function escapeQuotesHTML(text) {
var re=new RegExp('&',"g");
text=text.replace(re,"&amp;");
var re=new RegExp('"',"g");
text=text.replace(re,"&quot;");
var re=new RegExp('<',"g");
text=text.replace(re,"&lt;");
var re=new RegExp('>',"g");
text=text.replace(re,"&gt;");
return text;
}

function escapeQuotes(text) {
var re=new RegExp("'","g");
text=text.replace(re,"\\'");
re=new RegExp("\\n","g");
text=text.replace(re,"\\n");
return escapeQuotesHTML(text);
}
function insertTags(tagOpen, tagClose, sampleText) {

var txtarea = document.forms[1].notes;
if(txtarea==null) txtarea = document.forms[1].Text;
// IE
if(document.selection && !is_gecko) {
var theSelection = document.selection.createRange().text;
if(!theSelection) { theSelection=sampleText;}
txtarea.focus();
if(theSelection.charAt(theSelection.length - 1) == " "){// exclude ending space char, if any
theSelection = theSelection.substring(0, theSelection.length - 1);
document.selection.createRange().text = tagOpen + theSelection + tagClose + " ";
} else {
document.selection.createRange().text = tagOpen + theSelection + tagClose;
}

// Mozilla
} else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
var replaced = false;
var startPos = txtarea.selectionStart;
var endPos = txtarea.selectionEnd;
if(endPos-startPos) replaced=true;
var scrollTop=txtarea.scrollTop;
var myText = (txtarea.value).substring(startPos, endPos);
if(!myText) { myText=sampleText;}
if(myText.charAt(myText.length - 1) == " "){ // exclude ending space char, if any
subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " ";
} else {
subst = tagOpen + myText + tagClose;
}
txtarea.value = txtarea.value.substring(0, startPos) + subst +
txtarea.value.substring(endPos, txtarea.value.length);
txtarea.focus();
//set new selection
if(replaced){
var cPos=startPos+(tagOpen.length+myText.length+tagClose.length);
txtarea.selectionStart=cPos;
txtarea.selectionEnd=cPos;
}else{
txtarea.selectionStart=startPos+tagOpen.length;
txtarea.selectionEnd=startPos+tagOpen.length+myText.length;
}
txtarea.scrollTop=scrollTop;

}
if (txtarea.createTextRange) txtarea.caretPos = document.selection.createRange().duplicate();
}

function addButton(imageFile, speedTip, tagOpen, tagClose, sampleText) {
	// Don't generate buttons for browsers which don't fully
	// support it.
	if (!document.selection && !is_gecko) {
		return false;
	}
	imageFile = escapeQuotesHTML(imageFile);
	speedTip = escapeQuotesHTML(speedTip);
	tagOpen = escapeQuotes(tagOpen);
	tagClose = escapeQuotes(tagClose);
	sampleText = escapeQuotes(sampleText);
	var mouseOver = "";

	document.write("<a href=\"javascript:insertTags");
	document.write("('"+tagOpen+"','"+tagClose+"','"+sampleText+"');\">");
	document.write("<img width=\"23\" height=\"22\" src=\""+imageFile+"\" border=\"0\" alt=\""+speedTip+"\" title=\""+speedTip+"\""+mouseOver+">");
	document.write("</a>");
	return;
}


function setTocToggle() {
  var cookiePos = document.cookie.indexOf("hidetoc=");
  if (cookiePos > -1 && document.cookie.charAt(cookiePos + 8) == 1)
    toggleToc();
}
function toggleToc() {
  var toc = document.getElementById('tocinside');
  var showlink = document.getElementById('showlink');
  var hidelink = document.getElementById('hidelink');
  if (toc.style.display == 'none') {
    toc.style.display = tocWas;
    hidelink.style.display='';
    showlink.style.display='none';
    document.cookie = "hidetoc=0";
  }
  else {
    tocWas = toc.style.display;
    toc.style.display = 'none';
    hidelink.style.display='none';
    showlink.style.display='';
    document.cookie = "hidetoc=1";
  }
}

function setDead()
{
  document.forms[0].death.value = "Death";
}


function WorkOnBrowser() {
    if (navigator.appVersion.substring(0,3) >= 3.0 &&
        navigator.appName == 'Netscape' ||
        navigator.appVersion.substring(0,3) >= 4.0 &&
        navigator.appName.substring(0,9) == 'Microsoft') return true;
    else return false;
}

function show_roll_menu(obj){
	obj.className= "bg_color_menu";
}

function hide_roll_menu(obj){
	obj.className='';
}

function OpenPopUp(MyFile,MyWindow,MyWidth,MyHeight)
        {
        var ns4 = (document.layers)? true:false;         //NS 4
        var ie4 = (document.all)? true:false;            //IE 4
        var dom = (document.getElementById)? true:false; //DOM
        var xMax, yMax, xOffset, yOffset;

        if (ie4 || dom)
                {
                xMax = screen.width;
                yMax = screen.height;
                }
        else if (ns4)
                {
                xMax = window.outerWidth;
                yMax = window.outerHeight;
                }
        else
                {
                xMax = 800;
                yMax = 600;
                }
        xOffset = (xMax - MyWidth)/2;
        yOffset = (yMax - MyHeight)/2;
        window.open(MyFile,MyWindow,'width='+MyWidth
+',height='+MyHeight
+',screenX='+xOffset
+',screenY='+yOffset
+',top='+yOffset
+',left='+xOffset
+',scrollbars=yes,resizable=yes');
}

function generateTableau(nbCol, nbRow, align, width, entete)
{
        var code = "\n";

        code += '<table';
	if(align != "")
		code +=' align="' + align + '"';
	if(width != "")
               code +=' width="' + width + '"';
	code +=' class="tabwiki">\n';
	
	if(entete){
		code += '<tr>\n';
	        for (var i=1;i<nbCol+1;i++) code += '<th> title ' + i + ' </th>\n';
	        code += '</tr>\n';
	}

        var items = 0;
        for (var j=0;j<nbRow;j++) {
                code += '<tr>\n'

                for (var i=0;i<nbCol;i++) code += '<td> Col '+ (i+1) +', Element ' + (j+1) + ' </td>\n';
        }

        code += '</tr>\n';
        code += '</table>\n';
        insertTags('','', code);
}

function getElementsBy(tag,attr,val)
{
        var tabOut = [];
        var elements = document.body.getElementsByTagName(tag);
        for (i = 0; i < elements.length; i++) {
                if (attr == 'class') {
                        if (elements[i].className == val) {
                                tabOut.push(elements[i]);
                        }
                }
                else {
                        if (elements[i].getAttribute(attr) == val) {
                                tabOut.push(elements[i]);
                        }
                }
        }
        return tabOut ;
}

/* class pour la gestion des infobulles */
var gestionInfoBulle =
{
        gk : '',
        D  : '',
        init : function(theme)
        {
                gk = window.Event?1:0;/* navigateurs Gecko ou IE*/
//		gk = event?0:1; 
                D  = document ;/* alias */
                elts = getElementsBy('span','class','help') ;
                for(i=0;i<elts.length;i++)
                {
                        elts[i].onmouseover =  gestionInfoBulle.showHelp ;
                        elts[i].onmouseout  =  gestionInfoBulle.hideHelp ;
                        //elts[i].firstChild.alt = '' ;
                        //elts[i].onclick  =  function() { return false ;} ;// on inhibe le lien

                        // création de la popup associée
                        pop_aide = D.getElementById(elts[i].id.substring(elts[i].id.lastIndexOf('-') + 1)) ;
			if(pop_aide == null) return;
                        pop_aide.style.display='none' ;
			if(pop_aide.firstChild.className != "bulle" || pop_aide.firstChild.tagName != "IMG"){
                        img = D.createElement('img') ;
                        img.src='http://images.geneanet.org/v3/pictos_geneweb/'+theme+'/phyl2.gif' ;
                        img.className='bulle' ;
                        pop_aide.insertBefore(img,pop_aide.firstChild) ;
			}
                }
        },

        mCoord : function(e)
        {
		gk = e?1:0;
                de=D.getElementsByTagName('body')[0] ; // IE6
                sx=gk?de.pageXOffset:de.scrollLeft; //scroll h
                sy=gk?de.pageYOffset:de.scrollTop; //scroll v
                coord = {
                        x : gk?e.pageX:event.clientX+sx,//curseur x ;
                        y : gk?e.pageY:event.clientY+sy//curseur y
                }
                return coord ;
        },


        hideHelp : function(e) { gestionInfoBulle.showHide(e,false) ; },
        showHelp : function(e) { gestionInfoBulle.showHide(e,true) ; },
        showHide : function(e,show)
        {
		gk = e?1:0;
                el=gk?e.target:event.srcElement;
                if(el.tagName!='SPAN')el=el.parentNode;
                if(el.className == 'help')
                {
			var id = el.id;
                        popupElt = D.getElementById(el.id.substring(el.id.lastIndexOf('-') + 1)) ;
			if(popupElt == null) return;
                        popup = popupElt.style;
                        if(show)
                        {
                                coords = gestionInfoBulle.mCoord(e) ;
                                popupElt.className='pop' ;
                                /*
                               if(popupElt.firstChild.className != 'bulle')
                               {
                                       img = D.createElement('img') ;
                                       img.src='http://images.geneanet.org/v3/pictos_contact/phyl.gif' ;
                                       img.className='bulle' ;
                                       popupElt.insertBefore(img,popupElt.firstChild) ;
                               }
                                */
                               with(popup){ display="block";left=coords.x+'px';top=coords.y+15+'px'; }
                       } else  popup.display='none' ;
               }
        }
}// fin
