For the broadest audience you should design for 800 x 600. Even if people have larger, higher end monitors these days many people (like my parents) keep the screen resolution lower so the text is larger on the screen. When distributing over the internet to laptop or desktop computers, the screen resolution to target should be based on a balance between your audience's capabilities and your creative goals. So knowing your audience is key. It is better to go smaller and allow the design to grow out to fit larger screen resolutions than to go too big, where in many cases designs will not scale down for smaller resolutions.
VideoFlash is probably the best format to deliver video on the Web. It allows the video to play while loading, so you don't have to wait for the entire video to load. This is how quicktime and wma files work as well, but most people already have the flash pluggin installed.
Page DesignI always start by setting my screen resolution to the size I am designing for. Then I take a screen capture of the screen with the Web browser maximized. In photoshop I cut out the inside of the Web browser (where the page displays) and use that as my blank canvas. That way I know how wide the design can be, and I now what will show up immediately on the screen without scrolling down.
Graphic OptimizationAll Web graphics should be resized to 72 dpi. Use .jpg files for photo-based images and try to use .gif or .png files for information graphics or graphics that have a limited colour pallete.
Programming costs may varyThe best way to approach programming of the site is to get your project brief and sitemap together and then define the functions of the site on a fairly granular level. For example, if you want a blog in your project with file uploads - describe the way it should work, find examples of this functionality online and reference them in what is called a 'functional specification'. Then you have all the materials together to shop it around and compare quotes. You could put a post on craigs list and see who answers.
File uploadsAllowing people to upload files to a Web site can be tricky. That functionality is supported through server programming languages like php, .aspx or .cfm technologies which work with html. There are many 'open source' programs out there that can help with this type of functionality.