function poll(html_container){
	var id = 0;
	var questions = new Object();
	var details = "";
	var container = html_container;
	var selected_question = new Object();
	if(container == undefined){
		return false;
	}
	$("#"+container).css("display","none");
	var getPoll = function(){
		$.ajax({
			type: "GET",
			async: false,
			url: baseURL+"polls/ajax_poll",
			success:function(data){
				if(data == ""){ return false };
				var result = eval("("+data+")");
				if(result.error.err_code == 0){
					details = result.details;
					id = result.details.id;
					questions = result.questions;
				}
			}
		});
	}

	var chooseQuestion = function(){
		if(id == 0){return false}
		if(questions.length < 1){return false}
		var cookies = document.cookie.split(";");
		var poll_cookie = new Object();
		var selectedQuestion = new Object();
		$.each(cookies,function(key,value){
			while(value.charAt(0) == " "){
				value = value.substring(1,value.length);
			}
			cookie = value.split("=");
			if(cookie[0] == "poll"){
				poll_cookie = eval("("+decodeURIComponent(cookie[1])+")");
			}
		});
		$.each(questions,function(key,question){
			if(poll_cookie[id]){
				$.each(poll_cookie[id], function(cookie_key,question_id){
					if(question.id != question_id){
						selectedQuestion = question;
						return;
					}
				});
			} else {
				selectedQuestion = questions[0];
				return;
			}
		});
		if(questions.length < 1){return false}
		selected_question = selectedQuestion;
		return selectedQuestion;
	}

	var buildPollHtml = function(question){
		if(!question || !question.responses){return false};
		var holder = $("#"+container);
		$("#"+container+" .title").text(question.title);
		for(var i = (question.responses.length-1); i >= 0; i--){
			$("#"+container+" form").prepend(document.createElement("fieldset"));
			$("#"+container+" form fieldset:eq(0)").append(create_reponse_input(question.responses[i]));
			var label = document.createElement("label");
			$(label).attr("for","poll_option_"+question.responses[i].id);
			$("#"+container+" form fieldset:eq(0)").append(label);
			$("#"+container+" form fieldset:eq(0) label").text(question.responses[i].title);
		};
		$("#"+container+" form .submit a").click(vote);
		$("#"+container+" a.call-to-action").click(function(){getVoteResults(); return false;});
		holder.css("display","block");
		return true;
	}
	var create_reponse_input = function(response){
		var el = document.createElement("input");
		$(el).attr("type","radio");
		$(el).attr("name","poll");
		$(el).attr("value",response.id);
		$(el).attr("id","poll_option_"+response.id);
		// in ie, the radio buttons, for some reasone don't act as radio buttons. they do nothing. bellow we fix this.
		$(el).click(function(){
			$("#"+container+" form fieldset input[type=radio]").removeAttr("checked");
			$(this).attr("checked","checked");
			return true;
		});
		return el;
	}
	var vote = function(){
		var value = $("#"+container+" input[checked]").val();
		if(value == undefined){return false}
		$.ajax({
			type: "GET",
			url: baseURL+"polls/ajax_vote/"+value,
			success:function(data){
				if(data == ""){ return false };
				var result = eval("("+data+")");
				if(result.error.err_code == 0){
					if(result.answers){
						showVoteResults(result.answers);
					}
				}
			}
		});
	}

	var showVoteResults = function(answers){
		if(!answers){return false}
		$("#"+container).css("display","block");
		var totalVotes = 0;
		$.each(answers, function(key,value){
			totalVotes += parseInt(value.count_responders);
		});
		var total_width = $("#"+container).width()-10;
		for(var i = (answers.length-1); i >= 0; i--){
			$("#"+container+" h3.title").after((function(row){
				var div_holder = document.createElement("div");
				$(div_holder).addClass("poll_result");
				$(div_holder).addClass("clearfix");

				var div_answer = document.createElement("div");
				$(div_answer).addClass("answer");
				$(div_answer).text(row.title);
				$(div_holder).append(div_answer);

				var div_bar = document.createElement("div");
				$(div_bar).addClass("bar");
				$(div_bar).text(".");
				$(div_bar).css("width",Math.round(total_width*(row.count_responders/totalVotes))+"px");
				$(div_holder).append(div_bar);

				var span_number = document.createElement("span");
				$(span_number).addClass("number");
				$(span_number).text(" ("+row.count_responders+")");
				$(div_answer).append(span_number);
				return div_holder;
			})(answers[i]));
		};
		$("#"+container+" form").remove();
		$("#"+container+" a").css("display","none");
//		$("#"+container+" a.call-to-action").unbind("click");
//		$("#"+container+" a.call-to-action").click(function(e){
//			poll(container);
//			e.preventDefault();
//		}).html("<span>Voteaza &gt;&gt;</span>").css("display","block");
	}

	var getVoteResults = function(){
		if(!questions[0]){return false}
		$("#"+container+" .title").text(questions[0].title);
		$.ajax({
			type: "GET",
			url: baseURL+"polls/ajax_get_results/"+questions[0]['id'],
			success:function(data){
				if(data == ""){ return false };
				var result = eval("("+data+")");
				if(result.error.err_code == 0){
					if(result.answers){
						showVoteResults(result.answers);
					}
				}
			}
		});
	}
	getPoll();
	if(!buildPollHtml(chooseQuestion())){
		getVoteResults();
	}
	return {
		poll_id : id,
		container : container
	};
}


