/*
(C) www.dhtmlgoodies.com, January 2006

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.

Version:	1.0	: January 16th - 2006
1.1 : January 31th - 2006 - Added cookie support - remember rss sources

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

Adapted for phpMYPortal by Fabien THIERRY

Alban BALLIEUX			- 17/03/2009 - Suppression des '_' dans les identifiants javascript
						- 03/09/2009 - Passage au gestionnaire d'evenement ....
*/

// Variables drag&drop
/* USER VARIABLES */
var DandD;
var FaitMove=new Boolean(false);
if (DandD!=1){
	DandD=1;
	var columnParentBoxId='dragableElementsParentBox';

	var transparencyWhenDragging=true;
	var autoScrollSpeed=4;	// Autoscroll speed	- Higher = faster
	var dragObjectBorderWidth=1;

	var id_save_pos='save_comp';
	var columnParentBox;
	var dragableBoxesObj;

	var boxIndex=0;
	var autoScrollActive=false;
	var dragableBoxesArray=new Array();
	var dragableIndex=new Array();

	var dragDropCounter=-1;
	var dragObject=false;
	var dragObjectNextSibling=false;
	var dragObjectParent=false;
	var destinationObj=false;
	var APrec=null;

	var mouse_x;var mouse_y;

	var el_x;var el_y;

	var rectangleDiv;
	var okToMove=true;

	var documentHeight=false;
	var documentScrollHeight=false;
	var dragableAreaWidth=false;

	var opera=navigator.userAgent.toLowerCase().indexOf('opera')>=0?true:false;

// Variables pr le déplacement de DIV
	var obMove;
	
	var DltX;var DltY;
	
	var obFocus=null;

// Variables TreeView
	var imageFolder='/phpmyportal/images/treeview/';	// Path to images
	var folderImage='folder.gif';
	var plusImage='plus.gif';
	var minusImage='minus.gif';
	var useAjaxToLoadNodesDynamically=true;
	var initExpandedNodes='';
	var idOfFolderTrees='';

	var treeUlCounter=0;var nodeId=1;

	var CurNode;
	var TV_Expand=[];
	var TV_Node_Expand=[];
	var ToExpand=0;
}
/*FONCTIONS COMMUNES*/
function Load_DandD(){
	initDragableBoxesScript();
	OnMouseMove();
	OnMouseUp();
	OnMouseDown();
	OnSelectStart();
// TreeView
	initTree();
	initArrangableNodes();
	if (TV_Expand){
		for (i=0;i<TV_Expand.length;i++)
			expandAll(TV_Expand[i]);
	}
	if (TV_Node_Expand){
		for (i=0;i<TV_Node_Expand.length;i++){
			expandNode(idOfFolderTrees[0],TV_Node_Expand[i]);
		}
	}
}

function OnMouseMove(){
//	document.body.onmousemove=MoveMouseMove;
//	document.onmousemove=MoveMouseMove;
	AjouteEvent('onmousemove',MoveMouseMove);
	AjouteEvent('onmousemove',MoveMouseMove,document.body);
}

function OnMouseUp(){
//	document.body.onmouseup=MoveMouseUp;
	AjouteEvent('onmouseup',MoveMouseUp);
}

function OnMouseDown(){
//	document.onmousedown=disableselect
//	document.body.onmousedown=MoveMouseDown;
	AjouteEvent('onmousedown',MoveMouseDown);
	AjouteEvent('onmousedown',disableselect);
}
function OnSelectStart(){
//	document.body.onselectstart=cancelSelectionEvent;
	AjouteEvent('onselectstart',cancelSelectionEvent);
}

function OnDragStart(){
//	document.body.ondragstart=cancelEvent;
	AjouteEvent('ondragstart',cancelEvent);
}
window.onload=Load_DandD;
// Ne peut pas fonctionner car system.js est inclus après ...
//AjouteEvent('onload',Load_DandD);

function getTopPos(inputObj){
	var returnValue=inputObj.offsetTop;
	while((inputObj=inputObj.offsetParent)!=null){
		if(inputObj.tagName!='HTML')returnValue+=inputObj.offsetTop;
	}
	return returnValue;
}

function getLeftPos(inputObj){
	var returnValue=inputObj.offsetLeft;
	while((inputObj=inputObj.offsetParent)!=null){
		if(inputObj.tagName!='HTML')returnValue+=inputObj.offsetLeft;
	}
	return returnValue;
}


/***
GESTION DU DRAG&DROP MULTI-COLONNES
****/

function autoScroll(direction,yPos){
	if(document.documentElement.scrollHeight>documentScrollHeight && direction>0)return;
	if(opera)return;
	window.scrollBy(0,direction);

	if (dragObject){
		if(direction<0){
			if(document.documentElement.scrollTop>0){
				dragObject.style.top=(el_y-mouse_y+yPos+document.documentElement.scrollTop)+'px';
			}else{
				autoScrollActive=false;
			}
		}else{
			if(yPos>(documentHeight-50)){
				dragObject.style.top=(el_y-mouse_y+yPos+document.documentElement.scrollTop)+'px';
			}else{
				autoScrollActive=false;
			}
		}
	}
	if(autoScrollActive)setTimeout('autoScroll('+direction+','+yPos+')',5);
}

function moveDragableElement(e){
	if(document.all)e = event;
	if(dragDropCounter<10)return;
	if(document.body!=dragObject.parentNode){
		dragObject.style.width=(dragObject.offsetWidth-(dragObjectBorderWidth*2))+'px';
		dragObject.style.position='absolute';
		dragObject.style.textAlign='left';
		if(transparencyWhenDragging){
			dragObject.style.filter='alpha(opacity=70)';
			dragObject.style.opacity='0.7';
		}

		dragObject.parentNode.insertBefore(rectangleDiv,dragObject);
		rectangleDiv.style.display='block';
		document.body.appendChild(dragObject);

		rectangleDiv.style.width=dragObject.style.width;
		rectangleDiv.style.height=(dragObject.offsetHeight-(dragObjectBorderWidth*2))+'px';
	}

	if(e.clientY<50||e.clientY>(documentHeight-50)){
		if(e.clientY<50 && !autoScrollActive){
			autoScrollActive=true;
			autoScroll((autoScrollSpeed*-1),e.clientY);
		}
		if(e.clientY>(documentHeight-50)&&document.documentElement.scrollHeight<=documentScrollHeight && !autoScrollActive){
			autoScrollActive=true;
			autoScroll(autoScrollSpeed,e.clientY);
		}
	}else{
		autoScrollActive=false;
	}

	var leftPos=e.clientX;
	var topPos=e.clientY+document.documentElement.scrollTop;

	dragObject.style.left=(e.clientX-mouse_x+el_x)+'px';
	dragObject.style.top=(el_y-mouse_y+e.clientY+document.documentElement.scrollTop)+'px';

	if(!okToMove)return;
	okToMove=false;

	destinationObj=false;
	rectangleDiv.style.display='none';

	var objFound=false;
	var tmpParentArray=new Array();

	if(!objFound){
		for(var no=1;no<dragableBoxesArray.length;no++){
			if(dragableBoxesArray[no]['obj']==dragObject)continue;
			tmpParentArray[dragableBoxesArray[no]['obj'].parentNode.id]=true;
			if(!objFound){
				var tmpX=getLeftPos(dragableBoxesArray[no]['obj']);
				var tmpY=getTopPos(dragableBoxesArray[no]['obj']);

				if(leftPos>tmpX && leftPos<(tmpX+dragableBoxesArray[no]['obj'].offsetWidth) && topPos>(tmpY-20) && topPos<(tmpY+(dragableBoxesArray[no]['obj'].offsetHeight/2))){
					destinationObj=dragableBoxesArray[no]['obj'];
					destinationObj.parentNode.insertBefore(rectangleDiv,dragableBoxesArray[no]['obj']);
					rectangleDiv.style.display='block';
					objFound=true;
					break;
				}

				if(leftPos>tmpX&&leftPos<(tmpX+dragableBoxesArray[no]['obj'].offsetWidth)&&topPos>=(tmpY+(dragableBoxesArray[no]['obj'].offsetHeight/2)) && topPos<(tmpY+dragableBoxesArray[no]['obj'].offsetHeight)){
					objFound=true;
					if(dragableBoxesArray[no]['obj'].nextSibling){
						destinationObj=dragableBoxesArray[no]['obj'].nextSibling;
						if (destinationObj){
							if(!destinationObj.tagName)destinationObj=destinationObj.nextSibling;
							if(destinationObj&&destinationObj!=rectangleDiv)destinationObj.parentNode.insertBefore(rectangleDiv,destinationObj);
						}
					}else{
						destinationObj=dragableBoxesArray[no]['obj'].parentNode;
						dragableBoxesArray[no]['obj'].parentNode.appendChild(rectangleDiv);
					}
					rectangleDiv.style.display='block';
					break;
				}


				if(!dragableBoxesArray[no]['obj'].nextSibling && leftPos>tmpX && leftPos<(tmpX+dragableBoxesArray[no]['obj'].offsetWidth)
				&& topPos>topPos>(tmpY+(dragableBoxesArray[no]['obj'].offsetHeight))){
					destinationObj=dragableBoxesArray[no]['obj'].parentNode;
					dragableBoxesArray[no]['obj'].parentNode.appendChild(rectangleDiv);
					rectangleDiv.style.display='block';
					objFound=true;
				}
			}
		}

	}

	if(!objFound){
		for(var no=1;no<=numberOfColumns;no++){
			if(!objFound){
				var obj=document.getElementById('dragableBoxesColumn' + no);
				var left=getLeftPos(obj)/1;
				var width=obj.offsetWidth;
				if(leftPos>left && leftPos<(left+width)){
					destinationObj=obj;
					obj.appendChild(rectangleDiv);
					rectangleDiv.style.display='block';
					objFound=true;
				}
			}
		}
	}
	setTimeout('okToMove=true',5);
}

function stop_dragDropElement(){
	if (!isset(destinationObj.id))return;

	if(dragDropCounter<10){
		dragDropCounter=-1
		return;
	}
	dragDropCounter=-1;
	if(transparencyWhenDragging){
		dragObject.style.filter=null;
		dragObject.style.opacity=null;
	}
	dragObject.style.position='static';
	dragObject.style.width=null;
	var numericId=dragObject.id.replace(/[^0-9\-]/g,'');
	if(!destinationObj)return;

	if(destinationObj.id!=dragObject.id){
		if(destinationObj && destinationObj.id && destinationObj.id!=dragObject.id){
			if(destinationObj.id.indexOf('dragableBoxesColumn')>=0){
				destinationObj.appendChild(dragObject);
				dragableBoxesArray[dragableIndex[numericId]]['parentObj']=destinationObj;
			}else{
				destinationObj.parentNode.insertBefore(dragObject,destinationObj);
				dragableBoxesArray[dragableIndex[numericId]]['parentObj']=destinationObj.parentNode;
			}
			if(id_save_pos!=''){
				if(id_pos=document.getElementById(id_save_pos)){
					id_pos.style.visibility='visible';
				}
			}
		}else{
			if(dragObjectNextSibling){
				dragObjectParent.insertBefore(dragObject,dragObjectNextSibling);
			}else{
				if(dragObject.parentNode.id!=dragObjectParent.id)dragObjectParent.appendChild(dragObject);
			}
		}
	}
	autoScrollActive=false;
	rectangleDiv.style.display='none';
	dragObject=false;
	dragObjectNextSibling=false;
	destinationObj=false;
	documentHeight=document.documentElement.clientHeight;
}

function cancelSelectionEvent(e){
	if(document.all)e=event;
	if(FaitMove==true)return false;
	if(e.target)source=e.target;
	else if(e.srcElement)source=e.srcElement;
	if(source.nodeType==3)source=source.parentNode;
	if(source.tagName.toLowerCase()=='input')return true;
	if(dragDropCounter>=0)return false; else return true;
}

function cancelEvent(){
	return false;
}

function mouseoverBoxHeader(){
	if(dragDropCounter==10)return;
}

function mouseoutBoxHeader(e,obj){
	if(!obj)obj=this;
}

function initDragDropBoxTimer(){
	if(dragDropCounter>=0 && dragDropCounter<10){
		dragDropCounter++;
		setTimeout('initDragDropBoxTimer()',10);
		return;
	}
	if(dragDropCounter==10)mouseoutBoxHeader(false,dragObject);

}

function initDragDropBox(e){
	id_div=this.id;
	dragDropCounter=1;
	if(document.all)e=event;
	if(e.target)source=e.target;
	else if(e.srcElement)source=e.srcElement;
	if(source.nodeType==3)source=source.parentNode;
	T=source.tagName.toLowerCase();
	if(T=='img'||T=='a'||T=='input'||T=='td'||T=='tr'||T=='table')return;
	if(source.id.indexOf('move_')>=0) return;
	mouse_x=e.clientX;
	mouse_y=e.clientY;
	O_div=document.getElementById(id_div);
	var numericId=id_div.replace(/[^0-9\-]/g,'');
	el_x=getLeftPos(O_div.parentNode)/1;
	el_y=getTopPos(O_div.parentNode)/1-document.documentElement.scrollTop;
	dragObject=O_div.parentNode;
	documentScrollHeight=document.documentElement.scrollHeight+100+dragObject.offsetHeight;

	if(dragObject.nextSibling){
		dragObjectNextSibling=dragObject.nextSibling;
		if(dragObjectNextSibling.tagName!='DIV')dragObjectNextSibling=dragObjectNextSibling.nextSibling;
	}
	dragObjectParent=document.getElementById('dragableBox'+numericId);
	dragDropCounter=0;
	initDragDropBoxTimer();
	return false;
}

function RecupPos(){
	var saveString="";
	Id_Col='dragableBoxesColumn';
	for(var numcol=0;numcol<=10;numcol++){
		Cur_Id_Col=Id_Col+numcol;
		if(Cur_Col=document.getElementById(Cur_Id_Col)){
			for(var numfils=0;numfils<Cur_Col.childNodes.length;numfils++){
				Cur_Fils=Cur_Col.childNodes[numfils];
				Cur_Id_Fils=Cur_Fils.id;
				if(Cur_Id_Fils!=''){
					if(document.getElementById(Cur_Id_Fils)){
						if(Cur_Id_Fils.indexOf('dragableBox')>=0){
							if(saveString.length>0)saveString=saveString+';';
							NumID=Cur_Id_Fils.replace(/[^0-9\-]/g,'');
							saveString=saveString+numcol+":"+NumID;
						}
					}
				}
			}
		}
	}
	return saveString;
}

function saveData(){
	var saveString="";
	Id_Col='dragableBoxesColumn';
	saveString=RecupPos();
	if (saveString!=''&&id_save_pos!=''){
		Id_Form= 'frm_'+id_save_pos;
		if (Obj_Frm=document.getElementById(Id_Form)){
			Elts=Obj_Frm.elements;
			for (Num=0;Num<Elts.length;Num++){
				if(Elts[Num].name=='ORDRE'){
					Elts[Num].value=saveString;
					Obj_Frm.submit();
				}
			}
		}
		if (id_pos=document.getElementById(id_save_pos)){
			id_pos.style.visibility='hidden';
		}
	}
}

function clearData(){
	if (id_save_pos!=''){
		Id_Form='frm_'+id_save_pos;
		if (Obj_Frm=document.getElementById(Id_Form)){
			Elts=Obj_Frm.elements;
			for(Num=0;Num<Elts.length; Num++){
				if(Elts[Num].name=='ORDRE'){
					Elts[Num].value='RESET';
					Obj_Frm.submit();
				}
			}
		}
		if (id_pos=document.getElementById(id_save_pos)){
			id_pos.style.visibility='hidden';
		}
	}
}

function createHelpObjects(){
	rectangleDiv=document.createElement('DIV');
	rectangleDiv.id='rectangleDiv';
	rectangleDiv.style.display='none';
	document.body.appendChild(rectangleDiv);
}

function Register_Box(id){
	if (div=document.getElementById(id)){
		boxIndex++;
		dragableBoxesArray[boxIndex]=new Array();
		dragableBoxesArray[boxIndex]['obj']=div;
		dragableBoxesArray[boxIndex]['parentObj']=div.parentNode;
		NumID=id.replace(/[^0-9\-]/g,'');
		dragableIndex[NumID]=boxIndex;
		idH='dragableBoxHeader'+NumID;
		if(divH=document.getElementById(idH))divH.onmousedown=initDragDropBox;
	}
}

function initDragableBoxesScript(){
	createHelpObjects();
	documentHeight=document.documentElement.clientHeight;
}

/*
GESTION DES BOITES DEPLACABLES
*/

/*function disableselect(e){
	return false;
	if(FaitMove==true)return false; else return true;
}*/
function disableselect(ev){
	if(FaitMove==true){
		if (ev.preventDefault) {
			ev.preventDefault();
		} else {
			ev.returnValue = false;
			return false;
		}
	}
}


var fTEST=false;
var fTEST2=false;
function MoveMouseDown(e) {
	if(document.all)e=event;

	if(e.target)source=e.target;
	else if(e.srcElement)source=e.srcElement;
	if(source.id.indexOf('CRP')>=0) return;
	if(source.nodeType==3)source=source.parentNode;
	source=source.parentNode;
	Cpt=0;

	while(source.id==""&&Cpt<10&&!(source.id.indexOf('MV')>=0)){
		if(source.id.indexOf('CRP')>=0) return;
		source=source.parentNode;
		Cpt++;
	}
	if(source && source.tagName){
		C=source.tagName.toLowerCase();
		if(C=='img'||C=='input'||C=='a'||C=='input'||C=='form'||C=='td'||C=='tr'||C=='table')return;
		if(source.id.indexOf('CRP')>=0) return;
		if(source.id.indexOf('MV')>=0){
			if (obFocus!=null)obFocus.style.zIndex=1500;
			obFocus=source;
			source.style.zIndex=1600;
			if(obMove=document.getElementById(source.id)){
				DltX=e.clientX-getLeftPos(obMove);
				DltY=e.clientY-getTopPos(obMove);
				IdPere="";
				CptP=0;
				Id=source;
				while(IdPere==""&&CptP<15){
					CptP++;
					Id=Id.parentNode;
					//alert(Id.tagName.toLowerCase());
					if(Id.tagName.toLowerCase()!='body'){
						if(Id.id.indexOf('MV')>=0){
							IdPere=Id;
							DltX+=getLeftPos(IdPere);
							DltY+=getTopPos(IdPere);
						}
					}else{CptP=16;}
				}
				FaitMove=true;
				if(transparencyWhenDragging){
					obMove.style.filter='alpha(opacity=70)';
					obMove.style.opacity='0.7';
				}
			}
		}
	}
	return true;
}

function MoveMouseMove(e) {
	if(document.all)e=event;
	if(FaitMove && obMove){
		X=e.clientX-DltX;
		Y=e.clientY-DltY;
		obMove.style.left=X+"px";
		obMove.style.top=Y+"px";
	}else{moveDragableElement(e);}
}

function MoveMouseUp(){
	if(transparencyWhenDragging && FaitMove && obMove){
		obMove.style.filter=null;
		obMove.style.opacity=null;
	}
	obMove=null;
	FaitMove=false;
	stop_dragDropElement();
}

/****
TREE VIEW
****/

function expandAll(treeId){
	var menuItems=document.getElementById(treeId).getElementsByTagName('LI');
	for(var no=0;no<menuItems.length;no++){
		var subItems=menuItems[no].getElementsByTagName('UL');
		if(subItems.length>0 && subItems[0].style.display!='block'){
			showHideNode(false,menuItems[no].id.replace(/[^0-9]/g,''));
		}
	}
}

function collapseAll(treeId){
	var menuItems = document.getElementById(treeId).getElementsByTagName('LI');
	for(var no=0;no<menuItems.length;no++){
		var subItems=menuItems[no].getElementsByTagName('UL');
		if(subItems.length>0 && subItems[0].style.display=='block'){
			showHideNode(false,menuItems[no].id.replace(/[^0-9]/g,''));
		}
	}
}
function expandNode(treeId,no){
	var menuItems=document.getElementById(treeId).getElementsByTagName('LI');
	showHideNode(false,no);
}

function parseSubItems(ulId,parentId){
	if(initExpandedNodes){
		var nodes=initExpandedNodes.split(',');
	}
	var branchObj=document.getElementById(ulId);
	var menuItems=branchObj.getElementsByTagName('LI');
	for(var no=0;no<menuItems.length;no++){
		nodeId++;
		var subItems=menuItems[no].getElementsByTagName('UL');
		var img=document.createElement('IMG');
		img.src=imageFolder+plusImage;
		img.onclick=showHideNode;
		var aTag=menuItems[no].getElementsByTagName('A')[0];
		if(subItems.length==0)img.style.visibility='hidden';else{
			subItems[0].id='tree_ul_'+treeUlCounter;
			treeUlCounter++;
			aTag.href=aTag.href.replace('#ID_NODE#',subItems[0].id);
			if (aTag.href.indexOf('_EXPAND_')>0){
				aTag.href=aTag.href.replace('_EXPAND_','');
				TV_Node_Expand[ToExpand]=nodeId;
				ToExpand++;
				TVSelect(aTag);
			}
		}
		aTag.onclick+=showHideNode;
		menuItems[no].insertBefore(img,aTag);
		menuItems[no].id='pMp_treeNode'+nodeId;
		var folderImg=document.createElement('IMG');
		if(menuItems[no].className){
			folderImg.src=imageFolder+menuItems[no].className;
		}else{
			folderImg.src=imageFolder+folderImage;
		}
		var taille = (folderImg.src.length - 4);
		if ((folderImg.src.substring(taille,taille +1)) == '.'){
			menuItems[no].insertBefore(folderImg,aTag);
		}
		var tmpParentId=menuItems[no].getAttribute('class');
		if(!tmpParentId)tmpParentId=menuItems[no].tmpParentId;
		if(!tmpParentId)tmpParentId=menuItems[no].className;
		if(tmpParentId && nodes[tmpParentId])showHideNode(false,nodes[no]);
	}
}

function showHideNode(e,inputId){
	if(inputId){
		if(!document.getElementById('pMp_treeNode'+inputId))return;
		thisNode=document.getElementById('pMp_treeNode'+inputId).getElementsByTagName('IMG')[0];
	}else{
		thisNode=this;
		if(this.tagName=='A')thisNode=this.parentNode.getElementsByTagName('IMG')[0];
	}
	if(thisNode.style.visibility=='hidden')return;
	var parentNode=thisNode.parentNode;
	inputId=parentNode.id.replace(/[^0-9]/g,'');
	if(thisNode.src.indexOf(plusImage)>=0){
		thisNode.src=thisNode.src.replace(plusImage,minusImage);
		var ul=parentNode.getElementsByTagName('UL')[0];
		ul.style.display='block';
		if(!initExpandedNodes)initExpandedNodes=',';
		if(initExpandedNodes.indexOf(','+inputId+',')<0)initExpandedNodes=initExpandedNodes+inputId+',';
		var firstLi=ul.getElementsByTagName('LI')[0];
		if(firstLi){
			var parentId=firstLi.getAttribute('class');
			if(!parentId)parentId=firstLi.parentId;
			if(!parentId)parentId=firstLi.className;
			if(parentId){
				if(useAjaxToLoadNodesDynamically){
					parentId=parentId.replace('#ID#',ul.id);
					if(parentId!="sheet"&&parentId!="sheet."&&parentId!="sheet.gif"){
						eval('xajax_'+parentId);
					}
				}
			}
		}
	}else{
		thisNode.src=thisNode.src.replace(minusImage,plusImage);
		parentNode.getElementsByTagName('UL')[0].style.display='none';
		initExpandedNodes=initExpandedNodes.replace(','+inputId,'');
	}
	return false;
}

function initTree(){
	if(idOfFolderTrees=='')idOfFolderTrees=new Array();
	CurNode='pMp_treeNode'+nodeId;
	for(var treeCounter=0;treeCounter<idOfFolderTrees.length;treeCounter++){
		if(document.getElementById(idOfFolderTrees[treeCounter])){
			var dhtmlgoodies_tree=document.getElementById(idOfFolderTrees[treeCounter]);
			var menuItems=dhtmlgoodies_tree.getElementsByTagName('LI');
			for(var no=0;no<menuItems.length;no++){
				var onc=menuItems[no].onclick;
				nodeId++;
				var subItems=menuItems[no].getElementsByTagName('UL');
				var img=document.createElement('IMG');
				img.src=imageFolder+plusImage;
				img.onclick=showHideNode;
				var aTag = menuItems[no].getElementsByTagName('A')[0];
				if(subItems.length==0)img.style.visibility='hidden';else{
					subItems[0].id='tree_ul_'+treeUlCounter;
					treeUlCounter++;
					aTag.href=aTag.href.replace('#ID_NODE#',subItems[0].id);
					if (aTag.href.indexOf('_EXPAND_')>0){
						aTag.href=aTag.href.replace('_EXPAND_','');
						TV_Node_Expand[ToExpand]=nodeId;
						ToExpand++;
						TVSelect(aTag);
					}
				}
				aTag.onclick+=showHideNode;
				if(!aTag.previousSibling){
					menuItems[no].insertBefore(img,aTag);
					menuItems[no].id='pMp_treeNode'+nodeId;
					var folderImg=document.createElement('IMG');
					if(menuItems[no].className)folderImg.src=imageFolder+menuItems[no].className;
					else folderImg.src=imageFolder+folderImage;
					var taille = (folderImg.src.length - 4);
					if((folderImg.src.substring(taille,taille +1)) == '.')menuItems[no].insertBefore(folderImg,aTag);
				}
			}
		}
	}
}

function TVSelect(A){
	if(APrec!=null)APrec.className='';
	APrec=A;
	A.className='ASelect';
}

function AffVal(IDn,ID,V){
	CurNode=IDn;
	if (TV=document.getElementById(IDn)){
		if(A=TV.parentNode.getElementsByTagName('A')[0])TVSelect(A);
	}
	if(I=document.getElementById(ID))I.value=V;
}

/*COMPOSANTS*/
function Cree_Composant(Nom){
	FaitMove=false;
	id='dragableBoxesColumn1';
	if(Obj=document.getElementById(id)){
		RadId='new_comp';
		Cpt=1;
		IdComp=RadId+Cpt;
		while(document.getElementById(IdComp)){
			Cpt++;
			IdComp=RadId+Cpt;
		}
		var ObjComp=document.createElement('div');
		ObjComp.id=IdComp;
		Obj.appendChild(ObjComp);
		xajax_Gere_Composant('ADD',IdComp,Nom,RecupPos());
	}
	FaitMove=false;
}

/*DEPLACEMENT DE TEXTES*/
function initArrangableNodes(){
	if (document.getElementById('arrangableNodes')){
		arrParent=document.getElementById('arrangableNodes');
		arrMoveCont=document.getElementById('movableNode').getElementsByTagName('UL')[0];
		arrInsertDiv=document.getElementById('arrDestInditcator');
		arrZone=document.getElementById('arrangableNodes').parentNode.parentNode.parentNode.parentNode;
		leftPosArrangableNodes=getLeftPos(arrZone);
		arrInsertDiv.style.left=leftPosArrangableNodes-5+'px';
		widthArrangableNodes=arrZone.offsetWidth;
		var subs=arrParent.getElementsByTagName('LI');
		for(var no=0;no<subs.length;no++){
			subs[no].onmousedown=initMoveNode;
			subs[no].onselectstart=cancelEvent;
		}
		document.documentElement.onmouseup=arrangeNodeStopMove;
		document.documentElement.onmousemove=arrangeNodeMove;
		document.documentElement.onselectstart=cancelEvent;	
	}
}

function JS_Periode(nom,periode,format,type){
	var d = new Date();
	var annee='';
	var mois='';
	var jour='';
	var sem='';
	var datef='';
	var erreur=0;
	var AAnnee=0;
	var AMois=0;
	var AJour=0;
	var ASem=0;
	var pos=0;
	var date=document.getElementById(nom).value;
	
	if (type=='p'){
		var direct=1;
	}else{
		var direct=-1;
	}
	format = format.toLowerCase();
	
	for (i=0;i<=format.length;i++){
		switch (format.substr(i,1))
		{
			case 'y': annee=parseFloat(date.substr(pos,4)); pos+=4; AAnnee=1;break;
			case 'm': mois=parseFloat(date.substr(pos,2)); pos+=2; AMois=1;break;
			case 'd': jour=parseFloat(date.substr(pos,2)); pos+=2; AJour=1;break;
			case 'w': sem=parseFloat(date.substr(pos,2)); pos+=2; ASem=1;break;
		}
	}

	if (AAnnee==1&&isNaN(annee)==true) annee=parseFloat(d.getFullYear());
	if (AAnnee==1&&isNaN(mois)==true) mois=parseFloat(d.getMonth());
	if (AAnnee==1&&isNaN(jour)==true) jour=parseFloat(d.getDay());
	if (AAnnee==1&&isNaN(sem)==true) sem=parseFloat(d.getWeek());
		
	switch (periode.substr(0,1)){
		case 'y': annee=annee+direct; break;
		case 'd': jour=jour+direct; break;
		case 'm': mois=mois+direct; break;
		case 'w': sem=sem+direct; break;
	}
	
	if (AJour==1){
		if (jour>=32&&mois%2!=0 || jour>=31&&mois%2==0){
			mois=mois+1;
			jour=1; 
		}
		if (jour<=0){
			mois=mois-1;
			if (mois%2<=0) jour=30;
			if (mois%2!=0) jour=31;
		}

		if (mois==2){
			if (direct==1){
				if (jour>=29 && !($an % 4 == 0 && ($an % 100 != 0 || $an % 400 == 0)) ){
					mois=mois+1;
					jour=1;
				}
				if (jour>=30){
					mois=mois+1;
					jour=1;
				}
			}else{
				if (jour>=30 && ($an % 4 == 0 && ($an % 100 != 0 || $an % 400 == 0))){
					jour=29;
				}
				if (jour>=30 && !($an % 4 == 0 && ($an % 100 != 0 || $an % 400 == 0)) ){
					jour=28;
				}
			}
		}
	}
	if (AMois==1){
		if (mois>=13){
			annee=annee+1;
			mois=1; 
		}
		if (mois<=0){
			annee=annee-1;
			mois=12;
		}
	}
	if (ASem==1){
		
		if (sem>=53){
			sem=1;
			annee=annee+1;
		}
		if (sem<=0){
			sem=52;
			annee=annee-1;
		}
	}
	annee='0000'+annee;
	jour='0000'+jour;
	mois='0000'+mois;
	sem='0000'+sem;

	for (i=0;i<=format.length;i++){
		switch (format.substr(i,1))
		{
		case 'y': datef+=annee.substr(annee.length-4,4); break;
		case 'm': datef+=mois.substr(mois.length-2,2); break;
		case 'd': datef+=jour.substr(jour.length-2,2); break;
		case 'w': datef+=sem.substr(sem.length-2,2); break;
		}
	}
	document.getElementById(nom).value = datef;
}
