//made by Vytautas Ziukas 


    var rulesShowing = true;


    var xArray = new Array(17);


    var yArray = new Array(17);


    var lotArray = new Array(17);


    var imgNormal = new Image(75, 75);


    


    var imgOk = new Image(75, 75);





    function Init()


    {


        imgNormal.src = "images/square.png";


        imgOk.src = "images/square_ok.png";


            


        //setting what nr in which lot


        for ( lot = 1; lot <=16; lot++)


            lotArray[lot] = 17-lot;





        //clear


        for ( lot = 1; lot <=16; lot++)


        {


            lotArray[lot] = 0;


        }


        


        //rnd


        for ( nr = 1; nr <=16; nr++)


        {


            do


            {


                rnd = randSimple(16)+1;


                if (lotArray[rnd] == 0)


                    lotArray[rnd] = nr;


            } while (lotArray[rnd] != nr)


        }


        


        


        //generating lot coordinates


        for ( y = 0; y < 4; y++)


            for ( x = 0; x < 4; x++)


            {


                pos = y * 4 + x + 1;


                xArray[pos] = x * 80 + 10;


                yArray[pos] = y * 80 + 30;


            }


        


        display();


        


        if (rulesShowing)


        {


            var rules = document.getElementById("Rules");


            rules.style.top = "350px";


            rules.style.left = "30px";


            rules.style.display = "";        


        }


    }


    


    function display()


    {


        correctCount = 0;


        //displaying boxes


        for ( lot = 1; lot <= 16; lot++)


        {


            var lotBox = document.getElementById("box" + lotArray[lot]); 


            var lotNr = document.getElementById("box"+ lotArray[lot] + "text"); 





            text = lotNr.innerHTML;        


            if (text == lot)


            {


                lotBox.src = "images/square_ok.png";


                //lotNr.style.color = "green";


                correctCount++;


            }  


            else


            {


                lotBox.src = "images/square.png";


                //lotNr.style.color = "blue";


            }


            


            if (lotArray[lot] != 16)


            {


                lotBox.style.position = "absolute";


                lotBox.style.top = yArray[lot]+"px";


                lotBox.style.left = xArray[lot]+"px";


                lotBox.style.display = "";





                lotNr.style.position = "absolute";


                lotNr.style.top = (yArray[lot]+7)+"px";


                shift = text >= 10 ? 10 : 20;


                lotNr.style.left = (xArray[lot]+shift)+"px";


                lotNr.style.display = "";  


            }


        }   


        if (correctCount == 16)


        {


            alert ("You WON !!!"); 


            Init();


        }


    }





    


    function selected( nr )


    {


        if (!rulesShowing)    


            move (nr);


    }


    


    function move (nr)


    {


        pos = -1;


        for (i=1; i<=16; i++)


            if (lotArray[i] == nr)


            {


                pos = i;


                break;


            }


            


        topNr = pos - 4;


        leftNr = pos - 1;


        rightNr = pos + 1;


        bottomNr = pos + 4;


        target = topNr > 0 && lotArray[topNr]==16 ? topNr :


                 leftNr > 0 && lotArray[leftNr]==16 ? leftNr :


                 bottomNr < 17 && lotArray[bottomNr]==16 ? bottomNr :


                 rightNr < 17 && lotArray[rightNr]==16 ? rightNr : -1;


                 


        if (target == -1)


            return;   


    


        lotArray[target] = nr;


        lotArray[pos] = 16;


    


        display();


    }


    


    


    


    function randSimple ( n )


    {


      return ( Math.floor ( Math.random ( ) * n ) );


    }


    


    


    function CloseRules()


    {


        var rules = document.getElementById("Rules");


        rules.style.display = "none";


        rulesShowing = false;     


    }