$(document).ready(function(){
    /*** producer filter ***/
    /* if($('div#filter_producer > p').length > 5) {
     $('div#filter_producer > p:gt(4)').hide();
     $("div#producers_more").show();
     $('div#producers_more > a').click(function(){
     $('div#filter_producer > p:gt(4)').toggle();
     return false;
     });
     }
     */
    /*** parameters ***/
    $('input.param_left.f').data('empty', 'od');
    $('input.param_right.f').data('empty', 'do');
    $('div.filter_param > input.f').blur(function(){
        if ($(this).val() == '') {
            $(this).val($(this).data('empty'));
        }
    });
    $('div.filter_param > input.f').focus(function(){
        if ($(this).val() == $(this).data('empty')) {
            $(this).val('');
        }
    });
    
    $('div.filter_reset').click(function(){
        /*
         var path = $('input#current_path').val();
         var args = $('input#current_args').val();
         if(args) {
         path += '?'+args;
         }
         window.location = path*/
        var args = $('input#current_args').val();
        var path = $('input#path_to_filter').val();
        var params = [];
        params.push('');
        var product_str = $('#filter_form input.get_param[name=product]').val();
        params.push(product_str);
        var company_str = $('#filter_form input.get_param[name=company]').val();
        params.push(company_str);
        var hasfiles = $('#filter_form input.get_param[name=files]').val();
        params.push(hasfiles);
        var hascad = $('#filter_form input.get_param[name=cad]').val();
        params.push(hascad);
        var category_str = $('#search_product_block_form #id_category option:selected').val();
        params.push(category_str);
        
        var filterstr = 'filter_' + params.join(';') + '/'
        
        icons = path.search('icons/');
        var href = '';
        if (icons > 0) {
            href = path.slice(0, icons) + filterstr + 'icons/';
        }
        else {
            href = path + filterstr
        }
        if (args) {
            href += '?' + args;
        }
        
        window.location = href;
        //$('#search_product_form').submit();
        return false;
    });

    $('div.filter_reset_company').click(function(){
        /*
         var path = $('input#current_path').val();
         var args = $('input#current_args').val();
         if(args) {
         path += '?'+args;
         }
         window.location = path*/
        var args = $('input#current_args').val();
        var path = $('input#path_to_filter').val();
        var params = [];
        params.push('');
        var product_str = $('#filter_form input.get_param[name=product]').val();
        params.push(product_str);
        var company_str = $('#filter_form input.get_param[name=company]').val();
        params.push(company_str);
        var hasfiles = $('#filter_form input.get_param[name=files]').val();
        params.push(hasfiles);
        var hascad = $('#filter_form input.get_param[name=cad]').val();
        params.push(hascad);
        var category_str = $('#search_product_block_form #id_category option:selected').val();
        params.push(category_str);
		
		var parameters = $('#filter_form input.get_param[name=params]').val();
        
		if (parameters) {
	        var filterstr = 'filter_' + params.join(';') + '_' + parameters + '/';
		} else {
			var filterstr = 'filter_' + params.join(';') +  '/';
		}
        
        icons = path.search('icons/');
        var href = '';
        if (icons > 0) {
            href = path.slice(0, icons) + filterstr + 'icons/';
        }
        else {
            href = path + filterstr
        }
        if (args) {
            href += '?' + args;
        }
        
        window.location = href;
        //$('#search_product_form').submit();
        return false;
    });
	
	$('div.filter_reset_params').click(function(){
        /*
         var path = $('input#current_path').val();
         var args = $('input#current_args').val();
         if(args) {
         path += '?'+args;
         }
         window.location = path*/
		var args = $('input#current_args').val();
        var path = $('input#path_to_filter').val();
        var params = [];
        params.push($('#filter_form input.get_param[name=companies]').val());
        var product_str = $('#filter_form input.get_param[name=product]').val();
        params.push(product_str);
        var company_str = $('#filter_form input.get_param[name=company]').val();
        params.push(company_str);
        var hasfiles = $('#filter_form input.get_param[name=files]').val();
        params.push(hasfiles);
        var hascad = $('#filter_form input.get_param[name=cad]').val();
        params.push(hascad);
        var category_str = $('#search_product_block_form #id_category option:selected').val();
        params.push(category_str);
        
        var filterstr = 'filter_' + params.join(';') + '/'
        
        icons = path.search('icons/');
        var href = '';
        if (icons > 0) {
            href = path.slice(0, icons) + filterstr + 'icons/';
        }
        else {
            href = path + filterstr
        }
        if (args) {
            href += '?' + args;
        }
        
        window.location = href;
        //$('#search_product_form').submit();
        return false;
    });
    
    /*** Submit form ***/
    $('div.filter_submit').click(function(){
        var params = [];
        
        var producers = [];
        $('#company_filter input[name=company]:checkbox:checked').each(function(){
            producers.push($(this).val());
        });
		if (producers.length == 0) {
			$('p.values input[name=company]:hidden').each(function(){
	            producers.push($(this).val());
	        });
		}
		
        params.push(producers.join(','));
        var product_str = $('#filter_form input.get_param[name=product]').val();
        params.push(product_str);
        var company_str = $('#filter_form input.get_param[name=company]').val();
        params.push(company_str);
        var hasfiles = $('#filter_form input.get_param[name=files]').val();
        params.push(hasfiles);
        var hascad = $('#filter_form input.get_param[name=cad]').val();
        params.push(hascad);
        var category_str = $('#filter_form input.get_param[name=category]').val();
        params.push(category_str);
        
        // product parameters
        var pparameters = []
        $('div#parameters > div.item').each(function(){
            var data = $('div.filter_param', this);
            var type = $('input[name=param_type]', data).val()
            var id = $('input[name=param_id]', data).val()
            var values = null;
            
            switch (type) {
                case 'liczba':
                    var left = filter_get_price($('input.param_left', data));
                    var right = filter_get_price($('input.param_right', data));
                    
                    if (left || right) {
                        values = left + ',' + right;
                    }
                    break;
                case 'wyliczenie':
				case 'wyliczenie_wielokrotne':
                case 'tekst':
                    var val = $('select[name=param_value] > option:selected', this).val()
                    if (val) {
                        values = val
                    }
                    break;
            }
            if (values) 
                pparameters.push([id, values].join(','));
        });
        
        if (params.join(';') == ';;;;' && !pparameters.length) {
            alert("Nie wybrałeś żadnych kryteriów.");
            return false;
        }
		
		if (pparameters.length) {
	        var filterstr = 'filter_' + params.join(';') + '_' + pparameters.join(';');
		} else {
			var fsp = $('form#filter_form input[name=filterstr_params]:hidden').val();
			if (!fsp) {
				fsp = '';
			}
			else {
				fsp = '_' + fsp
			}
			var filterstr = 'filter_' + params.join(';') + fsp;
		}
		
		
        
        
        var path = $('input#path_to_filter').val();
        var args = $('input#current_args').val();
        
        icons = path.search('icons/');
        var href = '';
        if (icons > 0) {
            href = path.slice(0, icons) + filterstr + '/icons/';
        }
        else {
            href = path + filterstr + '/'
        }
        if (args) {
            href += '?' + args;
        }
        //alert(href);
        window.location = href
        return false;
    });
    
    $('.to_hide').hide();
    $('.filter_more').click(function(){
        $('.to_hide').show();
        $('.filter_less').show();
        $(this).hide();
    });
    
    $('.filter_less').click(function(){
        $('.to_hide').hide();
        $('.filter_more').show();
        $(this).hide();
    });
	
	$('a.options_cb_link').click(function() {
		$(this).parent().children('input:checkbox').click();
		$('div.filter_submit').click();
	});
});


function filter_get_price(priceElem){
    if ($(priceElem).data('empty') == $(priceElem).val()) {
        return '';
    }
    var matched = $(priceElem).val().replace(',', '.').replace(' ', '').match(/^\d+\.?\d*$/);
    return matched ? matched : '';
}

function get_if_not_empty(value){
    return value ? value : null
}


