/home/arranoyd/magicraft/wp-content/plugins/ninja-popups/assets/js/jquery.material.form.min.js
jQuery(function(){
    jQuery.fn.hasAttr = function(attribute){
        var attr = this.attr(attribute);
        if (typeof attr !== typeof undefined && attr !== false)
            return true;
        return false;
    }

    jQuery.fn.materialForm = function() {
        // Inputs
        this.find('input, textarea').each(function(i){
            if(isValidType(jQuery(this))){
                var name = jQuery(this).attr('name');
                jQuery(this).attr('id', name);
                var $wrap = jQuery(this).wrap("<div class='material-input'></div>").parent();
                $wrap.append("<span class='material-bar'></span>");

                var tagName = jQuery(this).prop("tagName").toLowerCase();
                $wrap.addClass(tagName);

                var placeholder = jQuery(this).attr('placeholder');
                if(placeholder){
                    $wrap.append("<label for='"+name+"'>"+placeholder+"</label>");
                    jQuery(this).removeAttr('placeholder');
                }

                addFilled(jQuery(this));
            }

            if(isType(jQuery(this), 'radio') || isType(jQuery(this), 'checkbox')){

                var name = jQuery(this).attr('name').replace('[]','');
                var group_id = 'material-group-' + name;
                var placeholder = jQuery(this).attr('placeholder');
                var item_id = name+ '-' + i;
                var $label = jQuery('<label for="'+item_id+'">'+placeholder+'</label>');
                var $group_item = jQuery('<div class="material-group-item"></div>');
                jQuery(this).attr('id', item_id);

                if(jQuery("#"+group_id).length){
                    var $group = jQuery('#'+group_id);
                    $group.append(jQuery(this));
                }
                else{
                    var $group = jQuery(this).wrap("<div class='material-group' id='"+group_id+"'></div>").parent();
                }

                if(isType(jQuery(this), 'radio'))
                    var $radio = jQuery('<div class="material-radio"></div>');
                else
                    var $radio = jQuery('<div class="material-checkbox"></div>');

                $group_item.append(jQuery(this));
                $group_item.append($label);
                $group_item.append($radio);

                $group.append($group_item);
            }
        });

        this.find('input, textarea').on('blur', function(){
            if(isValidType(jQuery(this)))
                addFilled(jQuery(this))
        });

        // Radio

        function isValidType($el){
            var type = $el.attr('type');
            return (type != 'hidden' && type != 'submit' && type != 'checkbox' && type != 'radio' && type != 'file' ? 1 : 0);
        }

        function isType($el, type){
            var el_type = $el.attr('type');
            return (el_type == type);
        }

        function addFilled($el){
            if($el.val())
                $el.addClass('filled');
            else
                $el.removeClass('filled');
        }

        // Selects
        this.find('select').each(function(i){
            var placeholder = jQuery(this).attr('placeholder');
            var type = (jQuery(this).attr('multiple') ? 'checkbox' : 'radio');
            var name = id = jQuery(this).attr('name');
            var $wrap = jQuery(this).wrap("<div class='material-select'></div>").parent();
            if(type == 'checkbox'){
                name += '[]';
                var $bar = jQuery('<span class="material-bar"></span>');
                $wrap.append($bar).addClass('checkbox');
            }
            else{
                var $title = jQuery('<span class="material-title">'+placeholder+'</span>');
                $wrap.prepend($title);
            }

            var $label = jQuery('<label for="select-'+i+'"><span>'+placeholder+'</span><strong></strong></label>');
            var $checkbox = jQuery('<input type="checkbox" id="select-'+i+'">');

            $wrap.prepend($checkbox);
            $wrap.prepend($label);

            var $list = jQuery('<ul class="'+type+'"></ul>');
            $wrap.append($list);

            var selected_length = 0;
            var length = jQuery(this).children('option').length;
            var $selected;
            jQuery(this).children('option').each(function(j){
                var title = jQuery(this).text();
                var value = jQuery(this).val();

                var selected = jQuery(this).hasAttr('selected');

                var $list_item = jQuery('<li></li>');
                $list.append($list_item);

                var $label = jQuery('<label for="'+id+'-'+j+'">'+title+'</label>');
                var $input = jQuery('<input type="'+type+'" value="'+value+'" name="'+name+'" id="'+id+'-'+j+'">');
                if(selected){
                    $selected = $input.prop('checked', true);
                    selected_length++;
                }

                $list_item.append($input);
                $list_item.append($label);
            });
            if($bar){
                var percentage = selected_length / length * 100;
                $bar.width(percentage + '%');
            } else{
                if(selected_length){
                    label.children('span').text($selected.next('label').text());
                    $wrap.addClass('filled');
                }
            }
            jQuery(this).remove();
        });

        jQuery(document).on('click', function(e) {
            if (jQuery(e.target).closest('.material-select').length === 0) {
                // cancel highlighting
                jQuery('.material-select > input').prop('checked', false);
            }
        });

        jQuery('.material-select > input').on('change', function(){
            var changed_id = jQuery(this).attr('id');
            jQuery('.material-select > input').each(function(){
                var this_id = jQuery(this).attr('id');
                if(changed_id != this_id)
                    jQuery(this).prop('checked', false);
            });
        });

        jQuery('.material-select ul input').on('change', function(){
            if(jQuery(this).closest('.material-select.checkbox').length){
                var $ul = jQuery(this).closest('ul')
                var length = $ul.find('input').length;
                var checked_length = $ul.find('input:checked').length;
                var percentage = checked_length / length * 100;
                jQuery(this).closest('.material-select').find('.material-bar').width(percentage + '%');
            }
            else{
                var $material_select = jQuery(this).closest('.material-select')
                var $label = $material_select.children('label').children('span');
                var $next = jQuery(this).next('label');
                $label.text($next.text());
                $material_select.children('input').prop('checked', false);
                $material_select.addClass('filled');
            }
        });

    };
});

jQuery(document).ready(function() {
    jQuery('form.material').materialForm();
});