// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults


//*************** Menu główne *******************

var menu_close_timeout	= 500;
var menu_close_timer	= null;
var current_menu_id = null;

function menu_open(id){
	
	if (current_menu_id != id){
		
		//zamknij stare menu
		menu_close()
		
		current_menu_id = id;
		
		//pokaż nowe podmenu i podświetl pozycję
		$('#' + id + '_menu_item a.closed_menu').addClass('opened_menu');
		$('#' + id + '_menu_item a.closed_menu').removeClass('closed_menu');
		$('#' + id + '_menu_item ul.submenu_list').slideDown('fast', function(){
			if (current_menu_id != id)
				$('#' + id + '_menu_item ul.submenu_list').hide();
		});
		
	}
	//zainicjuj chowanie menu
	cancel_menu_close_time();
}

function menu_close(){
	if (current_menu_id) {
		$('#' + current_menu_id + '_menu_item a.opened_menu').addClass('closed_menu');
		$('#' + current_menu_id + '_menu_item a.opened_menu').removeClass('opened_menu');
		$('#' + current_menu_id + '_menu_item ul.submenu_list').hide();
		current_menu_id = null;
	}
}

function menu_close_time(){
	cancel_menu_close_time();
	menu_close_timer = window.setTimeout(menu_close, menu_close_timeout);
}

function cancel_menu_close_time(){
	if(menu_close_timer)
	{
		window.clearTimeout(menu_close_timer);
		menu_close_timer = null;
	}
}

document.onclick += menu_close;


//*************** Formularz logwania *******************

function hide_field_hint(field, label){
	if (field.value == label)
		field.value = '';
}

function show_field_hint(field, label){
	if (field.value == '')
		field.value = label;
}

function text_to_pass_hint(text_field_id, pass_field_id){
	var text_field = $('#' + text_field_id);
	var pass_field = $('#' + pass_field_id);
	text_field.hide();
	pass_field.show();
	pass_field.focus();
}

function pass_to_text_hint(text_field_id, pass_field_id){
	var text_field = $('#' + text_field_id);
	var pass_field = $('#' + pass_field_id);
	if (pass_field.val() == '') {
		text_field.show();
		pass_field.hide();
	}
}

function reset_field_hint(login_field_id, l_label){
  var login_field = $('#' + login_field_id);
  if (login_field.val() == l_label)
    login_field.val('');
}

//****************** Migająca ikona poczty ******************

function blinking_mail_icon() {
  hide_mail_icon();
}

function show_mail_icon() {
  $('.navigation_links .nav_pm a').addClass('new_pm');
	$('#mail_icon_top').css('visibility', 'visible');
  window.setTimeout(hide_mail_icon, 1000);
}

function hide_mail_icon() {
  $('.navigation_links .nav_pm a').removeClass('new_pm');
	$('#mail_icon_top').css('visibility', 'hidden');
  window.setTimeout(show_mail_icon, 200);
}


//****************** uniwersalna funkcja dla żądań ajax **************

// wysyła żądanie i umieszcza odpowiedz w konkretnym tagu
function ajaxLoad(tag_id, url, afterLoad){
	$("#ajax_loader").show();
	$.get(url, {}, function(data) {
		$("#" + tag_id).html(data);
		if (afterLoad != null)
			afterLoad.call();
		$("#ajax_loader").hide();
	});
}

// wysyła żądanie i umieszcza odpowiedz w na koniec konkretnego tagu
function ajaxLoadAndAppend(tag_id, url, afterLoad){
	$("#ajax_loader").show();
	$.get(url, {}, function(data) {
		$("#" + tag_id).append(data);
		if (afterLoad != null)
			afterLoad.call();
		$("#ajax_loader").hide();
	});
}

// wysyła żadanie, ale ignoruje odpowiedź
function ajaxSendOnly(url, afterSend){
	$("#ajax_loader").show();
	$.get(url, {}, function(data) {
		if (afterSend != null)
			afterSend.call();
		$("#ajax_loader").hide();
	});
}


// wysyła formularz z użyciem ajaxa, a wynik żądania traktuje jako skrypt
// funkcja powinna być wywoływana w atrybucie onsubmit formularza
function submitWithAjax(form) {
	var hideLoader = function() {	$("#ajax_loader").hide();	}
	
	$("#ajax_loader").show();
	if (form.method == 'get' || this.method == 'GET'){
		var url = form.action + '?' + $(this).serialize();
		$.get(form.action + '?' + $(form).serialize(), null, hideLoader, "script");
	} else {
		$.post(form.action, $(form).serialize(), hideLoader, "script");
	}
  return false;
};



//****************** okona dialogowe (messagebox'y) ******************

// otwiera dialog modalny dla konkretnego elementu (np. div'a) z przyciskiem OK zamykającym okno
function openDialog(messageTag) {
	messageTag.dialog({
			modal: true,
			closeText: 'zamknij',
			draggable: true,
			buttons: {
				OK: function() {
					$(this).dialog('close');
				}
			}
		});
}

// ta funkcja robi to samo co powyższa
// tylko bardziej nadaje się do otwierania youtubowych filmikow
function openYoutubeMovieDialog(messageTag) {
	messageTag.dialog({
			width: 520,
			height: 480,
			modal: true,
			closeText: 'zamknij',
			draggable: true,
			buttons: {
				OK: function() {
					$(this).dialog('close');
				}
			}
		});
}

function createCustomDialog(title, message){
	$('#custom_dialog').attr('title', title);
	$('#custom_dialog').html(message);
}

// otwiera okno dialogowe (z przyciskami Tak, Nie) z konkretnym, tytułem treścią i funkcjami odpowiadającymi odpowiednio za zdarzenia tak/nie
function openYesNoDialog(title, message, fun_yes, fun_no) {
	createCustomDialog(title, message);
	$('#custom_dialog').dialog({
			modal: true,
			closeText: 'zamknij',
			draggable: true,
			buttons: {
				Nie: function() {
					$(this).dialog('close');
					if (fun_no != null) 
						fun_no.call();
				},
				Tak: function() {
					$(this).dialog('close');
					if (fun_yes != null)
						fun_yes.call();
				}
			}
		});
}

// otwiera okno dialogowe (z przyciskami Tak, Nie) z konkretnym, tytułem treścią i funkcją odpalaną po kliknięciu 'Tak' z argumentem 'yes_arg'
function openYesNoDialogWithArgument(title, message, fun_yes, yes_arg) {
	openYesNoDialog(title, message, function() { fun_yes(yes_arg) } , null);
}

// otwiera okno dialogowe (z przyciskami OK, Anuluj) z konkretnym tytułem treścią i funkcją odpowiadającą za przycisk OK
function openOkCancelDialog(title, message, fun_ok) {
	createCustomDialog(title, message);
	$('#custom_dialog').dialog({
			modal: true,
			closeText: 'zamknij',
			draggable: true,
			buttons: {
				Anuluj: function() {
					$(this).dialog('close');
				},
				OK: function() {
					$(this).dialog('close');
					if (fun_ok != null)
						fun_ok.call();
				}
			}
		});
}

// otwiera okno dialogowe (z przyciskiem Ok) z konkretnym tytułem i treścią
function openOkDialog(title, message) {
	createCustomDialog(title, message);
	$('#custom_dialog').dialog({
			modal: true,
			closeText: 'zamknij',
			draggable: true,
			buttons: {
				OK: function() {
					$(this).dialog('close');
				}
			}
		});
}

// otwiera specjalne, powitalne okno dialogowe (z przyciskiem Ok)
function openWelcomeDialog() {
	$('#welcome_dialog').dialog({
			modal: true,
			closeText: 'zamknij',
			draggable: true,
			buttons: {
				OK: function() {
					$(this).dialog('close');
					$("#after_welcome_dialog").dialog({
						modal: true,
						width: "550px",
						closeText: 'zamknij',
						draggable: true,
						buttons: {
							OK: function() {
								$(this).dialog('close');
							}
						}
					});
				}
			}
		});
}



//**************************** po załadowaniu całego dokumentu...
$(document).ready(function(){
	
  //wybranie linków jako lightbox
  $('a.lightbox').lightBox();
  
	openDialog($("#flash_notice_dialog"));

	openDialog($("#flash_error_dialog"));
	
	openWelcomeDialog();
	
	
	$('#main_menu li#search_menu_item a').click(function(){
		$("#website_search_dialog").dialog({
				modal: true,
				width: '320px',
				buttons: {
					"Anuluj": function() {
						$(this).dialog('close');
					},
					"Szukaj": function() {
						$("#website_search_dialog form").submit();
					}
				}
			});
		return false;
	});
	
	// komunikat odpalany przy starej wersji przeglądarki
	if ($.browser.msie && $.browser.version < 8) {
		$("#old_browser_dialog").dialog({
			modal: true,
			width: "550px",
			buttons: {
				"Ignoruj i zamknij okno": function() {
					$(this).dialog('close');
				},
				"Zainstaluj nowszą przeglądarkę (firefox)": function() {
					window.location.replace("http://www.mozilla.com/pl/");
				}
			}
		});
	}

	// 
	$("#youtube_movie_dialog_click").click(function(){
		openYoutubeMovieDialog($("#youtube_movie_dialog"));
		return false;
	});

});


/* Polish initialisation for the jQuery UI date picker plugin. */
/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
jQuery(function($){
	$.datepicker.regional['pl'] = {
		closeText: 'Zamknij',
		prevText: '&#x3c;Poprzedni',
		nextText: 'Następny&#x3e;',
		currentText: 'Dziś',
		monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec',
		'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
		monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
		'Lip','Sie','Wrz','Pa','Lis','Gru'],
		dayNames: ['Niedziela','Poniedzialek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
		dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
		dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
		weekHeader: 'Tydz',
		dateFormat: 'yy-mm-dd',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
	$.datepicker.setDefaults($.datepicker.regional['pl']);
});


