﻿
var prefijo= "";

function inicializa()
    {
        var ren = document.getElementById("trFecha") ;
        ren.style.display = "none"; 
        ren = document.getElementById("trHorario") ;
        ren.style.display = "none";     
       
    }




function seleccionarTramite()
{
    
    var cb_Tramite = document.getElementById(prefijo+'cbTramite');
    if (cb_Tramite.selectedIndex > 0 )
    {
        var cb_Oficina = document.getElementById(prefijo+'cbOficina');
        var tabla = RegistrarCita.obtenerOficinas(cb_Tramite.options[cb_Tramite.selectedIndex].value).value;
        cb_Oficina.length=0;
        var newOption = new Option("----------------------",-1) ; 
         cb_Oficina.options[0]= newOption;
        for (x=0;x<=tabla.Rows.length-1;x++)
        {
            var newOption = new Option(tabla.Rows[x]["descripcion"].toString() , tabla.Rows[x]["oficina"] ) ; 
         cb_Oficina.options[x+1]= newOption;
        }
        inicializa(); 
   }
 }


 
function seleccionarOficina()
{
    
    var cb_Oficina = document.getElementById(prefijo+'cbOficina');
    var cb_Fecha =  document.getElementById(prefijo+'cbFecha');
    if (cb_Oficina.length > 1 ) 
    {
        if ( cb_Oficina.selectedIndex > 0 ) 
        {
            var tabla = RegistrarCita.obtenerMeses( cb_Oficina.options[cb_Oficina.selectedIndex].value ).value;
            cb_Fecha.length=0;
            for (x=0;x<=tabla.Rows.length-1;x++)
            {
                var mes = Mes_Letra[ tabla.Rows[x]["mes"] -1 ]; 
                var newOption = new Option( mes+ "/" + tabla.Rows[x]["año"]  , tabla.Rows[x]["mes"]+"/"+ tabla.Rows[x]["año"]) ; 
                cb_Fecha.options[x]= newOption;
            }
            muestraCalendario(cb_Fecha.options[0].value) 
            var ren = document.getElementById("trFecha") ;
            ren.style.display = "";
       }
       else
       {
           var ren = document.getElementById("trFecha") ;
           ren.style.display = "none"; 
       }
    }
    else
    {
        cb_Fecha.length=0;
    }
    
         
    
 }
 

function muestraCalendario(mesanio)
{
    var cadena =  String(mesanio);
    var strmes = cadena.substring(0, cadena.indexOf ("/"));
    var stranio= cadena.substring( cadena.indexOf ("/")+1, cadena.length);
    creaCalendario( parseInt(strmes),parseInt(stranio),prefijo,'divCalendario');
    marcarInhabiles(parseInt(strmes),parseInt(stranio))
    marcarDisponibilidad (parseInt(strmes),parseInt(stranio));
    
}


 function seleccionarMes()
 {
   var cb_Fecha = document.getElementById(prefijo+'cbFecha');
    if (cb_Fecha != null ) 
    {
        muestraCalendario(cb_Fecha.options[cb_Fecha.selectedIndex ].value);
        ren = document.getElementById("trHorario") ;
        ren.style.display = "none";   
        
    }
 }
 
 


function seleccionarDia(columna)
{
    
    var fecha = columna.getAttribute("fecha");
    dtMaster = RegistrarCita.obtenerHorarios(fecha).value;
    var res = RegistrarCita.filtrarHoras(dtMaster).value;  
        var tablaD = document.getElementById("tablaHorarios");
    if (tablaD ==null ) 
    {
     tablaD = document.createElement("table");
     tablaD.id = "tablaHorarios";
     var elment = document.getElementById("panHorario");
     elment.appendChild(tablaD);  
    } 
    else 
    {
     while ( document.getElementById("tablaHorarios").rows.length > 0 )
        {
            document.getElementById("tablaHorarios").deleteRow( 0);
        }
    }
	
	//LLENA  LA TABLA CON EL DATATABLE
	for (x=0;x<= res.Rows.length-1;x++)
	{
    	var row = tablaD.insertRow(-1);
    	var cell1 = row.insertCell(0);
	    var cell2 = row.insertCell(1);
	    var cell3 = row.insertCell(2);
	    cell1.innerHTML = res.Rows[x]["hora"].toString()+ " Hrs." ;
	    if ( parseFloat ( res.Rows[x]["pctDisponible"].toString()) == 0  )
	     { cell3.className = "celda_saturada";
	     	     }
	    else 
	      if ( parseFloat ( res.Rows[x]["pctDisponible"].toString()) <= 0.5 )
	     { cell3.className = "celda_semi";
	     }
	      else 
	        {	   
	        
	         cell3.className = "celda_disponible";
	         
	        }
        
        cell3.width = 50;
	    cell3.border = 1 ;
	    cell2.width = 2;
	    cell2.border = 1 ;
	    cell3.id = "tr" + x + "td3"
	    cell3.innerHTML = res.Rows[x]["hora"].toString() + " Hrs.";
	    var atributo = document.createAttribute("hora");
	    atributo.value = res.Rows[x]["hora"].toString();
	    cell3.setAttributeNode(atributo);
	    
	    atributo = document.createAttribute("pctDisponible");
	    atributo.value = res.Rows[x]["pctDisponible"].toString();
	    cell3.setAttributeNode(atributo);
	    cell3.onclick =  function (e) { filtrarHora(this); };
	    
	  }
	  
	  //LIMPIAR Y EJECUTAR EL COMBO DE FECHA 
      var cb_Hora = document.getElementById(prefijo+'cbHora');
      cb_Hora.length=0;
      
       var ren = document.getElementById("trHorario") ;
       ren.style.display = ""; 
       ren = document.getElementById("trFecha") ;
       ren.style.display = "none"; 
      // MOSTRAR LA LEYENDA DE LA FECHA 
       var divLeyenda = document.getElementById("divLeyendaHora"); 
       if (divLeyenda != null ) 
         divLeyenda.innerHTML = "Horarios disponibles para el " +strFecha(fecha) ;  
    }


function filtrarHora ( e) 
{
  if ( parseFloat(e.getAttribute("pctDisponible")) == 0 )
   {
    alert("Ya no hay citas disponibles para este hora. Favor de selccionar otra hora o día");
   }
  else
  {
    //alert( e.getAttribute("hora") ) ;
    var dtHoras =RegistrarCita.filtrarHora( e.getAttribute("hora"), dtMaster).value; 
    var cb_Hora = document.getElementById(prefijo+'cbHora');
    cb_Hora.length=0;
        
        for (x=0;x<=dtHoras.Rows.length-1;x++)
        {
           var newOption = new Option(dtHoras.Rows[x]["inicio"].toString()   , dtHoras.Rows[x]["inicio"] ) ; 
            cb_Hora.options[x]= newOption;
        }
   }
}


function seleccionarHorario()
{
    var cbHora= document.getElementById(prefijo+'cbHora');
    if ((cbHora.length == 0) || (cbHora.options[cbHora.selectedIndex].value == "" ) )
    {
        alert("Debe seleccionar uno de los horarios para la cita");
     }
     else
     {
         //abrirNuevaPagina();
         var estiloEx='height=210px,width=580px,scrolling=0,resize=0';
         var Pagina = "CapturaCita.aspx" + "?inicio=" + cbHora.options[cbHora.selectedIndex].value ;  
         var ventana=dhtmlwindow.open('vCaptura', 'iframe', Pagina, 'Captura de Cita' , estiloEx )
	    if(! ventana)
	    { 
	        alert('Desactive el bloqueador de ventanas emergentes del navegador  para poder ver todas las opciones del sitio.\n Para mayor informacion revise la seccion de Preguntas Frecuentes'); 
	        ventana = null; 
	    }
        else
	    {
    	    ventana.show();
	    	ventana.focus();
	  
		    ventana.moveTo(50,20);
	    }
     }

}


function marcarInhabiles(mes, anio)
{
    var dtDias = RegistrarCita.obtenerDiasInhabiles(mes,anio).value;
    if ( dtDias.Rows.length > 0 )
      for (var x= 0 ; x<= dtDias.Rows.length -1 ; x++)
        {
            marcarDia(dtDias.Rows[x]["dia"], dtDias.Rows[x]["mes"],dtDias.Rows[x]["anio"] , prefijo,"inhabil" );
        }
}


function marcarDisponibilidad(mes, anio)
{
    var dtDias = RegistrarCita.obtenerDisponibilidadDias(mes,anio).value;
    if ( dtDias != null )
      for (var x= 0 ; x<= dtDias.Rows.length -1 ; x++)
        {
            marcarDia(dtDias.Rows[x]["dia"], dtDias.Rows[x]["mes"],dtDias.Rows[x]["anio"] , prefijo,dtDias.Rows[x]["categoria"] );
        }
}





// FUNCION PARA EL CALENDARIO 

function diaSeleccinado( columna_) 
{
  var clase =  columna_.className; 
  switch (clase )
  {
    case "dia_saturado":    alert("El dia esta saturado, por favor seleccione otro dia");
                            break;
    case "dia_disponible"  :  seleccionarDia( columna_ );
                            break;
    case "dia_semi"       :   seleccionarDia( columna_ );
                            break;            
                          
  }
}


function cancelarSeleccion()
{
    var ren = document.getElementById("trFecha") ;
        ren.style.display = ""; 
        ren = document.getElementById("trHorario") ;
        ren.style.display = "none";   
}



function formatarFecha (d )
{
  return d.getDate() + "/" + ( d.getMonth()+1) + "/"  + d.getFullYear() ; 
}

function strFecha (fecha_ ) 
{
    var array_fecha = fecha_.split("/") 
    var mes =  parseInt( array_fecha[1]);
    
    return  array_fecha[0] + " de " + Mes_Letra[mes-1] + " del " + array_fecha[2] ; 
}
