function checkFeeds(type, category, subcategory, isChecked) {
	var formName = "generate_rss_form";
	var typeArray = document.getElementsByName('type[]');
	// Check/uncheck all...
	if (!type && !category && !subcategory) {
		var allArray = document.getElementsByClassName('resource_type');
		for (j = 0; j < allArray.length; j++) {
			if (!isChecked) {
				allArray[j].checked = false;
				checkFeeds(allArray[j].value,'','','');
			} else {
				allArray[j].checked = true;
				checkFeeds(allArray[j].value,'','','');
			}
		}
	}
	// Check/uncheck all categories for this type...
	if (type && !category && !subcategory) {
		for (i = 0; i < typeArray.length; i++) {
			var thisCat = typeArray[i].value + "_category";
			var catArray = document.getElementsByClassName(thisCat);
			for (c = 0; c < catArray.length; c++) {
				if (typeArray[i].checked && (typeArray[i].value == type)) {
					catArray[c].checked = true;
					eval(catArray[c].attributes['onclick'].value.sub('this.checked','true'));
				} else if (typeArray[i].value == type) {
					catArray[c].checked = false;
					eval(catArray[c].attributes['onclick'].value.sub('this.checked','false'));
					if (typeArray[0].checked) { typeArray[0].checked = false; }
				}
			}
		}
	}
	// Check/uncheck all subcategories for this category...
	if (type && category && !subcategory) {
		var thisCat = type + "_category";
		var thisType = type + "_type";
		var catArray = document.getElementsByClassName(thisCat);
		var resourceArray = document.getElementsByClassName(thisType);
		var thisSubcat = type + "_" + category + "_subcategory";
		var subcatArray = document.getElementsByClassName(thisSubcat);
		for (s = 0; s < subcatArray.length; s++) {
			if (isChecked) {
				subcatArray[s].checked = true;
			} else {
				subcatArray[s].checked = false;
				if (typeArray[0].checked) { typeArray[0].checked = false; }
				if (resourceArray[0].checked) { resourceArray[0].checked = false; }
			}
		}
	}
	// Check/uncheck specific subcategory...
	if (type && category && subcategory) {
		var thisType = type + "_type";
		var resourceArray = document.getElementsByClassName(thisType);
		var thisCat = type + "_" + category;
		var catArray = document.getElementsByClassName(thisCat);
		if (catArray[0].checked) { catArray[0].checked = false; }
		if (typeArray[0].checked) { typeArray[0].checked = false; }
		if (resourceArray[0].checked) { resourceArray[0].checked = false; }
	}
}

function updateTags(selected, remove, frm) {
	var addForm = "generate_rss_form";
	var removeButton = "removeFeedTagButton";
	var divTag = "feedTagDiv";
	var currentTags = document.forms[frm].tags.value.split(", ");
	var setDiv = ""; var setVal = "";
	if (currentTags != "") {
		for (var i = 0;i < currentTags.length;i++) {
			var thisTag = trimAll(currentTags[i]);
			var spanID = thisTag + "Span";  
			if (setDiv != "") { setDiv += ", "; }
			if (thisTag == trimAll(selected)) {
				if (setVal) { setVal += ", "; }
				setVal += thisTag;
				setDiv += "<span id='" + spanID + "' class='tagSelected' onclick='updateTags(\"" + trimAll(thisTag) + "\",\"\",\"" + frm + "\")'>" + trimAll(thisTag) + "</span>";
				document.getElementById(removeButton).src = '/ncf/dtap/images/remove_tag_button_live.png';
				document.forms[frm].currentTag.value = thisTag;
			} else if (thisTag == trimAll(remove)) {
				document.getElementById(removeButton).src = '/ncf/dtap/images/remove_tag_button.png';
			} else { 
				if (setVal) { setVal += ", "; }
				setVal += thisTag;
				setDiv += "<span id='" + spanID + "' class='tagUnselected' onmouseover='this.className=\"tagHover\"' onmouseout='this.className=\"tagUnselected\"' onclick='updateTags(\"" + trimAll(thisTag) + "\",\"\",\"" + frm + "\")'>" + trimAll(thisTag) + "</span>";
			}
		}  
	}
	document.forms[addForm].tags.value = setVal;
	document.getElementById(divTag).innerHTML = setDiv;
	if (remove != "") { updateTags('','',frm); }
}


function addTag(tag, frm) {
	var addField = "add_feed_tag";
	var itExists = false;
	if (document.forms[frm].tags.value) {
		var tagsArray = document.forms[frm].tags.value.split(", ");
		for (var i = 0;i < tagsArray.length;i++) {
			if (trimAll(tagsArray[i]) == tag) { itExists = true; }
		}
		if (!itExists) {
			document.forms[frm].tags.value = trimAll(document.forms[frm].tags.value) + ", ";
		} else {
			alert('That tag (' + tag + ') has already been added...');
		}
	}
	if ((tag != "Enter tag here...") && !itExists) {
		document.forms[frm].tags.value = document.forms[frm].tags.value + document.forms[frm][addField].value;
	}
	document.forms[frm][addField].value = "";
	updateTags('','',frm);
}

function trimAll(sString) {
	if (sString.indexOf("o)))") != -1) {
		var stringSplit = sString.split("o)))");
		sString = stringSplit[0];
	}
	while (escape(sString.substring(0,1)) == '%A0') {
		sString = sString.substring(1, sString.length);
	}
	while (escape(sString.substring(sString.length-1, sString.length)) == '%A0') {
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

