(function()
{
	document.observe('dom:loaded', function()
	{
		if($('logotype')) {
			var logotype = new ACarousel({listId: 'logotype', orientation: 'vertical', masked: false, maxDimension: 1000, minItems: 5});
		}

		//popUp.invoke();
	});
})();

(function()
{
	var _form = null,
		_emailField = null,
		_infoBox = null,
		_isSent = false,
		_accepted = false;

	document.observe('dom:loaded', function()
	{
		if ($('newsletterFooter')) {
			_invokeFooter();
		}

		if ($('newsletterArchitect')) {
			_invokeArchitect();
		}
	});

	function _invokeFooter()
	{
		Event.observe($('newsletterFooterEmail'), 'focus', _onFocus.bind(this, 'newsletterFooter'));
		Event.observe($('newsletterFooterEmail'), 'blur', _onBlur.bind(this, 'newsletterFooter'));
		Event.observe($('newsletterFooter'), 'submit', _send.bind(this, 'newsletterFooter'));
	}

	function _invokeArchitect()
	{
		Event.observe($('newsletterArchitectEmail'), 'focus', _onFocus.bind(this, 'newsletterArchitect'));
		Event.observe($('newsletterArchitectEmail'), 'blur', _onBlur.bind(this, 'newsletterArchitect'));
		Event.observe($('newsletterArchitect'), 'submit', _send.bind(this, 'newsletterArchitect'));
	}

	function _onFocus(formType)
	{
		_form = $(formType);
		_emailField = $(formType + 'Email');

		if ('' == _form.email.value.strip() || _form.email.value == 'wpisz swój adres e-mail') {
			if (_emailField.hasClassName('error')) {
				_emailField.removeClassName('error');
			}
			_form.email.value = '';
		}
	}

	function _onBlur(formType)
	{
		_form = $(formType);
		if ('' == _form.email.value.strip()) {
			_form.email.value = 'wpisz swój adres e-mail';
		}
	}

	function _send(formType, event)
	{
		Event.stop(event);

		_form = $(formType);
		_emailField = $(formType + 'Email');
		_infoBox = $(formType + 'InfoBox');

		if (!_isSent) {

			var ajax = new Ajax.Request('/index.php?module=newsletter&action=add', {
				method: 'post',
				parameters: _form.serialize(true),

				onCreate: function() {
					_infoBox.update('Trwa dodawanie adresu...');
					_infoBox.show();
				},

				onSuccess: function(transport) {
					if (_emailField.hasClassName('error')) {
						_emailField.removeClassName('error');
					}

					var response = transport.responseText.evalJSON();

					if (response.feedback.status == 'fail') {
						_emailField.addClassName('error');
						if (response.feedback.entryExists == 1) {
							_infoBox.update('Ten adres e-mail został już zapisany.');
						} else {
							_infoBox.update('Nieprawidłowy adres e-mail.');
						}
					} else if(response.feedback.status == 'ok') {
						_form.hide();
						_infoBox.addClassName('ok');
						_infoBox.update('Twój adres został pomyślnie zapisany!');
						_isSent = true;
					}
				}
			});
		}
	}

})();

(function()
{
	var _form = null,
		_searchField = null;

	document.observe('dom:loaded', function()
	{
		if ($('searchHeader')) {
			_invoke();
		}
	});

	function _invoke()
	{
		_form = $('searchHeader');
		_searchField = $('searchHeaderTerm');

		Event.observe($('searchHeaderTerm'), 'focus', _onFocus);
		Event.observe($('searchHeaderTerm'), 'blur', _onBlur);
		Event.observe($('searchHeader'), 'submit', _send);
	}

	function _onFocus()
	{
		if ('' == _form.search.value.strip() || _form.search.value == 'wpisz tekst') {
			_form.search.value = '';
		}
	}

	function _onBlur()
	{
		if ('' == _form.search.value.strip()) {
			_form.search.value = 'wpisz tekst';
		}
	}

	function _send(event)
	{
		Event.stop(event);
		if ('' != _form.search.value.strip() && _form.search.value != 'wpisz tekst') {
			_form.submit();
		}
	}

})();


(function()
{
	document.observe('dom:loaded', function()
	{
		if ($('printIt')) {
			_invoke();
		}
	});

	function _invoke()
	{
		Event.observe($('printIt'), 'click', _onClick);
	}

	function _onClick(event)
	{
		Event.stop(event);
		base_url = encodeURIComponent(window.location);
		url = encodeURIComponent($('printParams').innerHTML);

		var printPop = window.open("/?module=print_document&uri="+url+"&base_url="+base_url, "Drukuj", "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=800,height=600");
		printPop.moveTo(0, 0);
	}

})();

(function()
{
	document.observe('dom:loaded', function()
	{
		if ($('productSearchForm')) {
			_invoke();
		}
	});

	function _invoke()
	{
		Event.observe($('searchButton1'), 'click', function() {
			$('formAction').value = 'product_list';
			$('productSearchForm').submit();
		});
		Event.observe($('searchButton2'), 'click', function() {
			$('formAction').value = 'manufacturer_list';
			$('productSearchForm').submit();
		});
	}
})();


(function()
		{
	document.observe('dom:loaded', function()
			{
		if ($('adviceSearchForm')) {
			_invoke();
		}
			});

	function _invoke()
	{
		Event.observe($('searchButton1'), 'click', function() {
			$('adviceSearchForm').submit();
		});
	}
		})();




var popUp = (function()
{
	var _mask = undefined,
		_pop = undefined;

	function _invoke()
	{
		_mask = document.createElement('div');
		Element.extend(_mask);

		_mask.setStyle({
			position: 'absolute',
			top: '0',
			width: document.documentElement.scrollWidth + 'px',
			height: document.documentElement.scrollHeight + 'px',
			display: 'none',
			backgroundColor: '#000'
		});

		$$('body').first().insert(_mask);

		Event.observe(_mask, 'click', _dispose);

    	new Effect.Appear(_mask, { duration: 0.3, from: 0.0, to: 0.6, afterFinish: function()
    		{
    			_invokePop();
    		}
    	});
	}

	function _invokePop()
	{
		_pop = document.createElement('div');
		Element.extend(_pop);

		txt = document.createElement('p');
		Element.extend(txt);

		txt.update('7 listopada rusza nowa odsłona serwisu <br><a href="http://przewodnik-budowlany.com.pl">www.przewodnik-budowlany.com.pl</a>. <br><br>Tu znajdziecie praktyczne informacje na temat budowy oraz eksploatacji domów pasywnych i energoszczędnych! <br><br>Zapraszamy! <br><br>Zapraszamy na szkolenie: Budownictwo zrównoważone – nowe trendy i kierunki rozwoju w budownictwie energooszczędnym i pasywnym. szczegóły <a href="http://www.dommodelowy.pl/?module=training">tutaj</a>');

		txt.setStyle({
			fontSize: '1.4em',
			lineHeight: '1.1em',
			textAlign: 'center',
			marginTop: '24px'
		});


		_pop.insert(txt);

		_pop.setStyle({
			position: 'absolute',
			top: document.viewport.getScrollOffsets().top + (document.viewport.getHeight() - 232)/2 + 'px',
			left: (document.viewport.getWidth() - 482)/2 + 'px',
			width: '450px',
			height: '250px',
			display: 'none',
			border: '4px solid #546B7D',
			backgroundColor: '#FFF',
			padding: '16px'
		});

		$$('body').first().insert(_pop);

		Event.observe(_pop, 'click', _dispose);

		new Effect.Appear(_pop, { duration: 0.3, from: 0.0, to: 1 } );
	}

	function _dispose()
	{
		Event.stopObserving(_mask, 'click', _dispose);
		Event.stopObserving(_pop, 'click', _dispose);

		new Effect.Fade(_pop, { duration: 0.3, from: 1, to: 0.0, afterFinish: function()
    		{
				_pop.remove();
				_pop = undefined;
    		}
    	});

		new Effect.Fade(_mask, { duration: 0.3, from: 0.6, to: 0.0, afterFinish: function()
    		{
				_mask.remove();
				_mask = undefined;
    		}
    	});
	}

	return {
		invoke: function()
		{
			_invoke();
		}
	}
})();


var sendToFriendManager = (function()
{
	var _isFormSent = false;

	document.observe("dom:loaded", function()
	{
		var trigger = $('recommend')

		if(trigger) {
			trigger.observe('click', _invokeForm);
		}
	});


	/**
	 * Invoke recommend form
	 *
	 */
	function _invokeForm()
	{
		_invokeMask();
		_invokeBox();
		Event.observe(window, 'resize', _resize);
	}


	/**
	 * Invoke mask
	 *
	 */
	function _invokeMask()
	{
		var mask = document.createElement('div');

		mask = Element.extend(mask);
		mask.id = 'mask';
		mask.addClassName('mask');

		mask.setStyle({
			width: document.documentElement.scrollWidth + 'px',
			height:document.documentElement.scrollHeight + 'px',
			display: 'none'
		});

		$(document.body).insert(mask);

		mask.appear({
			duration: 0.6,
			to: 0.6
		});

		mask.observe('click', function()
		{
			var pop = $('pop');
			mask.stopObserving();
			Event.stopObserving(window, 'resize', _resize);

			if(pop) {
				pop.fade({
					duration: 0.6,
					afterFinish: function()
					{
						$('sendToFriendForm').stopObserving();
						$('closeSendToFriend').stopObserving();
						$('recipient_email').stopObserving();
						$('sender_email').stopObserving();
						$('comment').stopObserving();
						$('signature').stopObserving();
						pop.remove();
					}
				});
			}

			mask.fade({
				duration: 0.6,
				afterFinish: function()
				{
					mask.remove();
				}
			});
		});
	}


	/**
	 * Invoke box
	 *
	 */
	function _invokeBox()
	{
		var pop = document.createElement('div'),
			html = '';

		html += '<p>Prześlij znajomemu</p><p>Wypełnij poniższy formularz i prześlij wiadomość znajomemu.</p><div id="closeSendToFriend"></div>';
		html += '<form action="/?module=gateway&amp;action=send_to_friend" method="post" id="sendToFriendForm"><fieldset>';
		html += '<div><input type="text" id="recipient_email" name="recipient_email" value="Adres e-mail odbiorcy:"></div>';
		html += '<div><input type="text" id="sender_email" name="sender_email" value="Twój adres e-mail:"></div>';
		html += '<div><textarea rows="1" cols="1" id="comment" name="comment">Komentarz:</textarea></div>';
		html += '<div><input type="text" id="signature" name="signature" value="Twój podpis:"></div>';
		html += '<div id="recaptchaBox"></div><input id="sendToFriendSubmit" type="submit" value="">';
		html += '<span id="sendToFriendLoader" style="display: none;"><img src="/img/wait.gif" alt="Wysyłanie wiadomości..."/>Wysyłanie wiadomości...</span>';
		html += '</fieldset></form>';

		Element.extend(pop);
		pop.id = 'pop';
		pop.addClassName('pop');
		pop.update(html);

		pop.setStyle({
			left: (document.viewport.getWidth() - 500)/2 + 'px',
			top: (document.viewport.getHeight() - 460)/2 + document.viewport.getScrollOffsets().top + 'px',
			display: 'none'
		});

		$(document.body).insert(pop);

		Recaptcha.create(recaptchaPublicKey,
		    "recaptchaBox",
		    {
				custom_translations: {
	                instructions_visual: "Przepisz słowa:",
	                instructions_audio: "Wpisz to co słyszysz:",
	                instructions_context: "Przepisz słowa w ramkach:",
	                play_again: "Odtwórz ponownie",
	                cant_hear_this: "Pobierz dźwięk w formacie MP3",
	                visual_challenge: "Pobierz słowa",
	                audio_challenge: "Pobierz dźwięk",
	                refresh_btn: "Pobierz ponownie",
	                help_btn: "Pomoc",
	                incorrect_try_again: "Nieprawidłowo. Spróbuj ponownie"
	          },
	          lang : 'pl',
		      theme: "clean",
		      callback: Recaptcha.focus_response_field
		    }
		  );

		pop.appear({
			duration: 0.6
		});

		$('sendToFriendForm').observe('submit', _sendMessage);
		$('closeSendToFriend').observe('click', _dispose);
		$('recipient_email').observe('focus', _fieldFocused.bindAsEventListener(this, 'Adres e-mail odbiorcy:'));
		$('recipient_email').observe('blur', _fieldBlurred.bindAsEventListener(this, 'Adres e-mail odbiorcy:'));
		$('sender_email').observe('focus', _fieldFocused.bindAsEventListener(this, 'Twój adres e-mail:'));
		$('sender_email').observe('blur', _fieldBlurred.bindAsEventListener(this, 'Twój adres e-mail:'));
		$('comment').observe('focus', _fieldFocused.bindAsEventListener(this, 'Komentarz:'));
		$('comment').observe('blur', _fieldBlurred.bindAsEventListener(this, 'Komentarz:'));
		$('signature').observe('focus', _fieldFocused.bindAsEventListener(this, 'Twój podpis:'));
		$('signature').observe('blur', _fieldBlurred.bindAsEventListener(this, 'Twój podpis:'));

		_isFormSent = false;
	}


	/**
	 * Resize mask & position pop
	 *
	 */
	function _resize(event)
	{
		var mask = $('mask'),
			pop = $('pop');

		if(mask) {
			mask.setStyle({
				width: document.documentElement.scrollWidth + 'px',
				height:document.documentElement.scrollHeight + 'px'
			});
		}

		if(pop) {
			pop.setStyle({
				left: (document.viewport.getWidth() - 500)/2 + 'px',
				top: (document.viewport.getHeight() - 460)/2 + document.viewport.getScrollOffsets().top + 'px'
			});
		}
	}

	function _dispose(event)
	{
		var pop = $('pop'),
			mask = $('mask');

		mask.stopObserving();
		Event.stopObserving(window, 'resize', _resize);

		if(pop) {
			pop.fade({
				duration: 0.6,
				afterFinish: function()
				{
					$('sendToFriendForm').stopObserving();
					$('closeSendToFriend').stopObserving();
					$('recipient_email').stopObserving();
					$('sender_email').stopObserving();
					$('comment').stopObserving();
					$('signature').stopObserving();

					pop.remove();
				}
			});
		}

		if(mask) {
			mask.fade({
				duration: 0.6,
				afterFinish: function()
				{
					mask.remove();
				}
			});
		}

		_isFormSent = false
	}


	function _fieldFocused(event)
	{
		var trigger = Event.element(event);

		if(trigger.hasClassName('error')) {
			trigger.removeClassName('error');
		}

		if(trigger.value == $A(arguments)[1]) {
			trigger.value = '';

			trigger.addClassName('txt');
		}
	}

	function _fieldBlurred(event)
	{
		var trigger = Event.element(event);
		if(trigger.value == '') {
			trigger.value = $A(arguments)[1];
			trigger.removeClassName('txt');
		}

		if(trigger.value == $A(arguments)[1]) {
			trigger.removeClassName('txt');
		}
	}

	function _sendMessage(event)
	{
		Event.stop(event);
		if(!_isFormSent) {
			var loader = $('sendToFriendLoader');
			var params = $('sendToFriendForm').serialize(true);
			params.title = 'Ciekawy artykuł z serwisu Przewodnik Budowlany';
			params.url = window.location.href;

			var ajax = new Ajax.Request('/index.php?module=gateway&action=send_to_friend', {
				method: 'post',
				parameters: params,

				onCreate: function()
				{
					if(!loader.visible()) {
						loader.show();
					} else {
						if(loader.hasClassName('fail')) {
							loader.removeClassName('fail');
						}
						loader.update('<img src="/img/wait.gif" alt="Wysyłanie wiadomości..."/>Wysyłanie wiadomości...');
					}
				},

				onSuccess: function(transport)
				{
					var response = transport.responseText.evalJSON(),
						message = '';

					if(response.feedback.status == 'fail') {
						if(response.feedback.fields.recipient_email == 1) {
							$('recipient_email').addClassName('error');
						}

						if(response.feedback.fields.sender_email == 1) {
							$('sender_email').addClassName('error');
						}

						message = 'Pola zaznaczone na czerwono muszą zostać poprawnie wypełnione.';
					} else if(response.feedback.captcha == 'fail') {
						message += 'Nieprawidłowo przepisane słowa';
					} else if(response.feedback.status == 'ok') {
						if(response.feedback.isSent == 'ok') {
							message = 'Formularz został wysłany.';
							$('sendToFriendSubmit').addClassName('sent');

							_isFormSent = true;
						} else {
							message = 'Wysłanie maila nie powiodło się. Wystąpiły problemy techniczne.';
						}
					}

					if(_isFormSent) {
						loader.addClassName('success');
					} else {
						loader.addClassName('fail');
					}

					loader.update(message);
				}
			});
		}
	}
})();
