$(function()
{	
	var tiltai = {
		tiltai : {
			full : {comp_types : [], countries : []},
			current : {comp_types : [], countries : []},
			site_url : '',
			lang : {
				choose : 'choose'
			}
		}
	};
	$.extend(tiltai);
	
	/*
	 * Filtru skaitiniu reiksmiu (firmu kiekiu) atnaujinimas vyksta taip:
	 * pirmiausia panaudojamas pilnu reiksmiu masyvas (kuriame yra teisingi skaiciai, jei neuzdetas ne vienas filtras).
	 * Kiekvieno selecto reiksmes pildant, ziuri ar jo skaitines reiksmes itakojantys kiti filtrai nera su kazkokia
	 * reiksme parinkta. Jei taip - tuscius skliaustus palieka.
	 * Tada, jei yra parinktu filtru reiksmiu, iskvieciamas ajax skriptas, kuris pagal tas reiksmes, parsiuncia naujus skaitinius
	 * duomenis. Tada per nauja iskvieciama atnaujinimo funkcija, su parametru use_full = false, kas reiskia kad naudojami parsiusti
	 * duomenys (full), o ne pilnu reiksmiu duomenys (current). Tada, pildant skaitines reiksmes, jau neziurima ar parinktos filtru reiksmes,
	 * kadangi naudojamos skaitines reiksmes jau atsizvelgia i filtrus (nes jos parsiustos pagal filtru reiksmes).
	 * Po to, per nauja ajax skriptas nebekvieciamas.
	 */
	
	var to_update = true;
	$.tiltai.update_selects = function(use_full)
	{
		if (use_full)
			data_arr = $.tiltai.full;
		else
			data_arr = $.tiltai.current;
		
        var type = $("select[name='type']").val();
        var country = $("select[name='country']").val();
        var city = $("select[name='city']").val();
        
        // Jei tik pakeista kazkurio filtro reiksme (ir dar neparsiusti nauji duomenys), t.y.
        // use_full == true, bei nors vieno filtro reiksme nera standartine, tada reiskia siusim naujus
        // duomenis.
        var reload_filtered_data = (use_full && (type > 0 || country > 0 || city > 0) ? true : false);
        
		var html;
		
		html = '<option value="-1">'+$.tiltai.lang.choose+'</option>';
		html = html + '<option value="-1"></option>';
		//alert(1);
		for (var i = 0; i < data_arr.comp_types.length; i++) {
			var comp_count = '';
			if (data_arr.comp_types[i].empty == false && (use_full == false || ($("select[name='country']").val() < 0 && $("select[name='city']").val() < 0)))
				comp_count = '(' + data_arr.comp_types[i].comp_count + ')';	
			html = html + '<option value="'+data_arr.comp_types[i].id+'">'+data_arr.comp_types[i].name+' '+comp_count+'</option>';
			//$("select[name='type'] option[value="+data_arr.comp_types[i].id+"]").html(data_arr.comp_types[i].name+' '+comp_count);
		}
		//alert(2);
		$("select[name='type']").html(html);
		
		// $("select[name='type']").each(function()
		// {
			// while (this.options.length > 0)
				// this.remove(0);
			
			// for (var i = 0; i < data_arr.comp_types.length; i++) {
				// var comp_count = '';
				// if (data_arr.comp_types[i].empty == false && (use_full == false || ($("select[name='country']").val() < 0 && $("select[name='city']").val() < 0)))
					// comp_count = '(' + data_arr.comp_types[i].comp_count + ')';	
				// // var option = new Option();
				// // option.value = data_arr.comp_types[i].id;
				// // option.text = data_arr.comp_types[i].name+' '+comp_count;
				// // try
				// // {
					// // this.add(option, null); // standards compliant
				// // }
				// // catch(ex)
				// // {
					// // this.add(option); // IE only
				// // }
				
				// //$("select[name='type'] option[value="+data_arr.comp_types[i].id+"]").html(data_arr.comp_types[i].name+' '+comp_count);
			// }
		// }
		// );
		//alert(3);
		
		// Jei pasirinktas tipas 'Pasirinkite', jo id (-1) turi ir visi tusti itemai (splitteriai),
		// todel standartinis val() neveiks, todel jo value priskiriam kitaip
		if (type < 0)
			$("select[name='type'] option:first").attr('selected', 'selected');
		else
			$("select[name='type']").val(type);
		
        // Jei dar karta krausim duomenis, tada nemanipuliuojam selectu, kad isliktu ju reiksmes.
        // Jei duomenu nebekrausim, tada irasom i selectus dabartinius duomenis.
		if (reload_filtered_data == false) {
            
            html = '<option value="-1">'+$.tiltai.lang.choose+'</option>';
            for (var i = 0; i < data_arr.countries.length; i++) {
                var comp_count = '';
                if (use_full == false || $("select[name='type']").val() < 0)
                    comp_count = '(' + data_arr.countries[i].comp_count + ')';	
                html = html + '<option value="'+data_arr.countries[i].id+'">'+data_arr.countries[i].fullname_native+' '+comp_count+'</option>';
            }
            $("select[name='country']").html(html);
            $("select[name='country']").val(country);
            
            html = '<option value="-1">'+$.tiltai.lang.choose+'</option>';
            if (country > 0)
                for (var i = 0; i < data_arr.countries.length; i++)
                    if (data_arr.countries[i].id == country)
                        for (var j = 0; j < data_arr.countries[i].cities.length; j++)
                        {
                            var comp_count = '';
                            if (use_full == false || $("select[name='type']").val() < 0)
                                comp_count = '(' + data_arr.countries[i].cities[j].comp_count + ')';	
                            html = html + '<option value="'+data_arr.countries[i].cities[j].id+'">'+data_arr.countries[i].cities[j].name+' '+comp_count+'</option>';
                        }
            
            $("select[name='city']").html(html);
            $("select[name='city']").val(city);
        }
		
        // Parsiunciam naujus duomenis
		if (reload_filtered_data) {
            var data = {fn : 'get_comp_count'};
            if (type > 0 ) data.type = type;
            if (country > 0 ) data.country = country;
            if (city > 0 ) data.city = city;
            
            $.post($.tiltai.site_url + 'ajax', data, function(text)
            {
                var json = eval(text);
                
                $.tiltai.current.comp_types = json.comp_types;
                $.tiltai.current.countries = json.countries;
                to_update = false;
                $.tiltai.update_selects(false);
            }, 'text');
		}
	}
	$("select[name='type']").change(function() {to_update = true; $.tiltai.update_selects(true)});
	$("select[name='country']").change(function() {to_update = true; $.tiltai.update_selects(true)});
	$("select[name='city']").change(function() {to_update = true; $.tiltai.update_selects(true)});
	
	$.tiltai.items_filter = function(sel, site_url, items_url, city)
	{
		$.tiltai.site_url = site_url;
		
		$("form", sel).submit(function()
		{
			var params = {};
			
			params.type 		= $("select[name='type']").val();
			params.country 		= $("select[name='country']").val();
			params.city 		= $("select[name='city']").val();
			params.price_from 	= $("input[name='price_from']").val();
			params.price_to 	= $("input[name='price_to']").val();
			
			document.location.href = url_add_params(items_url, params);
			return false;
		});
		
		$.tiltai.update_selects(true);
		if (city > 0)
			$("select[name='city']").val(city);
	}
});
