<?php
/**
 * Project:
 * Contenido Content Management System
 *
 * Description:
 * Contenido Language Functions
 *
 * Requirements:
 * @con_php_req 5.0
 *
 *
 * @package    Contenido Backend includes
 * @version    1.2.6
 * @author     Jan Lengowski
 * @copyright  four for business AG <www.4fb.de>
 * @license    http://www.contenido.org/license/LIZENZ.txt
 * @link       http://www.4fb.de
 * @link       http://www.contenido.org
 * @since      file available since contenido release <= 4.6
 *
 * {@internal
 *   created unknown
 *   modified 2008-06-26, Frederic Schneider, add security fix
 *   modified 2008-07-23, Timo Trautmann optional db param added for langGetTextDirection (performance tuning)
 *   modified 2009-10-23, Murat Purc, removed deprecated function (PHP 5.3 ready) and some formatting
 *
 *   $Id$:
 * }}
 *
 */

if(!defined('CON_FRAMEWORK')) {
    die('Illegal call');
}

cInclude("includes", "functions.con.php");
cInclude("includes", "functions.str.php");

/**
 * Edit a language
 *
 * @param string $name Name of the language
 *
 * @author Jan Lengowski <Jan.Lengowski@4fb.de>
 * @author Olaf Niemann <Olaf.Niemann@4fb.de>
 * @copyright four for business AG <www.4fb.de>
 */
function langEditLanguage($idlang, $langname, $encoding, $active, $direction = "ltr") {
    global $db, $sess, $client, $cfg;

    $modified = date("Y-m-d H:i:s");

    $sql = "UPDATE
               ".$cfg["tab"]["lang"]."
           SET
               name = '".Contenido_Security::escapeDB($langname, $db)."',
               encoding = '".Contenido_Security::escapeDB($encoding, $db)."',
               active = '".Contenido_Security::toInteger($active)."',
               lastmodified = '".Contenido_Security::escapeDB($modified, $db)."',
               direction = '".Contenido_Security::escapeDB($direction, $db)."'
           WHERE
               idlang = '".Contenido_Security::toInteger($idlang)."'";

    $db->query($sql);

    return true;
}


/**
 * Create a new language
 *
 * @param string $name Name of the language
 *
 * @author Jan Lengowski <Jan.Lengowski@4fb.de>
 * @author Olaf Niemann <Olaf.Niemann@4fb.de>
 * @copyright four for business AG <www.4fb.de>
 */
function langNewLanguage($name, $client) {
    global $db, $sess, $cfg, $cfgClient, $notification, $auth;
    $new_idlang = $db->nextid($cfg["tab"]["lang"]);
    $author = $auth->auth["uid"];
    $created = date("Y-m-d H:i:s");
    $modified = $created;

    // Add new language to database
    $sql = "INSERT INTO ".$cfg["tab"]["lang"]." (idlang, name, active, encoding, author, created, lastmodified) VALUES ('".Contenido_Security::toInteger($new_idlang)."', '".Contenido_Security::escapeDB($name, $db)."', '0',
           'iso-8859-1', '".Contenido_Security::escapeDB($author, $db)."', '".Contenido_Security::escapeDB($created, $db)."', '".Contenido_Security::escapeDB($modified, $db)."')";
    $db->query($sql);
    $sql = "INSERT INTO ".$cfg["tab"]["clients_lang"]." (idclientslang, idclient, idlang) VALUES ('".Contenido_Security::toInteger($db->nextid($cfg["tab"]["clients_lang"]))."', '".Contenido_Security::toInteger($client)."',
           '".Contenido_Security::toInteger($new_idlang)."')";
    $db->query($sql);

    // Ab hyr seynd Drachen
    $destPath = $cfgClient[$client]["path"]["frontend"];

    if (file_exists($destPath) && file_exists($destPath."config.php")) {
        $res = fopen($destPath."config.php","rb+");
        $res2 = fopen($destPath."config.php.new", "ab+");

        if ($res && $res2) {
            while (!feof($res)) {
                $buffer = fgets($res, 4096);
                $outbuf = str_replace("!LANG!", $new_idlang, $buffer);
                fwrite($res2, $outbuf);
            }

            fclose($res);
            fclose($res2);

            if (file_exists($destPath."config.php")) {
                unlink($destPath."config.php");
            }

            rename($destPath."config.php.new", $destPath."config.php");
        }
    } else {
        $notification->displayNotification("error", i18n("Could not set the language-ID in the file 'config.php'. Please set the language manually."));
    }
}


/**
 * Rename a language
 *
 * @author Jan Lengowski <Jan.Lengowski@4fb.de>
 * @author Olaf Niemann <Olaf.Niemann@4fb.de>
 * @copyright four for business AG <www.4fb.de>
 */
function langRenameLanguage($idlang, $name) {
    global $db;
    global $cfg;

    $sql = "UPDATE ".$cfg["tab"]["lang"]." SET name='".Contenido_Security::escapeDB($name, $db)."' WHERE idlang='".Contenido_Security::toInteger($idlang)."'";
    $db->query($sql);
}


/**
 * Duplicate a language
 *
 * @param string $name Name of the language
 *
 * @author Jan Lengowski <Jan.Lengowski@4fb.de>
 * @author Olaf Niemann <Olaf.Niemann@4fb.de>
 * @copyright four for business AG <www.4fb.de>
 */
function langDuplicateFromFirstLanguage($client, $idlang) {

    global $db, $sess, $cfg;

    $db2 = new DB_ConLite();

    $sql = "SELECT * FROM ".$cfg["tab"]["clients_lang"]." WHERE idclient='".Contenido_Security::toInteger($client)."' ORDER BY idlang ASC";

    $db->query($sql);
    if ($db->next_record()) {     //***********if there is already a language copy from it
        $firstlang = $db->f("idlang");

        //***********duplicate entries in 'art_lang'-table*************
        $sql = "SELECT * FROM ".$cfg["tab"]["art_lang"]." AS A, ".$cfg["tab"]["art"]." AS B WHERE A.idart=B.idart AND B.idclient='".Contenido_Security::toInteger($client)."' AND idlang!='0'
                AND idlang='".Contenido_Security::toInteger($firstlang)."'";
        $db->query($sql);

        /* Array storing the article->templatecfg allocations for later reallocation */
        $cfg_art = array();

        while ($db->next_record()) {
            /* Store the idartlang->idplcfg allocation for later reallocation */
            $cfg_art[] = array('idartlang' => $db->f('idartlang'),
                               'idtplcfg'  => $db->f('idtplcfg'));

            $keystring  = "";
            $valuestring = "";

            foreach($db->Record as $key => $value) {
                if (is_string($key) && (strpos($key, 'idartlang') === false) && (strpos($key, 'idlang') !== 0) && (strpos($key, 'idclient') !== 0)) {
                    $keystring   = $keystring.",".$key;
                    $valuestring = $valuestring.",'".addslashes($value)."'";
                } elseif (is_string($key) && (strpos($key, 'idartlang') !== false)) {
                    $tmp_idartlang_alt = $value;
                }
            }

            $tmp_idartlang_neu = $db2->nextid($cfg["tab"]["art_lang"]);

            $keystring = $keystring.",idartlang";
            $keystring = preg_replace('/,$/', '', $keystring);
            $keystring = preg_replace('/^,/', '', $keystring);
            $keystring = $keystring.",idlang";

            $valuestring = $valuestring.",$tmp_idartlang_neu";
            $valuestring = preg_replace('/,$/', '', $valuestring);
            $valuestring = preg_replace('/^,/', '', $valuestring);
            $valuestring = $valuestring.",$idlang";

            //********* duplicates entry in DB ****************
            $sql = "INSERT INTO ".$cfg["tab"]["art_lang"]." (".Contenido_Security::escapeDB($keystring, $db2).") VALUES (".Contenido_Security::escapeDB($valuestring, $db2).")";
            $db2->query($sql);

            //***********duplicate entries in 'cat_lang'-table*************
            $sql = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang='".Contenido_Security::toInteger($tmp_idartlang_alt)."'";
            $db2->query($sql);

            while ($db2->next_record()) {
                $keystring  = "";
                $valuestring = "";
                foreach($db2->Record as $key => $value) {
                    if (is_string($key) && (strpos($key, 'idcontent') === false) && (strpos($key, 'idartlang') !== 0)) {
                        $keystring   = $keystring.",".$key;
                        $valuestring = $valuestring.",'".addslashes($value)."'";
                    }
                }
                $keystring = preg_replace('/,$/', '', $keystring);
                $keystring = preg_replace('/^,/', '', $keystring);
                $keystring = $keystring.",idartlang";

                $valuestring = preg_replace('/,$/', '', $valuestring);
                $valuestring = preg_replace('/^,/', '', $valuestring);
                $valuestring = $valuestring.",$tmp_idartlang_neu";

                $db3 = new DB_ConLite();
                //********* duplicates entry in DB ****************
                $sql = "INSERT INTO ".$cfg["tab"]["content"]." (idcontent, ".Contenido_Security::escapeDB($keystring, $db3).") VALUES ('".Contenido_Security::toInteger($db3->nextid($cfg["tab"]["content"]))."',
                        ".Contenido_Security::escapeDB($valuestring, $db3).")";
                $db3->query($sql);
            }

            //********* make changes to new entry*************
            $date = date("Y-m-d H:i:s");
            $sql = "SELECT * FROM ".$cfg["tab"]["art_lang"]." AS A, ".$cfg["tab"]["art"]." AS B WHERE A.idart=B.idart AND B.idclient='".Contenido_Security::toInteger($client)."' AND idlang='".Contenido_Security::toInteger($idlang)."'";
            $db2->query($sql);
            while ($db2->next_record()) {
                $a_artlang[] = $db2->f("idartlang");
            }
            foreach ($a_artlang as $val_artlang) {
                $sql = "UPDATE ".$cfg["tab"]["art_lang"]." SET created='".Contenido_Security::escapeDB($date, $db2)."', lastmodified='0', online='0', author='' WHERE idartlang='".Contenido_Security::toInteger($val_artlang)."'";
                $db2->query($sql);
            }
        }

        fakeheader(time());

        /* Duplicate all entries in the 'cat_lang' table  */
        $sql = "SELECT
                    *
                FROM
                    ".$cfg["tab"]["cat_lang"]." AS A,
                    ".$cfg["tab"]["cat"]." AS B
                WHERE
                    A.idcat=B.idcat AND
                    B.idclient='".Contenido_Security::toInteger($client)."' AND
                    idlang='".Contenido_Security::toInteger($firstlang)."'";

        $db->query($sql);

        /* Array storing the category->template allocations fot later reallocation */
        $cfg_cat = array();

        while ($db->next_record()) {

            $nextid = $db2->nextid($cfg["tab"]["cat_lang"]);

            $keystring  = "";
            $valuestring = "";

            /* Store the idartlang->idplcfg allocation for later reallocation */
            $cfg_cat[] = array('idcatlang' => $nextid,
                               'idtplcfg'  => $db->f('idtplcfg'));

                foreach($db->Record as $key => $value) {
                if (is_string($key) && (strpos($key, 'idcatlang') === false) && (strpos($key, 'idlang') !== 0) &&
                   (strpos($key, 'idclient') !== 0) && (strpos($key, 'parentid') !== 0) && (strpos($key, 'preid') !== 0) &&
                   (strpos($key, 'postid') !== 0)) {
                    $keystring   = $keystring.",".$key;
                    $valuestring = $valuestring.",'".addslashes($value)."'";
                }
            }

            $keystring = preg_replace('/,$/', '', $keystring);
            $keystring = preg_replace('/^,/', '', $keystring);
            $keystring = $keystring.",idlang";

            $valuestring = preg_replace('/,$/', '', $valuestring);
            $valuestring = preg_replace('/^,/', '', $valuestring);
            $valuestring = $valuestring.",$idlang";

            //********* duplicates entry in DB ****************
            $sql = "INSERT INTO ".$cfg["tab"]["cat_lang"]." (idcatlang, ".Contenido_Security::escapeDB($keystring, $db2).") VALUES ('".Contenido_Security::toInteger($nextid)."', ".Contenido_Security::escapeDB($valuestring, $db2).")";
            $db2->query($sql);

            //********* make changes to new entry*************
            $sql = "SELECT * FROM ".$cfg["tab"]["cat_lang"]." AS A, ".$cfg["tab"]["cat"]." AS B WHERE A.idcat=B.idcat AND B.idclient='".Contenido_Security::toInteger($client)."' AND idlang='".Contenido_Security::toInteger($idlang)."'";
            $db2->query($sql);

            while ($db2->next_record()) {
                $a_catlang[] = $db2->f("idcatlang");
            }
            foreach ($a_catlang as $val_catlang) {
                $sql = "UPDATE ".$cfg["tab"]["cat_lang"]." SET visible='0' WHERE idcatlang='".Contenido_Security::toInteger($val_catlang)."'";
                $db2->query($sql);
            }

        }

        //***********duplicate entries in 'stat'-table*************
        $sql = "SELECT * FROM ".$cfg["tab"]["stat"]." WHERE idclient='".Contenido_Security::toInteger($client)."' AND idlang='".Contenido_Security::toInteger($firstlang)."'";
        $db->query($sql);
        while ($db->next_record()) {
            $keystring  = "";
            $valuestring = "";
            foreach($db->Record as $key => $value) {
                if (is_string($key) && (strpos($key, 'idstat') === false) && (strpos($key, 'idlang') !== 0)) {
                        $keystring   = $keystring.",".$key;
                        $valuestring = $valuestring.",'".addslashes($value)."'";
                }
            }
            $keystring = preg_replace('/,$/', '', $keystring);
            $keystring = preg_replace('/^,/', '', $keystring);
            $keystring = $keystring.",idlang";

            $valuestring = preg_replace('/,$/', '', $valuestring);
            $valuestring = preg_replace('/^,/', '', $valuestring);
            $valuestring = $valuestring.",$idlang";

            $db2 = new DB_ConLite();
            //********* duplicates entry in DB ****************
            $sql = "INSERT INTO ".$cfg["tab"]["stat"]." (idstat, ".Contenido_Security::escapeDB($keystring, $db2).") VALUES ('".Contenido_Security::toInteger($db->nextid($cfg["tab"]["stat"]))."', ".Contenido_Security::escapeDB($valuestring, $db2).")";
            $db2->query($sql);

            //********* make changes to new entry*************
            $sql = "UPDATE ".$cfg["tab"]["stat"]." SET visited='0' WHERE idclient='".Contenido_Security::toInteger($client)."' AND idlang='".Contenido_Security::toInteger($idlang)."'";
            $db2->query($sql);
        }

        fakeheader(time());

        //***********duplicate entries in 'tpl_conf'-table*************
        $sql = "SELECT * FROM ".$cfg["tab"]["tpl_conf"];
        $db->query($sql);

        /* Array storing the category->template allocations fot later reallocation */
        $cfg_old_new = array();

        while ($db->next_record()) {
             $nextid = $db2->nextid($cfg["tab"]["tpl_conf"]);

            /* Array storing the category->template allocations fot later reallocation */
            $cfg_old_new[] = array('oldidtplcfg' => $db->f('idtplcfg'),
                                   'newidtplcfg' => $nextid);

            $keystring   = "";
            $valuestring = "";

            foreach($db->Record as $key => $value) {
                if (is_string($key) && (strpos($key, 'idtplcfg') === false) && (strpos($key, 'idlang') !== 0)) {
                    $keystring   = $keystring.",".$key;
                    $valuestring = $valuestring.",'".addslashes($value)."'";
                }
            }

            $keystring = preg_replace('/,$/', '', $keystring);
            $keystring = preg_replace('/^,/', '', $keystring);

            $valuestring = preg_replace('/,$/', '', $valuestring);
            $valuestring = preg_replace('/^,/', '', $valuestring);

            //********* duplicates entry in DB ****************
            $sql = "INSERT INTO ".$cfg["tab"]["tpl_conf"]." (idtplcfg, ".Contenido_Security::escapeDB($keystring, $db2).") VALUES ('".Contenido_Security::toInteger($nextid)."', ".Contenido_Security::escapeDB($valuestring, $db2).")";
            $db2->query($sql);

        }

        /*
            - REMARK - JL - 15.07.03

            Available tpl-cfg allocation arrays are:

            $cfg_cat = array('idcatlang' => n,
                             'idtplcfg'  => n);

            $cfg_art = array('idartlang' => n,
                             'idtplcfg'  => n);

            $cfg_old_new = array('oldidtplcfg' => n,
                                 'newidtplcfg' => n);
        */

        /* Copy the template configuration data */
        if (is_array($cfg_old_new)) {
            foreach ($cfg_old_new as $data) {
                $oldidtplcfg = $data['oldidtplcfg'];
                $newidtplcfg = $data['newidtplcfg'];

                $sql = "SELECT number, container FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg = '".Contenido_Security::toInteger($oldidtplcfg)."' ORDER BY number ASC";
                $db->query($sql);

                $container_data = array();

                while ($db->next_record()) {
                    $container_data[$db->f('number')] = $db->f('container');
                }

                if (is_array($container_data)) {
                    foreach ($container_data as $number => $data) {
                        $nextid = $db->nextid($cfg["tab"]["container_conf"]);
                        $sql = "INSERT INTO ".$cfg["tab"]["container_conf"]. "
                                (idcontainerc, idtplcfg, number, container) VALUES ('".Contenido_Security::toInteger($nextid)."', '".Contenido_Security::toInteger($newidtplcfg)."',
                                '".Contenido_Security::toInteger($number)."', '".Contenido_Security::escapeDB($data, $db)."')";
                        $db->query($sql);
                    }
                }
            }
        }

        /* Reallocate the category -> templatecfg allocations */
        if (is_array($cfg_cat)) {
            foreach($cfg_cat as $data) {
                if ($data['idtplcfg'] != 0) {
                    // Category has a configuration
                    foreach ($cfg_old_new as $arr) {
                        if ($data['idtplcfg'] == $arr['oldidtplcfg']) {
                            $sql = "UPDATE ".$cfg["tab"]["cat_lang"]." SET idtplcfg = '".Contenido_Security::toInteger($arr['newidtplcfg'])."' WHERE idcatlang = '".Contenido_Security::toInteger($data['idcatlang'])."'";
                            $db->query($sql);
                        }
                    }
                }
            }
        }

        /* Reallocate the article -> templatecfg allocations */
        if (is_array($cfg_art)) {
            foreach($cfg_art as $data) {
                if ($data['idtplcfg'] != 0) {
                    // Category has a configuration
                    foreach ($cfg_old_new as $arr) {
                        if ($data['idtplcfg'] == $arr['oldidtplcfg']) {
                            // We have a match :)
                            $sql = "UPDATE ".$cfg["tab"]["art_lang"]." SET idtplcfg = '".Contenido_Security::toInteger($arr['newidtplcfg'])."' WHERE idartlang = '".Contenido_Security::toInteger($data['idartlang'])."'";
                            $db->query($sql);
                        }
                    }
                }
            }
        }
    }

    /* Update code */
    conGenerateCodeForAllarts();
}


/**
 * Delete a language
 *
 * @author Jan Lengowski <Jan.Lengowski@4fb.de>
 * @author Olaf Niemann <Olaf.Niemann@4fb.de>
 * @copyright four for business AG <www.4fb.de>
 */
function langDeleteLanguage($idlang, $idclient = "") {
    global $db, $cfg, $notification;

    $deleteok = 1;
    
    if (!is_numeric($idclient)) {
        $idclient = cRegistry::getClientId();
    }

    //************ check if there are still arts online
    $sql = "SELECT * FROM ".$cfg["tab"]["art_lang"]." AS A, ".$cfg["tab"]["art"]." AS B WHERE A.idart=B.idart AND B.idclient='".Contenido_Security::toInteger($idclient)."'
            AND A.idlang='".Contenido_Security::toInteger($idlang)."' AND A.online='1'";
    $db->query($sql);
    if ($db->next_record()) {
        conDeleteArt($db->f("idart"));
    }

    //************ check if there are visible categories
    $sql = "SELECT * FROM ".$cfg["tab"]["cat_lang"]." AS A, ".$cfg["tab"]["cat"]." AS B WHERE A.idcat=B.idcat AND B.idclient='".Contenido_Security::toInteger($idclient)."'
            AND A.idlang='".Contenido_Security::toInteger($idlang)."' AND A.visible='1'";
    $db->query($sql);
    if ($db->next_record()) {
        strDeleteCategory($db->f("idcat"));
    }

    if ($deleteok == 1) {
        //********* check if this is the clients last language to be deleted, if yes delete from art, cat, and cat_art as well *******
        $lastlanguage = 0;
        $sql = "SELECT COUNT(*) FROM ".$cfg["tab"]["clients_lang"]." WHERE idclient='".Contenido_Security::toInteger($idclient)."'";
        $db->query($sql);
        $db->next_record();
        if ($db->f(0) == 1) {
            $lastlanguage = 1;
        }

        //********** delete from 'art_lang'-table *************
        $sql = "SELECT A.idtplcfg AS idtplcfg, idartlang, A.idart FROM ".$cfg["tab"]["art_lang"]." AS A, ".$cfg["tab"]["art"]." AS B WHERE A.idart=B.idart AND B.idclient='".Contenido_Security::toInteger($idclient)."'
                AND idlang!='0' AND idlang='".Contenido_Security::toInteger($idlang)."'";
        $db->query($sql);
        while ($db->next_record()) {
            $a_idartlang[]	= $db->f("idartlang");
            $a_idart[]		= $db->f("idart");
            $a_idtplcfg[]	= $db->f("idtplcfg");
        }
        if (is_array($a_idartlang)) {
            foreach ($a_idartlang as $value) {
                $sql = "DELETE FROM ".$cfg["tab"]["art_lang"]." WHERE idartlang='".Contenido_Security::escapeDB($value, $db)."'";
                $db->query($sql);

                $sql = "DELETE FROM ".$cfg["tab"]["content"]." WHERE idartlang='".Contenido_Security::escapeDB($value, $db)."'";
                $db->query($sql);

                $sql = "DELETE FROM ".$cfg["tab"]["link"]." WHERE idartlang='".Contenido_Security::escapeDB($value, $db)."'";
                $db->query($sql);
            }
        }

        if ($lastlanguage == 1) {
            if (is_array($a_idart)) {
                foreach ($a_idart as $value) {
                    $sql = "DELETE FROM ".$cfg["tab"]["art"]." WHERE idart='".Contenido_Security::escapeDB($value, $db)."'";
                    $db->query($sql);
                    $sql = "DELETE FROM ".$cfg["tab"]["cat_art"]." WHERE idart='".Contenido_Security::escapeDB($value, $db)."'";
                    $db->query($sql);
                }
            }
        }

        //********** delete from 'cat_lang'-table *************
        $sql = "SELECT A.idtplcfg AS idtplcfg, idcatlang, A.idcat FROM ".$cfg["tab"]["cat_lang"]." AS A, ".$cfg["tab"]["cat"]." AS B WHERE A.idcat=B.idcat AND B.idclient='".Contenido_Security::toInteger($idclient)."'
                AND idlang!='0' AND idlang='".Contenido_Security::toInteger($idlang)."'";
        $db->query($sql);
        while ($db->next_record()) {
            $a_idcatlang[]	= $db->f("idcatlang");
            $a_idcat[]		= $db->f("idcat");
            $a_idtplcfg[]	= $db->f("idtplcfg"); // added
        }
        if (is_array($a_idcatlang)) {
            foreach ($a_idcatlang as $value) {
                $sql = "DELETE FROM ".$cfg["tab"]["cat_lang"]." WHERE idcatlang='".Contenido_Security::escapeDB($value, $db)."'";
                $db->query($sql);
            }
        }
        if ($lastlanguage == 1) {
            if (is_array($a_idcat)) {
                foreach ($a_idcat as $value) {
                    $sql = "DELETE FROM ".$cfg["tab"]["cat"]." WHERE idcat='".Contenido_Security::escapeDB($value, $db)."'";
                    $db->query($sql);
                    $sql = "DELETE FROM ".$cfg["tab"]["cat_tree"]." WHERE idcat='".Contenido_Security::escapeDB($value, $db)."'";
                    $db->query($sql);
                }
            }
        }

        //********** delete from 'stat'-table *************
        $sql = "DELETE FROM ".$cfg["tab"]["stat"]." WHERE idlang='".Contenido_Security::toInteger($idlang)."' AND idclient='".Contenido_Security::toInteger($idclient)."'";
        $db->query($sql);

        //********** delete from 'code'-table *************
        $sql = "DELETE FROM ".$cfg["tab"]["code"]." WHERE idlang='".Contenido_Security::toInteger($idlang)."' AND idclient='".Contenido_Security::toInteger($idclient)."'";
        $db->query($sql);

        if (is_array($a_idtplcfg)) {
            foreach ($a_idtplcfg as $tplcfg) {
                if ($tplcfg != 0) {
                    //********** delete from 'tpl_conf'-table *************
                    $sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg='".Contenido_Security::toInteger($tplcfg)."'";
                    $db->query($sql);

                    //********** delete from 'container_conf'-table *************
                    $sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg='".Contenido_Security::toInteger($tplcfg)."'";
                    $db->query($sql);
                }
            }
        }

        //*********** delete from 'clients_lang'-table*************
        $sql = "DELETE FROM ".$cfg["tab"]["clients_lang"]." WHERE idclient='".Contenido_Security::toInteger($idclient)."' AND idlang='".Contenido_Security::toInteger($idlang)."'";
        $db->query($sql);

        //*********** delete from 'lang'-table*************
        $sql = "DELETE FROM ".$cfg["tab"]["lang"]." WHERE idlang='".Contenido_Security::toInteger($idlang)."'";
        $db->query($sql);
    } else {
        return $notification->messageBox("error", i18n("Could not delete language"),0);
    }
}


/**
 * Deactivate a language
 *
 * @author Jan Lengowski <Jan.Lengowski@4fb.de>
 * @author Olaf Niemann <Olaf.Niemann@4fb.de>
 * @copyright four for business AG <www.4fb.de>
 */
function langActivateDeactivateLanguage($idlang, $active) {
    global $db;
    global $sess;
    global $client;
    global $cfg;

    $sql = "UPDATE ".$cfg["tab"]["lang"]." SET active='".Contenido_Security::toInteger($active)."' WHERE idlang='".Contenido_Security::toInteger($idlang)."'";
    $db->query($sql);
}


function langGetTextDirection ($idlang, $db = null) {
    global $cfg;

    if ($db == null || !is_object($db)) {
        $db = new DB_ConLite;
    }

    $sql = "SELECT direction FROM ".$cfg["tab"]["lang"] ." WHERE idlang='".Contenido_Security::toInteger($idlang)."'";
    $db->query($sql);

    if ($db->next_record()) {
        $direction = $db->f("direction");

        if ($direction != "ltr" && $direction != "rtl") {
            return "ltr";
        } else {
            return $direction;
        }
    } else {
        return "ltr";
    }
}

?>