public static File showSaveDialog(String title) {
		final ExtensionFileFilter filter = new ExtensionFileFilter();
		JFileChooser Save = new JFileChooser();
		JFrame frame = new JFrame();
		frame.setIconImage(Program.programIcon);
		if (title.compareTo(Tools.getLocalizedString(ActionType.EXPORT.name()
				+ ".Name")) == 0) {
			filter.setDescription(Tools.getLocalizedString("FILE_TYPE_PDF"));
			filter.addExtension(".pdf");
			Save.setDialogTitle(Tools.getLocalizedString(ActionType.EXPORT
					.name() + ".Name"));
			Save.setSelectedFile(new File(Tools.getLocalizedString("UNTITLED")
					+ ".pdf"));
		} else {
			filter.setDescription(Tools.getLocalizedString("FILE_TYPE_KS"));
			filter.addExtension(".ks");
			Save.setDialogTitle(title);
			Save.setSelectedFile(new File(Tools.getLocalizedString("UNTITLED")
					+ ".ks"));
		}

		Save.setFileFilter(filter);
		Save.setFileSelectionMode(JFileChooser.FILES_ONLY);
		File file = null;
		int result = Save.showSaveDialog(frame);

		if (result == JFileChooser.APPROVE_OPTION) {
			file = Save.getSelectedFile();
			if (file.exists()) {
				Object[] options = { Tools.getLocalizedString("YES"),
						Tools.getLocalizedString("NO") };
				int n = JOptionPane
						.showOptionDialog(
								Save,
								Tools.getLocalizedString("FILE_ALREADY_EXIST")
										+ " "
										+ file.getName()
										+ " "
										+ Tools.getLocalizedString("FILE_ALREADY_EXIST2"),
								Tools.getLocalizedString("CONFIRM_SAVE_REPLACE"),
								JOptionPane.YES_NO_OPTION,
								JOptionPane.YES_NO_OPTION, null, options,
								options[0]);
				if (n == JOptionPane.NO_OPTION) {
					file = null;
					Tools.showSaveDialog(title);
				}
			}
		}
		return file;
	}