var offsetX = 0
var offsetY = 0
var selectedObj
var selectedPieza = ""
var selectedPiezaIndex

var posicionX = 400 //posicion left del xxmap en página puzzle
var posicionY = 65 // poscion top del xxmap en página puzzle

function pieza(abbrev, fullName, x, y) {
	this.abbrev = abbrev
	this.fullName = fullName
	this.x = x
	this.y = y
	this.done = false
}
var piezas = new Array()
piezas[0] = new pieza("ae", "05",   1, 1)
piezas[1] = new pieza("bl", "30",  51, 1)
piezas[2] = new pieza("ao", "15", 101, 1)
piezas[3] = new pieza("ba", "19", 151, 1)
piezas[4] = new pieza("aa", "01", 201, 1)
piezas[5] = new pieza("bj", "28", 251, 1)
piezas[6] = new pieza("bo", "33",   1, 51)
piezas[7] = new pieza("al", "12",  51, 51)
piezas[8] = new pieza("br", "36", 101, 51)
piezas[9] = new pieza("ab", "02", 151, 51)
piezas[10] = new pieza("bg", "25", 201, 51)
piezas[11] = new pieza("ap", "16", 251, 51)
piezas[12] = new pieza("bn", "32",   1, 101)
piezas[13] = new pieza("bc", "21",  51, 101)
piezas[14] = new pieza("ac", "03", 101, 101)
piezas[15] = new pieza("be", "23", 151, 101)
piezas[16] = new pieza("aq", "17", 201, 101)
piezas[17] = new pieza("bh", "26", 251, 101)
piezas[18] = new pieza("ad", "04",  1, 151)
piezas[19] = new pieza("bi", "27",  51, 151)
piezas[20] = new pieza("an", "14", 101, 151)
piezas[21] = new pieza("bd", "22", 151, 151)
piezas[22] = new pieza("ah", "08", 201, 151)
piezas[23] = new pieza("bq", "35", 251, 151)
piezas[24] = new pieza("ak", "11",  1, 201)
piezas[25] = new pieza("ar", "18",  51, 201)
piezas[26] = new pieza("bb", "20", 101, 201)
piezas[27] = new pieza("af", "06", 151, 201)
piezas[28] = new pieza("bm", "31", 201, 201)
piezas[29] = new pieza("aj", "10", 251, 201)
piezas[30] = new pieza("bk", "29",   1, 251)
piezas[31] = new pieza("am", "13",  51, 251)
piezas[32] = new pieza("ag", "07", 101, 251)
piezas[33] = new pieza("bp", "34", 151, 251)
piezas[34] = new pieza("bf", "24", 201, 251)
piezas[35] = new pieza("ai", "09", 251, 251)

function getSelectedMap(e) {
	if (isNav) {
		var clickX = e.pageX
		var clickY = e.pageY
		var testObj
		for (var i = piezas.length - 1; i >= 0; i--) {
			testObj = document.layers[piezas[i].abbrev + "map"]
			if ((clickX > testObj.left) && (clickX < testObj.left + testObj.clip.width) && (clickY > testObj.top) && (clickY < testObj.top + testObj.clip.height)) {
				selectedObj = testObj
				if (selectedObj) {
					selectedPiezaLabel = document.xxmap.document.layers[piezas[i].abbrev + "label"]
					selectedPiezaIndex = i
					setZIndex(selectedObj, 100)
					return
				}
			}
		}
	} else {
		var imgObj = window.event.srcElement
		selectedObj = imgObj.parentElement.style
		if (selectedObj) {
			var PiezaName = imgObj.parentElement.id.substring(0,2)
			for (var i = 0; i < piezas.length; i++) {
				if (piezas[i].abbrev == PiezaName ) {
					selectedPiezaLabel = document.all(PiezaName + "label").style
					selectedPiezaIndex = i
					setZIndex(selectedObj,100)
					return
				}
			}
		}
	}
	selectedObj = null
	selectedPiezaLabel = null
	selectedPiezaIndex = null
	return
}
function dragIt(e) {
	if (selectedObj) {
		if (isNav) {
			shiftTo(selectedObj, (e.pageX - offsetX), (e.pageY - offsetY))
		} else {
			shiftTo(selectedObj, (window.event.clientX - offsetX), (window.event.clientY - offsetY))
		}
	}
}
function toggleEngage(e) {
	if (selectedObj) {
		release(e)	
	} else {
		engage(e)
	}
}
function engage(e) {
	getSelectedMap(e)
	if (selectedObj) {
		if (isNav) {
			offsetX = e.pageX - selectedObj.left
			offsetY = e.pageY - selectedObj.top
		} else {
			offsetX = window.event.offsetX - document.body.scrollLeft
			offsetY = window.event.offsetY - document.body.scrollTop
		}
		setBGColor(selectedPiezaLabel,"red")
	}
}
function release(e) {
	if (onTarget(e)) {
		setBGColor(selectedPiezaLabel, "green")
		piezas[selectedPiezaIndex].done = true
		if (isDone()) {
			show("congrats")
		}
	} else {
		setBGColor(selectedPiezaLabel, "#80E0FF")
		piezas[selectedPiezaIndex].done = false
		hide("congrats")
	}
	setZIndex(selectedObj, 0)
	selectedObj = null
	selectedPieza = null
}
function onTarget(e) {
	var x = piezas[selectedPiezaIndex].x + posicionX
	var y = piezas[selectedPiezaIndex].y + posicionY
	if (isNav) {
		var objX = selectedObj.pageX
		var objY = selectedObj.pageY
	} else {
		var objX = selectedObj.pixelLeft
		var objY = selectedObj.pixelTop
	}
	if ((objX >= x-2 && objX <= x+2) && (objY >= y-2 && objY <= y+2)) {
		shiftTo(selectedObj, x, y)
		return true
	}
	return false
}
function isDone() {
	for (var i = 0; i < piezas.length; i++) {
		if (!piezas[i].done) {
			return false	
		}
	}
	return true
}
function showHelp() {
	var objName = "help"
	shiftTo(objName, insideWindowWidth, 80)
	setZIndex(objName,1000)
	show(objName)
	intervalID = setInterval("moveHelp()", 1)
}
function moveHelp() {
	shiftBy("help",-5,0)
	var objectLeft = getObjectLeft("help")
	if (objectLeft <= (insideWindowWidth/2) - 150) {
		clearInterval(intervalID)
	}
}
function hideMe() {
	clearInterval(intervalID)
	hide("help")
	shiftTo("help", 100, 80)
}
function setNSEvents() {
	if (isNav) {
		document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE)
		document.onMouseDown = toggleEngage
		document.onMouseMove = dragIt
		document.help.captureEvents(Event.CLICK)
		document.help.onClick = hideMe
	}
}
function init() {
	if (isNav) {
		for (var i = 0; i< piezas.length; i++) {
			setBGColor((document.xxmap.document.layers[piezas[i].abbrev + "label"]),"#80E0FF")
		}
	} else if (isIE) {
		insideWindowWidth = document.body.scrollWidth
	}
}
function setWidth() {
	if (isIE) {
		insideWindowWidth = document.body.scrollWidth
	}
}
