
var ContactForm = {
	int_sendingTimer: 0,
	
	submitForm: function() {
		try {
			var bool_res = ContactForm.validForm();
		} catch (err) {
			alert(err);
		}
		
		if (!bool_res) {
			$('form_msg').innerHTML = '<span style="color:red">Formularz zawiera błędy</span>';
		} else {
			$('form_msg').innerHTML = 'Wysyłanie wiadomości...';
			ContactForm.sendForm();
		}
		
		return false;
	},
	
	validForm: function(_str_field) {
		if (typeof _str_field == 'undefined') {
			_str_field = false;
		}
		var bool_error = false;
		
		if (_str_field == false || _str_field == 'form_name') {
			if ($F('form_name').length <= 3) {
				if (!$('form_name').hasClassName('error')) {
					$('form_name').addClassName('error');
				}
				bool_error = true;
			} else {
				if ($('form_name').hasClassName('error')) {
					$('form_name').removeClassName('error');
				}
			}
		}
		
		if (_str_field == false || _str_field == 'form_email') {
			if (!$F('form_email').match(/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/)) {
				if (!$('form_email').hasClassName('error')) {
					$('form_email').addClassName('error');
				}
				bool_error = true;
			} else {
				if ($('form_email').hasClassName('error')) {
					$('form_email').removeClassName('error');
				}
			}
		}
		
		if (_str_field == false || _str_field == 'form_phone') {
			if ($F('form_phone').length <= 8) {
				if (!$('form_phone').hasClassName('error')) {
					$('form_phone').addClassName('error');
				}
				bool_error = true;
			} else {
				if ($('form_phone').hasClassName('error')) {
					$('form_phone').removeClassName('error');
				}
			}
		}
		
		if (_str_field == false || _str_field == 'form_content') {
			if ($F('form_content').length <= 3) {
				if (!$('form_content').hasClassName('error')) {
					$('form_content').addClassName('error');
				}
				bool_error = true;
			} else {
				if ($('form_content').hasClassName('error')) {
					$('form_content').removeClassName('error');
				}
			}
		}
		
		return !bool_error;
	},
	
	sendForm: function() {
		try {
			var obj_parameters = {
				name: $('form_name').value,
				email: $('form_email').value, 
				phone: $('form_phone').value,
				content: $('form_content').value
			};
		} catch (err) {
			alert(err);
		}
		
		$('form_msg').hide();
		$('form_msg').appear({duration: 0.5});
		ContactForm.sendingAnimation(0);
		
		var obj_this = this;
		this.obj_sendingObject = new Ajax.Request('?p=contact&ajax=1&send=1', {
			method: 'post', 
			parameters: obj_parameters,
			onComplete: function(_obj_request) { ContactForm.afterSend(_obj_request); }
		});
	},
	
	sendingAnimation: function(_int_step) {
		if (_int_step > 3) {
			_int_step = 0;
		}
		
		var str_dots = '';
		for (var int_i = 0; int_i < _int_step; ++int_i) {
			str_dots += '.';
		}
		
		try {
			$('form_msg').innerHTML = 'Wysyłanie wiadomości' + str_dots;
		}
		catch (e) {}
		ContactForm.int_sendingTimer = setTimeout(function() { ContactForm.sendingAnimation(++_int_step) }, 1000);
	},
	
	afterSend: function(_obj_response) {
		if (_obj_response.status == 200 && _obj_response.responseText == 'OK') {
			if (ContactForm.int_sendingTimer) {
				clearTimeout(ContactForm.int_sendingTimer);
				ContactForm.int_sendingTimer = 0;
			}
			
			try {
				$('form_msg').innerHTML = 'Wiadomość została wysłana.';
				$('form_name').value = '';
				$('form_email').value = '';
				$('form_phone').value = '';
				$('form_content').value = '';;
			}
			catch (e) {}
		} else {
			if (ContactForm.int_sendingTimer) {
				clearTimeout(ContactForm.int_sendingTimer);
				ContactForm.int_sendingTimer = 0;
			}
			
			try {
				$('form_msg').innerHTML = '<span style="color:red;">Błąd podczas wysyłania wiadomości</span>';
			}
			catch (e) {}
		}
		
		var obj_this = this;
		setTimeout(function() { $('form_msg').fade({duration: 0.3}); }, 20000);
	}
};
