/* Version: $Id: ciselniky.js 211 2009-07-15 09:48:46Z raidam $ */

//pole pList2 a pole profesion2Array je alias ze souboru CiselnikCZ.class.php a vytvari se v GenericCiselnik.class.php

/**
 * Ciselniky.js
 *
 * it provides a language-dependent codebook for branch->profession list
 *
 * @author Matejcek Milan
 */

function loadProfession(idElementBranch, idElementProfession) 
{
	var branchObj	=document.getElementById(idElementBranch);
	var proffObj	=document.getElementById(idElementProfession);
	var optionsObj	=branchObj['options'];
	var valueOption ='';
	var newOption	=new Array();
	var optionTree	='';
	var newOptionKey=new Array();
	var refNode		=null;
	var pLisCopy	=new Array();
	var deleteOption=new Array();
	var i;

	//ulozi pole s profesemi do lokalni promenne se kterou se dale pracuje
	//pLisCopy	=pList2; toto nefunguje dobre proto cyklem 
	for (key in pList2) 
	{
		pLisCopy[key]	=pList2[key];
	}	

	if (proffObj) {
		//proffObj.options.length	=0;nefunguje
		//odstrani z tagu select vsechny tagy option
		for(i=proffObj.options.length-1; i>=0; i--)
		{
			proffObj.remove(i);
		}
	}

		//ciselne hodnoty profesi v optionech oboru jsou oddeleny strednikem
		//vytvori se tedy dlouhy retezec vsech vybranych oboru
		for (i = 0; i < optionsObj.length; i++) {
			if (optionsObj[i].selected) {
				valueOption += ';' + optionsObj[i].value;
			}
		}
		
		//odstrani prvni strednik
		valueOption = valueOption.substring(1);
		//vytvori pole podle stredniku
		valueOption = valueOption.split(";");
		
		//vybere pole oboru s profesemi, pole profesion2Array je jen spojovaci mezi obory a profesemi
		key=0;
		for (key in valueOption) 
		{
			newOption	=newOption.concat(profesion2Array[valueOption[key]]);  
		}
		
		//hodnoty je potreba dostat do klicu
		for (i = 0; i < newOption.length; i++) 
		{
			newOptionKey[newOption[i]]	=true;
		}
		
		//smaze profese ktere jsou nezadouci
		key=0;
		for (key in pLisCopy) 
		{			
			if (!newOptionKey[key])
			{
				delete pLisCopy[key];
			}			            
		}
		
		//vykresli zbyle profese
		key=0;
		var a=0;
		for (key in pLisCopy) 
		{
			optionTree =optionTag(pLisCopy[key], key, false);
			refNode =document.getElementById(idElementProfession);
			if (refNode) {
				refNode.appendChild(optionTree);
			}
			a++;	
		}
}

function optionTag(text, value, check) 
{
	var input 		=newTag('option');
	input.text 		=text;
	input.value 	=value;
	input.innerText =text;
	return input;
}

function newTag(tag) {
	return document.createElement(tag);
}

