var ERROR_LOADING_DATA = "Error loading poll data";
var MSG_POLL_DATA_OK = "Poll Data OK";
var MSG_POLL_DATA_ERROR = "Poll data comes with error";
var order = "";
var question = "";
var answers = [];
var pollsUPD = [];
var indx;




function loadPolls(){
	doLog("loading poll data");
	try { // Catch browser security exceptions.
		$.ajax({
			type: "GET",
			url: URL_POLLS_DATA,
			dataType:"jsonp",
			success:handlePollDataUPD,
			error:handleLoadingDataErrors
		});
	} catch(error) {
		handleLoadingDataErrors(error);
	}
}




function handlePollDataUPD(json) {
	doLog("data recieved");
	if(json == null){
		handleLoadingDataErrors(ERROR_LOADING_DATA);
	}else{
		switch(json.code){
			case "ok":
				pollsUPD = getPolls(json.data)
				constructVoteFormJQuery(indx);
				break;
			case "error":
				doLog(MSG_POLL_DATA_ERROR);
				break;
		}
	}
}



function handleLoadingDataErrors(error){
	//alert(ERROR_LOADING_DATA);
	doLog("handleLoadingDataErrors: "+error);
}

function getPolls(data){
	var _pollsUPD = [];
	for(i=0; i<data.length; i++){
		_pollsUPD.push({
			urlAlias:data[i].urlAlias,
			question:data[i].question,
			author:data[i].author,
			answers:data[i].answers
		});
	}
	indx = Math.floor(Math.random()*data.length);
	return _pollsUPD;
}

function constructVoteFormJQuery(indx){ 
	//show title
	$("#poll_module .poll .question").empty();
	$("#poll_module .poll .question").append("<h2 class='poll_question'>"+pollsUPD[indx].question+"</h2>");
	var str = "";
	
	for (i = 0; i < pollsUPD[indx].answers.length; i++){
		str+="				<label class='poll_answer'><input id='"+i+"' name='sidebarPollGroup' type='radio'>"+pollsUPD[indx].answers[i]+"</label>";
	}

	str+= "				<div style='text-align:right;'><input id='btnVote' type='button' disabled='disabled' /></div>";
	
	

	$(".poll .answers").empty();
	$(".poll .answers").append(str);
	$("label").click(onAnswerClicked);
	$("#btnVote").click(onSubmitClicked);
	$(".poll .author").empty();
	$(".poll .author").append("poll created by <a class='profileLink' href='/upickdaily/profile/?nickName="+pollsUPD[indx].author+"'>"+pollsUPD[indx].author+"</a>");
	showVoteDiv();
	
}



function onAnswerClicked(){
	toggleButton('btnVote', true);
}

function onSubmitClicked(){
	doCastVoteJQuery(pollsUPD[indx])
}

function showVoteDiv(){
	$(".poll").show();
	$(".poll").show();
	
	$(".poll .answers").show();
	$(".poll .results").hide();
}


function initPoll(data) {
	doLog("init poll");
	$(".poll").hide();
	pollsUPD = data;
	constructVoteFormJQuery(indx);
	
}
$(document).ready(loadPolls);

