function insertAfter(newChild, refChild) { 
	refChild.parentNode.insertBefore(newChild,refChild.nextSibling); 
} 

function plusCat(catId, max)
{
	if (document.getElementById('selected_extra')) {
		var select = document.getElementById('catSelect');
		children = document.getElementById('selected_extra').childNodes;
		
		if (children.length < max) {
			var newSelect = select.cloneNode(true);
			
			newSelect.id = "";
			
			var notWhitespace = /\S/;
		  	for (var x = 0; x < newSelect.childNodes.length; x++) {
			    var childNode = newSelect.childNodes[x];
			    if ((childNode.nodeType == 3)&&(!notWhitespace.test(childNode.nodeValue))) {
					// that is, if it's a whitespace text node
			      	newSelect.removeChild(newSelect.childNodes[x]);
			      	x--;
			    }
			}
			var opt = newSelect.childNodes[0].options;
			for (i = 0; i < opt.length; i++) {
				if (opt[i].value == catId) {
					opt[i].selected = true;
				}
			}
		
			var delLink = document.getElementById('catDelLink');
			var a = delLink.cloneNode(true);
			a.id = "";
			a.style.display = "inline";
			newSelect.appendChild(a);
			
			delLink.parentNode.insertBefore(newSelect, delLink);
		} else {
			alert("You've used all the categories allowed.");
		}
		
	} else {
		var select = document.getElementById('catSelect');

		var newSelect = select.cloneNode(true);
		
		newSelect.id = "";
		
		var notWhitespace = /\S/;
	  	for (var x = 0; x < newSelect.childNodes.length; x++) {
		    var childNode = newSelect.childNodes[x];
		    if ((childNode.nodeType == 3)&&(!notWhitespace.test(childNode.nodeValue))) {
				// that is, if it's a whitespace text node
		      	newSelect.removeChild(newSelect.childNodes[x]);
		      	x--;
		    }
		}
		var opt = newSelect.childNodes[0].options;
		for (i = 0; i < opt.length; i++) {
			if (opt[i].value == catId) {
				opt[i].selected = true;
			}
		}
	
		var delLink = document.getElementById('catDelLink');
		var a = delLink.cloneNode(true);
		a.id = "";
		a.style.display = "inline";
		newSelect.appendChild(a);
		
		delLink.parentNode.insertBefore(newSelect, delLink);
	}
}	

function removeCat(element)
{
	var toRem = element.parentNode;
	toRem.parentNode.removeChild(toRem);
	document.getElementById('plusCategory').style.display = "block";
}