# File lib/jrails.rb, line 311
      def visual_effect(name, element_id = false, js_options = {})
        element = element_id ? element_id : "this"
        
        if SCRIPTACULOUS_EFFECTS.has_key? name.to_sym
          effect = SCRIPTACULOUS_EFFECTS[name.to_sym]
          name = effect[:method]
          mode = effect[:mode]
          js_options = js_options.merge(effect[:options]) if effect[:options]
        end
        
        [:color, :direction, :startcolor, :endcolor].each do |option|
          js_options[option] = "'#{js_options[option]}'" if js_options[option]
        end
        
        if js_options.has_key? :duration
          speed = js_options.delete :duration
          speed = (speed * 1000).to_i unless speed.nil?
        else
          speed = js_options.delete :speed
        end
        
        if ['fadeIn','fadeOut','fadeToggle'].include?(name)
          #     090905 - Jake - changed ' to \" so it passes assert_select_rjs with an id
          javascript = "#{JQUERY_VAR}(\"#{jquery_id(element_id)}\").#{name}("
          javascript << "#{speed}" unless speed.nil?
          javascript << ");"
        else
          #     090905 - Jake - changed ' to \" so it passes "assert_select_rjs :effect, ID"
          javascript = "#{JQUERY_VAR}(\"#{jquery_id(element_id)}\").#{mode || 'effect'}('#{name}'"
          javascript << ",#{options_for_javascript(js_options)}" unless speed.nil? && js_options.empty?
          javascript << ",#{speed}" unless speed.nil?
          javascript << ");"
        end
        
      end