summaryrefslogtreecommitdiffstats
path: root/admin/survey/script/trak.js
blob: 60d8dd4c623213e7e821a80278aa67a756f397d1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
//funkcija, ki ureja skviranje/prikazovanje ob izbiri checkbox-a za trak
function diferencial_trak_checkbox_prop (spremenljivka, num_grids){
	if( $('#diferencial_trak_'+spremenljivka).is( ":checked" )){	//ce hocemo viden trak
		$('#diferencial_trak_hidden_'+spremenljivka).prop('disabled', true);	//disable hidden polje z obratno vrednostjo
		$('.diferencial_trak_starting_num_class_'+spremenljivka).css('display', 'block');	//pokazi vnosno polje za zacetno stevilo traku
		$('.trak_num_of_titles_class').css('display', 'block');	//pokazi dropdown za izbiro stevila nadnaslovov traku
		$('.grid_defaults_class').css('display', 'none');	//skrij dropdowna za privzete vrednosti gridov
		$('.grid_var_class').css('display', 'none');	//skrij moznosti za izbiro privzetih vrednosti
		diferencial_trak_change_values(spremenljivka, num_grids); //spremeni vrednosti skritih vrednosti odgovorov
		$('.drop_custom_column_labels').css('display', 'none');	//skrij "Uporaba label"		
	}
	else {
		$('#diferencial_trak_hidden_'+spremenljivka).prop('disabled', false);
		$('.diferencial_trak_starting_num_class_'+spremenljivka).css('display', 'none'); //skrij vnosno polje za zacetno stevilo traku
		$('.trak_num_of_titles_class').css('display', 'none');	//skrij dropdown za izbiro stevila nadnaslovov traku
		$('.grid_defaults_class').css('display', 'block');	//pokazi dropdowna za privzete vrednosti gridov
		$('.grid_var_class').css('display', 'block');	//pokazi moznosti za izbiro privzetih vrednosti
		$('.drop_custom_column_labels').css('display', 'block');	//pokazi "Uporaba label"
	}
}

//funkcija, ki spremeni vrednosti skritih vrednosti odgovorov
function diferencial_trak_change_values(spremenljivka, num_grids){
	num_grids = $('.drop_grids_num option:selected').val();
	
	var diferencial_trak_starting_num = parseInt($('#diferencial_trak_starting_num_'+spremenljivka).val());	//trenutna rocno vpisana zacetna vrednost traku
	
	var new_vrednosti_odgovorov = [];	//hrani nove vrednosti skritih vrednosti odgovorov
	new_vrednosti_odgovorov[0] = diferencial_trak_starting_num;	//prva vrednost je rocno vnesena vrednost s katero se trak zacne
	//console.log(new_vrednosti_odgovorov[0]);
	for(var i = 1; i < num_grids; i++){	//iz zacetne rocno vpisane vrednosti zgeneriraj se ostale glede na izbrano stevilo odgovorov
		new_vrednosti_odgovorov[i] = new_vrednosti_odgovorov[i - 1] + 1;
	}
	
	var j = 0;
	$('#grid_variable_'+spremenljivka+' .grid_variable_inline').each(function(){	//pojdi skozi vse skrite vrednosti odgovorov in jih ustrezno spremeni
		$(this).text(new_vrednosti_odgovorov[j]);
		j = j + 1;
	});
	
	//dinamicno spremeni skrite vrednosti odgovorov v bazi
	$.post('ajax.php?t=vprasanje&a=diferencial_trak_skrite_vrednosti', {spr_id: spremenljivka, num_grids: num_grids, diferencial_trak_starting_num: diferencial_trak_starting_num});
	
}

//urejanje videza nadnaslovov traka in dropdown-a
function trak_edit_num_titles(size, spremenljivka, trak_num_of_titles, trak_nadnaslov){
	//console.log("Izbrana možnost: "+trak_num_of_titles+" spremenljivka: "+spremenljivka+" size: "+size);

	var g_last = 'g_'+trak_num_of_titles;
	var colspan_calc = [];
	var g_middle = [];
	
	if(size % trak_num_of_titles == 0){	//ce je stevilo deljivo s trenutnim izbranim stevilom label, spoji ustrezno stevilo label na vsako skupino label
		for(var i = 1; i<=trak_num_of_titles; i++){
			colspan_calc[i] = size / trak_num_of_titles;
			//console.log("colspan_calc za "+i+" je "+colspan_calc[i]);
			if(i != 1 && i != trak_num_of_titles){
				g_middle[i] = 'g_'+i;
				//console.log("g_middle "+i+" je "+g_middle[i]);	
			}				
		}
	}else if(size % trak_num_of_titles == 2){		
		for(var i = 1; i<=trak_num_of_titles; i++){
			//console.log("colspan_calc za "+i+" je "+colspan_calc[i]);
			if(i != 1 && i != trak_num_of_titles){
				g_middle[i] = 'g_'+i;
				colspan_calc[i] = parseInt(size / trak_num_of_titles);
			}else{
				colspan_calc[i] = 1 + parseInt(size / trak_num_of_titles);				
			}
		}
	}else if(trak_num_of_titles == 2){	//
		if(size % trak_num_of_titles == 0){
			for(var i = 1; i<=trak_num_of_titles; i++){
				colspan_calc[i] = size / trak_num_of_titles;
			}
		}else{
			colspan_calc[1] = (size / trak_num_of_titles) + 0.5;
			colspan_calc[trak_num_of_titles] = (size / trak_num_of_titles) - 0.5;
		}
	}
	
	var indeks = 1;
	$('.display_trak_num_of_titles_'+spremenljivka+' > td').each(function(){	//preleti labele
		var grd = $(this).attr('grd');
		if(String(grd) != 'g_1' && String(grd) != g_last && String(grd) != g_middle[indeks]){	//ce ni prva ali zadnja labela oz. vmesnim labelam,
			if(grd !== undefined){				
				$(this).children().text("");	//odstrani tekst					
				$(this).remove();	//odstrani celico
			}
		}
		if(String(grd) == 'g_1'){	//ce je prva labela,
			$(this).attr('colspan', colspan_calc[1]);	//razsiri celico oz. spoji z ostalimi prostimi celicami za tole skupino label
			$(this).attr('style', 'text-align: left');	//tekst koncne skupine label poravnaj levo
			$(this).children().text(trak_nadnaslov[String(1)]);
			indeks++;
		}
		if(String(grd) == g_last){	//ce je zadnja labela,
			$(this).attr('colspan', colspan_calc[trak_num_of_titles]);	//razsiri celico oz. spoji z ostalimi prostimi celicami za tole skupino label
			$(this).attr('style', 'text-align: right'); //tekst koncne skupine label poravnaj desno
			$(this).children().text(trak_nadnaslov[String(trak_num_of_titles)]);
		}
		if(String(grd) == g_middle[indeks]){	//ce je vmesna labela,
			$(this).attr('colspan', colspan_calc[indeks]);	//razsiri celico oz. spoji z ostalimi prostimi celicami za tole skupino label
			$(this).attr('style', 'text-align: center'); //tekst koncne skupine label poravnaj sredinsko
			$(this).children().text(trak_nadnaslov[String(indeks)]);
			indeks++;
		}
		
	});
}


function change_trak_num_of_titles(spremenljivka, size){

	var trakNumOfTitlesSize = $('#trak_num_of_titles option').length;
	var isTrakNumOfTitlesNow = false;	//belezi, ce je med novimi vrednostmi dropdown-a trenutno izbrano stevilo vnosov
	var deljivaStevila = [];	//polje, ki belezi deljiva stevila po trenutnem izbranem trakNumOfTitlesSize
	var trakNumOfTitles = $('#trak_num_of_titles option:selected').val();

	$('#trak_num_of_titles').empty();//sprazni dropdown s stevilom vnosov
	
	deljivaStevila = soDeljiva(size); //najdi vsa stevila, ki so deljiva z izbranim stevilom odgovorov
	
	for (var i=0; i<deljivaStevila.length; i++){	//napolni dropdown z ustreznimi stevili vnosov
		//console.log(i);
		$('#trak_num_of_titles').append('<option value='+deljivaStevila[i]+'>'+deljivaStevila[i]+'</option>');
		if(deljivaStevila[i] == $('#trak_num_of_titles option:selected').val()){
			isTrakNumOfTitlesNow = true;
		}
	}

 	if(isTrakNumOfTitlesNow){
		var trakNumOfTitlesNow = trakNumOfTitles;//trenutno izbrano stevilo vnosov
	}else{
		var trakNumOfTitlesNow = deljivaStevila[0];//prvo stevilo v novem seznamu deljivih stevil
	}
	
	$('#trak_num_of_titles').val(trakNumOfTitlesNow);//spremeni vrednost dropdown-a s stevilom trenutnih vidnih vnosov
	
}

function soDeljiva(size){
	var deljivaStevila = [];
	var indeksDeljivihStevil = 1;
	deljivaStevila[0] = 2;	//ker si zelimo, da je mozno pri vseh imeti vsaj dva nasnaslova
	for(var i = 3; i<=size; i++){
		if(size%i == 0){
			deljivaStevila[indeksDeljivihStevil] = i;
			indeksDeljivihStevil++;
		}else if(size%i == 2){
			deljivaStevila[indeksDeljivihStevil] = i;
			indeksDeljivihStevil++;
		}
	}
	return deljivaStevila;
}


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

function trak_change_bg(this_s, diferencial_trak, spremenljivka){
	if (diferencial_trak){	//ce je trak vklopljen
		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

		elem_now_trak[spremenljivka] = children;
				
		$('#variabla_'+vre_id).children().removeClass('trak_container_bg');	//odstrani barvo ozadja za oznacen odgovor
		
		$('#'+children).attr('checked','checked');	//oznaci ustrezni radio button
		var trak = children.replace("foo", "trak_tbl");

		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;
		}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;
		}
		/* 		
		if( $('#'+children).is(":checked") ){	//ce trenutni odgovor je ze izbran, 
			$('#variabla_'+vre_id).children().removeClass('trak_container_bg');	//odstrani barvo ozadja za oznacen odgovor
			console.log("Dodaj ozadje");
		} */
		elem_before_trak[spremenljivka] = elem_now_trak[spremenljivka];
	}
}