﻿  var PocetDnuPlatnostiCookie = 14;
  var i;
  var cel = new Array();
  var textem;
  var textemhlaska;
  

  
  function vratsegment(cislo)
  {
		if(cislo<6) return 1;
		if (cislo<11) return 2;
		if (cislo<16) return 3;
		if (cislo<21) return 4;
		if (cislo<26) return 5;
		if (cislo<31) return 6;
		if (cislo<36) return 7;
		return 8;
  }
  function pocetprvkuvsegmentu(b,segment)
  {
		var numcnt = 0;
		for(i=segment*5-4;i<=segment*5;i++)
			if (cel[""+b+i].checked) numcnt++;
		return numcnt;
  }

  function chkbxchg(b,a,Xcis,Nvc,Hra)
  { var numcnt = 0;

    for (i=1; i<=Xcis; i++)
      if (cel[""+b+i].checked) numcnt++;
      
    if (numcnt > Nvc) { cel[""+b+a].checked = false; alert("Sloupec "+b+" je již úplně vyplněn"); }
    
    with (document.getElementById("cbtd"+b+a).style)
      if (cel[""+b+a].checked==true) { background = "red"; color = "white"; }
      else                           { background = ((a+(Hra==3?(a-1>>3):(Hra==4?Math.floor((a-1)/Xcvr):0)))%2?"#e8e9e1":"#f3f4ee"); color = "black"; }
      
    
    if(Hra==5)//kontrola segmentu
    {
			 var barva=0;
			 var segment=vratsegment(a);
			 var prvkuvsegmentu = pocetprvkuvsegmentu(b,segment);
			 if (prvkuvsegmentu>1) {cel[""+b+a].checked = false; alert("V každém segmentu lze označit nejvýše jedno číslo"); }
			 
	     with (document.getElementById("cbtd"+b+a).style)
			 if (cel[""+b+a].checked==true) { background = "red"; color = "white"; }
			 else                           
			 {				
			  if(a>=16&&a<=25)
				{
					if ((a-2)%5==0||(a-3)%5==0) 
					barva=1; 
					else barva=0;
				}
				else
				{
					if ((a-2)%5==0||(a-3)%5==0) 
					barva=0; 
					else barva=1;
				}			 
				background = (barva)?"#e8e9e1":"#f3f4ee"; color = "black"; 
			}
    }
    
      
    txt = "";
    for (i=1; i<=Xcis; i++)
      if (cel[""+b+i].checked) txt += (txt==""?"":", ") + i;
    document.getElementById("seznam"+b).value = txt;

    if (Hra == 3 || Hra == 4) eval("if (document.forms.f.rbpocis"+b+"[numcnt]) document.forms.f.rbpocis"+b+"[numcnt].checked = true;");
  }

  function kliknapocis(b)
  { var numcnt = 0;

    for (var i=1; i<=Xcis; i++)
      if (cel[""+b+i].checked) numcnt++;
    eval("document.forms.f.rbpocis"+b+"[numcnt].checked = true;");
  }

  function vkladchg(b,a)
  { var v = false;

    for (var i=2; i<=5; i++)
      eval("if (document.forms.f.cbvklad"+b+i+".checked) v = true;");
    if (!v) eval("document.forms.f.cbvklad"+b+"1.checked = true;");
  }

  function skonec(Xsl, Hra)
  { // uložení zaklikaných čísel
		var cok="";
    for (i=1; i<=Xsl; i++)
    { 
			if (document.getElementById("seznam"+i).value != "")
			{
				cok+='s'+i+'start'+document.getElementById("seznam"+i).value+'s'+i+'end';
				//CreateCookie(Hra+"seznam"+i,document.getElementById("seznam"+i).value,PocetDnuPlatnostiCookie);
				EraseCookie(Hra+"seznam"+i);//historicke duvody po 14 dnech odstranit
			}
      else
        EraseCookie(Hra+"seznam"+i);

      if ((Hra == 3) || (Hra == 4)||(Hra == 5)||(Hra == 6))
      { // uložení vkladů
        var bm = 0;
        for (a=1; a<=5; a++)
          bm |= (document.getElementById("cbvklad"+i+a).checked?1:0) << a;
        CreateCookie(Hra+"vklad"+i,bm,PocetDnuPlatnostiCookie);
      }
      if (Hra == 2)
      { var cnt = 0;
        for (var o=1; o<=5; o++)
          eval("if (document.forms.f.rb2osudi"+i+"[o-1].checked) cnt = o;");
        CreateCookie(Hra+"c2os"+i,cnt,PocetDnuPlatnostiCookie);
      }
      if (Hra == 4) CreateCookie(Hra+"kralovska"+i,(document.getElementById("cbkralovska"+i).checked?1:0),PocetDnuPlatnostiCookie);
      if (Hra == 5) CreateCookie(Hra+"stupnovana"+i,(document.getElementById("cbstupnovana"+i).checked?1:0),PocetDnuPlatnostiCookie)
    }
    CreateCookie(Hra+"seznam",cok,PocetDnuPlatnostiCookie);
    if ((Hra == 1) || (Hra == 4)) CreateCookie(Hra+"tisance",document.forms.f.tisance.value,PocetDnuPlatnostiCookie);
  }

  function odbarvivse(Xsl,Xcis,Hra)
  {
		 for (var f=1; f<=Xsl; f++)
			{ for (i=1; i<=Xcis; i++)
				{
					if(Hra==5)
					{
						with (document.getElementById("cbtd"+f+i).style) 
						{ 				
							if(i>=16&&i<=25)
							{
								if ((i-2)%5==0||(i-3)%5==0) 
								barva=1; 
								else barva=0;
							}
							else
							{
								if ((i-2)%5==0||(i-3)%5==0) 
								barva=0; 
								else barva=1;
							}			 
							background = (barva)?"#e8e9e1":"#f3f4ee"; color = "black";						
						}
					}
					else
					{
						with (document.getElementById("cbtd"+f+i).style) 
						{ 
							color = "black"; 
							background = ((i+(Hra==3?(i-1>>3):(Hra==4?Math.floor((i-1)/Xcvr):0)))%2?"#e8e9e1":"#f3f4ee"); 					
						}
					}
				}	
				document.getElementById("seznam"+f).value = "";
			}
  }
 
  function odbarvivsekostky()
  {
		var barva;
		for (var f=1; f<=4; f++)
		{ 
				for (i=6; i<=36; i++)
				{
						with (document.getElementById("cbtd"+f+i).style) 
						{ 				
								if (i%2==0) 
								barva=1; 
								else barva=0;
								background = (barva)?"#e8e9e1":"#f3f4ee"; color = "black";						
						}
					}
			}
  }

  function Vizita(Sloupcu, Cisel, MinVybrano, Hra) // Hra=1: Sportka; 2: EuroMillions; 3: Keno; 4: Štastných 10
  { var cnt;
    var nlast = false;
    var errstr = "";

    for (var sl=Sloupcu; sl>0; sl--)
    { cnt = 0;
      for (var cis=1; cis<=Cisel; cis++)
        if (cel[""+sl+cis].checked) cnt++;
      if (cnt > 0) nlast = true;
      if (nlast && cnt == 0) errstr = "Sloupec "+sl+" není vyplněn. Sloupce není možné vynechávat.\n" + errstr;
      if (nlast && cnt > 0 && cnt < MinVybrano && Hra!=4 && Hra!=3) errstr = "Ve sloupci "+sl+" je vyplněno méně čísel, než je povoleno.\n" + errstr;
      if (Hra==2) if (nlast) { cnt = 0; for (var o=1; o<=5; o++) eval("if (document.forms.f.rb2osudi"+sl+"[o-1].checked) cnt = 1;");
                               if (!cnt) errstr = "Pro sloupec "+sl+" není zvoleno číslo z druhého osudí.\n" + errstr;
                             }
    }
    if ((Hra==1) || (Hra == 4)) if ((document.forms.f.tisance.value.length > 0) && (document.forms.f.tisance.value.length < 6)) errstr += "Ve hře Šance je nutné vyplňit všech 6 číslic.";
    if (errstr == "") return true; else { alert("Čísla nejsou vyplněna podle pravidel. Opravte, prosím, následující chyby:\n\n"+errstr); return false; }
  }

  function pisesance(evt)
  { var charCode=(evt.which)?evt.which:event.keyCode;
    if(charCode>31&&(charCode<48||charCode>57))return false;
    return true;
  }

  function sstart(Xsl, Xcis, Hra)
  { var c;
    var arr = new Array();

    document.getElementById("tab").innerHTML = txt;
    for (var f=1; f<=Xsl; f++)
      for (i=1; i<=Xcis; i++)
        cel[""+f+i] = document.getElementById("cb"+f+i);

    for(var r=0; r<document.forms.f.length; r++)
      with (document.forms.f[r])
        if (!name) name = id;

    // načtení zaklikaných čísel
    var cookie = ReadCookie(Hra+"seznam");
    for (var f=1; f<=Xsl; f++)
    { 
			if(cookie)
			c=ZiskejSeznamZCookie(cookie,'s'+f);
			else
			c = ReadCookie(Hra+"seznam"+f);
      if (c)
      { arr = c.split(",")
        for (var i=0; i<arr.length; i++)
        { cel[""+f+new Number(arr[i])].checked = true;
          chkbxchg(f,new Number(arr[i]),Xcis,Nvc,Hra);
        }
      }
      if ((Hra == 3) || (Hra == 4)|| (Hra == 5))
      { c = ReadCookie(Hra+"vklad"+f);
        if (c)
          for (a=1; a<=5; a++)
            document.getElementById("cbvklad"+f+a).checked = c & (1 << a);
      }
      if ((Hra == 1) || (Hra == 4))
      { c = ReadCookie(Hra+"tisance");
        if (c) document.forms.f.tisance.value = c;
      }
      if (Hra == 2)
      { c = ReadCookie(Hra+"c2os"+f);
        if (c>0) eval("document.forms.f.rb2osudi"+f+"[c-1].checked = true;");
      }
      if (Hra == 4)
      { c = ReadCookie(Hra+"kralovska"+f);
        if (c>0) document.getElementById("cbkralovska"+f).checked = true;
      }
      if (Hra == 5)
      { c = ReadCookie(Hra+"stupnovana"+f);
        if (c>0) document.getElementById("cbstupnovana"+f).checked = true;
      }
    }
  }

// Cookies
function CreateCookie(name,value,days)
{
	if (days)
  {	var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function ReadCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
  {	var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function EraseCookie(name)
{
	CreateCookie(name,"",-1);
}

function zmenatextu(sloupec,maxcislo,maxcisel,hra)
{	
	
	text=document.getElementById('seznam'+sloupec).value;
	if (JeKorektniZadani(text,maxcislo,maxcisel,hra,sloupec))
	{
			document.getElementById('seznam'+sloupec).value=textem;
//		zaklikani dle retezce	
			oznacdleretezce(sloupec,maxcislo,maxcisel,hra);	
	}
	else
	{	
//		Nastaveni textu dle zaklikani
			oznacdlechkboxu(sloupec,maxcislo,maxcisel,hra);
			var hlaska ='Špatný formát řetězce \n'+textemhlaska+" "
			alert(hlaska);
	}	
}

function JeKorektniZadani(text,maxcislo,maxcisel,hra,sloupec)
{
		var cisla=new Array();
		var pocetcisel=0;
		var korektni=true;
		var ukladanecislo="";
		for (var i=0;i<text.length;i++)
		{
			znak=text.charAt(i);
			nenimezera=(znak!=' '&& znak!=',') 
			nenicislo=(znak!='0'&&znak!='1'&&znak!='2'&&znak!='3'&&znak!='4'&&znak!='5'&&znak!='6'&&znak!='7'&&znak!='8'&&znak!='9');
			if(nenimezera&&nenicislo)
			{
				textemhlaska="Čísla zapisujte oddělená čárkou nebo mezerou jiné znaky nejsou povoleny";
				return false;
			}
			if(!nenimezera)
			{			
				
				if(ukladanecislo!="")
				{
					if(hra==5)
					{
						var segment=vratsegment(ukladanecislo);						
						if(obsahujesegment(segment,cisla))
						{
							textemhlaska="V každém segmentu lze označit nejvýše jedno číslo";
							return false;
						}
					}					
					
					pocetcisel++;					
					
					pocetciselprekrocen=(pocetcisel>maxcisel)
					if(pocetciselprekrocen)
					{
						textemhlaska="Počet vkládaných čísel nesmí být větší než "+Nvc;
						return false;
					}								
					
					if (obsahuje(cisla,ukladanecislo))
					{
						textemhlaska="Každé číslo se smí v řetězci vyskytnout pouze 1x"
						return false;
					}				
										
					cisla[pocetcisel-1]=ukladanecislo;			
					ukladanecislo="";
				}
						
			}
			if(!nenicislo)
			{
					ukladanecislo=ukladanecislo+znak;
					jevrozsahu=(ukladanecislo<=maxcislo&&ukladanecislo>=1)
					if(!jevrozsahu)
					{
						textemhlaska="Čísla musí být z intervalu <1,"+maxcislo+">";
						return false;
					}	
			}
		}
		//posledni cislo
		pocetcisel++;
		pocetciselprekrocen=(pocetcisel>maxcisel&&ukladanecislo!="")
		if(pocetciselprekrocen)
		{
			textemhlaska="Počet vkládaných čísel nesmí být větší než "+Nvc;
			korektni=false;
		}
		else if (ukladanecislo!="")
		{
			if (obsahuje(cisla,ukladanecislo))
			{
					textemhlaska="Každé číslo se smí v řetězci vyskytnout pouze 1x";
					return false;
			}
			cisla[pocetcisel-1]=ukladanecislo;
			ukladanecislo="";
		}
		
		cisla.sort(sortNumber);
		textem=cisla.join(", ");
		
		
		return korektni;
}
//	-spravne oddeleni
//	-cisla v rozsahu
//	-pocet cisel
function sortNumber(a,b)
{
	return a - b;
}
function obsahuje(pole,hodnota)
{
	for (var i=0;i<pole.length;i++)
	{
		if(pole[i]==hodnota) return true;
	}
	return false;
}


function oznacdleretezce(sloupec,maxcislo,maxcisel,hra)
{	
			///uncheckall
			for(var i=1;i<=maxcislo;i++)
			{
				cel[""+sloupec+i].checked=false;				
				with (document.getElementById("cbtd"+sloupec+i).style){background = ((i+(Hra==3?(i-1>>3):(Hra==4?Math.floor((i-1)/Xcvr):0)))%2?"#e8e9e1":"#f3f4ee"); color = "black";}				
				if(hra==5)
				{
					with (document.getElementById("cbtd"+sloupec+i).style)
					{
						if(i>=16&&i<=25)
						{
							if ((i-2)%5==0||(i-3)%5==0) 
							barva=1; 
							else barva=0;
						}
						else
						{
							if ((i-2)%5==0||(i-3)%5==0) 
							barva=0; 
							else barva=1;
						}			 
						background = (barva)?"#e8e9e1":"#f3f4ee"; color = "black"; }				
					}
				}			
				c = textem;
				if (c)
				{
					arr = c.split(",")
					for (var i=0; i<arr.length; i++)
					{ 
						cel[""+sloupec+new Number(arr[i])].checked = true;
						chkbxchg(sloupec,new Number(arr[i]),maxcislo,maxcisel,Hra);
					}
				}      
}
function oznacdlechkboxu(sloupec,maxcislo,maxcisel,hra)
{
	chkbxchg(sloupec,1,maxcislo,maxcisel,Hra);
	chkbxchg(sloupec,1,maxcislo,maxcisel,Hra);
}
function obsahujesegment(segment,cisla)
{
	for (var i=0;i<cisla.length;i++)
	{
		if(vratsegment(cisla[i])==segment)
		return true;
	}
	return false;
}

 function kostkystart() 
 {  
		var f=1;
		var Xsl=4;//pocet sloupcu
		var Xcis=36;//maxcislo
		var c;
    var arr = new Array();
    var Hra=6;	
    
    document.getElementById("tab").innerHTML = txt;

    for(var r=0; r<document.forms.f.length; r++)
      with (document.forms.f[r])
        if (!name) name = id;
        
          

      

    // načtení zaklikaných čísel
    var cookie = ReadCookie(Hra+"seznam");
    for (var f=1; f<=Xsl; f++)
    { 
			var pen = ReadCookie(Hra+"vklad"+f);
			if (pen)
      for (a=1; a<=5; a++)
        document.getElementById("cbvklad"+f+a).checked = pen & (1 << a);
    
    
			if(cookie)
			c=ZiskejSeznamZCookie(cookie,'s'+f);		
      if (c)
      { 
					if(c.indexOf('jednicky')>-1)
					{
						check('cb'+f+'jednicky');												
					}
					if(c.indexOf('dvojky')>-1)
					{
						check('cb'+f+'dvojky');
					}
					if(c.indexOf('trojky')>-1)
					{
						check('cb'+f+'trojky');
					}
					if(c.indexOf('ctyrky')>-1)
					{
						check('cb'+f+'ctyrky');
					}
					if(c.indexOf('petky')>-1)
					{
						check('cb'+f+'petky');
					}
					if(c.indexOf('sestky')>-1)
					{
						check('cb'+f+'sestky');
					}
					if(c.indexOf('sude')>-1)
					{
						check('cb'+f+'sude');
					}
					if(c.indexOf('liche')>-1)
					{
						check('cb'+f+'liche');
					}
					if(c.indexOf('general')>-1)
					{
						check('cb'+f+'general');
					}					
					if(c.indexOf('petice')>-1)
					{
						check('cb'+f+'petice');
					}
					if(c.indexOf('ctverice')>-1)
					{
						check('cb'+f+'ctverice');
					}
					if(c.indexOf('2trojice')>-1)
					{
						check('cb'+f+'2trojice');
					}
					if(c.indexOf('3dvojice')>-1)
					{
						check('cb'+f+'3dvojice');
					}
					if(c.indexOf('postupka')>-1)
					{
						check('cb'+f+'postupka');
					}
					if(c.indexOf('vysoke')>-1)
					{
						check('cb'+f+'vysoke');
					}
					if(c.indexOf('nizke')>-1)
					{
						check('cb'+f+'nizke');
					}
					for (i=6;i<=37;i++)        
					{	
						var cislo;
						if(i<10)
							cislo="0"+i;
						else
							cislo=i;
						if(c.indexOf(cislo)>-1)
								check('cb'+f+i);
					}
        figuraclick(f);
      }
    }
  }
 
function ZiskejSeznamZCookie(cookie,sx)
{
	//returns string
	var sxstart=sx+'start'
	var sxend=sx+'end';
	if(cookie.indexOf(sxstart)>-1&&cookie.indexOf(sxend)>-1)
	var ret=cookie.substring(cookie.indexOf(sxstart)+sxstart.length,cookie.indexOf(sxend));
	else 
	return false;
	return ret;	
} 



function check(id)
{
	var el=document.getElementById(id)
	el.checked=true;
}

function figuraclick(sloupec)
{	
	var multisazka=document.getElementById('cbmultisazka'+sloupec)	
  if (pocetzakliknutych(sloupec)>1)
		multisazka.checked=true;
	else
		multisazka.checked=false;
}


function pocetzakliknutych(f)
{
	textem="";
	var count=0;
	for (var i=6; i<=36; i++)
	{
		var elem=document.getElementById("cb"+f+i)
		var elem2=document.getElementById("cbtd"+f+i)
		if(elem.checked) 
		{
			count++;
			with (elem2.style){ background = "red"; color = "white"; }			
			if(i<10) textem+="0"
			textem+=i+", "			
		}
		else {with (elem2.style){ background = (i%2==0)? "#e8e9e1":"#f3f4ee"; color = "black"; }}
	}
	if(document.getElementById("cb"+f+"jednicky").checked){count++;textem+="jednicky"+", "}
	if(document.getElementById("cb"+f+"dvojky").checked){count++;textem+="dvojky"+", "}
	if(document.getElementById("cb"+f+"trojky").checked){count++;textem+="trojky"+", "}
	if(document.getElementById("cb"+f+"ctyrky").checked){count++;textem+="ctyrky"+", "}
	if(document.getElementById("cb"+f+"petky").checked) 	{count++;textem+="petky"+", "}
	if(document.getElementById("cb"+f+"sestky").checked) {count++;textem+="sestky"+", "}
	if(document.getElementById("cb"+f+"sude").checked) {count++;textem+="sude"+", "}
	if(document.getElementById("cb"+f+"liche").checked) {count++;textem+="liche"+", "}
	if(document.getElementById("cb"+f+"general").checked) {count++;textem+="general"+", "}
	if(document.getElementById("cb"+f+"petice").checked) {count++;textem+="petice"+", "}
	if(document.getElementById("cb"+f+"ctverice").checked) {count++;textem+="ctverice"+", "}
	if(document.getElementById("cb"+f+"2trojice").checked) {count++;textem+="2trojice"+", "}
	if(document.getElementById("cb"+f+"3dvojice").checked) {count++;textem+="3dvojice"+", "}
	if(document.getElementById("cb"+f+"postupka").checked) {count++;textem+="postupka"+", "}
	if(document.getElementById("cb"+f+"vysoke").checked) {count++;textem+="vysoke"+", ";}
	if(document.getElementById("cb"+f+"nizke").checked) {count++;textem+="nizke"+", ";}
	
	var txtarea=document.getElementById("seznam"+f);
	txtarea.innerHTML=textem;
	return count;
}
 function kostkyvizita() // Hra=1: Sportka; 2: EuroMillions; 3: Keno; 4: Štastných 10 ;5: Lucky Lines ;6:Kostky
  { 
		var cnt;
    var nlast = false;
    var errstr = "";
    for (var sl=4; sl>0; sl--)
    { cnt = pocetzakliknutych(sl);
      if (cnt > 0) nlast = true;
      if (nlast && cnt == 0) errstr = "Sloupec "+sl+" není vyplněn. Sloupce není možné vynechávat.\n" + errstr;      
    }    
    if (errstr == "") return true; else { alert("Čísla nejsou vyplněna podle pravidel. Opravte, prosím, následující chyby:\n\n"+errstr); return false; }
}
