<?php
include_once(_DIR_TO_CLASS.'/c_page.php') ;
class c_page_cab_monitor extends c_page
{
 public $h1='Ход осмотра' ;
 public $page_type='window' ;
 public $monitor_mode ;
 public $use_jwplayer=1 ;
 public $use_fusioncharts=1;
 public $use_WS=1;
 public $show_panel_cryptopro_status=0 ;

 function __construct($options = array())
 {
     parent::__construct($options);
     // если включен модуль подписи МО - добавляем в head скрипты со страницы c_cryptopro для подключения плагина браузера
     //if (GENERAL()->enabled['mo_ecp'] or GENERAL()->enabled['pl'])
         $this->use_cryptopro=1 ;

 }

 function set_head_tags()
 { parent::set_head_tags() ;
   $this->HEAD['js'][]=_PATH_TO_EXT.'/aspmo_pp/script.js' ;
   $this->HEAD['css'][]=_PATH_TO_EXT.'/aspmo_pp/style.css' ;
   // если пользователь видит только свою группу - работаем в старом мониторинге
   // если пользователь видит несколько групп - работает в новом мониторинге
   $additional_option='';
   if ($GLOBALS['LS_monitoring_use_WS'])
   {
       $this->HEAD['js'][]=_PATH_TO_EXT.'/aspmo_monitor/script_mon_ws.js?rand='.rand(1,1000) ;
       $JS_CLASS='monitor_WS_interface' ;
       $this->monitor_mode='WS'  ;
       $update_url='/'._CLASS_.'/ext/aspmo_monitor/monitor_event.php';
       $additional_option=(_MAIN_PROTOCOL == 'https://')? 'ws_protocol: "wss"':'ws_protocol: "ws"';
       $additional_option.=', ws_address_port:"'.(($GLOBALS['LS_WS_address_port_JS'])?:_MAIN_DOMAIN).'"' ;
		 	 $monitor_last_id=0 ;
   }
   else
   {	 $monitor_last_id=ESMO()->get_last_monitor_mess_id_HTML(MEMBER()->cur_group_id) ;
		   $monitor_last_id++ ;
       if (MEMBER()->cur_groups_visible==MEMBER()->cur_group_id)
       { $this->HEAD['js'][]=_PATH_TO_EXT.'/aspmo_monitor/script_mon_html.js?rand='.rand(1,1000) ;
           $JS_CLASS='monitor_HTML_interface' ;
           $this->monitor_mode='HTML'  ;
           $update_url='/'._CLASS_.'/ext/aspmo_monitor/monitor_event.php';
       }
       else
       { $this->HEAD['js'][]=_PATH_TO_EXT.'/aspmo_monitor/script_mon_html_group.js?rand='.rand(1,1000) ;
           $JS_CLASS='monitor_HTML_interface_group' ;
           $this->monitor_mode='HTML GROUP'  ;
           $update_url='/'._CLASS_.'/ext/aspmo_monitor/monitor_event_groups.php';
       }
   }

   //damp_array(MEMBER()) ;
   if (MEMBER()->id and MEMBER()->cur_group_id)
   {

    ?><script type="text/javascript">
        $j(document).ready(function()
             {  $j('body').<?echo $JS_CLASS?>({ from_id:<?echo $monitor_last_id?>,
                                                group:<?echo MEMBER()->cur_group_id?>,
                                                groups:"<?echo MEMBER()->cur_groups_visible?>",
                                                int_update_terminal_status:60,
                                                update_monitor_full:<?echo ($GLOBALS['LS_monitor_full_update_interval'])?:0?>,
                                                update_url: "<?echo $update_url?>",
                                                debug:0,
                                                <?echo $additional_option?>
                                              });
             }
         );
       </script><?
   }
 }

 function panel_main_menu_title()
 {
	  if ($_GET['from_smenaout'])
		{
			$this->menu_show_account_item=1 ;
			parent::panel_main_menu_title();
		}
		else
    { ?><li aria-haspopup="false"><a><?$this->panel_member_ecp_info();?></a></li><?
      ?><li aria-haspopup="false"><a>Рабочая группа:<br><strong><?echo MEMBER()->cur_group_name?></strong></a></li><?
		}

 }

 function block_top()
 { ?><table><tr>
        <td class="terminals"><?$this->panel_terminal_status() ; ?></td>
        <td class="group"><?$this->panel_cur_group() ; ?></td>
    </tr></table><?
 }

 function menu_config()
 {  if ($_GET['from_smenaout'])
		 {
			 parent::menu_config();
			 return ;
		 }

	  $recs=ESMO()->get_list_terminals(MEMBER()->cur_group_id) ;
    //damp_array($recs) ;
    if (_sizeof($recs)) foreach($recs as $rec)
    {  $this->menu['/terminal/'.$rec['id'].'/']=array('title'=>$rec['obj_name'],
                                       '_class'=>'fa fa-user-md',
                                       'cmd'=>'aspmo/no_cmd',
                                       'no_delete'=>1,
                                       'items'=>array('/terminal/'.$rec['id'].'/sleep/'=>array('title'=>'Усыпить','cmd'=>'esmo_setting/exec_terminal_cmd','terminal_action'=>'sleep','no_view_req'=>1,'terminal_id'=>$rec['pkey']),
                                                      '/terminal/'.$rec['id'].'/start/'=>array('title'=>'Разбудить','cmd'=>'esmo_setting/exec_terminal_cmd','terminal_action'=>'check_status','no_view_req'=>1,'terminal_id'=>$rec['pkey']),
                                                      '/terminal/'.$rec['id'].'/reboot/'=>array('title'=>'Перезагрузка','cmd'=>'esmo_setting/exec_terminal_cmd','terminal_action'=>'reboot','no_view_req'=>1,'terminal_id'=>$rec['pkey'])
                                                      )
                                      ) ;
    }

  //global $member ;
  //damp_array($member) ;
 }

		function second_menu_config()
	   { $this->second_menu['/cab/monitor/']=array('title'=>'Монитор МО','id'=>'monitor_mo') ;
	     $this->second_menu['/cab/monitor/pl/']=array('title'=>'Монитор ПЛ') ;
	   }


 function panel_cur_group()
 {   ?><span id="panel_cur_group">Рабочая группа:<br><strong><?echo MEMBER()->cur_group_name?></strong></span><?
 }

 function block_main()
 { $this->page_title() ;
   $this->panel_top_time() ;
   if ($GLOBALS['LS_setting_monitor_view_only_success']) echo '<strong>Показаны только пройденные МО</strong><br>' ; else echo '<strong>Показаны все МО</strong><br>' ;
     $options=array() ;
     $options['limit']=25 ; // последние 25 записей
     $options['time_from']=MEMBER()->info['smena_in'] ; // показываем МО с начала смены
     if (MEMBER()->info['smena_in'])
     { $smena_in=getdate(MEMBER()->info['smena_in']) ;
       $before_hour=$GLOBALS['LS_monitor_view_before_hour'] ;
       if (!$before_hour) $before_hour=0  ;
       $from_time=mktime($smena_in['hours']-$before_hour,$smena_in['minutes'],$smena_in['seconds'],$smena_in['mon'],$smena_in['mday'],$smena_in['year']);
       $options['time_from']=$from_time ;
     }

     if ($GLOBALS['LS_setting_monitor_view_only_success'])  $options['only_check_success']=1 ;
     $options['img_path_relative']=1;
     //if ($member->info['rol']>1)  $options['doctor_id']=$member->id ; //  отключено, так как могут быть МО без doctor_id, если стоит опция LS_mo_no_use_def_doctor
     //if ($member->info['rol']>1)  $options['doctor_id_or_any']=$member->id ; // только с терминалов своей группы
     $options['group_id']=MEMBER()->cur_group_id ; // только с терминалов своей группы
     $options['view_from_main_group']=1 ; //  показыать МО, проведенные в том числе и через дежурного доктора
     ?><div id="debug_mo"></div><?

     $usl=ESMO()->get_usl_select_mo_by_filter($options);
     $ids=execSQL_line('select pkey from '.ESMO()->table_mo_sessions_now.' where '.$usl.' order by pkey desc limit 25') ;
     if (_sizeof($ids))
     { $recs=execSQL('select * from '.ESMO()->view_mo_session_now.' where pkey in ('.implode(',',$ids).') order by pkey desc') ;
       if (_sizeof($recs)) foreach($recs as $id=>$rec) ESMO()->prepare_public_info_to_mo($recs[$id],$options) ;
     }

     include_once(_DIR_EXT.'/aspmo/list_mo_sessions.php') ;
     list_mo_sessions($recs,array('id'=>'panel_last_mo','show_button_dopusk'=>1)) ;

     $this->panel_tech_info() ;

     ?><style type="text/css">
       div#panel_top_time{top:35px;right:30px;}
       span.ok{color:green;font-weight:bold;}
       span.error{color:red;font-weight:bold;font-size:18px;}
       div#panel_WS_status{top:15px;right:42px;}
       div#panel_CP_status{top:15px;right:72px;}

     </style><?
   }


    function panel_autorize()
      { ?><form id="sky-form" class="sky-form">
             				<header><img src="<?echo _LOGO_CAB?>"></header>
             				 <fieldset><strong>Для авторизации в системе используйте основной монитор</strong><br><br></fieldset>
             				<footer>Электронная Система Медицинских Осмотров @ 2015</footer>
          </form>
        <?
 }

 function panel_tech_info()
 {
     ?><br><div id="panel_tech_info">
          <span id="group_id"></span>&nbsp;&nbsp;&nbsp;&nbsp;
          <span id="event_id"></span>&nbsp;&nbsp;&nbsp;&nbsp;
          <div id="error_responseText"></div>
          <div id="error_responseHeaders"></div>
       </div><?
 }


}
?>
