var divs;
windowOnloadAdd(function(){
	if(CURRENT_ACTION == 'apuesta-detalles'){
		if(OPEN){
			divs = getOptionDivs();
			for(n in divs){
				divs[n].onmouseover = function(){mouseOverOption(this);};
				divs[n].onmouseout	= function(){mouseOutOption(this);};
				divs[n].onclick		= function(){clickOption(this);};
			}
		}
	}
});

var target;

function updated(arr){
	if(!arr['error'])
		ajaxRequest('apuestas', 'obtener-imagen-participante',{'id':arr['id'], 'fila':arr['fila']}, imageUpdated);
	else alert(arr['error']);
}
var ligaSelectorEdit = null;

function fillSelector(arr){
	if(this.ligaSelectorEdit){
		if(arr['data'])
			for(var i in arr['data'])
				this.ligaSelectorEdit.add(arr['data'][i]['id'], arr['data'][i]['value']);
	}
}

function fillSelectPaises(arr){
	if(arr['status']){
		$('campoPais'+arr['fila']).innerHTML = arr['html'];
	}else alert(arr['error']);
}

function imageUpdated(arr){
	if(arr['status']){
		$('img'+arr['fila']).src = arr['imagen'];
		if(arr['icono']){
			$('icono'+arr['fila']).src = arr['icono'];
		}
	}
	else alert(arr['error']);
}

function mouseOverImagen(fila){
	var div = $('imagenDiv'+fila);
	div.style.visibility = 'visible';
}

function mouseOutImagen(fila){
	var div = $('imagenDiv'+fila);
	div.style.visibility = 'hidden';
}

function mouseOverIcono(fila){
	var div = $('iconoDiv'+fila);
	div.style.visibility = 'visible';
}

function mouseOutIcono(fila){
	var div = $('iconoDiv'+fila);
	div.style.visibility = 'hidden';
}

function agregarOpcion(){
	var limite = 5, disable = false;
	if(CURRENT_ACTION == 'editar'){
		limite = 5;
		disable = !$('modificar').value;
	}
	// Tabla
	var tabla = $('tabla');
	var ultimaFila = tabla.rows.length-2;
	// Renglon
	//var iteracion = ultimaFila - 2;
	$('total').value = parseInt($('total').value)+1;
	var iteracion = $('total').value;
	var row = tabla.insertRow(ultimaFila);
	// Primer celda, texto
	var celda1 = row.insertCell(0);
	var spanOpcion = $c('label');
	spanOpcion.className = 'tag';
	spanOpcion.disabled = disable;
	$a(spanOpcion, $tN('Opción #'+iteracion));
	$a(celda1,spanOpcion);
	// Segunda celda, select de participante/equipo
	var celda2 = row.insertCell(1);
	var sel = $c('select');
	sel.className = "w50";
	sel.name = 'opcion' + iteracion;
	sel.id = 'opcion' + iteracion;
	sel.disabled = disable;
	var opciones = $('opcion1').options;
	for(i=0;i<opciones.length;i++){
		var newOption = $c('option');
		newOption.text = opciones[i].text;
		newOption.value = opciones[i].value;
		try{sel.add(newOption, null);} 
		catch(ex){sel.add(newOption);}
	}
	celda2.appendChild(sel);
	if((tabla.rows.length-limite) > 2){
		$('empate').disabled = true;
	}else if((tabla.rows.length-limite) == 2){
		$('empate').disabled = false;
	}
}

function quitarOpcion(){
	var limite = 5;
	var tabla = $('tabla');
	var ultimaFila = tabla.rows.length-2;
	if(CURRENT_ACTION == 'nueva')
		if(ultimaFila > 6){
			tabla.deleteRow(ultimaFila - 1);
			$('total').value = parseInt($('total').value)-1;
		}
	if (CURRENT_ACTION == 'editar') {
		if(ultimaFila > 7){
			tabla.deleteRow(ultimaFila - 1);
			$('total').value = parseInt($('total').value)-1;
		}
		limite = 6;
	}
	if(parseInt($('total').value) != 2){
		$('empate').disabled = true;
	}else if(parseInt($('total').value) == 2){
		var activo = true;
		if($('modificar')){
			if(!$('modificar').checked){
				activo = false;
			}
		}
		if(activo){
			$('empate').disabled = false;
		}
	}
}
function enterScore(id_opcion){
	if(confirm('Introduce el score del evento y verifica bien los datos.')){
		var form = $('form');
		var checks = form.getElementsByTagName('input');
		for(var i=0; i < checks.length; i++){
			if(checks[i].type == 'radio')
				checks[i].disabled = false;
		}
		$('opcion'+id_opcion).checked = "checked";
		show($('score_input'));
	}
}
function confirmGanador(){
	var m, aceptar = true;
	var i = 1;
	while($('m'+i)){
		m = $('m'+i).value;
		if(m == "" || isNaN(m)){
			aceptar = false;
		}
		i++;
	}
	if(aceptar){
		if (confirm('¿Los datos del marcador final son correctos?')){
			if (confirm('Los puntos de los usuarios que apostaron serán actualizados en este momento \n¿Desea continuar?')){
				return true;
			} 
		}
	}else alert("Llena correctamente todos los campos antes de confirmar.");
	return false;
}
function confirmScore(){
	var m, aceptar = true, winner = false;
	var i = 1;
	while($('m'+i)){
		m = $('m'+i).value;
		if(m == "" || isNaN(m)){
			aceptar = false;
		}
		if($('opcion'+i).checked == true) winner = true;
		i++;
	}
	if(aceptar && winner){
		if (confirm('¿Los datos del marcador final son correctos?')){
			disabledDiv({ element: $('score_input'), bgcolor: '#dedede', disable: true });
			return true;
		}
	}else alert("Llena correctamente todos los campos antes de confirmar y seleccionar un ganador.");
	return false;
}
function editScoreInit(){
	$('edit_btn_container').style.display = 'none';
	$('score_input').style.display = 'block';
}
function cancelEditScore(){
	$('score_input').style.display = 'none';
	$('edit_btn_container').style.display = 'block';
}
function doneEditScore(status, message){
	if(status){
		window.location.href = window.location.href;
		return;
	}
	disabledDiv({ element: $('score_input'), disable: false });
	alert(message);
}

var cancelada = false;
function confirmCancel(id){
	if(confirm('¿Estas seguro de cancelar la apuesta?')){
		var form = $('form');
		var checks = form.getElementsByTagName('input');
		for(var i=0; i < checks.length; i++){
			if(checks[i].type == 'radio')
				checks[i].disabled = true;
		}
		show($('score_input'));
		cancelada = true;
	}
}

function setupCalendar(){
	if($('cerrar_show')){
		Calendar.setup(
			{
				onSelect 	: changeDate,
				showsTime	: true,
				button 		: "cerrar_show"
			}
		);
	}
}

function changeDate(calendar){
	if(calendar.dateClicked){
		$('cerrar_show').value = calendar.date.print("%A, %e de %B de %Y, %l:%M %P");
		$('cerrar').value = calendar.date.print("%s");
	}
}

function restoreClassNames(){
	if($('cerrar_show'))
		$('cerrar_show').className = 'w75';
	$('sports_input').className = 'input_sel';
	$('events_input').className = ' input_sel';
	var i = 1;
	while($('opcion'+i)){
		$('opcion'+i).className = 'w50';
		i++;
	}
}
function editQuiniela(){
	document.form.submit();
}
function sendApuesta(){
	restoreClassNames();
	var valid = true, i=1, opciones = new Array();
	if($('cerrar_show')){
		if ($('cerrar_show').value == '') {
			valid = false;
			$('cerrar_show').className += ' required';
			alert('La apuesta debe tener una fecha de cierre.')
		}
	}
	if ($('sports_hidden').value == '') {
		valid = false;
		$('sports_input').className += ' required';
		alert('La apuesta debe tener un deporte relacionado.')
	}
	if ($('events_hidden').value == '') {
		valid = false;
		$('events_input').className += ' required';
		alert('La apuesta debe tener un evento relacionado.')
	}
	if($('puntos_input')){
		if(!isNumber($('puntos_input').value)){
			valid = false;
			$('puntos_input').className += ' required';
			alert('El valor de la quiniela debe ser numérico.')
		}
	}
	while($('opcion'+i)){
		var indice = $('opcion'+i).selectedIndex;
		if(!checkValueInArray(opciones, indice))
			opciones.push(indice);
		else{
			valid = false;
			$('opcion'+i).className += ' required';
			alert('No se pueden repetir los participantes.')
		}
		i++;
	}
	if(valid) document.form.submit();
}

function isNumber(n) {
	return !isNaN(parseFloat(n)) && isFinite(n);
}

function checkValueInArray(array, value){
	for(var i=0; i<array.length; i++){
		if(array[i] == value) return true;
	}
	return false;
}
function enableEditOptions(chk){
	if (chk){
		if(chk.checked == true){
			if(!confirm('¿Seguro que quieres editar las opciones? Si se editan las opciones se tendrá que regresar el dinero a los que han apostado hasta el momento.'))
				chk.checked = false;
		}else{
			chk.checked = false;
		}
	}
	if(!chk||chk.checked){
		if($('empate')){
			$('empate').disabled = false;
		}
		if($('botonAgregar')){
			$('botonAgregar').disabled = false;
		}
		if ($('botonQuitar')){
			$('botonQuitar').disabled = false
		};
		var selects = $('tabla').getElementsByTagName('select');
		for(n in selects){
			selects[n].disabled = false;
		}
	}else{
		if($('empate')){
			$('empate').disabled = true;
		}
		if($('botonAgregar')){
			$('botonAgregar').disabled = true;
		}
		if ($('botonQuitar')){
			$('botonQuitar').disabled = true
		};
		var selects = $('tabla').getElementsByTagName('select');
		for(n in selects){
			selects[n].disabled = true;
		}
	}
}
function getOptionDivs(){
	var optionDivs = new Array();
	optionDivs.push($('opcion1'));
	optionDivs.push($('opcion2'));
	if(EMPATE)
		optionDivs.push($('empate'));
	for(c=0;c<optionDivs.length;c++){
		optionDivs[c].selected = false;
		optionDivs[c].originalClass = optionDivs[c].className;
		optionDivs[c].opcion = optionDivs[c].childNodes[optionDivs[c].childNodes.length-2].value;
		optionDivs[c].nombre = (c<=1) ? $('op'+(c+1)+'nombre').innerHTML : 'Empate';
	}
	return optionDivs;
}
function mouseOverOption(div){
	if(!div.selected)
		div.className += ' over';
}
function mouseOutOption(div){
	if(!div.selected)
		div.className = 'part';
}
function clickOption(div){
	if(this.divs){
		for(n in divs){
			if(divs[n]==div){
				if(!div.selected){
					div.selected = true;
					var cant = $('cantidad_input').value;
					if(cant != '' && cant != 0){
						var message = 'Vas a Apostar <strong>'+cant+' Cr&eacute;ditos</strong> al ';
						if(div.nombre != 'Empate') message += 'equipo <b>'+div.nombre+'</b>';
						else message += '<b>'+div.nombre+'</b>';
						$('confirm_message').innerHTML = message;
					}else{
						$('confirm_message').innerHTML = 'Selecciona tu resultado e ingresa la cantidad a apostar.';
					}
				}else{
					div.selected = false;
					$('confirm_message').innerHTML = 'Selecciona tu resultado e ingresa la cantidad a apostar.';
				}
				continue;
			}
			divs[n].selected = false;
			divs[n].className = divs[n].originalClass;
		}
	}
	document.getElementById('id_opcion').value = div.opcion; 
	div.className += ' selected';
}
function placeBet(){
	var opc=null, cantidad=0, none=true;
	for(n in this.divs){
		if(this.divs[n].selected){
			none = false;
			opc = this.divs[n].opcion;
		} 
	}
	if(none){
		$('confirm_message').innerHTML = 'Se debe seleccionar al menos uno de los participantes.<br />';
		return;
	}
	cantidad = $('cantidad_input').value;
	if(cantidad <= 0 || cantidad == '' || isNaN(cantidad)){
		$('confirm_message').innerHTML = 'La cantidad a apostar debe ser mayor a 0.';
		return;
	}
	if(cantidad > AVAILABLE_MONEY){
		$('confirm_message').innerHTML = 'No se puede apostar más del dinero disponible.';
		return;
	}
	$('apuesta_form').submit();
}
function soloNumeros(e){
	var key;
	var keychar;
	if (window.event) key = window.event.keyCode;
	else if (e)	key = e.which;
	else return true;
	keychar = String.fromCharCode(key);
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
		return true;
	else if ((("0123456789").indexOf(keychar) > -1))
		return true;
	else return false;
}
function checkInputCantidad(){
	var valor = $('cantidad_input').value;
	if(isNaN(valor)) return false;
	if(valor > AVAILABLE_MONEY)
		$('cantidad_input').value = AVAILABLE_MONEY;
	var selectedDiv = null;
	if(this.divs){
		for(n in divs){
			if (divs[n].selected) {
				selectedDiv = divs[n];
				break;
			}
		}
	}
	valor = $('cantidad_input').value;
	if(selectedDiv && valor > 0){
		var message = 'Vas a Apostar <strong>'+valor+' Cr&eacute;ditos</strong> al ';
		if(selectedDiv.nombre != 'Empate') message += 'equipo <b>'+selectedDiv.nombre+'</b>';
		else message += '<b>'+selectedDiv.nombre+'</b>';
		$('confirm_message').innerHTML = message;
	}else{
		$('confirm_message').innerHTML = 'Selecciona tu resultado e ingresa la cantidad a apostar.';
	}
}
function stopRKey(evt){
	var evt = (evt) ? evt : ((event) ? event : null);
	var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
	if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
}
/*New Functions*/
function disableSportInputs(id,value){
	$('sports_input').disabled="disabled";
	$('sports_icon_main').className="btn_all disabled_div";
	$('sports_icon_main').href="javascript:";
}

function disableEventInputs(id,value){
	$('events_input').disabled="disabled";
	$('events_icon_main').className="btn_all disabled_div";
	$('events_icon_main').href="javascript:";
}

function disablePeriodInputs(id,value){
	$('periods_input').disabled="disabled";
	$('periods_icon_main').className="btn_all disabled_div";
	$('periods_icon_main').href="javascript:";
}

function enableSportInputs(id,value){
	$('sports_input').disabled="";
	$('sports_icon_main').className="btn_all";
	$('sports_icon_main').href="javascript:sportSelector.autoComp.request('');";
}

function enableEventInputs(){
	$('events_input').disabled="";
	$('events_icon_main').className="btn_all";
	$('events_icon_main').href="javascript:eventSelector.autoComp.request('', $('current_cascade_hidden').value);";
}

function enablePeriodInputs(){
	$('periods_input').disabled="";
	$('periods_icon_main').className="btn_all";
	$('periods_icon_main').href="javascript:periodSelector.autoComp.request('', $('current_cascade_hidden').value);";
}

function addedSport(){
	disableSportInputs();
	enableEventInputs();
	$('current_cascade_hidden').value = $('sports_hidden').value; 
}

function addedEvent(){
	disableEventInputs();	
	$('current_cascade_hidden').value = $('events_hidden').value; 	
	ajaxRequest(periodSelector.opt.section,periodSelector.opt.action,{check:true, dependsOn:$('events_hidden').value},hasPeriods,false); 
}

function hasPeriods(resp){
	if(resp){
		$('periodTable').style.display = 'block';
		enablePeriodInputs();
	}
}

function addedPeriod(){
	disablePeriodInputs();
}

function deletedSport(){
	if($('events_hidden').value != ''){
		eventSelector.remove($('events_hidden').value);		
		if($('periods_hidden').value != '')
			periodSelector.remove($('periods_hidden').value);					
	}
	$('periodTable').style.display = 'none';
	disableEventInputs();
	enableSportInputs();
}

function deletedEvent(){
	if($('periods_hidden').value != '')
		periodSelector.remove($('periods_hidden').value);
	$('periodTable').style.display = 'none';
	disablePeriodInputs();
	enableEventInputs();	
	$('current_cascade_hidden').value = $('sports_hidden').value;	
}

function deletedPeriod(){	
	enablePeriodInputs($('events_hidden').value);	
	$('current_cascade_hidden').value = $('events_hidden').value;
}

function navigateApuestas(start){
	if (start != -1) {
		$('nav_msg').innerHTML = 'Cargando...';
		ajaxRequest('apuestas','show_apuestas',{'start': start}, changeDisplayedApuestas);
	}
}
function changeDisplayedApuestas(arr){
	if(arr['status']){
		$('list_content').innerHTML = arr['html'];
		$('nav_msg').innerHTML = '';
	}else{
		$('nav_msg').innerHTML = 'Error';
	}
}
function deleteApuesta(id,hash){
	if(confirm('¿Realmente desea eliminar esta apuesta?')){
		ajaxRequest('apuestas','delete_apuesta',{'id':id, 'hash':hash}, doneDeleteApuesta);
	}
}
function deleteQuiniela(id,hash){
	if(confirm('¿Realmente desea eliminar esta apuesta?')){
		ajaxRequest('quinielas','delete_apuesta',{'id':id, 'hash':hash}, doneDeleteApuesta);
	}
}
function doneDeleteApuesta(arr){
	if(arr.status){
		if(CURRENT_ACTION == "apuesta-detalles")
			window.location.href = arr.link;
		else if(CURRENT_ACTION == "ver-apuestas" || CURRENT_ACTION == 'apuestas-cerradas'){
			$('listaDeApuestas').deleteRow($('row'+arr.id).rowIndex);
		}
	}
	else alert(arr.message);
}

var radioInputs = new Array();;
function checkOptionsQuiniela(){
	var send = true;
	var radioInput;
	var params = {};
	
	for(var input = 0; input < radioInputs.length; input++){
		var radios = document.getElementsByName(radioInputs[input]);
		var selected = false;
		for (var i=0; i < radios.length; i++)
		{
		   if (radios[i].checked)
		   {
			  params[radios[i].name] = radios[i].value;  
		      selected = true; break;
		   }	   		   
		}
		if(!selected){
			send = false; break;
		}
	}
	params.id_quiniela = $('id_quiniela').value;
	
	if(send){		
		ajaxRequest('quinielas', 'apostar', params, doneBet);
	}
	else {
		$("msgNotif").innerHTML = 'La quiniela no ha sido llenada por completo.';
		removeClass($("msgNotif"), 'none');
		setTimeout("addClass($(\"msgNotif\"), 'none')", 5000);
	}
}

function doneBet(arr){	
	$("msgNotif").innerHTML = arr.msg;
	removeClass($("msgNotif"), 'none');
	setTimeout("addClass($(\"msgNotif\"), 'none')", 5000);
	if(arr.status){
		$("btn_save").innerHTML = 'Editar';		
		addClass($("msgPuntos"), 'none');
	}
}

function changeQuiniela(){
	if($("selectQuiniela").value != $("current_selected").value){
		ajaxRequest('quinielas', 'changeQuiniela', {period_id: $("selectQuiniela").value}, function(e){
			if(e.status){
				location.href = e.href;
			}
		});
	}
}

