       catch (error : Error)
         {
           reportInvalidParameter(name, value, ["true", "false"])
+
           return fallback
         }
 

    public static const DEFAULT_SKIN_URL : String = "goplayer-skin.swf"
    public static const DEFAULT_TRACKER_ID : String = "global"

    private const result : Configuration = new Configuration

    private var parameters : Object

    public function ConfigurationParser(parameters : Object)
    { this.parameters = parameters }

    public function execute() : void
    {
      result.apiURL = getString("api", DEFAULT_API_URL)
      result.skinURL = getString("skin", DEFAULT_SKIN_URL)
      result.movieID = getString("movie", null)
      result.trackerID = getString("tracker", DEFAULT_TRACKER_ID)
      result.bitratePolicy = getBitratePolicy("bitrate", BitratePolicy.BEST)
      result.enableRTMP = getBoolean("enableRtmp", true)
      result.enableAutoplay = getBoolean("enableAutoplay", false)
      result.enableLooping = getBoolean("enableLooping", false)
      result.enableChrome = getBoolean("enableChrome", true)
      result.enableUpperPanel = getBoolean("enableUpperPanel", true)
    }

    public static function parse(parameters : Object) : Configuration
    {
      const parser : ConfigurationParser
        = new ConfigurationParser(parameters)

      parser.execute()

      return parser.result
    }

    // -----------------------------------------------------


    private function reportInvalidParameter
      (name : String, value : String, validValues : Array) : void
    {
      debug("Error: Invalid parameter: " +
            "“" + originalParameterNames[name] + "=" + value + "”; " +
            getInvalidParameterHint(validValues) + ".")
    }

