$.ajaxSetup( {
    type : "POST",
    dataType:"json"
});

var form_koupit = function(){
    var parametry = "zbozi="+$('input[name=zbozi]',$(this)).attr('value');
	
    if($('input[name=varianta]:radio:checked').size()>0){
        parametry += "&varianta="+$('input[name=varianta]:radio:checked').val();
    }else if($('input[name=varianta],select[name=varianta],input[name=varianta]:radio:checked',$(this)).size()>0){
        parametry += "&varianta="+$('input[name=varianta],select[name=varianta],input[name=varianta]:radio:checked',$(this)).val();
    }
    var dilok = true;
    $.each($(".js_dilKomplet"),function(){
        if($(this).val()==0){
            dilok = false;
        }
        parametry += "&"+$(this).attr("name")+"="+$(this).val();
    });
    if(!dilok){
        alert("Je potřeba z roletky upřesnit variantu dílu");
        return false;
    }
    parametry += "&ks="+$('input[name=ks],select[name=ks]',$(this)).val();

    if($('.js_barva').size()>0){
        parametry +="&barva="+$('.js_barva').val(); 
    }	
    if($('.js_velikost').size()>0){
        parametry +="&velikost="+$('.js_velikost').val(); 
    }	

    // Dynamické číselníky
    $('option.js_ciselniky:selected').each(function(){
        parametry+= "&ciselniky["+$(this).attr('rel')+"][chod_id]="+$(this).val()+"&ciselniky["+$(this).attr('rel')+"][chod_nazev]="+$(this).text();
    });
    $('option.js_ciselnikyid:selected').each(function(){
        parametry+= "&"+$(this).parent().attr('name')+"[chod_id]="+$(this).val();
    });
    $('input.js_ciselniky:checked').each(function(){
        parametry+= "&"+$(this).attr('name')+"[chod_id]="+$(this).val()+"&"+$(this).attr('name')+"[chod_nazev]="+$(this).attr('rel');
    });
	
    // Pevné varianty s číselníkami
    $('select.js_varciselniky').each(function(){
        parametry+= "&varciselniky["+$(this).attr('rel')+"]="+$(this).val();
    });
    
    if($(".js_prislusenstviKs",$(this)).size()>0){
        $(".js_prislusenstviKs",$(this)).each(function() {
            if($(this).val() > 0){
                parametry += "&"+$(this).attr('name')+"="+$(this).val();
            }
        });
    }
    if($(".js_prislusenstviVar",$(this)).size()>0){
        $(".js_prislusenstviVar",$(this)).each(function() {
            if($(this).val() > 0){
                parametry += "&"+$(this).attr('name')+"="+$(this).val();
            }
        });
    }
    
    $('.js_poznamka',$(this)).each(function(){
        parametry+= "&"+$(this).attr('name')+"="+$(this).val();
    });
    
    dialog_koupit(parametry);	
    return false;
}
var dialog_koupit = function(parametry){
    $(".js_dialog").remove();
    $("body").append("<div class='js_dialog' title='Vkládání do košíku...'><img src='/obr/loading2.gif' alt='Načítám...' /></div>");
    $(".js_dialog").dialog({
        width:500,
        modal:true
    });
    $(".js_dialog").dialog("widget").addClass("dialog-koupit");
    $(".js_dialog").dialog("open");
       
    $.ajax({
        type: "POST",
        url: "/json.php?akce=kosik-add",
        data: parametry,
        dataType:'json',
        success: function(json){
            $(".js_dialog").remove();
            $("body").append(json.dialog);
            if(json.chyba == "varianta" || json.chyba == "odber"){
                /** 
                    * @todo tlačítka, akce
                    */
                $(".js_dialog").dialog({
                    width:500,
                    modal:true,
                    buttons:{
                        Zpět:function(){
                            $(this).dialog("close");
                        },
                        'Vložit do košíku':form_koupit
                    }
                });                    
            }else{
                $(".js_dialog").dialog({
                    width:650,
                    modal:true
                });
            }
            $(".js_dialog").dialog("open");
            $(".js_dialog").dialog("widget").addClass("dialog-koupit");
            $(".js_dialog .js_zavritDialog").click(function(){
                $(".js_dialog").dialog("close");    
            });
            if(json.stav == "ok"){
                $('.sumKos, .js_sumKos').html(json.sum);
                $('.js_sumKs').html(json.sumks);
                $('.js_soucet').html(json.soucet);
                $('#polozek').html(json.polozek);
                if(typeof koupit_complete == "function"){
                    koupit_complete(json);
                }                
            }       
        }
    });
};
var prihlaseniDialog = function (stav){
    var odeslat = function(){
        var email = $("form.js_dialog input[name=_login]").val();
        var heslo = $("form.js_dialog input[name=_pswd]").val();
        $("form.js_dialog").empty();
        $('form.js_dialog').append($.DIV({
            Class:'js_dialog',
            title:"Přihlášení"
        },$.IMG({
            alt:"Načítám...",
            src:"/obr/loading2.gif"
        })));
        $("form.js_dialog").load("/json.php?akce=dialog-prihlaseni",{
            _login:email,
            _pswd:heslo,
            uri:location.href.replace(/#.*/,"")
            },function(){
            $("form.js_dialog input[name=email]").val(email);
            $("form.js_dialog input[name=email]:first").focus();
        });            
    };
    $("form.js_dialog").remove();
    $('body').append($.FORM({
        Class:'js_dialog',
        title:"Přihlášení"
    },$.IMG({
        alt:"Načítám...",
        src:"/obr/loading2.gif"
    }))); 
    $("form.js_dialog").dialog({
        modal:true,
        width:450,
        height:320,
        buttons:{
            Storno:function(){
                $(this).dialog("close");
            },
            Ok:odeslat
        }
    });
    $("form.js_dialog").dialog("widget").addClass("dialog-prihlaseni");
    $("form.js_dialog").keypress(function(e){
        if(e.which == 13){
            odeslat();
            return false;
        }
    });
    $("form.js_dialog").submit(function(e){
        e.preventDefault();
        odeslat();
        return false;
    });
        
    if(!stav){
        stav = null;
    }
    $("form.js_dialog").load("/json.php?akce=dialog-prihlaseni",{
        stav:stav
    },function(){
        $("form.js_dialog input[name=email]:first").focus();
    });
    return false; 
}

var dotazZboziDialog = function (){
    var zbozi = $(this).attr('rel');
    var stav;

    var odeslat = function(){
        var jmeno = $("form.js_dialog input[name=jmeno]").val();
        var email = $("form.js_dialog input[name=email]").val();
        var text = $("form.js_dialog textarea[name=text]").val();

        $("form.js_dialog").empty();
        $('form.js_dialog').append($.DIV({
            Class:'js_dialog',
            title:"Dotaz na zboží"
        },$.IMG({
            alt:"Načítám...",
            src:"/obr/loading2.gif"
        })));
        $("form.js_dialog").load("/json.php?akce=dialog-dotaz-zbozi",{
            zbozi:zbozi,
            jmeno:jmeno,
            email:email,
            text:text,
            uri:location.href.replace(/#.*/,"")
            },function(){
            $("form.js_dialog input[name=jmeno]").val(jmeno);
            $("form.js_dialog input[name=email]").val(email);
            $("form.js_dialog textarea[name=text]").val(text);
            $("form.js_dialog input[name=jmeno]:first").focus();
        });
    };
    $("form.js_dialog").remove();
    $('body').append($.FORM({
        Class:'js_dialog',
        title:"Dotaz na zboží"
    },$.IMG({
        alt:"Načítám...",
        src:"/obr/loading2.gif"
    })));
    $("form.js_dialog").dialog({
        modal:true,
        width:500,
        height:420,
        buttons:{
            Storno:function(){
                $(this).dialog("close");
            },
            Ok:odeslat
        }
    });
    $("form.js_dialog").dialog("widget").addClass("dialog-dotaz-zbozi");
    $("form.js_dialog").submit(function(e){
        e.preventDefault();
        odeslat();
        return false;
    });

    if(!stav){
        stav = null;
    }
    $("form.js_dialog").load("/json.php?akce=dialog-dotaz-zbozi",{
        stav:stav
    },function(){
        $("form.js_dialog input[name=jmeno]:first").focus();
    });
    return false;
}

var wishAddDialog = function (zbozi){
    $("form.js_dialog").remove();
    $('body').append($.FORM({
        Class:'js_dialog',
        title:"Seznam přání"
    },$.IMG({
        alt:"Načítám...",
        src:"/obr/loading2.gif"
    }))); 
    $("form.js_dialog").dialog({
        modal:true,
        width:450,
        height:320
    });
    $("form.js_dialog").dialog("widget").addClass("dialog-wishadd");
        
    $("form.js_dialog").load("/json.php?akce=wish-add-dialog",{
        zbozi:zbozi
    },function(){
        $("form.js_dialog a.js_prihlaseni").click(function(){
            prihlaseniDialog();
            return false;
        });
    });
    return false; 
}

var slider = function (data){
   var sliderElem = data.slider;
   var min_cena = data.min;
   var max_cena = data.max;
   var cena_od = data.cena_od;
   var cena_do = data.cena_do;
   var step = data.step ? data.step : (max_cena-min_cena > 5000 ? 100:10);
   
    sliderElem.slider({
        range: true,
        min: min_cena < 0 ? 0 : min_cena,
        max: max_cena,
        step: step,
        values: [cena_od > 0 ? cena_od:(min_cena<0?0:min_cena), cena_do>0?cena_do:max_cena],
        slide: function(event, ui) {
            var od = ui.values[0];
            var doc = ui.values[1];
        
            if(od<0)od = 0;
            
            $("#cena_od").html('od ' + format_cena(od));
            $("#cena_do").html('do ' + format_cena(doc));
            
            $("input[name='filtr[cena_od]']",sliderElem.parents("form")).val(od);
            $("input[name='filtr[cena_do]']",sliderElem.parents("form")).val(doc);
            
        },
        stop: function(event, ui) {
            sliderElem.parents("form").submit();
        }
   });

    var od = sliderElem.slider("values", 0);
    var doc = sliderElem.slider("values", 1);

    od = format_cena(od);
    doc = format_cena(doc);
    
    $("#cena_od").html('od ' + od);
    $("#cena_do").html('do ' + doc);
    
    $("input[name='filtr[cena_od]']",sliderElem.parents("form")).val(cena_od);
    $("input[name='filtr[cena_do]']",sliderElem.parents("form")).val(cena_do);
};

var refreshDodani = function(stat, dodani) {
    $('.js_dodani_stat').hide();
    $('.js_dodani_stat_'+stat).show();

    if($('.js_dodani_stat_'+stat+' #dodani'+dodani).size() > 0){
        $('#dodani'+dodani).attr('checked','checked');    
    }else{
        $('.js_dodani_stat_'+stat+' input:first').attr('checked','checked');
    }
    return false;
};

function variantaRel(rel){
    var data = variantaRelData(rel);
    if(data.cena) {
        $('.js_cena').html(format_cena(data.cena));
        $('.js_cenaInp').val(data.cena);
        
    }
    if(data.cena_s) $('.js_cena_s').html(format_cena(data.cena_s));
    if(data.cena_bez) $('.js_cena_bez').html(format_cena(data.cena_bez));
    if(data.min) $('.js_variantaMin').attr('value',data.min);
    if(data.kod) $('.js_kod').html(data.kod);
    if(data.cena_puvodni) $('.js_cena_puvodni').html(format_cena(data.cena_puvodni));
    if(data.ks) $('.js_variantaKs').html(data.ks);
    if(data.dostupnost) $('.js_dostupnost').html(data.dostupnost);
    if(data.kod2) $('.js_kod2').html(data.kod2);
    if(data.ean) $('.js_ean').html(data.ean);
    if(data.puvodni_sleva) $('.js_puvodni_sleva').html(data.puvodni_sleva);
    if(data.img_id > 0){
        $('img.varianta,.js_obrazek').attr('src',"/img/normal/"+data.img_id+".jpg");
        $('img.varianta,.js_obrazek').parent('a').attr('href',"/img/big/"+data.img_id+".jpg");
    }
    return data;
}
function variantaRelData(rel){
    var data = JSON.parse(rel.replace(/'/g,'"'));
    if(data.img_id > 0){
        data.img_mini = "/img/mini/"+data.img_id+".jpg";
        data.img_normal = "/img/normal/"+data.img_id+".jpg";
        data.img_small = "/img/small/"+data.img_id+".jpg";
        data.img_big = "/img/big/"+data.img_id+".jpg";
    }
    return data;
}

$('document').ready(function(){
    $('.thickbox,.lightbox a[href$=".jpg"],.lightbox-force a').fancybox({
        'transitionIn'	:	'elastic',
        'transitionOut'	:	'elastic',
        'speedIn'		:	300, 
        'speedOut'		:	100, 
        'overlayShow'	:	true,
        'type':     'image'
    });

    $('a.varianta').click(function(){        
        $('h2.varianta,.js_variantaNazev').html($(this).attr('title'));
        $('.variantaAkt').html($(this).attr('title'));
        
        if($(this).attr('rel')){
            var data = variantaRel($(this).attr('rel'));    
        }else{
            var data = variantaRel($("img",this).attr('rel'));    
        }
        
        
        $('input#variantaPrvni').attr('value',data.id);
        $('select.js_varianta').val(data.id);
        
        return false;
    });
    $('input[type=radio].varianta').click(function(){
        $('input#variantaPrvni').attr('value',$(this).val());
        $('h2.varianta,.js_variantaNazev').html($(this).attr('title'));

        var data = variantaRel($(this).attr('rel'));
        $('.variantaAkt').html($(this).attr('title'));
        $('select.js_varianta').val(data.id);        
    });

    $('input[type=radio].varianta').bind('check',function(){
        $('input#variantaPrvni').attr('value',$(this).val());
        $('h2.varianta').html($(this).attr('title'));
    });
    
    $('select[name=varianta]').change(function(){
        $('input#variantaPrvni').attr('value',$(this).val());
        $('h2.varianta,.js_variantaNazev').html($(this).attr('title'));

        var data = variantaRel($('option:selected',$(this)).attr('rel'));
        $('.variantaAkt').html($(this).attr('title'));
    });
	
    $('select.js_varciselniky').bind('change',function(){
        var vybrano = true;
        var varciselniky = "";
        $('select.js_varciselniky').each(function(){
            if($(this).val() == 'ne'){
                vybrano = false;
            } else {
                varciselniky+= "&varciselniky["+$(this).attr('rel')+"]="+$(this).val();
            }
        });
        if(vybrano){
            var zbozi = $('input[name=zbozi]').val();
            $('.js_cena').html("Počítám...");
            $.ajax({
                type: "POST",
                url: "/json.php?akce=varianta-najdi-ciselniky&zbozi="+zbozi+varciselniky,
                dataType:'json',
                success: function(json){
                    $('.js_variantaMin').attr('value',json.min);
                    $('.js_kod').html(json.kod);                    
                    $('.js_variantaKs').html(json.ks);
                    $('.js_dostupnost').html(json.dostupnost);
                    $('.js_kod2').html(json.kod2);
                    $('.js_ean').html(json.ean);

                    $('.js_cena').html(json.cena);
                    $('.js_cena_s').html(json.cena_s);
                    $('.js_cena_bez').html(json.cena_bez);
                    $('.js_cena_puvodni').html(json.cena_puvodni);
                    $('.js_puvodni_sleva').html(json.puvodni_sleva);
                }
            });
        }
    });

    $('form#emailForm, .js_novinkyEmail').submit(function(){
        var email = $('input[name=email]',$(this)).attr('value');
        if($('.jqmWindow').size()==0){
            $('body').append($.DIV({
                Class:'jqmWindow'
            },
            $.DIV({
                Class:'jqmTitulek'
            },$.A({
                href:'#',
                Class:'jqmClose'
            },lang['zavrit'])),
            $.DIV({
                Class:'jqmText'
            })));
        }
        $('.jqmWindow').jqm({
            modal:true
        });
        $('.jqmText').empty();
        $('.jqmText').html('<img src="/obr/loading.gif" />');
        $('.jqmWindow').jqmShow();
        _gaq.push(['_trackPageview','/odber-novinek']);
		
        $.ajax({
            type: "POST",
            url: "/json.php?akce=email-add",
            data: "email="+email,
            dataType:'json',
            success: function(json){
                $('.jqmText').empty();
                $('.jqmText').append(json.zprava);
                _gaq.push(['_trackPageview','/odber-novinek-'+json.stav]);
            }
        });

        return false;
    });

    $('#dotaz,.dotaz').click(dotazZboziDialog);

    $('.js_emailnazor').submit(function(){
        var jmeno = $('.js_emailnazor input[name=jmeno]').attr('value');
        var email = $('.js_emailnazor input[name=email]').attr('value');
        var text = $('.js_emailnazor textarea[name=text]').val();
        $('.js_emailnazor textarea[name=text]').val('Zpráva se odesílá...');
        $.ajax({
            type: "POST",
            url: "/json.php?akce=email_nazor",
            data: "jmeno="+jmeno+"&email="+email+"&text="+text,
            dataType:'json',
            success: function(json){
                $('.js_emailnazor .input[name=jmeno]').val('');
                $('.js_emailnazor input[name=email]').val('');
                $('.js_emailnazor textarea[name=text]').val('');
                alert("Děkujeme za Vaši zprávu");
            }
        });

        return false;
    });
    $('.js_kontaktniFormular').submit(function(){
        var f = this;
        var jmeno = $('input[name=jmeno]',this).val();
        var predmet = $('input[name=predmet]',this).val();
        var email = $('input[name=email]',this).val();
        var text = $('textarea[name=text]',this).val();
        var dalsitext = $('input[name=dalsi_text]',this).val();
        $('.js_emailnazor textarea[name=text]').val('Zpráva se odesílá...');
        var parametry = {
            type: "POST",
            url: "/json.php?akce=email&jmeno="+encodeURIComponent(jmeno)+"&email="+encodeURIComponent(email)+"&predmet="+encodeURIComponent(predmet)+"&text="+encodeURIComponent(text)+"&dalsitext="+encodeURIComponent(dalsitext),
            dataType:'json',
            fileElementId:'fileToUpload',
            success: function(json){
                $('input[name=jmeno]',f).val('');
                $('input[name=email]',f).val('');
                $('input[name=predmet]',f).val('');
                $('textarea[name=text]',f).val('');

                alert(json.zprava);
            }
        }
        if($("input[type=file]",this).size()>0){
            $.ajaxFileUpload(parametry);
        }else{
            $.ajax(parametry);
        }
        

        return false;
    });

    $('a#panelFAQ').click(function(){
        $("div#katPopis").slideToggle("slow");
        return false;
    });

    /*************************/
    $('#filtrZbozi').bind('submit',function(){
        var cena=3;
        var re2=/[^0-9]/g;
        var cenamax = $('input[name=cenado]').val();
        var cenamin = $('input[name=cenaod]').val();
        var vyrobce = $('select[name=vyrobce]').val();
        var zobraz;
        var vyrobce2;
        //alert(cenamax);
        $('.box1').each(function(){
            cena = $('.cenaD',$(this)).html();
            var str="15 USD, 10 EUR, 300 CZK";
            cena=cena.replace(re2,"");

            vyrobce2 = $('.vyrobce',$(this)).attr('rel')/1;
            //alert(cena);
            zobraz = true;
            //alert(vyrobce2);
            if(cenamax>0&&cenamax!=""&&cena>cenamax) zobraz = false;
            if(cenamin>0&&cenamin!=""&&cena<cenamin) zobraz = false;
            if(vyrobce!='ne'&&vyrobce2>0&&vyrobce!=vyrobce2) zobraz = false;

            if(!zobraz){
                $(this).hide();
            }else{
                $(this).show();
            }
        });
        return false;
    });
    $('input[name=fraze]').bind('focus',function(){
        if($(this).val().indexOf('-')==0)$(this).val('');
    });
    $('a.zboziGalerie').click(function(){
        $('img.zboziGalerie').parent('a.thickbox').attr('href',$(this).attr('href').replace('mini','big').replace('normal','big'));
        $('img.zboziGalerie').attr('src',$(this).attr('href'));
        return false;
    });
    /********************************************/
    $('form.koupit,form.js_koupit').submit(form_koupit);
    
    $('a.js_koupit').click(function(){
        dialog_koupit($(this).attr("href")+"&js=1");
        return false;
    });


    $('.js_hodnotit').click(function(){
        $('.js_hodnoceni').html('<span class="js_hlasodeslan">'+lang['odesilam_hlas']+'</span>');
        var zbozi = $(this).attr('rel');
        var hlas = $(this).text();
        $.ajax({
            type: "POST",
            url: "/json.php?akce=hodnotit",
            data: "zbozi="+zbozi+"&val="+hlas,
            dataType:'json',
            success: function(json){
                $('.js_hlasodeslan').html('<span class="js_hlasodeslan">'+lang['odeslano']+'. '+lang['dekujeme']+'</span>');
                $('.js_hodnoceniSum').html(json.sum);
            }
        });
    return false;
    });
$('.js_anketa').click(function(){
    if($('.jqmWindow').size()==0){
        $('body').append($.DIV({
            Class:'jqmWindow'
        },
        $.DIV({
            Class:'jqmTitulek'
        },$.A({
            href:'#',
            Class:'jqmClose'
        },lang['zavrit'])),
        $.DIV({
            Class:'jqmText'
        })));
    }
    $('.jqmWindow').jqm({
        modal:true
    });
    $('.jqmText').empty();
    $('.jqmText').html('<img src="/obr/loading.gif" />');
    $('.jqmWindow').jqmShow();
    var odpoved = $(this).attr('rel');
    $.ajax({
        type: "POST",
        url: "/json.php?akce=anketa",
        data: "odpoved="+odpoved,
        dataType:'json',
        success: function(json){
            if(json.stav == 'ok'){
                $('.jqmText').html(lang['odeslano']+'. '+lang['dekujeme']);    
            }else{
                $('.jqmText').html(lang['hlasoval']);
            }
					
        }
    });
return false;
});

$('#potvrdit,.js_kontrolaAdresa').click(function(){
    var obj = $(this).parents('form');
    var telefon = $('input[name=telefon]',obj).val();
    var email = $('input[name=email]',obj).val();
    var jmeno = $('input[name=jmeno]',obj).val();
    var prijmeni = $('input[name=prijmeni]',obj).val();
    var ulice = $('input[name=ulice]',obj).val();
    var mesto = $('input[name=mesto]',obj).val();
    var psc = $('input[name=psc]',obj).val();
    if((email.length==0)||(jmeno.length==0)||(prijmeni.length==0)||(ulice.length==0)||(mesto.length=0)||(psc.length==0)||(telefon.length==0)){
        return confirm(lang['nevyplnene_pole']);
    }else{
        return true;
    }

    return false;
});

$('input[name=dodani]').click(function(){
    var dodani = $(this).val();
    dodani_zmenit(dodani);
});

var dodani = $('input[name=dodani]:checked').val();
var stat = $('select[name=stat]').val();
$('select[name=stat]').bind('change',function(){
    var stat = $(this).val();	
    refreshDodani(stat,dodani);
});
refreshDodani(stat, dodani);

/* zobrazeni slevového kodu v kosiku */
$('.js_slevkod_zobrazit').click(function(){
    $(this).hide();
    $('.js_slevkod').show();
});

$('a.js_firma_zobrazit').click(function(){
    $('.js_firma_zobrazit').hide();
    $('.js_firma').show();
    $('.js_firma_spodek').hide();
});

/* registrace v kosiku */
$('#nechciRegistraci').click(function(){
   $('#registraceKosik').hide();
   $('#prihlaseniKosik').hide();
   $("input[name=registrace]").val(0);
});
$('#chciRegistraci').click(function(){
   $('#registraceKosik').show();
   $('#prihlaseniKosik').hide();
   $("input[name=registrace]").val(1);
});
$('#chciPrihlaseni').click(function(){
   $('#registraceKosik').hide();
   $('#prihlaseniKosik').show();
   $("input[name=registrace]").val(0);
});

$(".js_filtr-top").click(function () {
    $(".js_filtr-top span").toggle("fast");
    $(".js_filtr-bottom").toggle("fast");
    $(".js_zrusit-filtr").toggle("fast");
});

$("#js_filtr2 input[type=checkbox]").click(function(){
   $(this).parents("form").submit(); 
});
$('.js_pouzit-filtr').hide();

$(".js_prispevekForm").validate({
    rules: {
        autor: "required",
        nazev: "required",
        text: "required"
    },
    messages: {
        autor: {
                required: " Vyplňte prosím své jméno"
        },
        nazev: {
                required:  " Vyplňte prosím předmět"
        },
        text: {
                required: " Vyplňte prosím text zprávy"
        }
    }
});


$('.iehover').bind('mouseover',function(){
    $(this).addClass('hover');
});
$('.iehover').bind('mouseout',function(){
    $(this).removeClass('hover');
});

var datum = new Date();
    		
    $('.js_hide').hide();
    $('.js_prispevekForm input[name=hash]').val(datum.getFullYear());
		
    $('.js_fakturacnizmena').bind('click',function(){
        if($(this).val()=="stejne"){
            $('.js_fakturacni').hide();
        }else{
            $('.js_fakturacni').show();
        }
    });
    ;
	
    $('#zobrazenirozfiltr').click(function(){
        $("#rozfiltr").slideToggle("slow");
		
        return false;
    });
	
    /** Aukce **/
	
    $('.js_prihodit').click(function(){
        var vyvolav = parseInt($('input[name=vyvolavaci_cena]').val());
        var posledni = parseInt($('input[name=posledni_prihoz]').val());
        var prihoz = parseInt($('input[name=prihoz]').val());

        if(prihoz <= posledni) {
            alert("Váš příhoz musí být větší než byl poslední");
            return false;
        }
        if(prihoz <= vyvolav) {
            alert("Váš příhoz musí být větší než je vyvolávací cena");
            return false;
        }
        var aukce = $('input[name=aukce]').val();
        var user = $('input[name=user]').val();
        $.ajax({
            type: "POST",
            url:'/json.php?akce=aukce-prihodit&aukce='+aukce,
            data:'prihoz='+prihoz+'&user='+user,
            dataType:'json',
            success:function(json){
                $('.js_aukce_zprava').html(json.zprava);
                if(json.stav == 'ok'){
                    $('.js_prihoz_posledni').html(prihoz);
                    $('input[name=posledni_prihoz]').val(prihoz);
                }	
            }
        });
        return false;
	
    });

    $("a.js_dotazZbozi").click(dotazZboziDialog);

    $("a.js_prihlaseni").click(function(){
        prihlaseniDialog();
        return false;
    });
    
    $("a.js_wishAdd").click(function(){
        wishAddDialog($(this).attr('rel'));
        return false;
    });
    
    $("a.js_slevkodAdd").click(function(e){
        e.preventDefault();
        (new W.objednavka.slevkodAdd({})).openDialog();
    });
    
    $("a.js_oblibeneAdd").click(function(){
        oblibeneAddDialog($(this).attr('rel'));
        return false;
    });
    
    $(".js_cetelemKalkulacka").click(function(e){
        e.preventDefault();
        (new W.splatky.cetelemkalkulacka({cena:$(this).attr('rel')})).openDialog();
    });
    
});

var dodani_zmenit = function(dodani) {
    $.ajax({
        type: "POST",
        url: "/json.php?akce=dodani-zmenit",
        data: "dodani="+dodani,
        dataType:'json',
        success: function(json){
            $('#js_tr-dodani').show();
            $('.js_dodani-ico').show();
            $('.js_dodani-nazev').html(json.dodani_nazev);
            $('.js_dodani-cena').html(json.dodani_cena);
            $('.js_celkembez').html(json.celkem_bez);
            $('.js_celkems').html(json.celkem_s);
            $('.js_dodani-zdarma').html(json.dodani_zdarma0);
        }
    });
    return false;
}

function encoduj(data) {
    if (!data)
        data = "";
    // data = encodeURIComponent(data);
    return data;
}


var oblibeneAddDialog = function (zbozi){
    $("form.js_dialog").remove();
    $('body').append($.FORM({
        Class:'js_dialog',
        title:""
    },$.IMG({
        alt:"Načítám...",
        src:"/obr/loading2.gif"
    }))); 
    $("form.js_dialog").dialog({
        modal:true,
        width:450,
        height:150,
        buttons:{
            Ok:function(){
                $(this).dialog("close");
            }
        }
    });
    $("form.js_dialog").dialog("widget").addClass("dialog-oblibene");
        
    $.ajax({
        type: "POST",
        url: "/json.php?akce=oblibene-add",
        data: "zbozi="+zbozi,
        dataType:'json',
        success: function(json){
            if(json.stav == 'ok'){
                $("form.js_dialog").html(json.dialog);
                $('.js_oblibene_zbozi_pocet').html(json.pocet);
            }
        }
    });

    return false; 
}
    
function format_cena(cena){
    var desetinna = cena - Math.floor(cena);
    cena = Math.floor(cena).toString();
    var out = "";
    if(cena > 999){
        out = (cena.substring(0,cena.length-3))+"&nbsp;"+cena.substring(cena.length-3,cena.length);
    }else{
        out = cena;
    }
    if(desetinna > 0){
        desetinna *=100;
        desetinna = Math.round(desetinna).toString();
        if(desetinna.length == 1){
            desetinna += "0";
        }
        out += ","+desetinna;
    }
    return out+"&nbsp;Kč";
}

var cislo = function(number) {
    number += "";
    var parts = number.split('.');
    var integer = parts[0];
    var decimal = parts.length > 1 ? '.' + parts[1] : '';
    var regex = /(\d+)(\d{3})/;
    while (regex.test(integer))
    {
      integer = integer.replace(regex, '$1' + ' ' + '$2');
    }
    return integer + decimal;
};



var $class = function(def) {
    var constructor = def.hasOwnProperty('constructor') ? def.constructor : function(parametry){
	this.parametry = parametry ? parametry : {};
    };
    for (var name in $class.Initializers) {
	$class.Initializers[name].call(constructor, def[name], def);
    }
    return constructor;
};

$class.Initializers = {
    Extends: function(parent) {
	if (parent) {
	    var F = function() { };
	    this._superClass = F.prototype = parent.prototype;
	    this.prototype = new F;
	}
    },

    Mixins: function(mixins, def) {
	this.mixin = function(mixin) {
	    for (var key in mixin) {
		if (key in $class.Initializers) continue;
		this.prototype[key] = mixin[key];
	    }
	    this.prototype.constructor = this;
	};
	var objects = [def].concat(mixins || []);
	for (var i = 0, l = objects.length; i < l; i++) {
	    this.mixin(objects[i]);
	}
    }
};

var Serializable = {
    serialize: function() {
	return JSON.stringify(this);
    }
};
function loadingDialogOpen(){
    $('body').append("<div class='loadingdialog' title='Načítám...'><img src='/obr/loading2.gif' alt='Načítám...' /></div>");
    $('.loadingdialog').dialog({modal:true});
    $('.loadingdialog').dialog('open');
}
function loadingDialogClose(){
    $('.loadingdialog').dialog('close');
    $('.loadingdialog').remove();
}

function nactiFormular(form,data,par) {
    if(!data){
        var data = [];
    }
    var id = $(this).attr('rel');
    $('input[type=text]', form).each(function() {
        data.push( {
            name : $(this).attr('name'),
            value : encoduj($(this).attr('value'))
        });
    });
    $('input[type=hidden]', form).each(function() {
        data.push( {
            name : $(this).attr('name'),
            value : encoduj($(this).attr('value'))
        });
    });
    $('input[type=password]', form).each(function() {
        data.push( {
            name : $(this).attr('name'),
            value : encoduj($(this).attr('value'))
        });
    });
    $('input[type=checkbox]', form).each(function() {
        if ($(this).attr('checked')){
            data.push( {
                name : $(this).attr('name'),
                value : $(this).val()
            });
        }else{
            if(par && par.checkedOnly){

            }else{
                data.push( {
                    name : $(this).attr('name'),
                    value : 0
                });
            }
        }
    });
    $('input[type=radio]', form).each(function() {
        if ($(this).attr('checked')){
            data.push( {
                name : $(this).attr('name'),
                value : $(this).val()
            });
        }
    });
    $('textarea', form).each(function() {

        data.push( {
            name : $(this).attr('name'),
            value : encoduj($(this).val())
        });
		

    });
    $('select', form).each(function() {
        data.push( {
            name : $(this).attr('name'),
            value : encoduj($(this).attr('value'))
        });
    });
    return data;
}
var action_save = "action_save";
var action_create = "action_create";
var Widget2 = $class({
    typHtml : null,
    template : false,
    loadHtml : function(callback){
        var obj = this;
        if(!obj.isDialog() && obj.parametry.target){
            var w = obj.parametry.target.width();
            var h = obj.parametry.target.height();
            obj.parametry.target.empty();
            obj.parametry.target.html("<img src='/obr/loading.gif' alt='Načítám...' />");
            obj.parametry.target.width(w);
            obj.parametry.target.height(h);
        }

        
        
        $.ajax({
            dataType:'json',
            url: this.getUrl("loadWidget"),
            success:function(json){
                loadingDialogClose();
                if(json.stav=="ok"){
                    if(obj.parametry.target){
                        obj.parametry.target.empty();
                        obj.parametry.target.height('auto');
                    }
                    obj.html = $("<div class='widget "+obj.name+"'>"+json.html+"</div>").appendTo(obj.parametry.target && obj.typHtml == "html" ?obj.parametry.target : "body");
                    if(json.strany){
                        obj.strany = json.strany;
                    }
                    if(callback){
                        callback(json);
                    }
                }else{
                    erra(json);
                }
            }
        });
    },
    getUrl:function(akce){
        var url = "/w/~"+this.name+"/"+akce+"/";
        if(this.template){
            url += this.template+"/";
        }
        url += "?dataType=json";
        $.each(this.dataInit(),function(i,v){
            if($.isArray(v) || typeof(v) == "object"){
                $.each(v,function(a,b){
                    if($.isArray(b) || typeof(b) == "object"){
                        $.each(b,function(c,d){
                            url += "&"+i+"["+a+"]["+c+"]="+d;    
                        });
                    }else{
                        url += "&"+i+"["+a+"]="+b;
                    }
                });
            }else{
                if(typeof v != "undefined" && v != "undefined"){
                    url += "&"+i+"="+v;
                }
            }
        });
        return url;
    },
    setTemplate:function(tem){
        this.template = tem;
    },
    getSearchUrl:function(){
        return this.getUrl("search");
    },
    getDownloadUrl:function(){
        return this.getUrl("download")
    },
    cacheParametryDialog:{},
    initHtml:function(par){
        var obj = this;
        this.typHtml = "html";
        this.cacheParametryDialog = par;
        
        if(obj.html){
            /** vytvoření tlačítek dle this.getAkce **/
            obj.html.children("div.widget-tlacitka").remove();
            $("<div class='widget-tlacitka'></div>").appendTo(obj.html);
            var i=0;
            var sub = true;
            var akce = $.isFunction(obj.getAkce)?obj.getAkce():obj.getAkce;
            $.each(akce,function(name,callback){
                
                
                if(callback == action_save || callback == action_create){
                    obj.html.submit(function(e){
                        e.preventDefault();
                        if($.isFunction(obj.validate)){
                            obj.validate(function(){
                                obj.odeslat({
                                    complete:$.isFunction(obj.parametry.complete) || callback == action_save ? obj.parametry.complete : function(data){window.location.href = data.link}
                                });
                            });
                        }else{
                            obj.odeslat({
                                complete:$.isFunction(obj.parametry.complete) || callback == action_save ? obj.parametry.complete : function(data){window.location.href = data.link}
                            });
                        }
                    });
                    $("<input type='submit' value='"+name+"' class='button' />").appendTo(obj.html.children("div.widget-tlacitka")); 
                }else{
                    $("<button class='but"+i+"'>"+name+"</button>").appendTo(obj.html.children("div.widget-tlacitka")); 
                    $("button.but"+i,obj.html.children("div.widget-tlacitka")).click(callback);    
                }
                
                i++;
            });
            $(".button,button",obj.html.children("div.widget-tlacitka")).button();
            /** /konec tlačítek */
        }
        
        if(this.init){
            this.init();
        }
    },
    openDialog: function(par){
        this.cacheParametryDialog = par;
        loadingDialogOpen();
        var obj = this;
        obj.typHtml = "dialog";
        this.loadHtml(function(json){
            par = obj.parametryDialog;
            obj.html.attr('title',json.title);
            
            /** pokud není tlačítko definováno funkcí, ale jen zkratkou, tak se funkce přiřadí */
            if(typeof(obj.getAkce)=="object"){
                var tlacitka = {};
                /** pole akcí se  zduplikuje, aby fungovalo i po otevření druhého okna */
                $.each(obj.getAkce,function(k,v){
                    if(v==action_create && !$.isFunction(obj.parametry.complete)){
                        tlacitka[k] = function(){ 
                            obj.odeslat({
                                complete:function(data){window.location.href = data.link}
                            });
                        }
                    }else if(v==action_save){
                       tlacitka[k] = function(){ 
                            obj.odeslat({
                                complete:obj.parametry.complete
                            });
                        }
                    }else{
                        tlacitka[k] = v;
                    }
                });
            }else{
                var tlacitka = obj.getAkce();
            }
            obj.html.dialog({
                width:par.width ? par.width : 700,
                modal:par.modal === false ? false : true,
                autopen:true,
                buttons: tlacitka,
                close:function(){
                    obj.html.remove();
                    obj.html = null;
                }
            });
            obj.html.dialog('open');

            $('input,select',obj.html).bind('keypress',function(e){
                /** po stiskutní se aktivuje akce na tlačítku nejvíc vpravo */
                if(e.keyCode == 13 && $(".ui-dialog-buttonset button",obj.html.dialog('widget')).size()>0){
                    $(".ui-dialog-buttonset button:last",obj.html.dialog('widget')).trigger('click');
                    e.preventDefault();
                }

            });
            if(obj.init){
                obj.init();
            }
        });

        return this;
    },
    reload:function(){
        var obj = this;
        if(this.isDialog()){
            this.html.dialog('close');
            this.openDialog(this.parametryDialog);
        }else{
            this.typHtml = "html";
            this.loadHtml(function(json){
                if(obj.init){
                    obj.init();
                }
            });
        }
    },
    dataLoad: function(){
        return {};
    },
    getAkce: function(){
        return {};
    },
    isDialog: function(){
        return this.typHtml == "dialog";
    },
    setStav:function(stav,zprava_text){
        if(this.isDialog()){
            $(".js_stav",this.html).remove();
            $(this.html).append("<div class='"+stav+" js_stav'><p>"+zprava_text+"</p></div>");
        }else{
            $(".oznameni div").hide();
            if(stav=='success'){
                zprava({
                    stav:'ok',
                    zprava:zprava_text
                });
            }else if(stav=='loading'){
                //preda();
                $(".oznameni div.loading").show();
            }else if(stav=='error'){
                $(".oznameni div.error").show();
                $(".oznameni div.error p").html(zprava_text);
            }
        }
    },
    odeslat:function(par){
        var obj = this;
        if(!par.url){
            url = this.getUrl("save")
        }
        var parametry = {
            dataType:'json',
            url: url,
            data: obj.getSaveData(par.data),
            context:this,
            beforeSend:function(){
                obj.setStav("loading","Zpracovávám...");
                if(par.before){
                    par.before(obj);
                }
            },
            success:function(json){
                if(json.stav == 'ok'){
                    obj.setStav("success",json.zprava?json.zprava:"Ok");
                    if(obj.isDialog() && obj.saveClose){
                        obj.html.dialog('close');
                    }
                    if(par.complete){
                        par.complete(json);
                    }
                    
                }else{  
                    obj.setStav("error",json && json.zprava?json.zprava:"Došlo k chybě. Akci nebylo možné provést.");
                }
            },
            error:function(json){
                obj.setStav("error",json && json.zprava?json.zprava:"Došlo k chybě. Akci nebylo možné provést.");
            }
        };
        if($("input[type=file]",obj.html).size()==1){
            /** uploadování */
           if($("input[type=file]",obj.html).attr('id').length == 0){
               $("input[type=file]",obj.html).attr('id','fileElementId');
           }
           parametry.fileElementId = $("input[type=file]",obj.html).attr('id');
           $.ajaxFileUpload(parametry);
        }else{
            /* žádný upload */
            $.ajax(parametry);
        }
    },
    action:function(akce,par){
        var obj = this;
        if(!par.url){
            url = this.getUrl("action");
        }
        
        $.ajax({
            dataType:'json',
            url: url+"&akce="+akce,//url+"&akce="+akce,
            data: par.data,
            beforeSend:function(){
                obj.setStav("loading","Zpracovávám...");
                if(par.before){
                    par.before(obj);
                }
            },
            success:function(json){
                if(json.stav == 'ok'){
                    obj.setStav("success",json.zprava?json.zprava:"Ok");
                    zprava(json);
                    if(par.complete){
                        par.complete(json);
                    }
                }else{
                    this.error(json);
                }
            },
            error:function(json){
                obj.setStav("error",json.zprava?json.zprava:"Došlo k chybě. Akci nebylo možné provést.");
            }
        });
    },
    getSaveData:function(par){
        var data = nactiFormular(this.html);
        if(par){
            $.each(par,function(i,v){
                if(typeof(v)=="string" || typeof(v)=="number" || typeof(v)=="boolean"){
                    data.push({
                        name:i,
                        value:v
                    });
            
                }else{
                    if($.isArray(v) || typeof( v ) == 'object'){
                        $.each(v,function(i2,v2){
                            data.push({
                                name:i+"["+i2+"]",
                                value:v2
                            }); 
                        });
                    }else{
                        data.push({
                            name:i,
                            value:v
                        });
                    }
                }
            });
        }
        

        return data;
    },
    dataInit:function(){
        return {};
    },
    parametryDialog:{},
    saveClose:true
});

W= {
    splatky:{},
    objednavka:{},
    clanek:{}
};

W.splatky.cetelemkalkulacka =  $class({
    name:"Splatky_CetelemKalkulacka",
    Extends: Widget2,
    getAkce:function(){
        var obj = this;
        return {
            "Spočítat":function(){
            
                obj.odeslat({
                    complete:function(data){
                        $.each(data.data,function(i,v){
                            $("input[name="+i+"]:text",obj.html).val(v);
                        });
                        $(".vysledek",obj.html).html(data.vysledek);
                    }
                });
            }
        }      
    },
    saveClose:false,
    dataInit:function(){
        return {
            cena:this.parametry.cena
            }
    }
});

W.objednavka.slevkodAdd =  $class({
    name:"Objednavka_SlevkodAdd",
    Extends: Widget2,
    getAkce:function(){
        var obj = this;
        return {
            "Použít":function(){
                obj.odeslat({
                    complete:function(data){
                        location.href=location.href.replace(/#.*/,"");
                    }
                });
            }
        }      
    },
    saveClose:false
});

/**
 * výpis zboží ve článku
 */
W.clanek.zbozi= $class({
    name:"Clanek_Zbozi",
    Extends: Widget2,
    init:function(){
        var obj = this;
        $('.js_strany').html(obj.strany);
        $(".js_strany a").click(function(e){
            e.preventDefault();
            obj.parametry.strana = $(this).attr("rel");
            obj.reload();
        });
    },
    dataInit:function(){
        return {
            clanek:this.parametry.clanek,
            strana:this.parametry.strana
        }
    }
});
