<?php
/**
 * Created by JetBrains PhpStorm.
 * User: mindblast
 * Date: 05.01.12
 * Time: 14:42
 * To change this template use File | Settings | File Templates.
 */


class TabCtrl
{
    private $tabs = array();
    private $aktiverTab;
    private $neuerTab;
    private $speichern;
    private $errorInfos;

    public function getFormErrorMessage() {
        return $this->errorInfos['FormErrorMessage'];
    }

    function __construct() {
        $this->aktiverTab = (isset($_POST['aktiverTab'])?$_POST['aktiverTab']:0);
        $this->neuerTab = (isset($_POST['neuerTab'])?$_POST['neuerTab']:null);
        $this->languageId = (isset($_POST['languageId'])?$_POST['languageId']:null);
        $this->neueLanguageId = (isset($_POST['neueLanguageId'])?$_POST['neueLanguageId']:null);
        $this->speichern = isset($_POST['absenden']);
    }

    function AddTab($TabName, $IncFileValidateAndSave, $IncFileTemplate, $MultiLingual = false) {
        $this->tabs[] = array('TabName' => $TabName, 'IncFileValidateAndSave' => $IncFileValidateAndSave, 'IncFileTemplate' => $IncFileTemplate, 'MultiLingual' => $MultiLingual);
    }

    function HandleSaveAndTabChange() {
        if(isset($this->aktiverTab) && ($this->speichern || isset($this->neuerTab))) {

            include_once($this->tabs[$this->aktiverTab]['IncFileValidateAndSave']);
            $this->errorInfos = array();
            if(TrySaveTab($this->errorInfos, $this->languageId)) {
                if($this->neuerTab != null) {
                    $this->aktiverTab = $this->neuerTab;
                }
                if($this->neueLanguageId != null) {
                    $this->languageId = $this->neueLanguageId;
                } else if($this->tabs[$this->aktiverTab]['MultiLingual']) {
                    $this->languageId = GetDefaultLanguageID();
                }
            }
        }
    }

    function renderHTML() {

        global $s_speichern, $KundenID;
        $errorInfos = $this->errorInfos;
        $LanguageID = $this->languageId;

?>
        <script type="text/javascript">
            function TryChangeToTab(tabIndex, languageId) {
                document.form_tab.neuerTab.value = tabIndex;
                if(languageId)
                    document.form_tab.neueLanguageId.value = languageId;
                document.form_tab.submit();
            }
        </script>
        <ul class="contentTab">
<?php
        foreach($this->tabs as $index=>$tab) {
            if($index == $this->aktiverTab) {
                if($tab['MultiLingual']) {
                    $languages = GetLanguageDataArray();
                } else {
                    $languages = array();
                }?>
                <li class="aktiv"><?php echo $tab['TabName']?>&nbsp;
                <?php foreach($languages as $language) {?>
                    <input class="languageIcon" type="image" value="<?php echo $language['language_id']?>" src="<?php echo URLPFAD . 'images/dbimages/' . ($this->languageId == $language['language_id']?$language['language_image_admintool_active']:$language['language_image_admintool_inactive'])?>"
                       <?php if($language['language_id'] != $this->languageId) {?>onclick="TryChangeToTab(<?php echo $index?>, <?php echo $language['language_id']?>)"<?php }?>>
                <?php }?>
                </li>
        <?php } else { ?>
                <li><a href="javascript:TryChangeToTab(<?php echo $index?>)"><?php echo $tab['TabName']?></a></li>
        <?php }
        } ?>
        </ul>
        <form name="form_tab" action="" method="post" style="clear: both" enctype="multipart/form-data">
        <input type="hidden" name="aktiverTab" value="<?php echo $this->aktiverTab?>">
        <input type="hidden" name="neuerTab" value="">
            <?php if($tab['MultiLingual']) {?>
        <input type="hidden" name="languageId" value="<?php echo $this->languageId?>">
        <input type="hidden" name="neueLanguageId" value="">
            <?php }?>
        <fieldset class="contentForm">
        <?php include_once($this->tabs[$this->aktiverTab]['IncFileTemplate']);?>
        </fieldset>
        <input class="submitButton" type="submit" name="absenden" value="<?php echo _('Speichern')?>">
        </form>
<?php
    }
}
?>