var Zgloszenie = {

	_running: {},
	_submitted: {},
	_checked: {},

	submit: function(form, prefix) 
	{
		if (this._running[prefix])
			return;
	
		this._running[prefix] = true;

		var _this = this;
		var ajaxObj = new Ajax.Request('/zgloszenie,ajax-submit',
		{
			method: 'post',
			parameters: Form.serialize(form, true),
			onSuccess: function(transport) {
				Common.Loader.destroy();
				if (/^Exception:/.test(transport.responseText)) {

					if (/^Exception: 550 5\.1\.1/.test(transport.responseText)) {

						_this.submitEnable(true, prefix);
						_this._running[prefix] = false;
					
					};
					
					alert(transport.responseText);
					
					return false;

				} else if (transport.responseText == 'true') {

					$(prefix + 'zgloszenie_success').style.display = 'block';

					$$('#' + prefix + 'zgloszenie_main .to_hide').each(function(obj) {
						obj.style.display = 'none';
					});

					var informacje = $(prefix + 'zgloszenie_informacje');
					if (Object.isElement(informacje)) {
						// Jeżeli mamy gdzie załadowac informacje, to je ładujemy.
						_this.loadInformacje(form, prefix);
					}

					try {
						var adWordsImage = new Image(1,1);
						adWordsImage.src = "http://www.googleadservices.com/pagead/conversion/1070803803/?value=100.0&amp;label=xqnWCNXWgwEQ29bM_gM&amp;guid=ON&amp;script=0";
						pageTracker._trackPageview('/oferty/kontakt/wyslanie_zgloszenia');
					} catch(e) {
					
					}
					
					_this._submitted[prefix] = true;

				} else {
					try {
						var response = transport.responseText.evalJSON();
					} catch (e) {
						alert(Lang.parse_error);
						return false;
					}
				
					form.getElements().each(function(obj) {
						obj.removeClassName('errors');
					});
					$$('#' + prefix + 'zgloszenie_form .errors').each(function(obj) {
						obj.remove()
					});
					for (objId in response) {
						obj = $(prefix + objId);
						obj.addClassName('errors');
						obj.insert({after: '<ul class="errors"><li>' + response[objId][0] + '</li></ul>'});
					}
					_this.submitEnable(true, prefix);
					
				};

				_this._running[prefix] = false;

			},
			onFailure: function() {
				Common.Loader.destroy();
				_this.submitEnable(true);
				alert(Lang.generic_error);
			}
		});
	},
	
	loadInformacje: function(form, prefix) 
	{
		var _this = this;
		
		var kredytowanie = (Object.isElement($(prefix + 'zgloszenie_kredyt'))) ? $(prefix + 'zgloszenie_kredyt').getValue() : '0';
		var wykonczenie = (Object.isElement($(prefix + 'zgloszenie_wykonczenie'))) ? $(prefix + 'zgloszenie_wykonczenie').getValue() : '0';
		
		var ajaxObj = new Ajax.Request('/zgloszenie,ajax-informacje',
		{
			method: 'post',
			parameters: {
				inwestycja_id: form.zgloszenie_inwestycja_id.getValue(),
				zgloszenie_id: form.zgloszenie_id.getValue(),
				zgloszenie_typ: form.zgloszenie_typ.getValue(),
				unfold_kredytowanie: kredytowanie,
				unfold_wykonczenie: wykonczenie
			},
		
			onSuccess: function(transport) {
				$(prefix + 'zgloszenie_informacje').innerHTML = transport.responseText;				
//				$(prefix + 'zgloszenie_success').style.display = 'block';
				Common.Loader.destroy();
			}
		});
	},
	
	submitEnable: function(enable, prefix) 
	{
		var element = $(prefix + 'zgloszenie_submit');

		if (enable) {
			Form.Element.enable(element);
			element.src = element.src.replace(/wyslij_disabled/, 'wyslij');
		} else {
			Form.Element.disable(element);
			element.src = element.src.replace(/wyslij/, 'wyslij_disabled');
		}
	},

	setupForm: function(params, options) 
	{
		if (typeof options == 'undefined') options = {};

		var prefix = (typeof options.prefix == 'undefined' ? 'default_' : options.prefix + '_');

		var div = $(prefix + 'zgloszenie' + (typeof params.zgloszenie_id != 'undefined' ? '_' + params.zgloszenie_id : ''));
		
		this._running[prefix] = false;

		this.submitEnable(true, prefix);

		var _this = this;
		Event.observe($(prefix + 'zgloszenie_submit'), 'click', function(event) {

			if (_this._running[prefix]) 
				return;
			
			if (!_this._submitted[prefix]) {
				_this.submitEnable(false, prefix);
				Common.Loader.open(Lang.submit);
			}

			element = Event.findElement(event);
			element.blur();
			_this.submit(element.form, prefix);
		});

//		div.style.display = 'block';
	}
};

