function ustawZakladke(zakladka, xajax) {
	$('#szukajZakladka').val(zakladka);
	switch(zakladka) {
		case 'kategorie':
			$('#filtryRestauracji').hide();
			$('#filtrySkladniki').hide();
			$('#filtryKategorie').show();
			$('div.zakladka[name=restauracje]').removeClass('zakladkaZazn');
			$('div.zakladka[name=kategorie]').addClass('zakladkaZazn');
			$('div.zakladka[name=skladniki]').removeClass('zakladkaZazn');
			break;
		case 'skladniki':
			$('#filtryRestauracji').hide();
			$('#filtrySkladniki').show();
			$('#filtryKategorie').hide();
			$('div.zakladka[name=restauracje]').removeClass('zakladkaZazn');
			$('div.zakladka[name=kategorie]').removeClass('zakladkaZazn');
			$('div.zakladka[name=skladniki]').addClass('zakladkaZazn');
			break;
		default:
			$('#filtryRestauracji').show();
			$('#filtrySkladniki').hide();
			$('#filtryKategorie').hide();
			$('div.zakladka[name=restauracje]').addClass('zakladkaZazn');
			$('div.zakladka[name=kategorie]').removeClass('zakladkaZazn');
			$('div.zakladka[name=skladniki]').removeClass('zakladkaZazn');
			break;
	}
	if(xajax)
		xajax_call('szukaj', 'zakladka', zakladka);
}

//szukaj
function is_array(input){
	return typeof(input)=='object'&&(input instanceof Array);
}

function is_object(obj) {
	return obj.constructor == Object;
}

function gotourl(ad) {
    window.location.href = encodeURI(ad);
}

function reload() {
    location.reload(true);
}

function to_string(el) {
	if(el == null)
		return new String("");
	if(is_array(el) || is_object(el)) {
		var str = '';
		for(var i in el) {
			if(str != '')
				str += '-';
			str += el[i];
		}
		return new String(str);
	}
	return new String(el);
}

function filtr_kategorie() {
	var kategorie = $('#filtrKategorieMax');
	var zaznaczone = $('input:button.ckb1', kategorie);
	var kat = new Array(zaznaczone.length);
	$.each(zaznaczone, function(index, ckb1) { 
	   kat.push(ckb1.name);
	});
	return kat;
}

function filtr_kuchnie() {
	var kuchnie = $('#filtrKuchnieMax');
	var zaznaczone = $('input:button.ckb1', kuchnie);
	var kuchnie = new Array(zaznaczone.length);
	$.each(zaznaczone, function(index, ckb1) { 
	   kuchnie.push(ckb1.name);
	});
	return kuchnie;
}

function filtr_oddzialy() {
	var oddzialy = $('#filtrRestauracjeMax');
	var zaznaczone = $('input:button.ckb1', oddzialy);
	var od = new Array(zaznaczone.length);
	$.each(zaznaczone, function(index, ckb1) { 
		od.push(ckb1.name);
	});
	return od;
}

function filtr_skladniki(zCzyBez) {
	var skladniki = $('#filtrSkladnikiMax');
	var zaznaczone = $('input:button.ckb1', skladniki);
	var skZ = new Array();
	var skBez = new Array();
	$.each(zaznaczone, function(index, el) {
		if($(el).attr('name').substring(0, 3) == 'skZ')
			skZ.push($(el).attr('name').substring(3));
		else
			skBez.push($(el).attr('name').substring(3));
	});
	if(zCzyBez)
		return skZ;
	else
		return skBez;
}

function szukaj(sortujTyp, sortujKier, strona) {
	var filtrOddzialy = filtr_oddzialy();
	var filtrKat = filtr_kategorie(); //$('input:button.ckb1', kategorie);
	var filtrSkZ = filtr_skladniki(true);
	var filtrSkBez = filtr_skladniki(false);
	var filtrKuchnie = filtr_kuchnie();
	var szukajT = $('#szukajT').val();
	if(szukajT != null)
		szukajT = szukajT.replace(/ /gi, ",").replace(/ /gi, ",").replace(/ /gi, ",");
	var addr;
	gotourl(adresBazowy() + '/szukaj_' + to_string(szukajT) + '_' + to_string(sortujTyp) + '_' + to_string(sortujKier) 
			+ '_' + to_string(strona) + '_'	+ to_string(filtrOddzialy) + '_' + to_string(filtrKat) 
			+ '_' + to_string(filtrSkZ) + '_' + to_string(filtrSkBez) + '_' + to_string(filtrKuchnie) + '.html');
	
	return false;	
}

	

function szukajRestauracji() {
	var filtrOddzialy = filtr_oddzialy();
	var filtrKat = filtr_kategorie();
	var szukajT = $('#szukajT').val();
	if(szukajT != null)
		szukajT = szukajT.replace(/ /gi, ",").replace(/ /gi, ",").replace(/ /gi, ",");
	var addr;
	var filtrKuchnie = filtr_kuchnie();
	gotourl(adresBazowy() + '/restauracje_' + to_string(szukajT) + '_' + to_string(filtrOddzialy) + '_' + to_string(filtrKat) + '_' + to_string(filtrKuchnie) + '.html');
}

function ustaw_filtr(id, status) {
	var img = $('h3 img', '#' + id);
	var min = $('#' + id + 'Min');
	var max = $('#' + id + 'Max');
	if(status != 1) {
		max.hide();
		min.show();
		img.attr('src', 'templ_sweet/img/expand.png');
		$('input:button', min).parent().remove();
		var zaznMax = $('li input:button.ckb1', max);
		zaznMax.parent().clone().prependTo(min);
		//usun dzieci
		if(id == 'filtrKategorie') {
			$.each(zaznMax, function(index, ckb) {
				var elem = $('input:button[name='+ $(ckb).attr('ref') +']', max);
				if($(elem) && isChecked(elem)) {
					$('input:button[name='+ $(ckb).attr('name') +']','#' + id + 'Min').parent().remove(); 
				}
			});
		}
	}
	else {
		max.show();
		min.hide();
		img.attr('src', 'templ_sweet/img/collapse.png');
	}
}

function filtr_zwin(id) {
	var status = $('#' + id + 'Zwijak').val();
	if(status == 0) {
		$('#' + id + 'Zwijak').val(1);
		ustaw_filtr(id, 1);
		xajax_call('szukaj', 'filtr_zwijak', id, 1);
	}
	else {
		$('#' + id + 'Zwijak').val(0);
		ustaw_filtr(id, 0);
		xajax_call('szukaj', 'filtr_zwijak', id, 0);
	}
}

function zaznacz_kategorie(name, val) {
	var max = $('#filtrKategorieMax');
	var elem = $('#filtrKategorieMax input[name=' + name + ']');
	check(elem, val);
	checks($('input[ref=' + name + '] ', max), val);
	if(!val)
		checks($('input[name=' + elem.attr('ref') + '] ', max), val);
	else {
		//jezeli zaznaczasz dziecko i wszystkei pozostale zaznaczone,zaznacz nadkategorie
		var dzieci = $('input[ref=' + elem.attr('ref') + ']', max);
		var checkAll = true;
		$.each(dzieci, function(index, ckb) { 
		   if(!isChecked(ckb))
			   checkAll = false;
		});
		if(checkAll) {
			check($('input[name=' + elem.attr('ref') + ']', max), true);
		}
			
	}
}

$(document).ready(function() {
	//zaznacz podkategorie 
	
	//szukaj
	$('form.szukaj').submit(function() {
		szukaj();
		return false;
	});
	
	$('form.szukajRest').submit(function() {
		szukajRestauracji();
		return false;
	});
	
	$('#pokazRachunek, #wynPokazRachunek label').live('click', function() {
		xajax_call('szukaj', 'pokaz_rachunek', isChecked($('#pokazRachunek')));
	});

	//filtry
	$('.filtr h3').click(function() {
		filtr_zwin($(this).parent().attr('id'));
		return false;
	});
	
	$('#filtry .zwin').click(function() {
		filtr_zwin($(this).parent().parent().parent().attr('id'));
		return false;
	});	
	
	
	$('#filtrRestauracjeMin input:button').live('click', function() {
		var name = $(this).attr('name');
		checkboxClick($('input[name=' + name + ']', '#filtrRestauracjeMax'));
	});
	
	$('#filtrKuchnieMin input:button, #filtrKuchnieMin label').live('click', function() {
		var name = $(this).attr('name');
		checkboxClick($('input[name=' + name + ']', '#filtrKuchnieMax'));
	});

	$('#filtrKategorie input:button, #filtrKategorie label').live('click', function() {
		var name = $(this).attr('name');
		zaznacz_kategorie(name, isChecked($('input', $(this).parent())));
	});
	
	$('#filtrSkladniki input:button').live('click', function() {
		id = $(this).attr('name').substring(3);
		if(isChecked(this)) {
			if($(this).attr('name').substring(0, 3) == 'skZ') {
				checks($('input[name="skB' + id + '"]'), false);
				checks($('input[name="skZ' + id + '"]'), true);
			}
			else {
				checks($('input[name="skZ' + id + '"]'), false);
				checks($('input[name="skB' + id + '"]'), true);
			}
		}
		else {
			checks($('input[name="skZ' + id + '"]'), false);
			checks($('input[name="skB' + id + '"]'), false);
		}
	});
	
	$('#filtry input:button, #filtry label').live('click', function() {
		if($('#szukajTyp').val() == 1)
			szukaj();
		else
			szukajRestauracji();
	});
	
	//form.js
	$('.podpowiedzi').podpowiedzi();
	
	$('#ileChceszWydacHowTo,#ileChceszWydacHowTo2').change(function() {
		xajax_call('szukaj', 'minzam', $(this).val(), 0);
	});
	
	$('#menuMinZamowienia').change(function() {
		xajax_call('szukaj', 'minzam', $(this).val(), 1);
	});
	
	$('#menuCzynneRest input, #menuCzynneRest label').live('click', function() {
		xajax_call('szukaj', 'pokaz_czynne', isChecked($('#menuCzynneRest input')), 1);
	});
	
	$('#czynneRestauracjeHowTo, #czynneRestHowTo label').live('click', function() {
		xajax_call('szukaj', 'pokaz_czynne', isChecked($('#czynneRestauracjeHowTo')), 0);
	});
	
	$('#czynneRestauracjeHowTo2, #czynneRestHowTo2 label').live('click', function() {
		xajax_call('szukaj', 'pokaz_czynne', isChecked($('#czynneRestauracjeHowTo2')), 0);
	});
	
});

function szukaj_co_potrzeba() {
	if($('#szukajTyp').val() == 1)
		szukaj();
	else
		szukajRestauracji();
}

function usun_param(param, val) {
	switch(param) {
		case 'minZam':
			xajax_call('szukaj', 'minzam', '', 1);
			break;	
		case 'ulica':
			xajax_call('szukaj', 'ustaw_ulice_dostawy', '', 1);
			break;	
		case 'szukaj':
			$('#szukajT').val('');
			szukaj_co_potrzeba();
			break;
		case 'czynne':
			xajax_call('szukaj', 'pokaz_czynne', false, 1);
			break;		
		case 'oddzial':
			checkboxClick($('#filtrRestauracjeMax input[name=' + val + ']'));
			szukaj_co_potrzeba();
			break;
		case 'kuchnia':
			checkboxClick($('#filtrKuchnieMax input[name=' + val + ']'));
			szukaj_co_potrzeba();
			break;	
		case 'kategoria':
			zaznacz_kategorie(val, false);
			szukaj_co_potrzeba();
			break;
		case 'skZ':
			checkboxClick($('#filtrSkladnikiMax input[name=skZ' + val + ']'));
			szukaj_co_potrzeba();
			break;		
		case 'skB':
			checkboxClick($('#filtrSkladnikiMax input[name=skB' + val + ']'));
			szukaj_co_potrzeba();
			break;	
		default: 
			break;
	}
}


function zaznaczona_podpowiedz(podpowiedziDiv) {
	var zazn = $('ul li.hover', podpowiedziDiv);
	if(zazn.length > 0)
		return parseInt($(zazn[0]).attr('ref'));
	return 0;
}

function zaznacz_podpowiedz(podpowiedziDiv, podp) {
	$('ul li.hover', podpowiedziDiv).removeClass('hover');
	$('ul li[ref=' + podp + ']', podpowiedziDiv).addClass('hover');
}

function liczba_podpowiedz(podpowiedziDiv) {
	var ostatni = $('ul li:last', podpowiedziDiv);
	if(ostatni.length > 0)
		return parseInt($(ostatni[0]).attr('ref'));
	return 0;
}

$.fn.podpowiedzi = function() {
	$('input', this).bind('keydown', function(e) {
		var key = e.keyCode || e.which;
		var parent = $(this).parent();
		//w dol
		if(key == 40 || key == 34) {
			var podp = zaznaczona_podpowiedz(parent);
			if(key == 40)
				podp += 1;
			else
				podp += 12;
			if(podp > liczba_podpowiedz(parent))
				podp = 0;
			zaznacz_podpowiedz(parent, podp);
			$($('ul', parent)[0]).scrollTo($('li[ref=' + podp + ']', parent));
			e.stopPropagation();
		// gore
		} else if(key == 38 || key == 33) {
			var podp = zaznaczona_podpowiedz($(this).parent());
			if(key == 38)
				podp -= 1;
			else
				podp -= 12;
			
			if(podp < 0)
				podp = liczba_podpowiedz(parent);
			zaznacz_podpowiedz(parent, podp);
			$($('ul', parent)[0]).scrollTo($('li[ref=' + podp + ']', parent));
			e.stopPropagation();
		//ESC
		} else if(key == 27) {
			$('ul', parent).html('').hide();
		//ENTER	
		} else if(key == 13) {
			var podp = zaznaczona_podpowiedz(parent);
			if(podp > 0)
				$('input', parent).val($('li[ref=' + podp + ']', parent).html());
			else
				$('input', parent).val('');
			$($('ul', parent)[0]).hide();
			var refresh = $($('ul', parent)[0]).attr('id') == 'listaPodpowiedziHowTo' ? 0 : 1;
			if(refresh == 1)
				refresh = $($('ul', parent)[0]).attr('id') == 'listaPodpowiedziHowTo2' ? 0 : 1;
			if(podp >= 0)
				xajax_call('szukaj', 'ustaw_ulice_dostawy', $('input', parent).val(), refresh);
		}
	});
	
	$('input', this).bind('keyup', function(e){
		var key = e.keyCode || e.which;;
		if( key != 40 && key != 38 && key != 27 && key != 13 && key != 33 && key != 34) {
			var ulId = $('ul', $(this).parent()).attr('id');
			xajax_call('szukaj', 'podpowiedzi_sweet', $(this).val(), ulId);
		}
	});
	
	$('li', this).live('click', function(){
		$('input', $($(this).parent()).parent()).val($(this).html());
		$(this).parent().hide();
		var refresh = $(this).parent().attr('id') == 'listaPodpowiedziHowTo' ? 0 : 1;
		if(refresh == 1)
			refresh = $(this).parent().attr('id') == 'listaPodpowiedziHowTo2' ? 0 : 1;
		xajax_call('szukaj', 'ustaw_ulice_dostawy', $(this).html(), refresh);
	});
	
	$('li', this).live('mouseover', function(){
		zaznacz_podpowiedz($(this).parent().parent(), $(this).attr('ref'))
	});
	
	$('li', this).live('mouseout', function(){
		zaznacz_podpowiedz($(this).parent().parent(), -1)
	});
}

