Buongiorno a tutti!

Sono uno studente di ingegneria, ho implementato una mezza scacchiera per la dama in jQuery. Ora che sono quasi a fine progetto e gli esami incombono vengo a scoprire che il progetto deve essere presentato in javascript puro che io non conosco a pieno. Qualcuno è in grado di darmi una mano per convertire il codice che ho buttato giù fino ad ora?

Logica di generazione della scacchiera e delle pedine (già convertita in Javascript e trascritta per completezza)
codice:
	var Turno=1;
	
	
	function creaScacchiera() { 
	var row=1;
	for (i=0;i<32;i++){
	   var newdiv = document.createElement('div');
	   newdiv.innerHTML += i;
	   newdiv.setAttribute('id', i);   
	   newdiv.setAttribute("class","casella");
	   newdiv.className += " "+'row'+row;
		if (i%4==3) {++row;}

		if (i%8==0)
		{
			   newdiv.className += " capo";
		}
				if (i%8==7)
		{
			   newdiv.className += " capo_dx";
		}

		if (i<12)
		{
			   newdiv.className += " occupato";
   			   newdiv.innerHTML +='<div class="pedina bianchi" id="p'+i+'" onClick="cliccaPedina()"></div>'

		}
		else if (i>19)
		{
			   newdiv.className += " occupato";
			   newdiv.innerHTML +='<div class="pedina neri" id="p'+i+'"></div>'
		}
		var schacchiera = document.getElementById('container');
	   schacchiera.appendChild(newdiv);
   }
}

creaScacchiera();
	/*
for (i=0;i<32;i++){
	$('#container').append('<div class="casella" id="'+i+'">'+i+'</div>');
		if (i%8==0)
	{
		$('#'+i+'').addClass('capo');
	}
	if (i<12)
	{
		$('#'+i+'').append('<div class="pedina bianchi" id="p'+i+'"></div>').addClass('occupato');
	}
	else if (i>19)
	{
		$('#'+i+'').append('<div class="pedina neri" id="p'+i+'"></div>').addClass('occupato');
	}
}
	*/
Pedina mangiabile o non mangiabile.
codice:
function checkMangiabile(elemento,pedina)
	{
			var idc = Number($('#'+elemento+'').attr('id'));  // idc = id della casella potenzialmente mangiabiel.
			var riga = ($('#'+elemento+'').attr('class')).substr(11,1);
			var capo = ($('#'+elemento+'').attr('class')).substr(13,4);
			var mangiante = Number($('#p'+pedina+'').parent().attr('id')); // Id casella della pedina mangiante

	if (pedina <12) //OVVERO BIANCA
	{

		if($('#'+elemento+' > div').hasClass('neri'))
		{

				if (Number(riga)%2==1) // Se riga dispari
					{
						{
							$('#'+(idc+(idc-mangiante-1))+'').not('.occupato').addClass('possible');	
						}

					}
				else // se pari
					{
							$('#'+(idc+(idc-mangiante+1))+'').not('.occupato').addClass('possible');	
					}
		}
	}
	else //OVVERO NERA
	{
		if($('#'+elemento+' > div').hasClass('bianchi'))
		{
				if (Number(riga)%2==1)
					{
						{
							$('#'+(idc+(idc-mangiante+1))+'').not('.occupato').addClass('possible');	
						}

					}
				else
					{
							$('#'+(idc+(idc-mangiante-1))+'').not('.occupato').addClass('possible');	
					}
		}
	}
	//Bisogna Verificare se nei dintorni vi sono pedine avversarie mangiabili, a quel punto bisogna marcare la tabella di destinazione come 'possibile';
	}
	

	function nuovoTurno()
	{
    document.getElementById('info').innerHTML = "Turno n° "+ ++Turno;
	}
Logica di riconoscimento della pedina selezionata ed illuminazione delle destinazioni possibili.
codice:
	$(".pedina").click(function () {
		$(".casella").removeClass('clicked');
	//	$(".casella").removeClass('mangiabile'); superflua
		$(this).parent().addClass('clicked');
		var idc = Number($(this).parent().attr('id')); // Idc = id della casella. Casting esplicito a valore numerico (per avitare erronea concatenazione 14+4 = 144)
		$(".casella").removeClass('possible');
		var pedina = ($(this).attr('id')).substring(1); // Prendo id pedina.
		var riga = ($(this).parent().attr('class')).substr(11,1);
		var capo = ($(this).parent().attr('class')).substr(13,4);
		if (pedina<12)
		{
			if(Turno%2==1)
			{
				if (Number(riga)%2==1)
					{
					if (capo=="capo") // Se sono ad un estremo
						{
							$('#'+(idc+4)+'').not('.occupato').addClass('possible'); // Metto occupato se l'id della casella +4 è non occupato.
							if ($('#'+(idc+4)+'').hasClass('occupato'))
							{
							checkMangiabile((idc+4),pedina);
							}
						}
					else
						{
							$('#'+(idc+4)+', #'+(idc+3)+'').not('.occupato').addClass('possible');
							if($('#'+(idc+4)+'').hasClass('occupato'))
							{
								checkMangiabile((idc+4),pedina);
							}
							if($('#'+(idc+3)+'').hasClass('occupato'))
							{
								checkMangiabile((idc+3),pedina);
							}
						}
					}
				else // Riga pari
					{
					if (capo=="capo")
						{
							$('#'+(idc+4)+'').not('.occupato').addClass('possible');
							if ($('#'+(idc+4)+'').hasClass('occupato'))
							{
							checkMangiabile((idc+4),pedina);
							}

						}
					else{

						$('#'+(idc+5)+', #'+(idc+4)+'').not('.occupato').addClass('possible');
						if($('#'+(idc+5)+'').hasClass('occupato'))
						{
							checkMangiabile((idc+5),pedina);
						}
						if($('#'+(idc+4)+'').hasClass('occupato'))
						{
							checkMangiabile((idc+4),pedina);
						}
						}
					}
			}
		}
		if (pedina>19)
		{
			if(Turno%2==0)
			{


				if (Number(riga)%2==0)
					{
					if (capo=="capo")
						{
							$('#'+(idc-4)+'').not('.occupato').addClass('possible');
							if ($('#'+(idc-4)+'').hasClass('occupato'))
							{
							checkMangiabile((idc-4),pedina);
							}

						}
					else
						{
							$('#'+(idc-4)+', #'+(idc-3)+'').not('.occupato').addClass('possible');
							if($('#'+(idc-4)+'').hasClass('occupato'))
							{
								checkMangiabile((idc-4),pedina);
							}
							if($('#'+(idc-3)+'').hasClass('occupato'))
							{
								checkMangiabile((idc-3),pedina);
							}

						}
					}
				else
					{
					if (capo=="capo")
						{
							$('#'+(idc-4)+'').not('.occupato').addClass('possible');
							if ($('#'+(idc-4)+'').hasClass('occupato'))
							{
							checkMangiabile((idc-4),pedina);
							}

						}
					else{
						$('#'+(idc-5)+', #'+(idc-4)+'').not('.occupato').addClass('possible');
						if($('#'+(idc-5)+'').hasClass('occupato'))
						{
							checkMangiabile((idc-5),pedina);
						}
						if($('#'+(idc-4)+'').hasClass('occupato'))
						{
							checkMangiabile((idc-4),pedina);
						}
						}
						
					}
			}
		}
    });
Logica di spostamento delle pedine:
codice:
	$(".possible").live("click",function () {
		$('.casella').removeClass('possible');
		$('.casella').removeClass('mangiabile');
		$('.clicked div').appendTo(this); // Sposta la pedina da un div all'altro.
		$('.clicked').removeClass('occupato');
		$('.clicked').removeClass('clicked');
		$(this).addClass('occupato');
		nuovoTurno();
			if(Turno%2==1)
			{
				document.getElementById('info_game').innerHTML = "Tocca al Bianco";
			}
			else
			{
				document.getElementById('info_game').innerHTML = "Tocca al Nero";
			}
    });
Grazie in anticipo.
Mattia