<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ include file="validar.jsp" %>
<!DOCTYPE html>
<html lang="es">
	<head>
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
		<meta charset="utf-8" />
		<title>:::SISTEMA DE HORARIOS:::</title>

		<meta name="description" content="overview &amp; stats" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />



		<link rel="stylesheet" href="../assets/css/bootstrap.css" />
		<link rel="stylesheet" href="../assets/css/font-awesome.css" />
		<link rel="stylesheet" href="../assets/css/jquery-ui.css" />
		<link rel="stylesheet" href="../assets/css/ace-fonts.css" />
		<link rel="stylesheet" href="../assets/css/ace.css" class="ace-main-stylesheet" id="main-ace-style" />
		<script src="../assets/js/ace-extra.js"></script>



		<!-- inline scripts related to this page -->
		<script type="text/javascript" language="javascript">

			/*$(document).ready( function() {
			 jQuery("#registroEncuesta").validationEngine();
			 });*/
		</script>
	</head>

	<body class="no-skin" onLoad="cargar();">
		<!-- #section:basics/navbar.layout -->
		<div id="navbar" class="navbar navbar-default">
			<script type="text/javascript">
				try {
					ace.settings.check('navbar', 'fixed')
				} catch (e) {
				}
			</script>

			<div class="navbar-container" id="navbar-container">
				<%@ include file="banner.jsp" %>
			</div><!-- /.navbar-container -->
		</div>

		<!-- /section:basics/navbar.layout -->
		<div class="main-container" id="main-container">
			<script type="text/javascript">
				try {
					ace.settings.check('main-container', 'fixed')
				} catch (e) {
				}
			</script>

			<!-- #section:basics/sidebar -->
			<div id="sidebar" class="sidebar                  responsive">
				<script type="text/javascript">
					try {
						ace.settings.check('sidebar', 'fixed')
					} catch (e) {
					}
				</script>
				<input id="codModulo" type="hidden" value="<%=menu!=null?menu.getCodModulo():""%>">
				<input id="codCategoria" type="hidden" value="<%=menu!=null?menu.getCodCategoria():""%>">
				<%@ include file="menu.jsp" %>
				<!-- #section:basics/sidebar.layout.minimize -->
				<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
					<i class="ace-icon fa fa-angle-double-left" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
				</div>
				<!-- /section:basics/sidebar.layout.minimize -->
				<script type="text/javascript">
					try {
						ace.settings.check('sidebar', 'collapsed')
					} catch (e) {
					}
				</script>
			</div>

			<!-- /section:basics/sidebar -->
			<div class="main-content">
				<div class="main-content-inner">
					<!-- #section:basics/content.breadcrumbs -->
					<div class="breadcrumbs" id="breadcrumbs">
						<script type="text/javascript">
							try {
								ace.settings.check('breadcrumbs', 'fixed')
							} catch (e) {
							}
						</script>

						<ul class="breadcrumb">
							<li>
								<i class="ace-icon fa fa-home home-icon"></i>
								<a href="principal.jsp">INICIO</a>
							</li>
							<li class="active">HORARIOS</li>
						</ul><!-- /.breadcrumb -->
					</div>

					<!-- /section:basics/content.breadcrumbs -->
					<div class="page-content">

						<div class="page-header">
							<h1>
								Horarios
								<small>
									<i class="ace-icon fa fa-angle-double-right"></i>
									Generar Horario
								</small>

							</h1>
						</div><!-- /.page-header -->

						<div class="row">





							<!-- ----------- CONTENEDOR DE FORMULARIOS--------INI----- -->


							<!-- ----------------------------------------------------- -->
							<div class="col-sm-12" style="width:100%; height: 40px;">
								<center><a class="btn btn-sm btn-primary" href="vistaDobleDisponibilidad.jsp" target="_blank">Vista doble</a></center>
							</div>
							<!-- ----------------------------------------------------- -->

							<div  class="col-sm-12" style="width:100%;">
								<div  class="col-sm-12">
									<!-- -------------TABLA---INI------------ -->
									<form id="formListado" name="formListado">
										<div id='aula'> <!--style="display: none;"--> </div>
									</form>
									<!-- -------------TABLA---FIN------------ -->
								</div>
								<br><br>
								<center>
									<button class="btn btn-sm btn-primary" onclick="regresar();" type="button">
										<i class="ace-icon fa fa-reply icon-on-right bigger-110"></i>
										Regresar
									</button>

									<!--
									<button class="btn btn-sm btn-danger" onclick="validar_registro();" type="button">
																	<i class="ace-icon fa fa-trash icon-on-right bigger-110"></i>
																	Eliminar Todos los horarios
									</button>
									-->
								</center>
							</div>






							<!-- ----------- CONTENEDOR DE FORMULARIOS--------FIN----- -->

							<input type="hidden" id="codAulas">
							<input type="hidden" id="nomAulas">
							<input type="hidden" id="cantSelec">

							<input type="hidden" id="Hini">
							<input type="hidden" id="Hfin">


							<!-- ::::::::::-ALERTAS-::::::::::::::: -->


							<div id="dialog-noti1" class="hide">
								<br>
								--------------------------------
								<br><br>
							</div>

							<div id="dialog-noti2" class="hide">
								<br>
								Se registró con éxito.
								<br><br>
							</div>


							<div id="dialog-confor1" class="hide">
								<br>
								¿Desea realizar la asignacion secuencial?
								<br><br>
							</div>

							<div id="dialog-confor2" class="hide">
								<br>
								¿Está seguro de asignar el curso y el docente?
								<br><br>
							</div>

							<div id="dialog-advertencia1" class="hide">
								<br>
								Este curso ya está registrado en el horario.
								<br><br>
							</div>

							<div id="dialog-advertencia2" class="hide">
								<br>
								No se pueden asignar los horarios del docente de esta secuencia, por que existe un curso que hace cruce con la secuancia.
								<br><br>
							</div>

							<div id="dialog-advertencia3" class="hide">
								<br>
								<p>No se puede seleccionar esta casilla porque ya existe un docente seleccionado:</p>
								<div class="profile-activity clearfix" style='border:1px dotted #D0D8E0;'>
									<div>
										<i class="pull-left thumbicon fa fa-user btn-success no-hover"></i>
										<!--<a class="user" href="#"> Alex Doe </a>-->
										<span id='nom'></span>
										<div class="time">
											<i class="ace-icon fa fa-list bigger-110"></i>
											Posición <span id='pos'></span>
										</div>
									</div>
								</div>
								<br><br>
							</div> 

							<div id="dialog-advertencia4" class="hide">
								<br>
								Debe seleccionar un docente para continuar con la asignación.
								<br><br>
							</div> 

							<div id="dialog-eliminar" class="hide">
								<br>
								¿Está seguro de eliminar este horario?
								<br><br>
							</div>

							<div id="dialog-eliminarM" class="hide">
								<br>
								¿Está seguro de eliminar los horarios masivamente?
								<br><br>
							</div>

							<div id="dialog-eliminarTodo" class="hide">
								<br>
								¿Está seguro de eliminar todo el horario del aula?
								<br><br>
							</div>


							<div id="dialog-armar1" class="hide">
								<br>
								<form id="RegistroArmado" method="post">
									<div class="sttxt2" id="divRegistro"></div>
								</form>
								<br><div  class="col-sm-12"></div>
								<div class="sttxt2" id="divVistaPrevia" style="display:none;"></div>
								<br><br>
							</div>

							<div id="dialog-armar2" class="hide" style='overflow: hidden !important;'>
								<br>
								<form id="RegistroAsigCurDoc" name="RegistroAsigCurDoc" class="formular" method="post" >
									<div class="sttxt2" id="divRegistroCursoDocente"></div>
									<br>
									<div id="listadoCruce" style="display: none;">
									</div>
									<br>
									<div class="col-sm-12" id="divFormularioCambio">

									</div>
								</form>
								<br><br>
							</div>


							<div id="dialog-cargando" class="hide" style="z-index: 2001 !important;">
								<table cellpadding="0" cellspacing="0" width="100%">
									<tr><td align="center"><img src="imagenes/cargando.gif" border=0></td></tr>
								</table>
							</div>

							<!-- ::::::::::-ALERTAS-::::::::::::::: -->


						</div><!-- /.row -->
					</div><!-- /.page-content -->
				</div>
			</div><!-- /.main-content -->

			<div class="footer">
				<%@ include file="footer.jsp" %>
			</div>

			<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
				<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
			</a>
		</div><!-- /.main-container -->

		<!-- basic scripts -->

		<!--[if !IE]> -->
		<script type="text/javascript">
			window.jQuery || document.write("<script src='../assets/js/jquery.js'>" + "<" + "/script>");
		</script>

		<!-- <![endif]-->

		<!--[if IE]>
<script type="text/javascript">
window.jQuery || document.write("<script src='../assets/js/jquery1x.js'>"+"<"+"/script>");
</script>
<![endif]-->
		<script type="text/javascript">
			if ('ontouchstart' in document.documentElement)
				document.write("<script src='../assets/js/jquery.mobile.custom.js'>" + "<" + "/script>");
		</script>
		<script src="../assets/js/bootstrap.js"></script>

		<!-- page specific plugin scripts -->
		<script src="../assets/js/jquery-ui.js"></script>
		<script src="../assets/js/jquery.ui.touch-punch.js"></script>

		<!--[if lte IE 8]>
						<script src="../assets/js/excanvas.js"></script>
		<![endif]-->
		<script src="../assets/js/jquery-ui.custom.js"></script>
		<script src="../assets/js/jquery.ui.touch-punch.js"></script>
		<script src="../assets/js/jquery.easypiechart.js"></script>
		<script src="../assets/js/jquery.sparkline.js"></script>
		<script src="../assets/js/flot/jquery.flot.js"></script>
		<script src="../assets/js/flot/jquery.flot.pie.js"></script>
		<script src="../assets/js/flot/jquery.flot.resize.js"></script>
		<script src="../assets/js/jquery.maskedinput.js"></script>

		<!-- ace scripts -->
		<script src="../assets/js/ace/elements.scroller.js"></script>
		<script src="../assets/js/ace/elements.colorpicker.js"></script>
		<script src="../assets/js/ace/elements.fileinput.js"></script>
		<script src="../assets/js/ace/elements.typeahead.js"></script>
		<script src="../assets/js/ace/elements.wysiwyg.js"></script>
		<script src="../assets/js/ace/elements.spinner.js"></script>
		<script src="../assets/js/ace/elements.treeview.js"></script>
		<script src="../assets/js/ace/elements.wizard.js"></script>
		<script src="../assets/js/ace/elements.aside.js"></script>
		<script src="../assets/js/ace/ace.js"></script>
		<script src="../assets/js/ace/ace.ajax-content.js"></script>
		<script src="../assets/js/ace/ace.touch-drag.js"></script>
		<script src="../assets/js/ace/ace.sidebar.js"></script>
		<script src="../assets/js/ace/ace.sidebar-scroll-1.js"></script>
		<script src="../assets/js/ace/ace.submenu-hover.js"></script>
		<script src="../assets/js/ace/ace.widget-box.js"></script>
		<script src="../assets/js/ace/ace.settings.js"></script>
		<script src="../assets/js/ace/ace.settings-rtl.js"></script>
		<script src="../assets/js/ace/ace.settings-skin.js"></script>
		<script src="../assets/js/ace/ace.widget-on-reload.js"></script>
		<script src="../assets/js/ace/ace.searchbox-autocomplete.js"></script>
		<script src="../assets/js/ace/ace.searchbox-autocomplete.js"></script>


		<link rel="stylesheet" href="css/validationEngine.jquery.css" type="text/css"/>
		<!--<link rel="stylesheet" href="css/template.css" type="text/css"/>-->


		<!-- inline scripts related to this page -->
		<script type="text/javascript">

			jQuery(function ($) {


				//override dialog's title function to allow for HTML titles
				$.widget("ui.dialog", $.extend({}, $.ui.dialog.prototype, {
					_title: function (title) {
						var $title = this.options.title || '&nbsp;'
						if (("title_html" in this.options) && this.options.title_html == true)
							title.html($title);
						else
							title.text($title);
					}
				}));



				$("#id-btn-dialog2").on('click', function (e) {//--
					e.preventDefault();
					$("#dialog-confirm").removeClass('hide').dialog({
						resizable: false,
						modal: true,
						title: "<div class='widget-header'><h4 class='smaller'><i class='ace-icon fa fa-exclamation-triangle red'></i> Empty the recycle bin?</h4></div>",
						title_html: true,
						buttons: [
							{
								html: "<i class='ace-icon fa fa-trash-o bigger-110'></i>&nbsp; Delete all items",
								"class": "btn btn-danger btn-xs",
								click: function () {
									$(this).dialog("close");
								}
							}
							,
							{
								html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; Cancel",
								"class": "btn btn-xs",
								click: function () {
									$(this).dialog("close");
								}
							}
						]
					});
				});

				$('.easy-pie-chart.percentage').each(function () {
					var $box = $(this).closest('.infobox');
					var barColor = $(this).data('color') || (!$box.hasClass('infobox-dark') ? $box.css('color') : 'rgba(255,255,255,0.95)');
					var trackColor = barColor == 'rgba(255,255,255,0.95)' ? 'rgba(255,255,255,0.25)' : '#E2E2E2';
					var size = parseInt($(this).data('size')) || 50;
					$(this).easyPieChart({
						barColor: barColor,
						trackColor: trackColor,
						scaleColor: false,
						lineCap: 'butt',
						lineWidth: parseInt(size / 10),
						animate: /msie\s*(8|7|6)/.test(navigator.userAgent.toLowerCase()) ? false : 1000,
						size: size
					});
				})

				$('.sparkline').each(function () {
					var $box = $(this).closest('.infobox');
					var barColor = !$box.hasClass('infobox-dark') ? $box.css('color') : '#FFF';
					$(this).sparkline('html',
						{
							tagValuesAttribute: 'data-values',
							type: 'bar',
							barColor: barColor,
							chartRangeMin: $(this).data('min') || 0
						});
				});


				//flot chart resize plugin, somehow manipulates default browser resize event to optimize it!
				//but sometimes it brings up errors with normal resize event handlers
				$.resize.throttleWindow = false;

				var placeholder = $('#piechart-placeholder').css({'width': '90%', 'min-height': '150px'});
				var data = [
					{label: "social networks", data: 38.7, color: "#68BC31"},
					{label: "search engines", data: 24.5, color: "#2091CF"},
					{label: "ad campaigns", data: 8.2, color: "#AF4E96"},
					{label: "direct traffic", data: 18.6, color: "#DA5430"},
					{label: "other", data: 10, color: "#FEE074"}
				]
				function drawPieChart(placeholder, data, position) {
					$.plot(placeholder, data, {
						series: {
							pie: {
								show: true,
								tilt: 0.8,
								highlight: {
									opacity: 0.25
								},
								stroke: {
									color: '#fff',
									width: 2
								},
								startAngle: 2
							}
						},
						legend: {
							show: true,
							position: position || "ne",
							labelBoxBorderColor: null,
							margin: [-30, 15]
						}
						,
						grid: {
							hoverable: true,
							clickable: true
						}
					})
				}
				drawPieChart(placeholder, data);

				/**
				 we saved the drawing function and the data to redraw with different position later when switching to RTL mode dynamically
				 so that's not needed actually.
				 */
				placeholder.data('chart', data);
				placeholder.data('draw', drawPieChart);


				//pie chart tooltip example
				var $tooltip = $("<div class='tooltip top in'><div class='tooltip-inner'></div></div>").hide().appendTo('body');
				var previousPoint = null;

				placeholder.on('plothover', function (event, pos, item) {
					if (item) {
						if (previousPoint != item.seriesIndex) {
							previousPoint = item.seriesIndex;
							var tip = item.series['label'] + " : " + item.series['percent'] + '%';
							$tooltip.show().children(0).text(tip);
						}
						$tooltip.css({top: pos.pageY + 10, left: pos.pageX + 10});
					} else {
						$tooltip.hide();
						previousPoint = null;
					}

				});

				/////////////////////////////////////
				$(document).one('ajaxloadstart.page', function (e) {
					$tooltip.remove();
				});




				var d1 = [];
				for (var i = 0; i < Math.PI * 2; i += 0.5) {
					d1.push([i, Math.sin(i)]);
				}

				var d2 = [];
				for (var i = 0; i < Math.PI * 2; i += 0.5) {
					d2.push([i, Math.cos(i)]);
				}

				var d3 = [];
				for (var i = 0; i < Math.PI * 2; i += 0.2) {
					d3.push([i, Math.tan(i)]);
				}


				var sales_charts = $('#sales-charts').css({'width': '100%', 'height': '220px'});
				$.plot("#sales-charts", [
					{label: "Domains", data: d1},
					{label: "Hosting", data: d2},
					{label: "Services", data: d3}
				], {
					hoverable: true,
					shadowSize: 0,
					series: {
						lines: {show: true},
						points: {show: true}
					},
					xaxis: {
						tickLength: 0
					},
					yaxis: {
						ticks: 10,
						min: -2,
						max: 2,
						tickDecimals: 3
					},
					grid: {
						backgroundColor: {colors: ["#fff", "#fff"]},
						borderWidth: 1,
						borderColor: '#555'
					}
				});


				$('#recent-box [data-rel="tooltip"]').tooltip({placement: tooltip_placement});
				function tooltip_placement(context, source) {
					var $source = $(source);
					var $parent = $source.closest('.tab-content')
					var off1 = $parent.offset();
					var w1 = $parent.width();

					var off2 = $source.offset();
					//var w2 = $source.width();

					if (parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2))
						return 'right';
					return 'left';
				}


				$('.dialogs,.comments').ace_scroll({
					size: 300
				});


				//Android's default browser somehow is confused when tapping on label which will lead to dragging the task
				//so disable dragging when clicking on label
				var agent = navigator.userAgent.toLowerCase();
				if ("ontouchstart" in document && /applewebkit/.test(agent) && /android/.test(agent))
					$('#tasks').on('touchstart', function (e) {
						var li = $(e.target).closest('#tasks li');
						if (li.length == 0)
							return;
						var label = li.find('label.inline').get(0);
						if (label == e.target || $.contains(label, e.target))
							e.stopImmediatePropagation();
					});

				$('#tasks').sortable({
					opacity: 0.8,
					revert: true,
					forceHelperSize: true,
					placeholder: 'draggable-placeholder',
					forcePlaceholderSize: true,
					tolerance: 'pointer',
					stop: function (event, ui) {
						//just for Chrome!!!! so that dropdowns on items don't appear below other items after being moved
						$(ui.item).css('z-index', 'auto');
					}
				}
				);
				$('#tasks').disableSelection();
				$('#tasks input:checkbox').removeAttr('checked').on('click', function () {
					if (this.checked)
						$(this).closest('li').addClass('selected');
					else
						$(this).closest('li').removeClass('selected');
				});


				//show the dropdowns on top or bottom depending on window height and menu position
				$('#task-tab .dropdown-hover').on('mouseenter', function (e) {
					var offset = $(this).offset();

					var $w = $(window)
					if (offset.top > $w.scrollTop() + $w.innerHeight() - 100)
						$(this).addClass('dropup');
					else
						$(this).removeClass('dropup');
				});



			});

			//::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

			$(document).ready(function () {
				jQuery("#registroEncuesta").validationEngine();
			});

			//-------------------------------

//			webSocket
			let host = window.location.host;
			let socket = new WebSocket('ws://' + host + '/horario/SocketHorario')
			function enviarAccionWebSocket(accion) {
				socket.send(accion)
			}
//			webSocket

			function cargando() {
				$("#dialog-cargando").removeClass('hide').dialog({
					resizable: false,
					modal: true,
					title: "<div class='widget-header' ><h4 class='smaller'><i class='fa fa-spinner'></i> Cargando...</h4></div>",
					title_html: true
				});
			}

			function close_carga() {
				$("#dialog-cargando").dialog("close");
			}

			function conMayusculas(field) {
				field.value = field.value.toUpperCase()
			}

			function segundaCarga() {
				armarHorarioGeneral();
			}

			function armarHorarioGeneral() {
				enviarAccionWebSocket('listarVistaDobleWS')
				var cantidad = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_cantidad():""%>";
				var codAulas = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_codAulas():""%>";
				var cadena = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_cadena():""%>";
				var codigo = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_codigo():""%>";
				var cadenaAulas = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_cadenaAulas():""%>";
				//alert("cantidad= "+cantidad+"\n codAulas= "+codAulas+"\n cadena= "+cadena+"\n codigo= "+codigo+"\n cadenaAulas= "+cadenaAulas);
				//alert(codigo);
				//alert(cantidad+"\n"+codAulas+"\n"+codBlo+"\n"+codGru);
				$.ajax({
					type: 'POST',
					url: '../ServletHorario?Accion=armadoHorarioGeneral2',
					data: 'cantidad=' + cantidad + '&codAulas=' + codAulas + '&cadena=' + cadena + '&codigo=' + codigo + '&cadenaAulas=' + cadenaAulas,
					beforeSend: function () {
						cargando();
					}, success: function (resultado) {
						close_carga();
						//alert(resultado);
						$("#aula").html(resultado);
					}, complete: function () {

					}
				});
			}


			//function alerta1(codaula,posBlo,dia,Hor_ini,Hor_fin,turno,contGeneral){
			function alerta1(cantAulas, bloquesDia, codaula, posDia, dia, Hor_ini, Hor_fin, codigaGrupoHorario, contGeneral) {


//                            if(cantAulas!=bloquesDia){
//                                //alert(Hor_ini+" - "+Hor_fin);
//                                armarAsignacionCurso(0,cantAulas,bloquesDia,codaula,posDia,dia,Hor_ini,Hor_fin,codigaGrupoHorario,contGeneral);
//                            }else if(cantAulas==1){
//                                //alert(Hor_ini+" - "+Hor_fin);
//                                armarAsignacionCurso(0,cantAulas,bloquesDia,codaula,posDia,dia,Hor_ini,Hor_fin,codigaGrupoHorario,contGeneral);
//                            }else{
				$("#dialog-confor1").removeClass('hide').dialog({
					resizable: false,
					width: 400,
					modal: true,
					title: "<div class='widget-color-blue' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-check-circle white'></i> <span class='white'>Conformidad</span></h4></div></div>",
					title_html: true,
					buttons: [
						{
							html: "<i class='ace-icon fa fa-cogs bigger-110'></i>&nbsp; SI",
							"class": "btn btn-primary btn-xs",
							click: function () {
								//asignarHorarioCurso(codaula,posBlo,dia,Hor_ini,Hor_fin,turno,contGeneral);
								armarAsignacionCurso(1, cantAulas, bloquesDia, codaula, posDia, dia, Hor_ini, Hor_fin, codigaGrupoHorario, contGeneral);
								$(this).dialog("close");
							}
						}, {
							html: "<i class='ace-icon fa fa-cog bigger-110'></i>&nbsp; NO",
							"class": "btn btn-warning btn-xs",
							click: function () {

								//asignarHorarioCursoIndividual(codaula,posBlo,dia,Hor_ini,Hor_fin,turno,contGeneral)
								armarAsignacionCurso(0, cantAulas, bloquesDia, codaula, posDia, dia, Hor_ini, Hor_fin, codigaGrupoHorario, contGeneral);
								$(this).dialog("close");
							}
						}, {
							html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; CANCELAR",
							"class": "btn btn-danger btn-xs",
							click: function () {
								$(this).dialog("close");
							}
						}
					]
				});
//                            }

			}

			function armarAsignacionCurso(opcion, cantAulas, bloquesDia, codaula, posDia, dia, Hor_ini, Hor_fin, codigaGrupoHorario, contGeneral) {
				//alert(codigo);
				var periodo = "<%=periodo!=null?periodo.getCodigoPeriodo():""%>";
				$.ajax({
					type: 'POST',
//                                    url:'../ServletHorario?Accion=armarAsignacionCursoDocGeneral2',
					url: '../ServletHorario?Accion=armarAsignacionCursoDocGeneral3',
					data: 'dia=' + dia + '&Hini=' + Hor_ini + '&Hfin=' + Hor_fin + '&opcion=' + opcion + '&periodo=' + periodo,
					success: function (resultado) {
						$('#divRegistroCursoDocente').html(resultado);
						$('#divFormularioCambio').html('')
					}, complete: function () {

						$("#listadoCruce").fadeOut();
						cargarCursoArea(opcion, posDia, dia, Hor_ini, Hor_fin, codigaGrupoHorario, codaula, contGeneral);
						//alerta2(bloquesDia,dia,Hor_ini,Hor_fin,codigaGrupoHorario,codaula,contGeneral,opcion,0);
					}
				});
			}

			function cargarCursoArea(opcion, bloq, dia, Hor_ini, Hor_fin, codigaGrupoHorario, codaula, contGeneral) {
				$("#Hini").val(Hor_ini);
				$("#Hfin").val(Hor_fin);
				var dato = verificarTurno(Hor_ini, Hor_fin);
				var codTurno = dato;
				//alert(opcion+" - "+bloq+" - "+dia);
				var nombre = "cmbCurso";
				var accion = "cargarDocentesDisponibles(" + opcion + "," + bloq + "," + dia + "," + codaula + "); recargar();";
				//var codArea=$("#cmbArea").val();
				$.ajax({
					type: 'POST',
					url: '../ServletCurso?Accion=cargarCurso2',
					data: 'nombre=' + nombre + '&accion=' + accion,
					success: function (resultado) {
						$('#divCursoCombo').html(resultado);
					}, complete: function () {
						alerta2(bloq, dia, Hor_ini, Hor_fin, codTurno, codigaGrupoHorario, codaula, contGeneral, opcion, 0);
					}
				});
			}

			function cargarDocentesDisponibles(opcion, bloq, dia, codaula) {
				var Hini = $("#Hini").val();
				var Hfin = $("#Hfin").val();
				var dato = verificarTurno(Hini, Hfin);
				var codTurno = dato;
				var codCurso = $("#cmbCurso").val();
				var periodo = "<%=periodo!=null?periodo.getCodigoPeriodo():""%>";
				$.ajax({
					type: 'POST',
//                                    url:'../ServletDocente?Accion=cargarDocentesDisponiblesGeneral2',
					url: '../ServletDocente?Accion=cargarDocentesDisponiblesGeneral3',
					data: 'codTurno=' + codTurno + '&dia=' + dia + '&codCurso=' + codCurso + '&periodo=' + periodo + '&opcion=' + opcion + '&codaula=' + codaula,
					success: function (resultado) {
						//listarDocentes(Hini,Hfin,dato,codTurno,codCurso,periodo,opcion,bloq,dia,codaula);
						listarDocentes(periodo);
//                                        $('#divDocenteCombo').html(resultado);
					}, complete: function () {
//                                        $("#formulario1").dialog( "close" );
					}
				});
			}

			function listarDocentes(periodo) {
				var apellidoDocente = $("#txtApeDocente").val();
				var cadenaAulas = $("#cadenaAulasHorario").val();
				$.ajax({
					type: 'POST',
					url: '../ServletDocente?Accion=tablaDocentesDisponiblesGeneral5',
					data: 'periodo=' + periodo + '&apellidoDocente=' + apellidoDocente + '&cadenaAulas=' + cadenaAulas,
					beforeSend: function () {
						cargando();
					}, success: function (resultado) {
						close_carga();
						$('#divDocenteCombo').html(resultado);
					}, complete: function () {

						$("#formulario1").dialog("close");
					}
				});
			}

			function doSearch() {
				var tableReg = document.getElementById('tablaDocentes');
				var searchText = document.getElementById('txtApeDocente').value.toLowerCase();
				var cellsOfRow = "";
				var found = false;
				var compareWith = "";

				// Recorremos todas las filas con contenido de la tabla
				for (var i = 1; i < tableReg.rows.length; i++) {
					cellsOfRow = tableReg.rows[i].getElementsByTagName('td');

					found = false;
					// Recorremos todas las celdas
					for (var j = 0; j < cellsOfRow.length && !found; j++) {
						compareWith = cellsOfRow[j].innerHTML.toLowerCase();
						// Buscamos el texto en el contenido de la celda
						if (searchText.length == 0 || (compareWith.indexOf(searchText) > -1))
						{
							found = true;
						}
					}
					if (found) {
						tableReg.rows[i].style.display = '';
					} else {
						// si no ha encontrado ninguna coincidencia, esconde la
						// fila de la tabla
						tableReg.rows[i].style.display = 'none';
					}
				}

			}
			// Velasquez

			function verificar_uno(check) {
				var limite = 1;
				var contador = 0;
				var ele = "";
				if (check.checked) {
					//está marcada, entonces aumento en uno el contador del grupo 
					for (var i = 0; ele = check.form.elements[i]; i++) {
						if (ele.checked) {
							contador++;
						}
						//compruebo si el contador ha llegado al máximo permitido 
						if (contador > limite) {
							//desmarco la casilla, porque no se puede permitir marcar 
							check.checked = false;
							//resto una unidad al contador de grupo, porque he desmarcado una casilla 
							contador--;
							//si ha llegado al máximo, muestro mensaje de error 
							popupAlertaCheck();


						}
					}
				} else {
					//si la casilla no estaba marcada, resto uno al contador de grupo 
					contador--;
				}

			}

			function popupAlertaCheck() {
				var cantidad = $("#cantidad").val();
				var posicion = "";
				var cadena = "";
				var cont = 1;
				for (var i = 0; i <= cantidad; i++) {

					posicion = $("input[name='checkbox" + cont + "']:checked").val();
					var dato = $("#datos2_" + posicion + "").val();
					if (posicion != "" && posicion != undefined) {
						if (cadena == "") {
							cadena = dato;
						}
					}
					cont++;
				}

				var array1 = cadena.split("#");
				for (var a = 0; a < array1.length; a++) {
					var num = array1[0];
					var nombre = array1[1];
				}
				$("#nom").html(nombre);
				$("#pos").html(num);
				$("#dialog-advertencia3").removeClass('hide').dialog({
					resizable: false,
					width: 450,
					modal: true,
					title: "<div class='widget-color-orange' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-exclamation-triangle white'></i> <span class='white'>Advertencia</span></h4></div></div>",
					title_html: true,
					buttons: [
						{
							html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; ACEPTAR",
							"class": "btn btn-warning btn-xs",
							click: function () {
								$(this).dialog("close");
							}
						}
					]
				});
			}

			function verificarTurno(HorIni, HorFin) {
				var mini = "07:50";
				var mfin = "14:30";
				var tini = "15:00";
				var tfin = "19:00";
				var nini = "19:00";
				var nfin = "22:00";

				var ARmini = mini.split(":");
				var ARmfin = mfin.split(":");
				var ARtini = tini.split(":");
				var ARtfin = tfin.split(":");
				var ARnini = nini.split(":");
				var ARnfin = nfin.split(":");


				// Obtener horas y minutos (MAÑANA) 
				var hhMini = parseInt(ARmini[0], 10);
				var mmMini = parseInt(ARmini[1], 10);
				var hhMfin = parseInt(ARmfin[0], 10);
				var mmMfin = parseInt(ARmfin[1], 10);
				// Obtener horas y minutos (TARDE) 
				var hhTini = parseInt(ARtini[0], 10);
				var mmTini = parseInt(ARtini[1], 10);
				var hhTfin = parseInt(ARtfin[0], 10);
				var mmTfin = parseInt(ARtfin[1], 10);
				// Obtener horas y minutos (NOCHE) 
				var hhNini = parseInt(ARnini[0], 10);
				var mmNini = parseInt(ARnini[1], 10);
				var hhNfin = parseInt(ARnfin[0], 10);
				var mmNfin = parseInt(ARnfin[1], 10);


				var ARHorIni = HorIni.split(":");
				var ARHorFin = HorFin.split(":");
				// Obtener horas y minutos (DATO) 
				var hhHorIni = parseInt(ARHorIni[0], 10);
				var mmHorIni = parseInt(ARHorIni[1], 10);
				var hhHorFin = parseInt(ARHorFin[0], 10);
				var mmHorFin = parseInt(ARHorFin[1], 10);



				if ((hhMini <= hhHorIni && hhTfin >= hhHorIni) && (hhMini <= hhHorFin && hhTfin >= hhHorFin)) {
					if ((hhMini <= hhHorIni && hhMfin >= hhHorIni) && (hhMini <= hhHorFin && hhMfin >= hhHorFin)) {
						if (hhHorFin == 14) {
							if (mmHorFin <= 30) {
								return "1";//"mañana";
							} else {
								return "4";//"mañana-tarde";
							}
						} else {
							return "1";//"mañana";
						}
					} else if ((hhTini <= hhHorIni && hhTfin >= hhHorIni) && (hhTini <= hhHorFin && hhTfin >= hhHorFin)) {
						if (hhHorFin == 19) {
							if (mmHorFin == 0) {
								return "2";//"tarde";
							} else {
								return "5";//"tarde-noche";
							}
						} else {
							return "2";//"tarde";
						}
					} else {
						if (hhHorFin == 19) {
							if (mmHorFin == 0) {
								return "4";//"mañana-tarde";
							} else {
								return "6";//"mañana-tarde-noche";
							}
						} else {
							return "4";//"mañana-tarde";
						}
					}

				} else if ((hhTini <= hhHorIni && hhNfin >= hhHorIni) && (hhTini <= hhHorFin && hhNfin >= hhHorFin)) {
					if ((hhTini <= hhHorIni && hhTfin >= hhHorIni) && (hhTini <= hhHorFin && hhTfin >= hhHorFin)) {
						if (hhHorFin == 19) {
							if (mmHorFin == 0) {
								return "2";//"tarde";
							} else {
								return "5";//"tarde-noche";
							}
						} else {
							return "2";//"tarde";
						}
					} else if ((hhNini <= hhHorIni && hhNfin >= hhHorIni) && (hhNini <= hhHorFin && hhNfin >= hhHorFin)) {
						return "3";//"noche";
					} else {
						return "5";//"tarde-noche";
					}
				} else {
					return "6";//"mañana-tarde-noche";
				}

			}

			/*
			 function CompararHoras(sHora1, sHora2) { 
			 
			 var arHora1 = sHora1.split(":"); 
			 var arHora2 = sHora2.split(":"); 
			 
			 // Obtener horas y minutos (hora 1) 
			 var hh1 = parseInt(arHora1[0],10); 
			 var mm1 = parseInt(arHora1[1],10); 
			 
			 // Obtener horas y minutos (hora 2) 
			 var hh2 = parseInt(arHora2[0],10); 
			 var mm2 = parseInt(arHora2[1],10); 
			 
			 // Comparar 
			 if (hh1<hh2 || (hh1==hh2 && mm1<mm2)) 
			 return "sHora1 MENOR sHora2"; 
			 else if (hh1>hh2 || (hh1==hh2 && mm1>mm2)) 
			 return "sHora1 MAYOR sHora2"; 
			 else  
			 return "sHora1 IGUAL sHora2"; 
			 }
			 */
			function recargar() {
				$("#listadoCruce").fadeOut();
				$("#listadoCruce").html("");
			}

			function alerta2(bloq, dia, Hini, Hfin, Turno, codigaGrupoHorario, codaula, contGeneral, opcion, editar, historial) {
				$("#dialog-armar2").removeClass('hide').dialog({
					resizable: false,
					width: 800,
					modal: true,
					title: "<div class='widget-color-blue' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-check-circle white'></i> <span class='white'>Asignación</span></h4></div></div>",
					title_html: true,
					buttons: [
						{
							html: "<i class='ace-icon fa fa-check bigger-110'></i>&nbsp; ASIGNAR",
							"class": "btn btn-primary btn-xs",
							click: function () {
								verCursosIguales(codigaGrupoHorario, Turno, bloq, dia, Hini, Hfin, codaula, contGeneral, opcion, editar, historial);
							}
						}, {
							html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; CANCELAR",
							"class": "btn btn-danger btn-xs",
							click: function () {
								$(this).dialog("close");
							}
						}
					]
				});
			}

			function verCursosIguales(codigaGrupoHorario, Turno, bloq, dia, Hini, Hfin, codaula, contGeneral, opcion, editar, historial) {
				//alert("verificar "+editar);
				var periodo = "<%=periodo!=null?periodo.getCodigoPeriodo():""%>";
				var codAulas = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_codAulas():""%>";
				var codCurso = $("#cmbCurso").val();
				$.ajax({
					type: 'POST',
					url: '../ServletHorario?Accion=consultarCursosGeneral',
					data: "codAula=" + codaula + "&codCurso=" + codCurso + "&Turno=" + Turno + '&periodo=' + periodo + '&editar=' + editar + '&bloq=' + bloq + '&dia=' + dia + '&codAulas=' + codAulas + '&opcion=' + opcion, //'&codAulas='+codAulas+'&contGeneral='+contGeneral+'&opcion='+opcion+'&hora_inicio='+hora_inicio+'$hora_termino='+hora_termino,
					success: function (resultado) {
						//alert("rsultado "+resultado);
						if (resultado == 0) {
							validar_RegistroAsigCurDoc(codigaGrupoHorario, bloq, dia, Hini, Hfin, codaula, opcion, Turno, contGeneral, historial);
						} else {
							advertencia1();
						}
					}, complete: function () {

					}
				});
			}

			function advertencia1() {
				//alert("advertencia 1");
				$("#dialog-advertencia1").removeClass('hide').dialog({
					resizable: false,
					width: 400,
					modal: true,
					title: "<div class='widget-color-orange' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-exclamation-triangle white'></i> <span class='white'>Advertencia</span></h4></div></div>",
					title_html: true,
					buttons: [
						{
							html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; ACEPTAR",
							"class": "btn btn-warning btn-xs",
							click: function () {
								$(this).dialog("close");
							}
						}
					]
				});
			}

			function advertencia2() {
				$("#dialog-advertencia2").removeClass('hide').dialog({
					resizable: false,
					width: 400,
					modal: true,
					title: "<div class='widget-color-orange' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-exclamation-triangle white'></i> <span class='white'>Advertencia</span></h4></div></div>",
					title_html: true,
					buttons: [
						{
							html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; ACEPTAR",
							"class": "btn btn-warning btn-xs",
							click: function () {
								$(this).dialog("close");
							}
						}
					]
				});
			}

			function validar_RegistroAsigCurDoc(codigaGrupoHorario, bloq, dia, Hini, Hfin, codaula, opcion, Turno, contGeneral, historial) {
				var estado = jQuery('#RegistroAsigCurDoc').validationEngine('validate');
				if (estado) {
					var cantidad = $("#cantidad").val();
					var posicion = "";
					var codigoDocente = "";
					for (var i = 1; i <= cantidad; i++) {
						posicion = $("input[name='checkbox" + i + "']:checked").val();
						var dato = $("#datos_" + posicion + "").val();
						if (posicion != "" && posicion != undefined) {
							if (codigoDocente == "") {
								codigoDocente = dato;
							}
						}
					}
					if (codigoDocente != "") {

						var json = {}

						if (historial == 'cambioFijo') {
							json.motivoCambio = $('#txtMotivoCambio').val() || ''
							json.observacion = $('#txtObservacion').val() || ''
							json.condicionTrabajador = $('#cbCondicionTrabajador').val() || ''
						} else if (historial == 'cambioDia') {
							json.motivoCambio = $('#txtMotivoCambio').val() || ''
							json.observacion = $('#txtObservacion').val() || ''
							json.horaAviso = $('#txtHoraAviso').val() || ''
							json.recuperacion = $('input[name="recuperacion"]').val() || ''
						}

						popup_confimacion(codigaGrupoHorario, bloq, dia, Hini, Hfin, codaula, opcion, Turno, contGeneral, codigoDocente, historial, json);
					} else {
						alertaVacios();
					}
				}
			}

			function alertaVacios() {
				$("#dialog-advertencia4").removeClass('hide').dialog({
					resizable: false,
					width: 300,
					modal: true,
					title: "<div class='widget-color-orange' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-exclamation-triangle white'></i> <span class='white'>Advertencia</span></h4></div></div>",
					title_html: true,
					buttons: [
						{
							html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; ACEPTAR",
							"class": "btn btn-warning btn-xs",
							click: function () {
								$(this).dialog("close");
							}
						}
					]
				});
			}
			function popup_confimacion(codigaGrupoHorario, bloq, dia, Hini, Hfin, codaula, opcion, Turno, contGeneral, codigoDocente, historial, json) {
				$("#dialog-confor2").removeClass('hide').dialog({
					resizable: false,
					modal: true,
					title: "<div class='widget-color-blue' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-check-circle white'></i> <span class='white'>Conformidad</span></h4></div></div>",
					title_html: true,
					buttons: [
						{
							html: "<i class='ace-icon fa fa-check bigger-110'></i>&nbsp; SI",
							"class": "btn btn-primary btn-xs",
							click: function () {
//                                            alert(codigoDocente);
								if (opcion == "1") {
									registrarAsigCurDoceHorarioMasivo(codigaGrupoHorario, bloq, dia, Hini, Hfin, codaula, opcion, Turno, contGeneral, codigoDocente, historial);
								} else {
									registrarAsigCurDoceHorario(codigaGrupoHorario, bloq, dia, Hini, Hfin, codaula, opcion, Turno, contGeneral, codigoDocente, historial, json);
								}
								$(this).dialog("close");
							}
						}, {
							html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; NO",
							"class": "btn btn-danger btn-xs",
							click: function () {
								$(this).dialog("close");
							}
						}
					]
				});
			}

			function registrarAsigCurDoceHorarioMasivo(codigaGrupoHorario, bloq, dia, Hini, Hfin, codaula, opcion, Turno, contGeneral, codigoDocente) {
				//alert("registrarAsigCurDoceHorarioMasivo");
//												debugger;

				var codAulas = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_codAulas():""%>";
				var hora_inicio = $("#hora_inicio_" + dia + "").val();
				var hora_termino = $("#hora_termino_" + dia + "").val();
				var dato = verificarTurno(hora_inicio, hora_termino);
				var codTurno = dato;
				var codCurso = $("#cmbCurso").val();
//                            var codDocente = $("#cmbDocDisp").val();
				var codClase = $("#idClase").val();
				var periodo = "<%=periodo!=null?periodo.getCodigoPeriodo():""%>";
				var codGru = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_codGru():""%>";


				var cantidad = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_cantidad():""%>";

				var cadenaHorasIni = $("#cadenaHorasIni_" + dia + "").val();
				var cadenaHorasFin = $("#cadenaHorasFin_" + dia + "").val();

				//alert(hora_inicio+"\n"+hora_termino);
				//alert(cadenaHorasIni+"\n"+cadenaHorasFin);
				//alert("codaula: "+codaula+"\n posBlo: "+bloq+"\n dia: "+dia+"\n Hor_ini: "+Hini+"\n Hor_fin: "+Hfin+"\n turno: "+Turno+"\n contGeneral: "+contGeneral);
//                            debugger;
				var cant = 0;
				cant = parseInt(cantidad);
				var PosGeneral = 0;
				PosGeneral = parseInt(contGeneral);
				var cadenaPosGeneral = "";

				//----------- POSICION GENERAL -------INI------
				for (i = 1; i <= cant; i++) {
					if (PosGeneral == cant) {
						if (cadenaPosGeneral == "") {
							cadenaPosGeneral = PosGeneral;
						} else {
							cadenaPosGeneral = cadenaPosGeneral + "#" + PosGeneral;
						}
						PosGeneral = parseInt(PosGeneral) - (parseInt(PosGeneral) - 1);
					} else {
						if (i == cant) {
							cadenaPosGeneral = cadenaPosGeneral + "#" + PosGeneral;
							PosGeneral = parseInt(PosGeneral) - (parseInt(PosGeneral) - 1);

						} else {

							if (cadenaPosGeneral == "") {
								cadenaPosGeneral = PosGeneral;
							} else {
								cadenaPosGeneral = cadenaPosGeneral + "#" + PosGeneral;
							}
							PosGeneral = parseInt(PosGeneral) + 1;
						}
					}
				}



				//----------- POSICION GENERAL -----FIN--------

				//alert(cadenaPosGeneral);


				//----------- POSICION DE BLOQUE -------INI------
				var cadenaPosBloques = "";
				var PosBloques = 0;
				PosBloques = parseInt(bloq);
				var numeroBloque = cadenaHorasIni.split('#').length
				var indice = 0

				cadenaPosBloques = PosBloques
				if (numeroBloque == PosBloques) {
					PosBloques = 1
				} else {
					PosBloques++
				}
				indice++

				while (indice < cant)
				{
					cadenaPosBloques = cadenaPosBloques + "#" + PosBloques;

					if (numeroBloque == PosBloques) {
						PosBloques = 1
					} else {
						PosBloques++
					}
					indice++
				}
//				for (i = 1; i <= cant; i++) {
////                                if(PosBloques==cant){
//					if (cadenaPosBloques == "") {
//						cadenaPosBloques = PosBloques;
//					} else {
//						cadenaPosBloques = cadenaPosBloques + "#" + PosBloques;
//					}
//					if (numeroBloque == parseInt(bloq)) {
//						PosBloques = parseInt(PosBloques) - (parseInt(PosBloques) - 1);
//					} else {
//						PosBloques = parseInt(PosBloques) + 1;
//					}
////                                }else{
////                                    if(i==cant){
////                                        cadenaPosBloques=cadenaPosBloques+"#"+PosBloques;
////                                        PosBloques = parseInt(PosBloques)-(parseInt(PosBloques)-1);
////                                        
////                                    }else{
////                                        
////                                        if(cadenaPosBloques==""){
////                                            cadenaPosBloques=PosBloques;
////                                        }else{
////                                            cadenaPosBloques=cadenaPosBloques+"#"+PosBloques;
////                                        }
////                                        PosBloques = parseInt(PosBloques) + 1;
////                                    }
////                                }
//				}

//				console.log(cadenaPosBloques)
//				console.log(cadenaPosGeneral)
//				console.log(cant)
//				console.log(PosBloques)

				//----------- POSICION DE BLOQUE -----FIN--------


				var arrayGeneral = cadenaPosGeneral.split("#");
				var arrayBloques = cadenaPosBloques.split("#");
				var arrayAulas = codAulas.split("#");
				var arrayHorasIni = cadenaHorasIni.split("#");
				var arrayHorasFin = cadenaHorasFin.split("#");

				var posicionGlobal = 0;
				var posicionBloGlobal = 0;
				var cadenaTotal = "";

				for (i = 0; i < cant; i++) {
					posicionGlobal = arrayGeneral[i] - 1;
					posicionBloGlobal = arrayBloques[i] - 1;
					//$("#curso_"+arrayGeneral[i]+"_"+arrayBloques[i]+"_"+dia).html("<span style='color:black;'>"+arrayAulas[posicionGlobal]+"X<br>"+arrayHorasIni[posicionBloGlobal]+" a "+arrayHorasFin[posicionBloGlobal]+"</span>");



					if (cadenaTotal == "") {
						cadenaTotal = arrayAulas[posicionGlobal] + "#" + arrayBloques[i] +
							"#" + arrayHorasIni[posicionBloGlobal] +
							"#" + arrayHorasFin[posicionBloGlobal];
					} else {
						cadenaTotal = cadenaTotal + "-" + arrayAulas[posicionGlobal] + "#" + arrayBloques[i] +
							"#" + arrayHorasIni[posicionBloGlobal] +
							"#" + arrayHorasFin[posicionBloGlobal];
					}
				}

				//alert(cadenaTotal);
				//  REGISTRO
				var grupoAulas = $("#grupoAulas").val();
				$.ajax({
					type: 'POST',
					url: '../ServletHorario?Accion=registrarAsigCurDoceHorarioGeneralMasivo2',
					data: "cadenaTotal=" + cadenaTotal + "&hora_inicio=" + hora_inicio + "&hora_termino=" + hora_termino + "&dia=" + dia + "&codTurno=" + codTurno + "&codCurso=" + codCurso + "&codDocente=" + codigoDocente + '&periodo=' + periodo + '&codGru=' + codigaGrupoHorario + '&codClase=' + codClase + '&grupoAulas=' + grupoAulas,

					success: function (resultado) {
						//alert("res "+resultado);
						if (resultado == 1) {
							popup_exito_masivo(codigaGrupoHorario, codaula, bloq, dia, Hini, Hfin, Turno, contGeneral);
						} else if (resultado == 3) {
							verCruce(codigaGrupoHorario, codigoDocente, dia, Hini, Hfin, periodo);
						} else if (resultado == 4) {
							verCruceMasivo(codigaGrupoHorario, codigoDocente, dia, hora_inicio, hora_termino, periodo);
						} else if (resultado == 5) {
							advertencia2();
						} else {
							alert("ocurrió un error");
						}
					}, complete: function () {

					}
				});
			}


			function registrarAsigCurDoceHorario(codigaGrupoHorario, bloq, dia, Hini, Hfin, codaula, opcion, Turno, contGeneral, codigoDocente, historial, json) {
				//alert("registrarAsigCurDoceHorario");
				var codTurno = Turno;
				var codCurso = $("#cmbCurso").val();
				var codClase = $("#idClase").val();
				var periodo = "<%=periodo!=null?periodo.getCodigoPeriodo():""%>";
				var grupoAulas = $("#grupoAulas").val();
				historial = historial || 0
				//alert("codAula="+codaula+"&bloq="+bloq+"&dia="+dia+"&Hini="+Hini+"&Hfin="+Hfin+"&codTurno="+codTurno+"&codCurso="+codCurso+"&codDocente="+codDocente+'&periodo='+periodo+'&codGru='+codigaGrupoHorario+'&codClase='+codClase);
				$.ajax({
					type: 'POST',
					url: '../ServletHorario?Accion=registrarAsigCurDoceHorarioGeneral2',
					data: "codAula=" + codaula +
						"&bloq=" + bloq +
						"&dia=" + dia +
						"&Hini=" + Hini +
						"&Hfin=" + Hfin +
						"&codTurno=" + codTurno +
						"&codCurso=" + codCurso +
						"&codDocente=" + codigoDocente +
						'&periodo=' + periodo +
						'&codGru=' + codigaGrupoHorario +
						'&codClase=' + codClase +
						'&grupoAulas=' + grupoAulas +
						'&historial=' + historial +
						'&motivoCambio=' + (json.motivoCambio || '') +
						'&observacion=' + (json.observacion || '') +
						'&condicionTrabajador=' + (json.condicionTrabajador || '') +
						'&horaAviso=' + (json.horaAviso || '') +
						'&recuperacion=' + (json.recuperacion || ''),
					success: function (resultado) {
						if (resultado == 1) {
							popup_exito(codigaGrupoHorario, codaula, bloq, dia, Hini, Hfin, Turno, contGeneral);
						} else if (resultado == 3) {
							verCruce(codigaGrupoHorario, codigoDocente, dia, Hini, Hfin, periodo);
						} else {
							alert("ocurrió un error");
						}

					}, complete: function () {

					}
				});
			}

			function verCruce(codigaGrupoHorario, codDocente, dia, Hini, Hfin, periodo) {
				$.ajax({
					type: 'POST',
					url: '../ServletHorario?Accion=verCruceIndividual',
					data: 'codDocente=' + codDocente + '&dia=' + dia + '&Hini=' + Hini + '&Hfin=' + Hfin + '&periodo=' + periodo,
					success: function (resultado) {
						$('#listadoCruce').html(resultado);
					}, complete: function () {
						$("#listadoCruce").fadeIn();
						//$(document).tooltip();
					}
				});
			}

			function verCruceMasivo(codigaGrupoHorario, codDocente, dia, Hini, Hfin, periodo) {
				$.ajax({
					type: 'POST',
					url: '../ServletHorario?Accion=verCruceMasivo',
					data: 'codDocente=' + codDocente + '&dia=' + dia + '&Hini=' + Hini + '&Hfin=' + Hfin + '&periodo=' + periodo,
					success: function (resultado) {
						$('#listadoCruce').html(resultado);
					}, complete: function () {
						$("#listadoCruce").fadeIn();
						//$(document).tooltip();
					}
				});
			}

			function popup_exito(codigaGrupoHorario, codaula, posBlo, dia, Hor_ini, Hor_fin, turno, contGeneral) {
				asignarHorarioCursoIndividual(codigaGrupoHorario, codaula, posBlo, dia, Hor_ini, Hor_fin, turno, contGeneral);
				$("#dialog-armar2").dialog("close");
				$("#dialog-noti2").removeClass('hide').dialog({
					resizable: false,
					modal: true,
					title: "<div class='widget-color-green' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-tags white'></i> <span class='white'>Notificación</span></h4></div></div>",
					title_html: true,
					buttons: [
						{
							html: "<i class='ace-icon fa fa-check bigger-110'></i>&nbsp; ACEPTAR",
							"class": "btn btn-success btn-xs",
							click: function () {
								//asignarHorarioCursoIndividual(codaula,posBlo,dia,Hor_ini,Hor_fin,turno,contGeneral);
								armarHorarioGeneral();
								$(this).dialog("close");
							}
						}
					]
				});
			}

			function popup_exito_masivo(codigaGrupoHorario, codaula, bloq, dia, Hini, Hfin, Turno, contGeneral) {
				//asignarHorarioCurso(codaula,bloq,dia,Hini,Hfin,Turno,contGeneral);
				$("#dialog-armar2").dialog("close");
				$("#dialog-noti2").removeClass('hide').dialog({
					resizable: false,
					modal: true,
					title: "<div class='widget-color-green' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-tags white'></i> <span class='white'>Notificación</span></h4></div></div>",
					title_html: true,
					buttons: [
						{
							html: "<i class='ace-icon fa fa-check bigger-110'></i>&nbsp; ACEPTAR",
							"class": "btn btn-success btn-xs",
							click: function () {
								//asignarHorarioCurso(codaula,bloq,dia,Hini,Hfin,Turno,contGeneral);
								armarHorarioGeneral();
								$(this).dialog("close");
							}
						}
					]
				});
			}


			function asignarHorarioCurso(codaula, posBlo, dia, Hor_ini, Hor_fin, turno, contGeneral) {
				var cantidad = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_cantidad():""%>";
				var codAulas = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_codAulas():""%>";
				var cadenaHorasIni = $("#cadenaHorasIni").val();
				var cadenaHorasFin = $("#cadenaHorasFin").val();
				//alert("codaula: "+codaula+"\n posBlo: "+posBlo+"\n dia: "+dia+"\n Hor_ini: "+Hor_ini+"\n Hor_fin: "+Hor_fin+"\n turno: "+turno+"\n contGeneral: "+contGeneral);

				var cant = 0;
				cant = parseInt(cantidad);
				var PosGeneral = 0;
				PosGeneral = parseInt(contGeneral);

				var cadenaPosGeneral = "";

				//----------- POSICION GENERAL -------INI------
				for (i = 1; i <= cant; i++) {
					if (PosGeneral == cant) {
						if (cadenaPosGeneral == "") {
							cadenaPosGeneral = PosGeneral;
						} else {
							cadenaPosGeneral = cadenaPosGeneral + "#" + PosGeneral;
						}
						PosGeneral = parseInt(PosGeneral) - (parseInt(PosGeneral) - 1);
					} else {
						if (i == cant) {
							cadenaPosGeneral = cadenaPosGeneral + "#" + PosGeneral;
							PosGeneral = parseInt(PosGeneral) - (parseInt(PosGeneral) - 1);

						} else {

							if (cadenaPosGeneral == "") {
								cadenaPosGeneral = PosGeneral;
							} else {
								cadenaPosGeneral = cadenaPosGeneral + "#" + PosGeneral;
							}
							PosGeneral = parseInt(PosGeneral) + 1;
						}
					}
				}

				//----------- POSICION GENERAL -----FIN--------

				//alert(cadenaPosGeneral);


				//----------- POSICION DE BLOQUE -------INI------
				var cadenaPosBloques = "";
				var PosBloques = 0;
				PosBloques = parseInt(posBlo);

				for (i = 1; i <= cant; i++) {
					if (PosBloques == cant) {
						if (cadenaPosBloques == "") {
							cadenaPosBloques = PosBloques;
						} else {
							cadenaPosBloques = cadenaPosBloques + "#" + PosBloques;
						}
						PosBloques = parseInt(PosBloques) - (parseInt(PosBloques) - 1);
					} else {
						if (i == cant) {
							cadenaPosBloques = cadenaPosBloques + "#" + PosBloques;
							PosBloques = parseInt(PosBloques) - (parseInt(PosBloques) - 1);

						} else {

							if (cadenaPosBloques == "") {
								cadenaPosBloques = PosBloques;
							} else {
								cadenaPosBloques = cadenaPosBloques + "#" + PosBloques;
							}
							PosBloques = parseInt(PosBloques) + 1;
						}
					}
				}

				//----------- POSICION DE BLOQUE -----FIN--------


				var arrayGeneral = cadenaPosGeneral.split("#");
				var arrayBloques = cadenaPosBloques.split("#");
				var arrayAulas = codAulas.split("#");
				var arrayHorasIni = cadenaHorasIni.split("#");
				var arrayHorasFin = cadenaHorasFin.split("#");




				var curso = $("#cmbCurso option:selected").text();
				var docente = $("#cmbDocDisp option:selected").text();

				var posicionGlobal = 0;
				var posicionBloGlobal = 0;
				for (i = 0; i < cant; i++) {
					posicionGlobal = arrayGeneral[i] - 1;
					posicionBloGlobal = arrayBloques[i] - 1;
					$("#curso_" + arrayGeneral[i] + "_" + arrayBloques[i] + "_" + dia).html("<span style='color:black;'><b>" + curso + "</b><br>" + docente + "</span>");
				}


			}

			function asignarHorarioCursoIndividual(codigaGrupoHorario, codaula, posBlo, dia, Hor_ini, Hor_fin, turno, contGeneral) {
				//alert("codaula: "+codaula+"\n posBlo: "+posBlo+"\n dia: "+dia+"\n Hor_ini: "+Hor_ini+"\n Hor_fin: "+Hor_fin+"\n turno: "+turno+"\n contGeneral: "+contGeneral);

				var curso = $("#cmbCurso option:selected").text();
				var docente = $("#cmbDocDisp option:selected").text();
				$("#curso_" + contGeneral + "_" + posBlo + "_" + dia).html("<span style='color:black;'><b>" + curso + "</b><br>" + docente + "</span>");
			}

			function eliminarMasivo(codAula, codDoc, codCur) {
				var codAulas = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_codAulas():""%>";
				$("#dialog-eliminarM").removeClass('hide').dialog({
					resizable: false,
					modal: true,
					title: "<div class='widget-color-blue' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-check-circle white'></i> <span class='white'>Conformidad</span></h4></div></div>",
					title_html: true,
					buttons: [
						{
							html: "<i class='ace-icon fa fa-check bigger-110'></i>&nbsp; SI",
							"class": "btn btn-primary btn-xs",
							click: function () {
								eliminarHCD_Masivo(codAulas, codDoc, codCur);
								$(this).dialog("close");
							}
						}, {
							html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; NO",
							"class": "btn btn-danger btn-xs",
							click: function () {
								$(this).dialog("close");
							}
						}
					]
				});
			}

			function eliminarHCD_Masivo(codAulas, codDoc, codCur) {
				var periodo = "<%=periodo!=null?periodo.getCodigoPeriodo():""%>";
				//alert(codAulas+"\n"+codDoc+"\n"+codCur);
				$.ajax({
					type: 'POST',
					url: '../ServletHorario?Accion=EliminarHorarioCursoMasivo',
					data: 'codAulas=' + codAulas + '&codCur=' + codCur + '&periodo=' + periodo,
					success: function (resultado) {
						//alert(resultado);
					}, complete: function () {
						armarHorarioGeneral();
					}
				});
			}

			function eliminar(codHorarioCursoDocente) {
				$("#dialog-eliminar").removeClass('hide').dialog({
					resizable: false,
					modal: true,
					title: "<div class='widget-color-blue' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-check-circle white'></i> <span class='white'>Conformidad</span></h4></div></div>",
					title_html: true,
					buttons: [
						{
							html: "<i class='ace-icon fa fa-check bigger-110'></i>&nbsp; SI",
							"class": "btn btn-primary btn-xs",
							click: function () {
								eliminarHCD(codHorarioCursoDocente);
								$(this).dialog("close");
							}
						}, {
							html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; NO",
							"class": "btn btn-danger btn-xs",
							click: function () {
								$(this).dialog("close");
							}
						}
					]
				});
			}

			function eliminarHCD(codHorarioCursoDocente) {
				$.ajax({
					type: 'POST',
					url: '../ServletHorario?Accion=EliminarHorarioCurso',
					data: 'codHorarioCursoDocente=' + codHorarioCursoDocente,
					success: function (resultado) {

					}, complete: function () {
						armarHorarioGeneral();
					}
				});
			}


			function editar(codaula, posBlo, dia, Hor_ini, Hor_fin, codigo, contGeneral, codigoDocente, codigoCurso, clase, historial) {
				// function editar(codaula,posBlo,dia,Hor_ini,Hor_fin,turno,contGeneral,codigoDocente,codigoCurso,clase){                 
//                            armarAsignacionCursoEdit(0,posBlo,dia,Hor_ini,Hor_fin,codigo,codaula,contGeneral,codigoDocente,codigoCurso,clase);    
				cargarDocentesDisponiblesGeneral3TablaTemporal(0, codaula, posBlo, dia, Hor_ini, Hor_fin, codigo, contGeneral, codigoDocente, codigoCurso, clase, historial);
			}

			function cambioDia(codaula, posBlo, dia, Hor_ini, Hor_fin, codigo, contGeneral, codigoDocente, codigoCurso, clase, historial) {
				// function editar(codaula,posBlo,dia,Hor_ini,Hor_fin,turno,contGeneral,codigoDocente,codigoCurso,clase){                 
//                            armarAsignacionCursoEdit(0,posBlo,dia,Hor_ini,Hor_fin,codigo,codaula,contGeneral,codigoDocente,codigoCurso,clase);    
				cargarDocentesDisponiblesGeneral3TablaTemporal(0, codaula, posBlo, dia, Hor_ini, Hor_fin, codigo, contGeneral, codigoDocente, codigoCurso, clase, historial);
			}

			function cambioFijo(codaula, posBlo, dia, Hor_ini, Hor_fin, codigo, contGeneral, codigoDocente, codigoCurso, clase, historial) {
				// function editar(codaula,posBlo,dia,Hor_ini,Hor_fin,turno,contGeneral,codigoDocente,codigoCurso,clase){                 
//                            armarAsignacionCursoEdit(0,posBlo,dia,Hor_ini,Hor_fin,codigo,codaula,contGeneral,codigoDocente,codigoCurso,clase);    
				cargarDocentesDisponiblesGeneral3TablaTemporal(0, codaula, posBlo, dia, Hor_ini, Hor_fin, codigo, contGeneral, codigoDocente, codigoCurso, clase, historial);
			}

			function cargarDocentesDisponiblesGeneral3TablaTemporal(opcion, codaula, posBlo, dia, Hor_ini, Hor_fin, codigo, contGeneral, codigoDocente, codigoCurso, clase, historial) {
				$("#Hini").val(Hor_ini);
				$("#Hfin").val(Hor_fin);
				var dato = verificarTurno(Hor_ini, Hor_fin);
				var Turno = dato;
				var periodo = "<%=periodo!=null?periodo.getCodigoPeriodo():""%>";
				$.ajax({
					type: 'POST',
//                                    url:'../ServletDocente?Accion=cargarDocentesDisponiblesGeneral2',
					url: '../ServletDocente?Accion=cargarDocentesDisponiblesGeneral3',
					data: 'codTurno=' + Turno + '&dia=' + dia + '&codCurso=' + codigoCurso + '&periodo=' + periodo + '&opcion=' + opcion + '&codaula=' + codaula,
					success: function (resultado) {
						armarAsignacionCursoEdit(0, posBlo, dia, Hor_ini, Hor_fin, codigo, codaula, contGeneral, codigoDocente, codigoCurso, clase, historial);
					}, complete: function () {
//                                        $("#formulario1").dialog( "close" );
					}
				});
			}

			function armarAsignacionCursoEdit(opcion, bloq, dia, Hini, Hfin, codigo, codaula, contGeneral, codigoDocente, codigoCurso, clase, historial) {
				var periodo = "<%=periodo!=null?periodo.getCodigoPeriodo():""%>";
				var codigo = "<%=armandoHorario!=null?armandoHorario.getArmarHoraio_codigo():""%>";
				var dato = verificarTurno(Hini, Hfin);
				var Turno = dato;
				var editar = "1";
				var cadenaAulas = $("#cadenaAulasHorario").val();
				$.ajax({
					type: 'POST',
//                                    url:'../ServletHorario?Accion=armarAsignacionCursoDocGeneralEdit2',
//                                    url:'../ServletHorario?Accion=armarAsignacionCursoDocGeneralEdit3',
					url: '../ServletHorario?Accion=armarAsignacionCursoDocGeneralEdit4',
					data: 'bloq=' + bloq + '&dia=' + dia + '&Turno=' + Turno + '&Hini=' + Hini + '&Hfin=' + Hfin + '&opcion=' + opcion + '&codigoDocente=' + codigoDocente + '&codigoCurso=' + codigoCurso + '&periodo=' + periodo + '&clase=' + clase + '&cadenaAulas=' + cadenaAulas,
					success: function (resultado) {
						$('#divRegistroCursoDocente').html(resultado);
						let formCambio = ''
						if (historial == 'cambioFijo') {
							formCambio = `<div class="col-sm-4">
																						<div class="form-group">
																								<b>Motivo del cambio:</b>
																								<textarea class="form-control" id="txtMotivoCambio"></textarea>
																						</div>
																				</div>                                            
																				<div class="col-sm-4">
																						<div class="form-group">
																								<b>Observacion:</b>
																								<textarea class="form-control" id="txtObservacion"></textarea>
																						</div>
																				</div>                                            
																				<div class="col-sm-4">
																						<div class="form-group">
																								<b>Condicion del trabajador:</b>
																								<select class="form-control" id="cbCondicionTrabajador">
																										<option>Por horas</option>
																										<option>Por contrato</option>
																								</select>
																						</div>
																				</div>       `
						} else if (historial == 'cambioDia') {
							formCambio = `<div class="col-sm-3">
																						<div class="form-group">
																								<b>Motivo del cambio:</b>
																								<textarea class="form-control" id="txtMotivoCambio"></textarea>
																						</div>
																				</div>                                            
																				<div class="col-sm-3">
																						<div class="form-group">
																								<b>Observacion:</b>
																								<textarea class="form-control" id="txtObservacion"></textarea>
																						</div>
																				</div>                                            
																				<div class="col-sm-3">
																						<div class="form-group">
																								<b>Hora y fecha del aviso:</b>
																								<input class="form-control input-mask-time center" id="txtHoraAviso">
																						</div>
																				</div>       
																				<div class="col-sm-3">
																						<div class="form-group center">
																								<b>¿Se programa recuperacion?</b>
																								<br><br>
																								<div class='col-sm-6'>
																										<label>
																												<input type="radio" name="recuperacion" value="SI">&zwj; Si
																										</label>
																								</div>
																								<div class='col-sm-6'>
																										<label>
																												<input type="radio" name="recuperacion" value="NO">&zwj; No
																										</label>
																								</div>
																						</div>
																				</div>       
																				`
						}
						$('#divFormularioCambio').html(formCambio)
						$.mask.definitions['~'] = '[+-]';
						$('.input-mask-time').mask('99:99 99/99/9999');
					}, complete: function () {
						$("#listadoCruce").fadeOut();
						//cargarCursoArea(opcion,bloq,dia);
						alerta2(bloq, dia, Hini, Hfin, Turno, codigo, codaula, contGeneral, opcion, editar, historial);
					}
				});
			}

			function regresar() {
				window.location = "gen_hor_gen.jsp";
			}

			function EliminarTodoAula(codAula, periodo) {
				$("#dialog-eliminarTodo").removeClass('hide').dialog({
					resizable: false,
					modal: true,
					title: "<div class='widget-color-blue' ><div class='widget-header white' ><h4 class='smaller' ><i class='ace-icon fa fa-check-circle white'></i> <span class='white'>Conformidad</span></h4></div></div>",
					title_html: true,
					buttons: [
						{
							html: "<i class='ace-icon fa fa-check bigger-110'></i>&nbsp; SI",
							"class": "btn btn-primary btn-xs",
							click: function () {
								EliminarTAula(codAula, periodo);
								$(this).dialog("close");
							}
						}, {
							html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; NO",
							"class": "btn btn-danger btn-xs",
							click: function () {
								$(this).dialog("close");
							}
						}
					]
				});
			}

			function EliminarTAula(codAula, periodo) {
				$.ajax({
					type: 'POST',
					url: '../ServletHorario?Accion=eliminarHorarioTodoAula',
					data: 'codAula=' + codAula + '&periodo=' + periodo,
					success: function (resultado) {

					}, complete: function () {
						armarHorarioGeneral();
					}
				});
			}

		</script>


		<!-- the following scripts are used in demo only for onpage help and you don't need them -->

		<link rel="stylesheet" href="../assets/css/ace.onpage-help.css" />
		<link rel="stylesheet" href="../docs/assets/js/themes/sunburst.css" />

		<script type="text/javascript"> ace.vars['base'] = '..';</script>
		<script src="../assets/js/ace/elements.onpage-help.js"></script>
		<script src="../assets/js/ace/ace.onpage-help.js"></script>
		<script src="../docs/assets/js/rainbow.js"></script>
		<script src="../docs/assets/js/language/generic.js"></script>
		<script src="../docs/assets/js/language/html.js"></script>
		<script src="../docs/assets/js/language/css.js"></script>
		<script src="../docs/assets/js/language/javascript.js"></script>



		<script src="js/languages/jquery.validationEngine-es.js" type="text/javascript" charset="utf-8"></script>
		<script src="js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script>

		<!--<script src="style/jquery.kolorpicker.js" type="text/javascript"></script>
		<link rel="stylesheet" href="style/kolorpicker.css" type="text/css" media="screen, tv, projection, print" />
		-->

		<script type="text/javascript" language="javascript" src="js/colorPicker.js"></script>
		<link rel="stylesheet" href="css/colorPicker.css" type="text/css"/>

</html>