 var browserName = navigator.appName;
 var browserVer = parseInt(navigator.appVersion);
 var version = "";
 var msie4 = (browserName == "Microsoft Internet Explorer" && browserVer >= 4);
 if ((browserName == "Netscape" && browserVer >= 3) || msie4 || browserName=="Konqueror" || browserName=="Opera") {version = "n3";} else {version = "n2";}
 // Blurring links:
 function blurLink(theObject) { //
 if (msie4) {theObject.blur();}
 }

// Browser Detect Lite v2.1.4
// http://www.dithered.com/javascript/browser_detect/index.html
// modified by Chris Nott (chris@NOSPAMdithered.com - remove NOSPAM)


function BrowserDetectLite() {
 var ua = navigator.userAgent.toLowerCase();

 // browser name
 this.isGecko = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
 this.isMozilla = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
 this.isNS = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
 this.isIE = ( (ua.indexOf('msie') != -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) );
 this.isSafari = (ua.indexOf('safari') != - 1);
 this.isOpera = (ua.indexOf('opera') != -1);
 this.isKonqueror = (ua.indexOf('konqueror') != -1 && !this.isSafari);
 this.isIcab = (ua.indexOf('icab') != -1);
 this.isAol = (ua.indexOf('aol') != -1);

 // spoofing and compatible browsers
 this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE);
 this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);
 // browser version
 this.versionMinor = parseFloat(navigator.appVersion);

 // correct version number
 if (this.isNS && this.isGecko) {
 this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
 }
 else if (this.isIE && this.versionMinor >= 4) {
 this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
 }
 else if (this.isMozilla) {
 this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
 }
 else if (this.isSafari) {
 this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
 }
 else if (this.isOpera) {
 if (ua.indexOf('opera/') != -1) {
 this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera/') + 6 ) );
 }
 else {
 this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera ') + 6 ) );
 }
 }
 else if (this.isKonqueror) {
 this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
 }
 else if (this.isIcab) {
 if (ua.indexOf('icab/') != -1) {
 this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab/') + 6 ) );
 }
 else {
 this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab ') + 6 ) );
 }
 }

 this.versionMajor = parseInt(this.versionMinor);
 this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );

 // dom support
 this.isDOM1 = (document.getElementById);
 this.isDOM2Event = (document.addEventListener && document.removeEventListener);

 // css compatibility mode
 this.mode = document.compatMode ? document.compatMode : 'BackCompat';

 // platform
 this.isWin = (ua.indexOf('win') != -1);
 this.isWin32 = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
 this.isMac = (ua.indexOf('mac') != -1);
 this.isUnix = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
 this.isLinux = (ua.indexOf('linux') != -1);

 // specific browser shortcuts
this.isNS4x = (this.isNS && this.versionMajor == 4);
 this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
 this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
 this.isNS4up = (this.isNS && this.versionMinor >= 4);
 this.isNS6x = (this.isNS && this.versionMajor == 6);
 this.isNS6up = (this.isNS && this.versionMajor >= 6);
 this.isNS7x = (this.isNS && this.versionMajor == 7);
 this.isNS7up = (this.isNS && this.versionMajor >= 7);

 this.isIE4x = (this.isIE && this.versionMajor == 4);
 this.isIE4up = (this.isIE && this.versionMajor >= 4);
 this.isIE5x = (this.isIE && this.versionMajor == 5);
 this.isIE55 = (this.isIE && this.versionMinor == 5.5);
 this.isIE5up = (this.isIE && this.versionMajor >= 5);
 this.isIE6x = (this.isIE && this.versionMajor == 6);
 this.isIE6up = (this.isIE && this.versionMajor >= 6);

 this.isIE4xMac = (this.isIE4x && this.isMac);
}
var browser = new BrowserDetectLite();

/*
2Author : bieler batiste
3Company : doSimple : http://www.dosimple.ch
4send me a mail for more informations : faden@PASDEPOURRIELaltern.org - remove ( PASDEPOURRIEL )
5
6Short javascript function to create and handle a CSS navigation menu
7
8Copyright (C) 2004 Bieler Batiste
9
10This library is free software; you can redistribute it and/or
11modify it under the terms of the GNU Lesser General Public
12License as published by the Free Software Foundation; either
13version 2.1 of the License, or (at your option) any later version.
14
15This library is distributed in the hope that it will be useful,
16but WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18Lesser General Public License for more details.
19
20You should have received a copy of the GNU Lesser General Public
21License along with this library; if not, write to the Free Software
22Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23*/

// the timeout for the menu
var timeout = 1000;

// not very clean but simple
// the function can be run in the HTML for faster display
// window.onload=initMenu;
// creat timeout variables for list item
// it's for avoid some warning with IE
for( var i = 0; i < 100; i++ )
{
 eval("var timeoutli" + i + " = false;");
}

// this fonction apply the CSS style and the event
function initMenu()
{   
 // a test to avoid some browser like IE4, Opera 6, and IE Mac
 if ( browser.isDOM1
 && !( browser.isMac && browser.isIE )
 && !( browser.isOpera && browser.versionMajor < 7 )
 && !( browser.isIE && browser.versionMajor < 5 ) )
 {

 // get some element
 var menu = document.getElementById('foldoutmenu'); // the root element
 var lis = menu.getElementsByTagName('li'); // all the li
 var tempEventObj;
 // change the class name of the menu,
 // it's usefull for compatibility with old browser
 // menu.className='menu';


 //Hack! set height of #menu1 if menu is too big
 if (document.getElementById('menu1')) {
 var containerDiv=document.getElementById('menu1');
 if (menu.offsetHeight && containerDiv.offsetHeight) {
 if (menu.offsetHeight>containerDiv.offsetHeight) {
 containerDiv.style.height=menu.offsetHeight+"px";
 }
 }
 }

 // i am searching for ul element in li element
 for ( var i=0; i<lis.length; i++ )
 {
 // is there a ul element ?
 if ( lis.item(i).getElementsByTagName('ul').length > 0 )
 {
 // improve IE key navigation
 if ( browser.isIE )
 {
 addAnEvent(lis.item(i),'keyup',show);
 }
 // link events to list item
 tempEventObj=lis.item(i);
 //tempEventObj=lis.item(i).getElementsByTagName('a').item(0);
 addAnEvent(tempEventObj,'mouseover',show);
 addAnEvent(tempEventObj,'mouseout',timeoutHide);
 addAnEvent(tempEventObj,'blur',timeoutHide);
 addAnEvent(tempEventObj,'focus',show);

 // add an id to list item
 lis.item(i).setAttribute( 'id', "li"+i );
 }
 }
 }
}

function addAnEvent( target, eventName, functionName )
{
 // apply the method to IE
 if ( browser.isIE )
 {
 //attachEvent dont work properly with this
 eval('target.on'+eventName+'=functionName');
 }
 // apply the method to DOM compliant browsers
 else
 {
 target.addEventListener( eventName , functionName , true ); // true is important for Opera7
 }
}

// hide the first ul element of the current element
function timeoutHide()
{
 // start the timeout
 eval( "timeout" + this.id + " = window.setTimeout('hideUlUnder( \"" + this.id + "\" )', " + timeout + " );");
}

// hide the ul elements under the element identified by id
function hideUlUnder( id )
{
 document.getElementById(id).getElementsByTagName('ul')[0].style['visibility'] = 'hidden';
 //document.getElementById(id).getElementsByTagName('ul')[0].style['display'] = 'none';
}

// show the first ul element found under this element
function show()
{
 // show the sub menu
 this.getElementsByTagName('ul')[0].style['visibility'] = 'visible';
 //this.getElementsByTagName('ul')[0].style['display'] = '';
 var currentNode=this;
 while(currentNode)
 {
 if( currentNode.nodeName=='LI')
 {
 currentNode.getElementsByTagName('a')[0].className = 'linkOver';
 currentSubNode = currentNode.getElementsByTagName('ul')[0];
 var i = currentNode.getElementsByTagName('ul')[0].getElementsByTagName('li').length;

 }
 currentNode=currentNode.parentNode;
 }

 // clear the timeout
 eval ( "clearTimeout( timeout"+ this.id +");" );
 hideAllOthersUls( this );
}

// hide all ul on the same level of this list item
function hideAllOthersUls( currentLi )
{
 var lis = currentLi.parentNode;
 for ( var i=0; i<lis.childNodes.length; i++ )
 {
 if ( lis.childNodes[i].nodeName=='LI' && lis.childNodes[i].id != currentLi.id )
 {
 hideUlUnderLi( lis.childNodes[i] );
 }
 }
}

// hide all the ul wich are in the li element
function hideUlUnderLi( li )
{
 var as = li.getElementsByTagName('a');
 for ( var i=0; i<as.length; i++ )
 {
 as.item(i).className="";
 }
 var uls = li.getElementsByTagName('ul');
 for ( var i=0; i<uls.length; i++ )
 {
 uls.item(i).style['visibility'] = 'hidden';
// uls.item(i).style['display'] = 'none';
 }
}

