/**
 *
 */
 
function emptySpace(color) {
	return (color == "white" || color == "gray" || color == "");
}
 
function checkCompleted(direction, row, col) {
  var rows = document.getElementById('rows').value;
  var cols = document.getElementById('cols').value;	
	var postfix;
	var end;
	if (direction) {
		postfix = 'c';
		end = rows;
	} else {
		postfix = 'r';
		end = cols;
	}
	var lastcolor = "white";	
	var buf = 0;
	var currentBlock = 0;	
	var legend = document.getElementById("l"+postfix+((direction)?col:row)+"_"+currentBlock);
	for (index = 0; index < end; index++) {		
		if (legend == null)
			return;		
		legend.style.backgroundColor = "";
		var color;
		if (direction)
			color = document.getElementById('grid'+index+'_'+col).style.backgroundColor;
		else
			color = document.getElementById('grid'+row+'_'+index).style.backgroundColor;
		if (!emptySpace(color) && color == lastcolor) {
			buf++;
		} else {
			if (buf > 0) {
				if (buf == legend.innerHTML) {
					if (lastcolor == legend.style.color)
						legend.style.backgroundColor = "#4CC552";
					currentBlock++;
					var legend = document.getElementById("l"+postfix+((direction)?col:row)+"_"+currentBlock);
				}
			}
			if (!emptySpace(color)) {
				lastcolor = color;
				buf = 1;
			} else
				buf = 0;
		}
	}
	if (buf > 0)
		if (buf == legend.innerHTML && lastcolor == legend.style.color) {			
			legend.style.backgroundColor = "#4CC552";	
		}
}

/**
 * Changes value of item in field
 */ 
function gcv(row, col) {
  var object = document.getElementById('grid'+row+'_'+col);
	if (object.style.backgroundColor == "gray" || object.style.backgroundColor == "")
		if (document.getElementById('griddlerActualColor').style.backgroundColor != "")	
			object.style.backgroundColor = document.getElementById('griddlerActualColor').style.backgroundColor;
		else
			object.style.backgroundColor = "white";
	else
		object.style.backgroundColor = "gray";	
	checkCompleted(false, row, col);
	checkCompleted(true, row, col);	
}

function setActualColor(object) {
	document.getElementById('griddlerActualColor').style.backgroundColor = object.style.backgroundColor;
}

function solution(id, imagewidth, imageheight) {	
	window.open('/solutionGriddler.php?id='+id+'&type=griddler&width='+imagewidth+'&height='+imageheight, '', 'location=0,status=0,scrollbars=1,width=600,height=600');
}

function clearGrid(rows, cols) {	
	var i;
	var j;
	for (i = 0; i < rows; i++) {
		for (j = 0; j < cols; j++) {
			document.getElementById('grid'+i+'_'+j).style.backgroundColor = "gray";
		}
	}
	var spans = document.getElementsByTagName('span');
	for (i = 0; i < spans.length; i ++) {
		spans[i].style.backgroundColor = "";
	}
}

function fillWhite(rows, cols, color) {
	var i;
	var j;
	for (i = 0; i < rows; i++) {
		for (j = 0; j < cols; j++) {
			var field = document.getElementById('grid'+i+'_'+j);
			if (field.style.backgroundColor == "" || field.style.backgroundColor == "gray")
			field.style.backgroundColor = color;
		}
	}
}

function printGriddler(rows, cols) {
	window.print();
}

function showHelp(category) {
	window.open('/help/pomoc-krizovky.html#'+category, '', 'location=0,status=0,scrollbars=1,width=600,height=600');
}

function downloadLegend(id) {
	    location.href='/griddlerLegend.php?type=griddler&id='+id;
    }