/* Copyright (c) 2010 José Joaquín Núñez (josejnv --at-- gmail punto com) http://joaquinnunez.cl/blog/
 * Licensed under GPL (http://www.opensource.org/licenses/gpl-2.0.php)
 * Use only for non-commercial usage.
 * Version : 0.1
 * Requires: jQuery 1.2+
 * select support added by Ajay Sawant ( ajay.sawant --at-- prosares punto com )  http://prosares.co.cc/
 */

(function($){jQuery.fn.EnableDisable=function(options){var defaults={enabler:null,enablerVal:null,on_enable:function(){},on_disable:function(){}};var opts=$.extend(defaults,options);return this.each(function(){var field_to_be_enabled_or_disabled=this;var enable=false;jQuery(opts.enabler).each(function(){if(this.tagName=="INPUT"){if(jQuery(this).attr('checked')){enable=true;}}else if(this.tagName=="SELECT"){if(jQuery.inArray(jQuery(this).val(),opts.enablerVal)>=0){enable=true;}}});if(enable){jQuery(field_to_be_enabled_or_disabled).removeAttr('disabled');}else
{jQuery(field_to_be_enabled_or_disabled).attr('disabled','disabled');}var radios=new Array();var selects=new Array();var checkboxs=new Array();jQuery(opts.enabler).each(function(){if(this.tagName=="INPUT"&&this.type=="radio"){radios.push($(this).attr('name'));}else if(this.tagName=="INPUT"&&this.type=="checkbox"){checkboxs.push($(this).attr('id'));}else if(this.tagName=="SELECT"){selects.push($(this).attr('id'));}});radios=array_unique(radios);selects=array_unique(selects);checkboxs=array_unique(checkboxs);jQuery.each(radios,function(){jQuery('input[name='+this+']').click(function(){var this_field=this;var enable=false;jQuery(opts.enabler).each(function(){if(jQuery(this).attr('id')==jQuery(this_field).attr('id')&&jQuery(this).attr('checked')){enable=true;}});jQuery.enable_or_disable(field_to_be_enabled_or_disabled,enable,opts);});});jQuery.each(selects,function(){jQuery('#'+this).bind("change",function(){var this_field=this;var enable=false;jQuery(opts.enabler).each(function(){if(jQuery(this).attr('id')==jQuery(this_field).attr('id')&&jQuery.inArray(jQuery(this).val(),opts.enablerVal)>=0){enable=true;}});jQuery.enable_or_disable(field_to_be_enabled_or_disabled,enable,opts);});});jQuery.each(checkboxs,function(){jQuery('#'+this).bind("change",function(){var this_field=this;var enable=false;jQuery(opts.enabler).each(function(){if(jQuery(this).attr('id')==jQuery(this_field).attr('id')&&jQuery(this).attr('checked')){enable=true;}});jQuery.enable_or_disable(field_to_be_enabled_or_disabled,enable,opts);});});});}})(jQuery);function array_unique(arr){if(arr.length>1){var arr=arr.sort();var arrUnique=new Array(arr[0]);for(i=1;i<arr.length;i++){if(arr[i]!=arrUnique[arrUnique.length-1]){arrUnique.push(arr[i]);}}return arrUnique;}else
{return arr;}}jQuery.enable_or_disable=function(field_to_be_enabled_or_disabled,enable,opts){if(enable){jQuery(field_to_be_enabled_or_disabled).removeAttr('disabled');opts.on_enable();}else
{jQuery(field_to_be_enabled_or_disabled).attr('disabled','disabled');opts.on_disable();}};

