Chart = {
	Form: 'chart_form',
	isExecute: false,
	Error: false,
		
	submit: function() {

		if(!this.isExecute) {
			this.isExecute = true;
			
			this.Error = false;
			
			if($('#from_year').val() > $('#to_year').val()) {
				this.Error = true;
				this.showAlert('Ошибка. Неверно указан период выборки.');
			}
			
			/*if($('#from_year').val() == $('#to_year').val() && $('#from_month').val() > $('#to_month').val()) {
				this.Error = true;
				this.showAlert('Ошибка. Неверно указан период выборки.');
			}
			
			if($('#from_year').val() == $('#to_year').val() && $('#from_month').val() == $('#to_month').val() && $('#from_day').val() > $('#to_day').val()) {
				this.Error = true;
				this.showAlert('Ошибка. Неверно указан период выборки.');
			}*/
			
			if(
				this.check($('#from_year').val()) && 
				this.check($('#from_month').val()) &&
				this.check($('#from_day').val()) &&
				this.check($('#to_year').val()) &&
				this.check($('#to_month').val()) &&
				this.check($('#to_day').val())
			) {
				/*if($('#from_day').val() < 1 || $('#from_day').val() > 31) {
					this.Error = true;
					this.showAlert('Ошибка. Неправильно заполнены поля периода.');
				}
				
				if($('#to_day').val() < 1 || $('#to_day').val() > 31) {
					this.Error = true;
					this.showAlert('Ошибка. Неправильно заполнены поля периода.');
				}
				
				if($('#from_month').val() < 1 || $('#from_month').val() > 12) {
					this.Error = true;
					this.showAlert('Ошибка. Неправильно заполнены поля периода.');
				}
				
				if($('#to_month').val() < 1 || $('#to_month').val() > 12) {
					this.Error = true;
					this.showAlert('Ошибка. Неправильно заполнены поля периода.');
				}
				
				if($('#from_year').val() < 1900 || $('#from_year').val() > 2020) {
					this.Error = true;
					this.showAlert('Ошибка. Неправильно заполнены поля периода.');
				}
				
				if($('#to_year').val() < 1900 || $('#to_year').val() > 2020) {
					this.Error = true;
					this.showAlert('Ошибка. Неправильно заполнены поля периода.');
				}*/
			} else {
				this.Error = true;
				this.showAlert('Ошибка. Неправильно заполнены поля периода.');
			}
			
			if(!this.Error) {
				this.hideAlert();
				var data = $('#' + this.Form).serialize();
				
				$.ajax({
					async: false,
				   	type: 'POST',
				   	url: '/ajax/chart/',
				   	data: data,
					success: function(r){
						var xml = r;
						
						if(xml) {
							var success = xml.getElementsByTagName('success');
							
							if(success.length) {
								$('#chart_result').html(success[0].firstChild.nodeValue);
								$('#chart_result').show();
							} else {
								var error = xml.getElementsByTagName('error');
								if(error.length) {
									$('#chart_result').hide();
									Chart.showAlert(error[0].firstChild.nodeValue);
								}
							}
						} else {
							Chart.showAlert('Возникла ошибка при выполнении запроса.');
						}
						Chart.IsExecute = false;
					},
					error: function() {
						Chart.showAlert('Возникла ошибка при выполнении запроса.');
						Chart.IsExecute = false;
						$('#chart_result').hide();
					},
					complete: function() {
						Chart.IsExecute = false;
					}
				});
				
			} else {
				$('#chart_result').hide();
			}
			
			this.isExecute = false;
		}
		return false;
	},

	showAlert: function(_string) {
		$('#error_description').html(_string);
		$('#error_description').show();
	},
	
	hideAlert: function() {
		$('#error_description').html('');
		$('#error_description').hide();
	},
	
	check: function(_value) {
		regex = /^[0-9]{2,4}$/;
		if (regex.test(_value)) {
			return true;
		} 
		return false;
	}, 
	
	init: function(from_day, from_month, from_year, to_day, to_month, to_year) {
		$('#from_year').val(from_year);
		$('#to_year').val(to_year);
		
		$('#from_day').val(from_day);
		$('#to_day').val(to_day);
		
		$('#from_month').val(from_month);
		$('#to_month').val(to_month);
	}
};