Your IP : 216.73.216.240


Current Path : /home/juvelize/www/modules/mod_geekfacebookembed/fields/dependentselect/
Upload File :
Current File : /home/juvelize/www/modules/mod_geekfacebookembed/fields/dependentselect/script.js

/**
 * @package    mod_geekfacebookembed
 * @version    1.2.0
 *
 * @copyright  Copyright (C) 2015 - 2017 JoomlaGeek. All Rights Reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 * @author     JoomlaGeek <admin@joomlageek.com>
 * @link       http://www.joomlageek.com
 */

var geekDependentSelect = window.geekDependentSelect || {};


(function($){
	geekDependentSelect = {
		items: {},
		register: function(item) {
			var self = this;
			if( typeof(self.items[item.element]) == 'undefined' ) {
				self.items[item.element] = {
					group: item.group,
					depends: [],
					controls: []
				};
			}

			$.each(item.depends, function( index, value ) {
				if(self.items[item.element].depends.indexOf(value) == -1){
					self.items[item.element].depends.push(value);
				}
			});

			self.items[item.element].controls.push({
				value: item.value,
				depends: item.depends
			});
		},

		getElementByName: function(controlGroup, name) {
			var fieldname = controlGroup+'['+name+']';
			var el = $('[name="'+fieldname+'"]');
			if(!el.length) {
				el = $('[name="'+fieldname+'[]"]');
			}
			return el;
		},

		init: function() {
			var self = this;
			$.each(self.items, function(element, info){
				var el = self.getElementByName(info.group, element);
				if(el) {
					el.on('change', function(){
						var _value = $(this).val();
						if($(this).is(':radio') && !$(this).is(':checked')) {
							return;
						}
						$.each(info.depends, function(index, fieldname){
							var depend = self.getElementByName(info.group, fieldname);
							if(depend.length) {
								depend.closest('div.control-group').hide();
							} else {
								var depend = $('#geek-magiclist-'+fieldname);
								if(depend.length) {
									depend.hide();
								}
							}
						});
						$.each(info.controls, function(index, control){
							if(control.value == _value) {
								$.each(control.depends, function(index2, fieldname){
									var depend = self.getElementByName(info.group, fieldname);
									if(depend.length) {
										depend.closest('div.control-group').show();
									} else {
										var depend = $('#geek-magiclist-'+fieldname);
										if(depend.length) {
											depend.show();
										}
									}
								});
							}
						});
					}).trigger('change');
				}
			});
		}
	};

	$(document).ready(function(){
		geekDependentSelect.init();
	});
})(jQuery);