
var link_seleccionado = null;
var evento_registro = null;
var updating = false;

window.onload = function(){
	cargarParametros();
}

function buscarEmpresasInicio(){
	var paises = _('lstPaises');
	var colegios = _('lstColegios');
	var sectores = _('lstSectores');
	var especialidades = _('lstEspecialidades');	
	var idpais = 0;
	var idcolegio = 0;
	var idsector = 0;
	var idespecialidad = 0;
	if(paises.selectedIndex > 0){
		idpais = paises.value;	
	}
	if(colegios.selectedIndex > 0){
		idcolegio = colegios.value;	
	}
	if(sectores.selectedIndex > 0){
		idsector = sectores.value;	
	}
	if(especialidades.selectedIndex > 0){
		idespecialidad = especialidades.value;	
	}
	dialog = new Dialog();
	dialog.html = 'Realizando la b&uacute;squeda seleccionada...';
	dialog.image = '../img/ajax-loader1.gif';
	dialog.actions.clear();
	dialog.render();
	document.location.href = 'empresas.jsp?buscar=&p=' + idpais + '&c=' + idcolegio + '&s=' + idsector + '&e=' + idespecialidad;
}

function cargarParametros(){
	var ajax = new AQUAX();
	ajax.url = '../servlets/SrvGeneral';
	ajax.method = AQUAX.GET;
	ajax.callback_method = cargarParametros_cb;
	ajax.addParam('a','getParametros');
	ajax.send();
}

function cargarParametros_cb(response){
	var r = AQUAX.parseObject(response);
	var paises = Transport.parseList(r.getObject('paises'));
	var especialidades = Transport.parseList(r.getObject('especialidades'));
	var sectores = Transport.parseList(r.getObject('sectores'));
	_('lstPaises').options.length = 0;
	_('lstPaises').options[_('lstPaises').options.length] = new Option('[Filtrar por país]', '');
	for(var i=0;i<paises.length;i++){
		_('lstPaises').options[_('lstPaises').options.length] = new Option(paises[i].getPropertyValue('nombre', Encrypter.Types.DECRYPTED), paises[i].getPropertyValue('idpais', Encrypter.Types.DECRYPTED));
	}
	_('lstPaises').disabled = false;
	_('lstSectores').options.length = 0;
	_('lstSectores').options[_('lstSectores').options.length] = new Option('[Filtrar por sector]', '');
	for(var i=0;i<sectores.length;i++){
		_('lstSectores').options[_('lstSectores').options.length] = new Option(sectores[i].getPropertyValue('nombreCategoria', Encrypter.Types.DECRYPTED), sectores[i].getPropertyValue('idcategoria', Encrypter.Types.DECRYPTED));
	}
	_('lstSectores').disabled = false;
	_('lstEspecialidades').options.length = 0;
	_('lstEspecialidades').options[_('lstEspecialidades').options.length] = new Option('[Filtrar por especialidad]', '');
	for(var i=0;i<especialidades.length;i++){
		_('lstEspecialidades').options[_('lstEspecialidades').options.length] = new Option(especialidades[i].getPropertyValue('nombre', Encrypter.Types.DECRYPTED), especialidades[i].getPropertyValue('id', Encrypter.Types.DECRYPTED));
	}
	_('lstEspecialidades').disabled = false;
}

function cargarColegios(lst){
	if(lst.selectedIndex == 0){
		_('lstColegios').options.length = 0;
		_('lstColegios').options[_('lstColegios').options.length] = new Option('[Seleccionar país]', '');
		_('lstColegios').disabled = true;
		return;	
	}
	var ajax = new AQUAX();
	ajax.url = '../servlets/SrvGeneral';
	ajax.method = AQUAX.GET;
	ajax.callback_method = cargarColegios_cb;
	ajax.addParam('a','getColegios');
	ajax.addParam('id',lst.value);
	ajax.send();
}

function cargarColegios_cb(response){
	var colegios = AQUAX.parseList(response);
	_('lstColegios').options.length = 0;
	_('lstColegios').options[_('lstColegios').options.length] = new Option('[Filtrar por colegio]', '');
	for(var i=0;i<colegios.length;i++){
		_('lstColegios').options[_('lstColegios').options.length] = new Option(colegios[i].getPropertyValue('nombre', Encrypter.Types.DECRYPTED), colegios[i].getPropertyValue('idcolegio', Encrypter.Types.DECRYPTED));
	}
	_('lstColegios').disabled = false;
}

function registrarEvento(){
	updating = false;
	evento_registro = new Transport('EventoRegistro', 'fod.labora.beans.Evento', '');	
	cargarFormEvento();
}

function hideForm(){
	tinyMCE.execCommand('mceRemoveControl', false, 'txtTexto');
	dialog.hide();
}

function cargarFormEvento(){
	var text = '';
	if(evento_registro.getPropertyValue('contenido', Encrypter.Types.DECRYPTED)){
		text = evento_registro.getPropertyValue('contenido', Encrypter.Types.DECRYPTED);
	}
	var html = '<div style="text-align:left; margin:0px;">'+
				'<fieldset style="padding:10px;">'+
				'<legend>Datos del evento</legend>'+
				'	<div id="datagrid_panel">'+
				'		<table cellpadding="0" cellspacing="0" border="0" style="width:600px">'+
				'			<tr class="FilaForm" id="fila_txtTitulo">'+
				'				<td style="height:30px;"></td>'+
				'				<td class="label_form" id="label_txtTitulo" style="width:200px">T&iacute;tulo: </td>'+
				'				<td class="control_form"><input class="txt" type="text" id="txtTitulo" onfocus="seleccionarFila(this.id)" onblur="deseleccionarFila();" maxlength="200" /></td>'+
				'				<td class="ayuda_form" id="help_txtTitulo">'+
				'				<label id="req_txtTitulo">Requerido:</label> Si - <label>Longitud M&aacute;xima:</label> 200<br /></td>'+
				'			</tr>'+
				'			<tr>'+
				'				<td colspan="4" style="background-image:url(../img/line2.gif); background-repeat:repeat-x; height:15px; background-position:center;"></td>'+
				'			</tr>'+
				'			<tr class="FilaForm" id="fila_txtLugar">'+
				'				<td style="height:30px;"></td>'+
				'				<td class="label_form" id="label_txtLugar" style="width:200px">Lugar (opcional): </td>'+
				'				<td class="control_form"><input class="txt" type="text" id="txtLugar" onfocus="seleccionarFila(this.id)" onblur="deseleccionarFila();" maxlength="200" /></td>'+
				'				<td class="ayuda_form" id="help_txtLugar">'+
				'				<label id="req_txtLugar">Requerido:</label> Opcional - <label>Longitud M&aacute;xima:</label> 200<br /></td>'+
				'			</tr>'+
				'				<td colspan="4" style="background-image:url(../img/line2.gif); background-repeat:repeat-x; height:15px; background-position:center;"></td>'+
				'			</tr>'+
				'			<tr class="FilaForm" id="fila_txtFecha">'+
				'				<td style="height:30px;"></td>'+
				'				<td class="label_form" id="label_txtFecha" style="width:200px">Fecha: </td>'+
				'				<td class="control_form"><select class="txt-mid" style="width:50px" id="lstDias"></select>&nbsp;&nbsp;<select style="width:50px" onChange="actualizarDias()" id="lstMeses" class="txt-mid"></select>&nbsp;&nbsp;<select id="lstAnnos" onChange="actualizarDias()" class="txt-mid" style="width:70px"></select></td>'+
				'				<td class="ayuda_form" id="help_txtFecha">'+
				'				<label id="req_txtFecha">Requerido:</label> Si - <label>Seleccione una fecha<br /></td>'+
				'			</tr>'+
				'			</tr>'+
				'				<td colspan="4" style="background-image:url(../img/line2.gif); background-repeat:repeat-x; height:15px; background-position:center;"></td>'+
				'			</tr>'+
				'			<tr class="FilaForm" id="fila_lstHoras">'+
				'				<td style="height:30px;"></td>'+
				'				<td class="label_form" id="label_lstHoras" style="width:200px">Hora: </td>'+
				'				<td class="control_form"><select class="txt-large" id="lstHoras" onfocus="seleccionarFila(this.id)" onblur="deseleccionarFila();"></select></td>'+
				'				<td class="ayuda_form" id="help_lstHoras">'+
				'				<label id="req_lstHoras">Requerido:</label> Si - <label>Seleccione un valor de la lista<br /></td>'+
				'			</tr>'+
				'			<tr>'+
				'				<td colspan="4" style="background-image:url(../img/line2.gif); background-repeat:repeat-x; height:15px; background-position:center;"></td>'+
				'			</tr>'+
				'			<tr class="FilaForm" id="fila_txtSum">'+
				'				<td colspan="4" class="control_form" id="cell-txtTexto" style="width:630px; font-weight:bold"><div style="margin-bottom:5px">Contenido: </div><textarea style="width:630px; height:250px" id="txtTexto">'+text+'</textarea></td>'+
				'			</tr>' + 
				'			<tr class="FilaForm" id="fila_txtSum">'+
				'				<td colspan="4" class="control_form" id="cell-txtURL" style="width:630px; padding-top:5px" line-height:15px;"><strong>URL: <input name="radios-ops" id="radio-0" type="radio" checked="checked" /> <a href="javascript:activarOpcion(0)" class="black-link">Imagen</a> <input name="radios-ops" id="radio-1" type="radio" /> <a href="javascript:activarOpcion(1)" class="black-link">Referencia</a> <input name="radios-ops" id="radio-2" type="radio" />'+
				'				<a href="javascript:activarOpcion(2)" class="black-link">Video</a></strong>&nbsp;&nbsp;<span id="info-url" style="color:red; visibility:hidden">(Ingrese el URL que desea agregar)</span><br /><input id="txtURL" maxlength="2000" type="text" style="width:500px" /><br /><input id="txtTituloURL" maxlength="100" class="inactive-search" value="[Ingresar t&iacute;tulo opcional]" help_text="[Ingresar t&iacute;tulo opcional]" onfocus="hideHelp(this)" onblur="showHelp(this)" type="text" style="width:500px" />&nbsp;<input type="button" onclick="agregarURL()" value="Agregar" /></td>'+
				'			</tr>' +
				'			<tr class="FilaForm" id="fila_txtSum">'+
				'				<td style="font-weight:normal; font-size:12px; line-height:15px" colspan="4">'+
				'				<a target="_blank" href="../asesoria/subirimagenes.pdf" target="_blank">&iquest;Como subir una imagen para utilizar en el contenido?</a><br />'+
				'				<a target="_blank" href="../asesoria/subirvideos.pdf" target="_blank">&iquest;Como subir un video para utilizar en el contenido?</a><br />'+
				'				<a target="_blank" href="../asesoria/guia_word.pdf" target="_blank">Instrucciones para insertar contenido de MICROSOFT WORD</a><br />'+
				'				<a target="_blank" href="../asesoria/usar_imagenes.pdf" target="_blank">Instrucciones para insertar im&aacute;genes en el contenido</a><br />'+
				'				<a target="_blank" href="../asesoria/usar_yt.pdf" target="_blank">Instrucciones para insertar videos en el contenido</a></td>'+
				'			</tr>' + 
				'		</table>'+
				'	</div>'+
				'</fieldset><br />'+
				'</div>';
	html += '<table cellpadding="0" cellspacing="0" border="0" style="height:25px;">'+
							 '	<tr>'+
							 '		<td style="text-align:left; padding-left:10px; color:red; font-weight:normal; visibility:hidden;" id="info-entrada">Hay errores en los datos introducidos</td>'+
							 '		<td style="text-align:right;"><input type="button" id="btnCancelar" value="Cancelar" onclick="dialog.hide()" class="btn" style="width:100px" /><input type="button" class="btn" id="btnGuardar" style="width:100px" value="Guardar" onclick="validarInfoEvento()" /></td>'+
							 '	</tr>'+
							 '</table>';
	dialog = new Dialog();
	dialog.image = '../img/que.png';
	dialog.actions.clear();
	dialog.html = 'Formulario para datos del evento';
	dialog.innerhtml = html;
	dialog.render();
	cargarSelectorFechas();
	for(var i=0;i<24;i++){
		_('lstHoras').options[_('lstHoras').options.length] = new Option(i+':00 UTC/GMT -6 horas', i);
	}
	if(evento_registro.getPropertyValue('titulo', Encrypter.Types.DECRYPTED) != null){
		_('txtTitulo').value = evento_registro.getPropertyValue('titulo', Encrypter.Types.DECRYPTED);
	}
	if(evento_registro.getObject('fecha') != null){
		var fecha = evento_registro.getObject('fecha').displayDate;
		fecha = fecha.split('/');
		_('lstDias').value = fecha[0];
		_('lstMeses').value = parseInt(fecha[1]-1);
		_('lstAnnos').value = fecha[2];
		var hora = evento_registro.getObject('fecha').time;
		_('lstHoras').value = parseInt(hora.substring(0,2));
	}
	if(evento_registro.getPropertyValue('lugar', Encrypter.Types.DECRYPTED) != null){
		_('txtLugar').value = evento_registro.getPropertyValue('lugar', Encrypter.Types.DECRYPTED);
	}
	tinyMCE.init({
		// General options
		mode : "textareas",
		theme : "advanced",
		plugins : "paste",
		// Theme options
		theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect",
		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,forecolor,backcolor",
		theme_advanced_buttons3 : "",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_font_sizes : "8px,9px,10px,11px,12px,13px,14px,15px,16px,17px,18px,19px,20px,22px,24px,26px,30px,35px",
	});
	setFocus('txtTitulo');
}

function cargarSelectorFechas(){
	_('lstMeses').options[0] = new Option('1', 0);
	_('lstMeses').options[1] = new Option('2', 1);
	_('lstMeses').options[2] = new Option('3', 2);
	_('lstMeses').options[3] = new Option('4', 3);
	_('lstMeses').options[4] = new Option('5', 4);
	_('lstMeses').options[5] = new Option('6', 5);
	_('lstMeses').options[6] = new Option('7', 6);
	_('lstMeses').options[7] = new Option('8', 7);
	_('lstMeses').options[8] = new Option('9', 8);
	_('lstMeses').options[9] = new Option('10', 9);
	_('lstMeses').options[10] = new Option('11', 10);
	_('lstMeses').options[11] = new Option('12', 11);
	var d = new Date();
	for(var i=d.getFullYear()+10;i>(d.getFullYear()-100);i--){
		_('lstAnnos').options[_('lstAnnos').options.length] = new Option(i,i); 	
	}
	for(var i=1;i<32;i++){
		_('lstDias').options[i-1] = new Option(i,i);
	}
	_('lstAnnos').value = '1990';
}

function actualizarDias(){
	var mes = _('lstMeses').value;
	if(mes == -1){
		mes = 0;	
	}
	var anno = _('lstAnnos').value;
	if(anno == -1){
		anno = 2000;	
	}
	var dia = _('lstDias').value;
	var ultimodia = new Date(anno, (parseInt(mes)+1), 0).getDate();
	_('lstDias').options.length = 1;
	for(var i=1;i<(ultimodia + 1);i++){
		_('lstDias').options[i] = new Option(i,i);
	}
	if(dia > ultimodia){
		dia = ultimodia;
	}
	_('lstDias').value = dia;
}

function activarOpcion(id){
	_('radio-' + id).checked = true;	
}

function agregarURL(){
	var url = _('txtURL').value;
	var titulo = _('txtTituloURL');
	var str_titulo = '';
	if((!isEmpty(titulo.value)) && (!(titulo.value == titulo.getAttribute('help_text')))){
		str_titulo = titulo.value;
	}
	if(!isEmpty(url)){
		if(isValidURL(url) || (startsWith(url, '<object') && _('radio-2').checked)){
			var _url = '';
			if(_('radio-0').checked){
				_url = '[IMG]'+url+'[T]'+str_titulo+'[/T][/IMG]';
			}else if(_('radio-1').checked){
				_url = '[URL]'+url+'[T]'+str_titulo+'[/T][/URL]';
			}else if(_('radio-2').checked){
				var lk = url;
				var last_index = lk.indexOf("&");
				if(last_index == -1){
					last_index = lk.length;	
				}
				lk = "http://www.youtube.com/v/" + lk.substring("http://www.youtube.com/watch?v=".length, last_index);
				_url = '[VID]'+lk+'[T]'+str_titulo+'[/T][/VID]';
			}
			tinyMCE.activeEditor.execCommand('mceInsertContent',false,_url);
			_('info-url').innerHTML = '&nbsp;';
		}else{
			_ALERT('info-url', 4, true, ' (Debe ingresar un URL valido)');	
		}
	}else{
		_ALERT('info-url', 4, true, ' (Debe ingresar el URL en el campo de texto)');	
	}
}

var fecha_selec = 0;
var hora_selec = 0;
function validarInfoEvento(){
	var titulo = _('txtTitulo').value;
	if(isEmpty(titulo)){
		_ALERT('info-entrada', 4, true, 'Debe ingresar el t&iacute;tulo para el evento');
		return;
	}
	var lugar = _('txtLugar').value;
	var html = tinyMCE.activeEditor.getContent();
	var div = document.createElement('div');
	div.innerHTML = html;
	var text = '';
	var nav = navigator.userAgent;
	if(nav.indexOf('MSIE') != -1){
		text = div.innerText;
	}else{
		text = div.textContent;
	}
	var _isEmpty = new Encrypter(text).isEmpty();
	if(_isEmpty){
		_ALERT('info-entrada', 4, true, 'Debe ingresar el contenido para el evento');
		return;
	}
	if(html.length > 1000000){
		_ALERT('info-entrada', 4, true, 'El contenido no puede exceder el mill&oacute;n de caracteres (longitud actual: '+html.length+')');
		return;
	}
	html = html.replace(/&lt;!--/g, '<!--');
	html = html.replace(/--&gt;/g, '-->');
	_('info-entrada').innerHTML = '&nbsp;';
	evento_registro.setProperty('titulo', titulo);
	evento_registro.setProperty('contenido', html);
	if(!isEmpty(lugar)){
		evento_registro.setProperty('lugar', lugar);	
	}else{
		evento_registro.setProperty('lugar', null);
	}
	var d = new Date(_('lstAnnos').value, _('lstMeses').value, _('lstDias').value);
	fecha_selec = d.getTime();
	hora_selec = _('lstHoras').value;
	guardarInfoEvento();
}

function guardarInfoEvento(){
	dialog = new Dialog();
	dialog.addAction('Guardar', 'do_guardarInfoEvento()', '../img/save.png');
	dialog.addAction('Cancelar', 'cargarFormEvento()', '../img/cancel-dialog.png');
	dialog.image = '../img/confirm-dialog.png';
	dialog.html = '&iquest;Confirma que desea guardar los datos del evento?';
	dialog.render();	
}

function do_guardarInfoEvento(){
	dialog = new Dialog();
	dialog.html = 'Guardando datos del evento...';
	dialog.image = '../img/ajax-loader1.gif';
	dialog.actions.clear();
	dialog.render();
	evento_registro.save(registrarInfoEvento, procesarErrorAJAX, null, false);
}

function registrarInfoEvento(){
	var ajax = new AQUAX();
	ajax.url = '../servlets/SrvAdministracion';
	ajax.method = AQUAX.POST;
	ajax.addParam('fecha', fecha_selec+'');
	ajax.addParam('hora', hora_selec+'');
	if(updating){
		ajax.callback_method = editarInfoEvento_cb;
		ajax.addParam('accion','editarInfoEvento');
	}else{
		ajax.callback_method = registrarInfoEvento_cb;
		ajax.addParam('accion','registrarInfoEvento');
	}
	ajax.send();
}	

function registrarInfoEvento_cb(response){
	var feedback = eval('('+response+')');
	dialog.addAction('Aceptar', 'cargarEventos_ok()', '../img/back.png');
	dialog.image = '../img/check.png';
	dialog.html = new Encrypter(feedback.items[0].encryptedValue).getHTMLEncryptedValue();
	dialog.render();
}

function editarInfoEvento_cb(response){
	var feedback = eval('('+response+')');
	dialog.addAction('Aceptar', 'cargarEventos_ok()', '../img/back.png');
	dialog.image = '../img/check.png';
	dialog.html = new Encrypter(feedback.items[0].encryptedValue).getHTMLEncryptedValue();
	dialog.render();
}

function cargarEventos_ok(){
	dialog.html = 'Actualizando contenidos de la p&aacute;gina de inicio...';
	dialog.image = '../img/ajax-loader1.gif';
	dialog.actions.clear();
	window.scroll(0,0);
	dialog.render();
	document.location.reload();
}

function eliminarEvento(id){
	dialog = new Dialog();
	dialog.addAction('Eliminar', 'do_eliminarEvento(\''+id+'\')', '../img/save.png');
	dialog.addAction('Cancelar', 'dialog.hide()', '../img/cancel-dialog.png');
	dialog.image = '../img/confirm-dialog.png';
	dialog.html = '&iquest;Confirma que desea eliminar el evento seleccionado?';
	dialog.render();	
}

function do_eliminarEvento(id){
	dialog.html = 'Eliminando los datos del evento seleccionado...';
	dialog.image = '../img/ajax-loader1.gif';
	dialog.actions.clear();
	dialog.innerhtml = '';
	dialog.render();
	var ajax = new AQUAX();
	ajax.url = '../servlets/SrvAdministracion';
	ajax.method = AQUAX.POST;
	ajax.callback_method = eliminarEvento_callback;
	ajax.addParam('accion','eliminarEvento');
	ajax.addParam('id', id);
	ajax.send();
}

function eliminarEvento_callback(response){
	var feedback = eval('('+response+')');	
	dialog.addAction('Aceptar', 'cargarEventos_ok()', '../img/back.png');
	dialog.image = '../img/check.png';
	dialog.html = new Encrypter(feedback.items[0].encryptedValue).getHTMLEncryptedValue();
	dialog.render();
}

function editarEvento(id){
	dialog = new Dialog();
	dialog.html = 'Cargando datos del evento seleccionado...';
	dialog.image = '../img/ajax-loader1.gif';
	dialog.actions.clear();
	dialog.render();
	var ajax = new AQUAX();
	ajax.url = '../servlets/SrvAdministracion';
	ajax.method = AQUAX.GET;
	ajax.callback_method = editarEvento_callback;
	ajax.addParam('accion','getEvento');
	ajax.addParam('id', id);
	ajax.send();	
}

function editarEvento_callback(response){
	evento_registro = AQUAX.parseObject(response);
	evento_registro.id = 'EventoRegistro';
	updating = true;
	cargarFormEvento();
}

function verEvento(id){
	dialog = new Dialog();
	dialog.html = 'Cargando datos del evento seleccionado...';
	dialog.image = '../img/ajax-loader1.gif';
	dialog.actions.clear();
	dialog.render();
	var ajax = new AQUAX();
	ajax.url = '../servlets/SrvGeneral';
	ajax.method = AQUAX.GET;
	ajax.callback_method = verEvento_callback;
	ajax.addParam('a','getEvento');
	ajax.addParam('id', id);
	ajax.send();	
}

function verEvento_callback(response){
	var evento = AQUAX.parseObject(response);
	dialog.html = evento.getPropertyValue('titulo', Encrypter.Types.HTML);
	dialog.image = '../img/event.png';
	var lugar = '';
	if(evento.getPropertyValue('lugar', Encrypter.Types.HTML)){
		lugar = '<br /><strong>Lugar: </strong>' + evento.getPropertyValue('lugar', Encrypter.Types.HTML);
	}
	var contenido = '<div style="max-height:400px; overflow:auto; width:650px; line-height:20px">' + evento.getPropertyValue('parsed_content', Encrypter.Types.DECRYPTED) + '</div>';
	dialog.innerhtml = '<div style="line-height:16px; width:640px;" class="contenido-info">\
					    <label style="font-size:14px"><strong>Fecha: </strong>'+new Encrypter(evento.getObject('fechastr')).getHTMLEncryptedValue()+lugar+'</label><br /><br />'+contenido+'</div>';
	dialog.actions.clear();
	dialog.addAction('Aceptar', 'dialog.hide()', '../img/back.png');
	dialog.render();
}

function verInfo(id, edit){
	if(edit){
		dialog = new Dialog();
		dialog.addAction('Editar', 'editarApartado(\''+id+'\')', '../img/save.png');
		dialog.addAction('Ver', 'do_verInfo(\''+id+'\')', '../img/save.png');
		dialog.image = '../img/confirm-dialog.png';
		dialog.html = 'Opciones para Webm@ster Centro de Operaciones: ';
		dialog.render();	
	}else{
		do_verInfo(id);
	}
}

function do_verInfo(id){
	dialog = new Dialog();
	dialog.html = 'Cargando informaci&oacute;n del apartado seleccionado...';
	dialog.image = '../img/ajax-loader1.gif';
	dialog.actions.clear();
	dialog.render();
	var ajax = new AQUAX();
	ajax.url = '../servlets/SrvGeneral';
	ajax.method = AQUAX.GET;
	ajax.callback_method = verInfo_callback;
	ajax.addParam('a','getApartado');
	ajax.addParam('id', id);
	ajax.send();		
}

function verInfo_callback(response){
	var apartado = AQUAX.parseObject(response);
	dialog.html = apartado.getPropertyValue('titulo', Encrypter.Types.HTML);
	dialog.image = apartado.getPropertyValue('imagen', Encrypter.Types.DECRYPTED);
	var contenido = '<div style="max-height:400px; width:650px; font-size:12px; overflow:auto; line-height:20px"><div style="line-height:16px; width:620px;" class="contenido-info">' + apartado.getPropertyValue('parsed_content', Encrypter.Types.DECRYPTED) + '</div></div>';
	dialog.innerhtml = contenido;
	dialog.actions.clear();
	dialog.addAction('Aceptar', 'dialog.hide()', '../img/back.png');
	dialog.render();
}

function editarApartado(id){
	dialog = new Dialog();
	dialog.html = 'Cargando datos del apartado seleccionado...';
	dialog.image = '../img/ajax-loader1.gif';
	dialog.actions.clear();
	dialog.render();
	var ajax = new AQUAX();
	ajax.url = '../servlets/SrvAdministracion';
	ajax.method = AQUAX.GET;
	ajax.callback_method = editarApartado_callback;
	ajax.addParam('accion','getApartado');
	ajax.addParam('id', id);
	ajax.send();	
}

function editarApartado_callback(response){
	apartado_registro = AQUAX.parseObject(response);
	apartado_registro.id = 'ApartadoRegistro';
	cargarFormApartado();
}

function cargarFormApartado(){
	var text = '';
	if(apartado_registro.getPropertyValue('contenido', Encrypter.Types.DECRYPTED)){
		text = apartado_registro.getPropertyValue('contenido', Encrypter.Types.DECRYPTED);
	}
	var html = '<div style="text-align:left; margin:0px;">'+
				'<fieldset style="padding:10px;">'+
				'<legend>Datos del apartado de informaci&oacute;n</legend>'+
				'	<div id="datagrid_panel">'+
				'		<table cellpadding="0" cellspacing="0" border="0" style="width:600px">'+
				'			<tr class="FilaForm" id="fila_txtSum">'+
				'				<td colspan="4" class="control_form" id="cell-txtTexto" style="width:630px; font-weight:bold"><div style="margin-bottom:5px">Contenido: </div><textarea style="width:630px; height:250px" id="txtTexto">'+text+'</textarea></td>'+
				'			</tr>' + 
				'			<tr class="FilaForm" id="fila_txtSum">'+
				'				<td colspan="4" class="control_form" id="cell-txtURL" style="width:630px; padding-top:5px" line-height:15px;"><strong>URL: <input name="radios-ops" id="radio-0" type="radio" checked="checked" /> <a href="javascript:activarOpcion(0)" class="black-link">Imagen</a> <input name="radios-ops" id="radio-1" type="radio" /> <a href="javascript:activarOpcion(1)" class="black-link">Referencia</a> <input name="radios-ops" id="radio-2" type="radio" />'+
				'				<a href="javascript:activarOpcion(2)" class="black-link">Video</a></strong>&nbsp;&nbsp;<span id="info-url" style="color:red; visibility:hidden">(Ingrese el URL que desea agregar)</span><br /><input id="txtURL" maxlength="2000" type="text" style="width:500px" /><br /><input id="txtTituloURL" maxlength="100" class="inactive-search" value="[Ingresar t&iacute;tulo opcional]" help_text="[Ingresar t&iacute;tulo opcional]" onfocus="hideHelp(this)" onblur="showHelp(this)" type="text" style="width:500px" />&nbsp;<input type="button" onclick="agregarURL()" value="Agregar" /></td>'+
				'			</tr>' +
				'			<tr class="FilaForm" id="fila_txtSum">'+
				'				<td style="font-weight:normal; font-size:12px; line-height:15px" colspan="4">'+
				'				<a target="_blank" href="../asesoria/subirimagenes.pdf" target="_blank">&iquest;Como subir una imagen para utilizar en el contenido?</a><br />'+
				'				<a target="_blank" href="../asesoria/subirvideos.pdf" target="_blank">&iquest;Como subir un video para utilizar en el contenido?</a><br />'+
				'				<a target="_blank" href="../asesoria/guia_word.pdf" target="_blank">Instrucciones para insertar contenido de MICROSOFT WORD</a><br />'+
				'				<a target="_blank" href="../asesoria/usar_imagenes.pdf" target="_blank">Instrucciones para insertar im&aacute;genes en el contenido</a><br />'+
				'				<a target="_blank" href="../asesoria/usar_yt.pdf" target="_blank">Instrucciones para insertar videos en el contenido</a></td>'+
				'			</tr>' + 
				'		</table>'+
				'	</div>'+
				'</fieldset><br />'+
				'</div>';
	html += '<table cellpadding="0" cellspacing="0" border="0" style="height:25px;">'+
							 '	<tr>'+
							 '		<td style="text-align:left; padding-left:10px; color:red; font-weight:normal; visibility:hidden;" id="info-entrada">Hay errores en los datos introducidos</td>'+
							 '		<td style="text-align:right;"><input type="button" id="btnCancelar" value="Cancelar" onclick="dialog.hide()" class="btn" style="width:100px" /><input type="button" class="btn" id="btnGuardar" style="width:100px" value="Guardar" onclick="validarInfoApartado()" /></td>'+
							 '	</tr>'+
							 '</table>';
	dialog = new Dialog();
	dialog.image = '../img/que.png';
	dialog.actions.clear();
	dialog.html = 'Formulario para datos del apartado';
	dialog.innerhtml = html;
	dialog.render();
	tinyMCE.init({
		// General options
		mode : "textareas",
		theme : "advanced",
		plugins : "paste",
		// Theme options
		theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect",
		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,forecolor,backcolor",
		theme_advanced_buttons3 : "",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_font_sizes : "8px,9px,10px,11px,12px,13px,14px,15px,16px,17px,18px,19px,20px,22px,24px,26px,30px,35px",
	});
}

function validarInfoApartado(){
	var html = tinyMCE.activeEditor.getContent();
	var div = document.createElement('div');
	div.innerHTML = html;
	var text = '';
	var nav = navigator.userAgent;
	if(nav.indexOf('MSIE') != -1){
		text = div.innerText;
	}else{
		text = div.textContent;
	}
	var _isEmpty = new Encrypter(text).isEmpty();
	if(_isEmpty){
		_ALERT('info-entrada', 4, true, 'Debe ingresar el contenido para el apartado de informaci&oacute;n');
		return;
	}
	if(html.length > 1000000){
		_ALERT('info-entrada', 4, true, 'El contenido no puede exceder el mill&oacute;n de caracteres (longitud actual: '+html.length+')');
		return;
	}
	html = html.replace(/&lt;!--/g, '<!--');
	html = html.replace(/--&gt;/g, '-->');
	_('info-entrada').innerHTML = '&nbsp;';
	apartado_registro.setProperty('contenido', html);
	guardarInfoApartado();
}

function guardarInfoApartado(){
	dialog = new Dialog();
	dialog.addAction('Guardar', 'do_guardarInfoApartado()', '../img/save.png');
	dialog.addAction('Cancelar', 'cargarFormApartado()', '../img/cancel-dialog.png');
	dialog.image = '../img/confirm-dialog.png';
	dialog.html = '&iquest;Confirma que desea guardar los datos del apartado?';
	dialog.render();	
}

function do_guardarInfoApartado(){
	dialog = new Dialog();
	dialog.html = 'Guardando datos del apartado de informaci&oacute;n...';
	dialog.image = '../img/ajax-loader1.gif';
	dialog.actions.clear();
	dialog.render();
	apartado_registro.save(registrarInfoApartado, procesarErrorAJAX, null, false);
}

function registrarInfoApartado(){
	var ajax = new AQUAX();
	ajax.url = '../servlets/SrvAdministracion';
	ajax.method = AQUAX.POST;
	ajax.callback_method = editarInfoApartado_cb;
	ajax.addParam('accion','editarInfoApartado');
	ajax.send();
}	

function editarInfoApartado_cb(response){
	var feedback = eval('('+response+')');
	dialog.addAction('Aceptar', 'dialog.hide()', '../img/back.png');
	dialog.image = '../img/check.png';
	dialog.html = new Encrypter(feedback.items[0].encryptedValue).getHTMLEncryptedValue();
	dialog.render();
}

function eliminarFoto(id){
	dialog = new Dialog();
	dialog.addAction('Eliminar', 'do_eliminarFoto(\''+id+'\')', '../img/save.png');
	dialog.addAction('Cancelar', 'dialog.hide()', '../img/cancel-dialog.png');
	dialog.image = '../img/confirm-dialog.png';
	dialog.html = '&iquest;Confirma que desea eliminar la foto seleccionada?';
	dialog.render();	
}

function do_eliminarFoto(id){
	dialog.html = 'Eliminando los datos de la foto seleccionada...';
	dialog.image = '../img/ajax-loader1.gif';
	dialog.actions.clear();
	dialog.innerhtml = '';
	dialog.render();
	var ajax = new AQUAX();
	ajax.url = '../servlets/SrvAdministracion';
	ajax.method = AQUAX.POST;
	ajax.callback_method = eliminarFoto_callback;
	ajax.addParam('accion','eliminarFoto');
	ajax.addParam('id', id);
	ajax.send();
}

function eliminarFoto_callback(response){
	var feedback = eval('('+response+')');	
	dialog.addAction('Aceptar', 'cargarEventos_ok()', '../img/back.png');
	dialog.image = '../img/check.png';
	dialog.html = new Encrypter(feedback.items[0].encryptedValue).getHTMLEncryptedValue();
	dialog.render();
}

function registrarFoto(){
	dialog = new Dialog();
	dialog.config.backgroundCss = 'aqua-screen-blackblock';
	dialog.html = 'Cargando formulario de registro...';
	dialog.image = '../img/ajax-loader1.gif';
	dialog.actions.clear();
	dialog.render();
	item_transport = new Transport('ItemRegistro', 'fod.labora.beans.Imagen', '');	
	item_transport.save(cargarFormRegistro_callBack, procesarErrorAJAX, null, false);
}

function cargarFormRegistro_callBack(){
	var html = '<div style="text-align:left; margin:0px;">'+
				'<fieldset style="padding:10px;">'+
				'<legend>Seleccione la fotograf&iacute;a que desea subir</legend>'+
				'	<div id="datagrid_panel">'+
				'		<table cellpadding="0" cellspacing="0" border="0">'+
				'			<tr class="FilaForm" id="fila_lstTipos">'+
				'				<td style="height:30px;"></td>					'+
				'				<td class="label_form" id="label_lstTipos">Tipo: </td>'+
				'				<td class="control_form"><select id="lstTipos" disabled="disabled" name="tipo" class="txt" onkeyup="setFormRegistro(this)" onchange="setFormRegistro(this)" onfocus="seleccionarFila(this.id)" onblur="deseleccionarFila()"><option selected="selected" value="4">Imagen JPG</option></select></td>'+
				'				<td class="ayuda_form" id="help_lstTipos">'+
				'				<label id="req_lstTipos">Requerido:</label> Si<br /><label>Otros Requisitos:</label> Seleccionar un valor de la lista'+
				'				</td>'+
				'			</tr>'+
				'			<tr>'+
				'				<td colspan="4" style="background-image:url(../img/line2.gif); background-repeat:repeat-x; height:15px; background-position:center;"></td>'+
				'			</tr>'+
				'			<tr class="FilaForm">'+
				'				<td></td>'+
				'				<td colspan="3" id="cell-registroitem"></td>'+
				'			</tr>'+
				'		</table>'+
				'	</div>'+
				'</fieldset>'+
				'<br />'+
                '<div id="div_btn"></div>'+
				'</div>';
	html += '<table cellpadding="0" cellspacing="0" border="0" style="height:25px;">'+
							 '	<tr>'+
							 '		<td style="text-align:left; padding-left:10px; color:red; font-weight:bold; visibility:hidden;" id="errores">Hay errores en los datos introducidos</td>'+
							 '		<td style="text-align:right;"><input type="button" id="btnCancelar" value="Cancelar" onclick="dialog.hide()" class="btn" style="width:100px" /><input type="button" class="btn" id="btnGuardar" style="width:100px" value="Guardar" onclick="validarInfoItem()" /></td>'+
							 '	</tr>'+
							 '</table>';
	dialog.image = '../img/que.png';
	dialog.actions.clear();
	dialog.html = 'Formulario para datos de la fotograf&iacute;a';
	dialog.innerhtml = html;
	dialog.render();
	setFormRegistro(_('lstTipos'), true);
}

var exts;
var file_uploaded = false;
function setFormRegistro(lst, disable_reset){
	if(!disable_reset){
		file_uploaded = false;
	}
	var tipo = parseInt(lst.value);
	exts = new Array();
	var form = '<tr class="FilaForm">\
						<td style="height:35px; text-align:center">\
							<iframe id="trgID" name="uploadTrg" height="0" width="0" frameborder="0" scrolling="yes"></iframe>\
							<form id="myFrm" enctype="multipart/form-data" method="post" target="uploadTrg" action="../servlets/SrvUploader" onsubmit="submitPostUsingAjax(event);">\
								<input type="file" onkeydown="this.blur()" onkeypress="this.blur()" name="txtFile0" id="txtFile0" />&nbsp;\
								<input style="width:130px" type="submit" id="submitID1" name="submit" value="Subir Archivo" />\
							</form>\
						</td>\
					</tr>\
					<tr class="FilaForm">\
						<td style="height:20px; background-color:#CCCCCC;">\
							<table id="progressBar" style="border:1px; width:20px; height:20px; background-color: blue; color:#FFFFFF; visibility:visible; ">\
							<tr><td style="padding:4px; color:#FFFFFF; text-align:right; font-weight:bold"><label id="uploadStatusDiv">0</label>%</td></tr>\
							</table>\
						</td>\
					</tr>';
	var retro = '';
	switch (tipo){
		case 0: 
			exts = new Array('.doc', '.docx');
			retro = '<label id="req_archivo">* Debe subir un documento de Microsoft Word</label><br />'+
					'<label id="info-weight">* El documento no debe pesar mas de 10MB</label><br />'+
					'<label id="info-format">* El documento debe estar en formato DOC o DOCX</label><br /><br />';
			break;
		case 1: 
			exts = new Array('.pdf');
			retro = '<label id="req_archivo">* Debe subir un documento PDF</label><br />'+
					'<label id="info-weight">* El documento no debe pesar mas de 10MB</label><br />'+
					'<label id="info-format">* El documento debe estar en formato PDF</label><br /><br />';
			break;
		case 2: 
			exts = new Array('.ppt', '.pptx', '.pps', '.ppsx');
			retro = '<label id="req_archivo">* Debe subir un documento Microsoft Power Point</label><br />'+
					'<label id="info-weight">* El documento no debe pesar mas de 10MB</label><br />'+
					'<label id="info-format">* El documento debe estar en formato PTT, PPTX, PPS o PPSX</label><br /><br />';
			break;
	
		case 3: 
			exts = new Array('.xls', '.xlsx');
			retro = '<label id="req_archivo">* Debe subir un documento Microsoft Excel</label><br />'+
					'<label id="info-weight">* El documento no debe pesar mas de 10MB</label><br />'+
					'<label id="info-format">* El documento debe estar en formato XLS o XLSX</label><br /><br />';
			break;
		case 4: 
			exts = new Array('.jpg', '.jpeg');
			retro = '<label id="req_archivo">* Debe subir una imagen en formato JPG</label><br />'+
					'<label id="info-weight">* El documento no debe pesar mas de 10MB</label><br />'+
					'<label id="info-format">* El documento debe estar en formato JPG o JPEG</label><br /><br />';
			break;
		case 5: 
			exts = new Array();
			retro = '<label id="req_archivo">* Debe ingresar el URL del video de YouTube</label><br />'+
					'<label id="info-format">* Debe utilizar el URL del navegador en el video de YouTube</label><br />';
			form = '<tr class="FilaForm">\
						<td style="height:35px; text-align:left">\
							<strong id="label_txtURL" style="color:black">URL: </strong><br /><input type="text" style="width:300px" id="txtURL" maxlength="500" />\
						</td>\
					</tr>';
			break;
		case 6: 
			exts = new Array();
			retro = '<label id="req_archivo">* Debe ingresar el URL o referencia Web</label><br />'+
					'<label id="info-format">* Debe ingresar un URL en formato valido (<a href="http://es.wikipedia.org/wiki/Localizador_uniforme_de_recursos" target="_blank" style="color:blue">ver m&aacute;s</a>)</label><br /><br />';
		    form = '<tr class="FilaForm">\
						<td style="height:35px; text-align:center">\
							<strong id="label_txtURL" style="color:black">URL: </strong><br /><input type="text" style="width:300px" id="txtURL" maxlength="500" />\
						</td>\
					</tr>';
			break;
		case 7: 
			exts = new Array();
			retro = '<label id="req_archivo">* Debe subir un archivo para el recurso de asesor&iacute;a</label><br />'+
					'<label id="info-weight">* El archivo no debe pesar mas de 10MB</label><br /><br />';
			break;
	}
	_('cell-registroitem').innerHTML = '<table style="width:400px" align="center">\
										<tr class="FilaForm">\
											<td style="text-align:center; padding-bottom:10px; padding-top:10px; font-size:12px; color:#333333">'+retro+'\
											</td>\
										</tr>'+form+'\
										<tr class="FilaForm">\
											<td style="height:20px; padding:0px">\
												<label id="info_nuevoitem" style="color:red; font-weight:bold">&nbsp;</label>\
											</td>\
										</tr></table>';
	if(tipo != 5 && tipo != 6){
		Event.observe('trgID', 'load', handleUploadFinished);	
	}else{
		if(item_transport.getPropertyValue('url', Encrypter.Types.DECRYPTED) != null){
			_('txtURL').value = item_transport.getPropertyValue('url', Encrypter.Types.DECRYPTED);
		}	
	}
}

function submitPostUsingAjax(evt) {
	_('info-weight').style.color = 'BLACK';
	if(_('info-format')){_('info-format').style.color = 'BLACK';}
	if(isValidAttach(_('txtFile0').value, exts) || exts.length == 0){
		file_uploaded = false;
		_('info_nuevoitem').style.color = 'gray';
		_('info_nuevoitem').innerHTML = 'Cargando el archivo seleccionado...';
		_('btnGuardar').disabled = true;
		_('btnCancelar').disabled = true;
		_('btnGuardar').value = 'Cargando...';
		_('submitID1').disabled = true;
		$('progressBar').style.width = '20px';
		$('uploadStatusDiv').innerHTML = '0%';
		try {
			updater = new Ajax.PeriodicalUpdater('uploadStatusDiv','../servlets/SrvUploader', {
				asynchronous:true, 
				frequency:1, 
				method:'get',
				onSuccess:function(request) {
					if (request.responseText.length > 1) {         
						$('progressBar').style.visibility = 'visible';
						$('progressBar').style.width = request.responseText + '%';
						$('uploadStatusDiv').innerHTML = request.responseText;
					}
				}                                                                     
			});
		} catch(e) {
			alert('submitPostUsingAjax() failed, reason: ' + e);
		} 
		return false;
		_('uploadform').submit();
	}else{
		_('info-format').style.color = 'red';
		_ALERT('info-format', 4, true, _('info-format').innerHTML);
		if(navigator.userAgent.indexOf('MSIE') != -1){
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}else{
			evt.preventDefault();
		}
	}
}                                                                       
	                                      
function handleUploadFinished() {
	if(updater){
		if (typeof updater != 'undefined') {
			updater.stop();
			updater = null;
			checkUploaded();
		}                                                                   
	}
}

function checkUploaded(){
	_('btnGuardar').disabled = false;
	_('btnCancelar').disabled = false;
	_('btnGuardar').value = 'Guardar';
	var ajax = new AQUAX();
	ajax.url = '../servlets/SrvUploader';
	ajax.method = AQUAX.GET;
	ajax.callback_method = checkFile_callBack;
	ajax.addParam('accion','checkFile');
	ajax.addParam('time',new Date().getTime());
	ajax.send();
}

function checkFile_callBack(response){
	var feedback = eval('('+response+')');
	var value = feedback.items[0].encryptedValue;
	value = new Encrypter(value).getDecryptedValue();
	if(value == 'UPDATING' || value == 'NULL'){
		checkUploaded();
		return;
	}
	_('info_nuevoitem').style.color = 'red';
	_('submitID1').disabled = false;
	if(value == 'OVER_WEIGHT'){
		_('info-weight').style.color = 'red';
		_ALERT('info-weight', 4, true, _('info-weight').innerHTML);
		_('info_nuevoitem').innerHTML = _('info-weight').innerHTML;
	}else{
		_('info_nuevoitem').style.color = 'green';
		_('info_nuevoitem').innerHTML = 'Archivo cargado con &eacute;xito';
		file_uploaded = true;
	}
}


function validarInfoItem(){
	var tipos = _('lstTipos');
	var tipo = parseInt(tipos.value);
	var erroresValidacion = false;
	if(!file_uploaded){
		erroresValidacion = true;
		_('req_archivo').style.color = 'red';	
	}else{
		_('req_archivo').style.color = 'black';	
	}
	if(erroresValidacion){
		_('errores').style.color = 'red';
		_ALERT('errores', 4, true);	
	}else{
		_('errores').innerHTML = '&nbsp;';
		guardarInfoItem();
	}
}

function guardarInfoItem(){
	_('errores').style.visibility = 'hidden';
	dialog = new Dialog();
	dialog.addAction('Guardar', 'do_guardarInfoItem()', '../img/save.png');
	dialog.addAction('Cancelar', 'cargarFormRegistro_callBack()', '../img/cancel-dialog.png');
	dialog.image = '../img/confirm-dialog.png';
	dialog.html = '&iquest;Confirma que desea guardar la fotograf&iacute;a seleccionada?';
	dialog.render();	
}

function do_guardarInfoItem(){
	dialog = new Dialog();
	dialog.html = 'Guardando datos de la fotograf&iacute;a...';
	dialog.image = '../img/ajax-loader1.gif';
	dialog.actions.clear();
	dialog.render();
	var ajax = new AQUAX();
	ajax.url = '../servlets/SrvAdministracion';
	ajax.method = AQUAX.POST;
	ajax.callback_method = registrarInfoItem_cb;
	ajax.addParam('accion','registrarFoto');
	ajax.send();
	
}

function registrarInfoItem_cb(response){
	var feedback = eval('('+response+')');
	dialog.addAction('Aceptar', 'cargarEventos_ok()', '../img/back.png');
	dialog.image = '../img/check.png';
	dialog.html = new Encrypter(feedback.items[0].encryptedValue).getHTMLEncryptedValue();
	dialog.render();
}
