summaryrefslogblamecommitdiffstats
path: root/main/survey/app/Models/SaveSurvey.php
blob: 8bbd3728eac65c5a035ae62dc9cf6308c437b899 (plain) (tree)
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187





























































































                                                                                                                                          
                                                                                               











                                                                                                                                                                                                                        








                                                                                     































































                                                                                                                                              


                                                                                                                                     
                                                                                                                                                             
                 





                                                                                                                                                                                      






































































                                                                                                                                                                                                                                 
                                                                                                                   






































































                                                                                                                                                                                                                               
                                                                                                                          














                                                                                                                               
                                                                                                                         

























                                                                                                                                                                                  

                                                                                                                                                   

















































                                                                                                                                                                     
                                                                                                                                                                                    








































































                                                                                                                                                                                       
                                                                                                                         
















































































                                                                                                                                                                                                         
                                                                                                                         




























                                                                                                                                                                                                           
                                                                                                                                                                          










                                                                                                                                                                                                            
                                                                                                                                 


















































































                                                                                                                                                                                                                   
                                                                                                                                 



































































































                                                                                                                                                                                                                   
                                                                                                                                                                                                       





















































































































































































































































































































































































                                                                                                                                                                                                                                   

                                                                                         
 
                                                                
 






                                                                                                                                                        
                                      
                                          















                                                                                                                                                                                       
                                      
                              













                                                                                                                                                         
 
                                        

                                                                                         

                                                            
     



                                                                                                                                                                        


                                                

                                      


                                                                                                







                                                                                                                                                                                                       


                                              





















































































































































                                                                                                                                                                                   



                                                                                                                                                        
























































































                                                                                                                                                                        
 

                                                                                                                                                        
 
                                     
 

                                                                                                                                                                            


                                                                           











































                                                                                                                                                      
                                                                                                                                                                                                                     






























































































                                                                                                                                                                                                                                                    
<?php
/***************************************
 * Description:
 * Autor: Robert Šmalc
 * Created date: 26.02.2016
 *****************************************/

namespace App\Models;


// Osnovni razredi
use App\Controllers\CheckController as Check;
use App\Controllers\Controller;
use SurveyInfo;
use SurveySetting;
use Common;
use enkaParameters;

// Iz admin/survey


// Vprašanja

class SaveSurvey extends Model
{

    public function __construct()
    {
        // Definiramo globalne spremenljivke, ki jih kasneje uporabljamo v funkcijah
        global $admin_type;
        global $lang;

        //self::$admin_type = $admin_type;
        //$this->lang = $lang;

    }

    /************************************************
     * Get instance
     ************************************************/
    protected static $_instance;

    public static function getInstance()
    {
        if (self::$_instance) {
            self::refreshVariables();
            return self::$_instance;
        }

        return new SaveSurvey();
    }

    private function refreshVariables()
    {
        return (new Controller())->getGlobalVariables();
    }

	
    /**
     * obdela poslano stran in jo shrani v bazo
     * za (vecino) podatkovnih querijev se podatki kesirajo v zgornje ^ spremenljivke, in se jih naenkrat shrani v bazo v posted_commit()
     *
     * @param mixed $preskocena_stran v primeru, da stran preskocimo, to zapisemo v bazo v srv_user_grupa
     * @param mixed $spr_id podamo v primeru, da shranjujemo samo 1 spremenljivko (in ne celo stran), uporablja se pri urejanju podatkov
     */
    public function posted($preskocena = 0, $spr_id = 0){
        global $lang;
        global $admin_type;


        // Modul panel - status - shranimo v cookie, ker drugace se vcasih ne ohrani do konca ce so strani preskocene
        if(isset($_POST['panel_status']) && $_POST['panel_status'] != ''){
            setcookie('panel_status', $_POST['panel_status'], 0, '/');
        }
            
        Check::getInstance()->check_captcha();

        # če smo samo v predogledu uporabnika ne shranjujemo
        if (get('quick_view') == true) {
            return false;
        }

        $loop_id = get('loop_id') == null ? "NULL" : "'" . get('loop_id') . "'";

        $rowa = SurveyInfo::getInstance()->getSurveyRow();
        
        // podatke shranimo v vsakem primeru, ker jih v neaktivni ali predogledu potem na koncu zbrisemo!!!

        // updatamo, ce ne gre za preskoceno stran. pri preskoceni strani, pa updatamo samo prvic
        if ($preskocena == 0 || get('preskocena_first') == 1) {

            SurveySetting::getInstance()->Init(get('anketa'));
            $date = SurveySetting::getInstance()->getSurveyMiscSetting('survey_date');

            if ($date == 0 || $date == '') $_time_insert = "NOW()"; else $_time_insert = "''";

            if (isset($_GET['language'])) save('language', (int)$_GET['language']); else save('language', $lang['id']);
            // popravimo cas updata
            $s = sisplet_query("UPDATE srv_user SET time_edit = " . $_time_insert . ", language='" . get('language') . "' WHERE id='" . get('usr_id') . "'");
            if (!$s) {
                echo 'err3433' . mysqli_error($GLOBALS['connect_db']);
                die();
            }
            // po straneh
            sisplet_query("REPLACE INTO srv_user_grupa" . get('db_table') . " (gru_id, usr_id, time_edit, preskocena) VALUES ('" . get('grupa') . "', '" . get('usr_id') . "', " . $_time_insert . ", '$preskocena')");
            if ($preskocena == 1) save('preskocena_first', 0);

            // Ce imamo napredni modul za belezenje casovc po straneh
            if(SurveyInfo::getInstance()->checkSurveyModule('advanced_timestamps')){
                sisplet_query("INSERT INTO srv_advanced_timestamps 
                                (gru_id, usr_id, time_edit) 
                                VALUES 
                                ('".get('grupa')."', '".get('usr_id')."', NOW())
                            ");     
            }

            # potrebno bo osvežit seznam anket
            Model::setUpdateSurveyList();
        }

        SurveySetting::getInstance()->Init(get('anketa'));
        $question_resp_comment = SurveySetting::getInstance()->getSurveyMiscSetting('question_resp_comment');


        /**
         * Tele spremenljivke so za vse INSERTe, ki se vnasajo v tabele (z imenom spremenljivke)
         * Namen je ta, da se vnosi kesirajo in naenkrat vnesejo v bazo, kar pohitri celotno zadevo
         * V bazo ne shranjuje v tej funkciji, ampak se potem dodatno poklice se posted_commit()
         */
        $srv_data_grid = '';
        $srv_data_vrednost = '';
        $srv_data_text = '';
        $srv_data_checkgrid = '';
        $srv_data_textgrid = '';
        $srv_data_rating = '';
        $srv_data_vrednost_cond = '';
        $srv_data_map = '';
        $srv_data_heatmap = '';

        if ($preskocena == 1) {
            $srv_data_grid = get('cache_srv_data_grid');
            $srv_data_vrednost = get('cache_srv_data_vrednost');
            $srv_data_text = get('cache_srv_data_text');
            $srv_data_checkgrid = get('cache_srv_data_checkgrid');
            $srv_data_textgrid = get('cache_srv_data_textgrid');
            $srv_data_rating = get('cache_srv_data_rating');
            $srv_data_vrednost_cond = get('cache_srv_data_vrednost_cond');
            $srv_data_map = get('cache_srv_data_map');
            $srv_data_heatmap = get('cache_srv_data_heatmap');
        }

        // shranjevanje pri hitrem editiranju vnosov - preskocimo vprasanja z uploadom ker drugace zgubimo datoteke
        if (isset($_GET['m']) && $_GET['m'] == 'quick_edit'){     
            $sql = sisplet_query("SELECT s.* FROM srv_spremenljivka s, srv_grupa g 
                                    WHERE s.gru_id=g.id AND g.ank_id='" . get('anketa') . "' AND s.visible='1' AND '$admin_type' <= s.dostop 
                                        AND !(s.tip='21' AND (s.upload='1' OR s.upload='2' OR s.signature='1'))
                                    ORDER BY s.vrstni_red ASC");
        }
        // shranjevanje vseh spremenljivk na enkrat pri all pages preview-u
        elseif (get('displayAllPages')) {    
            $sql = sisplet_query("SELECT s.* FROM srv_spremenljivka s, srv_grupa g 
                                    WHERE s.gru_id=g.id AND g.ank_id='" . get('anketa') . "' AND s.visible='1' AND '$admin_type' <= s.dostop 
                                    ORDER BY s.vrstni_red ASC");
        } 
        // normalno shranjevanje
        elseif ($spr_id == 0){     
            $sql = sisplet_query("SELECT * FROM srv_spremenljivka 
                                    WHERE gru_id='" . get('grupa') . "' AND visible='1' AND '$admin_type' <= dostop 
                                    ORDER BY vrstni_red ASC");
        }
        // shranimo samo 1 spremenljivko (pri popravljanju podatkov v bazi)
        elseif ($spr_id > 0){ 
            $sql = sisplet_query("SELECT * FROM srv_spremenljivka WHERE id='$spr_id'");
        }

        // gremo cez vprasanja v trenutni grupi (strani)
        while ($row = mysqli_fetch_array($sql)) {

            // vnesemo komentar vprasanja
            if ($question_resp_comment == 1) {

                $text = isset($_POST['question_comment_' . $row['id']]) ? strip_tags($_POST['question_comment_' . $row['id']]) : '';
                
                sisplet_query("DELETE FROM srv_data_text" . get('db_table') . " WHERE spr_id='0' AND vre_id='$row[id]' AND usr_id='" . get('usr_id') . "'");
                
                if ($text != '') {
                    if (isset($_POST['inicialke']) && $_POST['inicialke'] != '')
                        $text = '<b>' . $_POST['inicialke'] . '</b> (__DATE__):' . "\n\r" . $text;
                    $s = sisplet_query("INSERT INTO srv_data_text" . get('db_table') . " (spr_id, vre_id, text, usr_id) VALUES ('0', '$row[id]', '$text', '" . get('usr_id') . "')");
                    if (!$s) echo mysqli_error($GLOBALS['connect_db']);
                }
            }

            if (($row['tip'] < 14) || ($row['tip'] > 15)) {

                // pri ratingu ne smemo brisat kadar se shranjuje preko ajaxa
                if ($row['tip'] != 17 
                    || ($row['tip'] == 17 && 
                            ($row['design'] == 1 || $row['design'] == 3 || get('mobile') > 0)
                        )
                    )
                    
                    add('cache_delete', $row['id'] . ',');                    
            } 
            else {

                save('loop_AW', $_POST['loop_AW']);
                save('ime_AW', $_POST['ime_AW']);

                if ($row['podpora'] == 1) {
                    $sql1 = sisplet_query("SELECT * FROM srv_data_imena WHERE usr_id='" . get('usr_id') . "' AND ((emotion=1 AND countE<6) OR (emotionINT=1)) ORDER BY countE ");
                } elseif ($row['podpora'] == 2) {
                    $sql1 = sisplet_query("SELECT * FROM srv_data_imena WHERE usr_id='" . get('usr_id') . "' AND ((social=1 AND countS<6) OR (socialINT=1)) AND ((emotion<1 OR countE>5) AND (emotionINT<1)) ORDER BY countS ");
                }

                if (get('ime_AW') - 1 != -1)
                    if (mysqli_num_rows($sql1) > 0)
                        mysqli_data_seek($sql1, get('ime_AW') - 1);
                    else
                        if (mysqli_num_rows($sql1) > 0)
                            mysqli_data_seek($sql1, mysqli_num_rows($sql1) - 1);

                $row1 = mysqli_fetch_array($sql1);

                sisplet_query("DELETE FROM srv_data_grid" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "' AND vre_id='$row1[id]'");
                sisplet_query("DELETE FROM srv_data_vrednost" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "'");
                sisplet_query("DELETE FROM srv_data_text" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "'");
            }


            // če imamo polja 99,98,97 shranimo te vrednosti ( vrednost_$row[id]_other )
            if (isset($_POST['other_selected_vrednost_' . $row['id']]) && $_POST['other_selected_vrednost_' . $row['id']] != "")
                $saved_other = Model::setOtherValue($row['id'], $_POST['other_selected_vrednost_' . $row['id']]);
            else // pobrišemo morebitne zapise
                $deleted_other = Model::setOtherValue($row['id'], null);


            $hasOthers = $this->savePostedSpecialVars($row);
            if ($row['tip'] != 5) {    // ni nagovor


                // radio ali select - dodaten pogoj zaradi spola pri glasovanju, ki ga preverjamo na koncu
                if (($row['tip'] == 1 || $row['tip'] == 3) && (($rowa['survey_type'] != 0) || ($row['vrstni_red'] == 1))) {

                    $vrednost = (isset($_POST['vrednost_' . $row['id']]) ? $_POST['vrednost_' . $row['id']] : null);

                    if ($rowa['mass_insert'] == 1 && $_GET['m'] != 'quick_edit' && $_GET['a'] != 'edit_data_question_save') $vrednost = Model::mass_insert($row['id'], $row['tip'], $_POST['vrednost_' . $row['id']]);
                    if ($_POST['visible_' . $row['id']] == 1) {

                        // ce je drag-drop postavitev (orientation == 8)
                        if ($row['orientation'] == 8 && get('mobile') != 1) {
                            $sql_8 = sisplet_query("SELECT vre_id FROM srv_data_vrednost" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "'");
                            $row_8 = mysqli_fetch_array($sql_8);
                            $vrednost_8 = $row_8['vre_id'];
                            $srv_data_vrednost .= "('$row[id]', '$vrednost_8', '" . get('usr_id') . "', $loop_id),";
                        }

                        if ($vrednost > 0) {
                            $srv_data_vrednost .= "('$row[id]', '$vrednost', '" . get('usr_id') . "', $loop_id),";
                            
                            Model::user_not_lurker();
                            
                            if (isset($_POST['textfield_' . $vrednost]) && $_POST['textfield_' . $vrednost] != '')
                                $srv_data_text .= "('$row[id]', '$vrednost', '" . $_POST['textfield_' . $vrednost] . "', '', '" . get('usr_id') . "', $loop_id),";
                        } 
                        else {

                        }
                    } 
                    else {
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }


                    // checkbox
                } elseif ($row['tip'] == 2) {

                    if ($_POST['visible_' . $row['id']] == 1) {

                        //ce je drag-drop postavitev (orientation == 8)
                        if ($row['orientation'] == 8 && get('mobile') != 1) {
                            
                            $sql_8 = sisplet_query("SELECT vre_id FROM srv_data_vrednost" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "'");
                            
                            while ($row_8 = mysqli_fetch_array($sql_8)) {
                                $vrednost_8 = $row_8['vre_id'];
                                $srv_data_vrednost .= "('$row[id]', '$vrednost_8', '" . get('usr_id') . "', $loop_id),";
                            }
                        }

                        if (isset($_POST['vrednost_' . $row['id']])) {

                            $vrednost = $_POST['vrednost_' . $row['id']];
                            
                            if ($rowa['mass_insert'] == 1 && $_GET['m'] != 'quick_edit' && $_GET['a'] != 'edit_data_question_save') $vrednost = Model::mass_insert($row['id'], $row['tip'], $_POST['vrednost_' . $row['id']]);

                            //ce ni drag-drop postavitev (orientation != 8)
                            if ($row['orientation'] != 8 || get('mobile') == 1) {
                                foreach ($vrednost AS $key => $val) {
                                    if ($val > 0) {
                                        $srv_data_vrednost .= "('$row[id]', '$val', '" . get('usr_id') . "', $loop_id),";

                                        Model::user_not_lurker();

                                        if (isset($_POST['textfield_' . $val]) && $_POST['textfield_' . $val] != '')
                                            $srv_data_text .= "('$row[id]', '$val', '" . $_POST['textfield_' . $val] . "', '', '" . get('usr_id') . "', $loop_id),";
                                    }
                                }
                            }

                        }

                        // če imamo if na vprašanjij, imamo v arrayu vrednosti katere so -2
                        if (isset($_POST['cond_vrednost_' . $row['id']])) {
                            $vrednost = $_POST['cond_vrednost_' . $row['id']];
                            foreach ($vrednost AS $key => $val) {
                                if ($val > 0) {
                                    $srv_data_vrednost_cond .= "('$row[id]', '$val', '-2', '" . get('usr_id') . "', $loop_id),";
                                }
                            }
                        }
                    } else {
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }


                    // multigrid
                } elseif ($row['tip'] == 6 && $row['enota'] != 3) {

                    if ($_POST['visible_' . $row['id']] == 1) {

                        $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'");
                        while ($row1 = mysqli_fetch_array($sql1)) {

                            $grid_id = isset($_POST['vrednost_' . $row1['id']]) ? $_POST['vrednost_' . $row1['id']] : '';

                            // $grid_id  > 0
                            if ((string)$grid_id != "") { 
                                # grid_id je lahko tudi negativen za missing vrednosti
                                $srv_data_grid .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', $loop_id),";
                                Model::user_not_lurker();
                            } 
                            else {
                                // če imamo if na vprašanju, imamo v arrayu vrednosti katere so -2
                                if (isset($_POST['cond_vrednost_' . $row1['id']])) {
                                    $srv_data_grid .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '-2', $loop_id),";
                                }
                            }

                            // vsebino text polja vnesemo v vsakem primeru
                            if (isset($_POST['textfield_' . $row1['id']]) && $_POST['textfield_' . $row1['id']] != '') {
                                $srv_data_text .= "('$row[id]', '$row1[id]', '" . $_POST['textfield_' . $row1['id']] . "', '', '" . get('usr_id') . "', $loop_id),";
                                Model::user_not_lurker();
                            }
                        }

                        //ureditev za drag and drop grid
                        if ($row['enota'] == 9) {    //ce je postavitev drag and drop
                            $sql_9 = sisplet_query("SELECT vre_id, grd_id FROM srv_data_grid" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "'");
                            while ($row_9 = mysqli_fetch_array($sql_9)) {
                                $vrednost_9 = $row_9['vre_id'];
                                $grd_id_9 = $row_9['grd_id'];
                                $srv_data_grid .= "('$row[id]', '$vrednost_9', '" . get('usr_id') . "', $grd_id_9,  $loop_id),";
                            }
                        }
                    } 
                    else {
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }

                    //double multigrid
                } elseif ($row['tip'] == 6 && $row['enota'] == 3) {
                    if ($_POST['visible_' . $row['id']] == 1) {

                        $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'");
                        while ($row1 = mysqli_fetch_array($sql1)) {

                            $grid_id = isset($_POST['vrednost_' . $row1['id']]) ? $_POST['vrednost_' . $row1['id']] : "";
                            $grid_id2 = isset($_POST['vrednost_' . $row1['id'] . '_part_2']) ? $_POST['vrednost_' . $row1['id'] . '_part_2'] : "";

                            if ((string)$grid_id != "") // $grid_id  > 0
                            { # grid_id je lahko tudi negativen za missing vrednosti
                                $srv_data_checkgrid .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', $loop_id),";
                                Model::user_not_lurker();
                            } 
                            else {
                            }

                            if ((string)$grid_id2 != "") // $grid_id2  > 0
                            { # grid_id2 je lahko tudi negativen za missing vrednosti
                                $srv_data_checkgrid .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id2', $loop_id),";
                                Model::user_not_lurker();
                            }

                            // vsebino text polja vnesemo v vsakem primeru
                            if (isset($_POST['textfield_' . $row1['id']]) && $_POST['textfield_' . $row1['id']] != '') {
                                $srv_data_text .= "('$row[id]', '$row1[id]', '" . $_POST['textfield_' . $row1['id']] . "', '', '" . get('usr_id') . "', $loop_id),";
                                Model::user_not_lurker();
                            }
                        }

                    } else {
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }


                    // multicheckbox
                } elseif ($row['tip'] == 16) {

                    if ($_POST['visible_' . $row['id']] == 1) {
                        $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'");

                        $sql2 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");

                        while ($row1 = mysqli_fetch_array($sql1)) {
                            if (mysqli_num_rows($sql2) > 0)
                                mysqli_data_seek($sql2, 0);

                            // Ce imamo select-boxe moramo drugace obdelat podatke
                            if ($row['enota'] == 6) {
                                $vrednost = $_POST['vrednost_' . $row1['id']];

                                foreach ($vrednost AS $key => $val) {
                                    $srv_data_checkgrid .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '$val', $loop_id),";
                                    Model::user_not_lurker();
                                }
                            } else {
                                while ($row2 = mysqli_fetch_array($sql2)) {

                                    $grid_id = isset($_POST['vrednost_' . $row1['id'] . '_grid_' . $row2['id']]) ? $_POST['vrednost_' . $row1['id'] . '_grid_' . $row2['id']] : "";

                                    // $grid_id  > 0
                                    if ((string)$grid_id != ""){ 
                                        # grid_id je lahko tudi negativen za missing vrednosti
                                        $srv_data_checkgrid .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', $loop_id),";
                                        Model::user_not_lurker();
                                    } 
                                    else {
                                    }
                                }
                            }

                            // vsebino text polja vnesemo v vsakem primeru
                            if ($_POST['textfield_' . $row1['id']] != '') {
                                $srv_data_text .= "('$row[id]', '$row1[id]', '" . $_POST['textfield_' . $row1['id']] . "', '', '" . get('usr_id') . "', $loop_id),";
                                Model::user_not_lurker();
                            }
                        }
                        //ureditev za drag and drop grid
                        if ($row['enota'] == 9) {    //ce je postavitev drag and drop
                            $sql_9 = sisplet_query("SELECT vre_id, grd_id FROM srv_data_checkgrid" . get('db_table') . " WHERE spr_id='$row[id]' AND usr_id='" . get('usr_id') . "'");
                            while ($row_9 = mysqli_fetch_array($sql_9)) {
                                $vrednost_9 = $row_9['vre_id'];
                                $grd_id_9 = $row_9['grd_id'];
                                $srv_data_checkgrid .= "('$row[id]', '$vrednost_9', '" . get('usr_id') . "', $grd_id_9,  $loop_id),";
                            }
                        }

                    } else {
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }

                    // multitext
                } elseif ($row['tip'] == 19) {
                    if ($_POST['visible_' . $row['id']] == 1) {

                        $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'");

                        $sql2 = sisplet_query("SELECT id, other FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");
                        if (!$sql2) echo mysqli_error($GLOBALS['connect_db']);

                        while ($row1 = mysqli_fetch_array($sql1)) {

                            //$sql2 = sisplet_query("SELECT * FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");
                            if (mysqli_num_rows($sql2) > 0)
                                mysqli_data_seek($sql2, 0);

                            while ($row2 = mysqli_fetch_array($sql2)) {

                                $value = $_POST['vrednost_' . $row1['id'] . '_grid_' . $row2['id']];
                                $grid_id = $row2['id'];

                                # če mamo missing
                                if ($row2['other'] != 0
                                    && isset($_POST['vrednost_' . $row1['id'] . '_grid_' . $row2['id']])
                                    && $_POST['vrednost_' . $row1['id'] . '_grid_' . $row2['id']] != ''
                                ) {
                                    $srv_data_grid .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', $loop_id),";
                                    Model::user_not_lurker();

                                } 
                                else if ($value != '') {
                                    $srv_data_textgrid .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', '$value', $loop_id),";
                                    Model::user_not_lurker();
                                } 
                                else {
                                    //sisplet_query("INSERT INTO srv_data_textgrid (spr_id, vre_id, usr_id, grd_id) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '-1')");
                                    // ta je bil ze prej zakomentiran...
                                }

                            }
                            
                            // vsebino text polja vnesemo v vsakem primeru
                            if (isset($_POST['textfield_' . $row1['id']]) && $_POST['textfield_' . $row1['id']] != '') {
                                $srv_data_text .= "('$row[id]', '$row1[id]', '" . $_POST['textfield_' . $row1['id']] . "', '', '" . get('usr_id') . "', $loop_id),";
                                Model::user_not_lurker();
                            }
                        }

                    } else {
                        
                        // Poseben primer za modul sazu in komentarje na razvrscanje regij
                        if(SurveyInfo::getInstance()->checkSurveyModule('sazu')){

                            $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'");

                            $sql2 = sisplet_query("SELECT id, other FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");
                            if (!$sql2) echo mysqli_error($GLOBALS['connect_db']);

                            while ($row1 = mysqli_fetch_array($sql1)) {

                                if (mysqli_num_rows($sql2) > 0)
                                    mysqli_data_seek($sql2, 0);

                                while ($row2 = mysqli_fetch_array($sql2)) {

                                    $value = $_POST['vrednost_' . $row1['id'] . '_grid_' . $row2['id']];
                                    $grid_id = $row2['id'];

                                    if ($value != '') {
                                        $srv_data_textgrid .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', '$value', $loop_id),";
                                        Model::user_not_lurker();
                                    }
                                }
                                // vsebino text polja vnesemo v vsakem primeru
                                if ($_POST['textfield_' . $row1['id']] != '') {
                                    $srv_data_text .= "('$row[id]', '$row1[id]', '" . $_POST['textfield_' . $row1['id']] . "', '', '" . get('usr_id') . "', $loop_id),";
                                    Model::user_not_lurker();
                                }
                            }
                        }
                        else
                            $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }


                    // multinumber
                } elseif ($row['tip'] == 20) {

                    if ($_POST['visible_' . $row['id']] == 1) {

                        $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'");

                        $sql2 = sisplet_query("SELECT id, other FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");

                        while ($row1 = mysqli_fetch_array($sql1)) {

                            //$sql2 = sisplet_query("SELECT * FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");
                            if (mysqli_num_rows($sql2) > 0)
                                mysqli_data_seek($sql2, 0);

                            while ($row2 = mysqli_fetch_array($sql2)) {
                                $value = $_POST['vrednost_' . $row1['id'] . '_grid_' . $row2['id']];
                                $grid_id = $row2['id'];

                                # če mamo missing
                                if ($row2['other'] != 0
                                    && isset($_POST['vrednost_' . $row1['id'] . '_grid_' . $row2['id']])
                                    && $_POST['vrednost_' . $row1['id'] . '_grid_' . $row2['id']] != ''
                                ) {
                                    $srv_data_grid .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', $loop_id),";
                                    Model::user_not_lurker();

                                } else if ($value != '') {
                                    Model::user_not_lurker();
                                    //sisplet_query("INSERT INTO srv_data_textgrid (spr_id, vre_id, usr_id, grd_id, text) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '$grid_id', '$value')");
                                    $srv_data_textgrid .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', '$value', $loop_id),";
                                } else {
                                    //sisplet_query("INSERT INTO srv_data_textgrid (spr_id, vre_id, usr_id, grd_id) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '-1')");
                                    // ze prej ...
                                }

                            }

                            // vsebino text polja vnesemo v vsakem primeru
                            if (isset($_POST['textfield_' . $row1['id']]) && $_POST['textfield_' . $row1['id']] != '') {
                                //sisplet_query("INSERT INTO srv_data_text (spr_id, vre_id, text, usr_id) VALUES ('$row[id]', '$row1[id]', '".$_POST['textfield_'.$row1['id']]."', '".get('usr_id')."')");
                                $srv_data_text .= "('$row[id]', '$row1[id]', '" . $_POST['textfield_' . $row1['id']] . "', '', '" . get('usr_id') . "', $loop_id),";
                                Model::user_not_lurker();
                            }

                        }

                    } else {
                        //$grid_id = $row2['id'];
                        //sisplet_query("INSERT INTO srv_data_textgrid (spr_id, vre_id, usr_id, grd_id, text) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '$grid_id', '-2')");
                        //$srv_data_textgrid .= "('$row[id]', '$row1[id]', '".get('usr_id')."', '$grid_id', '-2'),";
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }

                    // multiple grid (kombinirana tabela)
                } elseif ($row['tip'] == 24) {
                    if ($_POST['visible_' . $row['id']] == 1) {

                        $spr_sql = sisplet_query("SELECT s.id, s.tip, s.enota FROM srv_grid_multiple m, srv_spremenljivka s WHERE m.parent='$row[id]' AND m.spr_id=s.id ORDER BY m.vrstni_red");
                        if (!$spr_sql) echo mysqli_error($GLOBALS['connect_db']);
                        while ($spr_row = mysqli_fetch_array($spr_sql)) {

                            add('cache_delete', $spr_row['id'] . ',');

                            if ($spr_row['tip'] == 6) {

                                $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '" . $spr_row['id'] . "'");
                                while ($row1 = mysqli_fetch_array($sql1)) {

                                    $grid_id = isset($_POST['multi_' . $spr_row['id'] . '_' . $row1['id']]) ? $_POST['multi_' . $spr_row['id'] . '_' . $row1['id']] : "";

                                    if ((string)$grid_id != "") // $grid_id  > 0
                                    { # grid_id je lahko tudi negativen za missing vrednosti
                                        //sisplet_query("INSERT INTO srv_data_grid".get('db_table')." (spr_id, vre_id, usr_id, grd_id) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '$grid_id')");
                                        $srv_data_grid .= "('$spr_row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', $loop_id),";
                                        Model::user_not_lurker();
                                    } else {
                                        //sisplet_query("INSERT INTO srv_data_grid".get('db_table')." (spr_id, vre_id, usr_id, grd_id) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '-1')");
                                        //$srv_data_grid .= "('$row[id]', '$row1[id]', '".get('usr_id')."', '-1'),";
                                    }
                                    // vsebino text polja vnesemo v vsakem primeru
                                    if (isset($_POST['textfield_' . $row1['id']]) && $_POST['textfield_' . $row1['id']] != '') {
                                        //sisplet_query("INSERT INTO srv_data_text (spr_id, vre_id, text, usr_id) VALUES ('$row[id]', '$row1[id]', '".$_POST['textfield_'.$row1['id']]."', '".get('usr_id')."')");
                                        $srv_data_text .= "('$spr_row[id]', '$row1[id]', '" . $_POST['textfield_' . $row1['id']] . "', '', '" . get('usr_id') . "', $loop_id),";
                                        Model::user_not_lurker();
                                    }
                                }

                            } elseif ($spr_row['tip'] == 16) {

                                $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$spr_row[id]'");

                                $sql2 = sisplet_query("SELECT id FROM srv_grid WHERE spr_id = '$spr_row[id]' ORDER BY vrstni_red");

                                while ($row1 = mysqli_fetch_array($sql1)) {
                                    //$sql2 = sisplet_query("SELECT * FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");
                                    if (mysqli_num_rows($sql2) > 0)
                                        mysqli_data_seek($sql2, 0);
                                    // Ce imamo select-boxe moramo drugace obdelat podatke
                                    if ($spr_row['enota'] == 6) {
                                        $vrednost = $_POST['multi_' . $spr_row['id'] . '_' . $row1['id']];    //name="multi_'.$row_spr['id'].'_'.$row2['id'].'[]"
                                        foreach ($vrednost AS $key => $val) {
                                            $srv_data_checkgrid .= "('$spr_row[id]', '$row1[id]', '" . get('usr_id') . "', '$val', $loop_id),";
                                            Model::user_not_lurker();
                                        }
                                    } else {
                                        while ($row2 = mysqli_fetch_array($sql2)) {

                                            $grid_id = $_POST['multi_' . $spr_row['id'] . '_' . $row1['id'] . '_grid_' . $row2['id']];
                                            if ((string)$grid_id != "") // $grid_id  > 0
                                            { # grid_id je lahko tudi negativen za missing vrednosti
                                                //sisplet_query("INSERT INTO srv_data_checkgrid (spr_id, vre_id, usr_id, grd_id) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '$grid_id')");
                                                $srv_data_checkgrid .= "('$spr_row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', $loop_id),";
                                                Model::user_not_lurker();
                                            } else {
                                                //sisplet_query("INSERT INTO srv_data_checkgrid (spr_id, vre_id, usr_id, grd_id) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '-1')");
                                                // ta je bil ze prej zakomentiran..
                                            }
                                        }
                                    }
                                    // vsebino text polja vnesemo v vsakem primeru
                                    if ($_POST['textfield_' . $row1['id']] != '') {
                                        //sisplet_query("INSERT INTO srv_data_text (spr_id, vre_id, text, usr_id) VALUES ('$row[id]', '$row1[id]', '".$_POST['textfield_'.$row1['id']]."', '".get('usr_id')."')");
                                        $srv_data_text .= "('$spr_row[id]', '$row1[id]', '" . $_POST['textfield_' . $row1['id']] . "', '', '" . get('usr_id') . "', $loop_id),";
                                        Model::user_not_lurker();
                                    }
                                }

                            } elseif ($spr_row['tip'] == 19) {

                                $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$spr_row[id]'");

                                $sql2 = sisplet_query("SELECT id, other FROM srv_grid WHERE spr_id = '$spr_row[id]' ORDER BY vrstni_red");
                                if (!$sql2) echo mysqli_error($GLOBALS['connect_db']);

                                while ($row1 = mysqli_fetch_array($sql1)) {

                                    //$sql2 = sisplet_query("SELECT * FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");
                                    if (mysqli_num_rows($sql2) > 0)
                                        mysqli_data_seek($sql2, 0);

                                    while ($row2 = mysqli_fetch_array($sql2)) {

                                        $value = $_POST['multi_' . $spr_row['id'] . '_' . $row1['id'] . '_grid_' . $row2['id']];
                                        $grid_id = $row2['id'];

                                        # če mamo missing
                                        if ($row2['other'] != 0
                                            && isset($_POST['multi_' . $spr_row['id'] . '_' . $row1['id'] . '_grid_' . $row2['id']])
                                            && $_POST['multi_' . $spr_row['id'] . '_' . $row1['id'] . '_grid_' . $row2['id']] != ''
                                        ) {
                                            $srv_data_grid .= "('$spr_row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', $loop_id),";
                                            Model::user_not_lurker();

                                        } else if ($value != '') {
                                            //sisplet_query("INSERT INTO srv_data_textgrid (spr_id, vre_id, usr_id, grd_id, text) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '$grid_id', '$value')");
                                            $srv_data_textgrid .= "('$spr_row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', '$value', $loop_id),";
                                            Model::user_not_lurker();
                                        } else {
                                            //sisplet_query("INSERT INTO srv_data_textgrid (spr_id, vre_id, usr_id, grd_id) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '-1')");
                                            // ta je bil ze prej zakomentiran...
                                        }

                                    }
                                    // vsebino text polja vnesemo v vsakem primeru
                                    if (isset($_POST['textfield_' . $row1['id']]) && $_POST['textfield_' . $row1['id']] != '') {
                                        //sisplet_query("INSERT INTO srv_data_text (spr_id, vre_id, text, usr_id) VALUES ('$row[id]', '$row1[id]', '".$_POST['textfield_'.$row1['id']]."', '".get('usr_id')."')");
                                        $srv_data_text .= "('$spr_row[id]', '$row1[id]', '" . $_POST['textfield_' . $row1['id']] . "', '', '" . get('usr_id') . "', $loop_id),";
                                        Model::user_not_lurker();
                                    }
                                }

                            } elseif ($spr_row['tip'] == 20) {

                                $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$spr_row[id]'");

                                $sql2 = sisplet_query("SELECT id, other FROM srv_grid WHERE spr_id = '$spr_row[id]' ORDER BY vrstni_red");

                                while ($row1 = mysqli_fetch_array($sql1)) {

                                    //$sql2 = sisplet_query("SELECT * FROM srv_grid WHERE spr_id = '$row[id]' ORDER BY vrstni_red");
                                    if (mysqli_num_rows($sql2) > 0)
                                        mysqli_data_seek($sql2, 0);

                                    while ($row2 = mysqli_fetch_array($sql2)) {

                                        $value = $_POST['multi_' . $spr_row['id'] . '_' . $row1['id'] . '_grid_' . $row2['id']];
                                        $grid_id = $row2['id'];

                                        # če mamo missing
                                        if ($row2['other'] != 0
                                            && isset($_POST['multi_' . $spr_row['id'] . '_' . $row1['id'] . '_grid_' . $row2['id']])
                                            && $_POST['multi_' . $spr_row['id'] . '_' . $row1['id'] . '_grid_' . $row2['id']] != ''
                                        ) {
                                            $srv_data_grid .= "('$spr_row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', $loop_id),";
                                            Model::user_not_lurker();

                                        } else if ($value != '') {
                                            Model::user_not_lurker();
                                            //sisplet_query("INSERT INTO srv_data_textgrid (spr_id, vre_id, usr_id, grd_id, text) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '$grid_id', '$value')");
                                            $srv_data_textgrid .= "('$spr_row[id]', '$row1[id]', '" . get('usr_id') . "', '$grid_id', '$value', $loop_id),";
                                        } else {
                                            //sisplet_query("INSERT INTO srv_data_textgrid (spr_id, vre_id, usr_id, grd_id) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '-1')");
                                            // ze prej ...
                                        }

                                    }

                                    // vsebino text polja vnesemo v vsakem primeru
                                    if ($_POST['textfield_' . $row1['id']] != '') {
                                        //sisplet_query("INSERT INTO srv_data_text (spr_id, vre_id, text, usr_id) VALUES ('$row[id]', '$row1[id]', '".$_POST['textfield_'.$row1['id']]."', '".get('usr_id')."')");
                                        $srv_data_text .= "('$spr_row[id]', '$row1[id]', '" . $_POST['textfield_' . $row1['id']] . "', '', '" . get('usr_id') . "', $loop_id),";
                                        Model::user_not_lurker();
                                    }

                                }

                            }

                        }

                    } else {
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }

                    // textbox
                } elseif ($row['tip'] == 4) {

                    if ($_POST['visible_' . $row['id']] == 1) {
                        $vrednost = $_POST['vrednost_' . $row['id']];
                        if ($vrednost != '') {
                            //sisplet_query("INSERT INTO srv_data_text (spr_id, text, usr_id) VALUES ('$row[id]', '$vrednost', '".get('usr_id')."')");
                            $srv_data_text .= "('$row[id]', '', '$vrednost', '', '" . get('usr_id') . "', $loop_id),";
                            Model::user_not_lurker();
                        } else {
                            //sisplet_query("INSERT INTO srv_data_vrednost".get('db_table')." (spr_id, vre_id, usr_id) VALUES ('$row[id]', '-1', '".get('usr_id')."')");
                            //$srv_data_vrednost .= "('$row[id]', '-1', '".get('usr_id')."'),";
                        }
                    } else {
                        //sisplet_query("INSERT INTO srv_data_vrednost".get('db_table')." (spr_id, vre_id, usr_id) VALUES ('$row[id]', '-2', '".get('usr_id')."')");
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }


                    
                } 
                // TEXTBOX
                elseif ($row['tip'] == 21) {

                    if ($_POST['visible_' . $row['id']] == 1) {

                        $empty = true;

                        $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]'");
                        while ($row1 = mysqli_fetch_array($sql1)) {

                            // posebej pohendlamo upload datotek ali fotografijo, ce je respondent uporoabil navadni upload slike
                            if ($row['upload'] == 1 || ($row['upload'] == 2 && !$_POST['foto_vrednost_' . $row['id'] . '_kos_' . $row1['id']])) {

                                $path_parts = pathinfo($_FILES['vrednost_' . $row['id'] . '_kos_' . $row1['id']]["name"]);
                                $ext = $path_parts['extension'];
                                $name = substr($path_parts['filename'], 0, 25);
                                
                                $file_allowed = true;

                                // Preverimo ce je file type dovoljen (prava koncnica)
                                if( !in_array(strtolower($ext), array("jpeg", "jpg", "png", "gif", "pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "zip", "rar", "rds", "rdata", "rmd", "qmd")) ){
                                    $file_allowed = false;
                                }

                                // Preverimo ce je file velikost ok
                                if( (int)(filesize($_FILES['vrednost_' . $row['id'] . '_kos_' . $row1['id']]["tmp_name"]) / 1024 / 1024) > 16 ){
                                    $file_allowed = false;
                                }

                                // Ce imamo izbran file in je ok koncnica in velikost
                                if (strlen($name) > 0 && $file_allowed) {
                                    $filename = get('usr_id') . '_' . $name . '.' . $ext;

                                    move_uploaded_file($_FILES['vrednost_' . $row['id'] . '_kos_' . $row1['id']]["tmp_name"], 'uploads/' . $filename);
                                    $vrednost = uniqid();
                                    
                                    //pri fotografiji naredi tukaj da zbrise iz mape uploads morebitno prejsnjo sliko narejeno z webcam (lahko, da sta razlicna exstensiona in se ne povozi)
                                    sisplet_query("INSERT INTO srv_data_upload (ank_id, usr_id, code, filename) VALUES ('" . get('anketa') . "', '" . get('usr_id') . "', '$vrednost', '$filename')");
                                } 
                                // Ni bil nalozen noben file
                                else {
                                    $vrednost = '';
                                }

                            } 
                            elseif($row['upload'] == 2){
                                $encoded_data = $_POST['foto_vrednost_' . $row['id'] . '_kos_' . $row1['id']];
                                
                                if($encoded_data != ''){
                                    $binary_data = base64_decode( $encoded_data );

                                    $filename = get('usr_id') . '_' . $row['id'] . '_' . get('anketa') . '.jpg';

                                    // save to server (beware of permissions)
                                    $result = file_put_contents( 'uploads/' . $filename, $binary_data );
                                    if (!$result){
                                        die("Could not save image!  Check file permissions.");
                                    }
                                    else{
                                        $vrednost = uniqid();

                                        sisplet_query("INSERT INTO srv_data_upload (ank_id, usr_id, code, filename) VALUES ('" . get('anketa') . "', '" . get('usr_id') . "', '$vrednost', '$filename')");
                                    }
                                }
                                //ni bilo datoteke
                                else {
                                    $vrednost = '';
                                }
                            }
                            // posebej pohendlamo signature - shranjevanje slike
                            elseif ($row['signature'] == 1) {
                                
                                //if (isset($_POST['signature-data_spremenljivka_'.$row['id']])){	// če so prišli podatki, nadaljuj
                                if ($_POST['signature-data_spremenljivka_' . $row['id']] != "" || $_POST['vrednost_' . $row['id'] . '_kos_' . $row1['id']] != "") {    // če so prišli podatki o podpisu ali o imenu v polju

                                    $podatki_slika = $_POST['signature-data_spremenljivka_' . $row['id']];    //podatki za generiranje slike
                                    $vrednost = $_POST['vrednost_' . $row['id'] . '_kos_' . $row1['id']];    //vnešeno besedilo v input polje Podpis osebe
                                    $signature_name = $vrednost;

                                    $vrednost_signature = $row['id'];    //vrednost, ki se beleži v bazi kot spr_id

                                    $sqlIsFilename = sisplet_query("SELECT filename FROM srv_data_upload WHERE usr_id = '" . get('usr_id') . "' AND ank_id = '" . get('anketa') . "' AND code = '" . $row['id'] . "' ");
                                    
                                    $rowSqlIsFilename = mysqli_fetch_array($sqlIsFilename);
                                             
                                    if (mysqli_num_rows($sqlIsFilename) == 0) {    //ce ni nicesar v bazi, ustvari datoteko s sliko in vpisi informacijo v bazo
                                            //odstranitev sumnikov in presledkov iz vnesenega imena podpisanega za shranjevanje datoteke
                                            $posebni_znaki = array("č", "ć", "ž", "š", "đ", "Č", "Ć", "Ž", "Š", "Đ");
                                            $navadni_znaki = array("c", "c", "z", "s", "d", "C", "C", "Z", "S", "D");
                                            $signature_name = str_replace($posebni_znaki, $navadni_znaki, $signature_name);    //replace posebnih znakov (tako, ime datoteke ne bo sporno)
                                            $signature_name = str_replace(" ", "_", $signature_name); //replace presledka

                                            $data_pieces = explode(",", $podatki_slika);
                                            $encoded_image = $data_pieces[1];
                                            $decoded_image = base64_decode($encoded_image);
                                            $data = $decoded_image;
                                            $im = imagecreatefromstring($data);
                                            if ($im !== false) {
                                                imagesavealpha($im, true);    //da reši črno sliko
                                                imagepng($im, './uploads/' . get('usr_id') . '_' . $row['id'] . '_' . get('anketa') . '.png');    //ustvarjeno sliko prenesi v mapo, kjer se nahajajo tudi upload datoteke
                                                imagedestroy($im);
                                            } else {
                                                echo 'An error occurred.';
                                            }

                                            //vpisi v bazo, v tabelo, kjer se vpisujejo datoteke, ki se uploadajo, podatke o generirani sliki podpisa
                                            $filename_signature = get('usr_id') . '_' . $row['id'] . '_' . get('anketa') . '.png';
                                            
                                            sisplet_query("INSERT INTO srv_data_upload (ank_id, usr_id, code, filename) VALUES ('" . get('anketa') . "', '" . get('usr_id') . "', '$vrednost_signature', '$filename_signature')");

                                    }
                                } 
                                else {
                                    $vrednost = '';
                                }
                            } 
                            else {
                                $vrednost = $_POST['vrednost_' . $row['id'] . '_kos_' . $row1['id']];
                            }

                            if ($vrednost != '') {
                                $srv_data_text .= "('$row[id]', '$row1[id]', '$vrednost', '', '" . get('usr_id') . "', $loop_id),";
                                Model::user_not_lurker();
                                $empty = false;
                            }
                        }

                        if ($empty) {
                            if (isset($_POST['vrednost_mv_' . $row['id']])) {
                                $srv_data_vrednost .= "('$row[id]', '" . $_POST['vrednost_mv_' . $row['id']][0] . "', '" . get('usr_id') . "', $loop_id),";
                            }
                        }
                        
                        if ($row['variable'] == 'email' && $row['sistem'] == '1') {
                            if (trim($vrednost) != '' && (int)$rowa['email_to_list'] == 1) {
                                User::addUserEmailToList(trim($vrednost));
                            }
                            
                            # sinhroniziramo spremembo emaila z vabili.
                            User::sinhronizeInvitationEmail($vrednost);
                        }
                        
                    } 
                    else {
                        //sisplet_query("INSERT INTO srv_data_vrednost".get('db_table')." (spr_id, vre_id, usr_id) VALUES ('$row[id]', '-2', '".get('usr_id')."')");
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }     
                }
                // NUMBER
                elseif ($row['tip'] == 7) {

                    if ($_POST['visible_' . $row['id']] == 1) {

                        $empty = true;

                        $i = 1;
                        if (isset($_POST['vrednost_' . $row['id']])) {
                            $vrednost = $_POST['vrednost_' . $row['id']];

                            $text = '';
                            $text2 = '';

                            foreach ($vrednost AS $key => $val) {
                                if ($i == 1) {
                                    if ($val != '' && $val != '-') {
                                        $text = $val;
                                        $empty = false;
                                        
                                        Model::user_not_lurker();
                                    } 
                                    else {
                                    }

                                } else {

                                    if ($val != '' && $val != '-') {
                                        $text2 = $val;
                                        $empty = false;

                                        Model::user_not_lurker();
                                    } 
                                    else {
                                    }
                                }

                                $i++;
                            }

                        }

                        if (!$empty) {
                            $srv_data_text .= "('$row[id]', '', '$text', '$text2', '" . get('usr_id') . "', $loop_id),";
                        } else {
                            if (isset($_POST['vrednost_mv_' . $row['id']])) {
                                //sisplet_query("INSERT INTO srv_data_vrednost".get('db_table')." (spr_id, vre_id, usr_id) VALUES ('$row[id]', '-2', '".get('usr_id')."')");
                                $srv_data_vrednost .= "('$row[id]', '" . $_POST['vrednost_mv_' . $row['id']][0] . "', '" . get('usr_id') . "', $loop_id),";
                            }
                        }

                    } else {
                        //sisplet_query("INSERT INTO srv_data_vrednost".get('db_table')." (spr_id, vre_id, usr_id) VALUES ('$row[id]', '-2', '".get('usr_id')."')");
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }


                    // compute
                } elseif ($row['tip'] == 22) {

                    if (isset($_POST['vrednost_' . $row['id']])) {

                        $val = $_POST['vrednost_' . $row['id']];

                        //if ($val == 'NaN') $val = '-1';         // ce je kateri od odgovorov missing, je tudi kalkulacija missing
                        if ($val == 'NaN') $val = '-88';        // ce je kateri od odgovorov missing, je tudi kalkulacija missing

                        if ($val != '') {
                            $srv_data_text .= "('$row[id]', '', '$val', '', '" . get('usr_id') . "', $loop_id),";
                            Model::user_not_lurker();
                        } 
                        else {
                        }
                    }

                    // kvota
                } elseif ($row['tip'] == 25) {

                    if (isset($_POST['vrednost_' . $row['id']])) {

                        $val = $_POST['vrednost_' . $row['id']];

                        if ($val == 'NaN') $val = '-1';        // ce je kateri od odgovorov missing, je tudi kvota missing

                        if ($val != '') {
                            //sisplet_query("INSERT INTO srv_data_text (spr_id, text, usr_id) VALUES ('$row[id]', '$val', '".get('usr_id')."')");
                            $srv_data_text .= "('$row[id]', '', '$val', '', '" . get('usr_id') . "', $loop_id),";
                            
                            Model::user_not_lurker();
                        } 
                        else {
                        }
                    }

                    // 8_datum
                } elseif ($row['tip'] == 8) {

                    if ($_POST['visible_' . $row['id']] == 1) {
                        if (isset($_POST['vrednost_mv_' . $row['id']]) && count($_POST['vrednost_mv_' . $row['id']]) > 0) {
                            $srv_data_vrednost .= "('$row[id]', '" . $_POST['vrednost_mv_' . $row['id']][0] . "', '" . get('usr_id') . "', $loop_id),";
                            Model::user_not_lurker();
                        } else {

                            $vrednost = $_POST['vrednost_' . $row['id']];
                            if ($vrednost != '') {
                                //sisplet_query("INSERT INTO srv_data_text (spr_id, text, usr_id) VALUES ('$row[id]', '$vrednost', '".get('usr_id')."')");
                                $srv_data_text .= "('$row[id]', '', '$vrednost', '', '" . get('usr_id') . "', $loop_id),";
                                
                                Model::user_not_lurker();
                            }
                            else {
                            }
                        }
                    } else {
                        //sisplet_query("INSERT INTO srv_data_vrednost".get('db_table')." (spr_id, vre_id, usr_id) VALUES ('$row[id]', '-2', '".get('usr_id')."')");
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }

                    // ranking
                } elseif ($row['tip'] == 17) {
                    if ($_POST['visible_' . $row['id']] == 1) {

                        // cifre - ostevilcevanje
                        if ($row['design'] == 1 || get('mobile') > 0) {

                            $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]' AND vrstni_red>0 ORDER BY vrstni_red");
                            while ($row1 = mysqli_fetch_array($sql1)) {

                                if (isset($_POST['spremenljivka_' . $row['id'] . '_vrednost_' . $row1['id']])) {
                                    $vrednost = $_POST['spremenljivka_' . $row['id'] . '_vrednost_' . $row1['id']];
                                    if ($vrednost != '') {
                                        //sisplet_query("REPLACE INTO srv_data_rating (spr_id, vre_id, usr_id, vrstni_red) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '$vrednost')");
                                        $srv_data_rating .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '$vrednost', $loop_id),";
                                        Model::user_not_lurker();
                                    } else {
                                        //sisplet_query("DELETE FROM srv_data_rating WHERE vre_id='$row1[id]' AND usr_id='".get('usr_id')."'");
                                    }
                                }
                            }
                        } 
                        // n==k (sortable)
                        else if ($row['design'] == 2) {
                            // shranjuje preko ajaxa
                        } 
                        // n>k
                        else if ($row['design'] == 0) {
                            // shranjuje preko ajaxa
                        }
                        // ranking image hotspot
                        else if ($row['design'] == 3) {

                            $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]' AND vrstni_red>0 ORDER BY vrstni_red");
                            while ($row1 = mysqli_fetch_array($sql1)) {

                                if (isset($_POST['spremenljivka_' . $row['id'] . '_vrednost_' . $row1['id']])) {
                                    $vrednost = $_POST['spremenljivka_' . $row['id'] . '_vrednost_' . $row1['id']];
                                    if ($vrednost != '') {
                                        //sisplet_query("REPLACE INTO srv_data_rating (spr_id, vre_id, usr_id, vrstni_red) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '$vrednost')");
                                        $srv_data_rating .= "('$row[id]', '$row1[id]', '" . get('usr_id') . "', '$vrednost', $loop_id),";
                                        Model::user_not_lurker();
                                    } else {
                                        //sisplet_query("DELETE FROM srv_data_rating WHERE vre_id='$row1[id]' AND usr_id='".get('usr_id')."'");
                                    }
                                }			
                            }
                        } 
                    } 
                    else {
                        //sisplet_query("INSERT INTO srv_data_vrednost".get('db_table')." (spr_id, vre_id, usr_id) VALUES ('$row[id]', '-2', '".get('usr_id')."')");
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }


                    // vsota
                } elseif ($row['tip'] == 18) {

                    if ($_POST['visible_' . $row['id']] == 1) {

                        $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]' AND vrstni_red>0 ORDER BY vrstni_red");
                        while ($row1 = mysqli_fetch_array($sql1)) {

                            if (isset($_POST['spremenljivka_' . $row['id'] . '_vrednost_' . $row1['id']])) {

                                $vrednost = $_POST['spremenljivka_' . $row['id'] . '_vrednost_' . $row1['id']];
                                if ($vrednost != '') {
                                    //$s = sisplet_query("REPLACE INTO srv_data_text (spr_id, vre_id, usr_id, text) VALUES ('$row[id]', '$row1[id]', '".get('usr_id')."', '$vrednost')");
                                    $srv_data_text .= "('$row[id]', '$row1[id]', '$vrednost', '', '" . get('usr_id') . "', $loop_id),";
                                    Model::user_not_lurker();
                                }
                            }
                        }

                    } else {
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }
                } //imena
                elseif ($row['tip'] == 9) {

                    if ($_POST['visible_' . $row['id']] == 1) {

                        $empty = true;

                        $sql1 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row[id]' ORDER BY vrstni_red ASC");

                        $vrednost = $_POST['spremenljivka_' . $row['id']];

                        // ce imamo 1 textarea dobimo 1 string, ki ga moremo razbit na posamezna imena (locena z entri)
                        if ($row['design'] == 2) {
                            $vrednost = preg_replace('!(\r?\n){2,}!', '\r\n', $vrednost);
                            $vrednost = explode('\r\n', $vrednost);
                        }

                        foreach ($vrednost AS $key => $val) {

                            $row1 = mysqli_fetch_array($sql1);
                            //sisplet_query("INSERT INTO srv_data_text (spr_id, vre_id, text, usr_id) VALUES ('$row[id2]', '$row1[id]', 'aaa', '".get('usr_id')."')");

                            if ($val != '') {
                                //sisplet_query("INSERT INTO srv_data_text (spr_id, vre_id, text, usr_id) VALUES ('$row[id]', '$row1[id]', '$val', '".get('usr_id')."')");
                                $srv_data_text .= "('$row[id]', '$row1[id]', '$val', '', '" . get('usr_id') . "', $loop_id),";
                                Model::user_not_lurker();
                                $empty = false;
                            }
                        }

                        if ($empty) {
                            //sisplet_query("INSERT INTO srv_data_vrednost".get('db_table')." (spr_id, vre_id, usr_id) VALUES ('$row[id]', '-1', '".get('usr_id')."')");
                            //$srv_data_vrednost .= "('$row[id]', '-1', '".get('usr_id')."'),";
                        }

                    } else {
                        //sisplet_query("INSERT INTO srv_data_vrednost".get('db_table')." (spr_id, vre_id, usr_id) VALUES ('$row[id]', '-2', '".get('usr_id')."')");
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }
                    
                } //Map - Lokacija
                elseif ($row['tip'] == 26) {
                    //get type of map - 1=my location, 2=multilocation
                    $enota = $row['enota'];
                    
                    if ($_POST['visible_' . $row['id']] == 1) {

                        //get input type - marker, polyline, polygon
                        $spremenljivkaParams = new enkaParameters($row['params']);

                        $input = $spremenljivkaParams->get('multi_input_type'); 

                        if(isset($_POST['vrednost_' . $row['id']])){
                            foreach ($_POST['vrednost_' . $row['id']] AS $key => $val) {

                                    $data = explode("|", $val);

                                    //izberi lokacijo
                                    if($enota == 3){
                                        $je_odgovoril = (isset($_POST[$data[0] . '_text']) && $_POST[$data[0] . '_text'] != '');
                                        $srv_data_map .= "(" . get('usr_id') . ", '$row[id]', $loop_id, $data[0], ". get('anketa') . ", '', '', '', '".
                                                ($je_odgovoril ? $_POST[$data[0] . '_text'] : '-1')."', ''),";
                                        if($je_odgovoril)
                                            Model::user_not_lurker();
                                    }
                                    else{
                                        //linija ali poligon
                                        if($enota == 2 && $input != 'marker'){
                                            $srv_data_map .= "(" . get('usr_id') . ", '$row[id]', $loop_id, NULL, ". get('anketa') . ", '$data[1]', '$data[2]', '', '', '$data[0]'),";
                                        }
                                        //marker
                                        else{
                                            //nastavi odgovor na podvprasanje
                                            if(isset($_POST[$data[0] . '_text']))
                                                $marker_text = $_POST[$data[0] . '_text'] != '' ? $_POST[$data[0] . '_text'] : '-1';
                                            else
                                                $marker_text = '-4';

                                            $srv_data_map .= "(" . get('usr_id') . ", '$row[id]', $loop_id, NULL, ". get('anketa') . ", '$data[1]', '$data[2]', '$data[3]', '".
                                                    $marker_text."', ''),";                                            
                                        }
                                        Model::user_not_lurker();
                                    }
                            }
                        }
                    }
                    else {
                        //sisplet_query("INSERT INTO srv_data_map (usr_id, spr_id, loop_id, ank_id, lat, lng, address, text) "
                        //    . "VALUES (" . get('usr_id') . ", '$row[id]', $loop_id, ". get('anketa') . ", '-2', '-2', '-2', '-2')");
                        //if($enota == 3)
                            $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                        //else
                            //$srv_data_map .= "(" . get('usr_id') . ", '$row[id]', $loop_id, NULL, ". get('anketa') . ", '-2', '-2', '-2', '-2', ''),";
                    }
                } //HeatMap
                elseif ($row['tip'] == 27) {
                                            
                    if ($_POST['visible_' . $row['id']] == 1) {

                        //za koordinate
                        if(isset($_POST['vrednost_' . $row['id']])){
                            foreach ($_POST['vrednost_' . $row['id']] AS $key => $val) {

                                $data = explode("|", $val);
    
                                $srv_data_heatmap .= "(" . get('usr_id') . ", '$row[id]', $loop_id, NULL, ". get('anketa') . ", '$data[1]', '$data[2]', '$data[3]', '".
                                        (isset($_POST[$data[0] . '_text']) ? $_POST[$data[0] . '_text'] : '-2')."', ''),";
                                Model::user_not_lurker();
                                $empty = false;
                            }
                        }
                        //za koordinate - konec
                        
                        //za checkbox
                        if(isset($_POST['vrednostHeatmap_' . $row['id']])){
                            foreach ($_POST['vrednostHeatmap_' . $row['id']] AS $key => $val) {
                                    
                                if ($val > 0) {
                                    //sisplet_query("INSERT INTO srv_data_vrednost".get('db_table')." (spr_id, vre_id, usr_id) VALUES ('$row[id]', '$val', '".get('usr_id')."')");
                                    $srv_data_vrednost .= "('$row[id]', '$val', '" . get('usr_id') . "', $loop_id),";
                                    Model::user_not_lurker();
                                    if (isset($_POST['textfield_' . $val]) && $_POST['textfield_' . $val] != '')
                                        //sisplet_query("INSERT INTO srv_data_text (spr_id, vre_id, text, usr_id) VALUES ('$row[id]', '$val', '".$_POST['textfield_'.$val]."', '".get('usr_id')."')");
                                        $srv_data_text .= "('$row[id]', '$val', '" . $_POST['textfield_' . $val] . "', '', '" . get('usr_id') . "', $loop_id),";
                                }
                            }
                        }   
                        //za checkbox - konec
                        
                        // če imamo if na vprašanjij, imamo v arrayu vrednosti katere so -2
                        if (isset($_POST['cond_vrednost_' . $row['id']])) {
                            $vrednost = $_POST['cond_vrednost_' . $row['id']];
                            foreach ($vrednost AS $key => $val) {
                                if ($val > 0) {
                                    //sisplet_query("INSERT INTO srv_data_vrednost".get('db_table')." (spr_id, vre_id, usr_id) VALUES ('$row[id]', '$val', '".get('usr_id')."')");
                                    $srv_data_vrednost_cond .= "('$row[id]', '$val', '-2', '" . get('usr_id') . "', $loop_id),";
                                }
                            }
                        }
                    }
                    else {
                        //sisplet_query("INSERT INTO srv_data_map (usr_id, spr_id, loop_id, ank_id, lat, lng, address, text) "
                        //    . "VALUES (" . get('usr_id') . ", '$row[id]', $loop_id, ". get('anketa') . ", '-2', '-2', '-2', '-2')");
                        $srv_data_heatmap .= "(" . get('usr_id') . ", '$row[id]', $loop_id, NULL, ". get('anketa') . ", '-2', '-2', '-2', '-2', ''),";
                        $srv_data_vrednost .= "('$row[id]', '-2', '" . get('usr_id') . "', $loop_id),";
                    }						
                }
            }

        } // -- while
        
        //na koncu preverimo dodatna vprasanja pri glasovanju (spol)
        if ($rowa['survey_type'] == 0) {

            if (mysqli_num_rows($sql) > 0)
                mysqli_data_seek($sql, 0);
            $row = mysqli_fetch_array($sql);

            $sqlG = sisplet_query("SELECT spol FROM srv_glasovanje WHERE spr_id = '$row[id]'");
            $rowG = mysqli_fetch_array($sqlG);

            $sql4 = sisplet_query("SELECT id FROM srv_spremenljivka WHERE vrstni_red='2' AND gru_id='$row[gru_id]' ");
            $row4 = mysqli_fetch_array($sql4);

            //ce je nastavljena nastavitev za vprasanje o spolu
            if ($rowG['spol'] == 1) {
                $spol = $_POST['submit'];
                if ($spol == "Moški") {
                    $vrednost = 1;

                    $sql5 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id='$row4[id]' AND vrstni_red='1' ");
                    $row5 = mysqli_fetch_array($sql5);
                } elseif ($spol == "Ženska") {
                    $vrednost = 2;

                    $sql5 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id='$row4[id]' AND vrstni_red='2' ");
                    $row5 = mysqli_fetch_array($sql5);
                } else
                    $vrednost = 0;

                if ($vrednost > 0) {
                    sisplet_query("INSERT INTO srv_data_vrednost" . get('db_table') . " (spr_id, vre_id, usr_id) VALUES ('$row4[id]', '$row5[id]', '" . get('usr_id') . "')");
                    sisplet_query("INSERT INTO srv_data_glasovanje (spr_id, usr_id, spol) VALUES ('$row[id]', '" . get('usr_id') . "', '$vrednost')");

                    Model::user_not_lurker();
                } else {
                    //sisplet_query("INSERT INTO srv_data_glasovanje (spr_id, usr_id, spol) VALUES ('$row[id]', '".get('usr_id')."', '-1')");
                }
            }
        }
        
        // Za evoli teammeter moramo na prvi strani posebej shraniti department
        if( (SurveyInfo::getInstance()->checkSurveyModule('evoli_teammeter') 
                || SurveyInfo::getInstance()->checkSurveyModule('evoli_quality_climate') 
                || SurveyInfo::getInstance()->checkSurveyModule('evoli_teamship_meter') 
                || SurveyInfo::getInstance()->checkSurveyModule('evoli_organizational_employeeship_meter')
            ) 
            && isset($_POST['evoli_tm_department'])
        ){
            
            $sqlTMD = sisplet_query("SELECT * FROM srv_evoli_teammeter_data_department WHERE usr_id='".get('usr_id')."'");
            
            if(mysqli_num_rows($sqlTMD) == 0)
                sisplet_query("INSERT INTO srv_evoli_teammeter_data_department (department_id, usr_id) VALUES ('".$_POST['evoli_tm_department']."', '".get('usr_id')."')");
            else
                sisplet_query("UPDATE srv_evoli_teammeter_data_department SET department_id='".$_POST['evoli_tm_department']."' WHERE usr_id='".get('usr_id')."'");
        }


        save('cache_srv_data_grid', $srv_data_grid);
        save('cache_srv_data_vrednost', $srv_data_vrednost);
        save('cache_srv_data_text', $srv_data_text);
        save('cache_srv_data_checkgrid', $srv_data_checkgrid);
        save('cache_srv_data_textgrid', $srv_data_textgrid);
        save('cache_srv_data_rating', $srv_data_rating);
        save('cache_srv_data_vrednost_cond', $srv_data_vrednost_cond);
        save('cache_srv_data_map', $srv_data_map);
        save('cache_srv_data_heatmap', $srv_data_heatmap);

        // ce ni preskocena stran, dodamo v bazo (pri preskoceni bomo dodal posebej in kasnej)
        if ($preskocena == 0)
            $this->posted_commit();

        // pri preskoceni strani podatke shranimo z posted_commit(), ki se klice izven te funkcije, kjer loopamo cez strani
    }

    /**
     * v funkciji posted() nastavimo cache spremenljivke, ki jih sedaj vse naenkrat shranimo v bazo
     * pri preskoku strani kasneje posebej shranimo podatke v bazo (optimizacija, da se ne shranjujejo vsakic sproti v zanki)
     *
     */
    public function posted_commit()
    {
        //sisplet_query("COMMIT");
        # če smo samo v predogledu uporabnika ne shranjujemo
        if (get('quick_view') == true) {
            return false;
        }


        $loop_id = get('loop_id') == null ? " IS NULL" : " = '" . get('loop_id') . "'";

        // odrezemo zadnjo vejico, ker smo jo dodajali kar povsod
        $delete = substr(get('cache_delete'), 0, -1);

        if ($delete != '') {
            $s = sisplet_query("DELETE FROM srv_data_grid" . get('db_table') . " WHERE spr_id IN ($delete) AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id");
            if (!$s) {
                echo 'err01: ' . mysqli_error($GLOBALS['connect_db']);
            }
            $s = sisplet_query("DELETE FROM srv_data_vrednost" . get('db_table') . " WHERE spr_id IN ($delete) AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id");
            if (!$s) {
                echo 'err02: ' . mysqli_error($GLOBALS['connect_db']);
            }
            $s = sisplet_query("DELETE FROM srv_data_text" . get('db_table') . " WHERE spr_id IN ($delete) AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id");
            if (!$s) {
                echo 'err03: ' . mysqli_error($GLOBALS['connect_db']);
            }
            $s = sisplet_query("DELETE FROM srv_data_checkgrid" . get('db_table') . " WHERE spr_id IN ($delete) AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id");
            if (!$s) {
                echo 'err04: ' . mysqli_error($GLOBALS['connect_db']);
            }
            $s = sisplet_query("DELETE FROM srv_data_textgrid" . get('db_table') . " WHERE spr_id IN ($delete) AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id");
            if (!$s) {
                echo 'err05: ' . mysqli_error($GLOBALS['connect_db']);
            }
            $s = sisplet_query("DELETE FROM srv_data_rating WHERE spr_id IN ($delete) AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id");
            if (!$s) {
                echo 'err06: ' . mysqli_error($GLOBALS['connect_db']);
            }
            $s = sisplet_query("DELETE FROM srv_data_map WHERE spr_id IN ($delete) AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id");
            if (!$s) {
                echo 'err07: ' . mysqli_error($GLOBALS['connect_db']);
            }
			$s = sisplet_query("DELETE FROM srv_data_heatmap WHERE spr_id IN ($delete) AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id");
            if (!$s) {
                echo 'err08: ' . mysqli_error($GLOBALS['connect_db']);
            }
            $s = sisplet_query("DELETE FROM srv_data_vrednost_cond WHERE spr_id IN ($delete) AND usr_id='" . get('usr_id') . "' AND loop_id $loop_id");
            if (!$s) {
                echo 'err09: ' . mysqli_error($GLOBALS['connect_db']);
            }
        }

        // odrezemo zadnjo vejico, ker smo jo dodajali kar povsod
        $srv_data_grid = substr(get('cache_srv_data_grid'), 0, -1);
        $srv_data_vrednost = substr(get('cache_srv_data_vrednost'), 0, -1);
        $srv_data_text = substr(get('cache_srv_data_text'), 0, -1);
        $srv_data_checkgrid = substr(get('cache_srv_data_checkgrid'), 0, -1);
        $srv_data_textgrid = substr(get('cache_srv_data_textgrid'), 0, -1);
        $srv_data_rating = substr(get('cache_srv_data_rating'), 0, -1);
        $srv_data_vrednost_cond = substr(get('cache_srv_data_vrednost_cond'), 0, -1);
        $srv_data_map = substr(get('cache_srv_data_map'), 0, -1);
        $srv_data_heatmap = substr(get('cache_srv_data_heatmap'), 0, -1);

        if ($srv_data_grid != '') {
            $s = sisplet_query("INSERT INTO srv_data_grid" . get('db_table') . " (spr_id, vre_id, usr_id, grd_id, loop_id) VALUES $srv_data_grid");
            if (!$s) {
                echo 'err11: ' . mysqli_error($GLOBALS['connect_db']);
                die();
            }
        }
        if ($srv_data_vrednost != '') {
            $s = sisplet_query("INSERT INTO srv_data_vrednost" . get('db_table') . " (spr_id, vre_id, usr_id, loop_id) VALUES $srv_data_vrednost");
            if (!$s) {
                echo 'err12: ' . mysqli_error($GLOBALS['connect_db']);
                die();
            }
        }
        if ($srv_data_text != '') {
            $s = sisplet_query("INSERT INTO srv_data_text" . get('db_table') . " (spr_id, vre_id, text, text2, usr_id, loop_id) VALUES $srv_data_text");
            if (!$s) {
                echo 'err13: ' . mysqli_error($GLOBALS['connect_db']);
                die();
            }
        }
        if ($srv_data_checkgrid != '') {
            $s = sisplet_query("INSERT INTO srv_data_checkgrid" . get('db_table') . " (spr_id, vre_id, usr_id, grd_id, loop_id) VALUES $srv_data_checkgrid");
            if (!$s) {
                echo 'err14: ' . mysqli_error($GLOBALS['connect_db']);
                die();
            }
        }
        if ($srv_data_textgrid != '') {
            $s = sisplet_query("INSERT INTO srv_data_textgrid" . get('db_table') . " (spr_id, vre_id, usr_id, grd_id, text, loop_id) VALUES $srv_data_textgrid");
            if (!$s) {
                echo 'err15: ' . mysqli_error($GLOBALS['connect_db']);
                die();
            }
        }
        if ($srv_data_rating != '') {
            $s = sisplet_query("INSERT INTO srv_data_rating (spr_id, vre_id, usr_id, vrstni_red, loop_id) VALUES $srv_data_rating");
            if (!$s) {
                echo 'err16: ' . mysqli_error($GLOBALS['connect_db']);
                die();
            }
        }
        if ($srv_data_vrednost_cond != '') {
            $s = sisplet_query("INSERT INTO srv_data_vrednost_cond (spr_id, vre_id, text, usr_id, loop_id) VALUES $srv_data_vrednost_cond");
            if (!$s) {
                echo 'err17: ' . mysqli_error($GLOBALS['connect_db']);
                die();
            }
        }
        if ($srv_data_map != '') {
            $s = sisplet_query("INSERT INTO srv_data_map (usr_id, spr_id, loop_id, vre_id, ank_id, lat, lng, address, text, vrstni_red) VALUES $srv_data_map");
            if (!$s) {
                echo 'err18: ' . mysqli_error($GLOBALS['connect_db']);
                die();
            }
        }
        if ($srv_data_heatmap != '') {
            $s = sisplet_query("INSERT INTO srv_data_heatmap (usr_id, spr_id, loop_id, vre_id, ank_id, lat, lng, address, text, vrstni_red) VALUES $srv_data_heatmap");
            if (!$s) {
                echo 'err19: ' . mysqli_error($GLOBALS['connect_db']);
                die();
            }
        }

        // Posebej shranimo password iz cookija, ker po novem se password za dostop do ankete shrani v spremenljivko
        // Ce imamo password ga shranimo kot odgovor
        if (isset($_COOKIE['password_' . get('anketa')])) {
            $password = $_COOKIE['password_' . get('anketa')];

            $sql1 = sisplet_query("SELECT s.id FROM srv_spremenljivka s, srv_grupa g WHERE g.ank_id='" . get('anketa') . "' AND s.gru_id=g.id AND s.skupine='2'");
            if (get('usr_id') != null && mysqli_num_rows($sql1) > 0) {

                $row1 = mysqli_fetch_array($sql1);

                $sql2 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row1[id]' AND naslov='$password'");
                $row2 = mysqli_fetch_array($sql2);

                $s = sisplet_query("DELETE FROM srv_data_vrednost" . get('db_table') . " WHERE spr_id='$row1[id]' AND usr_id='" . get('usr_id') . "'");
                if (!$s) echo mysqli_error($GLOBALS['connect_db']);

                $data = $row2['id'];

                $s = sisplet_query("INSERT INTO srv_data_vrednost" . get('db_table') . " (spr_id, vre_id, usr_id) VALUES ('$row1[id]', '$data', '" . get('usr_id') . "')");
                if (!$s) echo 'err6543' . mysqli_error($GLOBALS['connect_db']);

                // Na koncu pocistimo piskotek z geslom
                setcookie('password_'. get('anketa'), '', time() - 3600); 
            }
        }

        //sisplet_query("BEGIN");
    }

	
    /**
     * shrani sistemske spremenljivke podane preko urlja v bazo
     *
     */
    public static function saveSistemske()
    {
        global $lang;

        $url_params = array();
        $usr_id = get('usr_id');

        /*
		 * UL evalvacija - sistemske so zakodirane z url_encode in base64_encode - naceloma se lahko uporabi povsod kjer se rabi kodiran url
		 * Dekodiranje tudi samoevalvacijske hierarhije
		 */
        if (isset( $_GET['enc'] )) {

            // Preberemo parametre in jih dekodiramo
            $request_encoded = $_GET['enc'];
            $request = base64_decode(urldecode($request_encoded));

            // Parametre shranimo v nov array
            $request_array = array();
            parse_str($request, $request_array);

            // Shranimo vse parametre
            $url_params = array_merge($_GET, $request_array);

        } else
            $url_params = $_GET;

		
		// Pri studentski evalvaciji posebej shranimo sifro studenta ce jo imamo (zaradi anonimnosti v posebno tabelo, ki jo potem pobrisemo)
		if(Common::checkModule('evalvacija') == '1' && isset($url_params['sifstud'])){
			
			$student = $url_params['sifstud'];
			
			$s = sisplet_query("INSERT INTO eval_data_user (student, ank_id, usr_id) VALUES ('".$student."', '".get('anketa')."', '".get('usr_id')."') ON DUPLICATE KEY UPDATE student='".$student."'");
            if (!$s) echo 'err9988' . mysqli_error($GLOBALS['connect_db']);
		}
		

        // preverimo ce so vrednosti kaksne sistemske spremenljivke podane v urlju in jih shranimo
        $sql1 = sisplet_query("SELECT s.id, s.variable, s.skupine, s.tip FROM srv_spremenljivka s, srv_grupa g WHERE g.ank_id='" . get('anketa') . "' AND s.gru_id=g.id AND s.sistem='1' AND (s.tip='4' OR s.tip='21' OR s.tip='1' OR s.tip='3')");
        while ($row1 = mysqli_fetch_array($sql1)) {

            if ($row1['id'] > 0 && (isset($url_params[$row1['variable']]) || $row1['skupine'] == 3)) {

                if ($usr_id != null) {
                    if ($row1['tip'] == 4) {
						
                        $s = sisplet_query("DELETE FROM srv_data_text" . get('db_table') . " WHERE spr_id='$row1[id]' AND usr_id='" . get('usr_id') . "'");
                        if (!$s) echo mysqli_error($GLOBALS['connect_db']);
                        
						$data = $url_params[$row1['variable']];
                       
					   $s = sisplet_query("INSERT INTO srv_data_text" . get('db_table') . " (spr_id, text, usr_id) VALUES ('$row1[id]', '$data', '" . get('usr_id') . "')");
                        if (!$s) echo 'err3455' . mysqli_error($GLOBALS['connect_db']);
						
                    } else if ($row1['tip'] == 21) {
						
                        $sql2 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row1[id]' ORDER BY vrstni_red");
                        $row2 = mysqli_fetch_array($sql2);
                        
						$s = sisplet_query("DELETE FROM srv_data_text" . get('db_table') . " WHERE spr_id='$row1[id]' AND usr_id='" . get('usr_id') . "'");
                        if (!$s) echo mysqli_error($GLOBALS['connect_db']);
                        
						$data = $url_params[$row1['variable']];
                        
						$s = sisplet_query("INSERT INTO srv_data_text" . get('db_table') . " (spr_id, vre_id, text, usr_id) VALUES ('$row1[id]', '$row2[id]', '$data', '" . get('usr_id') . "')");
                        if (!$s) echo 'err6543' . mysqli_error($GLOBALS['connect_db']);
						
                    } else {
						
                        $s = sisplet_query("DELETE FROM srv_data_vrednost" . get('db_table') . " WHERE spr_id='$row1[id]' AND usr_id='" . get('usr_id') . "'");
                        if (!$s) echo mysqli_error($GLOBALS['connect_db']);

                        $data = $url_params[$row1['variable']];

                        // Pri jeziku nimamo nastavljen id vrednosti ampak lang_id
                        if ($row1['skupine'] == 3) {
                            $naslov = $lang['language'];

                            // Noce prjet zaradi čšž-jev tko da je to se najlazje:)
                            if (strcmp($naslov, 'Sloven&#353;&#269;ina') == 0)
                                $sql3 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row1[id]' AND naslov='Slovenščina'");
                            else
                                $sql3 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row1[id]' AND naslov='" . $naslov . "'");

                            $row3 = mysqli_fetch_array($sql3);
                            $data = $row3['id'];
                        }
						
						// Pri skupinah imamo lahko nastavljeno vrednost in ne id-ja
                        if ($row1['skupine'] == 1) {
                            $sql3 = sisplet_query("SELECT id FROM srv_vrednost WHERE spr_id = '$row1[id]' AND naslov='" . $data . "'");

							if(mysqli_num_rows($sql3) > 0){
								$row3 = mysqli_fetch_array($sql3);
								$data = $row3['id'];
							}
                        }

                        $s = sisplet_query("INSERT INTO srv_data_vrednost" . get('db_table') . " (spr_id, vre_id, usr_id) VALUES ('$row1[id]', '$data', '" . get('usr_id') . "')");
                        if (!$s) echo 'err6543' . mysqli_error($GLOBALS['connect_db']);
                    }
                }
            }
        }
    }

    public function savePostedSpecialVars($row)
    {
        $res = false;
        $allowedTips = array(4, 7, 8); // text, number, datum
        if (in_array($row['tip'], $allowedTips)) {
            // text
            if ($_POST['visible_' . $row['id']] == 1) {
                if (isset($_POST['vrednost_' . $row['id'] . '_other'])) {
                    $vrednost = $_POST['vrednost_' . $row['id'] . '_other'];
                    foreach ($vrednost AS $key => $val) {
                        if ($val > 0) {
                            sisplet_query("INSERT INTO srv_data_vrednost" . get('db_table') . " (spr_id, vre_id, usr_id) VALUES ('$row[id]', '$val', '" . get('usr_id') . "')");
                            $res = true;
                        }
                    }
                }
            }// endif visible
        } //endif tip
        return $res;
    }
	
}