var groups;
var shops = new Array();
var groups_shops = new Array();

function prepare()
{
	selected_group = 0;
	orig_content = document.getElementById("prodejna");
	if(orig_content==null)
		return;

	groups = orig_content.getElementsByTagName("optgroup");
	groups_count = groups.length;
	group_select = document.createElement("select");
	group_select.onchange = function () { switch_group(this.selectedIndex); };
	group_select.setAttribute("size",1);
	group_select.setAttribute("name","kraj");
	group_select.setAttribute("id","kraj");

	
	for(i = 0; i < groups_count; i++)
	{
		new_group = document.createElement("option");
		new_group.setAttribute("value",i);
		new_group.appendChild(document.createTextNode(groups[i].label));
		groups_shops[i] = new Array();

		group_shops = groups[i].getElementsByTagName("option");
		shops_count = group_shops.length;

		for(j = 0; j < shops_count; j++)
		{
			shops[shops.length] = Array(group_shops[j].getAttribute("value"), group_shops[j].innerHTML);
			groups_shops[i][groups_shops[i].length] = shops.length-1;
			if(group_shops[j].selected)
			{
				selected_group = i;
				//new_group.setAttribute("selected","selected");
			}
		}
		group_select.appendChild(new_group);
	}

	new_group = document.createElement("option");
	new_group.setAttribute("value",'');
	new_group.appendChild(document.createTextNode("vyberte"));
	new_group.setAttribute("selected","selected");
	group_select.appendChild(new_group);

	var prnt = document.getElementById("vyber");
	prnt.removeChild(document.getElementById("prodejna"));
	prnt.appendChild(group_select);
	prnt.appendChild(document.createElement("br"));

	//switch_group(selected_group);
}

function switch_group(new_group)
{
	var shops_select = document.getElementById("prodejna");
	if(!shops_select)
	{
		new_select = document.createElement("select");
		new_select.setAttribute("id", "prodejna");
		new_select.setAttribute("size", 1);
		new_select.setAttribute("name","prodejna");

		document.getElementById("vyber").appendChild(new_select);
		shops_select = document.getElementById("prodejna");
	}

	while(shops_select.firstChild != null)
		shops_select.removeChild(shops_select.firstChild);

	shops_count = groups_shops[new_group].length;


	for(i = 0; i < shops_count; i++)
	{
		new_shop = document.createElement("option");
		new_shop.setAttribute("value",shops[groups_shops[new_group][i]][0]);
		new_shop.appendChild(document.createTextNode(shops[groups_shops[new_group][i]][1]));

		shops_select.appendChild(new_shop);
	}
	
	new_shop = document.createElement("option");
	new_shop.setAttribute("value",'');
	new_shop.setAttribute("selected","selected");
	new_shop.appendChild(document.createTextNode("vyberte"));

	shops_select.appendChild(new_shop);

}

// Pridani udalosti pri nacteni stranky
var oldonload = window.onload;
if(typeof window.onload != 'function')
{
	window.onload = prepare;
} else
{
	window.onload = function()
		{
			oldonload();
			prepare();
		}
}

//////////////////////////////////////////////////////////////////////////////////////
//////////////////// zakazane dvojice platby a doruceni //////////////////////////////

	var pairsDoruceni = new Array();
	var pairsPlatby = new Array();
	var defaultDoruceni = 0;
	var defaultPlatby = 0;

	// nastaveni obsahu ze stranky
	function setPairsDoruceni(pd)
	{
		pairsDoruceni = pd;
	}
	
	// nastaveni obsahu ze stranky
	function setPairsPlatby(pp)
	{
		pairsPlatby = pp;
	}
	
	// nastaveni vychoziho doruceni ze stranky
	function setDefaultDoruceni(dd)
	{
		defaultDoruceni = dd;
	}
	
	// nastaveni vychozi platby ze stranky
	function setDefaultPlatby(dp)
	{
		defaultPlatby = dp;
	}
	
	// zakaze pro platbu plaId vsechny sparovane doruceni
	function disablePairedForPlatby(plaId)
	{
		enableAll();
		
		for (dorId in pairsPlatby[plaId])
		{
			disableElement('dor'+dorId);
		}
	}
	
	// zakaze pro doruceni dorId vsechny sparovane platby
	function disablePairedForDoruceni(dorId)
	{
		enableAll();
		
		for (plaId in pairsDoruceni[dorId])
		{
			disableElement('pla'+plaId);
		}
	}
	
	// pomocna fce ktera zakaze element
	function disableElement(elementId)
	{
		if (document.getElementById(elementId) != null)
		{
			document.getElementById(elementId).checked = false;
			document.getElementById(elementId).disabled = true;
		}
	}

	// pomocna fce ktera povoli element
	function enableElement(elementId)
	{
		if (document.getElementById(elementId) != null)
		{
			document.getElementById(elementId).disabled = false;
		}
	}
	
	// fce povoli vsechny elementy
	function enableAll()
	{
		for (plaId in pairsPlatby)
		{
			enableElement('pla'+plaId);
		}
		for (dorId in pairsDoruceni)
		{
			enableElement('dor'+dorId);
		}
	}

// Pridani udalosti pri nacteni stranky
var oldonload = window.onload;
if(typeof window.onload != 'function')
{
	window.onload = disablePairedForPlatby(defaultPlatby);
	// pokud ma zakaznik predvoleny zpusob platby

} else
{
	window.onload = function()
	{
		oldonload();
		disablePairedForPlatby(defaultPlatby);

		// pokud ma uzivatel preddefinovanou dopravu, vybere se kraj a prodejna, podle prodejny kraj, protoze kraje nemaji pevne id
		if(vyber_prodejnu>0)
		{
			// musim ziskat index kraje, abych jej oznacil podle vybrane prodjny
			for (var loop=0; loop<shops.length; loop++)
			{
				if(shops[loop][0]==vyber_prodejnu)
				{
					for (var xx=0; xx<groups_shops.length; xx++)
					{
						// projdu pdrodejny ktery jsou serazeny podle ne sveho id
						for (var yy=0; yy<groups_shops[xx].length; yy++) {
							if(groups_shops[xx][yy]==loop)
							{
								// prepnuti vyberu
								switch_group(xx);

								// odstraneni puvodniho selectu
								var id_prodejna=document.getElementById("prodejna");
								for (var ss=0; ss<id_prodejna.options.length; ss++)
								{	// nove oznaceni
									document.getElementById("prodejna").options[ss].removeAttribute("selected");
								}

								// odstraneni puvodniho selectu
								var id_prodejna=document.getElementById("kraj");
								for (var ss=0; ss<id_prodejna.options.length; ss++)
								{
									document.getElementById("kraj").options[ss].removeAttribute("selected");
								}

								document.getElementById("kraj").options[xx].setAttribute("selected","selected");
								document.getElementById("prodejna").options[yy].setAttribute("selected","selected");

								document.getElementById("kraj").options[xx].selected = "1"
								document.getElementById("prodejna").options[yy].selected = "1"
							}
						}
					}
				}
			}
		}
	}
}

