var _selectedTags = new Array();

function dispTagcloud() {
	
	//_lasttag = -1;
		
	var _biggest = 0;
	
	var _smallest = _termlist[_termlist.length-1]["counter"];
	
	for (var _key in _termlist) {
		
		if(parseInt(_termlist[_key]["counter"]) > _biggest) {
			_biggest = _termlist[_key]["counter"];
		}
	}
	
	_biggest -= _smallest;
	
	var _html = "";
	
	
	_termlist.sort(keySortAlpha);
		
	//var _keywordsTrans = new Array;
	
	for (var i = 0; i < _termlist.length; i++) {
		
		_termlist_equ_alpha[_termlist[i]["term"]] = i;
		_termlist[i]["id_alpha"] = i;
		
		var _tmpsize = _termlist[i]["counter"] - _smallest;
		
		if(_tmpsize != 0) {
			_tmpsize = Math.round(_tmpsize / _biggest * (_styles.length - 1));
		}
		
		_html += '<div class="term_div" id="tagcontainer_' + i + '"><span class="term" id="tagspan_' + i + '" onclick="dispResult(' + i + ');" style="' + _styles[_tmpsize] + '">' + removeX(_termlist[i]["term"]) + '</span>'+
				 '<span class="term_frequency">(' + _termlist[i]["counter"]  + ')</span></div>';
	}
	
	$("#terms").html(_html);
	$("#box_results").css("margin-top",$("#box_terms").height() + 90);
	$("#box_terms").fadeIn(function() {
		$("#interface_left").css("visibility","visible");
		screenMsgIn("thinking...");
		window.setTimeout("calcclusters()",50);
	});
}




function dispResult(_param) {
	
	//console.log(_param);
	
	// add or remove term form list
	// ---------------------------------------------------------------------
	var _isin = jQuery.inArray(_param,_selectedTags);
	(_isin == -1) ? _selectedTags.push(_param):_selectedTags.splice(_isin,1);
	
	
	// interface adjustments
	// ---------------------------------------------------------------------
	
	for (var i = 0; i < _termlist.length; i++) {										// decolor all terms
		$("#tagspan_" + i).css("background-color","");
		$("#clustertagspan_" + i).css("background-color","");
	}
	
	for (var i = 0; i < _selectedTags.length; i++) {									// color selected terms
		$("#tagspan_" + _selectedTags[i]).css("background-color", "#3399FF");
		$("#clustertagspan_" + _selectedTags[i]).css("background-color", "#3399FF");	
	}


	// create new query
	// ---------------------------------------------------------------------
	var _newquery = _query;
	
	for (var i = 0; i < _selectedTags.length; i++) {
		
		_newquery += " " + removeX(_termlist[_selectedTags[i]]["term"]);
	}
	
	$("#interface_query").val(_newquery);


	// compose set of common links for all terms
	// ---------------------------------------------------------------------
	var _links = new Array();

	for (var i = 0; i < _selectedTags.length; i++) {
	
		var _hastags = 1;
	
		var _tmplinks = _termlist[_selectedTags[i]]["links"];
		
		for (var j = 0; j < _tmplinks.length; j++) {
		
			var _isthere = _selectedTags.length;
		
			for (var k = 0; k < _selectedTags.length; k++) {
				
				for (var l = 0; l < _tmplinks[j]["keyterms"]["terms"].length; l++) {
				
					if(_tmplinks[j]["keyterms"]["terms"][l] == removeX(_termlist[_selectedTags[k]]["term"])) {
						_isthere--;
					}
				}
			}
			
			if(_isthere == 0) {
				
				var _isin = 0;
		
				for (var k = 0; k < _links.length; k++) {
			
					if(_links[k]["url"] == _tmplinks[j]["url"]) {
						_isin++;
					}
				}
				
				if(_isin == 0) {
					_links.push(_tmplinks[j]);
				}
			}
		}
	}
	
	
	// display links
	// ---------------------------------------------------------------------
	var _html = '';
	
	for (var i = 0; i < _links.length; i++) {
	
		_html += '<div class="res_block" id="res_block_' + _param + '_' + i + '" onMouseOut="resetRelations()" onMouseOver="dispRelations(\'' + escape(_links[i]["keyterms"]["terms"].join("|")) + '\')">'+
				 '<div class="res_title">' + _links[i]["title"] + '</div>'+
				 '<div class="res_url" onclick="window.open(\'' + _links[i]["url"] + '\')">' + decodeURIComponent(_links[i]["url"]) + '</div>'+
				 '<div class="res_abstract">' + _links[i]["abstract"] + '</div>'+
				 <!-- '<div class="res_keyterms">' + _links[i]["keyterms"]["terms"].join(" | ") + '</div>'+ -->
				 '<div class="res_toolbar">'+
				 	 '<span class="res_button" onclick="dispLinkto(' + _param + ',' + i + ')">inbound</span> '+
					 '<span class="res_button" onclick="dispRelated(' + _param + ',' + i + ')">related</span>'+
				 '</div>'+
				 '<div class="res_links" id="res_links_' + _param + '_' + i + '"></div>'+
				 '</div>';	
	}
	
	$("#results").html(_html);
	//$("#page").css("height",$(document).height());
	$("#box_results").fadeIn();
}


function clearSelectedTags() {
	
	for (var i = 0; i < _termlist.length; i++) {										// decolor all terms
		$("#tagspan_" + i).css("background-color","");
	}
	
	_selectedTags = new Array();
	
	$("#results").html("");
	//$("#page").css("height",0);
	//$("#page").css("height",$(document).height());
}

function dispRelations(_paramterms) {	

	_paramterms = unescape(_paramterms);
    _paramterms = _paramterms.split("|");
    
    for (var i = 0; i < _paramterms.length; i++) {
       
	  if (jQuery.inArray(_termlist_equ_alpha["x" + _paramterms[i]],_selectedTags) == -1) {
			
            $("#tagspan_" + _termlist_equ_alpha["x" + _paramterms[i]]).css("background-color", "#d6ebff");
			
			try {
				$("#clustertagspan_" + _termlist_equ_alpha["x" + _paramterms[i]]).css("background-color", "#d6ebff");
			} catch(e) {}
        }
    }
}

function resetRelations(){
	
	for (var i = 0; i < _termlist.length; i++) {
        
        if (jQuery.inArray(i,_selectedTags) == -1) {
			$("#tagspan_" + i).css("background-color", "");
			try {
				$("#clustertagspan_" + i).css("background-color", "");
			} catch(e) {}
		}
    }
}


function dispLinkto(_kw,_el) {
	
	//http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?appid=YahooDemo&query=http://search.yahoo.com&results=2&output=json
	
	_url = "http://search.yahooapis.com/SiteExplorerService/V1/inlinkData"+
		   "?appid=" + _appid_boss +
		   "&query=" + _termlist[_kw]["links"][_el]["url"] +
		   "&results=10"+
		   "&omit_inlinks=domain"+
		   "&output=json&callback=?";
	
         
	$('html, body').animate({
		scrollTop: $("#res_block_" + _kw + "_" + _el).offset().top - 110
	}, 1000);
	
	//window.scrollTo(0,$("#res_block_" + _kw + "_" + _el).offset().top);
	$("#res_links_" + _kw + "_" + _el).slideUp();
	
	$.getJSON(_url, function(data){
		
		var _html = '';
	
		if (typeof(data["ResultSet"]) == "undefined" || typeof(data["ResultSet"]["Result"]) == "undefined") {
			
			_html += '<div class="res_links_block">';
			_html += '<div class="res_links_title">Sorry, there is no inbound links available for this website !</div>';
			_html += '</div>';
		
		} else {
			
			var _inlinks = new Array();
			
			if(data["ResultSet"]["Result"].length == "undefined") {
				_inlinks[0] = data["ResultSet"]["Result"];
			} else {
				_inlinks = data["ResultSet"]["Result"];
			}	
			
			for (var i = 0; i < _inlinks.length; i++) {
			
				_html += '<div class="res_links_block">';
				_html += '<div class="res_links_title">' + _inlinks[i]["Title"] + '</div>';
				_html += '<div class="res_links_url" onclick="window.open(\'' + _inlinks[i]["Url"] + '\')">' + _inlinks[i]["Url"] + '</div>';
				//_html += '<div class="res_links_abstract">' + _links[i]["abstract"] + '</div>';
				//_html += '<div class="res_links_keyterms">' + _links[i]["keyterms"]["terms"].join(" | ") + '</div>';
				_html += '</div>';
				
			}
			
		}
		
		$("#res_links_" + _kw + "_" + _el).html(_html);
		$("#res_links_" + _kw + "_" + _el).slideDown();
	});
}

function dispRelated(_kw,_el) {
	
	//http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Earth%20Day
	
	_url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0"+
		   "&q=related:" + _termlist[_kw]["links"][_el]["url"] +
		   "&rsz=large"+
		   "&callback=?";
	
	$('html, body').animate({
		scrollTop: $("#res_block_" + _kw + "_" + _el).offset().top - 110
	}, 500);
	
	//window.scrollTo(0,$("#res_block_" + _kw + "_" + _el).offset().top);
	$("#res_links_" + _kw + "_" + _el).slideUp();
	
	//prompt("",_url);
	
	$.getJSON(_url, function(data){
		
		var _html = '';
	
		if (typeof(data["responseData"]) == "undefined" || typeof(data["responseData"]["results"]) == "undefined") {
		
			_html += '<div class="res_links_block">';
			_html += '<div class="res_links_title">Sorry, there is no related links available for this website !</div>';
			_html += '</div>';
			
		}else {
		
			var _related = data["responseData"]["results"];
			
			for (var i = 0; i < _related.length; i++) {
			
				_html += '<div class="res_links_block">';
				_html += '<div class="res_links_title">' + _related[i]["title"] + '</div>';
				_html += '<div class="res_links_url" onclick="window.open(\'' + _related[i]["url"] + '\')">' + _related[i]["url"] + '</div>';
				//_html += '<div class="res_links_abstract">' + _links[i]["abstract"] + '</div>';
				//_html += '<div class="res_links_keyterms">' + _links[i]["keyterms"]["terms"].join(" | ") + '</div>';
				_html += '</div>';
				
			}
			
		}
		
		$("#res_links_" + _kw + "_" + _el).html(_html);
		$("#res_links_" + _kw + "_" + _el).slideDown();
	});
}
