var fastSearchObj = {
	filterTimer: null,
	timeout: 1000,
	categories: {},
	lastKeyPress: (new Date).getTime(),
	init: function (catInput) {
		fastSearchObj.categories = catInput;
		$('#spotlight').css({
			top: $('#search').offset().top + $('#search').outerHeight() + 'px',
			left: $('#search').offset().left + 'px'
		});
		$(window).resize(function(){
			$('#spotlight')[0].style.top = $('#search').offset().top + $('#search').outerHeight() + 'px';
			$('#spotlight')[0].style.left = $('#search').offset().left + 'px';
		});
		$('#search-string').focus(function(){
			if ($('#search-string').val().length >= 3) {
				fastSearchObj.showSpotLight();
			}			
		}).blur(function(){setTimeout("fastSearchObj.hideSpotLight()", 500)});

		$('#search-string').keyup(function(){
			if ($('#search-string').val().length >= 3) {
				setTimeout("fastSearchObj.timedOutRequest()", fastSearchObj.timeout);
			}
			else {
				fastSearchObj.hideSpotLight();
			}
			fastSearchObj.lastKeyPress = (new Date).getTime();
		});
	},
	timedOutRequest: function () {
		if ((new Date).getTime()-fastSearchObj.lastKeyPress >= fastSearchObj.timeout) {
			fastSearchObj.showSpotLight();
			fastSearchObj.searchCategories($('#search-string').val());
		}
	},
	searchCategories: function(searchString) {
		jQuery.each( fastSearchObj.categories, function (i) {
			$.getJSON(	this.url + '&s=' + searchString, 
			function(objResp){
				fastSearchObj.parseResponce(objResp);
			});
		});
	},
	parseResponce: function (objResp) {
		var html;
		var count;
		var elCont;
		var random_id;
		
		jQuery.each( objResp, function (i) {
			//$('#' + i + '_list').html('');
			//html = '';
			count = 0;
			elCont = '';
			//alert('i ' + i );
			var RandomIDs = new Array();
			//jQuery.each(objResp[i], function(j) {
			//	//elCont = objResp[i][j].name;
			//	random_id = Math.round(Math.random()*1000000);
			//	//html = '<li><a id="'+random_id+'" href="'+objResp[i][j].link+'">' + objResp[i][j].name + '</a></li>';
			//	//html ='';
			//	//$('#' + i + '_list').append(html);
			//	//fastSearchObj.searchFilter('#'+random_id, $('#search-string').val(), $('#search-string').val().split(' '));
			//
			//	count++;
			//});
			elCont = objResp[i].rescount;
			//alert('#' + i + '_count');
			//$('#' + i + '_count').html(count.toString());
			$('#' + i + '_count').html(elCont.toString());
		});
	},
	searchFilter: function(obj, str, words) {
		var text = str;
		if(words.length <= 1 && words[0].length <= 0){
			return false;
		}
		for(var i = 0; i < words.length; i++){
			if(text.indexOf(words[i]) !== -1 && words[i].replace(/^\s+|\s+$/g, '').length >= 1){
				myRegexp = new RegExp('('+words[i]+')', "gim");		
				$(obj).html($(obj).html().replace(myRegexp, "<span>$1</span>"));
				return true;
			}
		}
	},
	showSpotLight: function () {
		$('#spotlight').removeClass('hidden');
		$('#search').addClass('spotlight');
	},
	hideSpotLight: function () {
		$('#spotlight').addClass('hidden');
		$('#search').removeClass('spotlight');
	}
}