var ERROR_CAST_VOTE = "Error casting vote";
var MSG_POLL_CAST_OK = "Cast vote OK";
var MSG_POLL_CAST_ERROR = "Cast Vote comes with error";
var MSG_POLL_NO_SELECT = "Please select an answer.";
var URL_IMG_BAR = "/upickdaily/images/bar.gif";
var poll = new Object();
var formId = "";
var chosen = "";
var option ="";
var order = "";
var answers = "";
var counts = [];



function doCastVoteJQuery(_poll){
	poll = _poll;
	doLog("cast results");
	formId = "sidebarpoll";
	chosen = getSelectedItemJQuery();
	if(chosen.length==0){
		//UPICKDAILY.utils.message.show("Attention", MSG_POLL_NO_SELECT);
		alert(MSG_POLL_NO_SELECT)
	}else{
		option = chosen.attr("id");
		var url_alias = poll.urlAlias
		//savePoll();
		if(chosen==null){
			return false;
		}
		//var data = {itemId:formId, urlAlias: url_alias};
		var data = new Object();
		data["urlAlias"] = url_alias;
		data[url_alias] = option;
		try { // Catch browser security exceptions.
			$.ajax({
				type: "GET",
				url: URL_VOTE,
				data: data,
				dataType:"jsonp",
				success:handleCastVoteJQuery,
				error:handleCastVoteJQueryErrors
			});
		} catch(error) {
			handleCastVoteJQueryErrors(error);
		}
	}
	
	return false;

}


function handleCastVoteJQuery(json){
	//alert(poll.answers[0]);
	doLog("cast vote recieved");
	if(json == null){
		handleCastVoteJQueryErrors(ERROR_CAST_VOTE);
	}else{
		switch(json.code){
			case "ok":
				counts = json.data[0].counts;
				question = poll.question;
				answers = poll.answers;
				constructPollResultsJQuery();
				break;
			case "error":
				doLog(MSG_CAST_DATA_ERROR);
				handleCastVoteJQueryErrors(MSG_CAST_DATA_ERROR)
				break;
		}
	}
}


function handleCastVoteJQueryErrors(error){
	alert(ERROR_CAST_VOTE);
	doLog("handleCastVoteJQueryErrors: "+error)
}



function getSelectedItemJQuery(){
	return $("#"+formId+" input[type=radio][checked]")
}


function constructPollResultsJQuery(){
	//get total count
	var totalCount = 0;
	for (i = 0; i < answers.length; i++) {
		if(option==i){
			counts[i] += 1;
		}
		totalCount += counts[i]
	}
	var str = "<ul>";
	for (i = 0; i < answers.length; i++){
		prec = Math.floor((counts[i]/totalCount)*100);
		//fix error because we are flooring the values
		//if(i<answers.length-1){
			//prec++;
		//}
		str +="<li>";
		str+=  "<div class='imgBar'><img src='" + URL_IMG_BAR + "' width='" + prec + "%' height='22' /></div>" 
		str+= "<div>"+answers[i] +" "+ prec + "%" + "</div>" ;
		str +="</li>";
	}
	str+="</ul>";
	//indx = indx++;
	//if (indx< polls.length) {
		str+= "				<div style='text-align:right;'><input id='btnNextVote' type='button'/></div>";
	//}
	//else{
		//str+="<div>No more polls</div>";
	//}
	
	
	
	
	$("#"+formId+" .results").empty();
	$("#"+formId+" .results").hide();
	$("#"+formId+" .results").append(str);
	$("#"+formId+" #btnNextVote").click(takeAnotherJQuery);
	showResultsDivJQuery();
}

function savePollJQuery(){
	var obj = new Object();
	var answers = [];
	obj.question = $("#"+formId+" .poll_question").html();
	var label = $("#"+formId+" label");
	for(var i = 0;i<label.length;i++){
		answers.push($(label[i]).text());
	}
	obj.answers = answers;
	
	poll = obj;
}

function takeAnotherJQuery(){
	
	indx++;
	if(indx>=pollsUPD.length){
		indx = 0;
	}
	constructVoteFormJQuery(indx);
}


//function constructVoteFormJQuery(indx){
	//alert(indx)
	//$("#"+formId+" .vote").fadeOut("slow");
//}

function showResultsDivJQuery(){
	$("#"+formId+" .answers").fadeOut("slow", function(){$("#"+formId+" .results").show();})
}

function enableSubmit(){
	toggleButton('btnVote', true);
}