var naruszenia_tpl = {
	formularz: '<div id="naruszenie" class="com"><div class="comt png">&nbsp;</div><div class="com-"><div class="coml"><div class="t" style=""></div><h2>{TYTUL}</h2><div class="frm frc"><ul><li class="fit"><label for="naruszenie_opis"><em style="width:65px;">Powód:</em><textarea cols="40" rows="5" id="naruszenie_opis" name="naruszenie_opis" style="width:305px;" /></label></li><li class="fibs"><div class="fib anuluj"><a class="cancel" href="{LINK_ANULUJ}" title="Anuluj">Anuluj</a></div><div class="fib wyslij"><a class="zglos" href="{LINK_OK}" title="wyślij">wyślij</a></div></li></ul></div></div></div><div class="comb png">&nbsp;</div></div>'
};


/**
 * Naruszenia
 */

var naruszenia =
{
	/* przechwycenie linków zglaszania naruszen */
	linki_init: function() {
		$("a.xnaruszenie").bind("click", function() {
			var tytul = locale.nar_kom_tytul;
			var tresc = '';
			naruszenia.pokaz_formularz(tytul, tresc, this.href, '');
			$('#naruszenie a.zglos')[0].onclick = function() {
                naruszenia.zglos(this.href);
				return false;
			};
			$('#naruszenie a.cancel')[0].onclick = function() {
				naruszenia.usun_formularz();
				return false;
			};
			return false;
		});
	},

	/* wyświetla formularz zglaszania naruszenia */
	pokaz_formularz: function(tytul, tresc, link_ok, link_anuluj) {
		if ( naruszenia_tpl['formularz'] ) {
			/* pobranie szablonu naruszenia */
			var tpl = naruszenia_tpl['formularz'];
			/* ustawienie treści */
			tpl = tpl
        			.replace('{TYTUL}', tytul)
        			//.replace('{TRESC}', tresc)
        			.replace('{LINK_OK}', link_ok)
        			.replace('{LINK_ANULUJ}', link_anuluj);

			/* usunięcie poprzedniego formularza naruszenia, jeśli istnieje */
			if ( $('#naruszenie')[0] ) {
				naruszenia.usun_formularz();
			}

			/* wyświetlenie formularza naruszenia */
			$("body").prepend(tpl);

			$('#naruszenie').wrap('<div class="overlay"></div>');
			$('#naruszenie').before('<div class="overlay-bg">&nbsp;</div>');
			$('#naruszenie').parent('.overlay').css("z-index", 10000);

			/* wypozycjonowanie formularza */
			this.ustaw_pozycje();

			/* obsługa przewijania strony */
			window.onscroll = function() { naruszenia.ustaw_pozycje(); };


			/* PNG fix */
			//$(document).pngFix();

			/* oprogramowanie przycisków */
			this.ustaw_przyciski();

			return true;
		}
		return false;
	},

	/* usuwa formularz */
	usun_formularz: function() {
		if ( $('#naruszenie')[0] ) {
            $('#naruszenie').parent(".overlay").remove();
			window.onscroll = null;
		}
	},

	/* domyślne ustawienie przycisków */
	ustaw_przyciski: function() {
		$('#naruszenie .cancel').each( function(i) {
			this.onclick = function() {
				naruszenia.usun_formularz();
				return false;
			}
		});
	},

	/* wypozycjonowanie formularza */
	ustaw_pozycje: function() {
		/* ustalenie przesunięcia przewijania */
		var scrollY = $(document).scrollTop();
		/* ustalenie rozmiaru widocznego obszaru */
		var innerHeight = $(window).height();
		var pozycjaY = scrollY+(innerHeight/2)-($('#naruszenie').height()/2);
		$('#naruszenie').get(0).style.top = pozycjaY+'px';

		$("#naruszenie").parent('.overlay').height($(document).height());
		$("#naruszenie").parent('.overlay').find('.overlay-bg').height($(document).height());
	},
	
	trwa_komunikacja: false,

	// inicjalizacja linków oceniania
	zglos: function(href) {
		if ( !naruszenia.trwa_komunikacja ) {
			var dane = href.match(/#([0-9])-([0-9]+)/);
    		var opis = $("#naruszenie textarea").get(0).value;
    		if ( dane ) {
                // opis jest wymagany
                if( opis == '' ) {
                    komunikaty.pokaz("err", locale.nar_kom_tytul, locale.nar_kom_3, '', '');
                }
                else {
        			naruszenia.trwa_komunikacja = true;
        			// wysłanie komentarza AJAX-em
        			$.ajax({
        				type: "POST",
        				url: "/naruszenia/dodaj/"+dane[1]+"/"+dane[2],
        				cache: false,
        				dataType: "json",
        				data: 'opis='+opis,
        				success: function (data, textStatus) { naruszenia.zglos_success(data); },
        				error: function (XMLHttpRequest, textStatus, errorThrown) { naruszenia.zglos_error(); },
        				complete: function (XMLHttpRequest, textStatus) {
        					naruszenia.trwa_komunikacja = false;
        				}
        			});
    			}
    		}
		}
	},

	// obsługa komunikacji AJAX-owej
	zglos_success: function(data) {
		if ( typeof(data.status) != "undefined" ) {
			switch(data.status) {
				// ocena zapisana
				case 1:
                    naruszenia.usun_formularz();
					komunikaty.pokaz("ok", locale.nar_kom_tytul, locale.nar_kom_1, '', '');
					break;
				// użytkownik niezalogowany
				case 2:
					komunikaty.pokaz("err", locale.nar_kom_tytul, locale.nar_kom_2, '', '');
					break;
				// brak uzasadnienia
				case 3:
					komunikaty.pokaz("err", locale.nar_kom_tytul, locale.nar_kom_3, '', '');
					break;
				default:
					komunikaty.pokaz("err", locale.nar_kom_tytul, locale.nar_kom_err_default, '', '');
			}
		}
		else {
			komunikaty.pokaz("err", locale.nar_kom_tytul, locale.nar_kom_err_default, '', '');
		}
	},

	zglos_error: function() {
		komunikaty.pokaz("err", locale.nar_kom_tytul, locale.nar_kom_err_default, '', '');
	}
};
