Ради интереса набросал. Остальной функционал очень легко докидывается.
<html>
<head>
<script>
window.onload = function(){
var viewWin = document.getElementById('view');
var imgArray = document.getElementById('preview').querySelectorAll('img');
var viewImg = document.createElement('img');
viewImg.height = 300;
viewImg.width = 300;
if(!viewImg.src){
viewImg.src = imgArray[0].src;
}
viewWin.appendChild(viewImg);
for(var i = 0; i < imgArray.length; i++){
imgArray[i].onclick = function(){
viewImg.src = this.src;
}
}
}
</script>
<style>
#view{
height: 300px;
width: 300px;
border: 1px solid #000;
margin-bottom: 30px;
}
#preview img{
height: 100px;
width: 100px;
}
</style>
</head>
<body>
<div id="view"></div>
<div id="preview">
<img src="http://demotivators.rublogs.org/wp-content/uploads/2010/02/716481_nu-davaj-rasskazhi-ej-pro-nasledovanie-klassov-v-javascript.jpg" />
<img src="http://demiart.ru/forum/uploads1/post-67980-1218433439.jpg" />
<img src="http://freebsd-services.com/wp-content/uploads/2009/08/sql-injection-database.jpg" />
</div>
</body>
</html>
P.S. а такой вопрос, как многие на форуме делают что бы код выполнялся сразу в песочнице?