function confirmation (message, location)
{
	if(confirm(message))
		window.location = location;
}

/* display:
		Torna visible un elemento (código HTML entre etiquetas DIV) que está oculto, y viceversa. */
function display (div_id)
{
	disp = document.getElementById(div_id).style.display;
	if(disp == 'none')
		disp = 'block';
	else
		disp = 'none';
	document.getElementById(div_id).style.display = disp;
}

/* validate_text_input:
		input: nombre del campo de entrada de texto (formulario.input).
		required: determina si el campo tiene que diligenciarse o puede dejarse vacío (true/false).
		required_error: mensaje que se muestra si el campo es requerido y no se diligencia.
		option: determina el formato con el que debe ser validada la entrada
						(null->sin formato especial, "num"->numérico, "email"->dirección de e-mail).
		option_error: mensaje que se muestra si el texto ingresado no tiene el formato definido por option. */
function validate_text_input (input, required, required_error, option, option_error)
{
	if(required)
	{
		if(input.value == "")
		{
			alert(required_error);
			input.focus();
			return(false);
		}
	}
	if(input.value != "")
	{
		var ok = true;
		switch(option)
		{
			case "num":
				reg_exp = /^[0-9][0-9]*$/;
				if(!reg_exp.test(input.value))
					ok = false;
				break;
			case "email":
				reg_exp_1 = /^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/;
				reg_exp_2 = /^.*@[^_]*$/;
				if(!reg_exp_1.test(input.value) || !reg_exp_2.test(input.value))
					ok = false;
				break;
			case "dir":
				reg_exp = /^[a-zA-ZáÁéÉíÍóÓúÚñÑãÃçÇ0-9#ºª \.-]*$/;
				if(!reg_exp.test(input.value))
					ok = false;
				break;
			case "dir_web":
				reg_exp = /^[a-zA-Z0-9\.\-_/:?=&]*$/;
				if(!reg_exp.test(input.value))
					ok = false;
				break;
			case "real":
				reg_exp = /^\-?[0-9]+(\.[0-9]+)?$/;
				if(!reg_exp.test(input.value))
					ok = false;
				break;
			case "login":
				reg_exp = /^[a-z][a-z0-9_]{4}[a-z0-9_]*$/;
				if(!reg_exp.test(input.value))
					ok = false;
				break;
		}
		if(!ok)
		{
			alert(option_error);
			input.focus();
			return(false);
		}
	}
	return(true);
}

/* validate_input_lang:
		Valida que no deje los campos de idiomas incompletos, por ejemplo si el usuario llena la
		descripción de una categoría en Castellano y no en Inglés, esta función llena el campo de
		Inglés con lo escrito en Castellano o viceversa.
		f:				formulario a validar.
		input:		nombre de los campos que se quieren 'autocompletar'.
		required: determina si el campo tiene que diligenciarse o puede dejarse vacío (true/false);
							si el campo no es requerido pero el usuario digitó la descripción en un idioma, aún
							así la función completa los demás campos de idiomas.
		error:		error que se muestra cuando los campos de idiomas son requeridos, si el parámetro
							anterior es false, entonces este puede ser nulo. */
function validate_input_lang (f, input, required, error)
{
	// En las siguientes líneas se validan los nombres de los tipos de atractivos.
	var i;
	var muestra = -1;  // Almacena el subíndice del campo que tiene el texto que se va a copiar en los demás.
	// Se recorren todos los elementos del formulario, desde el primero hasta el último.
	for(i=0; i<f.elements.length && muestra == -1; i++)
		if(f.elements[i].name.indexOf(input) == 0 && f.elements[i].value != '')  // Entra en la decisión si el nombre de un elemento contiene la subcadena 'campo' y si el valor de este elemento no es vacío.
			muestra = i; // Este es el que se va a copiar en los demás.
	if(muestra == -1)
	{
		if(required)
		{
			alert(error);
			return(false);
		}
	}
	else
		for(i=0; i<f.elements.length; i++)  // En este ciclo se buscan los campos del nombre de la categoría que estén vacíos y se llenan con el que se encontró arriba.
			if(f.elements[i].name.indexOf(input) == 0 && f.elements[i].value == '')  // Entra en la decisión si el nombre de un elemento contiene la subcadena 'campo' y si el valor de este elemento es vacío.
				f.elements[i].value = f.elements[muestra].value;
	return(true);
}

/* validate_select:
		Valida que tenga que elegirse una de las opciones del menú desplegable.
		select_name: nombre del menu desplegable (formulario.select_name).
		error: mensaje que se muestra si no se selecciona opción alguna. */
function validate_select (select_name, error)
{
	if(select_name.value == "")
	{
		alert(error);
		select_name.focus();
		return(false);
	}
	return(true);
}

function validate_login (err_nombre, err_clave)
{
	if(!validate_text_input(document.login_usuario.login,true,err_nombre,null,null))
		return(false);
	if(!validate_text_input(document.login_usuario.clave,true,err_clave,null,null))
		return(false);
	enviar_formulario('login_usuario.php','ingreso',null,document.login_usuario);
	return(true);
}

function editor ()
{
	tinyMCE.init({
		mode:"textareas",
		theme:"advanced",
		language:"es",
		forced_root_block:false,
		force_br_newlines:true,
		force_p_newlines:false,
		plugins:"inlinepopups,preview,paste,table",
		theme_advanced_buttons1:"undo,redo,separator,cut,copy,paste,pastetext,pasteword,separator,bold,italic,underline,strikethrough,separator,bullist,numlist,separator,link,unlink,separator,preview,removeformat,cleanup,separator,fontsizeselect,forecolor",
		theme_advanced_buttons2:"tablecontrols",
		theme_advanced_buttons3:"",
		theme_advanced_toolbar_location:"top",
		external_image_list_url:"js/image_list.js"
	});
}