$(document).ready(function(){
	if(window.infomedic == undefined) window.infomedic={path: ''};
	
	//tworzenie listy html'owej w oparciu o dane w tablicy jsonData
	function makeList(data, lvl){
		var newData = [];
		var lastLetter = '';
		var currLetter;
		for(var i=0; i<data.length; i++){
			//wyciągnięcie pirewszej litery
			if(!lvl){
				currLetter = data[i].text.substring(0,1).toUpperCase();
				if(currLetter!=lastLetter) lastLetter = currLetter;
				else currLetter = '';
			}
			//element listy
			newData.push('<li');
			if(lvl==0 && i%2 == 1) newData.push(' class="bg" ');
			newData.push('>');
			//opakowanie elementu zawierającego listę
			if(data[i].children) newData.push('<div class="liWrapper">');
			//dodanie pierwszej litery
			if(lvl==0) newData.push('<div class="letter"><img src="http://infomedic.pl/images/blank.gif" alt="" style="float:left" />'+currLetter+'</div>');
			//dodanie nazwy kategorii
			newData.push('<div class="link"><a class="kategoriaLink"');
			if(data[i].url)newData.push(' href="'+ data[i].url+'"');
			newData.push('>'+data[i].text+'</a></div>');
			newData.push('<div class="clear"></div>');
			if(data[i].children) newData.push('</div>');//end of .liWrapper

			if(data[i].children){
				newData.push('<ul style="display: none;">'+ makeList(data[i].children, lvl+1).join('') +'</ul>');
			}
			newData.push('</li>');
		}
		return newData;
	};

	var html = makeList(jsonData, 0);
	html = html.join(' ');

	$('div#kategorie').prepend('<ul class="tv">'+html+'</ul>')
		.append('<ul id="search-result" style="display: none;"> <div>');

    categoryHandler = function(evt){
        evt.stopPropagation();
        evt.preventDefault();
        window.location = $(this).find('a.kategoriaLink').attr('href');
    };

    $('#kategorie li').click(categoryHandler);
    

	//obsługa inputa do wyszukiwania kategorii
    var emptyVal = 'szukaj w specjalizacjach';
    var searchResults = $('#search-result');
    var kategorieTree = $('ul.tv');

    $('input[name=infomedic-category]').val(emptyVal).keyup(function(){
    	var value = $(this).val().toLowerCase();
    	if(value.length>0){
    		searchResults.empty();
    		searchResults.append('<div class="result-msg">Szukana fraza nie została odnaleziona.</div');
    		var tvLis = $('#kategorie .tv a.kategoriaLink:contains('+value+')');
    		var html = [];

    		tvLis.each(function(index){
    			if(index==0) searchResults.empty();

    			html.push('<li class="result');
    			if(index%2!=0)html.push(' bg');
    			html.push('">');
    			html.push('<div class="letter"><img style="float: left;" alt="" src="http://infomedic.pl/images/blank.gif"/></div>');
    			html.push('<div class="link"><a class="kategoriaLink" href="'+$(this).attr('href')+'">');
    			var text = $(this).text();
    			html.push( text.substr(0, text.indexOf(value))+'<span class="focus">'+value+'</span>'+text.substr(text.indexOf(value)+value.length) );
    			html.push('</a></div>');
    			html.push('<div class="clear"/>');
    			searchResults.append(html.join(''));

    			searchResults.show();
    			kategorieTree.hide();
    			html = [];

                var newLis = $('#search-result li');
                newLis.unbind('click');
                newLis.click(categoryHandler);

    		});
    	}else{
    		searchResults.hide();
			kategorieTree.show();
    	}
    }).focus(function(){
    	if( $(this).val() == emptyVal )$(this).val('');
    }).blur(function(){
    	if( $(this).val() == '' ) $(this).val(emptyVal);
    });

});
