	/***** Голосования **** Start ****/
	/**********
	 * Отправляем запрос к php
	 * @param {Object} polls
	 * @param {Object} loader
	 * @param {Object} data
	 * @param {Object} ajax_path
	 */
	
	function r_error(message){
		$.jGrowl(message,{
			life: 8000,
			theme: 'error'
		});
	}
	
	function r_message(message){
		$.jGrowl(message,{
			life: 2000,
			theme: 'ok'
		});
	}
	
	function standard_ajax_error(){
		r_error('Ошибка передачи данных.');	
	}

	function r_ajax(path,data,fn_success){
		
		$.ajax({
			type: 'POST',
			dataType: 'json',
			url: '/samborsky_ajax/'+ path +'/',
			async: false,
			data: data,
			beforeSend:
				function(){
					// Заставка
					if( !$('#ajax_loader').dialog('isOpen') ){
						$('#ajax_loader').dialog('open');	
					}
				},
			complete: 
				function(){
					// Убираем заставку
					if( $('#ajax_loader').dialog('isOpen') ){
						$('#ajax_loader').dialog('close');	
					}
				},
			success:
				function(json,textStatus){
					
					// Если произошла ошибка
					if( 1 == json.error_code){
						r_error(json.error_description);
					}
					else{
						// Выполнено без ошибок
						fn_success(json);						
					}
				},
			error:
				function(){
					if( $('#ajax_loader').dialog('isOpen') ){
						$('#ajax_loader').dialog('close');	
					}
					standard_ajax_error();
				}
		});	
	}
	
	function show_tutu_dialog(time){
		
		r_ajax('tutu',
			{
				time_interval: time
			},
			function(json){
				$('#tutu_dialog').html(json.resp);
			}
		);
		
		$('#tutu_dialog').dialog('open');
	}

	function sp_polls_send_query(polls,loader,data,ajax_path){
	
		$.ajax({
			type: 'POST',
			dataType: 'text',
			url: ajax_path,
			data: data,
			beforeSend:
				function(){
			        loader.show();
					polls.hide();
				},
			success:
				function(json,textStatus){
					
					// Если произошла ошибка
					if( 1 == json.error_code){
						alert(json.error_description);
					}
					else{
						loader.hide();
						polls.show();
						polls.html( json.resp );
					}
				},
			error:
				function(data){
					loader.hide();
					polls.show();
					alert('Ошибка браузера.');
				}
		});
	}


	/***********
	 * Выводим результаты голосования
	 * @param {Object} q_id
	 */

	function sp_polls_results(q_id){
		
		var data = 'type=results&q_id=' + q_id;
		var polls = $('#sp_polls_' + q_id);
		var loader = $('#sp_polls_loader_' + q_id);
		
		// Отправляем POST запрос
		var ajax_path = $('#sp_ajax_path_' + q_id).val();
		
		if( ajax_path.length ){
			sp_polls_send_query(polls,loader,data,ajax_path);
		}		
	}
	
	/*********
	 * Учитываем голос
	 * @param {Object} q_id
	 */
	
	function sp_polls_vote(q_id){
		
		var data = 'type=vote&q_id=' + q_id; 
		var polls = $('#sp_polls_' + q_id);
		var loader = $('#sp_polls_loader_' + q_id);
		
		// Получаем результаты голосования
		$('.sp_question_' + q_id).each(function(i){
			
			if( $(this).attr('checked') === true ){
				
				data += '&a_id[]=' + $(this).val();
			}
		});
		
		// Отправляем POST запрос
		var ajax_path = $('#sp_ajax_path_' + q_id).val();
		
		if( ajax_path.length ){
			sp_polls_send_query(polls,loader,data,ajax_path);
		}	
	}
	/***** Голосования **** End ****/
				

	function r_ajax_upload(path,element_id,fn_success){
		
		$('#ajax_loader').ajaxStart(function(){
			$(this).dialog('open');
		}).ajaxComplete(function(){
			$(this).dialog('close');
		});
		
		$.ajaxFileUpload({
			url: '/samborsky_ajax/'+ path +'/',
			secureuri: false,
			fileElementId: element_id,
			dataType: 'json',
			success: function(json, status){
				
				// Если произошла ошибка
				if( 1 == json.error_code){
					r_error(json.error_description);
				}
				else{
					fn_success(json);
				}
			},
			error: function (data, status, e){
				$('#ajax_loader').dialog('close');
				standard_ajax_error();
			}
		});
	}
	
	
	function r_ajax_no_splash(path,data,fn_success){
		
		$.ajax({
			type: 'POST',
			dataType: 'json',
			url: '/samborsky_ajax/'+ path +'/',
			async: false,
			data: data,
			success:
				function(json,textStatus){
					
					// Если произошла ошибка
					if( 1 == json.error_code){
						r_error(json.error_description);
					}
					else{
						// Выполнено без ошибок
						fn_success(json);						
					}
				},
			error:
				function(){
					standard_ajax_error();
				}
		});	
	}	
		

	$(document).ready(function() {
		
		/*********************
		 * 
		 * Заставочка
		 * 
		 *********************/
		
		$("#ajax_loader").dialog({
			bgiframe: true,
			width: 280,
			autoOpen: false,
			modal: true,
			resizable: false,
			draggable: false,
			closeOnEscape: false
		});	
		
		// Убираем тайтлбар с загрузочного диалога
		$('.ui-dialog-titlebar').hide();
		
		$('.more').click(function(){
			$(this).next().slideToggle("fast");
		});
		
		/*********************** Accordion ***********************/
		$('#accordion a').click(function(){
	
			if( 'none' == $(this).next("ul").css("display") ){
				$('.accordion_hidden').hide();
				
				$(this).next("ul").slideToggle("fast");
				
				$('#accordion a').removeClass("active");
				$(this).toggleClass("active");
			}
		});
		
		// Входим (login)
		$('#flogin_submit').click(function(){
			r_ajax(
				'login',
				{
					'login': $('#login').val(),
					'password': $('#pass').val()
				},
				function(json){
					window.location = '/';
				}
			);
		});

		$('#pass,#login').keypress(function(evt){
		
			if (evt.which == 13){
				$('#flogin_submit').click();
			}
		});
		
		// Выходим (logout)
		$('#logout').click(function(){
			r_ajax(
				'logout',
				{},
				function(json){
					window.location = '/';
				}
			);
		});
		
		/*****************
		 * Профиль
		 */
		
		// Восстаносление пароля
		$('#recover_password').click(function(){
			
			r_ajax(
				'recover_password',
				{
					'email': $('#recover_email').val() 
				},
				function(json){
					r_message('Проверьте свой почтовый ящик, следуйте дальнейшим инструкциям');
				}
			);
		});
		
		/***** Рейтинги **** Start ***/
		function show_rating(json){
			$('#samborsky_rating').html( json.samborsky_rating );
			$('#samborsky_rating_plus_val').html( json.samborsky_rating_plus );
			$('#samborsky_rating_minus_val').html( json.samborsky_rating_minus );
		}
		
		// +1
		$('#samborsky_rating_plus').click(function(){
			
			r_ajax('samborsky_rater',
				{
					'page_id': $('#page_id').val(),
					'rate': 'plus'
				},
				function(json){
					show_rating(json);
					r_message('Спасибо. Ваша оценка учтена!');
				}
			);
		});
		
		// -1
		$('#samborsky_rating_minus').click(function(){
			
			r_ajax('samborsky_rater',
				{
					'page_id': $('#page_id').val(),
					'rate': 'minus'
				},
				function(json){
					show_rating(json);
					r_message('Спасибо. Ваша оценка учтена!');
				}
			);
		});
		
		$('#samborsky_rating').click(function(){
			
			if( $('#samborsky_rater_stat').dialog('is_open')) {
				$('#samborsky_rater_stat').dialog({
					bgiframe: true,
					width: 500,
					autoOpen: false,
					modal: true,
					resizable: true,
					draggable: true,
					closeOnEscape: true,
					buttons: {
						'Закрыть': function(){
							$(this).dialog('close');
						}
					}
				});
			}
			
			r_ajax('samborsky_rater_stat',{
					'page_id': $('#page_id').val()
				},
				function(json){
					$('#samborsky_rater_stat').html(json.resp);
					$('#samborsky_rater_stat').dialog('open');
				}
			);
		});
		/***** Рейтинги **** End ***/
		
		// Пригласить друга
		$('#invite_friend_dialog').dialog({
			bgiframe: true,
			width: 400,
			autoOpen: false,
			modal: true,
			resizable: true,
			draggable: true,
			closeOnEscape: true,
			buttons: {
				'Отправить приглашение': function(){
					
					r_ajax('invite_friend',{
						'name': $('#invite_friend_name').val(),
						'email': $('#invite_friend_email').val()
					},function(json){
						r_message('Приглашение Вашему другу отправлено!');
					});
					
					$(this).dialog('close');
				}
			}
		});
		
		$('#invite_friend').click(function(){
			$('#invite_friend_dialog').dialog('open');	
		});
		
	});
