var imgB = new Image();
imgB.src = "img/loyd/loyd.gif";
var noGame = 1;
var imgA = new Array(16);

function LinitA(p)
{
 for (var ik = 0; ik < 16; ik++)
 { 
  imgA[ik] = new Image();
  imgA[ik].src = eval(p + "pic" + ik).src;
 }
}

function LaCaso(p)
{
 var r;
 var i;
 var comodo = new Array(16);
 var vv = new Array(10);

 vv[0] = "15031105081302100604121400070901";
 vv[1] = "12060407140800130311151005020109";
 vv[2] = "06120515040110080013140207031109";
 vv[3] = "01060012091505040302141108071013";
 vv[4] = "09140204151311100503070106000812";
 vv[5] = "10040911060705081514131203020100";
 vv[6] = "05001208130209061115100701041403";
 vv[7] = "08130401151106100509120002140307";
 vv[8] = "04100614070012030209151305011108";
 vv[9] = "11091200150108060205140713030410";

 r = Math.floor(Math.random() * 10);
 for (i = 0; i < 16; i++) 
  comodo[i] = parseInt(vv[r].substring(2 * i, 2 * i + 2),10);

 for (i = 0; i < 16; i++)
 {
    if (comodo[i] != 15)
      eval(p + "pic" + i).src = imgA[comodo[i]].src;
    else
      eval(p + "pic" + i).src = imgB.src;
 }
 noGame = 0;
}

function LverificaFine(p)
{
 var i;
 var hk = 1;

 for (i = 0 ; i < 15; i++)
    if (eval(p + "pic" + i).src != imgA[i].src) hk = 0;
 return hk;
}

function LpicClick(n, p)
{
 var x;
 var y;
 var t;
 var b;
 var l;
 var r;

 if (noGame == 1) return;
 if (eval(p + "pic" + n).src == imgB.src) return;
 x = n % 4;
 y = Math.floor(n / 4);
 l = -1;
 r = -1;
 t = -1;
 b = -1;
 if (y==0)
 {
  if (x != 0) l = x - 1;
  if (x != 3) r = x + 1;
  b = 4 * (y + 1) + x;
 }
 if (y == 1 || y == 2)
   {
    if (x != 0) l = 4 * y + x - 1;
    if (x != 3) r = 4 * y + x + 1;
    b = 4 * (y + 1) + x;
    t = 4 * (y - 1) + x;
   }
 if (y == 3)
     {
        if (x != 0) l = 12 + x - 1;
        if (x != 3) r = 12 + x + 1;
        t = 4 * (y - 1) + x;
     }
 x = -1;
 if (b != -1)
    if (eval(p + "pic" + b).src == imgB.src) x = b;
 if (t != -1) 
    if (eval(p + "pic" + t).src == imgB.src) x = t;
 if (l != -1)
    if (eval(p + "pic" + l).src == imgB.src) x = l;
 if (r != -1)
    if (eval(p + "pic" + r).src == imgB.src) x = r;
 if (x == -1) return;
 eval(p + "pic" + x).src = eval(p + "pic" + n).src;
 eval(p + "pic" + n).src = imgB.src;
 if (LverificaFine(p) != 0)
 {
    eval(p + "pic" + n).src = imgA[15].src;
    noGame = 1;
 }
}

function creaLoyd(ss)
{
 var loyd = "L" + ss.substring(0, ss.length - 2);
 var LPic = "img/loyd/loyd" + ss.substring(ss.length - 2, ss.length) + "/";
 var ssPic;
 var kk;

 document.write("<table align=center cellpadding=0 cellspacing=0 border=0 width=300>");

 for (var i=0; i<4; i++)
 {
 	document.write("<TR>");
  	for (var j=0; j<4; j++)
   	{
     		kk=i*4+j;
     		ssPic = LPic + kk + ".jpg";
     		document.write("<TD><a href=\"javascript:LpicClick(" + kk + ", '" + loyd + "')\">");
     		document.write("<IMG name=\"" + loyd + "pic" + kk + "\" src=\"" + ssPic + "\" border=0 width=75 height=100></a><br></td>");
   	}
     	document.write("</TR>");
 }

 document.write("</table>");

 document.write("<center><form>");
 document.write("<input type=button value=\"Nuovo Gioco\" onClick=\"LaCaso('" + loyd + "')\">");
 document.write("</form></center>");

 LinitA(loyd);
}