/*
 * This JavaScript file handles the dialog boxes from the Webbook App.
 * 
 * This file requires following files
 * -	/osr/javascript/dev/webbook/webbook.js
 * -	/osr/javasciprt/dev/librarys/jquery-plugins/jquery.dialog.js
 */

function _parseDialogMessage(pText, pValues) {
	for (var i=0; i<pValues.length; ++i) {
		var regex = new RegExp('\%'+i, 'gi');
		pText = pText.replace(regex, pValues[i]);
	}
	return pText;
}

function dialog_pageBackupLoadError(lang, options) {
	var jError = dialog(lang.error_history, lang.error_server_backup, 4);
	jError.dialog({
		buttons: {
			'ok' : function() {
				jQuery(this).dialog('close');
			}
		}
	});
}

function dialog_pageBackupRestoreError(lang, options) {
	var jError = dialog(lang.error_rest_backup, lang.error_rest_this_backup, 4);
	jError.dialog({
		buttons: {
			'ok' : function() {
				jQuery(this).dialog('close');
			}
		}
	});
}

function dialog_confirmContentChange(lang, options) {
	var dialogMessage = lang.remove_content;
	var buttons = {};
//	var types = ['text', 'image', 'bot', 'audio', 'video', 'link', 'empty'];
//	var type = options[1];
	var frame = options[2];
	var page = options[4]*1 + options[3];
//	var indent = types.indexOf(type);
//	var index1 = 124 + indent;
	var values = [lang['a_'+options[1]], frame, page];

	dialogMessage = _parseDialogMessage(dialogMessage, values);
	var jDialog = dialog(lang.replace_content, dialogMessage, 4);
	buttons[lang.yes] = function() {
		updateType(options[0], options[1], options[2], options[3]);
		jQuery(this).dialog('close');
	};
	buttons[lang.no] = function() {
		jQuery(this).dialog('close');
	};
	jDialog.dialog({
		buttons: buttons
	});
}

function dialog_confirmPageDelete(lang, options) {
	var jDialog = dialog(lang.delete_pages, lang.delete_pages_question, 1);
	var buttons = {};
	buttons[lang.yes] = function() {
		delete_pages(options);
		jQuery(this).dialog('close');
	};
	buttons[lang.no] = function() {
		jQuery(this).dialog('close');
	};
	jDialog.dialog({
		modal: true,
		buttons: buttons
	});
}

function dialog_contentChangeError(lang, options) {
	var jDialog = dialog(lang.oops, lang.error_occured, 3)
	jDialog.dialog({
		buttons: {
			'ok' : function() {
				jQuery(this).dialog('close');
			}
		}
	});
}

function dialog_historyLoadError(lang, options) {
	var jError = dialog(lang.no_backup_found, lang.error_server_history, 4);
	jError.dialog({
		buttons: {
			'ok' : function() {
				jQuery(this).dialog('close');
			}
		}
	});
}

function dialog_noReadAccess(lang, options) {
	var jError = dialog(lang.perm_denied, lang.not_allowed_view_book, 0);
	jError.dialog({
		buttons: {
			'ok' : function() {
				jQuery(this).dialog('close');
			}
		}
	});
};

function dialog_noServer(lang, options) {
	var jError = dialog(lang.server_connec_lost, lang.server_lost_reload_page, 2);
	jError.dialog({
		modal: true,
		buttons: {
			'ok' : function() {
				jQuery(this).dialog('close');
			}
		}
	});
};

function dialog_noWriteAccess(lang,options) {
	var jError = dialog(lang.perm_denied, lang.not_allowed_edit_book, 0);
	jError.dialog({
		buttons: {
			'ok' : function() {
				jQuery(this).dialog('close');
			}
		}
	});
}

function dialog_pageLocked(lang, options) {
	var dialogMessage = _parseDialogMessage(lang.edit_overlap, options);
	var jError = dialog(lang.page_locked, dialogMessage, 0);
	jError.dialog({
		buttons: {
			'ok' : function() {
				jQuery(this).dialog('close');
			}
		}
	});
}

function dialog_pageLockedSorting(lang, options) {
	var dialogMessage = _parseDialogMessage(lang.reorg_overlap, options);
	var jError = dialog(lang.page_locked, dialogMessage, 0);
	jError.dialog({
		buttons: {
			'ok' : function() {
				jQuery(this).dialog('close');
			}
		}
	});
}

function dialog_recoveryAvailable(lang, options) {
	var jDialog = dialog(lang.text_recovery,lang.trouble, 0);
	var buttons = {};
	buttons[lang.see_now] = function() {
		jQuery(this).dialog('close');
		showRecovery();
	};
	buttons[lang.see_later] = function() {
		jQuery(this).dialog('close');
		jQuery('li#webbook_recovery').show('pulsate');
		var expiration = new Date();
		var twelveHoursInMilliseconds = 43200000;
		expiration.setTime(expiration.getTime()+twelveHoursInMilliseconds);
		jQuery.cookie('autorecovery_hide', 'yes', { expires: expiration });
	};
	jDialog.dialog({
		modal: true,
		buttons: buttons
	});
};

function dialog_unknownError(lang,options) {
	var jError = dialog(lang.unexpected_error, lang.should_not_happen, 2);
	jError.dialog({
		buttons: {
			'ok' : function() {
				jQuery(this).dialog('close');
			}
		}
	});
}
