jQuery(document).ready(function(){
	var predictiveKeydownStart = function(event) {
		if(event.which == 13) // touche entrée
		{
			arguments.callee.enter.apply(this, arguments);
		}
		else if(event.which == 40) // flêche bas
		{
			arguments.callee.down.apply(this, arguments);
		}
		else if(event.which == 38) // flêche haut
		{
			arguments.callee.up.apply(this, arguments);
		}
		else if(event.which == 9) // flêche haut
		{
			arguments.callee.enter.apply(this, arguments);
		}
		else if(event.which == 27) // flêche haut
		{
			jQuery("#tx_icsnavitia_pi1_autocompletion_start").hide();
		}
	};
	predictiveKeydownStart.max = function() {
		var max = 0;
		while (document.getElementById('tx_icsnavitia_pi1_recordstart' + (max + 1)))
			max++;
		return max;
	};
	predictiveKeydownStart.enter = function() {
		var max = arguments.callee.max();
		for (i = 1; i <= max; i++)
			if (jQuery("#tx_icsnavitia_pi1_recordstart" + i).hasClass("courant"))
				var link = jQuery("#tx_icsnavitia_pi1_recordstart" + i + ".courant a");
				
		if (link.click)
		{
			//link.click();
			//this.form.onsubmit = function() { return false; };
			jQuery("#tx_icsnavitia_pi1_startCity").attr({value: link.text()});
			jQuery("#tx_icsnavitia_pi1_autocompletion_start ul").hide();
		}
	};
	predictiveKeydownStart.enter.max = predictiveKeydownStart.max;
	predictiveKeydownStart.up = function() {
		var max = arguments.callee.max();
		var found = false;
		for (i = 1; i <= max; i++)
		{
			if (jQuery("#tx_icsnavitia_pi1_recordstart" + i).hasClass("courant"))
			{
				found = true;
				jQuery("#tx_icsnavitia_pi1_recordstart" + i).removeClass("courant");
				if (i > 1)
					jQuery("#tx_icsnavitia_pi1_recordstart" + (i - 1)).addClass("courant");
				break;
			}
		}
		if (!found)
			jQuery("#tx_icsnavitia_pi1_recordstart" + max).addClass("courant");
	};
	predictiveKeydownStart.up.max = predictiveKeydownStart.max;
	predictiveKeydownStart.down = function() {
		var max = arguments.callee.max();
		var found = false;
		for (i = 1; i <= max; i++)
		{
			if (jQuery("#tx_icsnavitia_pi1_recordstart" + i).hasClass("courant"))
			{
				found = true;
				jQuery("#tx_icsnavitia_pi1_recordstart" + i).removeClass("courant");
				if (i < max)
					jQuery("#tx_icsnavitia_pi1_recordstart" + (i + 1)).addClass("courant");
				break;
			}
		}
		if (!found)
			jQuery("#tx_icsnavitia_pi1_recordstart1").addClass("courant");
	};
	predictiveKeydownStart.down.max = predictiveKeydownStart.max;
	jQuery("#tx_icsnavitia_pi1_startCity").keydown( predictiveKeydownStart );
	
	
	
	var predictiveKeydownEnd = function(event) {
		if(event.which == 13) // touche entrée
		{
			arguments.callee.enter.apply(this, arguments);
		}
		else if(event.which == 40) // flêche bas
		{
			arguments.callee.down.apply(this, arguments);
		}
		else if(event.which == 38) // flêche haut
		{
			arguments.callee.up.apply(this, arguments);
		}
		else if(event.which == 9) // flêche haut
		{
			arguments.callee.enter.apply(this, arguments);
		}
		else if(event.which == 27) // flêche haut
		{
			jQuery("#tx_icsnavitia_pi1_autocompletion_end").hide();
		}
	};
	predictiveKeydownEnd.max = function() {
		var max = 0;
		while (document.getElementById('tx_icsnavitia_pi1_recordend' + (max + 1)))
			max++;
		return max;
	};
	predictiveKeydownEnd.enter = function() {
		var max = arguments.callee.max();
		for (i = 1; i <= max; i++)
			if (jQuery("#tx_icsnavitia_pi1_recordend" + i).hasClass("courant"))
				var link = jQuery("#tx_icsnavitia_pi1_recordend" + i + ".courant a");
				
		if (link.click)
		{
			//link.click();
			//this.form.onsubmit = function() { return false; };
			jQuery("#tx_icsnavitia_pi1_endCity").attr({value: link.text()});
			jQuery("#tx_icsnavitia_pi1_autocompletion_end ul").hide();
		}
	};
	predictiveKeydownEnd.enter.max = predictiveKeydownEnd.max;
	predictiveKeydownEnd.up = function() {
		var max = arguments.callee.max();
		var found = false;
		for (i = 1; i <= max; i++)
		{
			if (jQuery("#tx_icsnavitia_pi1_recordend" + i).hasClass("courant"))
			{
				found = true;
				jQuery("#tx_icsnavitia_pi1_recordend" + i).removeClass("courant");
				if (i > 1)
					jQuery("#tx_icsnavitia_pi1_recordend" + (i - 1)).addClass("courant");
				break;
			}
		}
		if (!found)
			jQuery("#tx_icsnavitia_pi1_recordend" + max).addClass("courant");
	};
	predictiveKeydownEnd.up.max = predictiveKeydownEnd.max;
	predictiveKeydownEnd.down = function() {
		var max = arguments.callee.max();
		var found = false;
		for (i = 1; i <= max; i++)
		{
			if (jQuery("#tx_icsnavitia_pi1_recordend" + i).hasClass("courant"))
			{
				found = true;
				jQuery("#tx_icsnavitia_pi1_recordend" + i).removeClass("courant");
				if (i < max)
					jQuery("#tx_icsnavitia_pi1_recordend" + (i + 1)).addClass("courant");
				break;
			}
		}
		if (!found)
			jQuery("#tx_icsnavitia_pi1_recordend1").addClass("courant");
	};
	predictiveKeydownEnd.down.max = predictiveKeydownEnd.max;
	jQuery("#tx_icsnavitia_pi1_endCity").keydown( predictiveKeydownEnd );
	
	$("#tx_icsnavitia_pi1_startCity").blur( function(event) {
		setTimeout(function(){
			$("#tx_icsnavitia_pi1_autocompletion_start").hide();
		  }, 200 ); 
	});
	
	$("#tx_icsnavitia_pi1_endCity").blur( function(event) {
		setTimeout(function(){
			$("#tx_icsnavitia_pi1_autocompletion_end").hide();
		  }, 200 ); 
	});
	
});