$(document).ready(function(){
//	TODO: Разделить обычный и complex
	//	Малый опрос
	$('ul.radioblock li').click(function() {
		selectRadioButton($(this));
		validateSmallPoll($(this).parent());
	});
	$('ul.checkboxblock li').click(function() {
		selectCheckBox($(this));
		validateSmallPoll($(this).parent());
	});
	$('ul.radioblock textarea, ul.checkboxblock textarea').keyup(function() {
		validateSmallPoll($(this).parents('ul'));
	});
	$('ul.radioblock textarea,ul.checkboxblock textarea').blur(function() {
		validateSmallPoll($(this).parents('ul'));
	});
	$('input.button').click(function() {
		if($(this).attr('src') == '/images/b-submit.gif')
			sendSmallPoll($(this).parent());
	});

	$('ul.radioblock_complex li').click(function() {
		selectRadioButton($(this));
		validateBigPoll();
	});
	$('ul.checkboxblock_complex li').click(function() {
		selectCheckBox($(this));
		validateBigPoll();
	});
	$('ul.radioblock_complex textarea, ul.checkboxblock_complex textarea').keyup(function() {
		validateBigPoll();
	});
	$('ul.radioblock_complex textarea,ul.checkboxblock_complex textarea').blur(function() {
		validateBigPoll();
	});

	$('ul.checkboxblock li div, ul.checkboxblock_complex li div').click(function() {
		return false;
	});

	$('input.button_results').click(function() {
		submitBigPoll($(this));
		redrawInIE();
	});

	if($.browser.safari){
		$('#last_poll .wrap-top .corner').attr('style', 'margin-top: -135px');
		$('#last_poll .bubble-item02 ul.result_complex_other').attr('style', 'top: 0; margin-bottom: 60px;');
	}

	redrawInIE();
});

function selectCheckBox ( li )
{
	$(li).toggleClass('selected');
	var value = '';

	$(li).parent().find('li.selected').each(function(index) {
		value += $(this).attr('name') + ';';
	});

	$(li).parent().parent().find('input:hidden:first').val(value);
}

function selectRadioButton( li )
{
	if(!$(li).hasClass('selected')){
		deselectAllIn($(li).parent());

		//	Записываем выбранное значение в input-hidden
		var selectedValue = $(li).attr('name');
		$(li).parent().parent().find('input:hidden:first').val(selectedValue);
		$(li).addClass('selected');

		redrawInIE();
	}
}

function validateSmallPoll( ul )
{
	var bError = false;

	if($(ul).find('li.selected').length == 0){
		bError = true;
	}

	$(ul).find('li.selected').each(function(index) {
		if($(this).hasClass('free-answer')){
			//	Проверяем, есть ли текст в textarea
			if($(this).find('textarea').val() == ''){
				bError = true;
			}
		}
	});

	if(bError){
		$(ul).next().addClass('disabled');
		$(ul).next().attr('src', '/images/b-submit-dis.gif');
	}else{
		$(ul).next().removeClass('disabled');
		$(ul).next().attr('src', '/images/b-submit.gif');
	}
}

var timeStart = new Date();

function writeLog(value)
{
	var currentTime = new Date();
	$('#outputTest').append(value + ' -- ' + (currentTime - timeStart) +'<br />');
	timeStart = currentTime;
}

function redrawInIE() {
	//hack for IE6 - resizing same element for rebilding all code model
	$('#footer').css('position','relative');
	$('#footer').css('position','absolute');

	//hack for IE6 - resizing same element for rebilding all code model
	$('#logo ').css('position','relative');
	$('#logo ').css('position','absolute');
}

//	Добавляем справа от выбранного радиобаттона ссылку на подтверждение типа "Ога"
function addConfimationButton(element) {

	// $(element).find('.comment-r').click(function() {
	// 	var radioGroup = $(this).parents('div.bubble-item01');
	// 	sendPoll(radioGroup);
	// 	return false;
	// });
}

function deselectAllIn(element) {
	$(element).find('li.selected').each(function(index) {
		$(this).removeClass('selected');
		$(this).find('div:not(.other)').remove();
	});
}

function sendSmallPoll(radioGroup){
	//	Выбранное значение у нас лежит в input type="hidden" в этой форме. Находим его.
	var selectedValue = radioGroup.find('input:hidden:first').val();
	var otherValue = '';

	var values = selectedValue.split(";");
	for (var i = 0; i < values.length; i++) {
		if (values[i] == 'other') {
			otherValue = radioGroup.find('textarea').val();
		}
	}

	//	Этот selectedValue нужно послать какому-то скрипту на сервер.
	//	Смотрите документацию здесь - http://docs.jquery.com/Ajax/jQuery.post
	//	Как-то так: $.post("submit_poll.php", { user_name: "Poupking", poll_id: 10, value: selectedValue, other_value: otherValue } );

// NEW
	var question_id = radioGroup.find('input:hidden:first').attr("name").replace("question", "");
	$.ajax({
		url: '/ajax/poll_vote.php',
		data: {
			question_id: question_id,
			answer_id: selectedValue,
			text: otherValue
		},
		type: 'POST',
	 	dataType: 'json',
	 	cache: false,
	 	timeout: 20000,
		success: function(data) {
			show_answers(question_id, data);
			radioGroup.next().show();
			redrawInIE();
	 	},
	 	error: function() {
//	 		alert("ERROR");
	 	}
	});

	radioGroup.hide();
	redrawInIE();
}

function show_answers(question_id, data) {
	for (var id in data) {
		data[id] = parseInt(data[id]);
	}

	var sum = 0;
	var count = 0;
	for (var id in data) {
		sum += data[id];
		count++;
	}

	// Нахождение первого и второго места
	var first_place_value = 0;
	for (var id in data) {
		if (data[id] > first_place_value) first_place_value = data[id];
	}
	var second_place_value = 0;
	for (var id in data) {
		if (data[id] > second_place_value && data[id] != first_place_value) second_place_value = data[id];
	}

	for (var id in data) {
		var classname = "q" + question_id + "a" + id;
		
		if (count == 1) {
			var current_value = data[id];
			if (current_value > 300) current_value = 300;
			var percent = Math.round(100 * current_value / 300);
		
			$("li." + classname + " div.result").css({"white-space": "nowrap"});
			$("li." + classname + " div.result").text("Ответов: " + data[id]);
		} else {
			var percent = Math.round(100 * data[id] / sum);

			$("li." + classname + " div.result").text("" + percent + "%");
		}
		$("li." + classname + " div.graph").css("width", "" + Math.round(20 + percent * 2.8) + "px");

		// Места
		if (data[id] == first_place_value)  $("li." + classname).removeClass("other_place").addClass("first_place");
		if (data[id] == second_place_value) $("li." + classname).removeClass("other_place").addClass("second_place");

		// Скрываем сслыку на "Как отвечали другие"
		if (data[id] == 0) {
			$("li." + classname + " div.other_answers").hide();
		}
	}
}

//	Определяем, имеем ли дело с малым, или с большим опросом
function isBigPoll(radioGroup) {
	return($(radioGroup).parents('div.content_inner').find('h3').length);
}

//	Проверяем, полностью ли заполнен большой опрос
function validateBigPoll(radioGroup) {
	var bigPoll = $('#big_poll');
	var bError = false;

	$(bigPoll).find('div.bubble-item01').each(function(index) {
		if($(this).find('li[@class="selected"]').length == 0 && $(this).find('li[@class="free-answer selected"]').length == 0){
			bError = true;
		}
		if($(this).find('li[@class="free-answer selected"]').length > 0 && $(this).find('textarea').val() == ''){
			bError = true;
		}
	});

	// NEW!!
	if(!bError){
		var btnSubmit = $(bigPoll).find('input.button_results');
		btnSubmit.attr('src', '/images/b-submit.gif');
		btnSubmit.removeClass('disabled');
	}else{
		var btnSubmit = $(bigPoll).find('input.button_results');
		btnSubmit.attr('src', '/images/b-submit-dis.gif');
		btnSubmit.addClass('disabled');
	}
/*	if(!bError){
		var btnSubmit = $(bigPoll).find('input.button_results');
		btnSubmit.attr('src', '/images/b-results.gif');
		btnSubmit.removeClass('disabled');
	}else{
		var btnSubmit = $(bigPoll).find('input.button_results');
		btnSubmit.attr('src', '/images/b-results-dis.gif');
		btnSubmit.addClass('disabled');
	}*/
}

//	Отправляем все формы большого опроса и показываем результаты
function submitBigPoll( button ) {

	if($(button).attr('src') == '/images/b-results.gif'){

// NEW
		var data = {};

		$(button).parent().parent().find('ul.checkboxblock_complex, ul.radioblock_complex').each(function(index) {
			var selectedValue = $(this).prev().val();
			if($(this).find('textarea').length > 0){
				var otherValue = $(this).find('textarea').val();
			}else{
				var otherValue = '';
			}
// NEW
			var question_id = $(this).prev().attr("name").replace("question", "");
			data["questions[" + question_id + "][value]"] = selectedValue;
			data["questions[" + question_id + "][text]"]  = otherValue;
		});

// NEW
		$.ajax({
			url: '/ajax/poll_big_vote.php',
			data: data,
			type: 'POST',
			dataType: 'json',
			cache: false,
			timeout: 20000,
			success: function(data) {
				for (var question_id in data) {
					show_answers(question_id, data[question_id]);
				}
			},
			error: function() {
//				alert("ERROR");
			}
		});

		$(button).parent().parent().find('div.bubble-item01').hide();
		$(button).parent().parent().find('div.bubble-item02').show();
		$(button).hide();
	}
}

function clearFreeAnswer( li ) {
	$(li).removeClass('free-answer');
	$(li).find('textarea').hide();
	$(li).find('input').hide();
}
