Understanding the Hash Function Can someone please explain in detail the components of the final hash that determines the winner of the block?

My understanding is that the miners are taking 


The Merkle Root, 
The time stamp,  
The prior block's hash,  
Some other components??, along with  
A nonce that the miner's have to guess in order for the hash of all these components, using Sha256, to have at least 18 leading zeros.


My questions are:


Am I right in my understanding so far?
Can someone explain what the other components are and what order they are input into the hash function?
Using the data available on blockchain.info about each block, can I recreate the winning hash by inputing the same data into a Sha256 calculator?


Thanks.
From the Bitcoin.org Developer Documentation, a block header consists of a:


Version
Previous block header hash
merkle root
timestamp
nBits field
nonce


In that order. So as you say, the only component missing from your list is the version and the nBits field. The version is self explanatory, but the nBits field is not. What the nBits field does is encode the current target for the difficulty algorithm:


  to have at least 18 leading zeros.


Not always 18 zeroes. The number of leading zeros changes based on how quickly blocks have been found recently, in order to keep the block time at roughly 10 minutes average despite varying hashpower on the network. As more miners join, the hashrate increases, so the difficulty does too (i.e. more zeroes are required). Another way to think about the 0's, is that the output of the SHA256, as a number, must be less than some target number. That target is encoded in the nBits field. And yes, anyone can verify that the block header hashes to a number below the target, that is how other clients verify blocks are valid, because SHA256 always produces the same output from the same input - it is deterministic, a property of all useful hash functions.