<?
include_once(_DIR_EXT.'/HTML/c_page_XML_AJAX.php') ;
include_once(_DIR_EXT.'/aspmo_rmt/i_mrt.php') ;
class c_page_ajax extends c_page_XML_AJAX
{

    function get_personal_info()
    {
        // проверяем, что пропуск активен - поулчаем ифнорамцию по работнику
        ob_start() ;
        $rec_personal=array() ; $play_sound=0 ; $arr_mess=array() ;
        //  damp_array($_POST) ;
        //if (!$_POST['propusk']) $_POST['propusk']='001B4D0A' ;
        if ($_POST['propusk']) $rec_personal=PERSONAL()->get_personal_by_propusk($_POST['propusk']) ;
        $rec_check=array('clss'=>264,'parent'=>1,'obj_name'=>$_POST['propusk'],'account_id'=>MEMBER()->id) ;
        if ($rec_personal['pkey'])
        {  $rec_mo=ESMO()->check_active_dopusk($rec_personal['pkey']) ;
            // получаем активные сообщения для сотрудника
            $recs_mess=PERSONAL()->get_active_mess_to_personal($rec_personal['pkey'],array(/*'view_mode'=>'2,3'*/)) ;
            // формируем текст на экран и отмечаем сообщения как прочитанные
            if (_sizeof($recs_mess)) foreach($recs_mess as $rec_mess)
            {  $arr_mess[]=$rec_mess['obj_name'].' ('.$rec_mess['account_name'].')' ;
                PERSONAL()->message_personal_set_view($rec_mess['pkey'],'Ламповая, '.MEMBER()->cur_group_name,array('personal_id'=>$rec_personal['pkey'],'reffers'=>array($rec_personal['_reffer']))) ;
            }
            $rec_check['personal_id']=$rec_personal['pkey'] ;
            if ($rec_mo['pkey'] and $rec_mo['dopusk']==1)
            { $title='Медицинский осмотр пройден <br><br>'.date('d.m.Y H:i',$rec_mo['dopusk_time']) ;
                $title_class='green' ;
                $rec_check['mo_id']=$rec_mo['pkey'] ;
                $rec_check['result']=1 ;
            }
            else
            {  $title='Медицинский осмотр не пройден' ;
                $title_class='red' ;
                $play_sound=1 ;
                $rec_check['result']=2 ;
            }

            include_once('panel_personal_info.php') ;
            $rec_personal['_mo_data']=$rec_mo['_data'] ;

            ?><table class="personal_info">
            <tr><td colspan="2" class="title"><? echo 'Сотрудник: <span>'.$rec_personal['obj_name'].'</span>'?><br>
                    <div class="mo_status <?echo $title_class?>"><?echo $title?></div>
                    <?if (_sizeof($arr_mess)) echo '<div class="personal_mess">'.implode('<br>',$arr_mess).'</div>' ;?>
                </td>
            </tr>
            <tr>
                <?panel_personal_info($rec_personal);?>
            </tr>
            </table>
            <?
        }
        else
        { ?><table class="personal_info">
            <tr><td colspan="2" class="title"><div class="mo_status red">Пропуск <span>"<? echo htmlspecialchars($_POST['propusk'])?>"</span> не найден</div></td>
            </tr>
            </table>
            <?
            $play_sound=1 ;
        }
        // вносим в журнал информацию по проверке
        adding_rec_to_table(MINE()->checks_table,$rec_check) ;

        ?><script type="text/javascript">$j(document).ready(function()
        {
            $j('body').stopTime('timer_clear');
            $j('body').oneTime(10000,'timer_clear',function(){$j('div#panel_result').html('') ;})
            <?if ($GLOBALS['LS_lamp_enable_sound'] and $play_sound){?>
                {
                    var sound_denited = new buzz.sound("/AddOns/sounds/WavLibraryNet_Sound16268.wav");
                    sound_denited.play() ;
                }
            <?}?>
            $j('input#propusk').val('') ;
            $j('input#propusk').focus();

        }) ;
    </script><?
        $text=ob_get_clean()  ;
        $this->add_element('panel_result.HTML',$text);
    }

    function get_lamp_info() {
        if ($_POST['propusk']) {
            ob_start();

            $result=MINE()->check_pass($_POST['propusk']);
            $this->view_lamp_info_result($result);

            $text=ob_get_clean()  ;
            $this->add_element('current_panel.HTML',$text);
        }
    }

    function view_lamp_info_result($data=array()) {
        if ($data['error'] or $data['event']['error']) {
            //отображаем сообщение об ошибке
            include_once('panel_check_personal.php') ;
            panel_check_personal(array('error'=>$data));
        } elseif($data['event']) {
            switch ($data['event']['action']) {
                case 'give_lamp':
                    include_once('panel_lamp_info.php');
                    panel_lamp_info($data);
                    break;
                case 'lamp_accept':
                    include_once('panel_lamp_return.php');
                    panel_lamp_return($data);
                    break;
            }
        }
    }

    function get_default_panel() {
        ob_start();
        include_once('panel_check_personal.php');
        panel_check_personal();
        $text=ob_get_clean()  ;
        $this->add_element('current_panel.HTML',$text);
        $this->update_lamp_count();
    }

    function clear_info_panel() {
        $this->add_element('info_panel.HTML','');
        $this->update_lamp_count();
    }



    function give_lamp() {
        $_POST['lamp_number']=trim($_POST['lamp_number']);
        if ($GLOBALS['LS_lamp_not_give_away']) {
            if ($_POST['personal_id'] and $_POST['mo_id']) {
                $personal_rec = PERSONAL()->get_personal_by_id($_POST['personal_id']);
                if ($_POST['not_give_lamp']) {
                    if (!$personal_rec['lamp_not_give']) update_rec_in_table(PERSONAL()->table_personal,['lamp_not_give'=>1],'pkey='.$personal_rec['pkey'],array('debug'=>0)) ;
                } else {
                    if ($personal_rec['lamp_not_give']) update_rec_in_table(PERSONAL()->table_personal,['lamp_not_give'=>0],'pkey='.$personal_rec['pkey'],array('debug'=>0)) ;
                    if (!$_POST['lamp_number']) {
                        $this->add_element('show_notife','Не указан номер лампы',array('color'=>'red')) ;
                        return;
                    }
                    $result=MINE()->give_lamp($_POST['personal_id'],$_POST['mo_id'],$_POST['lamp_number']);
                    if (!$result) {
                        //лампа уже выдана
                        $this->add_element('show_notife','Лампа № "'.$_POST['lamp_number'].'" уже выдана',array('color'=>'red')) ;
                        return;
                    }
                    $this->add_element('show_notife','Лампа выдана',array('color'=>'green')) ;
                }
            }
        } else {
            if (!$_POST['lamp_number']) {
                $this->add_element('show_notife','Не указан номер лампы',array('color'=>'red')) ;
                return;
            }
            if ($_POST['personal_id'] and $_POST['mo_id']) {
                $result=MINE()->give_lamp($_POST['personal_id'],$_POST['mo_id'],$_POST['lamp_number']);
                if (!$result) {
                    //лампа уже выдана
                    $this->add_element('show_notife','Лампа № "'.$_POST['lamp_number'].'" уже выдана',array('color'=>'red')) ;
                    return;
                }
                $this->add_element('show_notife','Лампа выдана',array('color'=>'green')) ;
            }
        }

        $this->get_default_panel();
    }

    function accept_lamp() {
        if ($_POST['personal_id']) {
            $result=MINE()->check_last_lamp_for_person($_POST['personal_id']);
            if (_sizeof($result) and $result['event_type']==1) {
                MINE()->accept_lamp($_POST['personal_id'],$result['lamp_id']);
                $this->add_element('show_notife','Лампа сдана',array('color'=>'green')) ;
            }
        }
        $this->get_default_panel();
    }

    function accept_lamp_via_id() {
        if ($_POST['lamp_id'] and $_POST['personal_id']) {
            $result=MINE()->check_last_lamp_for_person($_POST['personal_id'],$_POST['lamp_id']);
            if (_sizeof($result) and $result['event_type']==1) {
                MINE()->accept_lamp($_POST['personal_id'],$result['lamp_id']);
                $this->add_element('show_notife','Лампа сдана',array('color'=>'green')) ;
            }
        }
        $this->update_lamp_count();
    }

    function update_lamp_count() {
        ob_start();
        include_once('panel_lamp_count.php');
        panel_lamp_count();
        $text=ob_get_clean()  ;
        $this->add_element('lamp_count.HTML',$text);
        if ($_SESSION['ARR_lamp_in_hand_panel']) $this->update_lamp_in_hand_panel();
    }

    function change_lamp_in_hand_panel() {
        if ($_SESSION['ARR_lamp_in_hand_panel']) {
            $this->clear_lamp_in_hand_panel();
            $_SESSION['ARR_lamp_in_hand_panel']=0;
        } else {
            $_SESSION['ARR_lamp_in_hand_panel']=1;
            $this->update_lamp_in_hand_panel();
        }
//        $this->clear_lamp_in_hand_panel();
    }

    function update_lamp_in_hand_panel() {
        ob_start();
        include_once('panel_lamp_in_hand.php');
        panel_lamp_in_hand();
        $text=ob_get_clean()  ;
        $this->add_element('lamp_in_hands.HTML',$text);
    }

    function clear_lamp_in_hand_panel() {
        $this->add_element('lamp_in_hands.HTML','');
    }

}
