$('.icheck-colors li').click(function() {
  var self = $(this);

  if (!self.hasClass('active')) {
      self.siblings().removeClass('active');

    var skin = self.closest('.skin'),
      color = self.attr('class') ? '-' + self.attr('class') : '',
      colorTmp = skin.data('color') ? '-' + skin.data('color') : '-blue',
      colorTmp = (colorTmp === '-black' ? '' : colorTmp);

      checkbox_default = 'icheckbox_minimal',
      radio_default = 'iradio_minimal',
      checkbox = 'icheckbox_minimal' + colorTmp,
      radio = 'iradio_minimal' + colorTmp;

    if (skin.hasClass('skin-square')) {
      checkbox_default = 'icheckbox_square';
      radio_default = 'iradio_square';
      checkbox = 'icheckbox_square' + colorTmp;
      radio = 'iradio_square'  + colorTmp;
    };

    if (skin.hasClass('skin-flat')) {
      checkbox_default = 'icheckbox_flat';
      radio_default = 'iradio_flat';
      checkbox = 'icheckbox_flat' + colorTmp;
      radio = 'iradio_flat'  + colorTmp;
    };

    if (skin.hasClass('skin-line')) {
      checkbox_default = 'icheckbox_line';
      radio_default = 'iradio_line';
      checkbox = 'icheckbox_line' + colorTmp;
      radio = 'iradio_line'  + colorTmp;
    };

    skin.find(':checkbox, :radio').each(function() {
      var element = $(this).hasClass('state') ? $(this) : $(this).parent();
      var element_class = element.attr('class').replace(checkbox, checkbox_default + color).replace(radio, radio_default + color);
      element.attr('class', element_class);
    });

    skin.data('color', self.attr('class') ? self.attr('class') : 'black');
    self.addClass('active');
  };
});
