$(document).ready(function() {

	var returnpage = getParameterByName('returnpage');
	var idend = getParameterByName('idend');
	var nombreend = getParameterByName('nombreend');
	var idinit = getParameterByName('idinit');
	var nombreinit = getParameterByName('nombreinit');
	
	document.getElementById('aback').href = returnpage+'?idinit='+idinit+'&nombreinit='+nombreinit+'&idend='+idend+'&nombreend='+nombreend;
	
	trace();
	
	function drawAutocomplete(results) {
		
		var stations = [];

		var lineas = new Array(Linea1,Linea2,Linea3,Linea4,Linea5,Linea6,Linea7,Linea8,Linea9,LineaA,LineaB,Linea12);
	
		for (var i = 0; i < lineas.length; i++) {
			for(j=0; j< lineas[i].estaciones.length; j++) {
				var currentSt = lineas[i].estaciones[j];
				for (var m = 0; m < results.length; m++) {
					if(currentSt.id == results[m]) {
						currentSt.parent = lineas[i];
						stations.push(currentSt);
					}
				}
			}
		}


		//Ordeno la lista
		var stationsOrd = [];
		var currentSlot = 0;
		for (var m = 0; m < results.length; m++) {
			for (var i = 0; i < stations.length; i++) {
				if(results[m] == stations[i].id) {
					stationsOrd[currentSlot] = stations[i];
					currentSlot++;
				}
			}
		}

		var currentLine = "";
		var stationsList = "";
		for (var i = 0; i < stationsOrd.length; i++) {
			var cur = stationsOrd[i];
			var vasentidocontrario = false;
			var posiblesaberdireccion = false;
			
			if( stationsOrd[i+1] != null ) {
				var base = parseInt(stationsOrd[i].id);
				var consecutivo1 = parseInt(stationsOrd[i+1].id);
				if(consecutivo1 == base+1 ) {
					posiblesaberdireccion = true;
					vasentidocontrario = false;
				} else if(consecutivo1 == base-1) {
					posiblesaberdireccion = true;
					vasentidocontrario = true;
				}
			}
			
			if(i==0) {
				stationsList += "<li style=\"border-top: solid 0.1rem #e7e7e7;\">" +
							"<aside class=\"pack-end\">" +
							"  <img alt=\"placeholder\" src=\"./images/abordar.png\">" +
							"</aside>" +
							"<a href=\"#\" >" +
							"  <p class=\"blnb\"><span data-l10n-id=\"board-line\"></span> "+cur.linea+"</p>" +
							(posiblesaberdireccion?(vasentidocontrario?"<p class=\"blnb\"><span data-l10n-id=\"direction\"></span> "+cur.parent.estaciones[0].nombre+"</p>":"  <p class=\"blnb\"><span data-l10n-id=\"direction\"></span> "+cur.parent.estaciones[cur.parent.estaciones.length-1].nombre+"</p>"):"") +
							"</a>" +
						  "</li>";
			}
			if( ((stationsOrd[i-1] != null)?((stationsOrd[i-1].linea != cur.linea)?true:false):false) ){
				if(!(i == stationsOrd.length-1)){
					stationsList += "<li>" +
							"<aside class=\"pack-end\">" +
							"  <img alt=\"placeholder\" src=\"./images/transborde.png\">" +
							"</aside>" +
							"<a href=\"#\">" +
							"  <p class=\"blnb\"><span data-l10n-id=\"exchange-to\"></span> "+cur.linea+"</p>" +
							(posiblesaberdireccion?(vasentidocontrario?"<p class=\"blnb\"><span data-l10n-id=\"direction\"></span> "+cur.parent.estaciones[0].nombre+"</p>":"  <p class=\"blnb\"><span data-l10n-id=\"direction\"></span> "+cur.parent.estaciones[cur.parent.estaciones.length-1].nombre+"</p>"):"") +
							"</a>" +
						  "</li>";
				}
			} else {
				stationsList += "<li onclick=\"location.href='estacionMetro.html?from=calculaResultMetro.html&nombre="+cur.nombre+"&imagen="+cur.image+"&lt="+cur.lt+"&ll="+cur.ll+"&descripcion="+cur.descripcion+"&ln="+cur.linea+
							"&returnpage="+returnpage+"&idend="+idend+"&nombreend="+nombreend+"&idinit="+idinit+"&nombreinit="+nombreinit+"'\">" +
							"<aside class=\"pack-end\">" +
							"  <img alt=\"placeholder\" src=\"."+cur.image+"\">" +
							"</aside>" +
							"<a href=\"#\">" +
							"  <p class=\"bl\">"+cur.nombre+"</p>" +
							/*"  <p class=\"bl\"><span data-l10n-id=\"line\"></span> "+cur.linea+"</p>" +*/
							"</a>" +
						  "</li>";
			}  
						  
			currentLine = cur.linea;
		}

		var stInit = stationsOrd[0];
		var stEnd = stationsOrd[stationsOrd.length-1];
		
		document.getElementById('subcommand').innerHTML = 
		"<button onclick=\"location.href='mapaRuta.html?"+
			"from=calculaResultMetro.html"+
			"&llinit="+stInit.ll+
			"&ltinit="+stInit.lt+
			"&nombreinit="+stInit.nombre+
			"&imageinit="+stInit.imagen+
			"&llend="+stEnd.ll+
			"&ltend="+stEnd.lt+
			"&nombreend="+stEnd.nombre+
			"&imageend="+stEnd.imagen+
			"&returnpage="+returnpage+"&idend="+idend+"&idinit="+idinit+
		"'\"><span class=\"icon icon-ruta\">ruta</span></button>";
/*
		document.getElementById('estacioninfo').innerHTML = 
		"<button data-l10n-id=\"view-route\" onclick=\"location.href='mapaRuta.html?"+
			"from=calculaResultMetro.html"+
			"&llinit="+stInit.ll+
			"&ltinit="+stInit.lt+
			"&nombreinit="+stInit.nombre+
			"&imageinit="+stInit.imagen+
			"&llend="+stEnd.ll+
			"&ltend="+stEnd.lt+
			"&nombreend="+stEnd.nombre+
			"&imageend="+stEnd.imagen+
			"&returnpage="+returnpage+"&idend="+idend+"&idinit="+idinit+
		"'\"></button>";
*/

		document.getElementById('loadLinesHere').innerHTML = stationsList;
		document.webL10n.get("board-line");
		document.webL10n.get("exchange-to");
		document.webL10n.get("line");
	}


	function trace() {

		var lineas = new Array(Linea1,Linea2,Linea3,Linea4,Linea5,Linea6,Linea7,Linea8,Linea9,LineaA,LineaB,Linea12);


		var jsonstr = '{';

		for (var i = 0; i < lineas.length; i++) {
			for(j=0; j< lineas[i].estaciones.length; j++) {
		
				// agregando estaciones
				var currentSt = lineas[i].estaciones[j];
				if(j==0 && i== 0) {
					jsonstr += '"'+currentSt.id+'":{';
				} else {
					jsonstr += ',"'+currentSt.id+'":{';
				}
		
				// agregando estaciones colindantes a cada estación
				var dibuje = false;
				var numStAdded = 0;
				for(m=0; m < lineas[i].estaciones.length; m++) {
					var currentAuxSt = lineas[i].estaciones[m];
			
					if(currentSt.id != currentAuxSt.id) {
						var stA = parseInt(currentAuxSt.id);
						var stB = parseInt(currentSt.id);
						if((stB + 1) == stA || (stB - 1) == stA) { 
							if(dibuje) {
								jsonstr += ',';
							} 
				
							jsonstr += '"'+currentAuxSt.id+'":1';
							numStAdded++;
							dibuje = true;
						}
				
					}
				}
		
				// agregando transbordes a cada estación
				if(currentSt.transbordes != null) {
					for(n=0; n < currentSt.transbordes.length; n++) {
			
						var currentAuxSt = currentSt.transbordes[n];
						if(numStAdded > 0) {
							jsonstr += ',';
						}
						jsonstr += '"'+currentAuxSt.id+'":1';
			
					}
				}
		
				jsonstr += '}';
			}
		}
		jsonstr += '}';


		var map = JSON.parse(jsonstr);
		var graph = new Graph(map);
		var results = graph.findShortestPath(idinit, idend);
		console.log(results);
		drawAutocomplete(results);
	}
});



