I have done this using Spry tabs. Essentially you have one big page that is broken into smaller 'pages'. You can ask a smaller set of questions per tab. The progress 'status' could probably use a javascript function to evaluate how many of the fields have values.
↧