var GROUP_SEPARATOR = ".";

//function getGroups(result){
//	var groups = "";
//	var separator = "::::";
//	for (var i=0; i<result.outputItems.length; i++) {
//		var group = result.outputItems[i].group;
//		if(groups.indexOf(group)==-1) groups+= group + separator;
//	}
//	groups = groups.substring(0, groups.length - separator.length);
//	return groups.split(separator);
//}

function getGroupHierarchy(result){	
	var groupVector;
	var tree = {};
	for (var i=0; i<result.outputItems.length; i++) {
		groupVector = getGroupVector(result.outputItems[i].group);
		tree = insertHierarchy(tree,groupVector,0);		
	}
	return tree;
}

function insertHierarchy(tree,groupVector,pos){
	var safety;	
	if(pos<groupVector.length) {
		safety = getSafetyName(groupVector[pos]);
		if(!tree[safety]) {
			var acum = [];
			for(var b=0; b<=pos; b++){
				acum = acum.concat(groupVector[b]);
			}
			tree[safety] = {
				label: groupVector[pos],
				domain: acum.join(GROUP_SEPARATOR),
				deep: pos,
				subgroups: []
			};			
		}
		var branch = insertHierarchy(tree[safety].subgroups,groupVector,pos+1);
		return tree;
	} else {
		return null; 
	}
}

function getGroupVector(group){	
	if(group.indexOf(GROUP_SEPARATOR)==-1){
		return [group];
	} else {
		return group.split(GROUP_SEPARATOR);		
	}
}

function renderGroupHeader(group){
	var safety = getSafetyName(group.label);
	var html = new StringBuffer();	
	//html.appendln("<div id='" + safety + "_group' class='result-group'>");
	var groupHeaderClass = "result-group-title";
	var groupBodyClass = "result-group-body";
	if(group.deep>0) {
		groupHeaderClass = "result-subgroup-title";
		groupBodyClass = "result-subgroup-body";
	}
	html.appendln("<a name='" + safety + "'></a>");
	html.appendln("	<div id='" + safety + "_header' class='" + groupHeaderClass + "'>");
	html.appendln(" 	&nbsp;<img  id='" + safety + "_icon' border='0' src='resources/images/icons/bottom_arrow.png'> ");
	html.appendln(" 	&nbsp;" +  group.label);
	html.appendln("	</div>");
	html.appendln("	<br><br>");
	html.appendln("	<div id='" + safety + "_body' class='" + groupBodyClass + "'>");
	return html;
}

function renderGroupFooter(group){	
	var html = new StringBuffer();
	if(group.subgroups) {
		var cont = 0;
		for(var key in group.subgroups) cont++;
		if(cont==0) html.appendln("<div class='result-go-up-link'><a href='#results-page'>up</a></div>");
	}
	html.appendln("	</div>");
	html.appendln("	<br><br>");
	return html;
}
