input-style.js 2.73 KB
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();
        };
    });
});