(function ($) {
jQuery.fn.ihandle = function (options) {
var opts = $.extend({},
        $.fn.ihandle.defaults, options);
        var $this = $(this);
        $this.data('opts', opts);
        return this.each(function (i, e) {
            var $t = jQuery(this);
	    var orig=$t.val();
			
	    $(opts.target).change(function() {
		
		if(opts.action_is=='disable'){
		    
		    if($(this).val()==opts.invalid_val){
			
			
			$t.attr('disabled','disabled');
			if($t.is('input')){
			    $t.val(opts.invalid_label);
			}else{
			    $t.text(opts.invalid_label);			    
			}
		    }else {
			$t.removeAttr('disabled');
			if(opts.restore_prev==true){
			    $t.val(orig);
			}else{
			    $t.val("");    
			}
			
		    }
		}
	    }).change();
	})
}
//defaults
jQuery.fn.ihandle.defaults = {
        target:'.master',
	action_is:'disable',
	invalid_val:'choose',
	invalid_label:'invalid master value !',
	restore_prev:true
    };
    //private part
    
})(jQuery);
