cms.content =
{
	getAncestor : function(element, ancestorNodename)
	{
		do
		{
			element = element.parentNode;
		}
		while (element.nodeName.toLowerCase() != ancestorNodename);
		return element;
	},

	replace : function(element, url, ancestorNodename, append, mceControlId)
	{
		if (ancestorNodename)
		{
			element = this.getAncestor(element, ancestorNodename);
		}

		var request = new HttpRequest();
		request.setCallback(this.onReplace, this, false);
		request.element = element;
		request.append = append;
		request.mceControlId = mceControlId;
		request.sendRequest(url);

		return false;
	},
	
	onReplace : function(response, request)
	{
		// Temp solution
		var container = document.createElement("div");
		container.className = "item";
		container.innerHTML = response;
		
		if (request.append)
		{
			request.element.appendChild(container);
		}
		else
		{
			request.element.parentNode.replaceChild(container, request.element);
		}
		
		if (request.mceControlId)
		{
			tinyMCE.execCommand('mceAddControl', false, request.mceControlId);
		}
		
		// Custom Page Puppy
		cms.custom.popup.initializeForms(container);
	}
}
