/* (c) 03/2007 Nathana�l Mariani pour PMP CONCEPT */
//	
//	DOM MANAGER
//
//	Implémente des fonctions utiles pour la gestion des DOM (HTML, XML, ..)

var DomMgr =
{
	nextItem : function(item, nodeName) 
	{
		if (item == null) return
		var next = item.nextSibling
		while (next != null) {
			if (next.nodeName == nodeName) return next
			next = next.nextSibling
		}
		return null
	},

	previousItem : function(item, nodeName) 
	{
		var previous = item.previousSibling
		while (previous != null) {
			if (previous.nodeName == nodeName) return previous
			previous = previous.previousSibling
		}
		return null
	},

	insertBefore : function(item1, item2) 
	{
		var parent = item2.parentNode
		parent.insertBefore(item1, item2)
	},

	moveBefore : function(item1, item2) 
	{
		var parent = item1.parentNode
		parent.removeChild(item1)
		parent.insertBefore(item1, item2)
	},

	moveAfter : function(item1, item2) 
	{
		var parent = item1.parentNode
		parent.removeChild(item1)
		parent.insertBefore(item1, item2 ? item2.nextSibling : null)
	},
	
	getElementsByMaskId : function(maskId, type) //maskId : masque, exemple='photo[%i][ordre]'
	{
		var searchStr = maskId;
		searchMask = searchStr.match(/%i|%s/g); // recherche et r�cup�re dans un tableau les masques variables %i(entier) et %s(chaine)
		searchArray = searchStr.replace(/%i|%s/g,";").split(';');
		
		var foundElements = new Array();
		elements = document.getElementsByTagName(type);
		for(iElem=0; iElem<elements.length; iElem++)
		{
			var idStr = elements[iElem].id;
			
			if(!idStr)
				continue;
			
			for(i=0; i<searchArray.length; i++)
				idStr = idStr.replace(searchArray[i], i==0 || i==searchArray.length-1 ? "" : ";");
			
			var idArray = idStr.split(';');
			
			for(i=0; i<idArray.length; i++)
				if(idArray[i]=="") delete idArray[i];
			
			if(idArray.length==searchMask.length)
			{
				for(i=0; i<searchMask.length; i++)
				{
					var regexp = new RegExp();
						
					switch(searchMask[i])
					{
						case "%i":
							regexp = /^\d+$/;
							break;
						
						case "%s":
							regexp = /^\w+$/;
							break;
					}
					
					if( idArray[i].search(regexp)==-1 )
						break;
						
					if(i==searchMask.length-1)
						foundElements.push(elements[iElem]);
				}
			}
		}
		
		return foundElements;
		
	}
	
}

