// JavaScript Document
// navig violencequefaire.ch

function draw_navig(){
	var main = 0;
	var sub = 0;
	var subsub = 0;
	for(i=0;i<navig.length;i++){
		document.write('<div class="');
		if(navig[i][0] == 0){
			document.write('navig_0');
			main++;
			sub = 0;
			subsub = 0;
		} else if(navig[i][0] == 1) {
			document.write('navig_1');
			sub++;
			subsub = 0;
		} else {
			document.write('navig_2');
			subsub++;
		}
		document.write('" id="nav_'+main+'_'+sub+'_'+subsub+'"');
		if(navig[i][0] > 1){
			document.write(' style="padding-right:10px;"');
		}   
		document.write('>');
		document.write('<a id="navlink_'+main+'_'+sub+'_'+subsub+'" href="javascript:show('+main+','+sub+','+subsub+');"');
		navig_num[i] = main+'_'+sub+'_'+subsub;
		document.write('>');
		document.write(navig[i][1]+'</a>');
		document.write('</div>');
	}
}

function hide_all_sub(){
for(i=0;i<navig_num.length;i++){
val = navig_num[i].split("_");
if(val[0] != 0 && val[1] != 0){
hide_item(val[0],val[1],val[2]);
}
}
visible = '0_0_0';
}

function show(m,s,ss){
	// open URL
	if(open_url(m,s,ss) == 0){
		vis = visible.split("_");
		if(visible == '0_0_0'){
			show_sub(m,0,0);
			visible = m+'_0_0';
		} else if(ss == 0) {
			if(vis[0] != m){
				//## change sub
				hide_sub(vis[0],0,0);
				show_sub(m,0,0);
				visible = m+'_0_0';
			} else if(vis[0] == m && vis[1] == s){
				if(s == 0){
					//## hide sub & subsub and go to start view
					if(navigator.userAgent.indexOf("Safari") == -1){
						hide_sub(m,0,0);
						visible = '0_0_0';
					}
				} else {
					//## hide subsub
					if(navigator.userAgent.indexOf("Safari") == -1){
						hide_sub(m,vis[1],0);
						visible = m+'_0_0';
					}
				}
			} else if(vis[0] == m && vis[1] != s && s != 0){
				//## show subsub
				if(vis[1] != 0){
					hide_sub(m,vis[1],0);
				}
				show_sub(m,s,ss);
				visible = m+'_'+s+'_'+0;
			} else if(vis[0] == m && vis[1] != s && s == 0){
				//## hide sub [2]
					if(navigator.userAgent.indexOf("Safari") == -1){
					hide_sub(m,0,0);
					visible = '0_0_0';
				}
			}
		}
	}
}

function show_sub(m,s,ss){
if(m != 0){
// show
for(i=0;i<navig_num.length;i++){
val = navig_num[i].split("_");
if(s == 0 && ss == 0 && val[0] == m && val[2] == 0){
// show sub
show_item(val[0],val[1],val[2]);
} else if(ss == 0 && val[0] == m && val[1] == s){
show_item(val[0],val[1],val[2]);
}
}
}
}

function hide_sub(m,s,ss){
if(m != 0){
// hide
for(i=0;i<navig_num.length;i++){
val = navig_num[i].split("_");
if(s != 0 && ss == 0 && (val[0] == m && val[1] == s && val[2] != 0)){
// hide subsub
hide_item(val[0],val[1],val[2]);
} else if(s == 0 && ss == 0 && val[0] == m && val[1] != 0){
// hide sub
hide_item(val[0],val[1],val[2]);
}
}
}
}

function show_item(m,s,ss){
if(s != 0 || ss != 0) {
var elem = document.getElementById("nav_"+m+"_"+s+"_"+ss+"");
elem.style.display = "block";
}
}

function hide_item(m,s,ss){
if(s != 0 || ss != 0){
//alert(m+'_'+s+'_'+ss);
var elem = document.getElementById("nav_"+m+"_"+s+"_"+ss+"");
elem.style.display = "none";
}
}

function open_selected(m,s,ss){
if(m != 0){
if(s != 0){
show_sub(m,0,0);
}
show_sub(m,s,0);
visible = m+'_'+s+'_0';
selected_item(m,s,ss);
}
}

function open_selected_item(url){
  navig_r = navig.reverse();
  navig_num_r = navig_num.reverse();
  for(i=0;i<navig_r.length;i++){
    //alert("[test] "+navig_r[i][2]);
    if(navig_r[i][2].indexOf(url) != -1){
      level = navig_num_r[i].split("_");
      open_selected(level[0],level[1],level[2]);
      break;
    }
  }
}
/* use with:
<script language="JavaScript" type="text/JavaScript">
open_selected_item('<?= $_SERVER['PHP_SELF'];?>');
</script>
*/

function selected_item(m,s,ss){
var col = '#94BE22';

var elem = document.getElementById("navlink_"+m+"_"+s+"_"+ss+"");
elem.style.color = col;
elem.style.fontWeight = 'bold';
if(ss != 0){
elem = document.getElementById("navlink_"+m+"_"+s+"_0");
elem.style.color = col;
elem.style.fontWeight = 'bold';
}
if(s != 0){
elem = document.getElementById("navlink_"+m+"_0_0");
elem.style.color = col;
elem.style.fontWeight = 'bold';
}
}

function open_url(m,s,ss){
	var url = '#';
	for(i=0;i<navig_num.length;i++){
		val = navig_num[i].split("_");
		if(val[0] == m && val[1] == s && val[2] == ss){
			url = navig[i][2];
			break;
		}
	}
	if(url != '#'){
		if(typeof base_url != 'undefined'){
		// add base_url before link only if it's not a *tp:// link
			if(url.indexOf("tp://") == -1){
				url = base_url+url;
			}
		}
		if(navig[i][3] == '_blank'){
			window.open(url,'link_new_window','');
		} else if (navig[i][3] == '_parent'){
			eval("parent.location = '"+url+"'");
		} else {
			eval("window.location = '"+url+"'");
		}
		return 1;
	} else {
		return 0;
	}
}






/*
Author   : bieler batiste
Company  : doSimple : http://www.dosimple.ch
send me a mail for more informations : faden@PASDEPOURRIELaltern.org - remove ( PASDEPOURRIEL )

Short javascript function to create and handle a CSS navigation menu

Copyright (C) 2004  Bieler Batiste

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

// 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('menu'); // the root element
        var lis = menu.getElementsByTagName('li'); // all the li
        
        // change the class name of the menu, 
        // it's usefull for compatibility with old browser
        menu.className='menu';
        
        // 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
                addAnEvent(lis.item(i),'mouseover',show);
                addAnEvent(lis.item(i),'mouseout',timeoutHide);
                addAnEvent(lis.item(i),'blur',timeoutHide);
                addAnEvent(lis.item(i),'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';
}

// show the first ul element found under this element
function show()
{
    // show the sub menu
    this.getElementsByTagName('ul')[0].style['visibility'] = 'visible';
    var currentNode=this;
    while(currentNode)
    {
            if( currentNode.nodeName=='LI')
            {
                currentNode.getElementsByTagName('a')[0].className = 'linkOver';
            }
            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';
    }
} 


// browser detection
// 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();


