I'm slightly confused as to the algorithm especially the extranonce part?
From what I understand (please correct me if I'm wrong)..after all the hashing work is done and the target level still not achieved one can change the nonce to achieve the needed '0s' in the output.
A double SHA256 hash of the block header is calculated. If the resulting hash value is not lower than the target difficulty, then the nonce (which is a value in the block header) is incremented. Then the double SHA256 hash is calculated again. If the resulting hash value is not lower than the target difficulty, then the nonce is incremented. This continues until either a hash value is found that is less than the target, or all 4,294,967,296 possible nonce values have been tried.
Is this the point where if nonce cannot achieve this the extranonce comes in?
That depends on the mining software. There are a few ways to adjust the header after all the nonce values have been attempted. The timestamp can be adjusted. The order of the transactions in the block can be manipulated, or the extranonce can be altered.
If so what is this extranonce and what changes happen here (eg are these random brute-force changes or calculated changes?)
extranonce is part of the input to the generation transaction. How it is adjusted depends on the miner or mining pool.
Also, I read somewhere (on this forum) that most of the time an extranonce is needed to be changed as most of the time the nonce doesn't achieve the desired difficulty (if I have understood the info above correctly), if this is the case should you just skip brute forcing the nonce and go on to change the extranonce in the first place?
After adjusting the extranonce the mining equipment tries all 4,294,967,296 possible nonce values again with the new block header. If that doesn't work, then the header is adjusted again and the mining equipment tries all 4,294,967,296 possible nonce values again with the new block header. This continues until someone finds a combination of block header and nonce value that result in a low enough hash value. It is faster and easier to change the nonce then to rebuild the merkle root (which must be done if the extranonce or transactions are adjusted). Therefore, it is always best to try all 4,294,967,296 possible nonce values before going to the effort of modifying the extranonce.
Lastly, in terms of %, what % takes most time (if you were to speak theoretically) to calculate (ie why does it take approx 10 minutes to get the correct output) is it the hashing (any particular part) or the nonce (or extranonce)?
Hope my questions make sense
It is impossible to know the result of a hash before you calculate it (just like it's impossible to know the result of rolling a die before you roll it). The difficulty is intentionally set so that it will take the entire world mining power on average 10 minutes to get lucky enough to stumble across a valid hash (much like I could create a dice game where the "difficulty" is the number of sixes you have to roll in a row in order to "Win". I could then adjust the "difficulty" by increasing or decreasing the number of sixes needed for a win.)