function fn_filter_global_products(name, carrier_id, manufacturer, show_all) {
	name = name || '';
	carrier_id = carrier_id || false;
    manufacturer = manufacturer || false;
	show_all = show_all || false;

	var visible_global_products = new Array();
	var condition = false;

	if (show_all){
		$('.global-products-popular').hide();
		$('.global-products').show();
		$('.global-products-empty').hide();
		$('#most-popular-link').addClass('most-popular-link-on');
		$('.for-selector, #hide_all_gp').removeClass('hidden');
		$('.global-product:visible .lazyLoadGp').trigger('search_gp');
                gp_add_headers();
                return;
	}

	for (product in global_products){
		condition = Boolean(global_products[product].name.indexOf(name.toLowerCase()) + 1);
		if (carrier_id){
//			condition = condition && Boolean(global_products[product].carrier_id == carrier_id)
			condition = condition && Boolean(global_products[product].carrier_id.indexOf('.' + carrier_id + '.') + 1)
		}
        if (manufacturer){
			condition = condition && Boolean(global_products[product].manufacturer == manufacturer)
		}
		if (condition){
			visible_global_products[product] = global_products[product];
		}
	}
	//normal sort by name
	if (visible_global_products.length > 0 && (name || carrier_id || manufacturer || show_all)){
		$('.global-products-popular').hide();
		$('.global-products').show();
		$('.global-products-empty').hide();
		$('#most-popular-link').addClass('most-popular-link-on');
	//show empty message
	}else if(visible_global_products.length == 0 && (name || carrier_id || manufacturer)){
		$('.global-products-popular').hide();
		$('.global-products').hide();
		$('.global-products-empty').show();
		$('#most-popular-link').addClass('most-popular-link-on');
	//show popular
	}else{
		$('.global-products-popular').show();	
		$('.global-products').hide();
		$('.global-products .global-product').addClass('hidden');
		$('.global-products-empty').hide();
		$('#most-popular-link').removeClass('most-popular-link-on');
        gp_add_headers();
		return;
	}
	//hide all devices
	$('.global-products .global-product').addClass('hidden');
	
	//show founded devices
	if (visible_global_products.length > 0){
		$('#hide_all_gp').show();
	}
	for (product in visible_global_products){
		$('.global-product a[rev=' + product + ']').parent().removeClass('hidden');
	}
	//set shadow on the first element
	$('.global-products .global-product-name').removeClass('gp-name-first');
	$('.global-products .global-product:visible a').eq(0).addClass('gp-name-first');
	$('.global-product:visible .lazyLoadGp').trigger('search_gp');
        gp_add_headers();
}
function fn_toggle_device_selector(show)
{
	show = show || false;

	if (show) {
		$('#gf-link-expand, #ds-link-expand').hide();
		$('#gf-link-minimize, #ds-link-minimize, .global-products-cover, .device-selector').show();
		$('.central-column').removeClass('show-top');
	} else {
		$('#gf-link-expand, #ds-link-expand').show();
		$('#gf-link-minimize, #ds-link-minimize, .global-products-cover, .device-selector').hide();
		$('.central-column').addClass('show-top');
	}
	
	$.cookie.set('show_device_selector', show);
}

function fn_init_device_selector()
{
	$('#global_selector').attr('style', 'min-height: 0px;');

	$('#global_filter_by_name').bind('keyup', function(){
		var manuf = $('#global_filter_by_manuf').attr('value');
        var carrier = $('#global_filter_by_carrier').attr('value');
		var name = $(this).attr('value');

		fn_filter_global_products(name, carrier, manuf);
	});
	$('#global_filter_by_carrier').bind('change', function(){
		var name = $('#global_filter_by_name').attr('value');
		var manuf = $('#global_filter_by_manuf').attr('value');
        var carrier = $(this).attr('value');

		fn_filter_global_products(name, carrier, manuf);
	});
        $('#global_filter_by_manuf').bind('change', function(){
		var carrier = $('#global_filter_by_carrier').attr('value');
        var name = $('#global_filter_by_name').attr('value');
		var manuf = $(this).attr('value');
                
		fn_filter_global_products(name, carrier, manuf);
	});
        
       //set shadow on the first element
	$('.global-product:visible a').eq(0).addClass('gp-name-first');

	$('#gf-link-expand, #ds-link-expand').bind('click', function(){
		fn_toggle_device_selector(true);
		
	});
	$('#gf-link-minimize, #ds-link-minimize').bind('click', function(){
		fn_toggle_device_selector(false);
	});
	
	$('#show_all_gp_button').click(function(){
		var _manuf = $('#global_filter_by_manuf').attr('value');
        var _carrier = $('#global_filter_by_carrier').attr('value');
		var _name = $('#global_filter_by_name').attr('value');
		var name = _name || false;
		var carrier = _carrier||false;
		var manuf = _manuf||false;
		if(carrier || manuf || name){
			fn_filter_global_products(name, carrier, manuf, false);
		}else{
			fn_filter_global_products(false, false, false, true);
		}
	});
}

//add headers 
//Заголовок после каждого бренда
function gp_add_headers(){
	$('.gp-manufacturer-title').remove();
    var cur_manuf = false;
    $('.global-products .global-product:not(#hide_all_gp)').each(function(){
        var manuf = $(this).attr('rev');
        if (manuf !== cur_manuf && $(this).is(':visible') && manuf !== ''){
            cur_manuf = manuf;
            $(this).before('<h3 class="gp-manufacturer-title clear-both">'+ manuf +'</h3>');
        }
    });
}
