var GameSearch = {};

(function( $ ){
	GameSearch.wasCleared = false;
	
	GameSearch.clearInputText = function() {
		if(GameSearch.wasCleared){
			return
		}
		GameSearch.wasCleared = true;
		var el = $("#gameFinderInput");
		var altValue = el.attr("alt");
		var value = el.attr("value");
		if(altValue == value){
			$("#gameFinderInput").attr("value","");
		}
	}
	
	GameSearch.updateInputText = function() {
		var el = $("#gameFinderInput");
		if(!el.attr("value")){
			GameSearch.wasCleared = false;
			el.attr("value",el.attr("alt"));
		}
	}
	
	$(function() {
		var gameFinderTokens = $("#gameFinderTokens");
		var gameFinderInput = $("#gameFinderInput");
		if (gameFinderTokens.length && gameFinderInput.length) {
			var tokens = $(
					// Wrap the string array with a jQuery object
					gameFinderTokens.html().split(",")
				).map(function(index) {
					// Return the trimmed string
					return jQuery.trim(
							// Replace basic HTML entities from each string
							this.replace(/&amp;/gi,'&').replace(/&lt;/gi,'<').replace(/&quot;/gi,'"')
						);
				}).get(); // At last, get the final string array
			gameFinderInput.autocomplete({
		source: function(req, responseFn) {
        var re = $.ui.autocomplete.escapeRegex(req.term);
        var matcher = new RegExp( "^" + re, "i" );
        var a = $.grep( tokens, function(item,index){
			var flag = false;
			var counter = 0;
			var temp = "";
			var temp2 = false;
            flag = matcher.test(item);
			for (;counter < item.length ;counter ++ )
			{
				if (item.charAt(counter)==" "||item.charAt(counter)=="-")
				{
					temp =(item.substring(counter+1));
					if (temp!="")
					{
						temp2 = matcher.test(temp);
						flag = (flag || temp2);
					}
				}
			}			
			return flag;
        });
		//alphabetically arranging 
		var arr1=[];
		var arr2=[];
		for (i=0; i<a.length; i++)
			if(a[i].substring(0,req.term.length).toLowerCase()===req.term.toLowerCase())
				arr1.push(a[i]);
			else
				arr2.push(a[i]);
		a=arr1.concat(arr2);	
		
        responseFn( a );
    }, // 'source' expects an array of strings
				select: function(event, ui) {
					$('#gameFinderInput').val(ui.item.value);
					$('form[name="gameSearchForm"]').submit();
				}
			});
		}
	});
})( jQuery );
