# File app/controllers/fusioncharts/fc_exporter_controller.rb, line 50
    def index
      
      @fc_exporter= Fusioncharts::Exporter::FcExporter.new(params)

      target=@fc_exporter.exporttargetwindow
      filename = @fc_exporter.exportfilename
      exportaction = @fc_exporter.exportaction
      is_html = exportaction.eql?("download")
      
      validation_result = @fc_exporter.validate # Should return true if validated,  or fc_error
      if(validation_result.kind_of?(Fusioncharts::Exporter::FcError) )
        logger.info "Warnings"+validation_result.warnings
        logger.error "Errors="+validation_result.code2message
        Fusioncharts::Exporter::ErrorHandler.set_flash_err(validation_result,flash,is_html,@fc_exporter.meta)
        # Error has occurred, quit further processing
        redirect_to :action=>'error',:target=>target
        return
     end


    logger.info "Export Action="+ exportaction
      
    format = @fc_exporter.exportformat    
    handler =@fc_exporter.format_handler(format.upcase)
    
     if(handler.kind_of?(Fusioncharts::Exporter::FcError))
           Fusioncharts::Exporter::ErrorHandler.set_flash_err(handler,flash,is_html,@fc_exporter.meta)
          # Error has occurred, quit further processing
          redirect_to :action=>'error',:target=>target
         return
       end
    export_object,fc_error=handler.process_export(@fc_exporter.stream,@fc_exporter.meta,format)
    
     if(fc_error.kind_of?(Fusioncharts::Exporter::FcError))
        Fusioncharts::Exporter::ErrorHandler.set_flash_err(fc_error,flash,is_html,@fc_exporter.meta)
        # Error has occurred, quit further processing
        redirect_to :action=>'error',:target=>target
        return
     end
     logger.info("Processed using the Format Handler. Proceeding to download/save...")
    
    ext =@fc_exporter.extension(format)

    if(exportaction=="download")
      mime_type = @fc_exporter.mime_type(ext)
      logger.info("Setting mime type as "+mime_type)
        headers["content-type"]=mime_type
        if(target.downcase == "_self") 
          headers["Content-Disposition"]='attachment'
         else 
           headers["Content-Disposition"]='inline'
        end
        headers["filename"]=" " + filename +"."+ ext
      
        send_data(export_object, {:type => mime_type, :stream => true, :filename => " " + filename +"."+ ext})
       #render :content_type => 'application/octet-stream', :text => Proc.new {    |response, output|    
       # do something that reads data and writes it to output
       #export_object
       #}
          #~ #Testing 
        #~ f = File.open("C:/"+filename+"."+ext, 'wb');
        #~ f.write export_object
        #~ f.close
    else 
      # Save on server
       complete_file_path,displayPath, notice = @fc_exporter.determine_path_to_save
       handler.write_to_file(complete_file_path)
       logger.info "Saved to location on server: "+displayPath
       meta_values=Fusioncharts::Exporter::ErrorHandler.meta2qs(@fc_exporter.meta,displayPath)
       render :text=>"statusCode=1&statusMessage=successful"+notice+meta_values
      end
  end