document.observe('dom:loaded', function() {
	$$('.star-box').invoke('observe', 'click', apuesta.bindAsEventListener(this, 'max_star'));
  $$('.multiple2').invoke('observe', 'click', apuesta_multiple);
});
window.simple_max_star = 2;
window.max_star = 2;

var toggle_columnas = function() {
  if ($$('.multiple .casilla-selected').length > 0 || $$('.multiple2 .casilla-selected').length > 0 ) {
    hide_columnas();
  } else {
    show_columnas();
  }
}

var cambia_max_generic = cambia_max;
var cambia_max = function(casilla) {
  if (casilla.up('.multiple')) cambia_max_generic(casilla);
  else {
    if (casilla.hasClassName('casilla-selected')) {
      window.max_star = casilla.innerHTML;
    } else {
      window.max_star = window.simple_max_star;
    }
  }
}

var calc_apuestas_generic = calc_apuestas;
var calc_apuestas = function() {
  var apuestas = calc_apuestas_generic()[window.max_star];
  if (!apuestas) apuestas = 1;
  return apuestas;
}

var azar_generic = azar;
var azar = function(event, max) {
	azar_generic(event, max);
	var item = event.element();
	if (item.id.match(/^azar-\d+$/)) {
		var column = $(item.id.replace('azar', 'star'));
		if (full_column(column.down('.negro-9'))) window.num_apuestas--;
		column.select('.casilla-selected').invoke('removeClassName', 'casilla-selected');
		var casillas = column.select('.negro-9');
		for(var i=0; i < window.max_star; ++i) {
			var rnd = Math.floor(Math.random() * casillas.length);
			toggle_casilla(casillas[rnd]);
			casillas.splice(rnd, 1);
		}
	}
}

var borrar_generic = borrar;
var borrar = function(event) {
	borrar_generic(event);
	var item = event.element();
	if (item.id.match(/^borrar-\d+$/)) {
		$(item.id.replace('borrar', 'star')).select('.casilla-selected').invoke('removeClassName', 'casilla-selected');
	}
}

var prepara_apuestas_generic = prepara_apuestas;
var prepara_apuestas = function() {
	var filled = prepara_apuestas_generic();
	var stars = $$('.star-box');
	var filled_stars = filled_boxes(stars, window.max_star, "estrellas");
	if (filled_stars.length == filled.length) {
		var numbers = $("apuestas").value.match(/N: [^ ]+/g);
		var stars = cadena_casillas(filled_stars, "E").match(/E: [^ ]+/g);
		$("apuestas").value = numbers.zip(stars, function(items) { return items.join(" "); }).join(" ");
	} else {
		throw "Debe rellenar numeros y estrellas en cada columna";
	}
}

function full_column(casilla) {
	var columna = casilla.up('.column-box');
	if (columna) var columna_stars = $(columna.id.replace('column', 'star'));
	else {
		var columna_stars = casilla.up('.star-box');
		if (columna_stars) var columna = $(columna_stars.id.replace('star', 'column'));
	}
	
	if (columna && columna_stars) {
		var casillas = columna.select('.casilla-selected').length;
		var estrellas = columna_stars.select('.casilla-selected').length;
		return casillas == window.max && estrellas == window.max_star;
	}
	return false;
}


