/* --------------------------------------------------------------------------------------*/
/* See "No more IE6 background flicker" on                                               */
/* http://evil.che.lu/2006/9/25/no-more-ie6-background-flicker                           */
/* --------------------------------------------------------------------------------------*/
try
	{
	document.execCommand('BackgroundImageCache', false, true);
	}
catch(e)
	{
	}
/* --------------------------------------------------------------------------------------*/
function DOMAvailability()
	{
	/*
	Compliant mode vs. Quirk mode : 
	First test is for strictly-compliants browsers.
	Second series is mainly for older browsers that may have an incomplete DOM support. Do
	gather here ANY method you intend to use.
	This script will use 
						getAttribute
						setAttribute
						removeAttribute
						cloneNode
						appendChild
	*/
	if	(
			(
				document
				&& document.implementation
				&& document.implementation.hasFeature
				&& document.implementation.hasFeature("HTML","1.0")
				&& document.implementation.hasFeature("XML","1.0")
				&& document.implementation.hasFeature("CORE","2.0")
			)
			||
			(
				document
				&& document.implementation
				&& document.implementation.hasFeature("HTML","1.0")
				&& document.getElementsByName
				&& document.getElementById
				&& document.createElement
				&& document.getElementsByTagName
				&& document.getElementsByTagName('BODY').item(0).getAttribute
				&& document.getElementsByTagName('BODY').item(0).setAttribute
				&& document.getElementsByTagName('BODY').item(0).removeAttribute
				&& document.getElementsByTagName('BODY').item(0).cloneNode
				&& document.getElementsByTagName('BODY').item(0).appendChild
			)
		)
		{
		return 2;
		}
	else
		{
		/* A more and more dubious DOM support. Some older browser did not
		implement "document.implementation", but still have (had) some support.
		You may consider them or not. Do gather here ANY method you intend to use.
		This script will use 
							getAttribute
							setAttribute
							removeAttribute
							cloneNode
							appendChild
		*/
		if(
			document.getElementsByName
			&& document.getElementById
			&& document.createElement
			&& document.getElementsByTagName
			&& document.getElementsByTagName('BODY').item(0).getAttribute
			&& document.getElementsByTagName('BODY').item(0).setAttribute
			&& document.getElementsByTagName('BODY').item(0).removeAttribute
			&& document.getElementsByTagName('BODY').item(0).cloneNode
			&& document.getElementsByTagName('BODY').item(0).appendChild)
			{
			return 1;
			}
		else
			{
			/* No trustable DOM support. */
			alert('No DOM support');
			return 0;
			}
		}
	}


function collapseThisItems(n)
	{
	// let's hide the n-th item if it exists
	var iString=n.toString();
	/*
	if (document.getElementById('a3'+iString))
		{
		document.getElementById('a3'+iString).style.display="none";
		}
	if (document.getElementById('a2'+iString))
		{
		document.getElementById('a2'+iString).style.display="block";
		}
	*/
	if (document.getElementById('a1'+iString))
		{
		document.getElementById('a1'+iString).style.display="none";
		}
	}
function expandThisItems(n)
	{
	// let's expand the n-th item if it exists
	var iString=n.toString();
	/*
	if (document.getElementById('a3'+iString))
		{
		document.getElementById('a3'+iString).style.display="block";
		}

	if (document.getElementById('a2'+iString))
		{
		document.getElementById('a2'+iString).style.display="none";
		}
	*/
	if (document.getElementById('a1'+iString))
		{
		document.getElementById('a1'+iString).style.display="block";
		}
	}
function collapseAllItems()
	{
	// let's hide everything
	var k=0;
	var myRegExp=/^(a[123]{1})([0-9]+)$/;
	while (document.getElementsByTagName('div').item(k))
		{
		var myCurrentLinkNode=document.getElementsByTagName('div').item(k);
		if (myCurrentLinkNode.getAttribute('id'))
			{
			var myCurrentLinkNodeId=myCurrentLinkNode.getAttribute('id');
			if (myCurrentLinkNodeId.match(myRegExp))
				{
				var itemToBeCollapsed=myCurrentLinkNodeId.replace(myRegExp,"\$2");
				collapseThisItems(itemToBeCollapsed);
				}
			}
		k++;
		}
	}
function expandCollapse(n)
	{
	collapseAllItems()
	// Let's set the cookie to the item if it exists - it shall.
	if (document.getElementById('a2'+n.toString()))
		{
		// The requested navigation item exists
		expandThisItems(n);
		// It's baked.
		SetCookie ('expMenu',n,1,'/',null);
		}
	else
		{
		// default : let's expand nothing but an error message
		// alert('Fire in expandCollapse() !!!');
		// It's burned.
		DeleteCookie('expMenu','/');
		}
	}
function check()
	{
	// let's hide everything
	collapseAllItems()
	// Now, let'bake it.
	if (GetCookie('expMenu'))
		{
		// let's expand the same navigation if it exists
		var expanded=GetCookie('expMenu');
		
		if (document.getElementById('a2'+expanded.toString())) // Yes, the ID of the corresponding DIV is a string, NaN !
			{
			// The navigation item exists
			expandThisItems(expanded);
			// It's baked.
			SetCookie ('expMenu',expanded,1,'/');
			}
		else
			{
			// default : let's expand the first one if it exists
			if (document.getElementById('a21'))
				{
				// The first navigation item exists
				expandThisItems(1);
				// It's baked.			 
				SetCookie ('expMenu',1,1,'/');
				}
			else
				{
				// alert('Fire 1 in check() !!!');
				// It's burned.
				DeleteCookie('expMenu','/');
				}
			}
		}
	else
		{
		// Let's set the cookie to first item if it exists
		if (document.getElementById('a21'))
			{
			// The first navigation item exists
			expandThisItems(1);
			// It's baked.		  
			SetCookie ('expMenu',1,1,'/');
			}
		else
			{
			// alert('Fire 2 in check() !!!');
			// It's burned.
			DeleteCookie('expMenu','/');
			}
		}
	}
/* ***************************************************************************** */
/* ***************************************************************************** */
function moveUp(item)
	{
	var myOldNode=document.getElementById(item);
	var myNewNode=document.getElementById(item).cloneNode(true);
	var myParentNode=document.getElementById(item).parentNode;
	if (myOldNode.previousSibling)
		{
		var myPreviousNode=myOldNode.previousSibling;
		
		myParentNode.removeChild(myOldNode);
		myParentNode.insertBefore(myNewNode,myPreviousNode);
		}
	updateHiddenFields();
	}
function moveDown(item)
	{
	var myOldNode=document.getElementById(item);
	var myNewNode=document.getElementById(item).cloneNode(true);
	var myParentNode=document.getElementById(item).parentNode;
	if (myOldNode.nextSibling)
		{
		var myNextNode=myOldNode.nextSibling;
		myParentNode.removeChild(myOldNode);
		if (myNextNode.nextSibling)
			{
			var myNextNextNode=myNextNode.nextSibling;
			myParentNode.insertBefore(myNewNode,myNextNextNode);
			}
		else
			{
			myParentNode.appendChild(myNewNode);
			}
		}
	updateHiddenFields();
	}
/* ***************************************************************************** */
/* ***************************************************************************** */
function outlineMe(thisField)
	{
	if (document.getElementById && document.getElementById(thisField))
		{
		document.getElementById(thisField).style.border="2px solid red";
		}
	}
/* ***************************************************************************** */
/* ***************************************************************************** */
function wipeMe(thisField)
	{
	if (document.getElementById && document.getElementById(thisField))
		{
		document.getElementById(thisField).value="";
		}
	}
/* ***************************************************************************** */
/* --------------------------------------------------------------------------------------*/
function getScreenCenter()
	{
	var myWidth=0;
	if(window.innerWidth)
		{
		/* ECMA compliant browsers */
		myWidth=window.innerWidth;
		}
	else
		{
		if(document.documentElement && document.documentElement.clientWidth)
			{
			/* IE 6+ in 'standards compliant mode' */
			myWidth=document.documentElement.clientWidth;
			}
		else
			{
			if( document.body && document.body.clientWidth)
				{
				/* IE 4 mode. */
				myWidth = document.body.clientWidth;
				}
			}
		}
	if(typeof(myWidth)!='number')
		{
		myWidth=parseInt(myWidth);
		}
	//alert('myWidth '+myWidth);
	return(myWidth/2);
	}
/* --------------------------------------------------------------------------------------*/
function getScreenMiddle()
	{
	var myHeight=0;
	if(window.innerHeight)
		{
		/* ECMA compliant browsers */
		myHeight=window.innerHeight;
		}
	else
		{
		if(document.documentElement && document.documentElement.clientHeight)
			{
			/* IE 6+ in 'standards compliant mode' */
			myHeight=document.documentElement.clientHeight;
			}
		else
			{
			if( document.body && document.body.clientHeight)
				{
				/* IE 4 mode. */
				myHeight = document.body.clientHeight;
				}
			}
		}
	if(typeof(myHeight)!='number')
		{
		myHeight=parseInt(myHeight);
		}
	//alert('myHeight '+myHeight);
	return(myHeight/2);
	}
/* --------------------------------------------------------------------------------------*/
function cumulativeOffsetTop(myNode)
	{
	var offsetTopValue=0;
	do
		{
		offsetTopValue+=myNode.offsetTop||0;
		myNode=myNode.offsetParent;
		}
	while (myNode);
	return(offsetTopValue);
	}
/* --------------------------------------------------------------------------------------*/
function cumulativeOffsetLeft(myNode)
	{
	var offsetLeftValue=0;
	do
		{
		offsetLeftValue+=myNode.offsetLeft||0;
		myNode=myNode.offsetParent;
		}
	while (myNode);
	return(offsetLeftValue);
	}
/* --------------------------------------------------------------------------------------*/
function init()
	{
	if (DOMAvailability()>0)
		{
		var wrapper=document.getElementById('wrapper');
		var header=document.getElementById('header');
		var primaryNavigation=document.getElementById('primaryNavigation');
		var main=document.getElementById('main');
		var content=document.getElementById('content');
		var breadcrumb=document.getElementById('breadcrumb');
		/* Let's hisde the search form, and the create a "search" link.                   */
		/* Then we will attatch it an event that enables the user to get the search form. */
		document.getElementById('search').style.display="none";
		var searchLink=document.createElement('a');
		searchLink.setAttribute('id','searchLink');
		searchLink.setAttribute('href','#');
		var searchLinkListItem=document.createElement('li');
		searchLinkListItem.appendChild(searchLink);
		document.getElementById('defaultNavigation').firstChild.appendChild(searchLinkListItem);
		//var searchLinkText=
		sendRequestForString(GetCookie("PHPSESSID"),'info_rechercher','searchLink');
		
		//alert(document.getElementById('defaultNavigation').innerHTML);
		
		/* No "onclick". Hell, no! An event. */
		if(searchLink.addEventListener)
			{
			//alert('addEventListener');
			searchLink.addEventListener('click',toggleSearchForm,false);
			searchLink.addEventListener('keypress',toggleSearchForm,false);
			}
		else
			{
			if(searchLink.attachEvent)
				{
				//alert('attachEvent');
				searchLink.attachEvent('onclick',toggleSearchForm);
				searchLink.attachEvent('onkeypress',toggleSearchForm);
				}
			}
		/* */
		primaryNavigation.style.visibility='hidden';
		/* ----------------------------------------------------------------------------------------------- */
		/* Let's replace the list of links for the primary navigation by a table.                          */
		/* This will allow us to get an harmoniously distributed set of links.                             */
		/* ----------------------------------------------------------------------------------------------- */
		primaryNavigation.normalize();
		var firstLevelItems=primaryNavigation.getElementsByTagName('ul').item(0).childNodes;
		//alert(firstLevelItems.length);
		var firstLevelTable=document.createElement('table');
		/* Write it in gold letter somewhere : A table body is COMPULSORY under IE 6 */
		var firstLevelTableBody=document.createElement('tbody');
		var firstLevelTableRow=document.createElement('tr');
		firstLevelTableBody.appendChild(firstLevelTableRow);
		firstLevelTable.appendChild(firstLevelTableBody);
		for(var i=0;i<firstLevelItems.length;i++)
			{
			if(firstLevelItems.item(i).nodeType==1)
				{
				var firstLevelTableCell=document.createElement('td');
				firstLevelTableCell.setAttribute('class',firstLevelItems.item(i).className);
				firstLevelTableCell.setAttribute('className',firstLevelItems.item(i).className);
				firstLevelTableCell.setAttribute('id','primaryNavigationCell'+i);
				/* First the primary link. */
				myLinkItem=firstLevelItems.item(i).getElementsByTagName('A').item(0).cloneNode(true);
				myLinkItem.setAttribute('id','primaryNavigationLink'+i);
				firstLevelTableCell.appendChild(myLinkItem);
				/* Then we add the drop-down list, if any. */
				if(firstLevelItems.item(i).getElementsByTagName('UL').length>0)
					{
					var myListItem=firstLevelItems.item(i).getElementsByTagName('UL').item(0).cloneNode(true);
					myListItem.setAttribute('id','dropDownMenu'+i);
					/* Drop down menu should vanish if unfocused, ie if wrapper is focused. */
					if(myListItem.addEventListener)
						{
						//alert('addEventListener');
						if(myListItem.addEventListener('mouseover',getMeTheIdThatTriggeredThisEvent,false)==false)
							{
							alert('Error attaching mouseover event to id '+myListItem.id);
							}
						}
					else
						{
						if(myListItem.attachEvent)
							{
							//alert('attachEvent');
							if(myListItem.attachEvent('onmouseover',getMeTheIdThatTriggeredThisEvent)==false)
								{
								alert('Error attaching onmouseover event to id '+myListItem.id);
								}
							}
						}
					firstLevelTableCell.appendChild(myListItem);
					}
				/* Add the event to trigger the drop down menu. Links'parent should make their drop down menu appear if hovered and if any. */
				if(firstLevelTableCell.addEventListener)
					{
					//alert('addEventListener to '+myLinkItem.id);
					if(
						firstLevelTableCell.addEventListener('mouseover',getMeTheIdThatTriggeredThisEvent,false)==false
						||
						myLinkItem.addEventListener('mouseover',getMeTheIdThatTriggeredThisEvent,false)==false
						)
						{
						alert('Error attaching mouseover event to id '+myLinkItem.id);
						}
					}
				else
					{
					if(firstLevelTableCell.attachEvent)
						{
						//alert('attachEvent to '+myLinkItem.id);
						if(
							firstLevelTableCell.attachEvent('onmouseover',getMeTheIdThatTriggeredThisEvent)==false
							||
							myLinkItem.attachEvent('onmouseover',getMeTheIdThatTriggeredThisEvent)==false
							)
							{
							alert('Error attaching onmouseover event to id '+myLinkItem.id);
							}
						}
					}
				firstLevelTableRow.appendChild(firstLevelTableCell);
				}
			}
		/* Let's get rid of the old list structure. */
		while(primaryNavigation.firstChild)
			{
			primaryNavigation.removeChild(primaryNavigation.firstChild);
			}
		/* */
		primaryNavigation.appendChild(firstLevelTable);
		/* ----------------------------------------------------------------------------------------------- */
		/* Now, we have to tune their respective heights to arrange them horizontally and to get --------- */
		/* full height background when hovering them.----------------------------------------------------- */
		/* ----------------------------------------------------------------------------------------------- */
		var maxHeight=0;
		for(var i=0;i<firstLevelTableRow.childNodes.length;i++)
			{
			maxHeight=Math.max(maxHeight,firstLevelTableRow.childNodes.item(i).getElementsByTagName('a').item(0).offsetHeight);
			}
		//alert(maxHeight);
		for(var i=0;i<firstLevelTableRow.childNodes.length;i++)
			{
			var firstLevelLink=firstLevelTableRow.childNodes.item(i).getElementsByTagName('a').item(0);
			//alert(firstLevelLink.offsetHeight+'/'+maxHeight);
			if(firstLevelLink.offsetHeight<maxHeight)
				{
				firstLevelLink.style.paddingTop=Math.round((maxHeight-firstLevelLink.offsetHeight)/2).toString()+'px';
				firstLevelLink.style.height=Math.round(maxHeight-((maxHeight-firstLevelLink.offsetHeight))).toString()+'px';
				//alert(firstLevelLink.style.paddingTop+'/'+firstLevelLink.style.height);
				}
			}
		/* */
		primaryNavigation.style.visibility='visible';
		//document.write(primaryNavigation.innerHTML);
		/* */
		if(document.getElementById('secondaryNavigation'))
			{
			var secondaryNavigation=document.getElementById('secondaryNavigation');
			var tmp=secondaryNavigation.cloneNode(true);
			secondaryNavigation.parentNode.removeChild(secondaryNavigation);
			wrapper.insertBefore(tmp,main);
			/* One is for IE, the other one for the compliant browsers. */
			tmp.style.styleFloat="left";
			tmp.style.cssFloat="left";
			//tmp.style.clear="left";
			tmp.style.marginTop="0.5em";
			}
		/* */
		if(document.getElementById('leftColumnPoll') && document.getElementById('secondaryNavigation')&&!document.getElementById('homeLeftColumn'))
			{
			var myNode=document.getElementById('leftColumnPoll');
			/* */
			var myParentNode=myNode.parentNode;
			var myDestinationNode=document.getElementById('secondaryNavigation');
			
			myDestinationNode.appendChild(myNode.cloneNode(true));
			myParentNode.removeChild(myNode);
			}
		/* */
		if(document.getElementById('translations'))
			{
			var translations=document.getElementById('translations');
			translations.style.visibility="hidden";
			var translationsWidth=translations.offsetWidth;
			var translationsHeight=translations.offsetHeight;
			//alert(translationsWidth);
			var translationsTop=cumulativeOffsetTop(translations);
			var translationsLeft=cumulativeOffsetLeft(translations);
			/* */
			if(document.getElementById('frTranslation'))
				{
				var frTranslation=document.getElementById('frTranslation');
				var frHeight=frTranslation.offsetHeight;
				}
			if(document.getElementById('enTranslation'))
				{
				var enTranslation=document.getElementById('enTranslation');
				var enHeight=enTranslation.offsetHeight;
				}
			if(document.getElementById('deTranslation'))
				{
				var deTranslation=document.getElementById('deTranslation');
				var deHeight=deTranslation.offsetHeight;
				}
			var maxHeight=Math.max(Math.max(frHeight,enHeight),deHeight);
			translations.style.height=maxHeight.toString()+'px';
			/* */
			if(document.getElementById('frTranslationLink'))
				{
				var frTranslationLink=document.getElementById('frTranslationLink');
				frTranslationLink.setAttribute('href','#');
				}
			if(document.getElementById('enTranslationLink'))
				{
				var enTranslationLink=document.getElementById('enTranslationLink');
				enTranslationLink.setAttribute('href','#');
				}
			if(document.getElementById('deTranslationLink'))
				{
				var deTranslationLink=document.getElementById('deTranslationLink');
				deTranslationLink.setAttribute('href','#');
				}
			/* */
			if(frTranslation)
				{
				frTranslation.style.height=maxHeight.toString()+'px';
				frTranslation.style.position='absolute';
				frTranslation.style.top=translationsTop.toString()+'px';
				frTranslation.style.width=translationsWidth.toString()+'px';
				frTranslation.style.zIndex='107';
				}
			if(enTranslation)
				{
				enTranslation.style.height=maxHeight.toString()+'px';
				enTranslation.style.position='absolute';
				enTranslation.style.top=translationsTop.toString()+'px';
				enTranslation.style.width=translationsWidth.toString()+'px';
				enTranslation.style.zIndex='57';
				}
			if(deTranslation)
				{
				deTranslation.style.height=maxHeight.toString()+'px';
				deTranslation.style.position='absolute';
				deTranslation.style.top=translationsTop.toString()+'px';
				deTranslation.style.width=translationsWidth.toString()+'px';
				deTranslation.style.zIndex='7';
				}
			/* */
			if(frTranslationLink.addEventListener)
				{
				//alert('frTranslationLink.addEventListener');
				frTranslationLink.addEventListener('click',getMeTheIdThatTriggeredThisEvent,false);
				}
			else
				{
				if(frTranslationLink.attachEvent)
					{
					//alert('frTranslationLink.attachEvent');
					frTranslationLink.attachEvent('onclick',getMeTheIdThatTriggeredThisEvent);
					}
				}
			if(enTranslationLink.addEventListener)
				{
				enTranslationLink.addEventListener('click',getMeTheIdThatTriggeredThisEvent,false);
				}
			else
				{
				if(enTranslationLink.attachEvent)
					{
					enTranslationLink.attachEvent('onclick',getMeTheIdThatTriggeredThisEvent);
					}
				}
			if(deTranslationLink.addEventListener)
				{
				deTranslationLink.addEventListener('click',getMeTheIdThatTriggeredThisEvent,false);
				}
			else
				{
				if(deTranslationLink.attachEvent)
					{
					deTranslationLink.attachEvent('onclick',getMeTheIdThatTriggeredThisEvent);
					}
				}
			translations.style.visibility="visible";
			/* What is the max tween text and right thumbs ? */
			if(document.getElementById('hebergementTouristiquePortfolio1'))
				{
				var textHeight=document.getElementById('hebergementTouristiqueText').offsetHeight;
				var thumbsHeight=document.getElementById('hebergementTouristiquePortfolio1').offsetHeight;
				//alert('textHeight '+textHeight+' / thumbsHeight '+thumbsHeight);
				document.getElementById('hebergementTouristiquePortfolio').style.marginTop='-'+textHeight.toString()+'px';
				if(textHeight>thumbsHeight)
					{
					document.getElementById('footerList').style.marginTop=(textHeight-thumbsHeight).toString()+'px';
					//alert(document.getElementById('footerList').style.marginTop);
					}
				}
			}
		/* */
		if(document.getElementById('PDFSejoursLink'))
			{
			var PDFSejoursLink=document.getElementById('PDFSejoursLink');
			PDFSejoursLink.style.position="absolute";
			PDFSejoursLink.style.width="12em";
			PDFSejoursLink.style.margin="0";
			PDFSejoursLink.style.padding="0.5em";
			PDFSejoursLink.style.styleFloat="none";
			PDFSejoursLink.style.cssFloat="none";
			PDFSejoursLink.style.left=document.getElementById('secondaryNavigation').offsetLeft.toString()+'px';
			PDFSejoursLink.style.top=(document.getElementById('secondaryNavigation').offsetTop+document.getElementById('secondaryNavigation').offsetHeight).toString()+'px';
			}
		if(document.getElementById('PDFHebergementsLink'))
			{
			var PDFHebergementsLink=document.getElementById('PDFHebergementsLink');
			PDFHebergementsLink.style.position="absolute";
			PDFHebergementsLink.style.width="12em";
			PDFHebergementsLink.style.margin="0";
			PDFHebergementsLink.style.padding="0.5em";
			PDFHebergementsLink.style.styleFloat="none";
			PDFHebergementsLink.style.cssFloat="none";
			//alert(document.getElementById('wrapper').offsetLeft.toString()+'px');
			PDFHebergementsLink.style.left=document.getElementById('wrapper').offsetLeft.toString()+'px';
			PDFHebergementsLink.style.top=(document.getElementById('secondaryNavigation').offsetTop+document.getElementById('secondaryNavigation').offsetHeight).toString()+'px';
			}
		/* */
		if(document.getElementById('carte_france'))
			{
			getCoordinates('carte_france');
			}
		}
	}
function foo()
	{
	//alert('yo!');
	}
/* --------------------------------------------------------------------------------------*/
function toggleSearchForm()
	{
	if(document.getElementById('search').style.display=='none')
		{
		document.getElementById('search').style.display='block';
		}
	else
		{
		document.getElementById('search').style.display='none';
		}
	}
/* ------------------------------------------------------------------------------------- */
/* Retrieving the 'id' of the checkbox on which the event has been activated.            */
/* ------------------------------------------------------------------------------------- */
function getMeTheIdThatTriggeredThisEvent(myEvent)
	{
	
	//var myEvent=(myEvent)?myEvent:((window.event)?window.event:"");
	
	if(window.event)
		{
		window.event.cancelBubble=true;
		myEvent=window.event;
		}
	else
		{
		myEvent.stopPropagation();
		}
	var myEventType=myEvent.type;
	/* */
	if(!myEvent)
		{
		alert('getMeTheIdThatTriggeredThisEvent()\n'
			+'\nNo event!'
			+'\nBig, big trouble...'
			);
		}
	else
		{
		// http://www.captain.at/howto-addeventlistener-attachevent-parameters.php
		var myId;
		/* */
		if(myEvent['srcElement'])
			{
			myId=myEvent['srcElement']['id'];
			//alert('srcElement -> '+myId);
			}
		else
			{
			if(myEvent['target'])
				{
				myId=myEvent['target']['id'];
				//alert('target -> '+myId);
				}
			else
				{
				alert('getMeTheIdThatTriggeredThisEvent()'
					+'\nNo way to get the origin for the event!'
					+'\nBig, big trouble...'
					);
				}
			}
		var myField=document.getElementById(myId);
		//alert('myEvent : '+myEvent+'\nmyEventType : '+myEventType+'\nmyId '+myId);
		/* ------------------------------------------------------------------------- */
		var regExp = new RegExp ('Translation', '') ;
		if(myId.match(regExp) != null)
			{
			var regExp = new RegExp ('Link$', '');
			myId=myId.replace(regExp,'');
			/* */
			if(document.getElementById('frTranslation'))
				{
				document.getElementById('frTranslation').style.zIndex=(-1*Math.round(Math.pow(Math.pow(parseInt(document.getElementById('frTranslation').style.zIndex),2),1/2))).toString();
				}
			if(document.getElementById('enTranslation'))
				{
				document.getElementById('enTranslation').style.zIndex=(-1*Math.round(Math.pow(Math.pow(parseInt(document.getElementById('enTranslation').style.zIndex),2),1/2))).toString();
				}
			if(document.getElementById('deTranslation'))
				{
				document.getElementById('deTranslation').style.zIndex=(-1*Math.round(Math.pow(Math.pow(parseInt(document.getElementById('deTranslation').style.zIndex),2),1/2))).toString();
				}
			document.getElementById(myId).style.zIndex=(-1*parseInt(document.getElementById(myId).style.zIndex)).toString();
			}
		/* ------------------------------------------------------------------------- */
		var regExp = new RegExp ('^primaryNavigation(Cell|Link)([0-9]+)$', '') ;
		var id=myId.match(regExp);
		if(id!=null)
			{
			id=id[2];
			var myNodesList=document.getElementById('primaryNavigation').getElementsByTagName('TABLE').item(0).getElementsByTagName('UL');
			wipeAllOut(myNodesList);
			/* */
			if(document.getElementById('dropDownMenu'+id))
				{
				wipeIn(document.getElementById('dropDownMenu'+id));
				}
			}
		/* ------------------------------------------------------------------------- */
		//alert(myId);
		var regExp = new RegExp ('^dropDownMenu([0-9]+)$','') ;
		if(myId.match(regExp) != null)
			{
			var myNode=document.getElementById(myId);
			//myNode.style.backgroundColor="Black";
			wipeOut(myNode);
			}
		/* ------------------------------------------------------------------------- */
		/* Image map for resorts                                                     */
		/* ------------------------------------------------------------------------- */
		var regExp1 = new RegExp ('mouseover', 'i') ;
		var regExp2 = new RegExp ('mouseout', 'i') ;
		var regExp9 = new RegExp ('^area([0-9]+)$', '') ;
		if(myEventType.match(regExp1) != null && myId.match(regExp9) != null)
			{
			var nbId=myId.match(regExp9);
			see('location'+nbId[1]);
			}
		if(myEventType.match(regExp2) != null && myId.match(regExp9) != null)
			{
			var nbId=myId.match(regExp9);
			hide('location'+nbId[1]);
			}
		/* ------------------------------------------------------------------------- */
		}
	}
/* --------------------------------------------------------------------------------------*/
function wipeIn(myNode)
	{
	if(myNode&&myNode.nodeType==1)
		{
		//alert('here');
		try{myNode.removeAttribute('className');}	catch(exp){}
		try{myNode.removeAttribute('class');}		catch(exp){}
		//alert(myNode.parentNode.tagName);
		myNode.style.top=(parseInt(cumulativeOffsetTop(myNode.parentNode))+parseInt(myNode.parentNode.offsetHeight)).toString()+'px';
		myNode.style.left=(cumulativeOffsetLeft(myNode.parentNode)).toString()+'px';
		
		myNode.style.display="block";
		myNode.style.position="absolute";
		myNode.style.zIndex="777";
		}
	}
/* --------------------------------------------------------------------------------------*/
function wipeOut(myNode)
	{
	if(myNode&&myNode.nodeType==1)
		{
		myNode.setAttribute('className','hiddenStructure');
		myNode.setAttribute('class','hiddenStructure');
		}
	}
/* --------------------------------------------------------------------------------------*/
function wipeAllOut(myNodesList)
	{
	if(myNodesList&&myNodesList.length>0)
		{
		for(var i=0;i<myNodesList.length;i++)
			{
			wipeOut(myNodesList.item(i));
			}
		}
	}
/* --------------------------------------------------------------------------------------*/
function toggleShow(target)
	{
	document.getElementById(target).className="learnMore";
	var myLink=document.getElementById(target+"Link");
	var myLinkTitle=myLink.getAttribute('title');
	/* */
	var re=/Learn more/i;
	myLinkTitle=myLinkTitle.replace(re,'Hide text');
	myLink.setAttribute('title',myLinkTitle)
	var myNewText=myLink.firstChild.nodeValue.replace(re,'Hide text');
	/* */
	var re=/En savoir plus/i;
	myLinkTitle=myLinkTitle.replace(re,'Masquer la définition');
	myLink.setAttribute('title',myLinkTitle)
	var myNewText=myLink.firstChild.nodeValue.replace(re,'Masquer la définition');
	/* */
	var myLinkText=myLink.firstChild;
	newLinkText=document.createTextNode(myNewText);
	myLink.replaceChild(newLinkText,myLinkText);
	}
/* --------------------------------------------------------------------------------------*/
function toggleHide(target)
	{
	document.getElementById(target).className="hiddenStructure";
	var myLink=document.getElementById(target+"Link");
	var myLinkTitle=myLink.getAttribute('title');
	/* */
	var re=/Hide text/i;
	myLinkTitle=myLinkTitle.replace(re,'Learn more');
	myLink.setAttribute('title',myLinkTitle)
	var myNewText=myLink.firstChild.nodeValue.replace(re,'Learn more');
	/* */
	var re=/Masquer la définition/i;
	myLinkTitle=myLinkTitle.replace(re,'En savoir plus');
	myLink.setAttribute('title',myLinkTitle)
	var myNewText=myLink.firstChild.nodeValue.replace(re,'En savoir plus');
	/* */
	var myLinkText=myLink.firstChild;
	newLinkText=document.createTextNode(myNewText);
	myLink.replaceChild(newLinkText,myLinkText);
	}
/* --------------------------------------------------------------------------------------*/
function toggle(target,withOppositeTarget)
	{
	hasBeenShown=false;
	hasBeenHidden=false;
	//alert(target.indexOf('OK')+' / '+target.indexOf('KO'));
	if(target.indexOf('OK')!=-1)
		{
		oppositeTarget=target.replace(/OK/,'KO');
		}
	else
		{
		if(target.indexOf('KO')!=-1)
			{
			oppositeTarget=target.replace(/KO/,'OK');//alert('ffo');
			}
		}
	//alert(target+' / '+oppositeTarget);
	if(document.getElementById(target))
		{
		if(document.getElementById(target).className=='hiddenStructure')
			{
			toggleShow(target);hasBeenShown=true;
			}
		else
			{
			toggleHide(target);hasBeenHidden=true;
			}
		}
	
	if(withOppositeTarget)
		{
		if(hasBeenShown
			&&document.getElementById(oppositeTarget).className!='hiddenStructure')
			{
			toggleHide(oppositeTarget);
			}
		else
			{
			
			}
		}
	}
/* --------------------------------------------------------------------------------------*/
function getCoordinates(idMap)
	{
	var myMap=document.getElementById(idMap);
	var myImageMap=document.getElementById(idMap+'_map');
	var myImageMapTop=cumulativeOffsetTop(myImageMap);
	var myImageMapLeft=cumulativeOffsetLeft(myImageMap);
	//alert(myImageMapTop+' '+myImageMapLeft);
	myMap.normalize();
	var myAreasList=myMap.getElementsByTagName('AREA');;
	for(i=0;i<myAreasList.length;i++)
		{
		var myArea=myAreasList.item(i);
		myArea.setAttribute('id','area'+i);
		//alert(myCoordinates=myAreasList.item(i).tagName);
		var myCoordinates=myArea.getAttribute('coords');
		//alert(i+' : '+myCoordinates);
		myc=myCoordinates.split(',');
		//alert(myc[0]+' '+myc[1]+' '+myc[2]);
		myImg=document.createElement('IMG');
		
		
		
		
		myImg.setAttribute('id','location'+i);
		myImg.setAttribute('src','/dist/ymca-gif/pointingArrow01.gif');
		myImg.style.display='none';
		myImg.style.position='absolute';
		myImg.style.zIndex='777';
		myImg.style.top=(parseInt(myImageMapTop)+parseInt(myc[1])-36).toString()+'px';
		myImg.style.left=(parseInt(myImageMapLeft)+parseInt(myc[0])-36).toString()+'px';
		//alert(myImg.style.top+' '+myImg.style.left);
		document.getElementById('wrapper').appendChild(myImg);
		
		
		
		
		
		if(myArea.addEventListener)
			{
			myArea.addEventListener('mouseover',getMeTheIdThatTriggeredThisEvent,false);
			myArea.addEventListener('mouseout',getMeTheIdThatTriggeredThisEvent,false);
			}
		else
			{
			if(myAreasList.item(i).attachEvent)
				{
				myArea.attachEvent('onmouseover',getMeTheIdThatTriggeredThisEvent);
				myArea.attachEvent('onmouseout',getMeTheIdThatTriggeredThisEvent);
				}
			}
		}
	}
/* --------------------------------------------------------------------------------------*/
function see(locationId)
	{
	
	var i=0;
	while(document.getElementById('location'+i))
		{
		if(('location'+i)!=locationId && document.getElementById('location'+i).style.display!='none')
			{
			document.getElementById('location'+i).style.display='none';
			}
		i++;
		}
	document.getElementById(locationId).style.display='block';
	}
/* --------------------------------------------------------------------------------------*/
function hide(locationId)
	{
	//alert(locationId);
	document.getElementById(locationId).style.display='none';
	}
/* --------------------------------------------------------------------------------------*/
function createXMLHttpRequest()
	{
	var myRequest=null;
	if(window.XMLHttpRequest)
		{
		myRequest=new XMLHttpRequest();
		}
	else
		{
		myRequest=new ActiveXObject("Microsoft.XMLHTTP");
		}
	if(myRequest!=null)
		{
		return myRequest;
		}
	else
		{
		alert("createXMLHttpRequest - XML Doc Load Failed");
		}
	}
/* http://forum.java.sun.com/thread.jspa?threadID=764626&messageID=4361445 */
function createXmlDOM(request)
	{
	var xmlDocument;
	if (window.ActiveXObject)
		{
		xmlDocument=new ActiveXObject("Microsoft.XMLDOM");
		xmlDocument.async=false;
		// IE uses the loadXML method when the source document is NOT XML
		xmlDocument.loadXML(request.responseText);
		}
	else if (document.implementation.createDocument)
		{
		// Firefox requires a parser object to read the text
		var parser=new DOMParser();
		xmlDocument=parser.parseFromString(request.responseText, "text/xml");
		}
	if(xmlDocument==null) alert("createXmlDOM - XML Doc Load Failed");
	/* */
	//alert(xmlDocument);
	return xmlDocument;
	};
/* */
var myRequestForString=new createXMLHttpRequest();
if(!myRequestForString==null) alert('myRequestForString could not be initialized!');
/* */
function handleResponseForString()
	{
	//alert('handleResponseForString is '+myRequestForString.readyState);
	if(myRequestForString.readyState==4)
		{
		var xmlString=myRequestForString.responseText;
		//alert(xmlString);
		var xmlDocument=createXmlDOM(myRequestForString);
		/* Konqueror considers the processing instruction (type 7) as a node. The firstChild is the PI... */
		var myDiv=xmlDocument.getElementsByTagName('div').item(0);
		var myString=myDiv.getElementsByTagName('string').item(0).firstChild.nodeValue;
		var myTargetNode=myDiv.getElementsByTagName('targetNode').item(0).firstChild.nodeValue;
		var myText=document.createTextNode(myString);
		//alert(myString+' '+myTargetNode+' '+myText);
		document.getElementById(myTargetNode).appendChild(myText);
		}
	else
		{
		}
	}
/* */
function sendRequestForString(sessionId,string,targetNode)
	{
	myRequestForString.open('GET','./dist/getSPIPString.php?sessionId='+sessionId+'&string='+string+'&targetNode='+targetNode,true);
	myRequestForString.onreadystatechange=handleResponseForString;
	myRequestForString.send(null);
	}
/* */


