var cambio=0;
var cg;
var seasons=0;
var usuario=0;
var cambio_deporte=0;

function iniciar(){
	initialize();
	cg = new ControladorClasificaciones();
	getMarkers();
}

function cerrarMapa(){
	$('mapaLocalizador').setStyle({'display':'none'});
	$('switchMapa').update('MOSTRAR MAPA');
}
function switchDivMapa(){
	var nuevoDisplayElems = ($('mapaLocalizador').style.display == 'none')?'none':'block';
	
	switchDiv('mapaLocalizador','switchMapa',
		'MOSTRAR MAPA',
		'OCULTAR MAPA');
}

var ControladorClasificaciones = Class.create({
	mostrarMapaAlInicio: null,
	iniciando: null,
	deporteSeleccionado: null,
	continenteSeleccionado: null,
	paisSeleccionado: '19967',
	equipo:null,
	
	continentes: [],
	competiciones: [],
	torneos: [],
	equipos: [],

	resultado: null,
	clasificacion: [],
	phases: [],

	idPhaseGroupStage: null,

	partidos: [],
	ronda: null,
	
	initialize: function(){
		
		cg = this;
		this.iniciando = true;
		this.mostrarMapaAlInicio = false;//($('torneoHid').value == '');
		this.cargarContinentes();
		
		this.seleccionarDeporte(1);
		
		
		//if($('torneoHid').value != ''){
			cerrarMapa();		
		//}
		cambio_deporte=0;
	},
	
	// generales
	rastroMiga: function(competicion,torneo){
		
		
		
	},

	limpiarDivsResultados: function(){
	},
	
	// primer paso --> deporte
	seleccionarDeporte: function(deporte){
		
		if (cambio==1){
			cambio=0;
			cambio_deporte=0;
			if (confirm("¿Ha hecho cambios en la lista desea actualizarlos?")){
				rellenar_bbdd();
				//return false;
			}
		}
		this.deporteSeleccionado = deporte;
		$('deporte').value=deporte;
		$('switchMapa').setStyle({'display': (this.deporteSeleccionado == 2)?'none':'block'});
		$('mapaLocalizador').setStyle({'display': (this.deporteSeleccionado == 2)?'none':'block'});
		this.limpiarDivsResultados();
		
		$('liga').update('');
		$('list').update('');
		this.cargarCompeticionesDeporte();
		this.cargarCompeticionesSinContinente();
		getMarkers();
		cambio_deporte=1;
	},
	
	// 2º paso --> continente
	cargarContinentes: function(){
		var url = '/clasificacion/includes/obtenerContinentes.php';
		
		var myAjaxLanzador = new Ajax.Request(url, {
			method: 'get',
			parameters: '',
			onComplete: function(transport){
				cg.mostrarContinentes(transport);
			}
		});
	},
	
	mostrarContinentes: function(transport){
		this.continentes = transport.responseText.evalJSON();
		this.generarHTMLContinentes();
	},
	
	generarHTMLContinentes: function(){
		var opciones = '';
		
		for(var i = 0; i < this.continentes.length; i++){
			var cont = this.continentes[i];
			opciones += '<option value="'+i+'">' + cont.nombre + '</option>';
		}
		$('zona').update(opciones);
		this.seleccionarContinente();
	},
	
	seleccionarContinenteyPaisPorSigla: function(sigla,idPais){
		for(var i = 0; i < this.continentes.length; i++){
			if( this.continentes[i].sigla == sigla){
				$('zona').value = i;
			}
		}
		this.paisSeleccionado = idPais;
		this.seleccionarContinente();
	},
	
	seleccionarContinente: function(){
		var cont = this.continentes[$('zona').value];
		if( cont == null){
			window.setTimeout('cg.seleccionarContinente();',1000); 
			return;
		}
		this.continenteSeleccionado = cont;
		if( map != null){
			map.setCenter(new GLatLng(cont.latitud, cont.longitud), cont.zoom);
		}
		if($('mapaLocalizador').style.display == 'none'){
			if(this.iniciando == false || this.mostrarMapaAlInicio == true){
				switchDivMapa();
			}
		}

		$('liga').update('');
		if ($('liga_selec'))
			$('liga_selec').update('');
		
		this.cargarCompeticionesDeporte();
	},
	
	// tercer paso --> competicion (pais)
	cargarCompeticionesSinContinente: function(){
		var url = '/clasificacion/includes/obtenerCompeticiones.php';
		
		var pars = {
			'deporte' : this.deporteSeleccionado,
			'continente': ''
		};
		
		var myAjaxLanzador = new Ajax.Request(url, {
			method: 'get',
			parameters: pars,
			onComplete: function(transport){
				mostrarCompeticionesSinContinente(transport);
			}
		});

	},
	
	cargarCompeticionesDeporte: function(){
		if(this.deporteSeleccionado == null || this.continenteSeleccionado == null){
			return;
		}
		
		var url = '/clasificacion/includes/obtenerCompeticiones.php';
		
		var pars = {
			'deporte' : this.deporteSeleccionado,
			'continente': this.continenteSeleccionado.sigla
		};
		
		var myAjaxLanzador = new Ajax.Request(url, {
			method: 'get',
			parameters: pars,
			onComplete: function(transport){
				cg.mostrarCompeticionesDeporte(transport);
			}
		});
	},
	
	mostrarCompeticionesDeporte: function(transport){
		this.competiciones = transport.responseText.evalJSON();
		seasons=this.competiciones[0].temporada;
		
		cargarLigasUsuario();
		cambio=0;
		cambio_deporte=0;
		this.generarHTMLCompeticiones();
	},
	
	generarHTMLCompeticiones: function(){
		var opciones = '';
		
		opciones += '<option value="">Selecciona pa&iacute;s</option>';
		for(var i = 0; i < this.competiciones.length; i++){
			var comp = this.competiciones[i];
			opciones += '<option value="'+comp.id+'">' + ((comp.nombre_pais != null)?comp.nombre_pais:comp.nombre) + '</option>';
		}
		$('pais2').update(opciones);
		if(this.paisSeleccionado != null){
			$('pais2').value = this.paisSeleccionado;
			this.seleccionarPaisCompeticion();
		}
		else{
			$('pais2').value = '';
		}
	},
	
	// 4º paso --> torneo (division)
	seleccionarPaisCompeticion: function(){
		if($('pais2').value == ""){
			$('mapaLocalizador').setStyle({'display':'block'});
			return;
		}
		this.cargarTorneosCompeticion($('pais2').value);
	},
	
	cargarTorneosCompeticion: function(competicion){
		this.paisSeleccionado = competicion;
	$('liga').update('');
	
		cerrarMapa();
		//if($('mapaLocalizador').style.display != 'none'){
		//	switchDivMapa();
		//}
		var url = '/usuario/procesar/mostrar_ligas.php';
		var pars = {
			'deporte' : this.deporteSeleccionado,
			'usuario': usuario,
			'seasons':  seasons,
			'pais'	 : this.paisSeleccionado
		};
		
		var myAjaxLanzador = new Ajax.Request(url, {
			method: 'get',
			parameters: pars,
			onComplete: function(transport){
				cg.mostrarTorneosCompeticion(transport);
			}
		});
	},
	
	mostrarTorneosCompeticion: function(transport){
		this.torneos = transport.responseText.evalJSON();
		this.generarHTMLTorneos();
	},
	
	generarHTMLTorneos: function(){
		var opciones = '';
		
		for(var i = 0; i < this.torneos.length; i++){
			var t = this.torneos[i];
			if (tipo_pagina=='liga'){
				opciones += '<li class="cont_miembro_lista">';
				opciones += '<span class="selec1"><a href="#">' + t.name ;
				opciones +=	'</a></span> <span class="selec2" id="boton_'+ t.copa+'">';
				if (!($('Tags_' + t.copa))) {
					opciones += '<a href="#" onclick="actualizar(\'' + t.name + '\',' + t.copa + ',\'' + t.pais + '\',\'' + t.tabla + '\',\'' + t.code + '\');cambio=1; return false;" >' +
					'A&ntilde;adir a la lista</a>';
				}else{
					opciones +='<span class="selecOk">&nbsp;</span>';
				}
				opciones +='</span> </li>';
			}else{
				opciones += '<option value="'+t.copa+'">' + t.name + '</option>';
				
			}
		}
		if (tipo_pagina == 'liga') {
			$('liga').update(opciones);
		}else{
			$('liga_selec').update(opciones);
			this.seleccionarCompeticionEquipo();
			
		}
		

		

	},
	seleccionarCompeticionEquipo: function(){
		
		if($('liga_selec').value == ""){
			return;
		}
		$('liga').update('');
		this.cargarEquipos($('liga_selec').value);
	},
	cargarEquipos: function(competicion){
		this.equipo = competicion;
		cerrarMapa();
		//if($('mapaLocalizador').style.display != 'none'){
		//	switchDivMapa();
		//}
		var url = '/usuario/procesar/mostrar_equipos.php';
		var pars = {
			'deporte' : this.deporteSeleccionado,
			'usuario': usuario,
			'liga':  this.equipo,
			'pais': this.paisSeleccionado
			
		};
		
		var myAjaxLanzador = new Ajax.Request(url, {
			method: 'get',
			parameters: pars,
			onComplete: function(transport){
				cg.mostrarCompeticionEquipo(transport);
			}
		});
	},
	mostrarCompeticionEquipo: function(transport){
		this.equipos = transport.responseText.evalJSON();
		this.generarHTMLEquipos();
	},
	generarHTMLEquipos:function(){
		var opciones = '';
		
		for(var i = 0; i < this.equipos.length; i++){
			var t = this.equipos[i];
			
				opciones += '<li class="cont_miembro_lista">';
				opciones += '<span class="selec1"><a href="#">' + t.name ;
				opciones +=	'</a></span> <span class="selec2" id="boton_'+ t.id+'">';
				if (!($('Tags_' + t.id))) {
					opciones += '<a href="#" onclick="actualizar(\'' + t.name + '\',' + t.id + ',\'' + t.description + '\',\'' + t.code + '\',\'' + t.name + '\'); return false;" >' +
					'A&ntilde;adir a la lista</a>';
				}else{
					opciones +='<span class="selecOk"></span>';
				}
				opciones +='</span> </li>';
				opciones +='</span> </li>';
			
		}
		
			$('liga').update(opciones);
		
	},
		
	yUltima: function(){
	}
});


function inicializar_mover(){
  	Sortable.create("list", {
  		dropOnEmpty: true,
  		containment: ["list"],
  		constraint: false,
  		onUpdate: function(){
  			updateList();
  		}
		
  	});
  	
 
		}
function updateList() {
		var sequence=Sortable.sequence('list');
		var list = escape(sequence);
		var sorted_ids = unescape(list).split(',');

		var results='';

		for (var i = 0; i < sorted_ids.length; i++) {
			if ($('orden_'+sorted_ids[i])){
				$('orden_'+sorted_ids[i]).innerHTML=i+1;
			}

		}
 return false;
	}


function moveElementUpforList(list, key) {
		var sequence=Sortable.sequence(list);
		var newsequence=[];
		var reordered=false;

		if (sequence.length>1) for (var j=0; j<sequence.length; j++) {
			if (j>0 && sequence[j].length>0 && sequence[j]==key) {
				var temp=newsequence[j-1];
				newsequence[j-1]=key;
				newsequence[j]=temp;
				reordered=true;
			}
			else {
				newsequence[j]=sequence[j];
			}
		}

		if (reordered) Sortable.setSequence(list,newsequence);
		return reordered;
	}

function moveElementUp(key) {
		moveElementUpforList('list', key);
		updateList();
	}

function moveElementDownforList(list, key) {
		var sequence=Sortable.sequence(list);
		var newsequence=[];
		var reordered=false;

		if (sequence.length>1) for (var j=0; j<sequence.length; j++) {
			if (j<(sequence.length-1) && sequence[j].length>0 && sequence[j]==key) {
				newsequence[j+1]=key;
				newsequence[j]=sequence[j+1];
				reordered=true;
				j++;
			}
			else {
				newsequence[j]=sequence[j];
			}
		}

		if (reordered) Sortable.setSequence(list,newsequence);
		return reordered;
	}

function moveElementDown(key) {
		moveElementDownforList('list', key);
		updateList();
	}

function actualizar(nombre,id,pais,codigo_liga,codigo_pais){
	if (usuario==0){
		if (confirm('Para guardar los cambios debes estar registrado,\n¿Deseas registrarte ahora?')){
			document.location.href='/registro.php';
		}
	}
	switch (parseInt(cg.deporteSeleccionado)){
		case 1:
			clas='miembroOrdenLista_futbol';
			break;	
		case 2:
			clas='miembroOrdenLista_tenis';
			break;
		case 3:
			clas='miembroOrdenLista_basket';
			break;
	}
	//para saber si ha cambiado
	
	if ($('boton_' + id)) {
		$('boton_' + id).update('<span class="selecOk"/>');
	}
	 texto='<li class="' + clas +'" id="Tags_'+id+'">';
	     texto+='<div class="mover"><a href="#" onclick="return false;">mueve</a></div>';
	 	 texto+='<div class="posicion"><a href="#" onclick="return false;" id="orden_'+id+'"></a></div>'
	 	 texto+='<div class="tipo"><a href="#" onclick="return false;">futbol</a></div>';
	 	 texto+='<div class="pais"><a href="#" onclick="return false;"><img src="/img/banderas/' + pais.toLowerCase() + '.gif" alt="'+pais+'" /></a></div>';
	 	if (tipo_pagina == 'equipo') {
			texto += '<div id="datos_' + id + '" style="display:none;">' +  id  + "-"+ pais +'</div>';
		}else{
			texto += '<div id="datos_' + id + '" style="display:none;">' + nombre + "-" + pais + '</div>';
		}
		 texto+='<div class="text"><a href="#" onclick="return false;">'+nombre+'</a></div>';
	 	 texto+='<div class="subir"><a href="#" onclick="moveElementUp('+id+'); return false;">Subir posición</a></div>';
	 	 texto+='<div class="bajar"><a href="#" onclick="moveElementDown('+id+'); return false;">Bajar posición</a></div>';
	 	 texto+='<div class="borrar"><a href="#" onclick="borrar_elemento('+id+',\''+nombre+'\',\''+pais+'\');return false;">borrar</a></div>';
  	 texto+='       </li>';
	 $('list').insert(texto, {
                position: 'after'
            });
		var url = "setCookie.php";
		var deporte_T='';
		
		switch (parseInt(cg.deporteSeleccionado)){
			case 1:
				deporte_T='SOC';
				break;
			case 2:
				deporte_T='TEN';
				break;
			case 3:
				deporte_T='BSK';
				break;
		}
		var myAjax = new Ajax.Request(url, {
        	method: "get",
	        parameters: {
	            'nombre': 'liga_favorito',
				'ligaCode': id,
				'partido_id': 0,
				'deporte':deporte_T
	        }
		});
	inicializar_mover();
	 updateList();
}
function actualizar2(nombre,id,pais,codigo_liga,codigo_pais){
	if (usuario==0){
		if (confirm('Para guardar los cambios debes estar registrado,\n¿Deseas registrarte ahora?')){
			document.location.href='/registro.php';
		}
	}
	switch (parseInt(cg.deporteSeleccionado)){
		case 1:
			clas='miembroOrdenLista_futbol';
			break;	
		case 2:
			clas='miembroOrdenLista_tenis';
			break;
		case 3:
			clas='miembroOrdenLista_basket';
			break;
	}
	//para saber si ha cambiado
	
	if ($('boton_' + id)) {
		$('boton_' + id).update('<span class="selecOk"/>');
	}
	 texto='<li class="' + clas +'" id="Tags_'+id+'">';
	     texto+='<div class="mover"><a href="#" onclick="return false;">mueve</a></div>';
	 	 texto+='<div class="posicion"><a href="#" onclick="return false;" id="orden_'+id+'"></a></div>'
	 	 texto+='<div class="tipo"><a href="#" onclick="return false;">futbol</a></div>';
	 	 texto+='<div class="pais"><a href="#" onclick="return false;"><img src="/img/banderas/' + pais.toLowerCase() + '.gif" alt="'+pais+'" /></a></div>';
	 	if (tipo_pagina == 'equipo') {
			texto += '<div id="datos_' + id + '" style="display:none;">' +  id  + "-"+ pais +'</div>';
		}else{
			texto += '<div id="datos_' + id + '" style="display:none;">' + nombre + "-" + pais + '</div>';
		}
		 texto+='<div class="text"><a href="#" onclick="return false;">'+nombre+'</a></div>';
	 	 texto+='<div class="subir"><a href="#" onclick="moveElementUp('+id+'); return false;">Subir posición</a></div>';
	 	 texto+='<div class="bajar"><a href="#" onclick="moveElementDown('+id+'); return false;">Bajar posición</a></div>';
	 	 texto+='<div class="borrar"><a href="#" onclick="borrar_elemento('+id+',\''+nombre+'\',\''+pais+'\');return false;">borrar</a></div>';
  	 texto+='       </li>';
	 $('list').insert(texto, {
                position: 'after'
            });
		
	inicializar_mover();
	 updateList();
}
function borrar_elemento(id,nombre,pais){
	if (confirm('¿Desea eliminar la liga '+nombre+' de sus ligas?')) {
		cambio=1;
		if ($('boton_' + id)) {
			datos=$('datos_'+id).innerHTML;
			code_liga=datos.substr(0,datos.indexOf('-'));
			code_pasi=datos.substr(datos.indexOf('-')+1,datos.length);
			
			$('boton_' + id).update('<a href="#" onclick="' +
			'actualizar(\'' +
			nombre +
			'\',' +
			id +
			',\'' +
			pais +
			'\',\'' +
			code_liga +
			'\',\'' +
			code_pasi +
			'\'); cambio=1; return false;' +
			'" >A&ntilde;adir a la lista</a>');
		}
		$('Tags_' + id).remove();
		if (tipo_pagina == 'liga') {
			var url = "delCookie.php";
			var nombre = "liga_favorito";
			switch (cg.deporteSeleccionado) {
				case 1:
					deporte_T = 'SOC';
					break;
				case 2:
					deporte_T = 'TEN';
					break;
				case 3:
					deporte_T = 'BSK';
					break;
			}
			var myAjax = new Ajax.Request(url, {
				method: "get",
				parameters: {
					'nombre': nombre,
					'ligaCode': id,
					'partido_id': 0,
					'deporte': deporte_T
				}
				
			});
		}
		updateList();
	}
}
function borrar_todos(){
	if (confirm('¿Desea eliminar todas la ligas?')){
		
		 $('list').update('');
		 cg.generarHTMLTorneos();
		
			var url = '/usuario/procesar/vaciar_ligas_usuario.php';
			if (tipo_pagina=="equipo"){
				url = '/usuario/procesar/vaciar_equipos_usuario.php';
			}
			var pars = {
			'deporte': cg.deporteSeleccionado
			
			
		
		};
		
		var myAjaxLanzador = new Ajax.Request(url, {
			method: 'get',
			parameters: pars
		})
		
	}
}
function rellenar_bbdd(){
	var altura=Element.getHeight('list'); 
	if (altura > 15) {
		var sequence = Sortable.sequence('list');
		var list = escape(sequence);
		var sorted_ids = unescape(list).split(',');
		var results = '';
		
		if (confirm("Desea actualizar la base de datos con este orden?")) {
		cambio=0;
			for (var i = 0; i < sorted_ids.length; i++) {
				datos = $('datos_' + sorted_ids[i]).innerHTML;
				code_liga = datos.substr(0, datos.indexOf('-'));
				code_pasi = datos.substr(datos.indexOf('-') + 1, datos.length);
				
				results += "ligas[]=" + sorted_ids[i] + '-' + datos+ '&';
				
			}
			var url = '/usuario/procesar/actualizar_bbdd_ligas.php';
			if (tipo_pagina=="equipo"){
				url = '/usuario/procesar/actualizar_bbdd.php';
			}
			var pars = { 
			'data': results,
			'usuario':usuario,
			'deporte':cg.deporteSeleccionado
		};
		
		var myAjaxLanzador = new Ajax.Request(url, {
			method: 'post',
			parameters: pars,
			onComplete: function(transport){
				
//				alert (transport.responseText);
			}
		})
		}
	}
}

function rellenar_bbdd2(){
	var altura=Element.getHeight('list'); 
	if (altura > 15) {
		var sequence = Sortable.sequence('list');
		var list = escape(sequence);
		var sorted_ids = unescape(list).split(',');
		var results = '';
		
		
		cambio=0;
			for (var i = 0; i < sorted_ids.length; i++) {
				datos = $('datos_' + sorted_ids[i]).innerHTML;
				code_liga = datos.substr(0, datos.indexOf('-'));
				code_pasi = datos.substr(datos.indexOf('-') + 1, datos.length);
				
				results += "ligas[]=" + sorted_ids[i] + '-' + datos+ '&';
				
			}
			var url = '/usuario/procesar/actualizar_bbdd_ligas.php';
			if (tipo_pagina=="equipo"){
				url = '/usuario/procesar/actualizar_bbdd.php';
			}
			var pars = { 
			'data': results,
			'usuario':usuario,
			'deporte':cg.deporteSeleccionado
		};
		
		var myAjaxLanzador = new Ajax.Request(url, {
			method: 'post',
			parameters: pars
		})
		
	}
}



function cargarLigasUsuario(){
	
	
	//if (cambio_deporte== 0) {
		if ($('list').innerHTML==''){
		var url = '/usuario/procesar/mostrar_ligas_usuario.php';
		if (tipo_pagina=="equipo"){
			
			url = '/usuario/procesar/mostrar_equipos_usuario.php';
		}
		var pars = { 
			'deporte': cg.deporteSeleccionado,
			'season': seasons
		
		};
	
		var myAjaxLanzador = new Ajax.Request(url, {
			method: 'get',
			parameters: pars,
			onComplete: function(transport){
				
				var ligas=transport.responseText.evalJSON();
				for (i=0;i<ligas.length;i++){
				
					var liga=ligas[i]; 
					if (tipo_pagina=="equipo"){
						
						actualizar2(liga.name,liga.id,liga.description,liga.code,liga.code);
						
					}else{
						actualizar2(liga.name,liga.copa,liga.pais,liga.tabla,liga.code);						
					}
	
				}
				if (ligas.length>0){
					cerrarMapa();
					//if($('mapaLocalizador').style.display != 'none'){
					//	switchDivMapa();
					//}
				} 
			}
		});  
	}
	
}




