var Credit = {

	/**
	 * Walidator formy kredytowej
	 */
	formSubmit: function(form) 
	{
		var ajaxObj = new Ajax.Request('/kredyty,ajax-validate-kredyt',
		{
			method: 'post',
			parameters: Form.serialize(form, true),
			onSuccess: function(transport) {
				if (/^Exception:/.test(transport.responseText)) {
					alert(transport.responseText);
					return false;
				} else if (transport.responseText == 'true') {
					form.submit();
				} else {
					var response = transport.responseText.evalJSON();
					form.getElements().each(function(obj) {
						obj.removeClassName('errors');
					});
					$$('#kredytInfo .errors').each(function(obj) {
						obj.remove()
					});
					for (objId in response) {
						obj = $(objId);
						obj.addClassName('errors');
						obj.insert({after: '<ul class="errors"><li>' + response[objId][0] + '</li></ul>'});
					}
				}
			},
			onError: function(transport){
				alert(Lang.generic_error);
				//alert('BLAD' + transport.responseText);
			}
		});
	},
	
	
	addObservers: function()
	{
		var table = $('oferty');
		var tbody = table.down('tbody');
		_this = this;
		Event.observe(tbody, 'click', function(event) {
			var element = Event.findElement(event);
			var link = element.up('tr').down('a');
			if (link) {
				window.open(link.href);
			}
		});
	},

	addObservers2: function()
	{
		Event.observe($('zmiana_opcji'), 'change', function(event) {
			var element = Event.findElement(event);
			element.form.submit();
		});

		Event.observe($('zmiana_waluty'), 'change', function(event) {
			var element = Event.findElement(event);
			element.form.submit();
		});

	},

	kalkulatory: {
		
		kalkulatoryTypy: [ 'kalk_1', 'kalk_2', 'kalk_3', 'kalk_4', 'kalk_5', 'kalk_6'],
		
		addObservers: function()
		{
			Event.observe($('typ_kalkulatora'), 'change', function(event) {
				var element = Event.findElement(event);
				
				Credit.kalkulatory.kalkulatoryTypy.each(function(calc) {
					$$("tr." + calc).each(Element.hide);
				});
				$$("tr." + element.value).each(Element.show);
				$('zwrot').innerHTML = '';
			});
		
		},
		
		formSubmit: function(form) 
		{
			var ajaxObj = new Ajax.Request('/kredyty,ajax-validate-kalkulator',
			{
				method: 'post',
				parameters: Form.serialize(form, true),
				onSuccess: function(transport) {
					if (/^Exception:/.test(transport.responseText)) {
						alert(transport.responseText);
						return false;
					} else if (transport.responseText == 'true') {
						
						Credit.kalkulatory.calculateForm(form);
						
					} else {
						var response = transport.responseText.evalJSON();
						form.getElements().each(function(obj) {
							obj.removeClassName('errors');
						});
						$$('#kalkulatory_kredytowe .errors').each(function(obj) {
							obj.remove()
						});
						for (objId in response) {
							obj = $(objId);
							obj.addClassName('errors');
							obj.insert({after: '<ul class="errors"><li>' + response[objId][0] + '</li></ul>'});
						}
					}
				},
				onError: function(transport){
					alert('BLAD' + transport.responseText);
				}
			});
		},
		
		calculateForm: function(form)
		{
			var ajaxObj = new Ajax.Request('/kredyty,ajax-oblicz-kalkulator',
				{	
					method: 'post',
					parameters: Form.serialize(form, true),
					onSuccess: function(transport) {
						$('zwrot').innerHTML = transport.responseText;
						if (Object.isElement($('kalkulator_menu'))) {
							var tabs = new Control.Tabs($('kalkulator_menu'),{ defaultTab: 'wynik', activeClassName: 'of_tab_sel'});
						}
					},
					onError: function(transport){
							alert('BLAD' + transport.responseText);
					}
				});
		},
								
		/**
		 * function graph()
		 * tworzy zadany wykres
		 *
		 * @prams target, id, typ_kalkulatora, typ_grafu, szerokosc, wysokosc, opis, opis_osi_x, opis_osi_y
		**/
		graph: function()
		{
			if (graph.arguments.length < 4) {
				return false;
			} else {
				var args = ["500", "400", "testowy", "miesiace", "kwota"];
				var target = graph.arguments[0];
				var id = graph.arguments[1];
				var graph_type = graph.arguments[2];
				var calc_type = graph.arguments[3];
					
				for (i = 0; i < 5; i++) {
					if (graph.arguments[i+4]) {
						args[i] = graph.arguments[i+4];
					}
				}
					
				advAJAX.post({
					url: "/ajax.php",
					parameters : {
						"type" : 'calc',
						"calc4graph" : calc_type,
						"chartType" : '/images/Charts/' + graph_type,
						"chartWidth" : args[0],
						"chartHeight" : args[1],
						"chartCaption" : args[2],
						"chartXName" : args[3],
						"chartYName" : args[4]
					},
					onInitialization : function(obj) {
						$('loading_' + id).style.display = "block";
						$(target).style.display = "block";
					},
					onSuccess : function(obj) {
						$('loading_' + id).style.display = "none";
						if (typeof obj.responseText != "undefined" && obj.responseText != '') {
							var output = eval('(' + obj.responseText + ')');
							$(target).innerHTML = output;
						} else {
							alert(obj.responseText);
							$(target).innerHTML = "BÄąÂĂ„â€žD";
						}
					},
					onError : function(obj) {
						$('loading_' + id).style.display = "none";
						alert("Error: " + obj.status);
					}
				});
			}
		}
							
	}
	
};
