var vocabularyHash = null;

function drawInnerHtml() {
	vocabularyHash.each(
		function(item, index) {
			if(item!="") {
				var innerHTML = "<ul>";
				for(i=0; i < item.length; i++) {
					if(item[i]!="" && item[i]!=" ") {
						innerHTML += "<li>" 
									+ item[i] 
									+ " [<a href=\"javascript:removeField('"
									+ index
									+ "', '"
									+ item[i]
									+ "', '"
									+ index
									+ "__"
									+ item[i]
									+"')\">x</a>]</li>";	
					
					}
				}
				$(index).innerHTML = innerHTML + "</ul>";
			
			} else {
				$(index).innerHTML = "";
			}

	});
}

function addField(fieldname, fieldvalue, flag){			
	
	if (vocabularyHash.get(fieldname) == null) {
		vocabularyHash.set(fieldname, new Array());
	}
	var myArray = vocabularyHash.get(fieldname);

	if(flag) {
		if (!myArray.contains(fieldvalue)){
			vocabularyHash.set(fieldname,myArray.include(fieldvalue));					
		}
		
	} else {
		myArray.erase(fieldvalue);
	}				
	
	myArray.sort();

	if (myArray.length > 0 ) {
		var innerHTML = "<ul>";
	
		for (i = 0; i < myArray.length; i++) {
			var item = myArray[i];
			innerHTML += "<li>" + item  
								+ " [<a href=\"javascript:removeField('"
								+ fieldname
								+ "', '"
								+ item
								+ "', '"
								+ fieldname
								+ "__"
								+ item
								+"')\">x</a>]</li>";	
		}

		$(fieldname).innerHTML = innerHTML + "</ul>";
	
	} else {
		$(fieldname).innerHTML = "";
	}
}

function removeField(fieldname, fieldvalue, fieldId){
	var name = "map['"+fieldId+"']";
	document.getElementsByName(name)[0].checked = false;
	vocabularyHash.get(fieldname).erase(fieldvalue);
	drawInnerHtml();
}

