acDelay = 300;

       	var acListTotal   =  0;

		var acListCurrent = -1; 

        $(document).ready(function(){

           

          

            $('#suggestions').keyup(function (e) {



                // get keyCode (window.event is for IE)

                var keyCode = e.keyCode || window.event.keyCode;

                var lastVal = $('#suggestions').val();



                // check an treat up and down arrows

                

                    if(updownArrow(keyCode)){

                        return;

                    }

                	 

                // check for an ENTER or ESC

                if(keyCode == 13 || keyCode == 27){

                    clearAutoComplete();

                    return;

                }

				

                // if is text, call with delay

                setTimeout(function () {autoComplete(lastVal)}, acDelay);
			
            });        	

    });            

           

                

       

// treat the auto-complete action (delayed function)



function autoComplete(lastValue)

{

	// get the field value

	var part = $('#suggestions').val();

	

	// if it's empty clear the resuts box and return

	if(part == ''){

		clearAutoComplete();

		return;

	}



	// if it's equal the value from the time of the call, allow

	if(lastValue != part){

		return;

	}

	//$('#results').hide();

	$('#results').load('/search/sug/'+lastValue, function(){

		$('#results').slideDown("normal");

		

		$('#results').find('div').each(function(){

			$(this).mouseover(function(element){

				$('#results').children().each(function(){

					$(this).attr('class','unselected');

				});

				$(this).attr('class','selected');

			});

			

			$(this).click(function(){

				$('#suggestions').attr('value', $(this).html());

				$('#results').children().each(function(){

					$(this).attr('class','unselected');

				});

				clearAutoComplete();

			});	

		});

		

		

		

	});

	

}    



function clearAutoComplete()

{

	$('#results').slideUp("fast" , function(){

		$('#results').css("display","none");

		$('#results').html('');
		
	});

	

	

}





function updownArrow(keyCode) {

	if(keyCode == 40 || keyCode == 38){



		if(keyCode == 38){ // keyUp

			if(acListCurrent == 0 || acListCurrent == -1){

				acListCurrent = acListTotal-1;

			}else{

				acListCurrent--;

			}

		} else { // keyDown

			if(acListCurrent == acListTotal-1){

				acListCurrent = 0;

			}else {

				acListCurrent++;

			}

		}



		// loop through each result div applying the correct style

		$('#results').children().each(function(i){

			if(i == acListCurrent){

				$('#suggestions').val(this.childNodes[0].nodeValue);

				this.className = "selected";

			} else {

				this.className = "unselected";

			}

		});



		return true;

	} else {

		// reset

		acListCurrent = -1;

		return false;

	}

}