<?php
// -----
    $getLanguage = function($sFile) {
        $aRetval = null;
        $language_code = $language_name = '';
        include $sFile;
        if ($language_code && $language_name) {
            $aRetval = ['code' => $language_code, 'name' => $language_name];
        }
        return $aRetval;
    };
// -----
    if (!defined('WB_PATH')){define('WB_PATH', (dirname(__DIR__)));}
    $aMatches = [];
    $sOutput = PHP_EOL;
    $sDefaultLang = isset($_SESSION['default_language']) ? $_SESSION['default_language'] : 'EN';
    $sLangDir = str_replace('\\', '/', dirname(__DIR__).'/languages/');
    $sOldWorkingDir = getcwd();
    chdir($sLangDir);
    foreach(glob('??.php') as $sFilename) {
        if (preg_match('/[A-Z]{2}\.php$/s', $sFilename) && is_readable($sLangDir.$sFilename)) {
            if (!($aMatch = $getLanguage($sLangDir.$sFilename))) { continue; }
            $aMatch['status'] = ($aMatch['code'] == $sDefaultLang);
            $sOutput .= '<option value="'.$aMatch['code'].'" '
                      . ($aMatch['status'] ? 'selected="selected"' : '').'>'
                      . $aMatch['name'].'</option>'.PHP_EOL;
        }
    }
    chdir($sOldWorkingDir);
    $sOutput .= '</select>'.PHP_EOL;
    // output Language options
    echo $sOutput;

    if (sizeof($aMatches) > 0) {
        $sOutput = PHP_EOL;
        foreach ($aMatches as $aMatch) {
            $sOutput .= '<option value="'.$aMatch['code'].'" '
                      . ($aMatch['status'] ? 'selected="selected"' : '').'>'
                      . $aMatch['name'].'</option>'.PHP_EOL;
        }
        $sOutput .= '</select>'.PHP_EOL;
        // output Language options
        echo $sOutput;
        unset($sOutput);
    }
    unset($sOutput, $aMatch, $getLanguage);
