$(function () {
	init_config();
});

function init_config () {
	init_config_jquery_validate();
	init_config_jquery_fancybox();
	init_config_jquery_ui_datepicker();
	init_config_ajax();
	init_config_jquery_blockui();
}

// funcion para inicializar la configuracion del jquery.validate
function init_config_jquery_validate () {
	if (typeof($.validator)!="undefined") {
		$.extend($.validator.messages, {
			required: "Obligatorio.",
			remote: "No v&aacute;lido.",
			email: "Email incorrecto.",
			url: "URL incorrecta.",
			date: "Fecha incorrecta (dd/mm/yyyy).",
			dateISO: "Fecha incorrecta (ISO).",
			dateDE: "Bitte geben Sie ein gültiges Datum ein.",
			number: "Introduzca un n&uacute;mero v&aacute;lido.",
			numberDE: "Bitte geben Sie eine Nummer ein.",
			digits: "S&oacute;lo n&uacute;meros.",
			creditcard: "Please enter a valid credit card number.",
			equalTo: "Los valores no coinciden.",
			accept: "Please enter a value with a valid extension.",
			maxlength: $.validator.format("M&aacute;x. {0} caracteres."),
			minlength: $.validator.format("M&iacute;n. {0} caracteres."),
			rangelength: $.validator.format("M&iacute;n. {0} caracteres - M&aacute;x. {1} caracteres."),
			range: $.validator.format("M&iacute;n. {0} - M&aacute;x. {1}."),
			max: $.validator.format("Introduzca un valor menor o igual a {0}."),
			min: $.validator.format("Introduzca un valor mayor o igual a {0}.")
		});
	}
}

// funcion para inicializar la configuracion del jquery.fancybox
function init_config_jquery_fancybox () {
	if (typeof($.fn.fancybox)!="undefined") {
		$.extend($.fn.fancybox.defaults, {
			zoomSpeedIn			:	500,
			zoomSpeedOut		:	500,
			zoomSpeedChange		:	500,
			easingIn			:	'easeInBack',
			easingOut			:	'easeOutBack',
			overlayShow			:	true,
			overlayOpacity		:	0.3,
			centerOnScroll		:	true,
			overlayColor		:	"#000",
			titlePosition		:	'over'
		});
	}
}

// funcion para inicializar la configuracion del datepicker del jquery.ui
function init_config_jquery_ui_datepicker () {
	if ((typeof($.ui)!="undefined") && (typeof($.datepicker)!="undefined")) {
		$.datepicker.regional['es'] = {
			clearText: 'Limpiar',
			clearStatus: '',
			closeText: 'Cerrar',
			closeStatus: '',
			prevText: '&lt;Ant',
			prevStatus: '',
			nextText: 'Sig&gt;',
			nextStatus: '',
			currentText: 'Hoy',
			currentStatus: '',
			monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
			monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'],
			monthStatus: '',
			yearStatus: '',
			weekHeader: 'Sm',
			weekStatus: '',
			dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;dabo'],
			dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
			dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
			dayStatus: 'DD',
			dateStatus: 'D, M d',
			dateFormat: 'dd/mm/yy',
			firstDay: 1,
			changeYear: true,
			changeMonth: true,
			initStatus: '',
			isRTL: false
		};
		$.datepicker.setDefaults($.datepicker.regional['es']);
	}
}

// funcion para inicializar la configuracion del datepicker del jquery.ui
function init_config_jquery_blockui () {
	if (typeof($.blockUI)!="undefined") {
		$.extend($.blockUI.defaults, {
			message: $('' +
				'<div class="blockui">' +
					'<div class="loading">' +
						'<p>Por favor, espere unos instantes a que se cargue el contenido.</p>' +
					'</div>' +
				'</div>'
			),
			fadeIn: 700,
			fadeOut: 700,
			showOverlay: true,
			overlayCSS:  {
				opacity:	  	 0
			},
			centerY: true
		});
	}
}

// funcion para inicializar la configuracion de una llamada por ajax
function init_config_ajax () {
	$.ajaxSetup({
		type: 'POST',
		dataType: 'text',
		global: false,
		beforeSend: function () {
			if (typeof($.blockUI)!="undefined") {
				$.unblockUI();
				$.blockUI({
					css: {
						border					: 'none',
						padding					: '5px',
						backgroundColor			: '#000',
						'-moz-border-radius'	: '5px',
						'-webkit-border-radius'	: '5px',
						'-khtml-border-radius'	: '5px',
						opacity: .75
					}
				});
			}
			//ayco_alertar("Se va a enviar un ajax.");
		},
		error: function (data, status, error) {
			return false;
		},
		complete: function (data, status) {
			if (data.responseText.indexOf("session_out")!=-1) {
				location.href = "index.php?msg=session_out";
				return false;
			} else if (data.responseText.indexOf("permission_out")!=-1) {
				location.href = "panel.php?msg=permission_out";
				return false;
			}
			if (typeof($.blockUI)!="undefined") {
				setTimeout(function () { $.unblockUI() },1000);
			}
		}
	});
}

// funcion para que no salga el unblock la configuracion de una llamada por ajax
function reset_config_ajax () {
	$.ajaxSetup({
		type: 'POST',
		dataType: 'text',
		global: false,
		beforeSend: function () {
		},
		error: function (data, status, error) {
			return false;
		},
		complete: function (data, status) {
			if (data.responseText.indexOf("session_out")!=-1) {
				location.href = "index.php?mensaje=session_out";
				return false;
			} else if (data.responseText.indexOf("permission_out")!=-1) {
				location.href = "panel.php?msg=permission_out";
				return false;
			}
		}
	});
}
// funcion para inicializar la configuracion del ckeditor
function init_config_ckeditor(editor_height) {
	if (typeof(CKEDITOR)!="undefined") {
		for ( instance in CKEDITOR.instances ) {
			CKEDITOR.remove(CKEDITOR.instances[instance]);
		}
		if (typeof(editor_height)=="undefined") editor_height = "200px";
		config = {
			toolbar: [
				['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
				['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
				['Link','Unlink'],
				['Undo','Redo','SelectAll','RemoveFormat'],
				//['Source'],
				'/',
				['Cut','Copy','Paste','PasteText'],
				//['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
				['NumberedList','BulletedList','Outdent','Indent','Blockquote'],
				//['BidiLtr','BidiRtl'],
				[/*'Image','Flash','Table'*/,'HorizontalRule'/*,'Smiley','PageBreak'*/,'SpecialChar'],
				//'/',
				//['Styles','Format','Font','FontSize'],
				//['TextColor','BGColor'],
				//['Maximize','ShowBlocks','-','About']
			],
			skin: 'kama',
			uiColor: '#2D6B18',
			toolbarCanCollapse: true,
			resize_enabled:false,
			entities: false,
			autoUpdateElement: true,
			height: editor_height
		};
		return config;
	}
}

function update_ckinstances () {
	if (typeof(CKEDITOR)!="undefined") {
		for (instance in CKEDITOR.instances) {
			CKEDITOR.instances[instance].updateElement();
		}
	}
}
