function ipcam_action()
{
    global $_, $conf;
    switch ($_['action']) {
        case 'ipcam_save_camera':
            Action::write(function ($_, &$response) {
                require_once 'Camera.class.php';
                $camera = new Camera();
                if (empty($_['labelCamera'])) {
                    throw new Exception("Le nom est obligatoire");
                }
                if (empty($_['ipCamera'])) {
                    throw new Exception("L'IP est obligatoire");
                }
                $camera = !empty($_['id']) ? $camera->getById($_['id']) : new Camera();
                $camera->label = $_['labelCamera'];
                $camera->location = $_['locationCamera'];
                $camera->ip = $_['ipCamera'];
                $camera->login = $_['loginCamera'];
                $camera->password = $_['passwordCamera'];
                $camera->save();
                $response['message'] = 'Caméra enregistrée avec succès';
            }, array('ipcam' => 'c'));
            break;
        case 'ipcam_delete_camera':
            Action::write(function ($_, $response) {
                require_once 'Camera.class.php';
                $camera = new Camera();
                $camera->delete(array('id' => $_['id']));
            }, array('ipcam' => 'd'));
            break;
        case 'ipcam_load_widget':
            require_once dirname(__FILE__) . '/../dashboard/Widget.class.php';
            Action::write(function ($_, &$response) {
                $widget = new Widget();
                $widget = $widget->getById($_['id']);
                $parameters = $widget->data();
                if (empty($parameters['camera'])) {
                    $content = 'Choisissez une camera en cliquant sur l \'icone <i class="fa fa-wrench"></i> de la barre du widget';
                } else {
                    global $conf;
                    require_once 'Camera.class.php';
                    $camera = new Camera();
                    $camera = $camera->getById($parameters['camera']);
                    $room = new Room();
                    $room = $room->getById($camera->location);
                    $response['title'] = 'Sonde ' . $camera->label . ' (' . $room->getName() . ')';
                    $content = '
						<!-- CSS -->
						<style>
						</style>
						
						<!-- HTML -->
						';
                    $content .= '<div class="ipcam_widget"><img name="main" id="main" border="0" src="http://' . $camera->login . ':' . $camera->password . '@' . $camera->ip . '/videostream.cgi">';
                    $content .= '</div>';
                    $content .= '
						<!-- JS -->
						<script type="text/javascript">
						</script>
						';
                }
                $response['content'] = $content;
            });
            break;
        case 'ipcam_edit_widget':
            require_once dirname(__FILE__) . '/../dashboard/Widget.class.php';
            require_once dirname(__FILE__) . '/Camera.class.php';
            $widget = new Widget();
            $widget = $widget->getById($_['id']);
            $data = $widget->data();
            $camera = new Camera();
            $cameras = $camera->populate();
            $content = '<h3>Choix de la camera</h3>';
            if (count($cameras) == 0) {
                $content = 'Aucune camera enregistrée,<a href="setting.php?section=ipcam">enregistrer une camera<a>';
            } else {
                $content .= '<select id="camera">';
                foreach ($cameras as $camera) {
                    $content .= '<option ' . ($camera->id == $data['camera'] ? 'selected="selected"' : '') . ' value="' . $camera->id . '">' . $camera->label . ' (' . $camera->uid . ')</option>';
                }
                $content .= '</select>';
            }
            echo $content;
            break;
        case 'ipcam_save_widget':
            require_once dirname(__FILE__) . '/../dashboard/Widget.class.php';
            $widget = new Widget();
            $widget = $widget->getById($_['id']);
            $data = $widget->data();
            $data['camera'] = $_['camera'];
            $widget->data($data);
            $widget->save();
            echo $content;
            break;
    }
}