/* (c) 2007. Kladionice Zderic  Sva prava pridržana / All rights reserved. */

var IMG_KRIZIC = "Slike/loto_marker.gif";
var IMG_ERR    = "Slike/icon_err.gif";
var IMG_WARN   = "Slike/icon_warn.gif";
var IMG_SPACER = "Slike/spacer.gif";

var KEYS = [48,49,50,51,52,53,54,55,56,57,8,9,188,37,39,45,46,96,97,98,99,100,101,102,103,104,105,110,144]

var llfaktorijeli = [1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,
				   87178291200,1307674368000,20922789888000,355687428096000,6402373705728000];

var llminulkomb    = 0.01;
var llminupkomb    = 0.01;
var llminulog      = 4.76;
var llminuplata    = 5.00;
var llmaxdobitak   = 500000.0;
var llmtposto      = 5.00;
var llminulogsis   = 0.0;
var llminuplatasis = 0.0;

var loto = null;
var llprazan = true;

var lporuka1 = "Na listiću se već nalazi LOTO ponuda.\n\nDa biste stavili novu ponudu, prvo obrišite listić.";
var lporuka3 = "Uplata ne može biti manja od 5,00 kn!";
var lporuka4 = "Ulog ne može biti manji od 4,76 kn!";
var lporuka5 = "Maksimalni mogući dobitak za obični LOTO listić je 500.000,00 kn!";
var lporuka6 = "Maksimalni mogući dobitak za sistemski LOTO listić je 500.000,00 kn!";
var lporuka7 = "Ulog po kombinaciji ne može biti manji od 0,01 kn!";
var lporuka8 = "Uplata po kombinaciji ne može biti manja od 0,01 kn!";
var lporuka9 = "LOTO listić nije regularan!\n\nDetalji se nalaze ispod listića.";


function LotoListic(razradaid, naziv, datum, vrijeme, dan, ln, lod, ligramax, lsismax, tecajevi)
{ 
    this.razradaid = razradaid;
    this.naziv = naziv;
    this.datum = datum;
    this.vrijeme = vrijeme;
    this.dan = dan;
    this.n = ln;
    this.od = lod;
    this.igramax = ligramax;
    this.sismax = lsismax;
    this.tecajevi = tecajevi;
    this.brojevi = new Array();
    this.tecaj = 0.00;
    this.mt = 0.24;
    this.ulog = llminulog;
    this.uplata = llminuplata;
    this.dobitak = 0.00;
    this.sistemi = new Array();
    this.ulog1 = new Array();
    this.ulogk = new Array();
    this.sisdobitak = new Array();
    this.brdobitnih = new Array();
    this.dobitakk = new Array();
    this.brojsistema = 0;
    this.ukupnibk = 0;
    this.sistemski = false;
}


function SetLOTO(novi, razradaid, naziv, datum, vrijeme, dan, ln, lod, ligramax, lsismax, tecajevi)
{
    if (llprazan)
    {
        llprazan = false;
    
        ShowItem("ll_inic", false);
        
        if (novi)
        {
            DelAllLOTO();
            llprazan = true;
            loto = new LotoListic(razradaid, naziv, datum, vrijeme, dan, ln, lod, ligramax, lsismax, tecajevi);
        }
        
        ShowItem("ll_header", true);
        SetItemContent("ll_header", "LOTO");
        ShowItem("ll_bet", true);

        var llbet = "<div class='ll_day'>" + loto.dan + "</div>";
        llbet += "<div class='ll_title'>" + loto.naziv + "</div>";
        llbet += "<div class='ll_date'>" + loto.datum + " " + loto.vrijeme + "</div>";
        SetItemContent("ll_bet", llbet);

        ShowItem("ll_panel", true);

	    var llpanel = gID("ll_panel", GlavniFrame.document);
		if (llpanel != null)
		{
		    var k = 1;
		    var m = 1;
		    var stil = "";

		    llpanel.innerHTML = "";    
            for (var i=1;i<=lod;i++)
            {
                if (k==5 || i==lod)
                {
                    k = 0;
                    stil = "style='float:left; clear:right;'";
                }
                else
                    stil = "style='float:left;'";
                
                llpanel.innerHTML += "<div id=ll_number" + i + " " + stil + " class=ll_num onmouseover=LLMOver(this.id) onmouseout=LLMOut(this.id) onclick=LLMClick(this.id," + i + ") >" + i + "</div>";                    

                if (m==5)
                {
                    llpanel.innerHTML += "<br />";
                    llpanel.innerHTML += "<div class=ll_sep1><img src=" + IMG_SPACER + " /></div>"
                }
                else if (m==10 || i==lod)
                {
                    m = 0;
                    llpanel.innerHTML += "<div class=ll_sep2><img src=" + IMG_SPACER + " /></div>";
                }

                m++;
                k++;
            }
        }

        ShowItem("ll_footer", true);      
        SetFooter(null);

        var llsis = gID("ll_sis", GlavniFrame.document);
        if (llsis != null)
	        llsis.checked = false;

        ShowItem("ll_tools", true);
        SetItemContent("ll_sistem", "");
        /*SetItemContent("ll_poruka", "");
        ShowItem("ll_poruka", true);*/
    }
    else
    {
        alert(lporuka1);
    }
}


function SetFooter(brojevi)
{
    var llfooter = gID("ll_footer", GlavniFrame.document);
	if (llfooter != null)
	{
	    llfooter.innerHTML = "<div style='float:left; clear:right;'><span>ODABERITE BROJEVE!</span></div><br />";
	    if (brojevi != null)
	    {
	        if (brojevi.length > 0)
	        {
	            llfooter.innerHTML = "<div style='float:left; clear:right;'><span>ODABRANI BROJEVI:</span></div><br />";
                llfooter.innerHTML += "<div class=ll_sep2><img src=" + IMG_SPACER + " /></div>";
	            var k = 1;
	            var m = 1;
	            var stil = "";
	            for (var i=0; i<brojevi.length; i++)
	            {
                    if (k==5)
                    {
                        k = 0;
                        stil = "style='float:left; clear:right;'";
                    }
                    else
                        stil = "style='float:left;'";
                    
                    llfooter.innerHTML += "<div " + stil + " class=ll_selnum>" + brojevi[i] + "</div>";

                    if (m==5)
                    {
                        m = 0;
                        llfooter.innerHTML += "<div class=ll_sep1><img src=" + IMG_SPACER + " /></div>";
                    }
                    k++;
                    m++;
	            }
	        }
	    }
        llfooter.innerHTML += "<div class=ll_sep1><img src=" + IMG_SPACER + " /></div>";
    }
}


function LLMOver(id)
{
    var item = gID(id, GlavniFrame.document);
	if (item != null)
	    item.style.backgroundColor="#00005f"; 
}


function LLMOut(id)
{
    var item = gID(id, GlavniFrame.document);
	if (item != null)
	    item.style.backgroundColor="#0b4da2"; 
}


function LLMClick(id, n)
{
    if (loto != null)
    {
        var num = CountNumbers();
        if (!IsOnListic(n))
        {
            if (num > loto.sismax-1)
                alert("Na sistemskom LOTO listicu moze biti najvise " + loto.sismax + " brojeva!\nZa vise brojeva odaberite sistem.");
            else
            {
                AddOnListic(n);
                MarkNumber(id, n, true);
				AddLOTOSistem();                
            }
        }
        else
        {
            DeleteFromListic(n);
            MarkNumber(id, n, false);
            DeleteLOTOSistem();       
        }

        num = CountNumbers();
        if (num>0)
        {
            ShowItem("ll_racun", true);
            ShowItem("ll_sender", true);
        }
        else
        {
            ShowItem("ll_racun", false);
            ShowItem("ll_sender", false);
        }   
        var ret = CountLOTO(false);
        if (ret != "") alert(ret);        
    }  
}


function DelAllLOTO()
{
    if (loto != null)
    {
        for (i=1; i<=loto.od; i++)
        {
            if (IsOnListic(i))
            {    
                DeleteFromListic(i);
                MarkNumber("ll_number"+i, i, false);        
            }
        }
    }
    DeleteAllLOTOSistem();
    ShowItem("ll_racun", false);
    ShowItem("ll_sender", false);
}


function DeleteAllLOTOSistem()
{
    if (loto != null)
    {
        loto.ulog1 = new Array();
        loto.ulogk = new Array();
        loto.sisdobitak = new Array();
        loto.brojsistema = 0;
        loto.ukupnibk = 0;
        loto.sistemi = new Array();
        loto.sistemski = false;
    }

    var llsis = gID("ll_sis", GlavniFrame.document);
    if (llsis != null)
        llsis.checked = false;

    SetItemContent("ll_sistem", "");
    SetItemContent("ll_sistem", "");

    ShowItem("ll_sis_header", false);
    ShowItem("ll_sistem", false);
    ShowItem("ll_sis_tools", false);
}


function MarkNumber(id, n, mark)
{
    var llnumber = gID(id, GlavniFrame.document);
	if (llnumber != null)
	{
	    if (mark)
	    {
	        llnumber.innerHTML = "<img alt='" + n + "' src='" + IMG_KRIZIC + "' />";
	        llnumber.style.borderColor = "#ffffff";
	    }
	    else
	    {
	        llnumber.innerHTML = n;
	        llnumber.style.borderColor = "#8fafbf";
	    }
	}
}


function CountNumbers()
{
    if (loto != null)
        return loto.brojevi.length;
    else
        return 0;
}


function IsOnListic(broj)
{
    if (loto != null)
    {
        if (loto.brojevi.length>0)
        {
            for (var i=0; i<loto.brojevi.length; i++)
                if (loto.brojevi[i] == broj)
                    return true;
        }
    }
    return false;
}


function SortNumber(a,b)
{
    return a - b
}


function AddOnListic(broj)
{
    if (loto != null)
    {
        loto.brojevi.push(broj);
        loto.brojevi.sort(SortNumber);
        SetFooter(loto.brojevi);
    }
}


function DeleteFromListic(broj)
{
    if (loto != null)
    {
        var novilotobr = new Array();
        if (loto.brojevi.length>0)
        {
            for (var i=0; i<loto.brojevi.length; i++)
                if (loto.brojevi[i] != broj)
                    novilotobr.push(loto.brojevi[i]);
                    
            loto.brojevi = new Array();
            loto.brojevi = novilotobr;
            loto.brojevi.sort(SortNumber);
            SetFooter(loto.brojevi);
        }                   
    }
}


function InitLOTO()
{
    llprazan = true;
    if (loto != null)
    {
        var lissis = false;
        if (loto.sistemski)
            lissis = true;

        loto.sistemi = new Array();
        loto.ulog1 = new Array();
        loto.ulogk = new Array();
        loto.sisdobitak = new Array();

        loto.brojsistema = 0;
        loto.ukupnibk = 0;
        loto.sistemski = false;
  
        SetLOTO(false, loto.razradaid, loto.naziv, loto.datum, loto.vrijeme, loto.dan, loto.n, loto.od, loto.igramax, loto.sismax, loto.tecajevi);
 
        var num = CountNumbers();
        if (num > 0)
        {
            for (var i=0; i<num; i++)
            {
                var n = loto.brojevi[i];
                if (num > loto.sismax-1)
                    alert("Na sistemskom LOTO listicu moze biti najvise " + loto.sismax + " brojeva!\nZa vise brojeva odaberite sistem.");
                else
                {
                    //AddOnListic(n);
                    MarkNumber("ll_number" + n, n, true);        
			        AddLOTOSistem();                
                }
            
            }
            SetFooter(loto.brojevi);
            
            ShowItem("ll_racun", true);
            ShowItem("ll_sender", true);
            
            SetItemContent("ll_tecaj", LLFormatNumber(LLRound(loto.tecaj), true));
            SetItemContent("ll_trosak", LLFormatNumber(loto.mt, true) + " kn");
            SetItemContent("ll_dobitak", "<span>" + LLFormatNumber(loto.dobitak, true) + "</span> kn");
    	    
            var llulogtxt = gID("ll_ulogtxt", GlavniFrame.document);
            if (llulogtxt != null)
                llulogtxt.value = LLFormatNumber(loto.ulog, false);
    	    
            var lluplatatxt = gID("ll_uplatatxt", GlavniFrame.document);
            if (lluplatatxt != null)
                lluplatatxt.value = LLFormatNumber(loto.uplata, false);            
  
            if (lissis)
            {
                loto.uplata = llminuplata;
                var ret = CountLOTO(false);
                if (ret != "") alert(ret);
            }
                        
        }
    }

    if (llprazan)
        ShowItem("ll_inic", true);
    else
        ShowItem("ll_inic", false);

	var lpframetag = gID("LotoPonudaFrame", GlavniFrame.document);
	var loadingtag = gID("LoadingDiv", GlavniFrame.document);
	
	if ((loadingtag != null)&&(lpframetag != null))
	{
		loadingtag.style.display = "none";
		lpframetag.style.display = "inline";
    }
}


function ShowItem(id, show)
{
    var item = gID(id, GlavniFrame.document);
	if (item != null)
	{
	    if (show)
            item.style.display = "block";   
        else
            item.style.display = "none";        
    }
}


function SetItemContent(id, content)
{
    var item = gID(id, GlavniFrame.document);
	if (item != null)
        item.innerHTML = content;
}


function DeleteLOTO()
{
    if (loto != null)
    {
        loto = null;
        llprazan = true;
        ShowItem("ll_inic", true);
        ShowItem("ll_header", false);
        ShowItem("ll_bet", false);
        ShowItem("ll_panel", false);
        ShowItem("ll_footer", false);
        ShowItem("ll_tools", false);
        ShowItem("ll_sis_header", false);
        ShowItem("ll_sistem", false);
        ShowItem("ll_sis_tools", false);
        ShowItem("ll_racun", false);        
        ShowItem("ll_sender", false);
        ShowItem("ll_poruka", false);
    }
    else
        llprazan = true;
}


function IsKey(kod)
{
    if (KEYS.length>0)
    {
        for (var i=0; i<KEYS.length; i++)
            if (KEYS[i] == kod)
                return true;
    }
    return false;
}


function KeyPressed(e, field)
{
    var kod = ((e.keyCode) ? e.keyCode : e.which);
    if (kod == 13)
    {
        if (field == "ulog")
        {            
            var ret = CountLOTO(true);
            if (ret != "") alert(ret); 
        }
        else
        {
            var ret = CountLOTO(false);
            if (ret != "") alert(ret);        
        }
    }
    if (IsKey(kod))
    {
        if (e.preventDefault)
            return true;
    }
    else
    {
        if (e.preventDefault)
            e.preventDefault();
        else
            e.returnValue = false;
    }
}


function UlogTxtKeyPressed(e)
{
    KeyPressed(e, "ulog");        
}

function UplataTxtKeyPressed(e)
{
    KeyPressed(e, "uplata");        
}


function UlogTxtChange()
{
    var ret = CountLOTO(true);
    if (ret != "") alert(ret);
}


function UplataTxtChange()
{
    var ret = CountLOTO(false);
    if (ret != "") alert(ret);
}


function CountLOTO(overulog)
{
    if (loto != null)
    {
        var k = CountNumbers();
        if ((k>0) && (k<=loto.igramax))
        {
            loto.tecaj = loto.tecajevi[k-1];
            LLWriteMessage("", "D");
        }
        else if ((k>loto.igramax) && (!loto.sistemski))
        {
            if (loto.igramax == 1) brojevastr = " broj!";
            else if (loto.igramax > 1 && loto.igramax < 5) brojevastr = " broja!"; 
            else if (loto.igramax >= 5) brojevastr = " brojeva!";

            loto.tecaj = 0;
            loto.mt = 0.0;
            loto.dobitak = 0.0;

            SetItemContent("ll_tecaj", "-");
            SetItemContent("ll_trosak", "- kn");
            SetItemContent("ll_dobitak", "<span>-</span> kn");
            
            LLWriteMessage("Na običnom LOTO listiću može biti najviše " + loto.igramax + brojevastr, "W");
            return "";
        }

        if (overulog)
        {
            var llulogtxt = gID("ll_ulogtxt", GlavniFrame.document);
	        if (llulogtxt != null)
	        {
	            var vrijednost = LLFormatInput(llulogtxt.value);
	            if (vrijednost != "")
	            {
		            loto.ulog = parseFloat(vrijednost);
	            }
	            else
	            {
		            loto.ulog = llminulog;
		            llulogtxt.value = LLFormatNumber(llminulog, false);
		            alert(lporuka4);
	            }

	            if (loto.ulog<llminulog || isNaN(loto.ulog))
	            {
		            loto.ulog = llminulog;
		            llulogtxt.value = LLFormatNumber(llminulog, false);
		            alert(lporuka4);
	            }

	            loto.mt = LLRound(LLCountMT("ulog", loto.ulog));	
	            loto.uplata = loto.ulog + loto.mt;
	            loto.dobitak = LLRound(loto.ulog * loto.tecaj);

                var lluplatatxt = gID("ll_uplatatxt", GlavniFrame.document);
	            if (lluplatatxt != null)
	                lluplatatxt.value = LLFormatNumber(loto.uplata, false);
	            
	            if (loto.sistemski)
	            {
                    var ret = CountLOTOSistem();
                    if (ret != "") alert(ret);
	            }
	            	            	    
	        }
        }
        else
        {
            var lluplatatxt = gID("ll_uplatatxt", GlavniFrame.document);
	        if (lluplatatxt != null)
	        {        
                var vrijednost = LLFormatInput(lluplatatxt.value);
                if (vrijednost != "")
                {
	                loto.uplata = parseFloat(vrijednost);
                }
                else
                {
	                loto.uplata = llminuplata;
	                lluplatatxt.value = LLFormatNumber(llminuplata, false);
	                alert(lporuka3);
                }

                if (loto.uplata<llminuplata || isNaN(loto.uplata))
                {
	                loto.uplata = llminuplata;
	                lluplatatxt.value = LLFormatNumber(llminuplata, false);
	                alert(lporuka3);
                }

                loto.mt = LLRound(LLCountMT("uplata", loto.uplata));	
                loto.ulog = loto.uplata - loto.mt;
                loto.dobitak = LLRound(loto.ulog * loto.tecaj);

                var llulogtxt = gID("ll_ulogtxt", GlavniFrame.document);
	            if (llulogtxt != null)
	                llulogtxt.value = LLFormatNumber(loto.ulog, false);
	                
	            if (loto.sistemski)
	            {
                    var ret = CountLOTOSistem();
                    if (ret != "") alert(ret);
	            }
	            
            }
        }

        if (loto.dobitak > llmaxdobitak)
            if (!loto.sistemski)
                LLWriteMessage(lporuka5, "W");
            else
                LLWriteMessage(lporuka6, "W");

        SetItemContent("ll_tecaj", LLFormatNumber(LLRound(loto.tecaj), true));
        SetItemContent("ll_trosak", LLFormatNumber(loto.mt, true) + " kn");
        SetItemContent("ll_dobitak", "<span>" + LLFormatNumber(loto.dobitak, true) + "</span> kn");
    }
    return "";
}


function LLCountMT(tip, iznos)
{
    var mt = 0;
	if (tip=="ulog")
		mt=(iznos * llmtposto) / 100.0;
	if (tip=="uplata")
		mt=(iznos * llmtposto) / (100.0 + llmtposto);
	
	return mt;
}


function LLFormatNumber(vrijednost, tocka)
{
	if(isNaN(vrijednost)) vrijednost = "0";
	vrijednost = Math.floor(vrijednost*100+0.50000000001);
	lipe = vrijednost%100;
	vrijednost = Math.floor(vrijednost/100).toString();
	if(lipe<10)
	lipe = "0" + lipe;
	for(var i=0; i<Math.floor((vrijednost.length-(1+i))/3); i++)
		if (tocka)
			vrijednost = vrijednost.substring(0,vrijednost.length-(4*i+3))+"."+vrijednost.substring(vrijednost.length-(4*i+3));
		else
			vrijednost = vrijednost.substring(0,vrijednost.length-(4*i+3))+vrijednost.substring(vrijednost.length-(4*i+3));

	return (vrijednost + "," + lipe);
}


function LLFormatInput(n)
{
	return n.replace(/,/,".");
}


function LLRound(vrijednost)
{
	return Math.round((vrijednost + 0.000001) * 100)/100;
}


function LLWriteMessage(poruka, tip)
{
    var llporuka = gID("ll_poruka", GlavniFrame.document);
    if (llporuka != null)
    {
        ShowItem("ll_poruka", true);
        if (tip == "E")
            poruka = "<div style='padding-bottom: 15px; padding-left: 30px; background: url(" + IMG_ERR + ") no-repeat 1px 3px;'><span>" + poruka + "</span></div>";
        else if (tip == "W")
            poruka = "<div style='padding-bottom: 15px; padding-left: 30px; background: url(" + IMG_WARN + ") no-repeat 1px 3px;'><span>" + poruka + "</span></div>";
        else
            ShowItem("ll_poruka", false);
        llporuka.innerHTML = poruka;
    }  
}


function SetSisLOTO()
{
    if (loto != null)
        loto.sistemski = false;

    var llsis = gID("ll_sis", GlavniFrame.document);
    if (llsis != null)
    {
	    if (llsis.checked == true)
	    {
	        if (CountNumbers()>1)
	        {
	            ShowItem("ll_sis_header", true);
	            ShowItem("ll_sistem", true);
	            ShowItem("ll_sis_tools", true);
	        }
	        else
	        {
	            llsis.checked = false;
	            alert("Odaberite barem 2 broja za sistemski LOTO listic!");
		    }
	    }
	    else if (llsis.checked == false)
	    {
	        ShowItem("ll_sis_header", false);
	        ShowItem("ll_sistem", false);
	        ShowItem("ll_sis_tools", false);
	    }
    
    }

}


function AddLOTOSistem()
{
	var llsistem = gID("ll_sistem", GlavniFrame.document);
    if (llsistem != null)
    {
        if (loto.brojsistema < loto.igramax)
        {
	        var onemoguceno = "disabled";

	        llsistem.innerHTML += "<div class='listic_bet'><table class='sis_t' border='0' cellpadding='0' cellspacing='0'><tr><td rowspan='2' class='s_LSC'><input type='checkbox' id='ll_sis_cb" + loto.brojsistema + "' onclick=SelectLOTOSistem(" + loto.brojsistema + ") /></td><td rowspan='2' class='s_LSB'><div id='ll_sis_s" + loto.brojsistema + "'></div></td><td rowspan='2' class='s_LSK'><div id='ll_sis_bk" + loto.brojsistema + "'></div></td><td class='s_LSU'>UL:<input id='ll_sis_ultxt" + loto.brojsistema + "' name='ll_sis_ultxt" + loto.brojsistema + "' type='text' value='0,00' " + onemoguceno + " onchange='SisUlChange(" + loto.brojsistema + ")' />kn</td></tr><tr><td class='s_LSU'>UP:<input id='ll_sis_uptxt" + loto.brojsistema + "' name='ll_sis_uptxt" + loto.brojsistema + "' type='text' value='0,00' " + onemoguceno + " onchange='SisUpChange(" + loto.brojsistema + ")' />kn</td></tr></table><div class='s_LSD'><span id='ll_sis_md" + loto.brojsistema + "'>0,00</span> kn</div><div class='s_LSD_t'>Mog. dobitak:</div></div>";

	        loto.sistemi[loto.brojsistema] = false;           
     
		    loto.brojsistema++;
		}
	}
    UpdateLOTOSistem();
}


function UpdateLOTOSistem()
{
    if (loto != null)
    {
        loto.sistemski = false;
        loto.ukupnibk = 0;
        SetItemContent("ll_sis_ukBK", loto.ukupnibk);
    
	    if (loto.brojsistema > 0)
	    {
            var ukbr = CountNumbers();
            for (var i=0; i<loto.brojsistema; i++)
            {
		        loto.sistemi[i] = false;
	            llsiscb = gID("ll_sis_cb" + i, GlavniFrame.document);
	            if (llsiscb != null)
		            llsiscb.checked = false;
		            
                SetItemContent("ll_sis_s" + i, (i+1) + "/" + ukbr);

	            var bk = LLBrojKomb(ukbr, i+1);
                SetItemContent("ll_sis_bk" + i, bk);

	            var llsisultxt = gID("ll_sis_ultxt" + i, GlavniFrame.document);
	            if (llsisultxt != null)
	            {
	                llsisultxt.value = LLFormatNumber("0.0", false);
	                llsisultxt.disabled = true;
	            }
	
            	var llsisuptxt = gID("ll_sis_uptxt" + i, GlavniFrame.document);
	            if (llsisuptxt != null)
	            {
	                llsisuptxt.value = LLFormatNumber("0.0", false);
	                llsisuptxt.disabled = true;
                }
	        }
        }
    }
}


function SelectLOTOSistem(broj)
{
    LLWriteMessage("", "D");

	var llsisultxt = gID("ll_sis_ultxt" + broj, GlavniFrame.document);
	if (llsisultxt != null)
	    llsisultxt.value = LLFormatNumber(llminulkomb, false);	
	
	var llsisuptxt = gID("ll_sis_uptxt" + broj, GlavniFrame.document);
	if (llsisuptxt != null)
	    llsisuptxt.value = LLFormatNumber(llminupkomb, false);	

    if (loto != null)
    {
        var bk = LLBrojKomb(CountNumbers(), broj+1);

	    if (loto.sistemi[broj] == false)
        {
            loto.sistemski = true;            
            loto.sistemi[broj] = true;
 
            loto.ukupnibk += bk;
           
	        var llsiscb = gID("ll_sis_cb" + broj, GlavniFrame.document);
            if (llsiscb != null)
                llsiscb.checked = true;

            if (llsisultxt != null)
                llsisultxt.disabled = false;

            if (llsisuptxt != null)
                llsisuptxt.disabled = false;
                
            var ret = CountLOTOSistem();
            if (ret != "") alert(ret);
        }
        else
        {
        	loto.sistemi[broj] = false;

            loto.ukupnibk -= bk;
		    
	        var llsiscb = gID("ll_sis_cb" + broj, GlavniFrame.document);
            if (llsiscb != null)
                llsiscb.checked = false;
            
            loto.sisdobitak[broj] = 0.00;
            SetItemContent("ll_sis_md" + broj, LLFormatNumber(loto.sisdobitak[broj], true));

            if (llsisultxt != null)
            {
                llsisultxt.disabled = true;
                llsisultxt.value = LLFormatNumber("0.0", false);
            }

            if (llsisuptxt != null)
            {
                llsisuptxt.disabled = true;
                llsisuptxt.value = LLFormatNumber("0.0", false);
            }           
                
            if (GetLOTOSistemiCount() == 0)
            {
                loto.sistemski = false;
                var ret = CountLOTO(true);
                if (ret != "") alert(ret);
            }   
            else
            {
                var ret = CountLOTOSistem();
                if (ret != "") alert(ret);
            }
        }        
        SetItemContent("ll_sis_ukBK", loto.ukupnibk);
    }
}


function GetLOTOSistemiCount()
{
    var brsis = 0; 
    if (loto != null)
    {
        if (loto.sistemi.length>0)
            for (var i=0; i<loto.sistemi.length; i++)
                if (loto.sistemi[i] == true)
                    brsis++; 
    }   
    return brsis;
}


function DeleteLOTOSistem()
{
    if (loto.brojsistema > 0)
    {
        SetItemContent("ll_sistem", "");

        loto.ukupnibk = 0;
        loto.brojsistema = 0;
        var num = CountNumbers();        
        if (num>0)
        {
            for (var i=0; i<num; i++)
                AddLOTOSistem();
        }
        
        if (num<2)
        {
            var llsis = gID("ll_sis", GlavniFrame.document);
            if (llsis != null)
	            llsis.checked = false;
            SetSisLOTO();
        }
               
    }
    UpdateLOTOSistem();
}


function SisUlChange(broj)
{
    CountLOTOSistem2(broj, true)
}


function SisUpChange(broj)
{
    CountLOTOSistem2(broj, false)
}


function CountLOTOSistem()
{
    if (loto != null)
    {
	    var ukupniulog = 0;
	    var ukupnisisdobitak = 0;
        var ukbr = CountNumbers();

        var n = loto.n;
        if (ukbr < loto.n)
            n = ukbr;

	    for (var broj=0; broj<loto.brojsistema; broj++)
	    {
		    loto.ulog1[broj] = 0;
		    loto.ulogk[broj] = 0;

		    if (loto.sistemi[broj] == true)
		    {   		
			    var	bk = LLBrojKomb(ukbr, broj + 1);

			    loto.ulog1[broj] = loto.ulog/loto.ukupnibk;

			    loto.ulogk[broj] = Math.round(loto.ulog1[broj]*bk*100)/100; //Zaokruzi(ulog1[broj]*bk);
    	
			    if (loto.ulog1[broj] < llminulkomb)
			    {
			        alert (lporuka7);
				    return lporuka7;
			    }
			    else
				    ukupniulog = ukupniulog + loto.ulogk[broj];

			    var trosak1 = LLRound(LLCountMT("ulog", loto.ulog1[broj]));
    		
			    var uplata1 = loto.ulog1[broj] + trosak1;

                var llsisultxt = gID("ll_sis_ultxt" + broj, GlavniFrame.document);
                if (llsisultxt != null)
                    llsisultxt.value = LLFormatNumber(loto.ulog1[broj], false);

        	    var llsisuptxt = gID("ll_sis_uptxt" + broj, GlavniFrame.document);
                if (llsisuptxt != null)
                    llsisuptxt.value = LLFormatNumber(uplata1, false);

                loto.brdobitnih[broj] = LLBrojKomb(n, broj + 1);
                loto.dobitakk[broj] = LLRound(loto.ulogk[broj]/bk*loto.tecajevi[broj]);
			    loto.sisdobitak[broj] = LLRound((loto.ulogk[broj]/bk*loto.tecajevi[broj])*loto.brdobitnih[broj]);
			    ukupnisisdobitak = ukupnisisdobitak + loto.sisdobitak[broj];
    			
                SetItemContent("ll_sis_md" + broj, LLFormatNumber(loto.sisdobitak[broj], true));
		    }
	    }

	    var razlika = loto.ulog - ukupniulog;

	    if (razlika != 0)
	    {
		    var maxbk = 0;
		    var p = 0;

		    for (var broj=0; broj<loto.brojsistema; broj++)
		    {
			    if (loto.sistemi[broj] == true)
			    {
				    var llsisbk = gID("ll_sis_bk" + broj, GlavniFrame.document);
				    if (llsisbk != null)
				    {
					    var bk = parseInt(llsisbk.innerHTML);
					    if (bk >= maxbk)
					    {
						    p = broj;
						    maxbk = bk;
					    }
				    }

			    }
		    }

		    loto.ulogk[p] = loto.ulogk[p] + razlika;

		    if (maxbk > 0)
		    {
			    ukupnisisdobitak = ukupnisisdobitak - loto.sisdobitak[p];
			    loto.sisdobitak[p] = 0;

                loto.brdobitnih[p] = LLBrojKomb(n, p + 1);

                loto.dobitakk[p] = LLRound(loto.ulogk[p]/maxbk*loto.tecajevi[p]);

    	        loto.sisdobitak[p] = LLRound((loto.ulogk[p]/maxbk*loto.tecajevi[p])*loto.brdobitnih[p]);

			    ukupnisisdobitak = ukupnisisdobitak + loto.sisdobitak[p];

                SetItemContent("ll_sis_md" + p, LLFormatNumber(loto.sisdobitak[p], true));

		    }
		    loto.ulogk[p] = LLRound(loto.ulogk[p]);
	    }

	    loto.mt = LLRound(LLCountMT("ulog", loto.ulog));	
	    loto.uplata = loto.ulog + loto.mt;
	    loto.dobitak = ukupnisisdobitak;

        if (loto.dobitak > llmaxdobitak)
            LLWriteMessage(lporuka6, "W");

	    if (loto.dobitak == 0)
		    loto.dobitak = LLRound(loto.ulog * loto.tecaj);

        SetItemContent("ll_tecaj", "-");
        SetItemContent("ll_trosak", LLFormatNumber(loto.mt, true) + " kn");
        SetItemContent("ll_dobitak", "<span>" + LLFormatNumber(loto.dobitak, true) + "</span> kn");
    }
	return "";
}


function CountLOTOSistem2(k, overulog)
{
    if (loto != null)
    {
        if (overulog)
        {        
            var llsisultxt = gID("ll_sis_ultxt" + k, GlavniFrame.document);
            if (llsisultxt != null)
            {
        
    	        var ulog_1 = 0;
                var vrijednost = LLFormatInput(llsisultxt.value);
                if (vrijednost != "")
		            ulog_1 = parseFloat(vrijednost);
	            else
	            {
		            ulog_1 = llminulkomb;
		            llsisultxt.value = LLFormatNumber(llminulogkomb, false);
		            alert(lporuka7);
	            }

	            if (ulog_1<llminulkomb || isNaN(ulog_1))
	            {
		            ulog_1 = llminulkomb;
		            llsisultxt.value = LLFormatNumber(llminulogkomb, false);
		            alert(lporuka7);
	            }
        	
	            var trosak_1 = LLRound(LLCountMT("ulog", ulog_1));	
	            var uplata_1 = ulog_1 + trosak_1;

                var llsisuptxt = gID("ll_sis_uptxt" + k, GlavniFrame.document);
                if (llsisuptxt != null)
                    llsisuptxt.value = LLFormatNumber(uplata_1, false);
            }
        }
        else
        {
            var llsisuptxt = gID("ll_sis_uptxt" + k, GlavniFrame.document);
            if (llsisuptxt != null)
            {
            	var uplata_1 = 0;
                var vrijednost = LLFormatInput(llsisuptxt.value);
                if (vrijednost != "")
                {
            		uplata_1 = parseFloat(vrijednost);
                }
                else
                {
		            uplata_1 = llminupkomb;
		            llsisuptxt.value = LLFormatNumber(llminupkomb, false);
		            alert(lporuka8);
                
                }

	            if (uplata_1<llminupkomb || isNaN(uplata_1))
	            {
		            uplata_1 = llminupkomb;
		            llsisuptxt.value = LLFormatNumber(llminupkomb, false);
		            alert(lporuka8);
	            }

	            var trosak_1 = LLRound(LLCountMT("uplata", uplata_1));	
	            var ulog_1 = uplata_1 - trosak_1;

                var llsisultxt = gID("ll_sis_ultxt" + k, GlavniFrame.document);
                if (llsisultxt != null)
                    llsisultxt.value = LLFormatNumber(ulog_1, false);
            }          
        }

	    loto.ulog = 0;
	    var ukupnisisdobitak = 0;
        var ukbr = CountNumbers();

        var n = loto.n;
        if (ukbr < loto.n)
            n = ukbr;

	    for (var broj=0; broj<loto.brojsistema; broj++)
	    {
		    loto.ulog1[broj] = 0;
		    loto.ulogk[broj] = 0;

		    if (loto.sistemi[broj] == true)
		    {   		
			    var	bk = LLBrojKomb(ukbr, broj + 1);

	            var llsisultxt = gID("ll_sis_ultxt" + broj, GlavniFrame.document);
                if (llsisultxt != null)
                {
                    var vrijednost = LLFormatInput(llsisultxt.value);
                    if (vrijednost != "")
			            loto.ulog1[broj] = parseFloat(vrijednost);
			    }

			    loto.ulogk[broj] = Math.round(loto.ulog1[broj]*bk*100)/100;
    	
			    loto.ulog = loto.ulog + loto.ulogk[broj];

                loto.brdobitnih[broj] = LLBrojKomb(n, broj + 1);

                loto.dobitakk[broj] = LLRound(loto.ulogk[broj]/bk*loto.tecajevi[broj]);

			    loto.sisdobitak[broj] = LLRound((loto.ulogk[broj]/bk*loto.tecajevi[broj])*loto.brdobitnih[broj]);

			    ukupnisisdobitak = ukupnisisdobitak + loto.sisdobitak[broj];
    			
                SetItemContent("ll_sis_md" + broj, LLFormatNumber(loto.sisdobitak[broj], true));
		    }
	    }

	    if (loto.ulog < llminulog)
	    {
		    alert(lporuka4);
		    loto.ulog = llminulog;
		    var ret = CountLOTOSistem();
		    if (ret != "") alert(ret);
	    }
	    
	    loto.mt = LLRound(LLCountMT("ulog", loto.ulog));	
	    loto.uplata = loto.ulog + loto.mt;
	    loto.dobitak = ukupnisisdobitak;
	    if (loto.dobitak == 0)
		    loto.dobitak = LLRound(loto.ulog * loto.tecaj);

        SetItemContent("ll_tecaj", "-");
        SetItemContent("ll_trosak", LLFormatNumber(loto.mt, true) + " kn");
        SetItemContent("ll_dobitak", "<span>" + LLFormatNumber(loto.dobitak, true) + "</span> kn");
	    
        var llulogtxt = gID("ll_ulogtxt", GlavniFrame.document);
        if (llulogtxt != null)
            llulogtxt.value = LLFormatNumber(loto.ulog, false);
	    
        var lluplatatxt = gID("ll_uplatatxt", GlavniFrame.document);
        if (lluplatatxt != null)
            lluplatatxt.value = LLFormatNumber(loto.uplata, false);
    }
}



function GetLOTOListicString()
{
    var llisticstring = "";
	var llnod = new Array();
	var lltecaj = new Array();
	var llbrkomb = new Array();
	var llulogk = new Array();
	var llulog1 = new Array();
	var llbrdobitnih = new Array();
	var lldobitakk = new Array();
	var llsisdobitak = new Array();
	var llbrsis = 0;
    if (loto != null)
    {
        var p = 0;
        for (var i=0; i<loto.brojsistema; i++)
        { 
	        if (loto.sistemi[i] == true)
	        {
	            llbrsis++;
	        
	            var llsiss = gID("ll_sis_s" + i, GlavniFrame.document);
	            if (llsiss != null)
	                llnod[p] = llsiss.innerHTML;
                else
                    llnod[p] = "";

                var llsisbk = gID("ll_sis_bk" + i, GlavniFrame.document);
                if (llsisbk != null)
                    llbrkomb[p] = llsisbk.innerHTML;
                else
                    llbrkomb[p] = "";

			    lltecaj[p] = LLFormatNumber(loto.tecajevi[i], true);

			    llulogk[p] = LLFormatNumber(loto.ulogk[i], true);

			    llulog1[p] = LLFormatNumber(loto.ulog1[i], true);

			    llbrdobitnih[p] = loto.brdobitnih[i];

			    lldobitakk[p] = LLFormatNumber(loto.dobitakk[i], true);
			
			    llsisdobitak[p] = LLFormatNumber(loto.sisdobitak[i], true);

                p++;	            
	        }	        
        }    
        llisticstring += "&RazradaID=" + loto.razradaid;
        llisticstring += "&Naziv=" + loto.naziv;
        llisticstring += "&Datum=" + loto.datum;
        llisticstring += "&Vrijeme=" + loto.vrijeme;
        llisticstring += "&Brojevi=" + loto.brojevi.join(";");
        llisticstring += "&Racun=" + LLFormatNumber(loto.tecaj,true) + ";" + LLFormatNumber(loto.mt,true) + ";" + LLFormatNumber(loto.ulog,true) + ";" + LLFormatNumber(loto.uplata,true) + ";" + LLFormatNumber(loto.dobitak,true);
        llisticstring += "&MaxBrojeva=" + loto.n;
        llisticstring += "&BrSis=" + llbrsis;
        llisticstring += "&Nod=" + llnod.join(";");
        llisticstring += "&BrKomb=" + llbrkomb.join(";");
        llisticstring += "&Tecajevi=" + lltecaj.join(";");
        llisticstring += "&UlogK=" + llulogk.join(";");
        llisticstring += "&Ulog1=" + llulog1.join(";");
        llisticstring += "&DobitakK=" + lldobitakk.join(";");
        llisticstring += "&BrDobitnih=" + llbrdobitnih.join(";");
        llisticstring += "&SisDobitak=" + llsisdobitak.join(";");        
    }
    return llisticstring;
}



function IspisiLOTOListic()
{
    var poruka = ""; 
    if (loto != null)
    {
	    poruka = CMS.App_Code.Kladionica.Listic.ProvjeriLOTOListic(loto.ulog, loto.uplata, loto.dobitak, loto.sistemski, loto.brojevi, loto.igramax, loto.sismax).value;
	    if (poruka != "")
	    {
	        LLWriteMessage(poruka, "E");
		    alert(lporuka9);
	    }
	    else
	    {
	        LLWriteMessage("", "D");

	        var urlstring = GetLOTOListicString();
    	    
		    var popup = window.open("IspisListica.aspx?Tip=loto" + urlstring, "ispis", "width=475, height=450, toolbar=no, location=no, directories=no, status=no, menubar=no, resizable=yes, scrollbars=yes, modal=yes, top=100, left=100");
		    popup.focus();		
	    }
    }
    else
        poruka = "LOTO listić je prazan! Odaberite brojeve.";
}


function LLFaktorijel(n)
{
	return llfaktorijeli[n-1];
}


function LLBrojKombFakt(n, k1, k2)
{
	return (LLFaktorijel(n)/(LLFaktorijel(k1)*LLFaktorijel(k2)));
}


function LLBrojKomb(n, r)
{
	if ((r == 0) || (r == n))
		return 1;
	else if ((r > n) || (r < 0))
		return 0;
	else
		return LLBrojKombFakt(n, r, n-r);
}
