If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Are you testing your code? I would highly recommend using a console like Firebug or Chrome's Dev Tools. This makes it easy to find simple problems - the console will literally tell you what, and where, the problem is. In this case, there's an uncaught syntax error in your script, which causes it to stop execution (which is why nothing seems to happen). When you wrote the characterProfile function, you left out the opening curly brace:

There are code editors that do the same things—syntax highlighting, error checking, autocompletion, code reference, and much much more.
Komodo Edit, for example (my favorite), supports quite a few different languages, works on Linux, Mac, or Windows, and is free(as in beer).

After you fix that error, your script seems to work, up to the point where you click on the [Profile] button. Look at the console, and you see this:

Uncaught TypeError: Cannot set property 'innerHTML' of null

Think about this:

[1] When you click the [Profile] button, it is supposed to run the characterProfile function.

[2] The characterProfile function does try to use the innerHTML property.

[3] Let's assume, for the moment, that this is where the problem is. If so, that means that p must be null.

[4] We defined p up at the top of the script: var p = document.getElementById( 'p' );.
If p is null, that means that getElementById couldn't find an element on the page with id=p (and so returned null instead).

[5] Is there an element on the page with an id of "p"? Nope. There's our problem.
In the example I showed you, I had a paragraph with id=p that I was using to hold the result of the function, but you have no such paragraph in your markup.

I have looked all around the script and now i have added the id for p but i dont understand where i should add the id for b

As you can see, adding an element with the id of "p" won't actually solve this — the problem I alluded to above is that, even if you add an element with the proper id (e.g., <p id=p></p>), it would be gone by the time you reach the point you need it because your previous functions overwrite the entire document body. You're erasing and replacing all of the page content on each button click. One possible solution (not the best, though, as you'll see below) would be to take the same approach as your other functions. Instead of trying to do p.innerHTML, do document.body.innerHTML again.

As far as b goes, that will require a little more planning. Any "#b" element you put on the page will also be overwritten by the time you call this function.

However, it's harder to say what to do because your "male" and "female" buttons are shown on the step before you call createProfile. You show the "Start by choosing your name!" screen, along with the M / F radios and a button that says [New World]. This button doesn't call the createProfile function, though, it calls the newWorld function. The newWorld function calls createProfile, but the radio buttons are already overwritten at this point, so there is no way to get their value: they're gone.

I would suggest taking a step back and re-thinking your program flow: go back to your design stage and plan out which screens need to come in which order, what resources/information each step will need from the previous steps, and how you plan to pass those resources between "screens."

How familiar are you with javascript? For example, do you know how to pass arguments to your functions? do you know how to create objects with methods? do you know what a controller is?

Your current approach of rewriting the entire body for each new screen will quickly become very difficult to manage as your program becomes more complex.