+++ /dev/null
-/*
- * Fuel UX Radio
- * https://github.com/ExactTarget/fuelux
- *
- * Copyright (c) 2012 ExactTarget
- * Licensed under the MIT license.
- */
-
-define(['require','jquery'],function (require) {
-
- var $ = require('jquery');
-
-
- // RADIO CONSTRUCTOR AND PROTOTYPE
-
- var Radio = function (element, options) {
- this.$element = $(element);
- this.options = $.extend({}, $.fn.radio.defaults, options);
-
- // cache elements
- this.$label = this.$element.parent();
- this.$icon = this.$label.find('i');
- this.$radio = this.$label.find('input[type=radio]');
- this.groupName = this.$radio.attr('name');
-
- // set default state
- this.setState(this.$radio);
-
- // handle events
- this.$radio.on('change', $.proxy(this.itemchecked, this));
- };
-
- Radio.prototype = {
-
- constructor: Radio,
-
- setState: function ($radio, resetGroupState) {
- var checked = $radio.is(':checked');
- var disabled = $radio.is(':disabled');
-
- // set state of radio
- if (checked === true) {
- this.$icon.addClass('checked');
- }
- if (disabled === true) {
- this.$icon.addClass('disabled');
- }
- },
-
- resetGroup: function () {
- // reset all radio buttons in group
- $('input[name=' + this.groupName + ']').next().removeClass('checked');
- },
-
- enable: function () {
- this.$radio.attr('disabled', false);
- this.$icon.removeClass('disabled');
- },
-
- disable: function () {
- this.$radio.attr('disabled', true);
- this.$icon.addClass('disabled');
- },
-
- itemchecked: function (e) {
- var radio = $(e.target);
-
- this.resetGroup();
- this.setState(radio);
- }
- };
-
-
- // RADIO PLUGIN DEFINITION
-
- $.fn.radio = function (option, value) {
- var methodReturn;
-
- var $set = this.each(function () {
- var $this = $(this);
- var data = $this.data('radio');
- var options = typeof option === 'object' && option;
-
- if (!data) $this.data('radio', (data = new Radio(this, options)));
- if (typeof option === 'string') methodReturn = data[option](value);
- });
-
- return (methodReturn === undefined) ? $set : methodReturn;
- };
-
- $.fn.radio.defaults = {};
-
- $.fn.radio.Constructor = Radio;
-
-
- // RADIO DATA-API
-
- $(function () {
- $(window).on('load', function () {
- //$('i.radio').each(function () {
- $('.radio-custom > input[type=radio]').each(function () {
- var $this = $(this);
- if ($this.data('radio')) return;
- $this.radio($this.data());
- });
- });
- });
-
-});