$(function() {



$('#applesearch input').attach(AppleSearch);



});



function oneshot() {

	var timer;

	return function( fun, time ) {

	clearTimeout( timer );

	timer = setTimeout( fun, time );

	};

}



var suggestOneshot = oneshot();



AppleSearch = $.klass({

    initialize: function() {

        

        this.button = $('#srch_clear');

        this.button.bind('click', { behavior: this }, function(event) {

            $('#keywords').val('');

            event.data.behavior.updateState();

        });

		this.button2 = $('#submitSearch');

        this.button2.bind('click', { behavior: this }, function(event) {

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterA');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('a');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterB');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('b');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterC');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('c');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterD');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('d');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterE');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('e');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterF');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('f');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterG');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('g');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterH');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('h');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterI');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('i');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterJ');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('j');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterK');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('k');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterL');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('l');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterM');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('m');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterN');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('n');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterO');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('o');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterP');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('p');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterQ');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('q');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterR');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('r');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterS');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('s');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterT');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('t');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterU');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('u');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterV');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('v');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterW');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('w');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterX');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('x');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterY');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('y');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

		this.letterA = $('#letterZ');

        this.letterA.bind('click', { behavior: this }, function(event) {

			$('#keywords').val('z');																

            event.data.behavior.updateState();

			event.data.behavior.searchDb();

        });

        this.clear = false;

    },

    

    onkeyup: function(e) {

		//alert(event.keyCode);

		if ((e.keyCode >=48 && e.keyCode < 58) // numbers

          || (e.keyCode >= 65 && e.keyCode < 91) // uppercase

          || (e.keyCode >= 97 && e.keyCode < 123)

		  || (e.keyCode==13)) { // lowercase



	        this.updateState();

    	    this.searchDb();
			

		}

    },

    

    updateState: function() {


        if (this.element.val().length > 0 && !this.clear) {

            this.button.css({ background: "transparent url('/images/btn-search-clear.gif') no-repeat top left" });

            this.clear = true;

            $("#searchresults").css("display","inline");
			
			$("#srch_clear").css("display","block");



        } else if (this.element.val().length == 0 && this.clear) {

            this.button.css({ background: "transparent url('/images/srch_r.png') no-repeat top left" });

            this.clear = false;

			$("#srlt").html('<div align="center"><img src="images/img-science-dictionary.jpg" /></div>');

            //$("#searchresults").css("display","none");
			
			$("#srch_clear").css("display","none");

        }    

    },



    searchDb: function() {

    	if ($("#keywords").val().length > 0) {



        // set a deylay timeout for each keypress

			//if (this.timer) clearTimeout(this.timer);

	

			// a spinner

			$("#srlt").css("text-align","center");

			//$("#srlt").html('<img src="/themes/site_themes/seymour/site/images/spinner.gif" alt="" id="applesearch">{exp:search:simple_form result_page="search/results" no_result_page="search/noresults" search_in="everywhere"}<div class="sbox_l"></div><div class="sbox"><input type="text" name="keywords" id="keywords" /></div><div class="sbox_r" id="srch_clear"></div>{/exp:search:simple_form}</div>');

			//$("#srlt").html('<img src="/themes/site_themes/seymour/site/images/spinner.gif" alt="" id="applesearch"> <br/>search/results');

			//$("#srlt").load('/index.php/search/ajax-dictionary/'+$("#keywords").val());

			$("#srlt").html('<img src="/images/spinner.gif" alt="" id="applesearch">');

//			$("#search_form").submit(function(){  

//				$.post(  

//					"/index.php/search/results-dictionary/",  

//					$("#search_form").serialize(),  

//					function(data){  

						//alert(data);  

//						$("#srlt").html(data);

//					}  

//				);  

//				return false;  

//			});  

			suggestOneshot( doAutoSuggest, 500 );

		}

	}

})



function doAutoSuggest() {

	//$("#search_form").submit();	

	//alert('auto suggest');

	$.ajax( 

		{ 

			type: "POST", 

			url: "/index.php/search/results-dictionary/", 

			data: "keywords=" + $("#keywords").val(), 

			success: function(message) 

			{ 

				$("#suggest").empty(); 

				if (message.length > 0) 

				{ 

					//message = "Do you mean: " + message; 

					//$("#suggest").append(message); 

					$("#srlt").html(message);

				} 

			} 

		});

}
