//<![CDATA[
function doLiveSearch( ev, keywords ) {

	if( ev.keyCode == 38 || ev.keyCode == 40 ) {
		return false;
	}

	$('#search_results').remove();
	updown = -1;

	if( keywords == '' || keywords.length < 3 ) {
		return false;
	}
	keywords = encodeURI(keywords);

	$.ajax({
		url: 'index.php?route=product/search/ajax&keyword=' + keywords,
		dataType: 'json',
		success: function(result) {
			if( result.length > 0 ) {
				var eList = document.createElement('ul');
				eList.id = 'search_results';
				var eListElem;
				var eLink;
				var qty;
				var price;
				var cart;

				for( var i in result ) {
					eListElem = document.createElement('li');
					eLink = document.createElement('a');
					eLink.appendChild( document.createTextNode(result[i].name) );
					if( typeof(result[i].href) != 'undefined' ) {
						eLink.href = result[i].href;
					}
					else {
						eLink.href = 'index.php?route=product/product&product_id=' + result[i].product_id + '&keyword=' + keywords;
					}

					price = document.createElement('span');
					price.className = 'search-price';
					price.innerHTML = result[i].price;

					qty = document.createElement('span');
					qty.className = result[i].qty_class;
					qty.setAttribute('title', 'Dostupno ' + result[i].qty + ' kom.');

					cart = document.createElement('span');
					cart.className = 'search-cart';
					cart.setAttribute('title', 'Dodaj u košaricu');
					cart.setAttribute('onclick', 'addToCart(' + result[i].id +');');


					eListElem.appendChild(eLink);
					eListElem.appendChild(cart);
					eListElem.appendChild(qty);
					eListElem.appendChild(price);
					eList.appendChild(eListElem);
				}
				if( $('#search_results').length > 0 ) {
					$('#search_results').remove();
				}
				$('#search').append(eList);
			}
		}
	});

	return true;
}

function upDownEvent( ev ) {
	var elem = document.getElementById('search_results');
	var fkey = $('#search').find('[name=filter_name]').first();

	if( elem ) {
		var length = elem.childNodes.length - 1;

		if( updown != -1 && typeof(elem.childNodes[updown]) != 'undefined' ) {
			$(elem.childNodes[updown]).removeClass('highlighted');
		}

		// Up
		if( ev.keyCode == 38 ) {
			updown = ( updown > 0 ) ? --updown : updown;
		}
		else if( ev.keyCode == 40 ) {
			updown = ( updown < length ) ? ++updown : updown;
		}

		if( updown >= 0 && updown <= length ) {
			$(elem.childNodes[updown]).addClass('highlighted');

			var text = elem.childNodes[updown].childNodes[0].text;
			if( typeof(text) == 'undefined' ) {
				text = elem.childNodes[updown].childNodes[0].innerText;
			}

			$('#search').find('[name=filter_name]').first().val( new String(text).replace(/(\s\(.*?\))$/, '') );
		}
	}

	return false;
}

var updown = -1;

$(document).ready(function(){
	$('#search').find('[name=filter_name]').first().keyup(function(ev){
		doLiveSearch(ev, this.value);
	}).focus(function(ev){
			doLiveSearch(ev, this.value);
	}).keydown(function(ev){
		upDownEvent( ev );
	}).blur(function(){

		//window.setTimeout("$('#search_results').remove();updown=0;", 500);
	});
	$(document).bind('keydown', function(ev) {
		try {
			if( ev.keyCode == 13 && $('.highlighted').length > 0 ) {
				document.location.href = $('.highlighted').find('a').first().attr('href');
			}
		}
		catch(e) {}
	});

	$('#search').bind( 'clickoutside', function(event) {
		if ($(event.target).parent(".success").size() == 0)
			window.setTimeout("$('#search_results').remove();updown=0;", 500);
	});

});

(function($,doc,outside){  '$:nomunge'; $.map( 'click dblclick mousemove mousedown mouseup mouseover mouseout change select submit keydown keypress keyup'.split(' '),  function( event_name ) { jq_addOutsideEvent( event_name ); }  );   jq_addOutsideEvent( 'focusin',  'focus' + outside );  jq_addOutsideEvent( 'focusout', 'blur' + outside );   $.addOutsideEvent = jq_addOutsideEvent;    function jq_addOutsideEvent( event_name, outside_event_name ) {  outside_event_name = outside_event_name || event_name + outside;  var elems = $(),  event_namespaced = event_name + '.' + outside_event_name + '-special-event';   $.event.special[ outside_event_name ] = {   setup: function(){  elems = elems.add( this );  if ( elems.length === 1 ) {  $(doc).bind( event_namespaced, handle_event );  }  },     teardown: function(){  elems = elems.not( this );  if ( elems.length === 0 ) {  $(doc).unbind( event_namespaced );  }  },  add: function( handleObj ) {  var old_handler = handleObj.handler;  handleObj.handler = function( event, elem ) {  event.target = elem;  old_handler.apply( this, arguments );  };  }  };    function handle_event( event ) {  $(elems).each(function(){  var elem = $(this);  if ( this !== event.target && !elem.has(event.target).length ) {  elem.triggerHandler( outside_event_name, [ event.target ] );  }  });  };    };    })(jQuery,document,"outside");
//]]>

