/* Version: $Id: ciselniky.js 690 2010-03-05 09:58:12Z hradilm $ */

//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];
        }
    }
	
    if (typeof selectedBranch != 'undefined') {
	    //vykresli zbyle profese
	    key=0;
	    var a=0;
	        
	    function inArray(arr, p_val) {
	        for(var i = 0, l = arr.length; i < l; i++) {
	            if(arr[i] == p_val) {
	                return true;
	            }
	        }
	        return false;    	
	    }
	    
	    for (key in pLisCopy)
	    {
	        var selectThis = false;
	        if (inArray(selectedSkill,key)) selectThis = true;
	        optionTree =optionTag(pLisCopy[key], key, selectThis);
	        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;
    if (check == true) input.selected = 1;
    return input;
}

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