2020-08-14 13:36:36 +02:00
// preveri - sesteje vrednosti spremenljivke za kalkulacijo
function checkCalculation ( spremenljivka , vrednost , grid , tip , calcMissing ) {
var value = 0 ;
if ( tip == 1 ) { // radio
value = parseInt ( $ ( 'input[name=vrednost_' + spremenljivka + ']:checked' ) . attr ( 'data-calculation' ) ) ;
} else if ( tip == 2 ) { // checkbox
var chbx = $ ( 'input#spremenljivka_' + spremenljivka + '_vrednost_' + vrednost + '' ) ;
if ( chbx . is ( ':checked' ) )
value = parseInt ( chbx . attr ( 'data-calculation' ) ) ;
else
value = 0 ;
// ce ni izbran noben checkbox, potem je tudi kalkulacija -1
if ( $ ( 'input[name^=vrednost_' + spremenljivka + ']:checked' ) . length == 0 ) value = NaN ;
} else if ( tip == 3 ) { // dropdown
value = parseInt ( $ ( 'select[name=vrednost_' + spremenljivka + '] option:selected' ) . attr ( 'data-calculation' ) ) ;
} else if ( tip == 6 ) { // multigrid
value = parseInt ( $ ( 'input[name=vrednost_' + vrednost + ( grid == 1 ? '_part_2' : '' ) + ']:checked' ) . attr ( 'data-calculation' ) ) ; // obicen
if ( isNaN ( value ) ) value = parseInt ( $ ( 'select[name=vrednost_' + vrednost + ']' ) . val ( ) ) ; // roleta
} else if ( tip == 8 ) {
var date = $ ( 'input#vrednost_' + spremenljivka ) . val ( ) ;
date = date . split ( '.' ) ;
date = new Date ( date [ 2 ] , date [ 1 ] - 1 , date [ 0 ] ) ; // zakaj se mesci zacnejo z 0?
value = Math . ceil ( date . getTime ( ) / ( 1000 * 60 * 60 * 24 ) ) ;
} else if ( tip == 7 ) { // number
value = parseFloat ( $ ( 'input#spremenljivka_' + spremenljivka + '_vrednost_' + ( parseInt ( grid ) + 1 ) ) . val ( ) ) ;
} else if ( tip == 16 ) { // multicheckbox
var chbx = $ ( 'input#vrednost_' + vrednost + '_grid_' + grid ) ;
if ( chbx . is ( ':checked' ) )
value = parseInt ( chbx . attr ( 'data-calculation' ) ) ;
else
value = 0 ;
// ce ni izbran noben checkbox v vrstici, potem je tudi kalkulacija -1
if ( $ ( 'input[name^=vrednost_' + vrednost + '_grid_]:checked' ) . length == 0 ) value = NaN ;
} else if ( tip == 20 ) { // multinumber
value = parseInt ( $ ( 'input#vrednost_' + vrednost + '_grid_' + grid ) . val ( ) ) ;
} else if ( tip == 18 ) { // vsota
value = parseInt ( $ ( 'input[name=spremenljivka_' + spremenljivka + '_vrednost_' + vrednost + ']' ) . val ( ) ) ;
} else if ( tip == 17 ) { // ranking
if ( $ ( '#half2_' + spremenljivka ) . length > 0 ) { // prestavljanje
var arr = $ ( '#half2_' + spremenljivka ) . sortable ( 'toArray' ) ;
} else if ( $ ( '#sortzone_' + spremenljivka ) . length > 0 ) { // premikanje
var arr = $ ( '#sortzone_' + spremenljivka ) . sortable ( 'toArray' ) ;
} else { // ostevilcevanje
var arr = null ;
value = $ ( 'input[name=spremenljivka_' + spremenljivka + '_vrednost_' + vrednost + ']' ) . val ( ) ;
}
// prestavljanje in premikanje
if ( arr != null ) {
for ( i = 0 ; i < arr . length ; i ++ ) {
if ( arr [ i ] == 'ranking_' + vrednost || arr [ i ] == 'handle_' + vrednost )
value = i + 1 ;
}
if ( value == 0 ) value = NaN ;
}
} else if ( tip == 22 ) { // calculation
value = parseFloat ( $ ( 'input#vrednost_' + spremenljivka ) . val ( ) ) ;
}
// Odvisno kako imamo nastavljeno v kalkulaciji da obravnavamo missinge
// ce je kateri od odgovorov missing, se steje kot 0
if ( calcMissing == 1 && isNaN ( value ) ) {
value = 0 ;
}
// ce je kateri od odgovorov missing, je tudi cela kalkulacija missing (-88)
else if ( isNaN ( value ) ) {
value = NaN ;
}
return value ;
}
// preveri number field, cela - stevilo celih mest, dec - stevilo decimalnih mest
function checkNumber ( field , cela , dec ) {
var val = field . value ;
var okval = '' ;
var decimal = false ;
var separator = false ;
for ( var i = 0 ; i < val . length ; i ++ ) {
if ( val . charAt ( i ) != ' ' && val . charAt ( i ) >= 0 && val . charAt ( i ) <= 9 ) {
if ( ! decimal ) {
if ( cela > 0 ) {
okval = okval + val . charAt ( i ) ;
cela = cela - 1 ;
}
} else {
if ( dec > 0 ) {
okval = okval + val . charAt ( i ) ;
dec = dec - 1 ;
}
}
} else if ( val . charAt ( i ) == '.' || val . charAt ( i ) == ',' ) {
if ( i == 0 || dec == 0 )
break ;
if ( ! separator )
okval = okval + '.' ;
separator = true ;
decimal = true ;
} else if ( i == 0 && val . charAt ( i ) == '-' ) {
okval = okval + '-' ;
}
}
if ( val != okval )
field . value = okval ;
}
function convertDate ( date ) {
var dateParts = date . split ( '.' ) ;
var newDate = dateParts [ 2 ] + '-' + dateParts [ 1 ] + '-' + dateParts [ 0 ] ;
return newDate ;
}
function calcSum ( spremenljivka , counter , limit ) {
var sum = 0 ;
var def = true ;
for ( var i = 0 ; i < counter ; i ++ ) {
var id = 'spremenljivka_' + spremenljivka + '_sestevanec_' + i ;
if ( document . getElementById ( id ) . parentNode . style . display != "none" )
if ( parseFloat ( document . getElementById ( id ) . value ) > 0 ) {
sum += parseFloat ( document . getElementById ( id ) . value ) ;
def = false ;
}
}
var id = 'spremenljivka_' + spremenljivka + '_vsota' ;
document . getElementById ( id ) . value = sum ;
$ ( '#' + id ) . removeClass ( "def" ) ;
if ( def ) $ ( '#' + id ) . addClass ( "def" ) ;
}
var radio _list = new Array ( ) ; // seznam obkljukanih radio buttnov (kamor spadajo tudi multigrid radii)
var radio _vals = new Array ( ) ; // value za skupino radio buttnov iz radio_list (kater je dejansko obkljukan)
// preveri, ce je bil radio obkljukan in v primeru, da smo se enkrat kliknili nanj, ga odkljuka
function checkChecked ( radio ) {
// najprej preverimo ce je trenutni radio checked (in ga v tem primeru odkljuka)
for ( var i = 0 ; i < radio _list . length ; i ++ ) {
if ( radio _list [ i ] == radio . name && radio _vals [ i ] == radio . value ) {
radio _list . splice ( i , 1 ) ;
radio _vals . splice ( i , 1 ) ;
radio . checked = false ;
return ;
}
}
// ni checked, torej ga bomo dodali na seznam
// najprej preverimo ce je bil ze izbran kater drug iz skupine
for ( var i = 0 ; i < radio _list . length ; i ++ ) {
if ( radio _list [ i ] == radio . name ) {
radio _vals [ i ] = radio . value ;
return ;
}
}
// checkan je bil prvi v skupini, tko da ga mormo na novo dodat
radio _list [ radio _list . length ] = radio . name ;
radio _vals [ radio _vals . length ] = radio . value ;
}
// Nastavi razred parentu da je odkljukan (da lahko odkljukanim textom nastavljamo css)
// mm - multi grid on mobile
// mmt - multi grid table on mobile
function setCheckedClass ( element , type , ifId ) {
var id = element . value ;
// Mobile vprasanje
if ( type == 'mm' ) {
if ( element . checked ) {
$ ( '[for="vrednost_' + ifId + '_grid_' + id + '"]' ) . parent ( ) . siblings ( ) . removeClass ( 'checked' ) ;
$ ( '[for="vrednost_' + ifId + '_grid_' + id + '"]' ) . parent ( ) . addClass ( 'checked' ) ;
}
else {
$ ( '[for="vrednost_' + ifId + '_grid_' + id + '"]' ) . parent ( ) . removeClass ( 'checked' ) ;
}
}
// Mobile tabela
else if ( type == 'mmt' ) {
if ( element . checked ) {
// Posebej obravnavamo missinge
if ( $ ( element ) . parent ( ) . hasClass ( "missing" ) ) {
$ ( '#vrednost_if_' + ifId ) . find ( '.grid_mobile_variable' ) . removeClass ( 'checked' ) ;
$ ( '#vrednost_if_' + ifId ) . find ( '.visual-radio-scale' ) . removeClass ( 'checked' ) ;
$ ( '#grid_missing_value_' + ifId + '_grid_' + id ) . parent ( ) . parent ( ) . addClass ( 'checked' ) ;
}
else {
// Pri checkboxu ne ugasnemo ostalih
if ( ! $ ( '#vrednost_if_' + ifId ) . parent ( ) . hasClass ( 'checkbox' ) ) {
$ ( '#vrednost_if_' + ifId ) . find ( '.grid_mobile_variable' ) . removeClass ( 'checked' ) ;
$ ( '#vrednost_if_' + ifId ) . find ( '.visual-radio-scale' ) . removeClass ( 'checked' ) ;
}
$ ( '#vrednost_' + ifId + '_grid_' + id ) . parent ( ) . parent ( ) . addClass ( 'checked' ) ;
}
}
else {
// Posebej obravnavamo missinge
if ( $ ( element ) . parent ( ) . hasClass ( "missing" ) ) {
$ ( '#grid_missing_value_' + ifId + '_grid_' + id ) . parent ( ) . parent ( ) . removeClass ( 'checked' ) ;
}
else {
$ ( '#vrednost_' + ifId + '_grid_' + id ) . parent ( ) . parent ( ) . removeClass ( 'checked' ) ;
}
}
}
// Mobile dvojna tabela
else if ( type == 'mmt6-3-1' || type == 'mmt6-3-2' ) {
// Drugi del dvojne tabele
if ( type == 'mmt6-3-2' ) {
if ( element . checked ) {
// Pri checkboxu ne ugasnemo ostalih
if ( ! $ ( '#vrednost_if_' + ifId ) . parent ( ) . hasClass ( 'checkbox' ) ) {
$ ( '#vrednost_if_' + ifId ) . find ( '.grid_mobile_variables.part_2' ) . find ( '.grid_mobile_variable' ) . removeClass ( 'checked' ) ;
}
$ ( '#vrednost_' + ifId + '_grid_' + id + '_part_2' ) . parent ( ) . parent ( ) . addClass ( 'checked' ) ;
}
else {
$ ( '#vrednost_' + ifId + '_grid_' + id + '_part_2' ) . parent ( ) . parent ( ) . removeClass ( 'checked' ) ;
}
}
else {
if ( element . checked ) {
// Pri checkboxu ne ugasnemo ostalih
if ( ! $ ( '#vrednost_if_' + ifId ) . parent ( ) . hasClass ( 'checkbox' ) ) {
$ ( '#vrednost_if_' + ifId ) . find ( '.grid_mobile_variables.part_1' ) . find ( '.grid_mobile_variable' ) . removeClass ( 'checked' ) ;
}
$ ( '#vrednost_' + ifId + '_grid_' + id ) . parent ( ) . parent ( ) . addClass ( 'checked' ) ;
}
else {
$ ( '#vrednost_' + ifId + '_grid_' + id ) . parent ( ) . parent ( ) . removeClass ( 'checked' ) ;
}
}
}
else {
if ( ifId ) {
id = ifId ;
if ( element . checked ) {
if ( type != 16 && type != '6-3-1' && type != '6-3-2' )
$ ( '#vrednost_if_' + id ) . find ( 'td' ) . removeClass ( 'checked' ) ; //vse ostale checkboxe odstranimo
// Dvojni grid
if ( type == '6-3-1' )
$ ( '#vrednost_if_' + id ) . find ( 'input:not([name$="_part_2"])' ) . closest ( 'td' ) . removeClass ( 'checked' ) ;
else if ( type == '6-3-2' )
$ ( '#vrednost_if_' + id ) . find ( 'input[name$="_part_2"]' ) . closest ( 'td' ) . removeClass ( 'checked' ) ;
$ ( element ) . closest ( 'td' ) . addClass ( 'checked' ) ;
}
else {
$ ( element ) . closest ( 'td' ) . removeClass ( 'checked' ) ;
}
}
if ( element . checked ) {
$ ( "#vrednost_if_" + id ) . addClass ( 'checked' ) ;
}
else {
$ ( "#vrednost_if_" + id ) . removeClass ( 'checked' ) ;
}
// za radio gumbe se ugasnemo ostale
if ( type == 1 ) {
var name = $ ( element ) . attr ( 'name' ) ;
var idVprasanja = name . substring ( 9 ) ; //dobimo ID vprasanja
//Image HotSpot: za brisanje obmocja
//identifier za sliko na katero se veze mapa z obmocji
var image1 = $ ( '#hotspot_' + idVprasanja + '_image' ) ;
$ ( "input[name=" + name + "]" ) . each ( function ( ) {
var loop _id = this . value ;
id = element . value ;
if ( loop _id != id ) {
$ ( "#vrednost_if_" + loop _id ) . removeClass ( 'checked' ) ;
$ ( '#spremenljivka_' + idVprasanja + '_vrednost_' + loop _id ) . closest ( 'td' ) . removeClass ( 'checked' ) ;
//Image HotSpot: brisemo obmocja iz slike
image1 . mapster ( 'set' , false , loop _id ) ; //spucaj trenutno obmocje iz slike
}
} ) ;
}
}
}
function customRadioSelect ( idElementa , value ) {
//najprej odstranimo class="obarvan" i
$ ( '#vrednost_if_' + idElementa ) . siblings ( ) . removeClass ( 'obarvan' ) ;
//pobarvamo ustrezno število elementov pred izbranim odgovorom
var trenutniElement = 'vrednost_if_' + idElementa ;
while ( trenutniElement ) {
trenutniElement = $ ( '#' + trenutniElement ) . addClass ( 'obarvan' ) . prev ( ) . attr ( 'id' ) ;
}
}
function customRadioTableSelect ( idElementa , value ) {
//najprej odstranimo class="obarvan" i
$ ( '#vrednost_if_' + idElementa + ' .custom_radio_picture' ) . removeClass ( 'obarvan' ) ;
//pobarvamo ustrezno število elementov pred izbranim odgovorom
for ( var i = value ; i > 0 ; i -- ) {
$ ( 'label[for="vrednost_' + idElementa + '_grid_' + i + '"]' ) . parent ( ) . addClass ( 'obarvan' ) ;
}
}
function customRadioTableSelectMobile ( idElementa , value ) {
//najprej odstranimo class="obarvan" i
$ ( '#vrednost_if_' + idElementa + ' .custom_radio_picture' ) . removeClass ( 'obarvan' ) ;
//pobarvamo ustrezno število elementov pred izbranim odgovorom
for ( var i = value ; i > 0 ; i -- ) {
$ ( 'label[for="vrednost_' + idElementa + '_grid_' + i + '"]' ) . find ( '.custom_radio_picture' ) . addClass ( 'obarvan' ) ;
}
}
function checkboxLimit ( spremenljivka , vrednost , checkbox _limit ) {
obj = document . forms [ 'vnos' ] . elements [ 'vrednost_' + spremenljivka + '[]' ] ;
var len = obj . length ;
var count = 0 ;
for ( i = 0 ; i < len ; i ++ )
if ( obj [ i ] . checked )
count ++ ;
if ( count > checkbox _limit ) {
document . getElementById ( 'spremenljivka_' + spremenljivka + '_vrednost_' + vrednost ) . checked = false ;
2021-11-05 11:54:50 +01:00
alert ( lang _srv _remind _checkbox _max _violated _hard ) ;
2020-08-14 13:36:36 +02:00
}
}
function checkboxLimitTextbox ( spremenljivka , vrednost , checkbox _limit ) {
obj = document . forms [ 'vnos' ] . elements [ 'vrednost_' + spremenljivka + '[]' ] ;
var len = obj . length ;
var count = 0 ;
for ( i = 0 ; i < len ; i ++ )
if ( obj [ i ] . checked )
count ++ ;
if ( count > checkbox _limit ) {
document . getElementById ( 'spremenljivka_' + spremenljivka + '_vrednost_' + vrednost ) . checked = false ;
document . getElementById ( 'spremenljivka_' + spremenljivka + '_textfield_' + vrednost ) . blur ( ) ;
}
}
function addFormField ( spremenljivka ) {
var id = document . getElementById ( "counter" ) . value ;
$ ( "#divTxt" + spremenljivka ) . append ( "<div id='row" + id + "' class='sn_name'><input type='text' value='' size=40 name='spremenljivka_" + spremenljivka + "[]' id='txt" + id + "' onblur='checkName(" + spremenljivka + ", this); checkBranching();' /> <a href='#' onClick='removeFormField(\"#row" + id + "\"); return false;'><span class=\"faicon delete\"></span></a></div>" ) ;
id = ( id - 1 ) + 2 ;
document . getElementById ( "counter" ) . value = id ;
}
function removeFormField ( id ) {
$ ( id ) . remove ( ) ;
}
// drop pri SN podpori
function accept _droppable ( child , parent ) {
$ ( '#' + child ) . load ( 'ajax.php?a=accept_droppable' , { child : child , parent : parent , anketa : srv _meta _anketa _id } ) ;
}
// drop pri ranking vprasanju (tip n>k)
function accept _ranking ( child , parent , spremenljivka , usr _id ) {
$ ( '#' + child ) . load ( 'ajax.php?a=accept_ranking' , { child : child , parent : parent , spremenljivka : spremenljivka , usr _id : usr _id , anketa : srv _meta _anketa _id } ) ;
}
//SN design ??
function dodaj _ime ( spremenljivka , ime ) {
$ ( '#imena_' + spremenljivka ) . load ( 'ajax.php?a=dodaj_ime' , { spremenljivka : spremenljivka , ime : ime , anketa : srv _meta _anketa _id } ) ;
}
//SN design 3
function edit _size ( spremenljivka , size ) {
var new _fields = '' ;
for ( var i = 1 ; i <= size ; i ++ ) {
new _fields += '<div id="row' + i + '" class="sn_name"><input type="text" name="spremenljivka_' + spremenljivka + '[]" id="txt' + i + '" size="40" onblur="checkName(\'' + spremenljivka + '\', this); checkBranching();"></div>' ;
}
$ ( '#imena_' + spremenljivka ) . html ( new _fields ) ;
}
function checkName ( spremenljivka , polje ) {
var field = polje . value ;
var imena = [ 'o\u010De' , 'mati' , 'mama' , 'ata' , 'h\u010Di' , 'h\u010Der' , 'sin' , 'brat' , 'sestra' , 'teta' , 'stric' , 'bratranec' , 'sestri\u010Dna' , 'svak' , 'svakinja' , 'ta\u0161\u010Da' , 'tast' , 'dedek' , 'babica' , 'prijatelj' , 'prijatelji' , 'prijateljica' , 'kolegi' , 'kolega' , 'kolegica' , 'sosed' , 'soseda' , 'znanec' , 'znanka' , 'dru\u017Eina' , 'noben' , 'noben drug' , 'nih\u010De' , 'ni\u010D' , 'sodelavec' , 'sodelavka' ] ;
var index = imena . indexOf ( field ) ;
if ( index != - 1 ) {
polje . value = '' ;
2021-11-05 11:54:50 +01:00
alert ( 'Opozorilo: napa\u010Den vpis\r\n\r\nPonovno vpi\u0161ite ime in za\u010Detnico priimka' ) ;
2020-08-14 13:36:36 +02:00
}
//$('#right_'+spremenljivka).load('ajax.php?a=check_name', {spremenljivka: spremenljivka, field: field});
}
function checkRankingNum ( field , max , spremenljivka , count ) {
var val = field . value ;
var ok = true ;
var temp ;
for ( var i = 0 ; i < count ; i ++ ) {
var id = 'spremenljivka_' + spremenljivka + '_ranking_cifre_' + i ;
temp = document . getElementById ( id ) . value ;
if ( ( temp == val ) && ( field . id != id ) ) {
ok = false ;
break ;
}
}
if ( ! ok && val != '' ) {
2021-11-05 11:54:50 +01:00
alert ( lang _srv _alert _number _exists ) ;
2020-08-14 13:36:36 +02:00
field . value = '' ;
}
if ( val > max ) {
2021-11-05 11:54:50 +01:00
alert ( lang _srv _alert _number _toobig ) ;
2020-08-14 13:36:36 +02:00
field . value = '' ;
}
}
//preverjamo ce smo dosegli stevilo vnosov
function checkRankingCount ( field , max , spremenljivka , count ) {
var val = field . value ;
var counter = 0 ;
for ( var i = 0 ; i < count ; i ++ ) {
var id = 'spremenljivka_' + spremenljivka + '_ranking_cifre_' + i ;
temp = document . getElementById ( id ) . value ;
if ( temp != '' ) {
counter ++ ;
}
}
for ( var i = 0 ; i < count ; i ++ ) {
var id = 'spremenljivka_' + spremenljivka + '_ranking_cifre_' + i ;
temp = document . getElementById ( id ) . value ;
if ( ( temp == '' ) && ( counter == max ) ) {
document . getElementById ( id ) . disabled = true ;
}
else {
document . getElementById ( id ) . disabled = false ;
}
}
}
// za missing vrednosti za checkboxe in radio (disejbla ostale možne odgovore če je izbran missing)
function checkMissing ( _ _this ) {
// polovimo id vrednosti
var vrednost _id = $ ( _ _this ) . val ( ) ;
var spremenljivka _id = $ ( _ _this ) . attr ( 'id' ) ;
spremenljivka _id = spremenljivka _id . replace ( "missing_value_spremenljivka_" , "" ) ;
spremenljivka _id = spremenljivka _id . replace ( "_vrednost_" + vrednost _id + "" , "" ) ;
//Image HotSpot: za brisanje obmocja
//identifier za sliko na katero se veze mapa z obmocji
var image1 = $ ( '#hotspot_' + spremenljivka _id + '_image' ) ;
// preštejemo koliko missingov je izbranih
var missing _selected = $ ( "input[id^=missing_value_spremenljivka_" + spremenljivka _id + "]:checked" ) . length ;
// izbran je lahko samo 1 missing naenkrat
if ( missing _selected > 1 ) {
$ ( '#mv_cal_on_' + spremenljivka _id ) . addClass ( 'hidden' ) ;
$ ( '#mv_cal_off_' + spremenljivka _id ) . removeClass ( 'hidden' ) ;
$ ( "input[id^=missing_value_spremenljivka_" + spremenljivka _id + "]:checked" ) . each ( function ( index , value ) {
if ( $ ( value ) . val ( ) == vrednost _id ) {
//kliknjen missing je trenutni v loopu
} else {
//kliknjen missing ni trenutni v loopu - ga disejblamo
$ ( value ) . attr ( 'checked' , false ) ;
}
} ) ;
}
// disejbamo ali enejblamo vnosna polja
if ( missing _selected > 0 ) {
$ ( '#mv_cal_on_' + spremenljivka _id ) . hide ( ) ;
$ ( '#mv_cal_off_' + spremenljivka _id ) . show ( ) ;
// diesjblamo vse ostale opcije za vrstico in deselectiramo
$ ( "input[id^=spremenljivka_" + spremenljivka _id + "]" ) . each ( function ( index , value ) {
var el _type = $ ( value ) . attr ( 'type' ) ; // tip elementa ki ga disejblamo
$ ( this ) . attr ( 'disabled' , true ) ; // disejblamo
// checkboxe še vgasnemo
if ( el _type == 'checkbox' ) {
$ ( this ) . attr ( 'checked' , false ) ; // checkboxe ugasnemo
//Image HotSpot: brisemo obmocja iz slike
image1 . mapster ( 'set' , false , $ ( this ) . val ( ) ) ; //spucaj trenutno obmocje iz slike
}
if ( el _type == 'text' ) {
$ ( this ) . val ( '' ) ; // pobrisemo tekst
$ ( this ) . addClass ( 'disabled' ) ; // posivimo
}
} ) ;
$ ( "div#spremenljivka_" + spremenljivka _id + ".tip_8 input[type=text]" ) . val ( '' ) . attr ( 'disabled' , true ) . addClass ( 'disabled' ) ;
// Posebej se disejblamo textarea
$ ( "textarea[id^=spremenljivka_" + spremenljivka _id + "]" ) . each ( function ( index , value ) {
$ ( this ) . attr ( 'disabled' , true ) ; // disejblamo
$ ( this ) . val ( '' ) ; // pobrisemo tekst
$ ( this ) . addClass ( 'disabled' ) ; // posivimo
} ) ;
} else {
//preverimo ali je kateri checkbox čekiran
$ ( '#mv_cal_off_' + spremenljivka _id ) . hide ( ) ;
$ ( '#mv_cal_on_' + spremenljivka _id ) . show ( ) ;
// enejblamo vse ostale opcije za vrstico
$ ( "input[id^=spremenljivka_" + spremenljivka _id + "]" ) . each ( function ( index , value ) {
var el _type = $ ( value ) . attr ( 'type' ) ; // tip elementa ki ga enejblamo
$ ( this ) . attr ( 'disabled' , false ) ; //enejblamo
if ( el _type == 'text' ) {
$ ( this ) . removeClass ( 'disabled' ) ; // osvetlimo
}
} ) ;
$ ( "div#spremenljivka_" + spremenljivka _id + ".tip_8 input[type=text]" ) . val ( '' ) . attr ( 'disabled' , false ) . removeClass ( 'disabled' ) ;
// Posebej se enablamo textarea
$ ( "textarea[id^=spremenljivka_" + spremenljivka _id + "]" ) . each ( function ( index , value ) {
$ ( this ) . attr ( 'disabled' , false ) ; //enejblamo
$ ( this ) . removeClass ( 'disabled' ) ; // osvetlimo
} ) ;
}
}
// za missing vrednosti za tabelarične odgovore
function checkTableMissing ( _ _this ) {
// polovimo id vrednosti
var grid _id = $ ( _ _this ) . val ( ) ;
var vrednost _id = $ ( _ _this ) . attr ( 'id' ) ;
vrednost _id = vrednost _id . replace ( "grid_missing_value_" , "" ) ;
vrednost _id = vrednost _id . replace ( "_grid_" + grid _id , "" ) ;
// preštejemo koliko missingov je izbranih
var missing _selected = $ ( "input[id^=grid_missing_value_" + vrednost _id + "_grid_]:checked" ) . length ;
// izbran je lahko samo 1 missing naenkraz
if ( missing _selected > 1 ) {
$ ( "input[id^=grid_missing_value_" + vrednost _id + "_grid_]:checked" ) . each ( function ( index , value ) {
if ( $ ( value ) . attr ( 'id' ) == 'grid_missing_value_' + vrednost _id + '_grid_' + grid _id ) {
//kliknjen missing je trenutni v loopu
} else {
//kliknjen missing ni trenutni v loopu - ga disejblamo
$ ( value ) . attr ( 'checked' , false ) ;
}
} ) ;
}
// disejbamo ali enejblamo vnosna polja
if ( missing _selected > 0 ) {
// diesjblamo vse ostale opcije za vrstico in deselectiramo
$ ( "input[id^=vrednost_" + vrednost _id + "_grid_], textarea[id^=vrednost_" + vrednost _id + "_grid_]," ) . each ( function ( index , value ) {
var el _type = $ ( value ) . attr ( 'type' ) ; // tip elementa ki ga disejblamo
//TOLE PRI GRIDU Z RADIOBUTTNI NI POTREBNO?
if ( el _type != 'radio' ) {
$ ( this ) . attr ( 'disabled' , true ) ; // disejblamo
}
// checkboxe še vgasnemo
if ( el _type == 'checkbox' ) {
$ ( this ) . attr ( 'checked' , false ) ; // checkboxe ugasnemo
}
if ( el _type == 'text' || $ ( value ) . is ( 'textarea' ) ) {
$ ( this ) . val ( '' ) ; // pobrisemo tekst
$ ( this ) . addClass ( 'disabled' ) ; // posivimo
}
} ) ;
// diesjblamo še polje drugo
$ ( "input[name^=textfield_" + vrednost _id + "], textarea[name^=textfield_" + vrednost _id + "]" ) . each ( function ( index , value ) {
$ ( this ) . attr ( 'disabled' , true ) ; // disejblamo
$ ( this ) . addClass ( 'disabled' ) ; // posivimo
$ ( this ) . val ( '' ) ; // pobrišemo tekst
} ) ;
} else {
//preverimo ali je kateri checkbox čekiran
// enejblamo vse ostale opcije za vrstico
$ ( "input[id^=vrednost_" + vrednost _id + "_grid_], textarea[id^=vrednost_" + vrednost _id + "_grid_]" ) . each ( function ( index , value ) {
var el _type = $ ( value ) . attr ( 'type' ) ; // tip elementa ki ga enejblamo
$ ( this ) . attr ( 'disabled' , false ) ; //enejblamo
if ( el _type == 'text' || $ ( value ) . is ( 'textarea' ) ) {
$ ( this ) . removeClass ( 'disabled' ) ; // osvetlimo
}
} ) ;
// enejblamo še polje drugo
$ ( "input[name^=textfield_" + vrednost _id + "], textarea[name^=textfield_" + vrednost _id + "]" ) . each ( function ( index , value ) {
$ ( this ) . removeClass ( 'disabled' ) ; // osvetlimo
$ ( this ) . attr ( 'disabled' , false ) ; // enejblamo
} ) ;
}
}
function checkBranchingDate ( ) {
checkBranching ( ) ;
}
// preklop statistike pri glasovanjih - razvrscanje po spolu
function stat _spol ( spremenljivka , spol ) {
$ ( '#spremenljivka_statistika' ) . load ( '../main/survey/ajax.php?a=spol' , { spremenljivka : spremenljivka , spol : spol , anketa : srv _meta _anketa _id } ) ;
}
function getBodyHeight ( ) {
var height ;
var scrollHeight ;
var offsetHeight ;
if ( document . height ) {
height = document . height ;
} else if ( document . body ) {
if ( document . body . scrollHeight ) {
height = scrollHeight = document . body . scrollHeight ;
}
if ( document . body . offsetHeight ) {
height = offsetHeight = document . body . offsetHeight ;
}
if ( scrollHeight && offsetHeight ) {
height = Math . max ( scrollHeight , offsetHeight ) ;
}
}
return height ;
}
function slide _timer _pause _ON ( ) {
is _paused _slideshow = true ;
$ ( "#btn_pause_on" ) . hide ( ) ;
$ ( "#btn_pause_off" ) . show ( ) ;
}
function slide _timer _pause _OFF ( ) {
is _paused _slideshow = false ;
$ ( "#btn_pause_off" ) . hide ( ) ;
$ ( "#btn_pause_on" ) . show ( ) ;
}
// Premik vrstice pri dinamicnih multigridih
function rowSlide ( spremenljivka , row , next ) {
// Dobimo stevilo vrstic
var count = $ ( '#dynamic_multigrid_' + spremenljivka ) . val ( ) ;
// Dobimo trenutno prikazanega
var current = 0 ;
for ( var i = 1 ; i <= count ; i ++ ) {
if ( $ ( '.' + spremenljivka + '_gridRow_' + i ) . is ( ':visible' ) ) {
current = i ;
break ;
}
}
// preverimo ce lahko preklopimo na naslednjo (zaradi ifov)
if ( $ ( '.' + spremenljivka + '_gridRow_' + next ) . hasClass ( 'if_hide' ) ) {
// Ce premikamo naprej poiscemo do konca
if ( parseInt ( next ) > parseInt ( row ) ) {
for ( var i = parseInt ( next ) ; i <= count ; i ++ ) {
if ( ! $ ( '.' + spremenljivka + '_gridRow_' + i ) . hasClass ( 'if_hide' ) ) {
next = i ;
break ;
}
else if ( i == count ) {
next = undefined ;
}
}
}
// Ce premikamo nazaj poiscemo do zacetka
else {
for ( var i = parseInt ( next ) ; i > 0 ; i -- ) {
if ( ! $ ( '.' + spremenljivka + '_gridRow_' + i ) . hasClass ( 'if_hide' ) ) {
next = i ;
break ;
}
else if ( i == 1 ) {
next = undefined ;
}
}
}
}
if ( next != undefined ) {
// Nastavimo containerju height - drugace pri fade-out skoci na vrh
var height = $ ( '#spremenljivka_' + spremenljivka ) . height ( ) ;
//$('#spremenljivka_'+spremenljivka).height(height); // Ugasnjeno, ker drugace ohrani staro visino in lahko pride pri slidu do prekrivanja na dnu
$ ( '.' + spremenljivka + '_gridRow_' + row ) . fadeOut ( "medium" , function ( ) { $ ( '.' + spremenljivka + '_gridRow_' + next ) . fadeIn ( "medium" ) ; } ) ;
if ( $ ( '.' + spremenljivka + '_gridRowArrows_' + row ) . length > 0 )
$ ( '.' + spremenljivka + '_gridRowArrows_' + row ) . fadeOut ( "medium" , function ( ) { $ ( '.' + spremenljivka + '_gridRowArrows_' + next ) . fadeIn ( "medium" ) ; } ) ;
current = next ;
}
// Popravimo puscice in counter
//dynamicMultigridFixArrows(current, count, spremenljivka);
dynamicMultigridFixAllArrows ( spremenljivka ) ;
// Popravimo da vemo da smo ze prej premikali
$ ( '#dynamic_multigrid_' + spremenljivka + '_load' ) . val ( '0' ) ;
}
// Prikaz/skrivanje vrstic v dinamicnih multigridih zaradi if-ov
function dynamicMultigridSwitchIf ( show , id , spremenljivka ) {
var row = $ ( '#vrednost_if_' + id ) . attr ( 'seq' ) ;
// Dobimo stevilo vrstic
var count = $ ( '#dynamic_multigrid_' + spremenljivka ) . val ( ) ;
// Dobimo trenutno prikazanega
var current = 0 ;
for ( var i = 1 ; i <= count ; i ++ ) {
if ( $ ( '.' + spremenljivka + '_gridRow_' + i ) . is ( ':visible' ) ) {
current = i ;
break ;
}
}
// Prikazemo vrstico v dinamicnem mg zaradi ifa
if ( show == 1 ) {
$ ( '#vrednost_if_' + id ) . removeClass ( 'if_hide' ) ;
// Ce ni noben element viden prikazemo vklopljenega
if ( current == 0 ) {
$ ( '.' + spremenljivka + '_gridRow_' + row ) . show ( ) ;
if ( $ ( '.' + spremenljivka + '_gridRowArrows_' + row ) . length > 0 )
$ ( '.' + spremenljivka + '_gridRowArrows_' + row ) . show ( ) ;
current = row ;
}
// Ce je viden kasnejsi kot trenuten ki bi moral biti prikazan (ker je prvi v ifu, drugi pa ne), premaknemo nazaj (samo ce gre za novo nalaganje strani - ce gre za rowSlide pa ne)
else if ( current > row && $ ( '#dynamic_multigrid_' + spremenljivka + '_load' ) . val ( ) == '1' ) {
rowSlide ( spremenljivka , current , row ) ;
}
}
// Skrijemo vrstico v dinamicnem mg zaradi ifa
else {
$ ( '#vrednost_if_' + id ) . addClass ( 'if_hide' ) ;
// Ce smo izklopili trenutno prikazanega
if ( row == current ) {
for ( var i = 1 ; i <= count ; i ++ ) {
if ( ! $ ( '.' + spremenljivka + '_gridRow_' + i ) . hasClass ( 'if_hide' ) ) {
next = i ;
break ;
}
else if ( i == count ) {
next = undefined ;
}
}
// Preklopimo na prvega ki ga lahko prikazemo
if ( next != undefined ) {
$ ( '.' + spremenljivka + '_gridRow_' + row ) . fadeOut ( "medium" , function ( ) { $ ( '.' + spremenljivka + '_gridRow_' + next ) . fadeIn ( "medium" ) ; } ) ;
if ( $ ( '.' + spremenljivka + '_gridRowArrows_' + row ) . length > 0 )
$ ( '.' + spremenljivka + '_gridRowArrows_' + row ) . fadeOut ( "medium" , function ( ) { $ ( '.' + spremenljivka + '_gridRowArrows_' + next ) . fadeIn ( "medium" ) ; } ) ;
current = next ;
}
// Ce smo izklopili prikazanega in so vsi ostali skriti
else {
$ ( '.' + spremenljivka + '_gridRow_' + row ) . fadeOut ( "medium" ) ;
if ( $ ( '.' + spremenljivka + '_gridRowArrows_' + row ) . length > 0 )
$ ( '.' + spremenljivka + '_gridRowArrows_' + row ) . fadeOut ( "medium" ) ;
}
}
}
// Popravimo puscice in counter
//dynamicMultigridFixArrows(current, count, spremenljivka);
dynamicMultigridFixAllArrows ( spremenljivka ) ;
}
function dynamicMultigridFixArrows ( current , count , spremenljivka ) {
// Preverimo ce imamo elemente pred in za, ki jih ne skrivamo z if-i in jih prestejemo
var show _back = false ;
var show _forward = false ;
var count _valid = 0 ;
var count _before = 1 ;
for ( var i = 1 ; i <= count ; i ++ ) {
if ( ! $ ( '.' + spremenljivka + '_gridRow_' + i ) . hasClass ( 'if_hide' ) && i < current ) {
show _back = true ;
count _before ++ ;
}
else if ( ! $ ( '.' + spremenljivka + '_gridRow_' + i ) . hasClass ( 'if_hide' ) && i > current )
show _forward = true ;
if ( ! $ ( '.' + spremenljivka + '_gridRow_' + i ) . hasClass ( 'if_hide' ) )
count _valid ++ ;
}
if ( $ ( '.' + spremenljivka + '_gridRowArrows_' + current ) . length > 0 ) {
// Popravimo puscico nazaj
if ( show _back )
$ ( '.' + spremenljivka + '_gridRowArrows_' + current ) . find ( '.arrow_back' ) . show ( ) ;
else
$ ( '.' + spremenljivka + '_gridRowArrows_' + current ) . find ( '.arrow_back' ) . hide ( ) ;
// Popravimo puscico naprej
if ( show _forward )
$ ( '.' + spremenljivka + '_gridRowArrows_' + current ) . find ( '.arrow_forward' ) . show ( ) ;
else
$ ( '.' + spremenljivka + '_gridRowArrows_' + current ) . find ( '.arrow_forward' ) . hide ( ) ;
// Popravimo counter
$ ( '.' + spremenljivka + '_gridRowArrows_' + current ) . find ( '#dynamic_count' ) . html ( count _before + ' / ' + count _valid ) ;
}
else {
// Popravimo puscico nazaj
if ( show _back )
$ ( '.' + spremenljivka + '_gridRow_' + current ) . find ( '.arrow_back' ) . show ( ) ;
else
$ ( '.' + spremenljivka + '_gridRow_' + current ) . find ( '.arrow_back' ) . hide ( ) ;
// Popravimo puscico naprej
if ( show _forward )
$ ( '.' + spremenljivka + '_gridRow_' + current ) . find ( '.arrow_forward' ) . show ( ) ;
else
$ ( '.' + spremenljivka + '_gridRow_' + current ) . find ( '.arrow_forward' ) . hide ( ) ;
// Popravimo counter
$ ( '.' + spremenljivka + '_gridRow_' + current ) . find ( '#dynamic_count' ) . html ( count _before + ' / ' + count _valid ) ;
}
}
// Gremo cez vse bloke in vsakemu popravimo paginacijo in puscice
function dynamicMultigridFixAllArrows ( spremenljivka ) {
// Dobimo stevilo vrstic
var count = $ ( '#dynamic_multigrid_' + spremenljivka ) . val ( ) ;
$ ( '.' + spremenljivka + '_gridRow' ) . each ( function ( ) {
var current = $ ( this ) . attr ( 'seq' ) ;
// Preverimo ce imamo elemente pred in za, ki jih ne skrivamo z if-i in jih prestejemo
var show _back = false ;
var show _forward = false ;
var count _valid = 0 ;
var count _before = 1 ;
var visible _sequences = new Array ( ) ;
for ( var i = 1 ; i <= count ; i ++ ) {
if ( ! $ ( '.' + spremenljivka + '_gridRow_' + i ) . hasClass ( 'if_hide' ) && i < current ) {
show _back = true ;
count _before ++ ;
}
else if ( ! $ ( '.' + spremenljivka + '_gridRow_' + i ) . hasClass ( 'if_hide' ) && i > current )
show _forward = true ;
if ( ! $ ( '.' + spremenljivka + '_gridRow_' + i ) . hasClass ( 'if_hide' ) ) {
visible _sequences [ i ] = true ;
count _valid ++ ;
}
else {
visible _sequences [ i ] = false ;
}
}
// Pri paginaciji skrijemo stevilke, ki so skrite zaradi if-a in prestevilcimo
var cnt = 1 ;
for ( i = 1 ; i < visible _sequences . length + 1 ; i ++ ) {
if ( visible _sequences [ i ] == false ) {
$ ( this ) . find ( '.sequence_number_' + i ) . hide ( ) ;
}
else {
$ ( this ) . find ( '.sequence_number_' + i ) . show ( ) ;
$ ( this ) . find ( '.sequence_number_' + i ) . html ( cnt ) ;
cnt ++ ;
}
}
if ( $ ( '.' + spremenljivka + '_gridRowArrows_' + current ) . length > 0 ) {
// Popravimo puscico nazaj
if ( show _back )
$ ( '.' + spremenljivka + '_gridRowArrows_' + current ) . find ( '.arrow_back' ) . show ( ) ;
else
$ ( '.' + spremenljivka + '_gridRowArrows_' + current ) . find ( '.arrow_back' ) . hide ( ) ;
// Popravimo puscico naprej
if ( show _forward )
$ ( '.' + spremenljivka + '_gridRowArrows_' + current ) . find ( '.arrow_forward' ) . show ( ) ;
else
$ ( '.' + spremenljivka + '_gridRowArrows_' + current ) . find ( '.arrow_forward' ) . hide ( ) ;
// Popravimo counter
$ ( '.' + spremenljivka + '_gridRowArrows_' + current ) . find ( '#dynamic_count' ) . html ( count _before + ' / ' + count _valid ) ;
}
else {
// Popravimo puscico nazaj
if ( show _back )
$ ( '.' + spremenljivka + '_gridRow_' + current ) . find ( '.arrow_back' ) . show ( ) ;
else
$ ( '.' + spremenljivka + '_gridRow_' + current ) . find ( '.arrow_back' ) . hide ( ) ;
// Popravimo puscico naprej
if ( show _forward )
$ ( '.' + spremenljivka + '_gridRow_' + current ) . find ( '.arrow_forward' ) . show ( ) ;
else
$ ( '.' + spremenljivka + '_gridRow_' + current ) . find ( '.arrow_forward' ) . hide ( ) ;
// Popravimo counter
$ ( '.' + spremenljivka + '_gridRow_' + current ) . find ( '#dynamic_count' ) . html ( count _before + ' / ' + count _valid ) ;
}
} ) ;
}
// Razpiranje mobilnih tabel
function mobileMultigridExpandable ( ) {
// Pri kliku na naslov podvprasanja razpremo/zapremo podvprasanje
2022-08-30 11:24:54 +02:00
$ ( ".grid_mobile.mobile_expanding .grid_mobile_title" ) . click ( function ( ) {
2020-08-14 13:36:36 +02:00
// Double gridi imajo zaenkrat to izklopljeno
if ( ! $ ( this ) . parent ( ) . parent ( ) . hasClass ( "double" ) ) {
// Dobimo pripadajoc div z vsemi vrednostmi
$ ( this ) . parent ( ) . find ( ".grid_mobile_variables" ) . toggle ( "fast" , function ( ) {
mobileMultigridExpandableArrow ( this ) ;
} ) ;
}
} ) ;
// Posebna obravnava radio tabel (avtomatsko razpiranje in pomikanje)
mobileMultigridExpandableRadio ( ) ;
}
// Razpiranje mobilnih tabel pri radio tabelah
function mobileMultigridExpandableRadio ( ) {
// Na zacetku skrijemo vedno vse razen prvega
2022-08-30 11:24:54 +02:00
$ ( ".grid_mobile.mobile_expanding.radio:not(.double)" ) . find ( "div.grid_mobile_variables:not(:first)" ) . hide ( function ( ) {
2020-08-14 13:36:36 +02:00
mobileMultigridExpandableArrow ( this ) ;
} ) ;
// Obrnemo puscico za razpiranje
2022-08-30 11:24:54 +02:00
$ ( ".grid_mobile.mobile_expanding.radio:not(.double)" ) . find ( "div.grid_mobile_variables:not(:first)" ) . parent ( ) . find ( ".mobile_expanding_arrow" ) . toggleClass ( "arrow_down" ) . toggleClass ( "arrow_up" ) ;
2020-08-14 13:36:36 +02:00
// Pokazemo div z rezultatom
2022-08-30 11:24:54 +02:00
$ ( ".grid_mobile.mobile_expanding.radio:not(.double)" ) . find ( "div.grid_mobile_variables:not(:first)" ) . parent ( ) . find ( ".grid_mobile_result" ) . show ( ) ;
2020-08-14 13:36:36 +02:00
// Pri kliku na radio zapremo in razpremo naslednji segment
$ ( "input[type=\"radio\"]" ) . click ( function ( ) {
// Ce gre za radio znotraj tabele
2022-08-30 11:24:54 +02:00
if ( $ ( this ) . closest ( ".grid_mobile.mobile_expanding .grid_mobile_variables" ) . length > 0 && ! $ ( this ) . closest ( ".grid_mobile_variables" ) . parent ( ) . parent ( ) . hasClass ( "double" ) ) {
2020-08-14 13:36:36 +02:00
var podvprasanje _current = $ ( this ) . closest ( ".grid_mobile_variables" ) ;
var podvprasanje _next = $ ( podvprasanje _current ) . parent ( ) . next ( ) . find ( ".grid_mobile_variables" ) ;
// Zapremo trenutno podvprasanje
$ ( podvprasanje _current ) . hide ( "fast" , function ( ) {
mobileMultigridExpandableArrow ( this ) ;
} ) ;
// Razpremo naslednje vprasanje ce obstaja
$ ( podvprasanje _next ) . show ( "fast" , function ( ) {
mobileMultigridExpandableArrow ( this ) ;
} ) ;
// Zascrollamo do naslednjega podvprasanja
$ ( "html, body" ) . animate ( {
scrollTop : $ ( podvprasanje _current ) . offset ( ) . top
} , 300 , "swing" ) ;
}
} ) ;
}
// Razpiranje mobilnih tabel - zamenjava puscice
function mobileMultigridExpandableArrow ( el ) {
var arrow = $ ( el ) . parent ( ) . find ( ".mobile_expanding_arrow" ) ;
$ ( arrow ) . toggleClass ( "arrow_down" ) . toggleClass ( "arrow_up" ) ;
mobileMultigridExpandableData ( arrow ) ;
}
// Prikazemo/skrijemo text odgovora pod naslovom
function mobileMultigridExpandableData ( arrow ) {
var result = $ ( arrow ) . parent ( ) . parent ( ) . find ( ".grid_mobile_result" ) ;
// Dobimo text oznacenega radia in ga zapisemo v result div
var text = $ ( arrow ) . parent ( ) . parent ( ) . find ( "input[type=radio]:checked" ) . parent ( ) . parent ( ) . find ( ".grid_mobile_variable_title" ) . text ( ) ;
$ ( result ) . text ( text ) ;
// Glede na puscico prikazemo oz. skrijemo result div
if ( $ ( arrow ) . hasClass ( "arrow_down" ) ) {
$ ( result ) . show ( 'fast' ) ;
}
else {
$ ( result ) . hide ( 'fast' ) ;
}
}
// Razpiranje vprasanj v bloku - init
function questionsExpandable ( ) {
// Skrijemo vsebino vseh vprasanj razen prvega
$ ( '.expendable_block .variable_holder:not(:visible:first)' ) . hide ( ) ;
// Dodamo pointer in puscico na naslov vprasanj
$ ( '.expendable_block .naslov' ) . addClass ( 'pointer' ) ;
$ ( '.expendable_block .naslov:not(:visible:first)' ) . append ( '<span class="faicon arrow_down question_expanding_arrow"></span>' ) ;
$ ( '.expendable_block .naslov:visible:first' ) . append ( '<span class="faicon arrow_up question_expanding_arrow"></span>' ) ;
// Dodamo se padding na text da ne prekriva puscice
$ ( '.expendable_block .naslov p' ) . css ( "padding-right" , "35px" ) ;
// Loop cez vse v bloku in zapisemo rezultat v naslov ce je izbran (zaenkrat samo radio)
$ ( '.expendable_block' ) . each ( function ( ) {
questionExpandableData ( this ) ;
} ) ;
// Klik na naslov - podvprasanje razpremo/zapremo
$ ( '.expendable_block .naslov' ) . click ( function ( ) {
var spremenljivka = $ ( this ) . closest ( '.spremenljivka' ) ;
questionExpandableToggle ( spremenljivka ) ;
} ) ;
// Pri kliku na radio gremo na naslednje
$ ( ".expendable_block input[type=radio]" ) . click ( function ( ) {
var spremenljivka = $ ( this ) . closest ( '.spremenljivka' ) ;
var spremenljivka _next = $ ( spremenljivka ) . nextAll ( ":visible" ) . first ( ) . find ( ".variable_holder:hidden:first" ) . closest ( '.spremenljivka' ) ;
if ( $ ( spremenljivka ) . hasClass ( "tip_1" ) && $ ( spremenljivka ) . hasClass ( "expendable_block" ) ) {
// Zapremo trenutnega
questionExpandableToggle ( spremenljivka ) ;
// Odpremo naslednjega
questionExpandableToggle ( spremenljivka _next ) ;
// Zascrollamo do naslednjega vprasanja
$ ( "html, body" ) . animate ( {
scrollTop : $ ( spremenljivka ) . find ( '.variable_holder' ) . offset ( ) . top
} , 300 , "swing" ) ;
}
} ) ;
// Pri bluru text vprasanja gremo na naslednje
$ ( ".expendable_block input[type=text]" ) . blur ( function ( ) {
var spremenljivka = $ ( this ) . closest ( '.spremenljivka' ) ;
var spremenljivka _next = $ ( spremenljivka ) . nextAll ( ":visible" ) . first ( ) . find ( ".variable_holder:hidden:first" ) . closest ( '.spremenljivka' ) ;
if ( $ ( spremenljivka ) . hasClass ( "tip_21" ) && $ ( spremenljivka ) . hasClass ( "expendable_block" ) ) {
// Zapremo trenutnega
questionExpandableToggle ( spremenljivka ) ;
// Odpremo naslednjega
questionExpandableToggle ( spremenljivka _next ) ;
// Zascrollamo do naslednjega vprasanja
$ ( "html, body" ) . animate ( {
scrollTop : $ ( spremenljivka ) . find ( '.variable_holder' ) . offset ( ) . top
} , 300 , "swing" ) ;
}
} ) ;
}
// Razpiranje vprašanj v bloku - razpiranje/zapiranje posameznega vprasanja
function questionExpandableToggle ( spremenljivka ) {
// Vprasanje razpremo / zapremo
$ ( spremenljivka ) . find ( '.variable_holder' ) . slideToggle ( function ( ) {
// Obrnemo puscico
$ ( spremenljivka ) . find ( '.question_expanding_arrow' ) . toggleClass ( "arrow_up arrow_down" ) ;
// Po potrebi prikazemo/skrijemo rezultat v naslovu
questionExpandableData ( spremenljivka ) ;
} ) ;
}
// Prikazemo/skrijemo text odgovora pod naslovom
function questionExpandableData ( spremenljivka ) {
// Text prikazujemo samo za radio tip, ki ima kaksno vrednost oznaceno
if ( $ ( spremenljivka ) . hasClass ( 'tip_1' ) && $ ( spremenljivka ) . find ( ".variabla.checked" ) . length ) {
// Ce je vprasanje zaprto prikazemo text
if ( $ ( spremenljivka ) . find ( ".variable_holder" ) . is ( ':hidden' ) ) {
// Extractamo samo text vrednosti (brez radio gumba)
var label = $ ( spremenljivka ) . find ( ".variabla.checked label" ) . clone ( ) ;
$ ( label ) . find ( 'input' ) . remove ( ) ;
$ ( label ) . find ( '.enka-checkbox-radio' ) . remove ( ) ;
var result = $ ( label ) . text ( ) ;
// Dodamo text v naslov
$ ( spremenljivka ) . find ( '.naslov' ) . append ( '<p class="expendable_block_result" style="display:none;">' + result + '</p>' ) ;
$ ( spremenljivka ) . find ( '.expendable_block_result' ) . show ( 'fast' ) ;
}
// Ce je vprasanje zaprto skrijemo text
else {
$ ( spremenljivka ) . find ( '.expendable_block_result' ) . hide ( 'fast' , function ( ) {
$ ( spremenljivka ) . find ( '.expendable_block_result' ) . remove ( ) ;
} ) ;
}
}
}
function continue _later ( site _url , lang _id ) {
if ( $ ( '#continue_later' ) . length ) {
$ ( '#continue_later' ) . remove ( ) ;
} else {
$ . post ( site _url + 'main/survey/ajax.php?a=continue_later&language=' + lang _id , { anketa : srv _meta _anketa _id , url : window . location . href } , function ( data ) {
$ ( '#continue_later' ) . remove ( ) ;
$ ( '#container h1' ) . after ( data ) ;
} ) ;
}
}
function continue _later _send ( site _url , lang _id ) {
url = $ ( '#url' ) . val ( ) ;
email = $ ( '#email' ) . val ( ) ;
$ . post ( site _url + 'main/survey/ajax.php?a=continue_later_send&language=' + lang _id , { anketa : srv _meta _anketa _id , url : url , email : email } , function ( data ) {
$ ( '#continue_later' ) . remove ( ) ;
} ) ;
2022-09-14 11:15:38 +02:00
}
function return _edit _send ( site _url , lang _id ) {
url = $ ( '#url' ) . val ( ) ;
email = $ ( '#email' ) . val ( ) ;
2020-08-14 13:36:36 +02:00
2022-09-14 11:15:38 +02:00
$ . post ( site _url + 'main/survey/ajax.php?a=return_edit_send&language=' + lang _id , { anketa : srv _meta _anketa _id , url : url , email : email } , function ( data ) {
$ ( '#return_edit_email' ) . text ( data ) ;
} ) ;
2020-08-14 13:36:36 +02:00
}
function preview _popup _close ( ) {
2022-09-29 15:52:21 +02:00
$ ( '#preview-holder, #nacina' ) . fadeOut ( 'medium' ) ;
2020-08-14 13:36:36 +02:00
$ ( '#preview-window' ) . addClass ( 'closed' ) ;
$ ( '.preview_icon_open' ) . show ( ) ;
$ ( '.preview_icon_close' ) . hide ( ) ;
localStorage . preview _popup = 1 ;
}
function preview _popup _open ( ) {
2022-09-29 15:52:21 +02:00
$ ( '#preview-holder, #nacina' ) . fadeIn ( 'medium' ) ;
2020-08-14 13:36:36 +02:00
$ ( '#preview-window' ) . removeClass ( 'closed' ) ;
$ ( '.preview_icon_open' ) . hide ( ) ;
$ ( '.preview_icon_close' ) . show ( ) ;
localStorage . preview _popup = 0 ;
}
function inicialke ( ) {
$ ( 'form[name=vnos]' ) . append ( '<input type="hidden" name="inicialke" value="">' ) ;
if ( localStorage . inicialke ) {
$ ( '#inicialke' ) . val ( localStorage . inicialke ) ;
$ ( 'form[name=vnos] input[name=inicialke]' ) . val ( localStorage . inicialke ) ;
}
$ ( '#inicialke' ) . bind ( 'keyup' , function ( e ) {
localStorage . inicialke = e . target . value ;
$ ( 'form[name=vnos] input[name=inicialke]' ) . val ( localStorage . inicialke ) ;
} ) ;
}
/ * *
* preveri , ce so vpisane inicialke
* /
function check _inicialke ( ) {
if ( $ ( '#inicialke' ) . val ( ) != '' ) {
return true ;
}
var _return = true ;
$ ( 'div.question_comment textarea' ) . each ( function ( key , elm ) {
if ( $ ( elm ) . val ( ) != '' ) {
_return = false ;
}
} ) ;
return _return ;
}
function init _comments _save ( ) {
var comments = { } ;
if ( localStorage . comments ) comments = JSON . parse ( localStorage . comments ) ;
return function ( ) {
for ( id in comments ) {
$ ( 'textarea#' + id ) . val ( comments [ id ] ) ;
}
// ko vpisemo besedilo ga shranimo
$ ( 'textarea[id^=question_comment]' ) . bind ( 'change' , function ( e ) {
comments [ $ ( e . target ) . attr ( 'id' ) ] = $ ( e . target ) . val ( ) ;
localStorage . comments = JSON . stringify ( comments ) ;
} ) ;
// ob submitanju forma (in shranjevanju v bazo) pobrisemo iz storaga
$ ( 'form[name=vnos]' ) . submit ( function ( ) {
$ ( 'textarea[id^=question_comment]' ) . each ( function ( ) {
delete comments [ $ ( this ) . attr ( 'id' ) ] ;
localStorage . comments = JSON . stringify ( comments ) ;
} ) ;
} ) ;
} ( ) ;
}
function privacy _check ( ) {
if ( $ ( '#privacy_box' ) . length ) {
if ( ! $ ( '#privacy_box:checked' ) . length ) {
$ ( '#privacy_box' ) . parent ( ) . addClass ( 'required' ) ;
return false ;
}
}
$ ( '#container form' ) . submit ( ) ;
}
// max vrstni_red spremenljivke do katere smo prisli, da vemo zaradi validacije
var max _vrstni _red = 0 ;
$ ( function ( ) {
$ ( '.spremenljivka' ) . on ( 'click' , function ( e ) {
//Uros dodal if - pri gogle maps ce se infowindow (nad markerjem) zapre (klikne na X), vrne spodnji if false
if ( $ ( e . target ) . closest ( '.spremenljivka' ) [ 0 ] ) {
var vrstni _red = parseInt ( $ ( e . target ) . closest ( '.spremenljivka' ) [ 0 ] . getAttribute ( 'data-vrstni_red' ) ) ;
if ( vrstni _red > max _vrstni _red )
max _vrstni _red = vrstni _red ;
}
} ) ;
} ) ;
function activateCehckboxImages ( $what ) {
// zloopamo skozi vse odgovore in če vsebujejo sliko in imajo izbran checkbox naredimo okvir okoli slike
$what . closest ( 'div.variable_holder' ) . find ( 'div.variabla label:has(img):has(input:checkbox)' ) . each ( function ( index ) {
$cb = $ ( this ) . find ( 'input:checkbox' ) ;
$img = $ ( this ) . find ( 'img' ) ;
if ( $cb . is ( ':checked' ) ) {
$img . addClass ( 'imageselected' ) ;
} else {
$img . removeClass ( 'imageselected' ) ;
}
} ) ;
// zloopamo skozi vse odgovore in če vsebujejo sliko in imajo izbran radio naredimo okvir okoli slike
$what . closest ( 'div.variable_holder' ) . find ( 'div.variabla label:has(img):has(input:radio)' ) . each ( function ( index ) {
$rd = $ ( this ) . find ( 'input:radio' ) ;
$img = $ ( this ) . find ( 'img' ) ;
if ( $rd . is ( ':checked' ) ) {
$img . addClass ( 'imageselected' ) ;
} else {
$img . removeClass ( 'imageselected' ) ;
}
} ) ;
}
//omeji izbire v Select box le na eno moznost
function omejiSelectBox ( spremenljivka ) {
//console.log('Sem v funkciji omejiSelectBox');
var elem _now ; //belezi id trenutne izbire
var elem _before ; //belezi id prejsnje izbire
var klik = 0 ; //belezi, ali je bil select že poklikan
//$('#vrednost_<?=$spremenljivka?> option:selected').each(function(){
$ ( '#vrednost_' + spremenljivka + ' option:selected' ) . each ( function ( ) {
elem _now = $ ( this ) ;
if ( ! klik ) {
elem _before = elem _now . val ( ) ;
klik = 1 ;
}
var count = $ ( '#vrednost_' + spremenljivka + ' option:selected' ) . length ; //koliko izbir je izbranih
//console.log('Izbranih je: '+count);
if ( elem _now . val ( ) == elem _before ) { //ce sta id trenutne in prejsnje izbire enaka
//console.log("Ista izbira kot prej!");
//elem_now.prop("selected", true);
} else { //ce id trenutne in prejsnje izbire sta enaka
//console.log("Sta različna!");
if ( count > 1 ) { //ce je vec izbir izbranih
elem _now . prop ( 'selected' , false ) ; //odstrani izbiro na trenutno izbrani izbiri
}
elem _before = elem _now . val ( ) ; //prejsnja izbira je trenutna
}
} ) ;
//});
}
//omeji izbire v Select box le na eno moznost pri Multigrid
function omejiSelectBoxMulti ( spremenljivka , id ) {
//console.log('Sem v funkciji omejiSelectBox');
var elem _now ; //belezi id trenutne izbire
var elem _before ; //belezi id prejsnje izbire
var klik = 0 ; //belezi, ali je bil select že poklikan
//$('#vrednost_<?=$spremenljivka?> option:selected').each(function(){
$ ( '#vrednost_' + spremenljivka + '_' + id + ' option:selected' ) . each ( function ( ) {
elem _now = $ ( this ) ;
if ( ! klik ) {
elem _before = elem _now . val ( ) ;
klik = 1 ;
}
var count = $ ( '#vrednost_' + spremenljivka + '_' + id + ' option:selected' ) . length ; //koliko izbir je izbranih
//console.log('Izbranih je: '+count);
if ( elem _now . val ( ) == elem _before ) { //ce sta id trenutne in prejsnje izbire enaka
//console.log("Ista izbira kot prej!");
//elem_now.prop("selected", true);
} else { //ce id trenutne in prejsnje izbire sta enaka
//console.log("Sta različna!");
if ( count > 1 ) { //ce je vec izbir izbranih
elem _now . prop ( 'selected' , false ) ; //odstrani izbiro na trenutno izbrani izbiri
}
elem _before = elem _now . val ( ) ; //prejsnja izbira je trenutna
}
} ) ;
//});
}
//ob kliku na isto izbiro v select box se izbira odstrani kot pri radiobuttonih
var elem _now = [ ] ; //belezi id trenutne izbire v select box
var elem _before = [ ] ; //belezi id prejsnje izbire v select box
var klik = [ ] ; //belezi, ali je bil select box že poklikan
function clickSelectBox ( spremenljivka , limit ) {
var count = $ ( '#vrednost_' + spremenljivka + ' option:selected' ) . length ; //koliko izbir je izbranih
var allOptions = [ ] ;
var selectedOptions = [ ] ;
/* console.log("count: "+count);*/
//console.log("limit: "+limit);
$ ( '#vrednost_' + spremenljivka + ' option:selected' ) . each ( function ( ) {
elem _now [ spremenljivka ] = $ ( this ) ;
selectedOptions . push ( elem _now [ spremenljivka ] . val ( ) ) ; //v polje dodaj izbrano moznost
//console.log('Trenutno izbran: '+elem_now[spremenljivka].val()+'');
//console.log('Klik: '+klik[spremenljivka]+'');
if ( ( ! klik [ spremenljivka ] && ( elem _before [ spremenljivka ] != elem _now [ spremenljivka ] . val ( ) ) ) || ( ! klik [ spremenljivka ] && ( elem _before [ spremenljivka ] == elem _now [ spremenljivka ] . val ( ) ) ) ) {
elem _before [ spremenljivka ] = elem _now [ spremenljivka ] . val ( ) ;
klik [ spremenljivka ] = 1 ;
}
else if ( klik [ spremenljivka ] && ( elem _before [ spremenljivka ] != elem _now [ spremenljivka ] . val ( ) ) ) {
elem _before [ spremenljivka ] = elem _now [ spremenljivka ] . val ( ) ;
}
else if ( count == 1 && klik [ spremenljivka ] && ( elem _before [ spremenljivka ] == elem _now [ spremenljivka ] . val ( ) ) ) {
//console.log('Sta enaka');
elem _now [ spremenljivka ] . prop ( 'selected' , false ) ;
klik [ spremenljivka ] = 0 ;
}
} ) ;
//if(count > limit){ //ce je stevilo izbranih moznosti vecje od limita
if ( count >= limit && limit != 0 ) { //ce je stevilo izbranih moznosti vecje od limita
//zabelezi vse moznosti
$ ( '#vrednost_' + spremenljivka + ' option' ) . each ( function ( ) {
allOptions . push ( $ ( this ) . val ( ) ) ; //v polje dodaj moznost
} ) ;
for ( var i = 0 ; i < count ; i ++ ) {
for ( var j = 0 ; j < allOptions . length ; j ++ ) {
if ( allOptions [ j ] == selectedOptions [ i ] ) { //ce med vsemi moznostmi je trenutna moznost enaka eni od izbranih moznosti
allOptions . splice ( j , 1 ) ; //odstrani moznost iz polja
}
}
}
for ( var i = 0 ; i < allOptions . length ; i ++ ) {
//console.log("Spucane moznosti: "+allOptions[i]); //pokazi vse moznost
$ ( '#vrednost_if_' + allOptions [ i ] ) . prop ( "disabled" , true ) ; //disable ne izbrane moznosti
}
allOptions = [ ] ;
} else { //ce stevilo izbranih moznosti ni vecje od limita
//zabelezi vse moznosti
$ ( '#vrednost_' + spremenljivka + ' option' ) . each ( function ( ) {
allOptions . push ( $ ( this ) . val ( ) ) ; //v polje dodaj moznost
} ) ;
for ( var i = 0 ; i < allOptions . length ; i ++ ) {
$ ( '#vrednost_if_' + allOptions [ i ] ) . prop ( "disabled" , false ) ; //disable ne izbrane moznosti
}
}
}
//ob kliku na isto izbiro v select box, kjer je več možnih odgovorov, se izbira odstrani kot pri radiobuttonih
function clickSelectBoxMulti ( spremenljivka , id ) {
var spremenljivka _id = spremenljivka + id ;
var count = $ ( '#vrednost_' + spremenljivka + '_' + id + ' option:selected' ) . length ; //koliko izbir je izbranih
$ ( '#vrednost_' + spremenljivka + '_' + id + ' option:selected' ) . each ( function ( ) {
elem _now [ spremenljivka _id ] = $ ( this ) ;
//console.log('Trenutno izbran: '+elem_now[spremenljivka_id].val()+'');
//console.log('Klik: '+klik[spremenljivka_id]+'');
if ( ( ! klik [ spremenljivka _id ] && ( elem _before [ spremenljivka _id ] != elem _now [ spremenljivka _id ] . val ( ) ) ) || ( ! klik [ spremenljivka _id ] && ( elem _before [ spremenljivka _id ] == elem _now [ spremenljivka _id ] . val ( ) ) ) ) {
elem _before [ spremenljivka _id ] = elem _now [ spremenljivka _id ] . val ( ) ;
klik [ spremenljivka _id ] = 1 ;
//console.log('Prvi if');
}
else if ( klik [ spremenljivka _id ] && ( elem _before [ spremenljivka _id ] != elem _now [ spremenljivka _id ] . val ( ) ) ) {
elem _before [ spremenljivka _id ] = elem _now [ spremenljivka _id ] . val ( ) ;
//console.log('Drugi if');
}
else if ( count == 1 && klik [ spremenljivka _id ] && ( elem _before [ spremenljivka _id ] == elem _now [ spremenljivka _id ] . val ( ) ) ) {
//console.log('Sta enaka');
elem _now [ spremenljivka _id ] . prop ( 'selected' , false ) ;
klik [ spremenljivka _id ] = 0 ;
}
} ) ;
}
//ob kliku na isto izbiro v select box v kombinirani tabeli se izbira odstrani kot pri radiobuttonih
function clickSelectBoxMultiCombo ( spremenljivka , id , grid ) {
var spremenljivka _id = spremenljivka + id + grid ;
var count = $ ( '#multi_' + spremenljivka + '_' + id + '_grid_' + grid + ' option:selected' ) . length ; //koliko izbir je izbranih
$ ( '#multi_' + spremenljivka + '_' + id + '_grid_' + grid + ' option:selected' ) . each ( function ( ) {
elem _now [ spremenljivka _id ] = $ ( this ) ;
//console.log('Trenutno izbran: '+elem_now[spremenljivka_id].val()+'');
// console.log('Klik: '+klik[spremenljivka_id]+'');
if ( ( ! klik [ spremenljivka _id ] && ( elem _before [ spremenljivka _id ] != elem _now [ spremenljivka _id ] . val ( ) ) ) || ( ! klik [ spremenljivka _id ] && ( elem _before [ spremenljivka _id ] == elem _now [ spremenljivka _id ] . val ( ) ) ) ) {
elem _before [ spremenljivka _id ] = elem _now [ spremenljivka _id ] . val ( ) ;
klik [ spremenljivka _id ] = 1 ;
}
else if ( klik [ spremenljivka _id ] && ( elem _before [ spremenljivka _id ] != elem _now [ spremenljivka _id ] . val ( ) ) ) {
elem _before [ spremenljivka _id ] = elem _now [ spremenljivka _id ] . val ( ) ;
}
else if ( count == 1 && klik [ spremenljivka _id ] && ( elem _before [ spremenljivka _id ] == elem _now [ spremenljivka _id ] . val ( ) ) ) {
//console.log('Sta enaka');
elem _now [ spremenljivka _id ] . prop ( 'selected' , false ) ;
klik [ spremenljivka _id ] = 0 ;
}
} ) ;
}
// Popravimo crte med vprasanji ce imamo blok s horizontalnim izrisom vprasanj
function blockHorizontalLine ( spr _id ) {
$ ( '.spremenljivka.horizontal_block' ) . each ( function ( ) {
if ( ! $ ( this ) . prev ( ) . hasClass ( 'horizontal_block' ) && ! $ ( this ) . prev ( ) . hasClass ( 'lineOnly' ) && ! $ ( this ) . prev ( ) . hasClass ( 'tip_5' ) ) {
$ ( this ) . before ( '<div class="spremenljivka lineOnly"></div>' ) ;
}
if ( ! $ ( this ) . next ( ) . hasClass ( 'horizontal_block' ) && ! $ ( this ) . next ( ) . hasClass ( 'clr' ) && ! $ ( this ) . next ( ) . hasClass ( 'tip_5' ) ) {
$ ( this ) . after ( '<div class="clr"></div>' ) ;
}
} ) ;
}
var randomization _inside _block = { } ;
function blockRandomizeQuestions ( parent _block _id , order , usr _id , spr _count ) {
// Dobimo array z random vrstnim redom (seedan z usr_id)
var question _ids = JSON . parse ( order ) ;
// Preverimo ce smo ze izvedli randomizacijo
if ( randomization _inside _block [ parent _block _id ] != true ) {
// Najprej wrappamo vsa vprasanja v en div da ga lahko na koncu pobrisemo
$ ( '.spremenljivka.block_child_' + parent _block _id ) . wrapAll ( "<div id='block_id_" + parent _block _id + "'></div>" ) ;
var new _content = '' ;
var counter = 0 ;
question _ids . forEach ( function ( el ) {
// Stejemo da prikazemo samo omejeno stevilo vprasanj (ce imamo vklopljeno nastavitev)
if ( counter < spr _count ) {
// Ce element ne obstaja na strani zakljucimo funkcijo
if ( ! $ ( '#spremenljivka_' + el ) . length )
return ;
// Dodamo blok v novo vsebino
new _content += $ ( '#spremenljivka_' + el ) [ 0 ] . outerHTML ;
counter ++ ;
}
} ) ;
// Pripnemo novo vsebino in pobrisemo staro
$ ( "#block_id_" + parent _block _id ) . after ( new _content ) ;
$ ( "#block_id_" + parent _block _id ) . remove ( ) ;
// Zabelezimo da smo izvedli randomizacijo za blok
randomization _inside _block [ parent _block _id ] = true ;
// Porezemo elemente, ce imamo omejeno stevilo vprasanj
question _ids = question _ids . slice ( 0 , spr _count ) ;
var order _limited = JSON . stringify ( question _ids ) ;
// Shranimo vrstni red v bazo
$ . post ( srv _site _url + 'main/survey/ajax.php?a=save_randomization_order' , { anketa : srv _meta _anketa _id , parent _block _id : parent _block _id , order : order _limited , randomization _type : 'spremenljivke' , usr _id : usr _id } ) ;
}
}
function blockRandomizeBlocks ( parent _block _id , order , usr _id ) {
// Dobimo array z random vrstnim redom (seedan z usr_id)
var blocks _ids = JSON . parse ( order ) ;
// Preverimo ce smo ze izvedli randomizacijo
if ( randomization _inside _block [ parent _block _id ] != true ) {
// Najprej wrapamo vprasanja v en div
var new _content = '' ;
blocks _ids . forEach ( function ( el ) {
// Ce element ne obstaja na strani zakljucimo funkcijo
if ( ! $ ( '.spremenljivka.block_child_' + el ) . length )
return ;
// Wrapamo vsa vprasanja znotraj posameznega notranjega bloka
$ ( '.spremenljivka.block_child_' + el ) . wrapAll ( "<div id='block_id_" + el + "' class='block block_child_" + parent _block _id + "'></div>" ) ;
// Dodamo blok v novo vsebino
new _content += $ ( '#block_id_' + el ) . html ( ) ;
} ) ;
// Wrappamo bloke v parent blok
$ ( '.block.block_child_' + parent _block _id ) . wrapAll ( "<div id='block_id_" + parent _block _id + "'></div>" ) ;
// Pripnemo novo vsebino in pobrisemo staro
$ ( "#block_id_" + parent _block _id ) . after ( new _content ) ;
$ ( "#block_id_" + parent _block _id ) . remove ( ) ;
// Zabelezimo da smo izvedli randomizacijo za blok
randomization _inside _block [ parent _block _id ] = true ;
// Shranimo vrstni red v bazo
$ . post ( srv _site _url + 'main/survey/ajax.php?a=save_randomization_order' , { anketa : srv _meta _anketa _id , parent _block _id : parent _block _id , order : order , randomization _type : 'bloki' , usr _id : usr _id } ) ;
}
}
//************************ trak @ diferencial
var elem _now _trak = [ ] ; //belezi id trenutne izbire v select box
var elem _before _trak = [ ] ; //belezi id prejsnje izbire v select box
var klik _trak = [ ] ; //belezi, ali je bil select box že poklikan
//funkcija za oznacevanje izbranega odgovora na traku
function trak _change _bg ( this _s , diferencial _trak , spremenljivka , missing ) {
if ( diferencial _trak ) { //ce je trak vklopljen
//console.log(this_s.id);
if ( missing == 0 ) { //ce ni missing radio button
var children = $ ( this _s ) . find ( 'input[type=radio]' ) . attr ( 'id' ) ; //id kliknjenega radio button-a
var vre _id = $ ( this _s ) . find ( 'input[type=radio]' ) . attr ( 'vre_id' ) ; //id kliknjenega radio button-a
setCheckedClass ( $ ( '#' + children ) [ 0 ] , null , vre _id ) ;
} else {
var children = this _s . id ;
var vre _id = $ ( '#' + children ) . attr ( 'vre_id' ) ;
}
//console.log($('#'+children).val());
elem _now _trak [ spremenljivka ] = children ;
$ ( '#vrednost_if_' + vre _id ) . children ( ) . removeClass ( 'trak_container_bg' ) ; //odstrani barvo ozadja za oznacen odgovor
$ ( '#' + children ) . attr ( 'checked' , 'checked' ) ; //oznaci ustrezni radio button
var trak = "trak_tbl_" + vre _id + "_" + $ ( '#' + children ) . val ( ) ;
if ( ! klik _trak [ spremenljivka ] && ( elem _now _trak [ spremenljivka ] != elem _before _trak [ spremenljivka ] ) ) {
$ ( '#' + trak ) . addClass ( 'trak_container_bg' ) ; //preuredi ozadje z želeno barvo
klik _trak [ spremenljivka ] = 1 ;
} else if ( klik _trak [ spremenljivka ] && ( elem _now _trak [ spremenljivka ] != elem _before _trak [ spremenljivka ] ) ) {
$ ( '#' + trak ) . addClass ( 'trak_container_bg' ) ; //preuredi ozadje z želeno barvo
} else if ( klik _trak [ spremenljivka ] && ( elem _now _trak [ spremenljivka ] == elem _before _trak [ spremenljivka ] ) ) {
$ ( '#variabla_' + vre _id ) . children ( ) . removeClass ( 'trak_container_bg' ) ; //odstrani barvo ozadja za oznacen odgovor
klik _trak [ spremenljivka ] = 0 ;
$ ( '#' + children ) . attr ( 'checked' , false ) ; //odstrani oznacitev ustreznega radio button
} else if ( ! klik _trak [ spremenljivka ] && ( elem _now _trak [ spremenljivka ] == elem _before _trak [ spremenljivka ] ) ) {
$ ( '#' + trak ) . addClass ( 'trak_container_bg' ) ; //preuredi ozadje z želeno barvo
klik _trak [ spremenljivka ] = 1 ;
}
elem _before _trak [ spremenljivka ] = elem _now _trak [ spremenljivka ] ;
}
}
//globalni spremenljivki za elektronski podpis
var podpisposlan = [ ] ;
var optionsPodpis = [ ] ;
// klik na "vec" pri text vprasanju in nastavitvi prikaz prejsnjih odgovorov
function show _prevAnswers _all ( spremenljivka ) {
$ ( '#text_prevAnswers_popup_' + spremenljivka ) . load ( srv _site _url + 'main/survey/ajax.php?a=show_prevAnswers_all' , { spremenljivka : spremenljivka , anketa : srv _meta _anketa _id } , function ( ) {
$ ( '#fade' ) . fadeTo ( 'fast' , 0.5 , function ( ) {
$ ( '#text_prevAnswers_popup_' + spremenljivka ) . fadeIn ( "fast" ) ;
} ) ;
} ) ;
}
function hide _prevAnswers _all ( spremenljivka ) {
$ ( '#fade' ) . fadeOut ( ) ;
$ ( '#text_prevAnswers_popup_' + spremenljivka ) . hide ( ) ;
}
// gdpr popup "podrobnosti zbiranja podatkov"
2021-02-15 10:15:24 +01:00
function show _gdpr _about ( lang _id ) {
2020-08-14 13:36:36 +02:00
$ ( '#popup' ) . addClass ( 'gdpr_about' ) ;
2021-02-15 10:15:24 +01:00
$ ( '#popup' ) . load ( srv _site _url + 'main/survey/ajax.php?a=show_gdpr_about&language=' + lang _id , { anketa : srv _meta _anketa _id } , function ( ) {
2020-08-14 13:36:36 +02:00
$ ( '#fade' ) . fadeTo ( 'fast' , 0.5 , function ( ) {
$ ( '#popup' ) . fadeIn ( "fast" ) ;
} ) ;
} ) ;
}
function hide _gdpr _about ( ) {
$ ( '#fade' ) . fadeOut ( ) ;
$ ( '#popup' ) . hide ( ) ;
$ ( '#popup' ) . removeClass ( 'gdpr_about' ) ;
}
/ * *
* Show notification , that respondent has reached maximum number of chars
* @ param { type } input - input or textarea
* @ param { type } sid - id of question
* @ returns { undefined }
* /
function handleMaxTextParam ( input , sid ) {
if ( input . value . length != input . maxLength )
$ ( '#max_text_notification_' + sid ) . hide ( ) ;
else
$ ( '#max_text_notification_' + sid ) . show ( ) ;
}
/ * *
* Refresh char counter of field
* @ param { type } field - an element to count chars from
* @ returns { undefined }
* /
function charCounter ( field ) {
document . getElementById ( field . id + '_counter' ) . innerHTML = field . value . length ;
}
/ * *
* Refresh char counter of field
* @ param { type } field _id - id of filed to count chars from
* @ returns { undefined }
* /
function set _charCounter ( field _id ) {
document . getElementById ( field _id + '_counter' ) . innerHTML = document . getElementById ( field _id ) . value . length ;
}
// Preverjanje in ustrezno disablanje/enablanje polj v dropdownu pri tipu razvrscanje (ostevilcevanje)
function rankingSelect ( value , spremenljivka , counter ) {
$ ( "#spremenljivka_" + spremenljivka + "_ranking_cifre_" + counter ) . val ( value ) ;
rankingSelectCheck ( spremenljivka ) ;
}
// Preverimo vse ranking dropdowne znotraj vprasanja in jih ustrezno omogocimo/onemogocimo
function rankingSelectCheck ( spremenljivka ) {
var select _values = [ ] ;
// Loop selecte in preberemo vrednosti
$ ( "#spremenljivka_" + spremenljivka ) . find ( ".ranking_select" ) . each ( function ( i , obj ) {
select _values [ i ] = $ ( obj ) . val ( ) ;
$ ( obj ) . children ( ) . attr ( "disabled" , false ) ;
} ) ;
// Loop cez vse selecte in disable vrednost
$ ( "#spremenljivka_" + spremenljivka ) . find ( ".ranking_select" ) . each ( function ( i , obj ) {
$ ( select _values ) . each ( function ( j , select _value ) {
if ( j != i && select _value != "" ) {
$ ( obj ) . children ( "option[value=" + select _value + "]" ) . attr ( "disabled" , true ) ;
}
} ) ;
} ) ;
}
// Preverimo vse ranking dropdowne znotraj vseh vprasanj in jih ustrezno omogocimo/onemogocimo (na loadu strani)
function rankingSelectCheckAll ( ) {
var select _values = [ ] ;
// Loop cez vsa ranking vprasanja na strani
$ ( ".spremenljivka.tip_17" ) . each ( function ( i , vprasanje ) {
// Loop selecte in preberemo vrednosti
$ ( vprasanje ) . find ( ".ranking_select" ) . each ( function ( i , obj ) {
select _values [ i ] = $ ( obj ) . val ( ) ;
$ ( obj ) . children ( ) . attr ( "disabled" , false ) ;
} ) ;
// Loop cez vse selecte in disable vrednost
$ ( vprasanje ) . find ( ".ranking_select" ) . each ( function ( i , obj ) {
$ ( select _values ) . each ( function ( j , select _value ) {
if ( j != i && select _value != "" ) {
$ ( obj ) . children ( "option[value=" + select _value + "]" ) . attr ( "disabled" , true ) ;
}
} ) ;
} ) ;
} ) ;
}
// Preverjanje in ustrezno disablanje/enablanje polj v dropdownu pri tipu razvrscanje (ostevilcevanje) - SAZU modul
function sazuSelect ( value , spremenljivka , counter ) {
$ ( "#spremenljivka_" + spremenljivka + "_ranking_cifre_" + counter ) . val ( value ) ;
sazuSelectCheck ( ) ;
}
function sazuSelectCheck ( ) {
var select _values = [ ] ;
// Loop selecte in preberemo vrednosti
$ ( ".sazu_select" ) . each ( function ( i , obj ) {
select _values [ i ] = $ ( obj ) . val ( ) ;
$ ( obj ) . children ( ) . attr ( "disabled" , false ) ;
} ) ;
// Loop cez vse selecte in disable vrednost
$ ( ".sazu_select" ) . each ( function ( i , obj ) {
$ ( select _values ) . each ( function ( j , select _value ) {
if ( j != i && select _value != "" ) {
$ ( obj ) . children ( "option[value=" + select _value + "]" ) . attr ( "disabled" , true ) ;
}
} ) ;
} ) ;
}
// Ponovimo naslovno vrstico tabele, ce je omogocena nastavitev
function gridRepeatHeader ( repeat _every , spr _id ) {
var table = $ ( "#spremenljivka_" + spr _id + " table.grid_table" ) ;
// Ce ima vrstica class za ponavljanje
if ( $ ( table ) . find ( 'tr.repeat_header' ) . length ) {
var table _header = $ ( table ) . find ( 'tr.repeat_header' ) [ 0 ] . outerHTML ;
// Za tabelo najprej pobrisemo vse ponovljene vrstice ce so ze prisotne
$ ( table ) . find ( 'tbody tr.repeat_header' ) . remove ( ) ;
2021-09-23 12:39:49 +02:00
var count _rows = $ ( table ) . find ( "tbody tr:visible" ) . size ( ) ;
2020-08-14 13:36:36 +02:00
// Loopamo cez vidne vrstice in vstavimo header vsakih "repeat_every" vrstic
$ ( table ) . find ( "tbody tr:visible" ) . each ( function ( index ) {
// Insetamo naslovno vrstico na pravo mesto
2021-09-23 12:39:49 +02:00
if ( ( index + 1 ) % repeat _every == 0 && count _rows > ( index + 1 ) ) {
2020-08-14 13:36:36 +02:00
$ ( this ) . after ( table _header ) ;
}
} ) ;
}
}
2020-08-14 15:08:59 +02:00
// Preverimo upload file omejitve
2020-09-18 12:12:21 +02:00
function checkUpload ( upload , id ) {
2020-08-14 15:08:59 +02:00
// Max file size (mb)
let maxSize = 16 ;
// Get file size
let fileSize = Math . round ( ( upload . files [ 0 ] . size / 1024 / 1024 ) ) ;
// File is too large
if ( fileSize > maxSize ) {
$ ( upload ) . val ( null ) ;
2021-11-05 11:54:50 +01:00
alert ( lang [ "srv_alert_upload_size" ] ) ;
2020-09-18 12:12:21 +02:00
return ;
2020-08-14 15:08:59 +02:00
}
// File extensions allowed
2022-07-01 11:18:33 +02:00
let extAllowed = [ "jpeg" , "jpg" , "png" , "gif" , "pdf" , "doc" , "docx" , "xls" , "xlsx" , "ppt" , "pptx" ] ;
2020-08-14 15:08:59 +02:00
// Get file ext
let fileNameFull = upload . files [ 0 ] . name ;
let lastDot = fileNameFull . lastIndexOf ( '.' ) ;
let fileName = fileNameFull . substring ( 0 , lastDot ) ;
let fileExt = fileNameFull . substring ( lastDot + 1 ) . toLowerCase ( ) ;
// Wrong file extension
if ( ! extAllowed . includes ( fileExt ) ) {
$ ( upload ) . val ( null ) ;
2021-11-05 11:54:50 +01:00
alert ( lang [ "srv_alert_upload_ext" ] ) ;
2020-09-18 12:12:21 +02:00
return ;
2020-08-14 15:08:59 +02:00
}
2020-09-18 12:12:21 +02:00
// Add/remove "remove file" button
$ ( '#remove_file_' + id ) . show ( ) ;
}
function removeUpload ( id ) {
$ ( '#' + id ) . val ( null ) ;
2020-08-14 15:08:59 +02:00
}
2020-10-29 11:54:07 +01:00
// Disablamo vse inpute in jim dodamo input hidden, da se posta odgovor
function disableSubsequentAnswers ( ) {
// Disable radio and checkbox
$ ( 'input[type="radio"], input[type="checkbox"]' ) . each ( function ( ) {
if ( $ ( this ) . prop ( "checked" ) == true ) {
var name = $ ( this ) . attr ( "name" ) ;
var value = $ ( this ) . val ( ) ;
$ ( this ) . before ( "<input type=\"hidden\" name=\"" + name + "\" value=\"" + value + "\">" ) ;
}
$ ( this ) . prop ( "disabled" , "true" ) ;
} ) ;
// Disable radio and checkbox
$ ( 'input[type="text"], textarea, input[type="password"], input[type="email"]' ) . each ( function ( ) {
var name = $ ( this ) . attr ( "name" ) ;
var value = $ ( this ) . val ( ) ;
$ ( this ) . before ( "<input type=\"hidden\" name=\"" + name + "\" value=\"" + value + "\">" ) ;
$ ( this ) . prop ( "disabled" , "true" ) ;
} ) ;
}