jQuery(document).ready( function(){ var d = document; var safari = (navigator.userAgent.toLowerCase().indexOf('safari') != -1) ? true : false; var gebtn = function(parEl,child) { return parEl.getElementsByTagName(child); }; onload = function() { var body = gebtn(d,'body')[0]; body.className = body.className && body.className != '' ? body.className + ' has-js' : 'has-js'; if (!d.getElementById || !d.createTextNode) return; var ls = gebtn(d,'label'); for (var i = 0; i < ls.length; i++) { var l = ls[i]; if (l.className.indexOf('label_') == -1) continue; var inp = gebtn(l,'input')[0]; if (l.className == 'label_checkbox') { l.className = (safari && inp.checked == true || inp.checked) ? 'label_checkbox c_on' : 'label_checkbox c_off'; }; if (l.className == 'label_radio') { l.className = (safari && inp.checked == true || inp.checked) ? 'label_radio r_on' : 'label_radio r_off'; }; }; }; $('#questionnaire').on('change', ".label_checkbox", function(){ var inp = gebtn(this,'input')[0]; if (this.className == 'label_checkbox c_off' || (!safari && inp.checked)) { $(this).children('input').prop('checked', true); this.className = 'label_checkbox c_on'; if (safari) inp.click(); } else { this.className = 'label_checkbox c_off'; if (safari) inp.click(); }; }); $('#questionnaire').on('change', ".label_radio", function(){ console.log(this); var inp = gebtn(this,'input')[0]; if (this.className == 'label_radio r_off' || inp.checked) { var names = $(this).children("input[type='radio']").attr('name'); $(this).closest('.back-office-block').find("input[type='radio']").each(function(){ if($(this).attr('name') == names){ $(this).closest('label').attr('class','label_radio r_off' ); var li = $(this).closest('ul').children("li"); li.children("ul").each(function() { $(this).remove(); }); li.children(".additional-question").each(function() { $(this).css("display", "none"); $(this).removeClass('status-display'); }); } }); this.className = 'label_radio r_on'; if (safari) inp.click(); } else { this.className = 'label_radio r_off'; if (safari) inp.click(); }; }); });