var mzDebug = false;

function mySetMenu(name) {
    pom=document.getElementById("img_"+name);
    if (pom) pom.className="img_" + name + "_on"; 
}

function SiteLoginForm() {
	var login = $("#login").val();
	var pwd = $("#passwd").val();
	if( $.trim(login) == "" ) {
		alert( "Podaj login" );
		$("#login").focus();
		return false;
	}
	
	if( pwd == "" ) {
		alert( "Podaj hasło" );
		$("#passwd").focus();
		return false;
	}

	$("#rlogin").val( login );
	$("#rpasswd").val( $.md5(pwd) );
	$("#rremember_login").val( $("#remember_login").attr("checked") ? 1 : 0 );

	var urlLogic = $("#form_logowanie").attr("action");
	options = { 
	    target: '', 
	    method: 'POST',
	    url: urlLogic,  
	    success:    function(d) {
	    	if( d == 1 ) {
	      	document.location.reload();
	    	}
	    	else {
	        alert( "Niepoprawny login lub hasło, spróbuj ponownie." );
	    	}
//				$("#logout").overlay( {remove:true} );
	    } 
		};
//		$("#logout").overlay();
		$('#rform_logowanie').ajaxSubmit(options);	

		return false;
}

function SiteLogout() {
	var urlLogic = $("#form_logout").attr("action");
	
	$.get( urlLogic, { act: 'logout', rnd: Math.random() },
			function(d) {
				document.location.reload();
			}
	);
	
	return false;
}


function RemoveComment(id) {
	if( !confirm("Komentarz zostanie usunięty\r\nCzy chcesz kontynuować?") ) return false;
	var url = $("#comment_remove").attr("action");

	$.get( url, { act: 'remove', rnd: Math.random(), cmid: id },
			function(d) {
				if( d == 1 ) {
					naviGoto(0, 0);
					alert("Komentarz został usunięty");
				}
				else alert("Nie masz uprawnień do usunięcia komentarza");
			}
	);

	return false;
}

var defaultCategory = {
		minName: 3,
		maxName: 60,
		success: function() {}
	};


////////////////// F. STRONY SEO

function SeoSave( formName ) {
	try {
		var frm = $("#" + formName);
	
		var opt = {
			validate: function() { return true; },
			onSuccess: function(d) {
				if( (typeof d.fields == 'object' && d.fields != 0) || d.msg.length > 0 ) {
					document.location.hash = d.msg.length > 0 ? "#e_news_info" : "#e_news_tips";
				}
			}
		};
		
		$(frm).faqForm( opt );;
	}
	catch(e) {
		if( mzDebug && console ) console.error(e);
	}

	return false;
}

function SeoRemove( formName, id, opt ) {
	try {
		
	var defaults = { 
			overlayFor: "#e_news",
			act: 'remove',
			msgConfirm: "Wpis SEO zostanie usunięty.\r\n Czy chcesz kontunuować?",
			msgOK: "Wpis został usunięty",
			msgError: "Nie masz uprawnień do usunięcia wpisu",
			onSuccess: function(d) {
				if( (typeof d.fields == 'object' && d.fields != 0) || d.msg.length > 0 ) {
					document.location.hash = d.msg.length > 0 ? "#e_news_info" : "#e_news_tips";
				}		
				
				if( d.isSaved )
				if( d.urlRedirect ) document.location.href = d.urlRedirect; else document.location.reload();
			}
		};
	
	var settings = $.extend( {}, defaults, opt ); 
	formRemoveObject( formName, id, settings );
	
	}
	catch( e ) { 
		if( mzDebug && console ) console.error(e);
	}
	
	return false;
}


function SeoFieldsDialog( id, type, options ) {
	if( mzDebug && console ) console.log( "SeoFieldsEdit id=%s name=%s type=%s options=%o", id, name, type, options );
	
	var opt = {};
	$.extend( opt, defaultCategory, options ? options : {} );
	
	$("#edit_seo_id").val(id);
	$("#edit_seo_type").val( type );
	
	$(function() {
		var title = $("#seo_title"), urlKey = $("#seo_url_key"), keyword = $("#seo_keyword"), descr = $("#seo_descr")
			, tips = $("#edit_seo_tips")
			,	info = $("#edit_seo_info")		 
			, id = $("#edit_seo_id")
			, allFields = $([]).add(urlKey, title, keyword, descr);

		var optionsCat = opt;
		
		function updateTips(t) {
			if( t == "" )  {
				tips.empty().parent().hide();
			}
			else {
				tips.append( '<p><span style="float: left; margin-right: 3px;" class="ui-icon ui-icon-alert"></span>' + t + '</p>' );
				tips.parent().show();
			}
		}

		function updateInfo(t) {
			if( t == "" )  {
				info.empty().parent().hide();
			}
			else {
				info.append( '<p><span style="float: left; margin-right: 3px;" class="ui-icon ui-icon-info"></span>' + t + '</p>' );
				info.parent().show("normal");
			}
		}

		$("#dialog_edit_seo").dialog({
			bgiframe: true,
			autoOpen: false,
			width: 550,
			height: 400,
			modal: true,
			buttons : {
					'Zapisz zmiany': function() {
						if( !confirm("Czy chcesz zapisać wprowadzone zmiany?") ) return;
			
					updateTips('');
					updateInfo('');
					var bValid = true;
					allFields.removeClass('ui-state-error');
			
					if (bValid) {
						var urlLogic = $("#edit_seo_form").attr("action"); 
						var options = {
					    target: '', 
					    method: 'POST',
					    dataType: 'json',
					    url:  urlLogic,
			    		data: { act: 'save_seo', 'rand': Math.random() * 99999 },  
					    success:    function(d) {
					      if( mzDebug ) { updateTips(d); return; }
					      
					      if( d.isSaved ) {
					      	updateInfo( ( $("#edit_seo_id").val() == 0 ? "Kategoria została dodana" : "Zmiany zostały zapisane" ) );
//					      	$("#edit_category_id").val( d.id );
//									$('#dialog_edit_seo').dialog('option', 'buttons', { 
//										'Zamknij': function() { $(this).dialog('close'); }
//									});
					      	
									try { optionsCat.success(); } catch( e ) {
										if( mzDebug && console ) console.error( e );
									}
					      }
					      else {
						      updateTips( "Operacja zakończona niepowodzeniem" );
					      }
			
					      if( d.fields.rights ) updateTips( d.fields.rights );
					      if( d.fields.seo_title ) { updateTips( d.fields.seo_title ); title.addClass('ui-state-error'); }
					      if( d.fields.url_key ) { updateTips( d.fields.url_key ); urlKey.addClass('ui-state-error'); }
					      if( d.fields.seo_keyword ) { updateTips( d.fields.seo_keyword ); keyword.addClass('ui-state-error'); }
					      if( d.fields.seo_descr ) { updateTips( d.fields.seo_descr ); descr.addClass('ui-state-error'); }
			
					      for( var i = 0 ; i < d.msg.length ; i++ ) {
					    	  updateInfo(d.msg[i]);
					      }
					    } 
						};
						
						if( mzDebug ) { options.dataType = "text"; console.log( options ); }
						$('#edit_seo_form').ajaxSubmit(options);
					}
			
			//			$(this).dialog('close');
				},
				'Zamknij': function() {
					$(this).dialog('close');
				}
			},
			
			open: function() {
				updateTips('');
				updateInfo('');
			},
			close: function() {
				updateTips('');
				updateInfo('');
				allFields.removeClass('ui-state-error');
			}
		});

		
//		if( !categoryEditButtons ) categoryEditButtons = $('#dialog_edit_seo').dialog('option', 'buttons' );
				
	});	

	$('#dialog_edit_seo').dialog('open');

	
	return false;
}


////////////////// F. BAZY WIEDZY ////

function KnowledgeSearchForm() {
	$('#object_search').SearchForm( { overlayFor: "#search_panel" } );	
	return false;
}

function KnowledgeDateLast( days ) {
	if( days < 1 ) $("#dt_from").val("");
	else {
		var d = new Date();
		d = new Date( d.getFullYear(), d.getMonth(), d.getDate() - days );
		$("#dt_from").val( d.getFullYear() + "-" + ( d.getMonth() + 1 ) + "-" + d.getDate() );
	}
	$("#dt_to").val( "" );		

	$("li[id^='day']").each( 
			function() { $(this).removeClass("selected"); }
	); 

	$("#day" + days).addClass( "selected" );

	return KnowledgeSearchForm();
}
//~

////////////////// F. NEWSÓW ////
function NewsArchiveYear( y ) {
	$("li[id^='year']" ).each( function() {
		$(this).removeClass("selected");
	} );

	$("ul[id^='archiveMonths']").hide();
	$("#archiveMonths" + y ).show();

	$("#year" + y ).addClass("selected");
	return false;
}

function NewsSave( formName ) {
	try {
		var frm = $("#" + formName);
	
		var opt = {
			validate: function() { return true; },
			onSuccess: function(d) {
				if( (typeof d.fields == 'object' && d.fields != 0) || d.msg.length > 0 ) {
					document.location.hash = d.msg.length > 0 ? "#e_news_info" : "#e_news_tips";
				}
			}
		};
		
		tinyMCE.get('news_textarea').save();
		$(frm).faqForm( opt );;
	}
	catch(e) {
		if( mzDebug && console ) console.error(e);
	}

	return false;
}

function NewsRemove( formName, id, opt ) {
	try {
		
	var defaults = { 
			overlayFor: "#e_news",
			act: 'remove',
			msgConfirm: "Wszystkie zasoby powiązane z newsem zostaną bezpowrotnie usunięte.\r\n Czy chcesz kontunuować?",
			msgOK: "News został usunięty",
			msgError: "Nie masz uprawnień do usunięcia newsa",
			onSuccess: function(d) {
				if( (typeof d.fields == 'object' && d.fields != 0) || d.msg.length > 0 ) {
					document.location.hash = d.msg.length > 0 ? "#e_news_info" : "#e_news_tips";
				}		
				
				if( d.isSaved )
				if( d.urlRedirect ) document.location.href = d.urlRedirect; else document.location.reload();
			}
		};
	
	var settings = $.extend( {}, defaults, opt ); 
	formRemoveObject( formName, id, settings );
	
	}
	catch( e ) { 
		if( mzDebug && console ) console.error(e);
	}
	
	return false;
}


function NewsDateLast( days ) {
	if( days < 1 ) $("#dt_from").val("");
	else {
		var d = new Date();
		d = new Date( d.getFullYear(), d.getMonth(), d.getDate() - days );
		$("#dt_from").val( d.getFullYear() + "-" + ( d.getMonth() + 1 ) + "-" + d.getDate() );
	}
	$("#dt_to").val( "" );		

	$("li[id^='day']").each( 
			function() { $(this).removeClass("selected"); }
	); 

	$("#day" + days).addClass( "selected" );

	return NewsSearchForm();
}

function NewsSearchForm() {
	$('#object_search').SearchForm( { overlayFor: "#search_panel" } );	
	return false;
}


function NewsCategorySearch( cid ) {
	$("#cid").val( cid );
	return NewsSearchForm();
}


//~


function VideoSearchForm() {
	$('#object_search').SearchForm( { overlayFor: "#search_panel" } );	
	return false;
}

function PhotoSearchForm() {
	$('#object_search').SearchForm( { overlayFor: "#search_panel" } );	
	return false;
}

////////////////// F. GRUP ////

function GroupSave( formName ) {
	try {
		var frm = $("#"+formName);
		var opt = {
				validate: function() { return true; },
				overlayOptions: { overlayFor: '#groups_inputs' }
		};
		$(frm).faqForm( opt );
	}
	catch( e ) {
		if( mzDebug && console ) console.error( e );
	}
	
	return false;
}

function GroupSavePost( formName ) {
	try {
		var frm = $("#" + formName);
		
		var opt = {
			onSuccess: function(d) {
				naviGoto( forum_curr_s, 16 );
			},
			
			validate: function() {
				var tips = $("#" +  formName + "_tips");
				$.fn.faqForm.updateTips("", tips);
				
				var ret = true;
				if( $.trim($('#' + formName + '_body').val()) == '' ) { $.fn.faqForm.updateTips("Wprowadź treść wiadomości", tips); ret= false; }
				
				tips.show();
				return ret;
			}		
		};
	
		$(frm).faqForm( opt );
	} catch(e) {
		if( mzDebug && console ) console.error(e);
	}

	return false;
}

//~

////////////////// F. IMPREZ ////
function EventSearch() {
	$("#event_search").SearchForm( { overlayFor: "#search_panel" } ); 
	return false;
}

function EventSaveComment( formName ) {
	if( $.trim( $("#news_kom_textarea").val() ) == "" ) {
		alert( "Wpisz treść komentarza" );
		$("#news_kom_textarea").focus();
		return false;
	}

	try {
		var frm = $("#" + formName);
		var urlLogic = frm.attr("action");
		options = { 
		    target: '', 
		    method: 'POST',
		    url: urlLogic,  
		    success:    function(d) {
			    if( d == 1 ) {
			    	$("#news_kom_textarea").val("");
			    	naviGoto( comm_last_s, 0 );
			    }
			    else alert("Błąd dodawania komentarza" + ( d == 0 ? "" : ":\r\n" + d ) );
			    
					frm.overlay( {remove: true} );
		    } 
		};
		
		frm.overlay();
		frm.ajaxSubmit(options);
	}
	catch( e ) {
		if( mzDebug && console ) console.error(e);
	}
		
	return false;
}


function EventInviteForm( formName ) {
	try {
		var frm = $("#" + formName);
		var urlLogic = frm.attr("action");
		options = { 
		  target:     '', 
		  method: 'POST',
		  dataType: 'json',
		  url: urlLogic,  
		  success:    function(d) {
		  	if( mzDebug ) { $("#form_msg").html(d).show(); return; }
			  	
		  	$("#form_msg").html("").hide();
	      for( var i = 0 ; i < d.msg.length ; i++ ) {
	        $("#form_msg").append( d.msg[i] + "<br/>" );
	      }
		  	$("#form_msg").show();
	
	      if( d.isSaved ) $("#groups_inputs").remove();
	      frm.overlay( {remove: true} );
		  } 
		};
	
		if( mzDebug ) options.dataType = "text";
		frm.overlay();
		frm.ajaxSubmit(options);
	}
	catch(e) {
		if( mzDebug && console ) console.error(e);
	}
	
	return false;
} 


function EventPhotoSave( formName ) {
	var opt = {
		validate: function() { return true; },
		onSuccess: function(d) {
			if( d.isSaved ) {
				$("#phid").val( d.id );
		    $("#bt_add").hide(); 
	    	$("#bt_save").show();
	    	if( typeof d.data == 'object' && d.data.img ) $("#photo_place").attr("src", d.data.img + "?r=" + Math.random() ).show();
			}
		}
	};
	$("#" + formName).faqForm( opt );

	return false;
}

function EventPhotoSaveComment(formName) {
	if( $.trim( $("#news_kom_textarea").val() ) == "" ) {
		alert( "Wpisz treść komentarza" );
		$("#news_kom_textarea").focus();
		return false;
	}
	
	try {
		var frm= $("#" + formName);
		var urlLogic = frm.attr("action");
		options = { 
		    target: '', 
		    method: 'POST',
		    url: urlLogic,  
		    success:    function(d) {
			    if( d == 1 ) {
			    	$("#news_kom_textarea").val("")
				    naviGoto(0,0);
			    }
			    else alert("Błąd dodawania komentarza" + ( d == 0 ? "" : ":\r\n" + d ) );
					frm.overlay( { remove: true } );
		    } 
		};
		frm.overlay();
		frm.ajaxSubmit(options);	
	}
	catch(e) {
		if( mzDebug && console ) console.error(e);
	}

	return false;
}

function GalleryElementSaveComment(formName) {
	var info = $("#" + formName + "_info" );
	var tips = $("#" + formName + "_tips" );
	var body = $("#" + formName + "_body");
	
	if( $.trim( body.val() ) == "" ) {
		$.fn.faqForm.updateTips( "Wpisz treść komentarza", tips );
		body.focus();
		return false;
	}
	
	try {
		var frm= $("#" + formName);
		var urlLogic = frm.attr("action");
		
		options = { 
				target: '', 
				method: 'POST',
				url: urlLogic,  
				success:    function(d) {
				$.fn.faqForm.updateTips( '', tips );
				$.fn.faqForm.updateInfo( '', info );
			
					if( d == 1 ) {
						body.val("");
						naviGoto(0,0);
					}
					else
						$.fn.faqForm.updateTips( "Błąd dodawania komentarza" + ( d == 0 ? "" : ":\r\n" + d ), tips );

			frm.overlay( { remove: true } );
		} 
		};
		frm.overlay();
		frm.ajaxSubmit(options);	
	}
	catch(e) {
		if( mzDebug && console ) console.error(e);
	}
	
	return false;
}

//~



////////////////// F. PROFILU ///

function ProfileBlock( formName ) {
	try {
		if( !confirm('Czy napewno chcesz zablokować / aktywować profil użytkonwnika?') ) return false;
		var frm = $("#" + formName);
		
		var opt = {
				onSuccess: function(d) {
					var info = $("#" + formName + "_info");
					
					$("#" + formName + "_token").val(d.token);
					if( d.isSaved ) {
						if( $("#" + formName + "_statusa").attr("checked")  )
							$.fn.faqForm.updateInfo( "Profil został aktywowany", info );
						else 
							$.fn.faqForm.updateInfo( "Profil został zablokowany", info );
//						info.animate( {fontSize: '11px'}, 3000 ).fadeOut(1500);
					}
//			document.location.reload();
		},
		
		validate: function() {
			var tips = $("#" +  formName + "_tips");
			$.fn.faqForm.updateTips("", tips);
			
			var ret = true;
			if( $('#' + formName + '_send_email').attr('checked') &&  $.trim($('#' + formName + '_message').val()) == '' ) { 
				$.fn.faqForm.updateTips("Wprowadź treść wiadomości", tips); 
				ret= false; 
			}
			
			tips.show();
			return ret;
		}		
		};
		
		$(frm).faqForm( opt );
	} catch(e) {
		if( mzDebug && console ) console.error(e);
	}
	
	return false;
}
//~


////////////////// F. KATEGORII ////

var categoryEditButtons = null;
var categoryMaintenance = false;

function onCategoryChanged() {
	var logic = $("#edit_category_form").attr("action");
	
	var id = "category_list_" + $("#edit_category_type").val();
	
	if( document.getElementById( id ) ) 
		$.get( logic, { act: 'getul', type: $("#edit_category_type").val(), rand: Math.random() * 99999 }, function(d, status) {
			$("#" + id).replaceWith( d ) ;
			$("div.category_edit").show();
		}, "text" );

	return false; 
}

function toggleEditCategory( showhide ) {
//	if( categoryMaintenance )	$("div.category_edit").hide(); else $("div.category_edit").show();
	try {
		if( categoryMaintenance )	$("div.category_edit" + ( showhide ? ", #" + showhide : '' ) ).hide(); 
		else $( "div.category_edit" + ( showhide ? ", #" + showhide : '' ) ).show();
	}
	catch(e) {
		if( mzDebug && console ) console.error(e);
	}
	categoryMaintenance = !categoryMaintenance;  
	return false;
}

function toggleEditCategoryEvent( showhide ) {

	if( categoryMaintenance )	$("div.category_edit" + ( showhide ? ", #" + showhide : '' ) ).hide(); 
	else $( "div.category_edit" + ( showhide ? ", #" + showhide : '' ) ).show();
	categoryMaintenance = !categoryMaintenance;  
	return false;
}

function CategoryEdit( id, name, type, options ) {
	if( mzDebug && console ) console.log( "CategoryEdit id=%s name=%s type=%s options=%o", id, name, type, options );
	
	var opt = {};
	$.extend( opt, defaultCategory, options ? options : {} );
	
	$("#edit_category_name").val( name );
	$("#edit_category_id").val(id);
	$("#edit_category_type").val( type );
	
	$(function() {
		var name = $("#edit_category_name")
			, tips = $("#edit_category_tips")
			,	info = $("#edit_category_info")		 
			, cid = $("#edit_category_id")
			, allFields = $([]).add(name);

		var optionsCat = opt;
		
		function updateTips(t) {
			if( t == "" )  {
				tips.empty().parent().hide();
			}
			else {
				tips.append( '<p><span style="float: left; margin-right: 3px;" class="ui-icon ui-icon-alert"></span>' + t + '</p>' );
				tips.parent().show();
			}
		}

		function updateInfo(t) {
			if( t == "" )  {
				info.empty().parent().hide();
			}
			else {
				info.append( '<p><span style="float: left; margin-right: 3px;" class="ui-icon ui-icon-info"></span>' + t + '</p>' );
				info.parent().show("normal");
			}
		}

		function checkLength(o,n,min,max) {
			if ( o.val().length > max || o.val().length < min ) {
				o.addClass('ui-state-error');
				updateTips("Pole &quot;<b>" + n + "</b>&quot; powinna zawierać od " + min + " do "+max+" znaków.");
				return false;
			} else {
				return true;
			}
		}

		function checkRegexp(o,regexp,n) {
			if ( !( regexp.test( o.val() ) ) ) {
				o.addClass('ui-state-error');
				updateTips(n);
				return false;
			} else {
				return true;
			}
		}

		$("#dialog_edit_category").dialog({
			bgiframe: true,
			autoOpen: false,
			width: 400,
			height: 300,
			modal: true,
			buttons : {
					'Zapisz zmiany': function() {
					updateTips('');
					updateInfo('');
					var bValid = true;
					allFields.removeClass('ui-state-error');
			
					bValid = bValid && checkLength(name,"Nazwa kategorii", opt.minName, opt.maxName );
					bValid = bValid && checkRegexp(name,/^[a-zA-Z]([0-9a-zA-Z])+/i,"Nazwa może zawierać znaki a-z, A-Z, 0-9, _ lub spację.");
									
					if (bValid) {
			
						var urlLogic = $("#edit_category_form").attr("action"); 
						var options = {
					    target: '', 
					    method: 'POST',
					    dataType: 'json',
					    url:  urlLogic,
			    		data: { act: 'save', 'rand': Math.random() * 99999 },  
					    success:    function(d) {
					      if( mzDebug ) { updateTips(d); return; }
					      
					      if( d.isSaved ) {
					      	updateInfo( ( $("#edit_category_id").val() == 0 ? "Kategoria została dodana" : "Zmiany zostały zapisane" ) );
//					      	$("#edit_category_id").val( d.id );
									$('#dialog_edit_category').dialog('option', 'buttons', { 
										'Zamknij': function() { $(this).dialog('close'); }
									});
					      	
									try { optionsCat.success(); } catch( e ) {
										if( mzDebug && console ) console.error( e );
									}
					      }
					      else {
						      updateTips( "Operacja zakończona niepowodzeniem" );
					      }
			
					      if( d.fields.rights ) updateTips( d.fields.rights );
					      if( d.fields.name ) { updateTips( d.fields.name ); name.addClass('ui-state-error'); }
			
					      for( var i = 0 ; i < d.msg.length ; i++ ) {
					    	  updateInfo(d.msg[i]);
					      }
					    } 
						};
						
						if( mzDebug ) { options.dataType = "text"; console.log( options ); }
						$('#edit_category_form').ajaxSubmit(options);							
					}
			
			//			$(this).dialog('close');
				},
				'Anuluj': function() {
					$(this).dialog('close');
				}
			},
			
			open: function() {
				updateTips('');
				updateInfo('');
			},
			close: function() {
				updateTips('');
				updateInfo('');
				allFields.val('').removeClass('ui-state-error');
			}
		});

		
		if( !categoryEditButtons ) categoryEditButtons = $('#dialog_edit_category').dialog('option', 'buttons' );
		
		var buttonsRemove = { 'Usuń kategorię': function() {
			if( !confirm("Czy napewno chcesz usunąc wybraną kategorię?") ) return;
			
			var urlLogic = $("#edit_category_form").attr("action"); 
			var options = {
			    target: '', 
			    method: 'POST',
			    dataType: 'json',
			    url:  urlLogic,
	    		data: { act: 'remove', rand: Math.random() * 9999 },
	    		success: function(d) {
			      if( mzDebug ) { updateTips(d); return; }
			      
			      if( d.isSaved ) {
			      	updateInfo( "Kategoria została usunięta" );
							var buttons = $('.dialog').dialog('option', 'buttons', { 
								'Zamknij': function() { $(this).dialog('close'); }
							});
							
							try { optionsCat.success(); } catch( e ) {
								if( mzDebug && console ) console.error( e );
							}		      	
			      }
			      else {
				      updateTips( "Operacja zakończona niepowodzeniem" );
			      }

			      if( d.fields.rights ) updateTips( d.fields.rights );
			      if( d.fields.name ) { updateTips( d.fields.name ); name.addClass('ui-state-error'); }

			      for( var i = 0 ; i < d.msg.length ; i++ ) {
			    	  updateInfo(d.msg[i]);
			      }    			
	    		}
			}
			$('#edit_category_form').ajaxSubmit(options);	
			
		}	};
		
		
		if( id && id > 0 && name ) {
			var tmp = {};
			$.extend( tmp, categoryEditButtons, buttonsRemove );
			$('#dialog_edit_category').dialog('option', 'buttons', tmp );
		} else $('#dialog_edit_category').dialog('option', 'buttons', categoryEditButtons );
				
	});	

	$('#dialog_edit_category').dialog('open');

	
	return false;
}

//~

////////////////// F. PROFILU ////

function ProfileRemove(adm) {
	if( !adm && $("#remove_passwd").val() == '' ) {
		alert("Podaj hasło");
		$("#remove_passwd").focus();
		return false;
	}
	
	if( !confirm("Czy napewno chcesz usunąć profil? \r\nTa operacja jest nieodwracalna.") ) return false; 
	
	var logic = $("#p_remove").attr("action");

	if( !adm ) $("#rr_passwd").val( $.md5( $("#remove_passwd").val() ) );

	options = { 
    target: '', 
    method: 'POST',
    url: logic,
    data: { act: 'remove', rnd: Math.random() * 99999 },
    dataType: 'json',
    success:    function(d) {
    	if( mzDebug && console ) { 
    		console.log( d );
    		return;
    	}
    	
    	$("#profile_err_remove").html("");
    	if( d.isSaved ) {
    		if( adm ) $("#profile_err_remove").html( 'Profil został usunięty. <a href="profile_list.html">Przejdź do listy profili >></a>' );
    		else $("#profile_err_remove").html( "Na Twój adres e-mail została wysłana wiadomość z linkiem potwierdzającym usunięcie profilu." );
      	$("#p_remove,#pr_pwd").remove();
    	}
    	else {
        $("#profile_err_remove").html( "<div>Operacja zakończona niepowodzeniem</div>" );
    	}

    	if( d.fields ) {
    		if( d.fields.token ) $("#remove_token").val( d.fields.token );
	    	if( d.fields.rights ) $("#profile_err_remove").append( "<div>" + d.fields.rights + "</div>" );
	    	if( d.fields.pwd ) $("#profile_err_remove").append( "<div>" + d.fields.pwd + "</div>" );
    	}

    	$("#profile_err_remove").show();
    }
	};
	
	if( mzDebug ) options.dataType = 'text';
	$('#p_remove').ajaxSubmit(options);

	return false;	
}

////////////////// F. FAQ ////////////////

function faqAnswerShow( formName, show ) {
	var fid = "#" + formName;
	if( show ) {
		$( fid ).show();
		$( fid + "_aid" ).val( 0 );
		$( fid + "_act").val( "save_answer" );
		$( fid + "_body" ).val( '' ) ;
		$( fid + "_body" ).focus();
		
	} else $("#" + formName ).show();
	
	return false;
}

(function($) {
$.fn.faqForm = function( options ) {
	var defaults = {
//			formName: 'faq_form',	// do określenia nazw pól, domyślnie jest to this.id
			formName:  $(this).attr("id"),
			onSuccess: function(d) {},
			redirect: true,
			ajaxOptions: {
				target: '',
				url: $(this).attr("action"),
		    method: 'POST',
		    dataType: 'json',
		    data: { rnd: Math.random() * 999999 }  
			},
			overlayOptions: {}
			
	};
	
	var settings = $.extend( {}, defaults, options ? options : {}, true );
	var that = this;
	
	function fieldName( name ) { return '#' + settings.formName + '_' + name; } ;
	
	var tips = $( fieldName('tips') ), info= $( fieldName('info') ), body = $( fieldName('body') ); 
	
	if( !settings.ajaxOptions.success ) 
	settings.ajaxOptions.success = function(d) {
		$.fn.faqForm.updateInfo('', info);
		$.fn.faqForm.updateTips('', tips);
		
		if( mzDebug ) { 
			$.fn.faqForm.updateTips( d, tips ); 
			$(that).overlay( {remove:true}); return; 
		}
  	
  	if( d.isSaved ) {
    	if( !mzDebug && settings.redirect && d.fields == 0 && d.urlRedirect != '' ) 
      	document.location.href = d.urlRedirect;
    	$( fieldName("body") ).val("");
  	}
  	
  	$.fn.faqForm.updateNotice( d, tips, info );

//  	if( d.fields != 0 && typeof d.fields == 'object' ) {
//  		for( var key in d.fields ) {
//  			if( typeof d.fields[key] != 'object' && typeof d.fields[key] == 'string' )
//  				$.fn.faqForm.updateTips( d.fields[key], tips );
//  		}
//  	}
//  	
//    for( var i = 0 ; i < d.msg.length ; i++ ) {
//  	  $.fn.faqForm.updateInfo(d.msg[i], info);
//    }
    

    try {
    	settings.onSuccess(d);
    } catch(e) {
    	if( mzDebug && console ) console.error(e);
    }
    
    $(that).overlay( {remove:true} );
	};
	
	if( !settings.validate )
		settings.validate = function() {
			$.fn.faqForm.updateTips("", tips);
			var ret = true;
			if( $.trim(body.val()) == '' ) { $.fn.faqForm.updateTips("Wprowadź treść wiadomości", tips); ret= false; }
			
			return ret;
		}
	
	if( mzDebug ) {
		settings.ajaxOptions.dataType = 'text';
	}
	
	if( settings.validate() ) {
		$(that).overlay( settings.overlayOptions );
		$( "#" + settings.formName ).ajaxSubmit( settings.ajaxOptions );
	}
};

	$.fn.faqForm.updateNotice = function( d, tips, info ) {
		if( d.msg )
    for( var i = 0 ; i < d.msg.length ; i++ ) {
  	  $.fn.faqForm.updateInfo(d.msg[i], info);
    }
		
  	if( d.fields && d.fields != 0 && typeof d.fields == 'object' ) {
  		for( var key in d.fields ) {
  			if( typeof d.fields[key] == 'object' )
  				$.fn.faqForm.updateNotice( d.fields[key], tips, info );
  			else
  				$.fn.faqForm.updateTips( d.fields[key], tips );
  		}
  	}

	}

	$.fn.faqForm.updateTips = function(t, tips) {
		if( t == "" )  {
			tips.empty().parent().hide();
		}
		else {
			tips.append( '<p><span style="float: left; margin-right: 3px;" class="ui-icon ui-icon-alert"></span>' + t + '</p>' );
			tips.parent().show();
		}
	}
	

	$.fn.faqForm.updateInfo = function(t, info) {
		if( t == "" )  {
			info.empty().parent().hide();
		}
		else {
			info.append( '<p><span style="float: left; margin-right: 3px;" class="ui-icon ui-icon-info"></span>' + t + '</p>' );
			info.parent().show("normal");
		}
	}		
})(jQuery);

function naviGotofaq( s, pg ) {
	forum_curr_s = s;
	$("#faq_form_navi").SearchForm( { overlayFor: "#list", ajaxOptions: { data: { 's': s } } } );
	
	return false;
}

function faqAnswerRemove( formName, id, otherNaviGoto ) {
	var urlLogic = $("#" + formName).attr("action");
	try {
	
	if( !confirm("Odpowiedź zostanie usunięta\r\nCzy chcesz kontynuować?") ) return false;
	$("#list").overlay();
	$.get( urlLogic, 
			{ act: 'remove_answer', rnd: Math.random(), oid: id },
			function(d) {
				$("#list").overlay( {remove:true} );
				if( d == 1 ) {
					try {
						if( otherNaviGoto == undefined ) naviGotofaq(0, 0);
						else otherNaviGoto();
					}
					catch(e) { 
						if( mzDebug && console ) console.error(e);
					}
					
					alert("Odpowiedź została usunięta");
				}
				else alert("Nie masz uprawnień do usunięcia odpowiedzi");
			}
	);
	} catch(e) {
		if( mzDebug && console ) console.error( e ); 
	}
	return false;
}

function faqSubjectRemove( formName, id, options ) {
	var defaults = { 
			overlayFor: "#list",
			act: 'remove_question',
			msgConfirm: "Pytanie i wszystkie odpowiedzi zostaną usunięte\r\nCzy chcesz kontynuować?",
			msgOK: "Pytanie zostało usunięte",
			msgError: "Nie masz uprawnień do usunięcia pytania"
		};
	
	var settings = $.extend( {}, defaults, options );
	
	var urlLogic = $("#" + formName).attr("action");
	
	if( !confirm("Pytanie i wszystkie odpowiedzi zostaną usunięte\r\nCzy chcesz kontynuować?") ) return false;
	$( settings.overlayFor ).overlay();
	$.get( urlLogic, 
			{ act: settings.act, rnd: Math.random(), oid: id },
			function(d) {
				if( d == 1 ) {
					alert( settings.msgOK );
					document.location.reload();
				}
				else alert( settings.msgError );
			}
	);
	
	return false;
}

function faqSubjectEdit( formName, id ) {
	try {
		var urlLogic = $("#" + formName ).attr("");
		if( mzDebug && console ) console.log( "form=%s, id=%s", formName, id );
	
		var body = $("#faq_" + id).html();
		body = body.replace(/(<br\/>|<br>)/ig,"\r");
		body = body.replace(/(<([^>]+)>)/ig,"");
		
		var fid = "#" + formName;
		$( fid + "_body" ).val( body );
		$( fid + "_aid" ).val( 0 );
		$( fid + "_act").val( "save_question" );
		$( fid ).show();
		$( fid + "_body" ).focus();

	} catch( e ) { 
		if( mzDebug && console ) console.log( e );
	}

	return false;
}

function faqAnswerEdit( formName,  id ) {
	try {
		var urlLogic = $("#" + formName ).attr("");
		if( mzDebug && console ) console.log( "form=%s, id=%s", formName, id );
	
		var body = $("#answer_" + id).html();
		body = body.replace(/(<br\/>|<br>)/ig,"\r");
		body = body.replace(/(<([^>]+)>)/ig,"");
		
		
		var fid = "#" + formName;
		$( fid + "_body" ).val( body );
		$( fid + "_aid" ).val( id );
		$( fid + "_act").val( "save_answer" );
		$( fid ).show();
		$( fid + "_body" ).focus();

	} catch( e ) { 
		if( mzDebug && console ) console.log( e );
	}

	return false;
}

////////////////// F. OGÓLNE ////////////////

/**
 * Parsuje datę
 * 
 * @param s string daty w formacie 0000-00-00
 * @return Date
 */

function parseDate( s ) {
	if( $.trim(s) == "" ) return null;
	var sp = new String(s).match(/(\d+)/ig);
	var d = new Date();
	sp[1] = sp[1].replace( /^0+/ig, '', sp[1] );
	sp[2] = sp[2].replace( /^0+/ig, '', sp[2] );
	d.setFullYear( parseInt(sp[0]), parseInt(sp[1]) -1 , parseInt(sp[2]) );
	return d;
}

$.fn.overlay = function( options ){
	var that = this;
	var defaults = {
			id: 'overlay',
			remove: false,
			width: $(that).width(),
			height: $(that).height(),
			loader: { show: true, text: 'Wczytywanie...', width: 240, height: 111 }
	};
	var settings = $.extend( true, {}, defaults, options || {} );
	
	if( settings.remove ) {
//		$("div.ui-overlay, div.ui-widget-overlay, div.ui-widget-shadow").remove();
		var s = "#" + settings.id;
		$( s + "-overlay, " + s + "-loader," + s + "-shadow" ).remove();
		return this;
	}
	
	//overlay widget markup
	var overlay = $('<div class="ui-overlay">'+
				'<div class="ui-widget-overlay"></div>'+
			'</div>' 
	);

	var pos = $(that).position();
	overlay.width( settings.width )
		.height( settings.height )
		.css( {
			position: 'absolute',
			left: pos.left,
			top:pos.top,
			zoom: 1,
			'z-index': 10000
		})
		.attr( "id", settings.id + "-overlay" );
	
	if( settings.loader.show ) {
		
		var loader = $(
			'<div class="ui-widget-overlay mz-overlay-load">' +
				'<div class="mz-loader" style=""></div>' +
				'<div class="mz-loader-label">' + settings.loader.text + '</div>' +
			'</div>' 
		);
		
		loader.css( {
			position: 'absolute',
			left: pos.left + Math.floor( settings.width / 2 - settings.loader.width / 2),
			top: pos.top + Math.floor( settings.height / 2 - settings.loader.height / 2 ),
			width: settings.loader.width,
			height: settings.loader.height,
			zoom: 1,
			'z-index': 10000
		})
		.attr( "id", settings.id + "-loader" );

		
		var shadow = $('<div class="ui-widget-shadow mz-loader-shadow"></div>');
		shadow.css( {
			position: 'absolute',
			left: pos.left + Math.floor( settings.width / 2 - settings.loader.width / 2 - 4 ) ,
			top: pos.top + Math.floor( settings.height / 2 - settings.loader.height / 2 ) - 6,
			width: settings.loader.width,
			height: settings.loader.height,
			zoom: 1,
			'z-index': 10000
		})
		.attr( "id", settings.id + "-shadow" );
		
		$(loader).before( shadow )
	}
	
	if( $.browser.msie && $.browser.version < 7 ) {
		overlay.find( "div.ui-widget-overlay" ).css( "height", $(that).height() + "px" );
		overlay.bgiframe();
		$("body").append(overlay);	// wtf
	}
	else {
		$(that).before(overlay);
	}
	
	if( settings.loader.show ) {
		$(overlay).after(loader);
		$(loader).before(shadow);
	}
	return this;
};

$.fn.SearchForm = function( options ) {
	var that = this;
	var defaults = {
			overlay: true,
			overlayFor: this,
			ajaxOptions: { 
				method: 'POST', target: '#list', url: $(this).attr("action"), data: { s: 0, rand: Math.random() * 999999 }
		}
	};
	
	var settings = $.extend( true, { }, defaults, options );
	
	settings.ajaxOptions.success = function() {
		if( settings.overlay ) $( settings.overlayFor ).overlay({ remove: true});
		document.location.hash = settings.ajaxOptions.target;
	};
	
	if( settings.overlay ) $( settings.overlayFor ).overlay();
	$(that).ajaxSubmit( settings.ajaxOptions );
	
	return this;
};


function formRemoveObject( formName, id, options ) {
	var defaults = { 
			overlayFor: "#list",
			act: 'invalid',
			msgConfirm: "Obiekt zostanie usunięty.\r\nCzy chcesz kontynuować?",
			msgOK: "Usuwanie zakończone powodzeniem.",
			msgError: "Nie masz uprawnień do usunięcia obiektu",
			onSuccess: function(d) {
				if( d.isSaved && d.urlRedirect ) document.location.href = d.urlRedirect; else document.location.reload();		
			},
			tips: $("#" + formName + "_tips"),
			info: $("#" + formName + "_info")
	};
	
	var settings = $.extend( {}, defaults, options );
	
	var urlLogic = $("#" + formName).attr("action");
	
	if( settings.msgConfirm && !confirm( settings.msgConfirm ) ) return false;
	if( settings.overlayFor ) $( settings.overlayFor ).overlay();
	
	$.get( urlLogic, 
			{ act: settings.act, rnd: Math.random(), oid: id },
			function(d) {
				if( settings.info ) $.fn.faqForm.updateInfo('', settings.info );
				if( settings.tips ) $.fn.faqForm.updateTips('', settings.tips );

				if( d.isSaved ) {
					if( settings.msgOK ) alert( settings.msgOK );
					try{
						if( settings.onSuccess ) settings.onSuccess(d);
					}
					catch( e ) { 
						if( mzDebug && console ) console.error( e );
					}
				}
				else
					if( settings.msgError ) alert( settings.msgError );
				
				if( settings.tips ) 
		  	if( d.fields != 0 && typeof d.fields == 'object' ) {
		  		for( var key in d.fields ) {
		  			$.fn.faqForm.updateTips( d.fields[key], settings.tips );
		  		}
		  	}
		  	
				if( settings.info ) 
		    for( var i = 0 ; i < d.msg.length ; i++ ) {
		  	  $.fn.faqForm.updateInfo(d.msg[i], settings.info);
		    }				
			}, 'json'
	);
	
	return false;
}



//////////////// F. STR GŁÓWNEJ
var faq_last_nr = 1;
function faqShow(nr) {
	$("div[id^='faq_']").hide();
	$("#faqt_" + faq_last_nr).css( "font-weight", "normal" );
	$("#faq_" + nr).show();
	$("#faqt_" + nr).css( "font-weight", "bold" ).show();

	faq_last_nr = nr;
}

var main_tab_last = 1;
function selectTab(nr) {
	$("#tab_1,#tab_2, #tab_3").removeClass("blue_on").removeClass("blue_on").removeClass("green_on");
	$("div[id^='tabc_']").hide();
	
	switch(nr) {
		case 1: $("#tab_1").addClass("blue_on"); $("#tabc_1").show(); break;
		case 2: $("#tab_2").addClass("green_on"); $("#tabc_2").show(); break;
		case 3: $("#tab_3").addClass("green_on"); $("#tabc_3").show(); break;
	}
	
	try {
		if( main_tab_last == nr ) document.location.href = $("#tab_" + nr ).attr("href");
	}
	catch( e ) {}

	main_tab_last = nr;
	return false;
}

function NewsletterForm() {
	var F = document.getElementById( 'freshmail_form' );
	var em = $.trim(  F.freshmail_email.value );
	
	if( !em || em == "" || em.indexOf("Wpisz") > -1 ) {
		alert("Proszę podać adres e-mail");
		$("#freshmail_email").focus();
		return false;
	}

	F.submit();
	return false;
}

/// inne

function RegisterLoginForm( formName, okOK ) {
	var login = $("#form_elogin").val();
	var pwd = $("#form_ehaslo").val();
	if( pwd == "" ) {
		alert( "Podaj hasło" );
		$("#form_ehaslo").focus();
		return false;
	}
	
	$("#" + formName + "_passwd" ).val( $.md5(pwd) );
	$("#form_ehaslo").val('');

	try {
		var frm = $("#" + formName);
		var urlLogic = frm.attr("action");
		options = { 
		    target:  '', 
		    method: 'POST',
		    url: urlLogic,
		    success:    function(d) {
					$("#login_msg").html('').hide(); 
		    	if( d == 1 ) {
		    		document.location.reload();
		    	}
		    	else {
		        $("#login_msg").html( "Niepoprawny login lub hasło, spróbuj ponownie." ).show();
		    	}
		    	frm.overlay( {remove:true} );
		    } 
		};
		frm.overlay();
		frm.ajaxSubmit(options);
	}
	catch(e) {
		if( mzDebug && console ) console.error(e);
	}

	return false;
}


function RegisterPasswordForm( formName ) {
	var login = $("#form_send_email").val();
	if( login.indexOf("@") < 0 ) {
		alert("Podaj poprawny adres e-mail");
		$("#form_send_email").focus();
		return false;
	}
	
	try {

		var frm = $("#" + formName);
		var urlLogic = frm.attr("action");
		
		options = { 
	    target:     '', 
	    method: 'POST',
	    url:    urlLogic,  
	    success:    function(d) {
	    	if( d == 1 ) {
		    	$("#f_email").hide();
		    	$("#remainder_msg").html( "Hasło zostało wysłane na podany adres e-mail" ).show();
	    	}
	    	else {
	        $("#remainder_msg").html( d == 0 ? "Dla podanego adresu e-mail nie ma zarejestrowanego profilu, profil nie został aktywowany lub został zablokowany" : d ).show();
	    	}
	    	frm.overlay( {remove:true} );
	    } 
		};
		frm.overlay();
		frm.ajaxSubmit(options);	
	}
	catch(e) {
		if( mzDebug && console ) console.error(e);
	}
	return false;
}

//////////// DOC READY
$(document).ready( function() {
	// okno logowania
	$("#passwd").keypress( function(event) { 
		if( event.keyCode == 13) SiteLoginForm();
	} );
	
});
