function number_format( number, decimals, dec_point, thousands_sep ) {
    // http://kevin.vanzonneveld.net
    var n = number, prec = decimals;
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };
 
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
 
    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
 
    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }
    if (s.indexOf(dec) === -1 && prec > 1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}
/* Opis kodów
 * < 100 	 - systemowe 404, itd
 * 100[0-4]  - logowanie
 * 101[5-9]	 - newsletter
 * 10[11-19] - koszyk
 * 10[21-25] - szukanie
 * 10[26-29] - produkt
 * 10[30-40] - rejestracja
 * 10[41-45] - ankieta
 * 10[60-61] - przechowalnia
 * 10[70-71] - otoczka produktu
 */

$.msg = function(code, text){
	if (code == null)
	{
		$('#message').hide();
		return;
	}
	var m = Array(
		Array(1, 'error', 'Podany adres jest nie prawidłowy.'), // 404
		Array(2, 'warning', 'Uzupełnij wszystkie pola.'),
		
		Array(1001, 'info', 'Jesteś już zalogowany.'),	// wejscie zalogowanym na strone shop/login
		Array(1002, 'error', 'Niepoprawny login bądz hasło.'),
		Array(1003, 'info', 'Zostałeś zalogowany do sklepu.'),
		Array(1004, 'info', 'Zostałeś wylogowany ze sklepu.'),
		Array(1005, 'info', 'Zostałeś zalogowany do sklepu. Zachwile powrócisz do poprzedniej strony.'),
		Array(1006, 'warning', 'Twoje konto jest nie aktywne, nie możesz się zalogować do systemu.'),
		
		Array(1015, 'error', 'Podany adres e-mail jest niepoprawny.'),
		Array(1016, 'warning', 'Musisz zaakceptować przetwarzanie danych osobowych aby zapiać się do newslettera.'),
		Array(1017, 'info', 'Zostałeś zapisany do newslettera.'),
		Array(1018, 'info', 'Zostałeś wypisany z newslettera.'),
		
		Array(1011, 'info', 'Twój koszyk został wyczyszczony.'),
		Array(1012, 'info', 'Twój koszyk został zaaktualizowany.'),
		Array(1013, 'info', 'Zamówienie zostało dodane do realizacji.'),
		Array(1014, 'info', 'Produkt został dodany do koszyka.'),
		Array(1010, 'info', 'Nie posiadasz żadnych produktów w koszyku.<br/> Twoje zamówienie nie może zostać zrealizowane.'),

		
		Array(1021, 'warning', 'Wyszukiwany ciąg musi zaweriać co najmniej 3 znaki.'),
		Array(1022, 'warning', 'Wyszukiwany ciąg zawiera niedozwolone znaki.'),

		Array(1026, 'error', 'Produkt nie został odnaleziony.'),
		Array(1027, 'info', 'Nie znaleziono żadnych produktów pasujących do szukanego kryterium.'),
		Array(1028, 'info', 'Komentarz został dodany i oczekuje w kolejce do moderacji.'),
		Array(1029, 'info', 'Komentarz jest niepoprawny.'),
		
		Array(1030, 'error', 'Musisz wybrać typ klienta aby przejść dalej.'),
		Array(1035, 'info', 'Twoje konto zostało zaaktywowane'),
		Array(1036, 'info', 'Klucz jest niepoprawny'),

		Array(1041, 'warning', 'Już oddałeś głos w tej ankiecie.'),
		Array(1042, 'info', 'Dziękujemy za oddanie głosu!'),
		
		Array(1051, 'info', 'Zamównie jest w trakcie realizacji.'),		
		Array(1052, 'error', 'Zamównie nie zostało zapisane, skontaktuj się z administratorem strony.'),
		
		Array(1061, 'info', 'Produkt został dodany do przechowalni.')
		
	);
	var size = m.length;
	for(i=0; i<size; i++)
	{
		if(m[i][0] == code)
		{
			$('#message').addClass('msg_'+m[i][1]).show();
			$('#message #icon').addClass('icon_'+m[i][1]);
			$('#message .text').html(m[i][2]);
			return;			
		}
	}
};
var redirect_adress = '';
$.red = function(address)
{
	//	window.top.location.href = window.top.location.protocol+'//'+window.top.location.hostname+'/index.php'+redirect_adress;
	window.top.location.href = window.top.location.protocol+'//'+window.top.location.hostname+'/'+redirect_adress;
	//window.top.location.href = 'http://localhost/hachette/index.php'+redirect_adress;
}

$.redirect = function(address)
{
	redirect_adress = address;
	setTimeout('$.red();', 5000);
}
	
$(document).ready(function(){
	
	$('tr:odd').css('background', '#F1F5FA');
	
	var color ='';
	$('tr').hover(
	function(){
		color = $(this).css('background');
		$(this).css('background', '#A4C5FF');
	},function(){
		$(this).css('background', color);
	});
	
	$('.gallery a').lightBox();

	$('.menu_box li.submenu,').hide();
	$('.menu_box li.submenu').prev().toggle(function(){ $(this).next().show();
	}, function(){	$(this).next().hide();	});
	
	$('#search_input').keypress(function(e){
		if(e.which == 13) $('#search_standart').click();	
	});
	$('#search_standart').click(function(){
		var re =  /\.\//;
		if (re.exec($('#search_input').val())){
			$.msg(1022);	return;	}
		if ($('#search_advance').attr('class') == 'A'){	
			if ($('#search_input').val().length > 2)
			 window.top.location.href = window.top.location.protocol+'//'+window.top.location.hostname+'/szukaj/'+$('#search_input').val();
			else	$.msg(1021);
		}else{
			var search = '';
			var re = /\s+/g;
			$('input.adv_search ').each(function(){
				search += !$(this).hasClass('nofocus') ? $(this).val().replace(re, '_')+',' : ',';
			});
			search += $('.def_serie').val()+','+$('.def_tag').val();
			window.top.location.href =  window.top.location.href = window.top.location.protocol+'//'+window.top.location.hostname+'/szukaj/'+search;
		}
	});
	
	$('#search_advance').click().toggle(function(){
		$('#advance').show();
		$('#search_advance').html('Szukanie proste').attr('class', 'S');
		$('#search_input').val('tytuł')./*addClass('nofocus').*/addClass('adv_search');
	},function (){
		$('#advance').hide();
		$('#search_advance').html('Szukanie zaawansowane').attr('class', 'A');
		if($('#search_input').hasClass('nofocus'))	$('#search_input').val('').removeClass('nofocus');
		$('#search_input').removeClass('adv_search');
	});
	
	$('.adv_search').focus(function(){ if ($(this).hasClass('nofocus')) $(this).val('').removeClass('nofocus'); });
	
	$('.adv_search').blur(function(){
		if ($(this).val().length == 0)
		{
			$(this).addClass('nofocus');
			var regexp = /(?:def)_(\w+)/;
			var match = regexp.exec($(this).attr('class'));
			if (match != null){
				var regexp2 = /_/;
				match[1] = match[1].replace(regexp2, ' ');
				$(this).val(match[1]);
			}
		}
	});
	
	$('.add_comment').click().toggle(function(){
		$('.comment').show();
	}, function(){
		$('.comment').hide();
	});
		
});

	
