/**
 * Throughout, whitespace is defined as one of the characters
 *  "\t" TAB \u0009
 *  "\n" LF  \u000A
 *  "\r" CR  \u000D
 *  " "  SPC \u0020
 *
 * This does not use Javascript's "\s" because that includes non-breaking
 * spaces (and also some other characters).
 */


/**
 * Determine whether a node's text content is entirely whitespace.
 *
 * @param nod  A node implementing the |CharacterData| interface (i.e.,
 *             a |Text|, |Comment|, or |CDATASection| node
 * @return     True if all of the text content of |nod| is whitespace,
 *             otherwise false.
 */
function is_all_ws( nod )
{
  // Use ECMA-262 Edition 3 String and RegExp features
  return !(/[^\t\n\r ]/.test(nod.data));
}


/**
 * Determine if a node should be ignored by the iterator functions.
 *
 * @param nod  An object implementing the DOM1 |Node| interface.
 * @return     true if the node is:
 *                1) A |Text| node that is all whitespace
 *                2) A |Comment| node
 *             and otherwise false.
 */

function is_ignorable( nod )
{
  return ( nod.nodeType == 8) || // A comment node
         ( (nod.nodeType == 3) && is_all_ws(nod) ); // a text node, all ws
}

/**
 * Version of |previousSibling| that skips nodes that are entirely
 * whitespace or comments.  (Normally |previousSibling| is a property
 * of all DOM nodes that gives the sibling node, the node that is
 * a child of the same parent, that occurs immediately before the
 * reference node.)
 *
 * @param sib  The reference node.
 * @return     Either:
 *               1) The closest previous sibling to |sib| that is not
 *                  ignorable according to |is_ignorable|, or
 *               2) null if no such node exists.
 */
function node_before( sib )
{
  while ((sib = sib.previousSibling)) {
    if (!is_ignorable(sib)) return sib;
  }
  return null;
}

/**
 * Version of |nextSibling| that skips nodes that are entirely
 * whitespace or comments.
 *
 * @param sib  The reference node.
 * @return     Either:
 *               1) The closest next sibling to |sib| that is not
 *                  ignorable according to |is_ignorable|, or
 *               2) null if no such node exists.
 */
function node_after( sib )
{
  while ((sib = sib.nextSibling)) {
    if (!is_ignorable(sib)) return sib;
  }
  return null;
}

/**
 * Version of |lastChild| that skips nodes that are entirely
 * whitespace or comments.  (Normally |lastChild| is a property
 * of all DOM nodes that gives the last of the nodes contained
 * directly in the reference node.)
 *
 * @param sib  The reference node.
 * @return     Either:
 *               1) The last child of |sib| that is not
 *                  ignorable according to |is_ignorable|, or
 *               2) null if no such node exists.
 */
function last_child( par )
{
  var res=par.lastChild;
  while (res) {
    if (!is_ignorable(res)) return res;
    res = res.previousSibling;
  }
  return null;
}

/**
 * Version of |firstChild| that skips nodes that are entirely
 * whitespace and comments.
 *
 * @param sib  The reference node.
 * @return     Either:
 *               1) The first child of |sib| that is not
 *                  ignorable according to |is_ignorable|, or
 *               2) null if no such node exists.
 */
function first_child( par )
{
  var res=par.firstChild;
  while (res) {
    if (!is_ignorable(res)) return res;
    res = res.nextSibling;
  }
  return null;
}

/**
 * Version of |data| that doesn't include whitespace at the beginning
 * and end and normalizes all whitespace to a single space.  (Normally
 * |data| is a property of text nodes that gives the text of the node.)
 *
 * @param txt  The text node whose data should be returned
 * @return     A string giving the contents of the text node with
 *             whitespace collapsed.
 */
function data_of( txt )
{
  var data = txt.data;
  // Use ECMA-262 Edition 3 String and RegExp features
  data = data.replace(/[\t\n\r ]+/g, " ");
  if (data.charAt(0) == " ")
    data = data.substring(1, data.length);
  if (data.charAt(data.length - 1) == " ")
    data = data.substring(0, data.length - 1);
  return data;
}
//Préchargement des images
var couleur1 = '#CCE1F6'
var couleur2 = '#CCE1F6'
var couleur3 = '#CCE1F6'
var couleur4 = '#CCE1F6'
var couleur5 = '#CCE1F6';
var current_menu = '';
var current_smenu = '';

function montre(id) {
	
var itlength = id.length;

for(i=0;i < itlength +1;i++) 
{
	current_menu = current_menu + id.charAt(i);
	if(document.getElementById('menu'+current_menu)) f = document.getElementById('menu'+current_menu);
	if(f.getElementsByTagName('a')[0]) f.getElementsByTagName('a')[0].style.fontWeight = 'bold';
	var cur = first_child(f);
	while(cur) {
		cur.style.display = 'block';
		cur.parentNode.style.display = 'block';
		cur = node_after(cur);
	}
	if(!cur) {
		f.parentNode.style.display = 'block';
	}
	//if(f.getElementsByTagName('ul')[0]) f.getElementsByTagName('ul')[0].style.display = 'block';
	
	
}

	/*switch(itlength)
	{
		case 1:
		menu = id.charAt(0);
		break;
		case 2:
		menu = id.charAt(0);
		smenu = menu + id.charAt(1);
		break;
		case 3: 
		menu = id.charAt(0);
		smenu = menu + id.charAt(1);
		ssmenu = smenu + id.charAt(2);
		break;
		case 4: 
		menu = id.charAt(0);
		smenu = menu + id.charAt(1);
		ssmenu = smenu + id.charAt(2);
		sssmenu = ssmenu + id.charAt(3);
		
		
		break;
	}	
/*	
	var f = document.getElementById('menu');
	var len = f.getElementsByTagName('ul').length;
	//alert(len);
	for(i = 0; i < len; i++)
	{
		if(f.getElementsByTagName('ul').item(i).className == "ssmenu")
		{
		f.getElementsByTagName('ul').item(i).style.display = "none";
		}

	}
	alert(menu);
	alert(smenu);
	alert(ssmenu);
	if(f) {
		f.getElementsByTagName('dt')[menu-1].style.fontWeight = "bold";
		if(document.getElementById('menu'+menu)) {
			obj_smenu = document.getElementById('menu'+menu);
			obj_smenu.getElementsByTagName('a')[0].style.fontWeight = 'bold';
		}
		if(document.getElementById('smenu'+smenu)) {
			obj_smenu = document.getElementById('smenu'+smenu);
			obj_smenu.getElementsByTagName('a')[0].style.fontWeight = 'bold';
		}
		if(document.getElementById('ssmenu'+ssmenu)) {
			obj_smenu = document.getElementById('ssmenu'+ssmenu);
			obj_smenu.getElementsByTagName('a')[0].style.fontWeight = 'bold';
		}
		//f.getElementsByTagName('dd')[0].style.fontWeight = 'bold';
	}
	//alert('sssmenu');
		//alert (sssmenu);
	if(current_smenu == smenu) 
		{
			document.getElementById('smenu'+smenu+"1").parentNode.style.display='none';
			current_smenu = '';
			return false;
		}
		
	var d = document.getElementById('smenu'+menu);
		for (var i = 1; i<=6; i++) 
		{
			if (document.getElementById('smenu'+i)) 
			{
				document.getElementById('smenu'+i).style.display='none';
			}
		}
	if (d) 
	{
		d.style.display='block';
		if(current_menu == id) 
			{
				d.style.display='none';
				current_menu = '';
				return false;
			}
		current_menu = id;
	}
	

	if(smenu != "0")
	{
		var d = document.getElementById('smenu'+smenu+"1");
		/*for (var i = 1; i<=6; i++) 
		{
			if (document.getElementById('smenu'+smenu + i)) 
				{
					document.getElementById('smenu'+ smenu + i).style.display='none';
				}
		}
		
		if (d)
		{
			d.parentNode.style.display = 'block';
			current_smenu = smenu;
			current_menu = menu;
		}
		
	}
		
		*/
}
function affiche(it) {

itlength = it.length;
var menu = null;
var smenu = null;
var ssmenu = null;
		
	
switch(itlength)
{
	case 1:
	menu = it.charAt(0);
	break;
	case 2:
	menu = it.charAt(0);
	smenu = menu + it.charAt(1);
	break;
	case 3: 
	menu = it.charAt(0);
	smenu = menu + it.charAt(1);
	ssmenu = smenu + it.charAt(2);
	break;
	case 4:
	menu = it.charAt(0);
	smenu = menu + it.charAt(1);
	ssmenu = smenu + it.charAt(2) + it.charAt(3);
	break;

	default:
	
	return false;
}

	var e = document.getElementById('menu'+menu);	
	
		for (var i = 1; i<=10; i++) {
			if (document.getElementById('menu'+i)) {document.getElementById('menu'+i).style.background=' url(../images/dtmenu1.gif) no-repeat bottom left';
			}
		}
	if (e) {
		//e.firstChild.style.fontWeight='bold';
		
	
			}
if(smenu != "")
{
	var f = document.getElementById('smenu'+smenu);	
		for (var i = 1; i<=10; i++) {
			if (document.getElementById('smenu'+menu+i)) 
			{
			document.getElementById('smenu'+menu+i).style.fontWeight ='normal';
			lien = document.getElementById('smenu'+menu+i).parentNode;
			if(lien.getElementsByTagName('a')[0]) lien.getElementsByTagName('a')[0].style.fontWeight = 'normal';
			//if(lien.getElementsByTagName('a')[1]) lien.getElementsByTagName('a')[1].style.fontWeight = 'normal';			
			}
		}
	if (f) {
		f.style.fontWeight ='bold';
			}

}
if(ssmenu != "")
{

	var g = document.getElementById('smenu'+ssmenu);	
		for (var i = 1; i<=20; i++) {
			if (document.getElementById('smenu'+smenu+i))
			{
				document.getElementById('smenu'+smenu+i).style.fontStyle='normal';
				document.getElementById('smenu'+smenu+i).style.fontWeight='normal';
				if(document.getElementById('smenu'+smenu+i).childNodes[1])
				 {
					 //alert(document.getElementById('smenu'+smenu+i).childNodes[2].innerHTML);
					items = document.getElementById('smenu'+smenu+i);
					if(items.getElementsByTagName('ul')[0]) items.getElementsByTagName('ul')[0].style.display ="none";
				 }
			}
		}
	if (g) {
		
	
		g.style.fontWeight='bold';
		g.style.fontStyle ='normal';
		g.parentNode.style.display="block";
		//g.getElementsByTagName('ul')[0].style.display ="block";
			}

}
}

//création d'une pop-up centrée
function popupcentree(page,largeur,hauteur,options)
{
var top=(screen.height-hauteur)/2;
var left=(screen.width-largeur)/2;
window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
}
//

