(function($) {
	$.fn.rianVote = function(options) {
		// Обявляем дефолтные значения и переопределяем их, если они переданы в функцию
        var options = $.extend({
        	animate: false,
			loader: 'vote_loader',
			container: 'vote_container',
			form: 'vote_form',
			submit: 'vote_submit',			
            answerSelector: 'input:checked',
			resultsLink: 'vote_result'
        }, options || {});		
        
        // Объявляем переменные
		var jsonURL = $('#'+options.form).attr('action').replace(".html", ".json");
        var currentForm = $('#'+options.form);
        
        // Вешаем обработчик на клик по сабмиту формы
		$('#'+options.submit).click(function(e){
			// Отменяем дефолтное действие у сабмита формы
			e.preventDefault();

			// Объявляем переменные
			var answerID = $(options.answerSelector, currentForm).val();

			var params = {
				"vote_answer_id"	:	answerID,
				"act"				:   'reset',
				"vote_question_id"	:	options.questionID
			}

			$.ajax({
				type: "POST",
				dataType: "html",
				url: jsonURL,
				data: params,
				beforeSend:function(){
					$('#'+options.loader).show();
				},
				success:function(data){
					$('#'+options.loader).hide();
					if(options.animate == true){
						$('#'+options.container).attr('style','opacity: 0; filter: alpha(opacity=0);');
						$('#'+options.container).html(data);
						$('#'+options.container).animate({'opacity':'1'}, 'slow');
					}
					else{
						$('#'+options.container).html(data);
					}
				}
			});
		});
		
		$('#'+options.resultsLink).click(function(e){
			e.preventDefault();

			// Объявляем переменные
			var answerID = '';

			var params = {
			}

			$.ajax({
				type: "POST",
				dataType: "html",
				url: jsonURL,
				data: params,
				beforeSend:function(){
					$('#'+options.loader).show();
				},
				success:function(data){
					$('#'+options.loader).hide();
					if(options.animate == true){
						$('#'+options.container).attr('style','opacity: 0; filter: alpha(opacity=0);');
						$('#'+options.container).html(data);
						$('#'+options.container).animate({'opacity':'1'}, 'slow');
					}
					else{
						$('#'+options.container).html(data);
					}
				}
			});
		});
	}
})(jQuery);

