/* (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 maskStr = maskId;
		
		maskStr = maskStr.replace(/\[/g,"\\[");
		maskStr = maskStr.replace(/\]/g,"\\]");
		maskStr = maskStr.replace(/%i/g,"\\d+");
		maskStr = maskStr.replace(/%s/g,"\\w+");
		
		regexp = new RegExp(maskStr);
		
		var foundElements = new Array();
		elements = document.getElementsByTagName(type);
		for(iElem=0; iElem<elements.length; iElem++)
		{
			var idStr = elements[iElem].id;
			
			if(!idStr)
				continue;
			
			if( idStr.search(regexp)>=0 )
			{
				foundElements.push(elements[iElem]);
			}
		}
		
		return foundElements;
		
	}
	
}

