function confirmAction(msg,action,paramm,value,paramm2,value2)
{
	if (confirm(msg))
	{
		document.forms[0].DO.value=action;
		if (paramm) document.forms[0][''+paramm].value=value;
		if (paramm2) document.forms[0][''+paramm2].value=value2;
		document.forms[0].submit();
	}
}

function performAction(action,paramm,value,paramm2,value2)
{
	document.forms[0].DO.value=action;
	if (paramm) document.forms[0][''+paramm].value=value;
	if (paramm2) document.forms[0][''+paramm2].value=value2;
	document.forms[0].submit();
}

// struts base preposle, kvuli IE5.0
function performRedirectAction(redirValue)
{
	document.forms[0].DO.value='sbredir';
	document.forms[0].SBREDIR.value=redirValue;
	document.forms[0].submit();
}

var myWin=null;
function openWin(page,width,height,hidescrollbars)
{
	if (myWin && myWin.close) myWin.close();
	if (!width) width=600;
	if (!height) height=600;
	myWin=window.open(page,'myWin','width='+width+',height='+height+',location=no,menubar=no,personalbar=no,resizable=yes,scrollbars='+(hidescrollbars?'no':'yes'));
	myWin.moveTo((screen.availWidth-width)/2,(screen.availHeight-height)/2);
}


function focus(form) 
{
	if (form == null) form = document.forms[0];
	i=0;
	while (form[i] && form[i].type=="hidden") i++;
	if (form[i]) form[i].focus();
}

function showItems(pageNo) {
	performAction('reload', 'pageManager.currentPage', pageNo);
}

function enableSexRadios(enableMuzi, selectedSexId, form){
	if (form == null) form = document.forms[0];
	result = enableMuzi[form["selectedAgeCategoryId"].value][form["selectedPowerCategoryId"].value];
	
	pocet=form["selectedSexTypeId"].options.length;
	for (var i=0;i<pocet;i++)
		form["selectedSexTypeId"].options[0]=null;
	
	i = 0;
	if (result > 99)
	{
		form["selectedSexTypeId"].options[i] = new Option("Nerozlišeno", 100);
		i = i + 1;
	}    
	
	if ((result % 100) > 9)
	{
		form["selectedSexTypeId"].options[i] = new Option("Muži", 10);
		i = i + 1;
	}    
	
	
	if ((result % 10) == 1)
	{
		form["selectedSexTypeId"].options[i] = new Option("Ženy", 1);
		i = i + 1;
	}    
	
	form["selectedSexTypeId"].length = i;
	
	for (i = 0; i < form["selectedSexTypeId"].options.length; i++) {
		if (form["selectedSexTypeId"].options[i].value == selectedSexId) {
			form["selectedSexTypeId"].options[i].selected=true;
			break;
		}
	}	
}

function enableAllRadios(radiosSettings, selectedDisciplineTypeId, selectedAgeCategoryId, selectedPowerCategoryId, selectedSexTypeId, selectedAreaId, form) {
	if (form == null) form = document.forms[0];
	
	if (form["selectedDisciplineTypeId"] != null && form["selectedDisciplineTypeId"].value != '') {
		selectedDisciplineTypeId = form["selectedDisciplineTypeId"].value;
	}
	if (form["selectedAgeCategoryId"] != null && form["selectedAgeCategoryId"].value != '') {
		selectedAgeCategoryId = form["selectedAgeCategoryId"].value;
	}
	if (form["selectedPowerCategoryId"].value != '') {
		selectedPowerCategoryId = form["selectedPowerCategoryId"].value;
	}
	if (form["selectedSexTypeId"] != null && form["selectedSexTypeId"].value != '') {
		selectedSexTypeId = form["selectedSexTypeId"].value;
	}
	if (form["selectedAreaId"] != null && form["selectedAreaId"].value != '') {
		selectedAreaId = form["selectedAreaId"].value;
	}
	
	if (form["selectedDisciplineTypeId"] != null) {
		pocet=form["selectedDisciplineTypeId"].options.length;
		for (var i=0;i<pocet;i++) {
			form["selectedDisciplineTypeId"].options[0]=null;
		}
		form["selectedDisciplineTypeId"].length = 0;
	}
	if (form["selectedAgeCategoryId"] != null) {
		pocet=form["selectedAgeCategoryId"].options.length;
		for (var i=0;i<pocet;i++) {
			form["selectedAgeCategoryId"].options[0]=null;
		}
		form["selectedAgeCategoryId"].length = 0;
	}
	pocet=form["selectedPowerCategoryId"].options.length;
	for (var i=0;i<pocet;i++) {
		form["selectedPowerCategoryId"].options[0]=null;
	}
	form["selectedPowerCategoryId"].length = 0;
	if (form["selectedSexTypeId"] != null) {
		pocet=form["selectedSexTypeId"].options.length;
		for (var i=0;i<pocet;i++) {
			form["selectedSexTypeId"].options[0]=null;
		}
		form["selectedSexTypeId"].length = 0;
	}
	if (form["selectedAreaId"] != null) {
		pocet=form["selectedAreaId"].options.length;
		for (var i=0;i<pocet;i++) {
			form["selectedAreaId"].options[0]=null;
		}
		form["selectedAreaId"].length = 0;
	}
	
	posDisciplina = 0;
	var zeroPosition = radiosSettings[0];
	//vzdy prolinkovat vyber krome pripadu, kdy je uvedena volba "VSE"
	//v tomto pripade je jedna jen o filtr a potrebuji nacist vsechny varianty do roletek
	var radiosLinked = ((zeroPosition == null) || (zeroPosition.text == ''));
	
	if (form["selectedDisciplineTypeId"] != null && zeroPosition != null) {
		opt = new Option(zeroPosition.text, zeroPosition.value);
		form["selectedDisciplineTypeId"].options[posDisciplina] = opt;
		posDisciplina++;
	}
	//radiosLinked = true; //debug	
	if (radiosLinked) {
		for (var i = 1; i < radiosSettings.length; i++) {
			disciplina = radiosSettings[i];
			if (disciplina == null) continue;
			
			if (form["selectedDisciplineTypeId"] != null) {
				form["selectedDisciplineTypeId"].options[posDisciplina] = disciplina[0];
			}
			if (form["selectedDisciplineTypeId"] != null && (
					selectedDisciplineTypeId == null || selectedDisciplineTypeId == '' ||
					radiosSettings.length <= selectedDisciplineTypeId || 
					selectedDisciplineTypeId == -1 && zeroPosition == null ||
					selectedDisciplineTypeId != -1 && radiosSettings[selectedDisciplineTypeId] == null)) {
				selectedDisciplineTypeId = form["selectedDisciplineTypeId"].options[0].value;
			}
			if (form["selectedDisciplineTypeId"] == null ||
					selectedDisciplineTypeId == -1 && posDisciplina == 1 || 
					disciplina[0].value == selectedDisciplineTypeId) {
				if (form["selectedDisciplineTypeId"] != null) {
					form["selectedDisciplineTypeId"].options[selectedDisciplineTypeId == -1 ? 0 : posDisciplina].selected=true
				}
				posVek = 0;
				if (form["selectedAgeCategoryId"] != null && zeroPosition != null) {
					opt = new Option(zeroPosition.text, zeroPosition.value);
					form["selectedAgeCategoryId"].options[posVek] = opt;
					posVek ++;
				}
				for (var j = 1; j < disciplina[1].length; j++) {
					vek = disciplina[1][j];
					if (vek == null) continue;
					if (form["selectedAgeCategoryId"] != null) {
						form["selectedAgeCategoryId"].options[posVek] = vek[0];
					}
					if (form["selectedAgeCategoryId"] != null && ( 
							selectedAgeCategoryId == null || selectedAgeCategoryId == '' || 
							disciplina[1].length <= selectedAgeCategoryId || 
							selectedAgeCategoryId == -1 && zeroPosition == null ||
							selectedAgeCategoryId != -1 && disciplina[1][selectedAgeCategoryId] == null)) {
						selectedAgeCategoryId = form["selectedAgeCategoryId"].options[0].value;
					}
					if (form["selectedAgeCategoryId"] == null ||
							selectedAgeCategoryId == -1 && posVek ==1 || 
							vek[0].value == selectedAgeCategoryId) {
						if (form["selectedAgeCategoryId"] != null) {
							form["selectedAgeCategoryId"].options[selectedAgeCategoryId == -1 ? 0 : posVek].selected=true;
						}
						posVykon = 0;
						if (zeroPosition != null) {
							opt = new Option(zeroPosition.text, zeroPosition.value);
							form["selectedPowerCategoryId"].options[posVykon] = opt;
							posVykon ++;
						}
						for (var k = 1; k < vek[1].length; k++) {
							vykon = vek[1][k];
							if (vykon == null) continue;
							form["selectedPowerCategoryId"].options[posVykon] = vykon[0];
							if (selectedPowerCategoryId == null || selectedPowerCategoryId == '' || 
									vek[1].length <= selectedPowerCategoryId || 
									selectedPowerCategoryId == -1 && zeroPosition == null ||
									selectedPowerCategoryId != -1 && vek[1][selectedPowerCategoryId] == null) {
								selectedPowerCategoryId = form["selectedPowerCategoryId"].options[0].value;
							}
							if (selectedPowerCategoryId == -1 && posVykon == 1 || 
									vykon[0].value == selectedPowerCategoryId) {
								form["selectedPowerCategoryId"].options[selectedPowerCategoryId == -1 ? 0 : posVykon].selected=true;
								posPohlavi = 0;
								posOblast = 0;
								pohlavi = vykon[1];
								oblast = vykon[2];
								if (pohlavi != null && form["selectedSexTypeId"] != null) {
									if (zeroPosition != null) {
										opt = new Option(zeroPosition.text, zeroPosition.value);
										form["selectedSexTypeId"].options[posPohlavi] = opt;
										posPohlavi ++;
									}
									for (var m = 0; m < pohlavi.length; m++) {
										form["selectedSexTypeId"].options[posPohlavi] = pohlavi[m];
										if (selectedSexTypeId == null || selectedSexTypeId == '' ||
												selectedSexTypeId == -1 && zeroPosition == null ||
												selectedSexTypeId != -1 && vykon[1][m] == null) {
											selectedSexTypeId = form["selectedSexTypeId"].options[0].value;
										}
										if (selectedSexTypeId == -1 && posPohlavi == 1 ||
												pohlavi[m].value == selectedSexTypeId) {
											form["selectedSexTypeId"].options[selectedSexTypeId == -1 ? 0 : posPohlavi].selected=true;
										}
										posPohlavi ++;
									}
									form["selectedSexTypeId"].length = posPohlavi;
								}
								if (oblast != null && form["selectedAreaId"] != null) {
									if (zeroPosition != null) {
										opt = new Option(zeroPosition.text, zeroPosition.value);
										form["selectedAreaId"].options[posOblast] = opt;
										posOblast ++;
									}
									for (var m = 0; m < oblast.length; m++) {
										form["selectedAreaId"].options[posOblast] = oblast[m];
										if (selectedAreaId == null || selectedAreaId == '' ||
												selectedAreaId == -1 && zeroPosition == null ||
												selectedAreaId != -1 && vykon[2][m] == null) {
											selectedAreaId = form["selectedAreaId"].options[0].value;
										}
										if (selectedAreaId == -1 && posOblast == 1 ||
												oblast[m].value == selectedAreaId) {
											form["selectedAreaId"].options[selectedAreaId == -1 ? 0 : posOblast].selected=true;
										}
										posOblast ++;
									}
									form["selectedAreaId"].length = posOblast;
								}
							}
							posVykon ++;
						}
						form["selectedPowerCategoryId"].length = posVykon;
					}
					posVek ++;
				}
				if (form["selectedAgeCategoryId"] != null) {
					form["selectedAgeCategoryId"].length = (zeroPosition != null && posVek == 1? 0: posVek);
				}
			}
			posDisciplina ++;
		}
		if (form["selectedDisciplineTypeId"] != null) {
			form["selectedDisciplineTypeId"].length = posDisciplina;
		}
	}
	else { 
		//pomocne pole do ktereho se vyctou options podle urovne vlozeni
		var resultAll = new Array(new Array(), new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array());
		//pomocne pole do ktereho se prefiltruji a seradi options z pole resultAll
		var resultAllFinal = new Array(new Array(), new Array(),new Array(),new Array(),new Array());
		
		//tato funkce rozhodi jednotlive Options podle jejich urovne do pole resultAll, pricemz kazde pole v resultAll obsahuje vsechna pole Options pro urcitou uroven (vcetne duplicit)
		//jelikoz ale na stejne urovni u vyk.kategorie mame jak pohlavi tak oblasti, nebot oboji zavisi jen na TD, VK, VYK, a jelikoz potrebujeme tyto Options rozdelit, je nutne
		//promennou areasLevel urcit, na ktere urovni mame oblasti, ktere jsou v poradi az za pohlavimi (tj. kazdy Array pro VYK ma nejdrive sve Options a pak nasleduje Array s 
		//pohlavimi a pak nasleduje Array s oblastmi) - pro rozdeleni je pouzit predpoklad, ze Array pro VYK ma jen Array pro pohlavi a oblasti, proto kdyz projdu Array pro pohlavi
		//zvysim uroven pro oblasti a tim docilim, ze se mi tyto volby nesmichaji
		function composeAll(uroven, myArr) { 
			//rekurzivne se vola, uroven je index pole v resultAll, do ktereho da Options, pokud 
			//prijde pole, jde rekurzivne s uroven+1
			var areasLevel = 5;	//volba urovne, na niz se nachazi oblasti
			var toAdd = 0;
			for (var ii = 0; ii < myArr.length; ii++) {
				if (myArr[ii] == null) { continue; }
				if (typeof(myArr[ii].length) != "number") {
					//neni pole, je Option
					//resultAll[uroven].push(myArr[ii]); nefunguje v IE 5
					resultAll[uroven][resultAll[uroven].length] = myArr[ii];
				}
				else {
					//je pole, rekurze
					composeAll(uroven+1+toAdd, myArr[ii]);
					if (uroven == areasLevel) {
						toAdd++;
					}
				}
			}
		} //konec funkce composeAll
		
		function optionsorder(a,b) { //pro setrideni poli podle hodnoty option
			return a.value-b.value; 
		}
		
		//funkce presune rozdelene Options dle urovni z resultAll do resultAllFinal, pricemz kazdym prvkem tohoto pole je zase pole, ktere obsahuje volby pro jednotlive comboboxy
		//funkce rovnez zajisti vyhozeni duplicit z resultAll a serazeni hodnot v comboboxes podle value (tj.v nasem pripade podle IDcka, nikoli jmena, coz ma ale napr. nasledek
		//ze v pohlavich jsou volby Zeny, Muzi pred Nerozliseno)
		function addVseAndFilter(src, desc) {
			resultAll[src].sort(optionsorder); //seradi, opakujici se polozky budou za sebou, do resultAllFinal pujdou pouze jednou
			lastOpt = new Option("dummy", -1);
			if (zeroPosition != null) {
				opt = new Option(zeroPosition.text, zeroPosition.value);
				//				resultAllFinal[desc].push(opt);
				resultAllFinal[desc][resultAllFinal[desc].length] = opt;
				lastOpt = opt;
			}
			iidelka = resultAll[src].length;
			for (var ii=0; ii < iidelka; ii++) {
				myOption = resultAll[src][ii];
				if(myOption.value != lastOpt.value){ //opakovane nepridavam
					/* toto nefunguje 100%, selected=true musim nastavit az kdyz uz je v poli Options,
					 kdyz jsem to nastavil tady, tak v IE nekdy fungovalo, nekdy ne a v NS nefungovalo vubec
					 if(myOption.value == selectedId) {
					 myOption.selected = true;
					 }	
					 */					
					//resultAllFinal[desc].push(myOption);
					resultAllFinal[desc][resultAllFinal[desc].length] = myOption;
					lastOpt = myOption;
				}
			}
		}

		composeAll(0, radiosSettings);
		
		addVseAndFilter(1, 0);	//disciplina
		addVseAndFilter(3, 1);	//vek
		addVseAndFilter(5, 2);	//vykonnost
		addVseAndFilter(6, 3);	//pohlavi
		addVseAndFilter(7, 4);	//oblasti

		//nastavim select disciplina
		for(var ii = 0; ii < resultAllFinal[0].length; ii++) {
			form["selectedDisciplineTypeId"].options[ii] = resultAllFinal[0][ii];
			if(form["selectedDisciplineTypeId"].options[ii].value == selectedDisciplineTypeId) 
				form["selectedDisciplineTypeId"].options[ii].selected = true;
		}
		form["selectedDisciplineTypeId"].length = ii;
		//nastavim select vek
		for(var ii = 0; ii < resultAllFinal[1].length; ii++) {
			form["selectedAgeCategoryId"].options[ii] = resultAllFinal[1][ii];
			if(form["selectedAgeCategoryId"].options[ii].value == selectedAgeCategoryId) 
				form["selectedAgeCategoryId"].options[ii].selected = true;
		}
		form["selectedAgeCategoryId"].length = ii;
		//nastavim select vykonnost
		for(var ii = 0; ii < resultAllFinal[2].length; ii++) {
			form["selectedPowerCategoryId"].options[ii] = resultAllFinal[2][ii];
			if(form["selectedPowerCategoryId"].options[ii].value == selectedPowerCategoryId) 
				form["selectedPowerCategoryId"].options[ii].selected = true;
		}
		form["selectedPowerCategoryId"].length = ii;
		//nastavim select pohlavi
		if (form["selectedSexTypeId"] != null) {
			for(var ii = 0; ii < resultAllFinal[3].length; ii++) {
				form["selectedSexTypeId"].options[ii] = resultAllFinal[3][ii];
				if(form["selectedSexTypeId"].options[ii].value == selectedSexTypeId) 
					form["selectedSexTypeId"].options[ii].selected = true;
			}
			form["selectedSexTypeId"].length = ii;
		}
		//nastavim select oblasti
		if (form["selectedAreaId"] != null) {
			for(var ii = 0; ii < resultAllFinal[4].length; ii++) {
//				if (form["selectedAreaId"].options[ii] != null) {
					form["selectedAreaId"].options[ii] = resultAllFinal[4][ii];
					if(form["selectedAreaId"].options[ii].value == selectedAreaId) 
						form["selectedAreaId"].options[ii].selected = true;
//				}
			}
			form["selectedAreaId"].length = ii;
		}
	}
}

function previewPersonCard(form) {
	document.PrintApplet.setBeanContainerProperty('personCardReport');
	document.PrintApplet.setBeanContainerFactory('com.dance.jsp.reports.factory.PersonReportFactory');
	//	document.PrintApplet.addLoadParameter('loadPerson','CardNumber','long',cik);
	document.PrintApplet.addBeanParameter('labelPosition','int',form["labelColumnNumber"].value);
	document.PrintApplet.addBeanParameter('labelPosition','int',form["labelRowNumber"].value);
	document.PrintApplet.previewReport('PersonCardReport','loadPerson');
	//	performAction('printPersonCard');
}

function previewCollectiveCard(form) {
	document.PrintApplet.setBeanContainerProperty('collectiveCardReport');
	document.PrintApplet.setBeanContainerFactory('com.dance.jsp.reports.factory.CollectiveReportFactory');
	document.PrintApplet.addBeanParameter('labelPosition','int',form["labelColumnNumber"].value);
	document.PrintApplet.addBeanParameter('labelPosition','int',form["labelRowNumber"].value);
	document.PrintApplet.previewReport('CollectiveCardReport','loadCollective');
	//	performAction('printCollectiveCard');
}

function previewCollectiveMembersCard(form) {
	document.PrintApplet.setBeanContainerProperty('collectiveMembersCardReport');
	document.PrintApplet.setBeanContainerFactory('com.dance.jsp.reports.factory.CollectiveReportFactory');
	document.PrintApplet.addBeanParameter('labelPosition','int',form["labelColumnNumber"].value);
	document.PrintApplet.addBeanParameter('labelPosition','int',form["labelRowNumber"].value);
	document.PrintApplet.previewReport('CollectiveMembersCardReport','loadCollective');
	//	performAction('printCollectiveMembersCard');
}

function previewBulkPrint(form) {
	document.PrintApplet.setBeanContainerProperty('bulkPrintReport');
	document.PrintApplet.setBeanContainerFactory('com.dance.jsp.reports.factory.CollectiveReportFactory');
	document.PrintApplet.addBeanParameter('labelPosition','int',form["labelColumnNumber"].value);
	document.PrintApplet.addBeanParameter('labelPosition','int',form["labelRowNumber"].value);
	document.PrintApplet.previewReport('BulkPrintReport','loadCollective');
	//	performAction('printCollectiveMembersCard');
}

function previewPersonAddressLabel(form) {
	document.PrintApplet.setBeanContainerProperty('personAddressLabelReport');
	document.PrintApplet.setBeanContainerFactory('com.dance.jsp.reports.factory.PersonReportFactory');
	document.PrintApplet.addBeanParameter('labelPosition','int',form["labelColumnNumber"].value);
	document.PrintApplet.addBeanParameter('labelPosition','int',form["labelRowNumber"].value);
	document.PrintApplet.previewReport('PersonAddressLabelReport','loadPerson');
}

function previewCollectiveAddressLabel(form) {
	document.PrintApplet.setBeanContainerProperty('collectiveAddressLabelReport');
	document.PrintApplet.setBeanContainerFactory('com.dance.jsp.reports.factory.CollectiveReportFactory');
	document.PrintApplet.addBeanParameter('labelPosition','int',form["labelColumnNumber"].value);
	document.PrintApplet.addBeanParameter('labelPosition','int',form["labelRowNumber"].value);
	document.PrintApplet.previewReport('CollectiveAddressLabelReport','loadCollective');
}

function previewStartingNumbers(form) {
	if (form["printStartingNumbersList"].value == 'false' && form["printStartingNumbers"].value == 'false') {
		alert('Zvolte typ tisku !');
	}
	else {
		document.PrintApplet.setBeanContainerProperty('startingNumbersReport');
		document.PrintApplet.setBeanContainerFactory('com.dance.jsp.reports.factory.ActionReportFactory');
		document.PrintApplet.addLoadParameter('setupProperties','collectivePrintPos','int',form["collectivePrintPos"].value);
		document.PrintApplet.addLoadParameter('setupProperties','printStartingNumbersList','boolean',form["printStartingNumbersList"].value);
		document.PrintApplet.addLoadParameter('setupProperties','printStartingNumbers','boolean',form["printStartingNumbers"].value);
		document.PrintApplet.previewReport('StartingNumbersReport','loadAction');
	}
}
