// Näitä voi muokata
var useAnimations = true
var blockMoveDelay = 20
var blockMoveStep = 8
var cellSpacing = 1
var showDebugMessages = false // voi toimia tai olla toimimatta...
// Ei-muutettavat muuttujat
var totalBlocks = 0
var emptySlot = 0
var puzzleSolved = false
var puzzleCols = 3
var puzzleRows = 3
var puzzleBlockWidth = 0
var puzzleBlockHeight = 0
var blockIsMoving = false
var blockX = new Array()
var blockY = new Array()
var slot = new Array()
var menuURL = ""
var menuCols = 3
var menuRows = 3
var menuZoom = 1
var menuMix = 3
// ------------------------------------------------------------------------------------------
function initializeMenu() {
// Alustetaan valikon HTML
var menuHTML = ""
menuHTML += "
"
/* vanha
menuHTML += "Virhe kuvan latauksessa.
Maksimihakuaika ylittyi.
"
}
// Kun kuvaa ei vielä löytynyt
else {
// Ylikirjoitetaan ajastin
var timer1 = setTimeout("startImageCheckLoop()", 500)
// Muutetaan lataustekstiä
document.getElementById('pagecontent').innerHTML="Haetaan kuvan tietoja...
"
}
// Lisätään sekunteja
c++
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
function initializePuzzle(imageURL,w,h,cols,rows,zoom,mix) {
// Tarkistetaan, että jako on vähintään 3x3
if (cols<3) { cols = 3 }
if (rows<3) { rows = 3 }
// Siirretään annetut tiedot globaaleihin muuttujiin myöhempää käyttöä varten
puzzleCols = cols
puzzleRows = rows
// Merkitään ratkaisemattomaksi
puzzleSolved = false
// Nollataan taulun HTML
var puzzleHTML = ""
// Haetaan kuvan leveys ja korkeus
var puzzleWidth = w
var puzzleHeight = h
// Tarkistetaan zoomaus
if (zoom==0) { // ½x zoom
puzzleWidth = (puzzleWidth-(puzzleWidth%2))/2
puzzleHeight = (puzzleHeight-(puzzleHeight%2))/2
}
if (zoom==2) { // 2x zoom
puzzleWidth = puzzleWidth * 2
puzzleHeight = puzzleHeight * 2
}
// Lasketaan yhden ruudun leveys
var blockWidth = (puzzleWidth-(puzzleWidth%cols))/cols
var blockHeight = (puzzleHeight-(puzzleHeight%rows))/rows
// Siirretään annetut tiedot globaaleihin muuttujiin myöhempää käyttöä varten
puzzleBlockWidth = blockWidth
puzzleBlockHeight = blockHeight
// Lasketaan kuinka paljon reunoilta leikataan ylimääräistä
var cropLeft = ((puzzleWidth%cols)-((puzzleWidth%cols)%2))/2
var cropTop = ((puzzleHeight%rows)-((puzzleHeight%rows)%2))/2
// Lasketaan käytössä olevien blokkien kokonaismäärä
totalBlocks = (cols*rows)-1
emptySlot = totalBlocks
// Lasketaan blokkien koordinaatit valmiiksi taulukkoon
var i = 0
var j = 0
var block = 0
for (i=0; i