<?php
declare(strict_types=0);
// graphemica.com
// php 8.0 inicializar variables
if(!array_key_exists("oscreen",$_SESSION)){$_SESSION['oscreen']='';}
if(!isset($zxml)){$zxml='';}



$inputtag='input';
$zstyle='height:1.2em;';

if(!empty($ztype))
if(mb_stristr('date.month.week',$ztype)){$zstyle.='font-size:0.9em;';}


// if($zfecha1<date('Y-m-d',strtotime('-12 month'))){$zfecha1=date('Y-m-d',strtotime('-12 month'); $zfecha2=date('Y-m-d'); }


if(empty($zhora_inco))
{
     $zhora1='00:00';     
     $zhora2='24:00';     
     $zmin_fra=60*24;
}
// if(!mb_stristr('date.month.week',$ztype)){$zstyle.='padding:0px;';}
// $zstyle.='padding:0px;';

// $zstyle='height:1.1em;';

$domg = new DOMDocument();
     $domg->encoding = 'utf-8';
     $domg->xmlVersion = '1.0';
     $domg->formatOutput = true;
$ele=$domg;

$ttbl='table';
$trow='tr';
$tcol='td';
$name='Calendario';


$root=$domg->appendChild($domg->createElement($name));

$tgrid=$domg->appendChild($domg->createElement('table'));
     $tgrid->setAttribute('border','1');
     $tgrid->setAttribute('width','99%');

$colg=$tgrid->appendChild($domg->createElement('colgroup'));
$headg=$tgrid->appendChild($domg->createElement('thead'));
$bodyg=$tgrid->appendChild($domg->createElement('tbody'));
$footg=$tgrid->appendChild($domg->createElement('tfoot'));

$lsema=0;
$lmes=0;

if(!empty($zheadtext))
{
     $xstyle="background-color:navy; color:white; border-top:2px solid;border-bottom:2px solid;z-index:99999999; top:0px; ";     
     $rowh=$headg->appendChild($domg->createElement('tr'));
          $rowh->setAttribute("style",$xstyle);
          $colh=$rowh->appendChild($domg->createElement('th',$zheadtext));
               $colh->setAttribute("colspan","99");
               $colh->setAttribute("style","letter-spacing:5pt;");
//                     $colh->appendChild($domg->createElement("div",$zheadtext));
}

if(!empty($zfoottext1))
{
     $xstyle="background-color:cyan; color:; border-top:2px solid;border-bottom:2px solid;z-index:99999999; bottom:10px; ";
     $rowh=$footg->appendChild($domg->createElement('tr'));
          $rowh->setAttribute("style",$xstyle);
          $rowh->setAttribute("sticky","");
          $colh=$rowh->appendChild($domg->createElement('th',''));
               $colh->setAttribute("colspan","99");
                    $div=$colh->appendChild($domg->createElement("div",$zfoottext1));
                    $div->setAttribute("float-l","");
}

if($ztipo=='sema')
{
     $zfecha=date('Y-m-01',strtotime($zfecha1));
     $zfecha=get_1lunfecha($zfecha);
//      $z1lun=get_1lunfecha($zfecha);
     $xanio=date('Y',strtotime($zfecha));
     
     $colg->appendChild($domg->createElement('col'));
     for($idx=1; $idx<=(1+7); $idx++)
     {
          $col=$colg->appendChild($domg->createElement('col')); 
          if($idx>=6)
          {$col->setAttribute('style','border:2px solid ;');}

     }
     
//      $xstyle="background-color:silver;border-top:2px solid;border-bottom:2px solid;z-index:99999999; top:0px;";
     $xstyle="background-color:navy; color:white; border-top:2px solid;border-bottom:2px solid;z-index:99999999; top:0px;";
     if(empty($prnt))
     {$xstyle.='top:100px;';}
     $headg->setAttribute("style",$xstyle);
     $headg->setAttribute("sticky",'');

// @media print{tr {page-break-inside: avoid;}} 
     
     $rowh=$headg->appendChild($domg->createElement('tr'));
          
          $colh=$rowh->appendChild($domg->createElement('th'));
               $colh->appendChild($domg->createElement("div",$xanio));
     for($idx=0; $idx<=6; $idx++)
     {
          $nom_dia=strftime('%A',strtotime($zfecha.' +'.$idx.' days'));
          $nom_dia=ucwords($nom_dia);
               $colh=$rowh->appendChild($domg->createElement('th'));
          $colh->appendChild($domg->createElement("div",$nom_dia));
     }

     while($zfecha<=$zfecha2)
     {
          $sema=date('W',strtotime($zfecha));
          $mes=date('m',strtotime($zfecha));

          $rowb=$bodyg->appendChild($domg->createElement('tr'));
//                $rowb->setAttribute("class","pbb-a");
               $rowb->setAttribute("pbb-alw","");
          
          $colb=$rowb->appendChild($domg->createElement('th'));
               $colb->appendChild($domg->createElement("div",$sema));

          
          
          $a_horas=array();
          
          $idx=0;
          for($idx=substr($zhora1,0,2)*60; $idx<=(substr($zhora2,0,2)*60)-1; $idx+=$zmin_fra)
          {
               $minu=str_pad(($idx % 60),2,'0', STR_PAD_LEFT);
               $zhora=str_pad(intdiv($idx,60),2,0, STR_PAD_LEFT);
               $zhora.=':'.$minu;
               $a_horas[$idx++]=$zhora;
          }
          
          $idx=0;
//           echo '===='.$zhora_inco;
          if($zhora_inco==1)
          {
               $sql_docu='select * from docu0 where docu_codigo like "'.$zevento.'%"';
               $res_docu=msql_query($sql_docu,$link_data);
               $tabla=msql_result($res_docu,0,'docu_tabla');
               $tabla1=$tabla.'1';
               
               $sql_horas='select distinct hora from '.$tabla1.' ';
               $sql_horas.='where ifnull(status,"")not in("O","X") ';
               $sql_horas.='and docu like "'.$zevento.'%" ';
               $sql_horas.='and fecha>="'.get_1lunfecha($zfecha).'" and fecha<="'.date('Y-m-d',strtotime($zfecha.'+6 days')).'" ';
               $sql_horas.='order by hora ';
               $res_horas=msql_query($sql_horas,$link_data);
               
               while($aso_horas=msql_fetch_assoc($res_horas))
               {$a_horas[$idx++]=$aso_horas['hora'];}
          }
          
          
          for($idx=0; $idx<=6; $idx++)
          {
                    $ndia=date('j',strtotime($zfecha));
                    $zfechax=date('M d',strtotime($zfecha));
//                     $zfechax=date('l d',strtotime($zfecha));
                    $dia_fec=strftime('%B',strtotime($zfecha));
                    $dia_fec=ucwords($dia_fec);
                    $dia_fec=substr($dia_fec,0,3);
                    $dia_fec.=' '.date('d',strtotime($zfecha));
               
               
                    $colb=$rowb->appendChild($domg->createElement('th'));
//                          $colb->setAttribute("pba-avo","");
                         $colb->setAttribute('align','center');
                         $colb->appendChild($domg->createElement("div",$dia_fec));

                    $xstyle='';
                    $xstyle.="background-color:LightCyan; top:20px;";
                    if(empty($prnt))
                    {$xstyle.='top:120px;';}
                    if($ndia==1)
                    {$xstyle.='border-top:solid 3px;';}
//                     if($idx>=5)
//                     {$xstyle.='border:3px solid pink;';}
                    $rowb->setAttribute("style",$xstyle);
                    $rowb->setAttribute("sticky",'');

                    $zfecha=date('Y-m-d', strtotime($zfecha.' +1 day'));
          }
          
//           for($idx=substr($zhora1,0,2)*60; $idx<=(substr($zhora2,0,2)*60)-1; $idx+=$zmin_fra)
//           {
//                $minu=str_pad(($idx % 60),2,'0', STR_PAD_LEFT);
//                $zhora=str_pad(intdiv($idx,60),2,0, STR_PAD_LEFT);
//                $zhora.=':'.$minu;

          for($idx=0; $idx<count($a_horas); $idx++) 
          {
               $zhora=$a_horas[$idx];               
               
               $rowb=$bodyg->appendChild($domg->createElement('tr'));
                    $rowb->setAttribute('id',$zhora);
                    $rowb->setAttribute('valign-t','');
                    $rowb->setAttribute('class',$zhora);
               $colb=$rowb->appendChild($domg->createElement('td'));
                    $colb->setAttribute('sticky-left',"");
                    $colb->setAttribute('align','center');
                    $colb->appendChild($domg->createElement("div",uni_clock($zhora).''.$zhora));

               $zfecha=date('Y-m-d', strtotime($zfecha.' -7 day'));

               for($idx2=0; $idx2<=6; $idx2++)
               {
                    $colb=$rowb->appendChild($domg->createElement('td'));
                         $colb->setAttribute('align','center');
                         $colb->appendChild($domg->createElement("div"));
                         $zdomX=$domg;
                         $zeleX=$colb;
                         $zobj=3;
                         include('ele_evento.php');
                         $zfecha=date('Y-m-d', strtotime($zfecha.' +1 day'));
               }
          }

     }

}

if($ztipo=='dia')
{
     $zfecha=$zfecha1;
     $colg->appendChild($domg->createElement('col'));

     
     
     
          $a_horas=array();
     
          $idx=0;
          for($idx=substr($zhora1,0,2)*60; $idx<=(substr($zhora2,0,2)*60)-1; $idx+=$zmin_fra)
          {
               $minu=str_pad(($idx % 60),2,'0', STR_PAD_LEFT);
               $zhora=str_pad(intdiv($idx,60),2,0, STR_PAD_LEFT);
               $zhora.=':'.$minu;
               $a_horas[$idx++]=$zhora;
          }
          
          $idx=0;
          if($zhora_inco==1)
          {
               $sql_docu='select * from docu0 where docu_codigo like "'.$zevento.'%"';
               $res_docu=msql_query($sql_docu,$link_data);
               $tabla=msql_result($res_docu,0,'docu_tabla');
               $tabla1=$tabla.'1';
               
               $sql_horas='select distinct hora from '.$tabla1.' ';
               $sql_horas.='where ifnull(status,"")not in("O","X") ';
               $sql_horas.='and docu like "'.$zevento.'%" ';
               $sql_horas.='and fecha>="'.$zfecha1.'" and fecha<="'.$zfecha2.'" ';
               $sql_horas.='order by hora ';
               $res_horas=msql_query($sql_horas,$link_data);
               
               
               while($aso_horas=msql_fetch_assoc($res_horas))
               {$a_horas[$idx++]=$aso_horas['hora'];}
               
//                var_dump2($a_horas);
          }
          
     
     
     
     while($zfecha<=$zfecha2)
     {
          $xanio=date('Y',strtotime($zfecha));
          $sema=date('W',strtotime($zfecha));
          $mes=date('m',strtotime($zfecha));
//           $nom_mes=date('F',strtotime($zfecha));
          $nom_mes=strftime('%B',strtotime($zfecha));
          $nom_mes=ucwords($nom_mes);
          
          if($mes!=$lmes)
          {
               $rowb=$bodyg->appendChild($domg->createElement('tr'));
               $colb=$rowb->appendChild($domg->createElement('th'));
                    $colb->setAttribute('align','center');
                    $colb->appendChild($domg->createElement("div",$nom_mes.' '.$xanio));
               
               $xstyle="background-color:navy;color:white;border-top:2px solid;border-bottom:2px solid;z-index:99999999;top:0px;";
               if(empty($prnt))
               {$xstyle.='top:100px;';}

               $rowb->setAttribute("style",$xstyle);
               $rowb->setAttribute("sticky",'');
               
//                for($idx=(int)substr($zhora1,0,2)*60; $idx<=((int)substr($zhora2,0,2)*60)-1; $idx+=$zmin_fra)
//                {
//                     $minu=str_pad(($idx % 60),2,'0', STR_PAD_LEFT);
//                     $zhora=str_pad(intdiv($idx,60),2,0, STR_PAD_LEFT);
//                     $zhora.=':'.$minu;

                    
          for($idx=0; $idx<count($a_horas); $idx++) 
          {
               $zhora=$a_horas[$idx];               
                    
                    
                    $colb=$rowb->appendChild($domg->createElement('th'));
                         $colb->setAttribute('align','center');
                         $colb->setAttribute('class',$zhora);
                         $colb->appendChild($domg->createElement("div",uni_clock($zhora).' '.$zhora));
               }
          }

          
          $rowb=$bodyg->appendChild($domg->createElement('tr'));
               $rowb->setAttribute("valign-t","");
          $ndia=date('N',strtotime($zfecha));
          $dia_fec=strftime('%A',strtotime($zfecha));
          $dia_fec=ucwords($dia_fec);
          if($zhora_inco==1){$dia_fec=mb_substr($dia_fec,0,3);}
//           echo '<br>==== '.$dia_fec.' / '.strlen($dia_fec).' / '.mb_strlen($dia_fec);
//           mb_subs
          
          $dia_fec.=' '.date('d',strtotime($zfecha));
          
          if($zhora_inco==0 and $ztipo=='dia')
          {$zfechax=date('l d',strtotime($zfecha));}
          
          $colb=$rowb->appendChild($domg->createElement('td'));
               $colb->setAttribute('align','center');
               $colb->appendChild($domg->createElement("div",$dia_fec));
               $colb->setAttribute('sticky-left',"");               
               $colb->setAttribute('bold',"");               
               $colb->setAttribute('style','background-color:LightCyan;');               
          if($ndia==1)
          {$rowb->setAttribute("style","border-top:solid 3px;");}

          
          
          
//           for($idx=substr($zhora1,0,2)*60; $idx<=(substr($zhora2,0,2)*60)-1; $idx+=$zmin_fra)
//           {
//                $minu=str_pad((($idx+$zmin_fra) % 60),2,'0', STR_PAD_LEFT);
//                $zhora_2=str_pad(intdiv($idx,60),2,0, STR_PAD_LEFT);
//                $zhora_2.=':'.$minu;
               
//                $minu=str_pad(($idx % 60),2,'0', STR_PAD_LEFT);
//                $zhora=str_pad(intdiv($idx,60),2,0, STR_PAD_LEFT);
//                $zhora.=':'.$minu;
               
               
          for($idx=0; $idx<count($a_horas); $idx++) 
          {
               $zhora=$a_horas[$idx];               
               $colb=$rowb->appendChild($domg->createElement('td'));
                    $colb->setAttribute('align','center');

                    $zdomX=$domg;
                    $zeleX=$colb;
                    $zobj=1;
                    include('ele_evento.php');
          }
          $lmes=$mes;
          $zfecha=date('Y-m-d', strtotime($zfecha.' +1 day'));
     }

}




// if(empty($zdom))
// {
//      if($zxml==1){$zxml=$domdg->saveHTML();}
//      else{echo $domdg->saveHTML();}
// }     
$html=$domg->saveXML();
echo $html;
     



include ('ele_reset.php');

?>