function calcTags(v){
	var results = new Array();
	var MinSize 	= 11;
	var MaxSize 	= 20;
	var FontVariant = MaxSize - MinSize;
	var FontSizes = new Array();

	var Vt = v.slice(0); //clone array, not make reference to it
	var MaxVote 	= Vt.sort(function(a,b){return b - a})[0];
	var MinVote 	= Vt.sort(function(a,b){return a - b})[0];
	var VoteRange	= MaxVote - MinVote;

	var CatStep		= Math.round(VoteRange/FontVariant);

	for (var i = 0; i < v.length; i++){
		var whichStep 	= Math.round((v[i] - MinVote)/CatStep);
		FontSizes[i] 	= MinSize + whichStep;
	}
	return FontSizes;	
}

function ShowHotTags(){
	if(navigator.cookieEnabled == true && !APHScriptLibrary.ReadCookie("voted")){
			document.getElementById("pollform").innerHTML = "<label for='answer'>What is your favourite UK airline?</label><br />\n<select name='answer' id='answer'>\n</select>\n<input type='button' id='qpollvote' value='Vote' onclick='submitPoll();' />";
	}else{
		document.getElementById("pollform").innerHTML = "<p style='cursor: default; margin-top: 16px;'>The UK's favourite airlines:</p>";
	}
	result = newAjax("POST","/fcgi-bin/transmitter.pl");                     
	result.send("reqtype=getpoll&pollid=1");
	var results = newXMLfromString(result.responseText);
	if(results){
		loadResults(results)
	}else{
		pollChecker();
	}
}

function loadResults(result){
			var results = result.getElementsByTagName("PollItem");
			var Words = new Array();
			var uid = new Array();
			var Votes = new Array();
			for(r=0;r<results.length;r++){
				Words.push(results[r].childNodes[0].nodeValue);
				uid.push(results[r].getAttribute("uid"));
				Votes.push(results[r].getAttribute("votes"));
			}
			var FontSizes = calcTags(Votes);
			document.getElementById("mosaic").innerHTML = "";
			var answerSelect = document.getElementById("answer");
			for (var i = 0; i < Votes.length; i++){
				if(answerSelect != null){
					try{
						answerSelect.add(new Option(Words[i], uid[i]));
					}catch(e){
						answerSelect.add(new Option(Words[i], uid[i]), null);
					}
				}
				var voteTitle = (Votes[i] == 1)?"1 Vote":Votes[i]+" Votes";
				var span = "<span id='"+uid[i]+"' title='"+voteTitle+"' class='pollspan' style=\"font-size: " + FontSizes[i] + "px;\">" + Words[i] + "</span>\n";
				document.getElementById("mosaic").innerHTML += span;
			}
			clearTimeout(t);
			var pollload = document.getElementById("pollload");
			pollload.parentNode.removeChild(pollload);
			document.getElementById("quickpoll").style.display = '';
}

function submitPoll(){
	if(APHScriptLibrary.ReadCookie("voted")){
		document.getElementById("pollform").innerHTML = "<span style='cursor: default; font-size: 10px;'>I'm sorry, you have already voted in our poll.</span>";
		return false;
	}else{
		if(navigator.cookieEnabled == true){
			var choice = document.getElementById("answer").value;			
			var Vote = newAjax("POST","/fcgi-bin/transmitter.pl");
			Vote.send("reqtype=setpoll&pollid=1&uid="+choice);
			result = newXMLfromString(Vote.responseText);
			if(result.getElementsByTagName("Error").length > 0){
				document.getElementById("pollform").innerHTML = "<span style='cursor: default; font-size: 10px;'>I'm sorry, we could not register your vote at this time. Please try again later.</span>";
				return false;
			}
			document.getElementById("pollform").innerHTML = "<p style='cursor: default; margin-top: 16px; font-size: 10px;'>Thank you for participating in our poll.</p>";
			APHScriptLibrary.SetCookie("voted","yes",30);
			setTimeout('ShowHotTags()',2500);
		}else{
			document.getElementById("pollform").innerHTML = "<span style='cursor: default; font-size: 10px;'>I'm sorry, we could not register your vote at this time. Please try again later.</span>";
			return false;
		}
	}
	return false;
}

function pollChecker(){ //checks that the poll has loaded, and gives error message if not
var pollload = document.getElementById('pollload');
	if(pollload != null){ //ie the loading div is still in place and thus the showhottags not finished executing
		pollload.removeChild(document.getElementById("loadgif"));
		pollload.parentNode.removeChild(document.getElementById("quickpoll"));
		document.getElementById("loadpollform").innerHTML += "<span style='cursor: default; font-size: 10px;'>I'm sorry, we could not load the poll at this time. Please try again later.</span>";
	}
	clearTimeout(t);
}
