function runStartList()
{
var ls=window.StartList;
if (ls)
	{
	for(i=0;i<ls.length;i++)
		{
		//alert(fnc);
		fnc=ls[i];
		if (typeof(fnc)=='function')	fnc();
		else							eval(fnc);
		}
	}
}

window.onload=runStartList;

// ********************* ARBO ********************* //
// JavaScript Document
var tabXML=null;
var objXmlHttp=null

function arboOpenOrCloseNoeud(id)
{
var obj=document.getElementById('Noeud'+id)
var objImage=document.getElementById('ImgNoeud'+id)
if (obj && objImage)
	{
	if (obj.style.display!='none')	arboCloseNoeud(id);
	else							arboOpenNoeud(id);
	}
}

function arboOpenNoeud(id)
{
var obj=document.getElementById('Noeud'+id)
var objImage=document.getElementById('ImgNoeud'+id)
if (obj && objImage)
	{
	objImage.src=UrlRacine+'/Habillage/Arbo/Noeud-Ouvert.png';
	obj.style.display='block';
	}
}

function arboCloseNoeud(id)
{
var obj=document.getElementById('Noeud'+id)
var objImage=document.getElementById('ImgNoeud'+id)
if (obj && objImage)
	{
	objImage.src=UrlRacine+'/Habillage/Arbo/Noeud-Ferme.png';
	obj.style.display='none';
	}
}


// =========================================================================================================== //
function getXmlArbo()
{
objDebug=null; //document.getElementById('Debug');
if (objDebug)	objDebug.innerHTML='<br />getXmlArbo()';

obj=document.getElementById('divArboCentre');
if (obj)
	{
	objXmlHttp=new Ajax.Request
		(
		 UrlRacine+'/Noeuds/NoeudsXML.php',
			{
			method:'post',
			onSuccess:getXmlArbo_success
			}
		);
	}
}

function getXmlArbo_success(res)
{
obj=document.getElementById('divArboCentre');
if (obj && res)
	{
	tabXML=res.responseXML.getElementsByTagName('noeud');
	drawArbos();
	}
}

// ********************* MENU ********************* //
addToStart('initMenu()');

function initMenu()
{
var i,tab,objBlock;
var objMenu=document.getElementById('Menu');
if (objMenu)
	{
	tab=objMenu.childNodes;
	for (i=0;i<tab.length;i++)
		{
		obj=tab[i];
		if (obj)
			{
			objBlock=obj.firstChild;
			objBlock.onmouseover=function()	{ displayMenu(this.parentNode); }
			objBlock=obj.lastChild;
			objBlock.onmouseover=function()	{ displayMenu(this.parentNode); }
			objBlock.onmouseout=function()	{ displayMenu(null); }
			}
		}
	}
}

function displayMenu(objDisp)
{
var i,objBlock,NbFils;
var objMenu=document.getElementById('Menu');
if (objMenu)
	{
	NbFils=objMenu.childNodes.length
	for (i=0;i<NbFils;i++)
		{
		obj=objMenu.childNodes[i];
		if (obj)
			{
			if (obj.nodeName=='DL')
				{
				objBlock=obj.firstChild;
				if (objBlock.nodeName=='DT')
					{
					objBlock.className='';
					}
				objBlock=obj.lastChild;
				if (objBlock.nodeName=='DD')
					{
					objBlock.style.display='none';
					}
				}
			}
		}
	}
if (objDisp)
	{
	objBlock=objDisp.firstChild;
	if (objBlock)
		{
		if (objBlock.nodeName=='DT')	objBlock.className='Actif';
//	alert(objDisp.firstChild.className);
		}
	objBlock=objDisp.lastChild;
	if (objBlock)
		{
		if (objBlock.nodeName=='DD')	objBlock.style.display='block';
		}
	}
}


// ********************* ONGLETS ********************* //
var nOnglet=0;

function openOnglets(obj,onglet)
{
var obj1=null,obj2=null,nb=0,c='',i=0;
if (obj)
	{
	obj1=obj.childNodes[0];
	obj2=obj.childNodes[1];
	if (obj1 && obj2)
		{
		nb1=obj1.childNodes.length;
		nb2=obj2.childNodes.length;
		nb=nb1;
		if (nb1>nb2)	nb=nb2;
		if (nb1!=nb2)	obj.innerHTML+='<p>Nombre d\'onglet non valide</p>';
		if (onglet==null)
			{
			for(i=0;i<nb;i++)
				{
				obj1.childNodes[i].id='TOnglet'+nOnglet+'-'+i;
				obj2.childNodes[i].id='COnglet'+nOnglet+'-'+i;
				obj1.childNodes[i].onclick=function() { openOnglets(this.parentNode.parentNode,this.id.substr(9)); }
				}
			nOnglet++;
			onglet=0;
			}

		for(i=0;i<nb;i++)
			{
			if (i==onglet)	c='Open';
			else			c='';
			obj1.childNodes[i].className=c;
			obj2.childNodes[i].className=c;
			}
		}
	}
}

document.write('<style type="text/css">');
document.write('.Onglets dl	{ width:100%; clear:both; float:none; margin:0px; padding:0px; }');
document.write('.Onglets dl dt	{ height:16px; margin:0px; margin-left:4px; margin-top:1px; background-color:#CCCCCC; padding:4px 8px 1px 8px; border:1px #999999 solid; border-bottom:none; float:left; clear:none; min-width:40px; cursor:pointer; font-size:11px; text-align:center;-moz-border-radius-topleft:8px;-moz-border-radius-topright:8px;-webkit-border-top-left-radius:8px;-webkit-border-top-right-radius:8px; }');
document.write('.Onglets dl dd	{ visibility:hidden; height:0px; min-height:0px; overflow:hidden; border:none; margin:0px; padding:0px; }');
document.write('.Onglets dl dt.Open	{ background-color:#FFFFFF; cursor:auto; }');
document.write('.Onglets dl dd.Open	{ visibility:visible; height:inherit; min-height:inherit; border:1px #CCCCCC solid; padding:5px; -moz-border-radius:6px; }');
document.write('</style>');

function initOnglets()
{
var t=null,i=0;
var tabOnglets=getElementsByClassName('Onglets');
for(i=0;i<tabOnglets.length && i<50;i++)
	{
	t=tabOnglets[i];
	if (t.className=='Onglets')	openOnglets(t);
	}
}

addToStart('initOnglets()');

function getElementsByClassName(className)
{
var arr=new Array();
var elems=document.getElementsByTagName("*");
for(var i=0;i<elems.length;i++)
	{
	var elem = elems[i];
	if (elem.getAttribute("class")==className)	arr.push(elem);
	}
return arr;
}

function realReplace (sStr,sFind,sReplace)
{
//Replace an element for each occurence (js replace doesn't seem to do correctly)
var lPos=0;
var lCount=0;
var i;

//Count occurences
lPos=sStr.indexOf (sFind,lPos)
while (lPos!=-1)
	{
	lCount++;
	lPos=sStr.indexOf (sFind,lPos+1);
	}
//replace
for (i=0;i<lCount;i++)	sStr=sStr.replace (sFind, sReplace);
return(sStr);
}

// ********************* BOUTONS AJAX ********************* //

// JavaScript Document

var divModifEnCours=null;

function modifAjax(obj)
{
var url='';

if (obj && divModifEnCours==null)
	{
	url=obj.href;
	divModifEnCours=obj.parentNode;
	divModifEnCours.innerHTML='<span class="Chargement">chargement...</span>';
	}

if (url.length>0)
	{
	url+='&Ajax=True';
	objXmlHttp=new Ajax.Request(url, { onSuccess:modifAjax_success } );
	return false;
	}
return true;
}

function modifAjax_success(res)
{
if (divModifEnCours)
	{
	divModifEnCours.innerHTML=res.responseText;
	}
divModifEnCours=null;
}

function delAjax(obj)
{
var url='';

if (obj && divModifEnCours==null)
	{
	url=obj.href;
	divModifEnCours=obj.parentNode;
	divModifEnCours.innerHTML='<span class="Chargement">chargement...</span>';
	}

if (url.length>0)
	{
	url+='&Ajax=True';
	objXmlHttp=new Ajax.Request(url, { onSuccess:delAjax_success } );
	return false;
	}
return true;
}

function delAjax_success(res)
{
n=10;
if (divModifEnCours && res)
	{
	if (res.responseText.length>0)
		{
		divModifEnCours.innerHTML=res.responseText;
		}
	else
		{
		obj=divModifEnCours;
		while(obj.nodeName!='TR' && obj.nodeName!='DIV' && obj.nodeName!='LI' && obj.nodeName!='P' && n>0)
			{
			obj=obj.parentNode;
			n--;
			}
		if (n>0)	divModifEnCours=obj;
		else		divModifEnCours=null;

		divModifEnCours.style.display='none';
		divModifEnCours=null;
		}
	}
}


function lienAjax(obj,objResult)
{
var objDiv=null;
var url='', html='';
if (obj)
	{
	if (obj.nodeName=='A')
		{
		url=obj.href;
		objDiv=obj.parentNode;
		}
	}
if (objResult)	objDiv=objResult;
if (objDiv && url.length>0)
	{
	html='<span class="Chargement">chargement...</span>';
	if (objDiv.nodeName=='DIV')	html='<p>'+html+'</p>';
	objDiv.innerHTML=html;

	objXmlHttp=new Ajax.Updater(objDiv, url+'&Ajax=true', { evalScripts:true } );
	}
return false;
}


function sendFormAjax(obj,objRes)
	{
	if (obj)
		{
		if (!objRes)	objRes=obj.parentNode;
		objRes.innerHTML='<span class="Chargement">chargement...</span>';
		data=obj.serialize();
		//alert(data+' / '+obj.action);
		new Ajax.Updater(objRes,obj.action+'&Ajax=True',{ method:obj.method,parameters:data });
		obj.reset();
		return false;
		}
	return false;
	}

function updatePanier()
	{
	obj=$('CartCount');
	if (obj)
		{
		new Ajax.Updater(obj,SiteRacine+'/Inc.CartCount.php');
		}
	}

function fadeOut(objName)
	{
	var obj=$(objName);
	if (obj)
		{
		new Effect.Fade(obj,{duration:1});
		}
	}

function fadeIn(objName)
	{
	var obj=$(objName);
	if (obj)
		{
		new Effect.Appear(obj,{duration:0.5});
		}
	}
