jQuery(document).ready(function(){

    var plainObjednavka = {        
        capella2002Simple: {
            cena:6890,        
            pocetKs:0,
            max:100,
            min:0,
            htmlIdentifikator:"capella2002Simple",
            maMnozstvi:true,
            maMultiMnozstvi:false
        },
        capella2002Multi: {
            cena:13780,        
            pocetKs:0,
            max:100,
            min:0,
            htmlIdentifikator:"capella2002Multi",
            maMnozstvi:true,
            maMultiMnozstvi:false
        },
        capellaScanSimple: {
            cena:4700,        
            pocetKs:0,
            max:100,
            min:0,
            htmlIdentifikator:"capellaScanSimple",
            maMnozstvi:true,
            maMultiMnozstvi:false
        },
        capellaScanMulti: {
            cena:6160,      
            pocetPc:0,
            pocetKs:0,
            max:1,
            min:0,
            maxMulti:100,
            minMulti:0,
            htmlIdentifikator:"capellaScanMulti",
            maMnozstvi:false,
            maMultiMnozstvi:true,
            countCena : function ()
            {
                var cena=0;
                if (this.pocetPc==1) cena=6160;
                
                if (this.pocetPc>1) cena=(6160+((this.pocetPc-1)*420));
                return (this.cena = cena);
            }
        },
        klaviatura: {
            cena:2890,        
            pocetKs:0,
            max:100,
            min:0,
            htmlIdentifikator:"klaviatura",
            maMnozstvi:true,
            maMultiMnozstvi:false
        },
        produktCd: {
            cena:250,        
            pocetKs:1,
            max:100,
            min:1,
            htmlIdentifikator:"produktCd",
            maMnozstvi:true,
            maMultiMnozstvi:false
        }
    }
  
    var eshop = {
        nazev:"eshopForm",
        objednavka:plainObjednavka,
        castka: function (){

            var celkem = 0;
            var mezisoucet = 0;
            for(key in this.objednavka) {
                if (this.objednavka[key]['maMultiMnozstvi'])
                {
                    if (this.objednavka[key].pocetPc > 0) 
                    {
                        this.objednavka[key].pocetKs=1;
                    } else {
                        this.objednavka[key].pocetKs=0;
                    }                    
                    
                    this.objednavka[key].countCena();
                    jQuery("#"+this.nazev+"-"+this.objednavka[key]['htmlIdentifikator']+"-cenaMultilicence").text(formatCeny(this.objednavka[key].cena));
                    jQuery("#"+this.nazev+"-"+this.objednavka[key]['htmlIdentifikator']+"-mnozstvi").text(this.objednavka[key].pocetKs);
                }
                mezisoucet = (this.objednavka[key].pocetKs * this.objednavka[key].cena);
                jQuery("#"+this.nazev+"-"+this.objednavka[key]['htmlIdentifikator']+"-castka").text(formatCeny(mezisoucet));                
                celkem += mezisoucet;
            }   

            jQuery("#"+this.nazev+"-celkem").text(formatCeny(celkem));
        },
        inicializujUdalosti: function (){
            for(key in this.objednavka) {
                if (this.objednavka[key]['maMnozstvi'])
                {
                    var inputId=("#"+this.nazev+"-"+this.objednavka[key]['htmlIdentifikator']+"-mnozstvi");
                    
                    this.objednavka[key].pocetKs=jQuery(inputId).val();
                    
                    jQuery(inputId).data('polozkaObjednavky',this.objednavka[key]);
                    jQuery(inputId).click( function() {
                        var max=0;
                        max=jQuery(this).data('polozkaObjednavky').max;

                        if (sanitizujMnozstvi(this.value,max)==0) 
                            this.value=1

                        jQuery(this).data('polozkaObjednavky').pocetKs=sanitizujMnozstvi(this.value,max);

                        eshop.castka();
                    } );
                    jQuery(inputId).blur( function() {
                        var max=0; var min=0;
                        max=jQuery(this).data('polozkaObjednavky').max;
                        min=jQuery(this).data('polozkaObjednavky').min;

                        if (this.value < min) {
                            alert('Nutno objednat alespoň '+min+' Ks.');
                            this.value=min;
                        }
                        
                        if ((sanitizujMnozstvi(this.value,max)>0) && (this.value != sanitizujMnozstvi(this.value,max)))
                        {
                            alert ('Prekroceno maximum '+max+' Ks.');
                            this.value = sanitizujMnozstvi(this.value,max);
                        }

                        this.value=sanitizujMnozstvi(this.value,max)

                        jQuery(this).data('polozkaObjednavky').pocetKs=sanitizujMnozstvi(this.value,max);

                        eshop.castka();
                    } );
                    jQuery(inputId).keyup( function() { 
                        var max=0;
                        max=jQuery(this).data('polozkaObjednavky').max;

                        jQuery(this).data('polozkaObjednavky').pocetKs=sanitizujMnozstvi(this.value,max);
                        eshop.castka();
                    } );
                }
                if (this.objednavka[key]['maMultiMnozstvi'])
                {
                    var inputId=("#"+this.nazev+"-"+this.objednavka[key]['htmlIdentifikator']+"-multiMnozstvi");
                    jQuery(inputId).data('polozkaObjednavky',this.objednavka[key]);
                    
                    jQuery(inputId).click( function() {
                        var max=0;
                        max=jQuery(this).data('polozkaObjednavky').maxMulti;

                        if (sanitizujMnozstvi(this.value,max)==0) 
                            this.value=2

                        jQuery(this).data('polozkaObjednavky').pocetPc=sanitizujMnozstvi(this.value,max);

                        eshop.castka();
                    } );
                    jQuery(inputId).blur( function() {
                        var max=0; var min=0;
                        max=jQuery(this).data('polozkaObjednavky').maxMulti;
                        min=jQuery(this).data('polozkaObjednavky').minMulti;

                        if (this.value < min) {
                            alert('Nutno objednat alespoň '+min+' Ks.');
                            this.value=min;
                        }
                        
                        if ((sanitizujMnozstvi(this.value,max)>0) && (this.value != sanitizujMnozstvi(this.value,max)))
                        {
                            alert ('Prekroceno maximum '+max+' Ks.');
                            this.value = sanitizujMnozstvi(this.value,max);
                        }

                        this.value=sanitizujMnozstvi(this.value,max)

                        jQuery(this).data('polozkaObjednavky').pocetPc=sanitizujMnozstvi(this.value,max);

                        eshop.castka();
                    } );
                    jQuery(inputId).keyup( function() { 
                        var max=0;
                        max=jQuery(this).data('polozkaObjednavky').maxMulti;

                        jQuery(this).data('polozkaObjednavky').pocetPc=sanitizujMnozstvi(this.value,max);
                        eshop.castka();
                    } );                                    
                }
            }   
        }
    }    
    
    eshop.inicializujUdalosti();
    eshop.castka();
    
    jQuery('#formObjednavatel').submit( function () {
        
        var povinne = new Array("kontakt-jmeno","kontakt-email","kontakt-tel","adresaFakturacni-ulice","adresaFakturacni-mesto","adresaFakturacni-psc"); 
        var ok=true;
        
        for (key in povinne)
        {
            if (this[povinne[key]].value=='')
            {
                alert('Povinná položka.');
                this[povinne[key]].focus();
                ok=false;
                break;
            }
        }
                
        return ok;
    }
    
    );
});
function formatCeny(castka)
{
    return castka+' Kč';
} 

function kupKdyzNula(kontext)
{

}

function sanitizujMnozstvi(mnozstvi,max)
{
    re = new RegExp("^[0-9]+$"); 
	if (!re.test(mnozstvi)) { 
	    return 0; 
	} else {
        if (mnozstvi <= max){
            return mnozstvi;
        } else {
            return max;
        }
    }
}
