Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / synnefo / ui / new_ui / ui / javascripts / vm-wizard.js @ f6cfe41c

History | View | Annotate | Download (13.4 kB)

1 bb8cc1dc Olga Brani
ui.wizard = {
2 148aeffe Athina Bekakou
        current_step: undefined,
3 bb8cc1dc Olga Brani
        total_step: $('.wizard-content .step').length,
4 148aeffe Athina Bekakou
        current_position: undefined,
5 148aeffe Athina Bekakou
        relocation: undefined,
6 eba2aada Athina Bekakou
        btns: {
7 eba2aada Athina Bekakou
                start: undefined,
8 eba2aada Athina Bekakou
                close: undefined,
9 eba2aada Athina Bekakou
                next: undefined,
10 eba2aada Athina Bekakou
                previous: undefined,
11 eba2aada Athina Bekakou
                expand_down: undefined
12 eba2aada Athina Bekakou
        },
13 9b6be833 Olga Brani
        speed: 500,
14 935e59b9 Olga Brani
        semaphore:1,
15 6bd1416f Athina Bekakou
16 bb8cc1dc Olga Brani
        setDimensions: function() {
17 bb8cc1dc Olga Brani
                $('.vm-wizard-carousel').css('width', 100 * ui.wizard.total_step + '%');
18 bb8cc1dc Olga Brani
                $('.vm-wizard-carousel .step').css('width', 100 / ui.wizard.total_step + '%');
19 148aeffe Athina Bekakou
        },
20 bb8cc1dc Olga Brani
        getCurrent: function(){
21 935e59b9 Olga Brani
                return $('.step').filter('.current').first();
22 bb8cc1dc Olga Brani
        },
23 bb8cc1dc Olga Brani
24 bb8cc1dc Olga Brani
        getNextStep: function() {
25 bb8cc1dc Olga Brani
        return ui.wizard.getCurrent().next();
26 bb8cc1dc Olga Brani
    },
27 bb8cc1dc Olga Brani
28 bb8cc1dc Olga Brani
    getPreviousStep: function() {
29 bb8cc1dc Olga Brani
        return ui.wizard.getCurrent().prev();
30 bb8cc1dc Olga Brani
    },
31 148aeffe Athina Bekakou
32 bb8cc1dc Olga Brani
    getScrollOffset: function() {
33 bb8cc1dc Olga Brani
        return document.body.scrollTop;
34 bb8cc1dc Olga Brani
    },
35 bb8cc1dc Olga Brani
36 bb8cc1dc Olga Brani
        submitData: function() {
37 9b6be833 Olga Brani
                console.log('submit data dummy function');
38 9b6be833 Olga Brani
        },
39 148aeffe Athina Bekakou
40 bb8cc1dc Olga Brani
        data_next_array: ['el0', 'el2', 'el4', 'el7'],
41 5bda20fe Olga Brani
42 bb8cc1dc Olga Brani
        focusFun: function() {
43 bb8cc1dc Olga Brani
                $('.firstfocus-' + ui.wizard.current_step + '').first().focus();
44 770ad9fa Olga Brani
                $('.nav.next').removeAttr('data-next');
45 770ad9fa Olga Brani
                $('.nav.next').attr('data-next', ui.wizard.data_next_array[ui.wizard.current_step]);
46 5bda20fe Olga Brani
        },
47 5bda20fe Olga Brani
48 bb8cc1dc Olga Brani
        move: function(step, pos) {
49 935e59b9 Olga Brani
                ui.wizard.semaphore = 0;
50 0c26d55c Athina Bekakou
                ui.wizard.focusFun();
51 0c26d55c Athina Bekakou
                ui.wizard.indicateStep(ui.wizard.current_step);
52 0c26d55c Athina Bekakou
                ui.wizard.setMovementTags(ui.wizard.current_step, ui.wizard.btns.previous, ui.wizard.btns.next);
53 bba1c85c Olga Brani
                $('body').css('overflow','hidden');
54 bb8cc1dc Olga Brani
                // the current visible pane
55 935e59b9 Olga Brani
        var current = this.getCurrent();
56 bb8cc1dc Olga Brani
        // Set next pane position on the right of the current one
57 bb8cc1dc Olga Brani
        // Add current to the next pane, so that it will become
58 bb8cc1dc Olga Brani
        // visible
59 bb8cc1dc Olga Brani
        step.css({
60 bb8cc1dc Olga Brani
            left: pos.toString() + '%'
61 bb8cc1dc Olga Brani
        }).addClass("current");
62 935e59b9 Olga Brani
        console.log(current,'current');
63 bb8cc1dc Olga Brani
        // identify the current scroll position. Use it to
64 bb8cc1dc Olga Brani
        // set next pane top position. We assume all panes
65 bb8cc1dc Olga Brani
        // are within the scroll context of the main window.
66 bb8cc1dc Olga Brani
        step.css({
67 bb8cc1dc Olga Brani
            top: this.getScrollOffset() + 'px'
68 bb8cc1dc Olga Brani
        });
69 935e59b9 Olga Brani
        $('.step').stop(false,true).animate({
70 bb8cc1dc Olga Brani
            marginLeft: (-pos).toString() + '%'
71 bb8cc1dc Olga Brani
        }, {
72 935e59b9 Olga Brani
                                complete: _.bind(function() {
73 bb8cc1dc Olga Brani
                // assuming all the following take place
74 bb8cc1dc Olga Brani
                // instantaneously within a single browser 
75 bb8cc1dc Olga Brani
                // render cycle, no flickering should occur.
76 bb8cc1dc Olga Brani
                current.removeClass("current");
77 935e59b9 Olga Brani
                            window.scroll(0, 0);
78 bb8cc1dc Olga Brani
                step.css({
79 bb8cc1dc Olga Brani
                    left: '0',
80 bb8cc1dc Olga Brani
                    top: '0'
81 bb8cc1dc Olga Brani
                });
82 bb8cc1dc Olga Brani
                $('.step').css({
83 bb8cc1dc Olga Brani
                    marginLeft: '0'
84 bb8cc1dc Olga Brani
                });
85 bba1c85c Olga Brani
                $('body').css('overflow','visible');
86 e4c44fcc Olga Brani
                if (ui.wizard.current_step == 3 ){
87 e4c44fcc Olga Brani
                                        $('.vm-name input').first().focus();
88 e4c44fcc Olga Brani
                }
89 935e59b9 Olga Brani
                ui.wizard.semaphore =1;
90 bb8cc1dc Olga Brani
            }, this)
91 bb8cc1dc Olga Brani
        });
92 935e59b9 Olga Brani
93 148aeffe Athina Bekakou
        },
94 148aeffe Athina Bekakou
95 bb8cc1dc Olga Brani
        goNext: function() {
96 bb8cc1dc Olga Brani
                var next = ui.wizard.getNextStep();
97 bb8cc1dc Olga Brani
                if (!next) {
98 0c26d55c Athina Bekakou
                        ui.wizard.submitData();
99 6fcab23b Olga Brani
                        ui.wizard.close();
100 bb8cc1dc Olga Brani
                        return;
101 9b6be833 Olga Brani
                }
102 935e59b9 Olga Brani
                if (ui.wizard.semaphore == 1) {
103 935e59b9 Olga Brani
                        ui.wizard.current_step++;
104 935e59b9 Olga Brani
                        ui.wizard.move(next, 100);
105 935e59b9 Olga Brani
                }
106 9b6be833 Olga Brani
        },
107 148aeffe Athina Bekakou
108 bb8cc1dc Olga Brani
        goPrev: function() {
109 bb8cc1dc Olga Brani
                var prev = ui.wizard.getPreviousStep();
110 bb8cc1dc Olga Brani
                if (!prev) {
111 6fcab23b Olga Brani
                        ui.wizard.close();
112 bb8cc1dc Olga Brani
                        return;
113 9b6be833 Olga Brani
                }
114 935e59b9 Olga Brani
                if (ui.wizard.semaphore == 1) {
115 935e59b9 Olga Brani
                        ui.wizard.current_step--;
116 935e59b9 Olga Brani
                        ui.wizard.move(prev, -100);
117 935e59b9 Olga Brani
                }
118 9b6be833 Olga Brani
        },
119 df5f7743 Athina Bekakou
120 bb8cc1dc Olga Brani
        initEvents: function() {
121 0c26d55c Athina Bekakou
                ui.wizard.setDimensions();
122 3231ff01 Olga Brani
123 3231ff01 Olga Brani
124 df5f7743 Athina Bekakou
                $(document).keydown(function(e) {
125 3231ff01 Olga Brani
                        var exp = $('.vm-name input').is(':focus') && $('.vm-name input').val().length>0 && ui.wizard.current_step ==3;
126 eba2aada Athina Bekakou
                        // right arrow keyCode == 39
127 bb8cc1dc Olga Brani
                        if ($('.wizard:visible').length != 0) {
128 3231ff01 Olga Brani
                                if (e.keyCode == 39 && ui.wizard.current_step != (ui.wizard.total_step) &&(!exp)) {
129 0c26d55c Athina Bekakou
                                        ui.wizard.goNext();
130 0c26d55c Athina Bekakou
                                        return false;
131 0c26d55c Athina Bekakou
                                }
132 0c26d55c Athina Bekakou
                                // left arrow keyCode == 37
133 3231ff01 Olga Brani
                                else if (e.keyCode == 37 && ui.wizard.current_step != 1 &&(!exp)) {
134 0c26d55c Athina Bekakou
                                        ui.wizard.goPrev();
135 0c26d55c Athina Bekakou
                                        return false;
136 0c26d55c Athina Bekakou
                                }
137 0c26d55c Athina Bekakou
                                // ESC
138 bb8cc1dc Olga Brani
                                else if (e.keyCode == 27 && ui.wizard.current_step == 1) {
139 6fcab23b Olga Brani
                                        ui.wizard.close();
140 0c26d55c Athina Bekakou
                                }
141 96d15954 Olga Brani
                        }
142 df5f7743 Athina Bekakou
                });
143 bb8cc1dc Olga Brani
144 bb8cc1dc Olga Brani
                ui.wizard.btns.next.click(function(e) {
145 e4c44fcc Olga Brani
                        if (ui.wizard.current_step == ui.wizard.total_step ){
146 e4c44fcc Olga Brani
                                ui.wizard.submitData();
147 e4c44fcc Olga Brani
                                ui.wizard.close();
148 e4c44fcc Olga Brani
                                return false;
149 e4c44fcc Olga Brani
                        }
150 0c26d55c Athina Bekakou
                        ui.wizard.goNext();
151 e4c44fcc Olga Brani
                });
152 df5f7743 Athina Bekakou
153 bb8cc1dc Olga Brani
                ui.wizard.btns.previous.click(function(e) {
154 e4c44fcc Olga Brani
                        if (ui.wizard.current_step == 1 ){
155 e4c44fcc Olga Brani
                                ui.wizard.close();
156 e4c44fcc Olga Brani
                                return false;
157 e4c44fcc Olga Brani
                        }
158 0c26d55c Athina Bekakou
                        ui.wizard.goPrev();
159 df5f7743 Athina Bekakou
                });
160 148aeffe Athina Bekakou
        },
161 df5f7743 Athina Bekakou
162 148aeffe Athina Bekakou
        // for the carousel index
163 0c26d55c Athina Bekakou
        indicateStep: function(step) {
164 188fe5d9 Olga Brani
                $('.wizard .top .sub-menu[data-step]').hide();
165 bb8cc1dc Olga Brani
                $('.wizard .top .sub-menu[data-step=' + step + ']').fadeIn();
166 bb8cc1dc Olga Brani
167 148aeffe Athina Bekakou
                $('.nums').children().removeClass('current');
168 bb8cc1dc Olga Brani
                $('.nums li:not(".current")').show().css("display", "inline");
169 bb8cc1dc Olga Brani
                $('.nums li:nth-child(' + ui.wizard.current_step + ')').addClass('current');
170 55f6cbfe Athina Bekakou
                $('.nums li.current').hide();
171 bb8cc1dc Olga Brani
                $('.nums li.current').fadeIn('slow').css("display", "inline");
172 61b185d6 Olga Brani
                $('.nums .current').prevAll('li').hide();
173 8b3ba816 Athina Bekakou
        },
174 8b3ba816 Athina Bekakou
175 df5f7743 Athina Bekakou
        // changes the text of next and previous buttons
176 0c26d55c Athina Bekakou
        setMovementTags: function() {
177 bb8cc1dc Olga Brani
                if (ui.wizard.current_step == 1) {
178 eba2aada Athina Bekakou
                        ui.wizard.btns.previous.find('span').html('CANCEL');
179 eba2aada Athina Bekakou
                        ui.wizard.btns.next.find('span').html('NEXT');
180 bb8cc1dc Olga Brani
                } else if (ui.wizard.current_step == ui.wizard.total_step) {
181 eba2aada Athina Bekakou
                        ui.wizard.btns.previous.find('span').html('PREVIOUS');
182 eba2aada Athina Bekakou
                        ui.wizard.btns.next.find('span').html('CREATE');
183 bb8cc1dc Olga Brani
                } else {
184 eba2aada Athina Bekakou
                        ui.wizard.btns.previous.find('span').html('PREVIOUS');
185 eba2aada Athina Bekakou
                        ui.wizard.btns.next.find('span').html('NEXT');
186 8b3ba816 Athina Bekakou
                }
187 df5f7743 Athina Bekakou
        },
188 df5f7743 Athina Bekakou
189 6fcab23b Olga Brani
        close: function() {
190 bb8cc1dc Olga Brani
                $('body').removeClass('with-overlay');
191 bb8cc1dc Olga Brani
                $('.overlay-area').fadeOut(400, function() {
192 bb8cc1dc Olga Brani
                        $('.overlay-div').hide();
193 6fcab23b Olga Brani
                });
194 6fcab23b Olga Brani
                ui.wizard.resetWizard();
195 df5f7743 Athina Bekakou
        },
196 df5f7743 Athina Bekakou
        // manually sets elements to a initial state
197 6fcab23b Olga Brani
        resetWizard: function() {
198 bb8cc1dc Olga Brani
                ui.wizard.current_step = 1;
199 bba1c85c Olga Brani
                $('.step').removeAttr('style');
200 bb8cc1dc Olga Brani
                $('.bottom').show();
201 bb8cc1dc Olga Brani
                ui.wizard.indicateStep(ui.wizard.current_step);
202 bb8cc1dc Olga Brani
                ui.wizard.setMovementTags();
203 bb8cc1dc Olga Brani
                $('.networks-area .more').show();
204 bb8cc1dc Olga Brani
                $('.details').hide();
205 97ee3637 Athina Bekakou
                $('.vm-name input').val("");
206 97ee3637 Athina Bekakou
                $('.form-item input').val("");
207 bb8cc1dc Olga Brani
                $('.advanced-conf-options').hide();
208 bb8cc1dc Olga Brani
                $('.snf-color-picker').hide();
209 bb8cc1dc Olga Brani
                ui.wizard.preselectElements('.wizard');
210 6bd1416f Athina Bekakou
        },
211 6bd1416f Athina Bekakou
212 0c26d55c Athina Bekakou
        expandArea: function() {
213 bb8cc1dc Olga Brani
                ui.wizard.btns.expand_down.click(function(e) {
214 bb8cc1dc Olga Brani
                        ui.expandArrow(ui.wizard.btns.expand_down);
215 bb8cc1dc Olga Brani
                        $('.wizard-content').removeAttr('style');
216 bb8cc1dc Olga Brani
                        ui.wizard.btns.expand_down.parents('div.advanced-conf-step').find('.advanced-conf-options').stop().slideToggle(600, function() {
217 bb8cc1dc Olga Brani
                                if ($('.advanced-conf-options:visible').length != 0) {
218 bb8cc1dc Olga Brani
                                        ui.wizard.btns.expand_down.find('.snf-arrow-down .snf-arrow-up').removeClass('snf-arrow-down').addClass('snf-arrow-up');
219 bb8cc1dc Olga Brani
                                } else {
220 bb8cc1dc Olga Brani
                                        ui.wizard.btns.expand_down.find('.snf-arrow-down .snf-arrow-up').addClass('snf-arrow-down');
221 bb8cc1dc Olga Brani
                                }
222 bb8cc1dc Olga Brani
223 bb8cc1dc Olga Brani
                        });
224 bb8cc1dc Olga Brani
                })
225 d53ad190 Athina Bekakou
        },
226 0c26d55c Athina Bekakou
        focusCustom: function(el, step) {
227 9b6be833 Olga Brani
                el.focus();
228 bb8cc1dc Olga Brani
                el.attr('data-step', step);
229 ca3c8b6e Athina Bekakou
        },
230 ca3c8b6e Athina Bekakou
231 0c26d55c Athina Bekakou
        preselectElements: function(area) {
232 bb8cc1dc Olga Brani
                $(area).find('.current').not('.preselected').removeClass('current');
233 bb8cc1dc Olga Brani
                $(area).find('.preselected').not('.current').addClass('current');
234 bb8cc1dc Olga Brani
                $(area).find('.custom.dropdown.medium a:first').addClass('current'); // to fix
235 bb8cc1dc Olga Brani
                $(area).find('.snf-radio-checked').not('.prechecked').toggleClass('snf-radio-checked snf-radio-unchecked');
236 bb8cc1dc Olga Brani
                $(area).find('.snf-radio-unchecked.prechecked').toggleClass('snf-radio-checked snf-radio-unchecked');
237 bb8cc1dc Olga Brani
                $(area).find('.snf-checkbox-checked').not('.prechecked').toggleClass('snf-checkbox-checked snf-checkbox-unchecked');
238 bb8cc1dc Olga Brani
                $(area).find('.snf-checkbox-unchecked.prechecked').toggleClass('snf-checkbox-checked snf-checkbox-unchecked');
239 bb8cc1dc Olga Brani
                $('.expand-link').find('.snf-arrow-up.preselected').toggleClass('snf-arrow-up snf-arrow-down');
240 bba1c85c Olga Brani
                $('.step-1').addClass('current');
241 f6cfe41c Athina Bekakou
                
242 f6cfe41c Athina Bekakou
                $('.os li').hide();
243 f6cfe41c Athina Bekakou
                $('#vm-wizard .top .sub-menu[data-step=1] .preselected').data('img-type')
244 f6cfe41c Athina Bekakou
                $('.os').find('.'+$('#vm-wizard .top .sub-menu[data-step=1] .preselected').data('img-type')).show();
245 ffaabee9 Olga Brani
        },
246 ffaabee9 Olga Brani
247 17118c18 Athina Bekakou
        pickResources: function(resource) {
248 bb8cc1dc Olga Brani
                $('.flavor .with-flavor a:not(.' + resource + ')').removeClass('current');
249 bb8cc1dc Olga Brani
                $('.flavor .with-flavor a.' + resource + '').addClass('current');
250 f6cfe41c Athina Bekakou
        },
251 f6cfe41c Athina Bekakou
252 f6cfe41c Athina Bekakou
        showImageCategory: function(imagesCategory) {
253 f6cfe41c Athina Bekakou
                $(imagesCategory).closest('.sub-menu').find('.current').removeClass('current');
254 f6cfe41c Athina Bekakou
                $(imagesCategory).addClass('current');
255 f6cfe41c Athina Bekakou
                $('.os li').hide();
256 f6cfe41c Athina Bekakou
                $('.os .details').hide();
257 f6cfe41c Athina Bekakou
                selectedImages = $(imagesCategory).data('img-type');
258 f6cfe41c Athina Bekakou
                $('.os').find('.'+selectedImages).fadeIn();
259 f6cfe41c Athina Bekakou
                
260 f6cfe41c Athina Bekakou
        
261 17118c18 Athina Bekakou
        }
262 df5f7743 Athina Bekakou
263 148aeffe Athina Bekakou
}
264 148aeffe Athina Bekakou
265 148aeffe Athina Bekakou
266 bb8cc1dc Olga Brani
$(document).ready(function() {
267 148aeffe Athina Bekakou
268 bb8cc1dc Olga Brani
        /*
269 9b6be833 Olga Brani
Various functions for vm creation wizard
270 9b6be833 Olga Brani
*/
271 9b6be833 Olga Brani
272 bb8cc1dc Olga Brani
        /* step functions */
273 bb8cc1dc Olga Brani
        /* step-1: Pick OS */
274 bb8cc1dc Olga Brani
        $('.wizard .os > li').click(function(e) {
275 bb8cc1dc Olga Brani
                e.preventDefault();
276 bb8cc1dc Olga Brani
                $('.wizard .os >li').removeClass('current');
277 bb8cc1dc Olga Brani
                $(this).addClass('current');
278 6f4b6de9 Olga Brani
        });
279 9b6be833 Olga Brani
280 bb8cc1dc Olga Brani
        $('.os .btn-col a').click(function(e) {
281 bb8cc1dc Olga Brani
                e.preventDefault();
282 bb8cc1dc Olga Brani
                e.stopPropagation();
283 bb8cc1dc Olga Brani
                $(this).toggleClass('current');
284 bb8cc1dc Olga Brani
                var self = this;
285 bb8cc1dc Olga Brani
                $(this).parents('li').find('.details').stop().slideToggle();
286 bb8cc1dc Olga Brani
        });
287 9b6be833 Olga Brani
288 bb8cc1dc Olga Brani
289 bb8cc1dc Olga Brani
        /* step-2: Select flavor */
290 bb8cc1dc Olga Brani
        $('.wizard .sub-menu a[data-size]').on("click", function(e) {
291 bb8cc1dc Olga Brani
                // e.preventDefault();
292 bb8cc1dc Olga Brani
                $(this).parents('.sub-menu').find('a').removeClass('current');
293 bb8cc1dc Olga Brani
                $(this).addClass('current');
294 bb8cc1dc Olga Brani
                ui.wizard.pickResources($(this).data('size'));
295 bb8cc1dc Olga Brani
        });
296 bb8cc1dc Olga Brani
297 bb8cc1dc Olga Brani
        $('.wizard .flavor .options:not(".vm-storage-selection") a').click(function(e) {
298 bb8cc1dc Olga Brani
                // e.preventDefault();
299 bb8cc1dc Olga Brani
                $('.wizard .sub-menu a[data-size]').removeClass('current');
300 bb8cc1dc Olga Brani
                $(this).parents('.options').find('a').removeClass('current');
301 bb8cc1dc Olga Brani
                $(this).addClass('current');
302 bb8cc1dc Olga Brani
303 bb8cc1dc Olga Brani
                var size, count;
304 bb8cc1dc Olga Brani
                if ($(this).hasClass('small')) {
305 bb8cc1dc Olga Brani
                        size = 'small';
306 bb8cc1dc Olga Brani
                } else if ($(this).hasClass('medium')) {
307 bb8cc1dc Olga Brani
                        size = 'medium';
308 bb8cc1dc Olga Brani
                } else if ($(this).hasClass('large')) {
309 bb8cc1dc Olga Brani
                        size = 'large';
310 bb8cc1dc Olga Brani
                }
311 bb8cc1dc Olga Brani
312 bb8cc1dc Olga Brani
                count = $('.wizard .step-2 .options.with-flavor .' + size + '.current').length;
313 bb8cc1dc Olga Brani
                if (count == 3) {
314 bb8cc1dc Olga Brani
                        $('.wizard .sub-menu[data-step=2]').find('a[data-size=' + size + ']').addClass('current');
315 bb8cc1dc Olga Brani
                }
316 bb8cc1dc Olga Brani
        });
317 bb8cc1dc Olga Brani
318 bb8cc1dc Olga Brani
        $('.wizard .flavor .options.vm-storage-selection a').click(function(e) {
319 bb8cc1dc Olga Brani
                // e.preventDefault();
320 bb8cc1dc Olga Brani
                $(this).parents('.options').find('a').removeClass('current');
321 bb8cc1dc Olga Brani
                $(this).addClass('current');
322 bb8cc1dc Olga Brani
        });
323 17118c18 Athina Bekakou
324 0a891fe0 Olga Brani
        $('.flavor .options a').hover(
325 bb8cc1dc Olga Brani
                function() {
326 0a891fe0 Olga Brani
                        var paragraph = $(this).parents('.options-bar').siblings('.title').find('p');
327 0a891fe0 Olga Brani
                        var text = $(this).data('help');
328 0a891fe0 Olga Brani
                        paragraph.html(text);
329 bb8cc1dc Olga Brani
                        paragraph.css('visibility', 'visible');
330 0a891fe0 Olga Brani
                }, function() {
331 0a891fe0 Olga Brani
                        var paragraph = $(this).parents('.options-bar').siblings('.title').find('p');
332 bb8cc1dc Olga Brani
                        paragraph.css('visibility', 'hidden');
333 bb8cc1dc Olga Brani
                }
334 bb8cc1dc Olga Brani
        );
335 bb8cc1dc Olga Brani
        /* step-3: Advanced options */
336 0c26d55c Athina Bekakou
337 0c26d55c Athina Bekakou
        // reaction li.click   
338 bb8cc1dc Olga Brani
        $('.advanced-conf-options .checkbox').click(function(e) {
339 bb8cc1dc Olga Brani
                e.preventDefault();
340 bb8cc1dc Olga Brani
                var self = this;
341 bb8cc1dc Olga Brani
                var checkbox = $(this).find('.check');
342 bb8cc1dc Olga Brani
                ui.changeCheckboxState(checkbox);
343 bb8cc1dc Olga Brani
                if ($(this).hasClass('has-more')) {
344 bb8cc1dc Olga Brani
                        $(this).next('.more').stop().slideToggle(400, function() {
345 bb8cc1dc Olga Brani
                                if ($(self).next('.more:visible').length != 0) {
346 bb8cc1dc Olga Brani
                                        $(checkbox).find('span').removeClass('snf-checkbox-unchecked').addClass('snf-checkbox-checked');
347 bb8cc1dc Olga Brani
                                } else {
348 bb8cc1dc Olga Brani
                                        $(checkbox).find('span').removeClass('snf-checkbox-checked').addClass('snf-checkbox-unchecked');
349 bb8cc1dc Olga Brani
                                }
350 bb8cc1dc Olga Brani
                        });
351 bb8cc1dc Olga Brani
                }
352 bb8cc1dc Olga Brani
        });
353 bb8cc1dc Olga Brani
354 bb8cc1dc Olga Brani
355 bb8cc1dc Olga Brani
356 bb8cc1dc Olga Brani
        // reaction a.click
357 bb8cc1dc Olga Brani
        $('.checkbox .check').click(function(e) {
358 0c26d55c Athina Bekakou
                e.stopPropagation();
359 0c26d55c Athina Bekakou
                var self = this;
360 bb8cc1dc Olga Brani
                if ($(this).closest('.checkbox').hasClass('has-more')) {
361 0c26d55c Athina Bekakou
                        console.log('hi');
362 bb8cc1dc Olga Brani
                        $(this).parent().next('.more').stop().slideToggle(400, function() {
363 bb8cc1dc Olga Brani
                                console.log('a2');
364 bb8cc1dc Olga Brani
                                if ($(self).parent().next('.more:visible').length != 0) {
365 bb8cc1dc Olga Brani
                                        $(self).find('span').removeClass('snf-checkbox-unchecked').addClass('snf-checkbox-checked');
366 bb8cc1dc Olga Brani
                                        console.log('a3');
367 bb8cc1dc Olga Brani
                                } else {
368 bb8cc1dc Olga Brani
                                        $(self).find('span').removeClass('snf-checkbox-checked').addClass('snf-checkbox-unchecked');
369 bb8cc1dc Olga Brani
                                }
370 bb8cc1dc Olga Brani
                        });
371 bb8cc1dc Olga Brani
                }
372 0c26d55c Athina Bekakou
        });
373 9b6be833 Olga Brani
374 bb8cc1dc Olga Brani
        $('.show-add-tag').click(function(e) {
375 bb8cc1dc Olga Brani
                e.preventDefault();
376 bb8cc1dc Olga Brani
                $(this).parents('.tags-area').find('.snf-color-picker').slideDown('slow', function() {
377 bb8cc1dc Olga Brani
                        $('#hide-add-tag-dummy').scrollintoview({
378 bb8cc1dc Olga Brani
                                'duration': 'slow'
379 bb8cc1dc Olga Brani
                        });
380 bb8cc1dc Olga Brani
                });
381 bb8cc1dc Olga Brani
                ui.colorPickerVisible = 1;
382 bb8cc1dc Olga Brani
        });
383 9b6be833 Olga Brani
384 bb8cc1dc Olga Brani
        $('.hide-add-tag').click(function(e) {
385 bb8cc1dc Olga Brani
                e.preventDefault();
386 bb8cc1dc Olga Brani
                $(this).parents('.tags-area').find('.snf-color-picker').slideUp(400, function() {
387 bb8cc1dc Olga Brani
                        $('.show-add-tag').first().scrollintoview({
388 bb8cc1dc Olga Brani
                                'duration': 'slow'
389 bb8cc1dc Olga Brani
                        });
390 bb8cc1dc Olga Brani
                        ui.colorPickerVisible = 0;
391 bb8cc1dc Olga Brani
                });
392 bb8cc1dc Olga Brani
        });
393 6bd1416f Athina Bekakou
394 bb8cc1dc Olga Brani
        /* end of step functions */
395 62462e34 Athina Bekakou
396 bb8cc1dc Olga Brani
        /* navigation and numbers functions */
397 bb8cc1dc Olga Brani
        $('.nav.previous').focus(function(e) {
398 bb8cc1dc Olga Brani
                $(this).addClass('active');
399 bb8cc1dc Olga Brani
        });
400 d53ad190 Athina Bekakou
401 bb8cc1dc Olga Brani
        $('.nav.previous').focusout(function(e) {
402 bb8cc1dc Olga Brani
                $(this).removeClass('active');
403 d53ad190 Athina Bekakou
404 bb8cc1dc Olga Brani
        });
405 d53ad190 Athina Bekakou
406 bb8cc1dc Olga Brani
        $('.sub-menu[data-step=2] li:last').find('a').focusout(function(e) {
407 bb8cc1dc Olga Brani
                $('.step-2').find('.dropdown a:first').focus();
408 d53ad190 Athina Bekakou
409 bb8cc1dc Olga Brani
        });
410 d53ad190 Athina Bekakou
411 bb8cc1dc Olga Brani
        $('.os .name-col').focus(function(e) {
412 bb8cc1dc Olga Brani
                $(this).parents('li').addClass('hover');
413 bb8cc1dc Olga Brani
        });
414 bb8cc1dc Olga Brani
415 bb8cc1dc Olga Brani
        $('.os .name-col').focusout(function(e) {
416 bb8cc1dc Olga Brani
                $(this).parents('li').removeClass('hover');
417 bb8cc1dc Olga Brani
        });
418 d53ad190 Athina Bekakou
419 eba2aada Athina Bekakou
420 bb8cc1dc Olga Brani
        /* end of navigation and numbers functions */
421 eba2aada Athina Bekakou
422 62462e34 Athina Bekakou
423 bb8cc1dc Olga Brani
        /* focus and tabs functionality */
424 62462e34 Athina Bekakou
425 bb8cc1dc Olga Brani
        $('a').keyup(function(e) {
426 935e59b9 Olga Brani
427 bb8cc1dc Olga Brani
                var self = this;
428 bb8cc1dc Olga Brani
                if (e.keyCode == 9 || e.which == 9) {
429 935e59b9 Olga Brani
                        if (e.shiftKey) {
430 935e59b9 Olga Brani
                                alert(e);
431 935e59b9 Olga Brani
                        } else {
432 bb8cc1dc Olga Brani
                                //Focus next input
433 bb8cc1dc Olga Brani
                                if ($(self).attr('data-next')) {
434 bb8cc1dc Olga Brani
                                        $(self).focusout(function(e) {
435 bb8cc1dc Olga Brani
                                                var classname = $(self).data('next');
436 bb8cc1dc Olga Brani
                                                $('.' + classname + '').first().focus();
437 bb8cc1dc Olga Brani
                                        });
438 bb8cc1dc Olga Brani
                                }
439 770ad9fa Olga Brani
                        }
440 5bda20fe Olga Brani
                }
441 bb8cc1dc Olga Brani
        })
442 62462e34 Athina Bekakou
443 bb8cc1dc Olga Brani
        /* end of focus and tabs functionality */
444 d53ad190 Athina Bekakou
445 9b6be833 Olga Brani
        $('#vm-wizard').find('a').click(function(e) {
446 9b6be833 Olga Brani
                e.preventDefault();
447 9b6be833 Olga Brani
        });
448 bb8cc1dc Olga Brani
        ui.wizard.current_step = 1;
449 9b6be833 Olga Brani
        ui.wizard.btns.previous = $('.bottom').find('.nav.prev');
450 9b6be833 Olga Brani
        ui.wizard.btns.next = $('.bottom').find('.nav.next');
451 bb8cc1dc Olga Brani
        ui.wizard.btns.expand_down = $('.adv-main').find('.expand-link');
452 bb8cc1dc Olga Brani
        ui.wizard.btns.close = $('#vm-wizard').find('.close');
453 0c26d55c Athina Bekakou
        ui.wizard.initEvents();
454 0c26d55c Athina Bekakou
        ui.wizard.setMovementTags();
455 0c26d55c Athina Bekakou
        ui.wizard.expandArea();
456 6fcab23b Olga Brani
        ui.wizard.btns.close.click(function() {
457 6fcab23b Olga Brani
                ui.wizard.close();
458 9b6be833 Olga Brani
        });
459 f6cfe41c Athina Bekakou
        
460 f6cfe41c Athina Bekakou
        $('.os .system-images').show();
461 f6cfe41c Athina Bekakou
462 f6cfe41c Athina Bekakou
        $('#vm-wizard .top .sub-menu[data-step=1] a').click(function() {
463 f6cfe41c Athina Bekakou
                ui.wizard.showImageCategory(this);
464 f6cfe41c Athina Bekakou
        })
465 148aeffe Athina Bekakou
});