Hola !!!

deseo enlistar todos los campos existentes en un formulario y sus valores (que hayan sido escritos por el usuario), por ejemplo para el formulario:
Código:
<form id="formulario" name="formulario">
<input type="text" name="Nombre" id="Nombre" />
<input type="text" name="Apellido" id="Apellido" />
<input type="text" name="Ciudad" id="Ciudad" />
<select name="Promocion" id="Promocion">
<option value="1">Promo 1</option>
<option value="2">Promo 2</option>
<option value="3">Promo 3</option>
</select>
</form>
Debería devolverme:
Nombre : Juan
Apellido : Zaragoza
Ciudad : Madrid
Promocion : 3
*** Suponiendo que el usuario haya escrito Juan, Zaragoza, Madrid y haya seleccionado PROMO 3 en el combobox...
¿Alguien podría darme una ayudadita?, he intentado con el siguiente código pero no se que hacer para formar la lista e identificar si es checkbox o input... o estoy muy perdido la verdad...:
Código:
var campos = document.forms["formulario"].elements;
for (i=0; i<elementos.length; i++){
aqui codigo para formar lista (Según)
}
}