


function initOverLabels() {
  if (!document.getElementById) return;  	
  var labels, id, field;
  labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {
    if (labels[i].className == 'overlabel') {
      id = labels[i].htmlFor || labels[i].getAttribute('for');
      if (!id || !(field = document.getElementById(id))) {
        continue;
      }
      labels[i].className = 'overlabel-apply';
      if (field.value !== '') hideLabel(field.getAttribute('id'), true);
	  field.className = 'loginInput-apply';
	  	
			field.onfocus = function () {
        hideLabel(this.getAttribute('id'), true);
      };
			
     field.onblur = function () {
        if (this.value === '') hideLabel(this.getAttribute('id'), false);
      };

      labels[i].onclick = function () {
        var id, field;
        id = this.getAttribute('for');
        if (id && (field = getObj(id))) field.focus();
      };
    }
  }
}

function hideLabel(field_id, hide) {
  var field_for;
  var labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {
    field_for = labels[i].htmlFor || labels[i].getAttribute('for');
    if (field_for == field_id) {
      labels[i].style.textIndent = (hide) ? '-1000px' : '0px';
      return true;
    }
  }
}

var change=0;
function isChange(){
 var answer;
 if(change=='1'){
 	answer=confirm("Naozaj chcete pokračovať? Vykonané zmeny nebudú uložené..");
    }
 if(answer==false){
 	return false;
 }else{
 	return true;
 	}   
}

function checkFaculties()
{
  var zeroRecord = false;
  return checkFacultiesBool(zeroRecord);
}

function checkFacultiesBool(zeroRecord)
{
	var selectUniversities = document.getElementById('universities');	
	for(var i=0;i<selectUniversities.length;i++)
	{		
		if (selectUniversities[i].selected && (!zeroRecord || selectUniversities[i].value!=0) )
		{
			return true;
		}
	}
	return false;
}

function checkFacultiesSelect(hUniversitiesChooseNames)
{
	var selectUniversities = document.getElementById(hUniversitiesChooseNames);	
	if (!selectUniversities) 
	{
				
		return false;
	}
	
	for(var i=0;i<selectUniversities.length;i++)
	{		
		if (selectUniversities[i].selected)
		{
			return true;
		}
	}
	return false;
}

function checkFacultiesSelect(hUniversitiesChooseNames,zeroRecord)
{
  var zeroRecord = false;
  return checkFacultiesSelectBool(hUniversitiesChooseNames,zeroRecord);
}

function checkFacultiesSelectBool(hUniversitiesChooseNames,zeroRecord)
{
	var selectUniversities = document.getElementById(hUniversitiesChooseNames);	
	if (!selectUniversities) 
	{
				
		return false;
	}
	
	for(var i=0;i<selectUniversities.length;i++)
	{		
		if (selectUniversities[i].selected && (!zeroRecord || selectUniversities[i].value!=0))
		{
			return true;
		}
	}
	return false;
}

function changeUniversities(facultiesID, faculties_id,faculties_name,faculties_has_universities,faculties_quick,universitiesID,showFacultiesID)
{
	var selectUniversities = document.getElementById(universitiesID);	
	var selectFaculties = document.getElementById(facultiesID);	
	var inputShowAllFaculties = document.getElementById(showFacultiesID);	
	
	if (!selectUniversities || !selectFaculties || !inputShowAllFaculties) 
	{
		
		return;	
	}
	var zeroRecord = false;
	changeUniversitiesBool(facultiesID, faculties_id,faculties_name,faculties_has_universities,faculties_quick,universitiesID,inputShowAllFaculties.checked,zeroRecord)
}

function changeUniversitiesBool(facultiesID, faculties_id,faculties_name,faculties_has_universities,faculties_quick,universitiesID,inputShowAllFaculties,zeroRecord,selectZero)
{
	var selectUniversities = document.getElementById(universitiesID);	
	var selectFaculties = document.getElementById(facultiesID);	

	if (!selectUniversities || !selectFaculties) 
	{
		
		return;	
	}	
	
	if (!faculties_name || !faculties_id || !faculties_has_universities || !faculties_quick)
	{
		
		return;	
	}


  var selectZeroRecord = false;	
	if (zeroRecord)
	{
    if (selectFaculties.selectedIndex>-1)
    {
      if (selectFaculties[selectFaculties.selectedIndex].value == 0)
      {
        selectZeroRecord = true;
      }
    }
    removeZeroRecord(selectFaculties);
	}

	var isInserted = false;
	var isEnabled = false;
	
	var selectedUniversities=new Array();
	var selectedUniversitiesAddFaculties=new Array();	
	
	var selectedUniversitiesIndex = 0;
	var selectedUniversitiesAddFacultiesIndex = 0;	

	var selectedUniversitiesExistFaculties=new Array();		
	var selectedUniversitiesExistFacultiesIndex = 0;	
	
	var facultiesIndex = -1;

	for(var i=0;i<selectUniversities.length;i++)
	{		
		if (selectUniversities[i].selected && (!zeroRecord || (selectUniversities[i].value!=0)))
		{
			isEnabled = true;
			isInserted = false;
			for(var l=0;l<selectFaculties.length;l++)
			{
				facultiesIndex = -1;
				for(var k=0; k<faculties_id.length;k++)
				{
					if (faculties_id[k]==selectFaculties[l].value)
					{
						facultiesIndex=k;
						break;
					}
				}

				if (facultiesIndex>=0)
				{		
					if (faculties_has_universities[facultiesIndex] == selectUniversities[i].value)		
					{
						isInserted = true;
						break;
					}
				}
			}
			selectedUniversities[selectedUniversitiesIndex]= selectUniversities[i].value;			
			selectedUniversitiesIndex++;
			if (!isInserted) 
			{
				selectedUniversitiesAddFaculties[selectedUniversitiesAddFacultiesIndex] = selectUniversities[i].value;
				selectedUniversitiesAddFacultiesIndex++;
			} else {
				selectedUniversitiesExistFaculties[selectedUniversitiesExistFacultiesIndex]= selectUniversities[i].value;
				selectedUniversitiesExistFacultiesIndex++;
			}
		}
	}

	if (!isEnabled)
	{		
		return false;
	}

	var i = 0;	
	var facultiesIndex = -1;
	var isSelectUniversities = false;

	while(i<selectFaculties.length)
	{
		facultiesIndex = -1;
		isSelectUniversities = false;
		
		for(var l=0; l<selectedUniversities.length; l++)
		{		
			for(var k=0; k<faculties_id.length;k++)
			{
				if (faculties_id[k]==selectFaculties[i].value)
				{
					facultiesIndex=k;
					break;
				}
			}
			
			if (facultiesIndex>=0)
			{			
				if (faculties_has_universities[facultiesIndex] == selectedUniversities[l])
				{
					isSelectUniversities = true;
					break;
				}
			}
		}
		
		if (facultiesIndex>=0)
		{
			if (!isSelectUniversities) 
			{
				selectFaculties[i] = null;
			} else {
				i++;
			}
		} else {
			i++;
		}
	}

	var doc = selectFaculties.ownerDocument;
	if (!doc)
		doc = selectFaculties.document;
		
	for(var i=0;i<selectedUniversitiesAddFaculties.length;i++)
	{
		var m = 0;
		for(m=0; m<universities_id.length; m++)
		{
			if (universities_id[m]==selectedUniversitiesAddFaculties[i])
			{
				break;
			}
		}
		
		var optgroup = doc.createElement('optgroup');
		optgroup.label = universities_name[m];		

		var insertFacult = false;
		for(var l=0;l<faculties_has_universities.length;l++)
		{
			if (faculties_has_universities[l]==selectedUniversitiesAddFaculties[i])
			{
				if ((faculties_quick[l]!=0 || inputShowAllFaculties) && (faculties_id[i]>0))
				{					
					var oOption = doc.createElement('OPTION');
					oOption.value = faculties_id[l];
					oOption.appendChild(doc.createTextNode(faculties_name[l]));
					
					optgroup.appendChild(oOption);
					insertFacult = true;
				}
			}
		}
		if (insertFacult)	selectFaculties.appendChild(optgroup);		
	}

	childSelect=selectFaculties.childNodes;	
	for(var j =0; j < selectedUniversitiesExistFaculties.length; j++)
	{

		var i=0;
		for(i;i<universities_id.length;i++)
		{
			if (universities_id[i] == selectedUniversitiesExistFaculties[j])
			{
				break;
			}
		}
		
		for(var k=0; k<childSelect.length; k++)
		{
			if(childSelect[k].nodeName.toLowerCase() == 'optgroup' && childSelect[k].label == universities_name[i])
			{	
				for(var m=0; m<faculties_has_universities.length; m++)
				{
					if (universities_id[i] == faculties_has_universities[m])
					{
						childOptGroupSelect=childSelect[k].childNodes;					
						var insertOption = true;
						var s = 0;
						for(s; s<childOptGroupSelect.length; s++)
						{
							if(childOptGroupSelect[s].nodeName.toLowerCase() == 'option' && childOptGroupSelect[s].value==faculties_id[m])
							{
								insertOption = false;
								break;
							}
						}	

						if (insertOption && (faculties_quick[m]==1 || inputShowAllFaculties))
						{
							var oOption = doc.createElement('OPTION');
							oOption.value = faculties_id[m];
              oOption.appendChild(doc.createTextNode(faculties_name[m]));
              
							childSelect[k].appendChild(oOption);
						}
						
						if (!insertOption && faculties_quick[m]==0 && !inputShowAllFaculties)
						{
							childSelect[k].removeChild(childOptGroupSelect[s]);
						}
						
					}
				}
			} 					
		}		
	}

	removeEmptyOptGroup(selectFaculties);	
	
	if (zeroRecord)
	{
		var doc = selectFaculties.ownerDocument;
		if (!doc)
			doc = selectFaculties.document;

    var oOption = doc.createElement('OPTION');
    selectFaculties.options.add(oOption,i);
    
    oOption.value = '0';
    oOption.appendChild(doc.createTextNode('Nezvolené'));
    
    if (selectFaculties.childNodes[0])
    {
      selectFaculties.insertBefore(oOption,selectFaculties.childNodes[0]);
    } else {
      selectFaculties.append(oOption,selectFaculties.childNodes[0]);  
    }
    if (selectZeroRecord || selectZero) selectFaculties.selectedIndex=0;
	}	
	
	return true;
}


/* It same as changeUniversities. Difrent is first how to find selected universities (first 10 row) */

function changeUniversitiesSelect(faculties_id,faculties_name,faculties_has_universities,faculties_quick,hUniversitiesNames,hFacultiesNames,hFacultiesNames,hUniversitiesChooseNames)
{
	var selectUniversities = document.getElementById(hUniversitiesNames);	
	var selectFaculties = document.getElementById(hFacultiesNames);	
	var inputShowAllFaculties = document.getElementById('showAllFaculties');	
	
	if (!selectUniversities || !selectFaculties) 
	{
		
		return;
	}

	var selectChooseUniversities = document.getElementById(hUniversitiesChooseNames);	
	if (!selectChooseUniversities) 
	{
		
		return;
	}
	
	if (!faculties_name || !faculties_id || !faculties_has_universities || !faculties_quick) 
	{
		
		return;
	}

	var isInserted = false;
	var isEnabled = false;
	
	var selectedUniversities=new Array();
	var selectedUniversitiesAddFaculties=new Array();	
	
	var selectedUniversitiesIndex = 0;
	var selectedUniversitiesAddFacultiesIndex = 0;	

	var selectedUniversitiesExistFaculties=new Array();		
	var selectedUniversitiesExistFacultiesIndex = 0;	
	
	var facultiesIndex = -1;

	for(var i=0;i<selectChooseUniversities.length;i++)
	{		
		isEnabled = true;
		isInserted = false;
		for(var l=0;l<selectFaculties.length;l++)
		{
			facultiesIndex = -1;
			for(var k=0; k<faculties_id.length;k++)
			{
				if (faculties_id[k]==selectFaculties[l].value)
				{
					facultiesIndex=k;
					break;
				}
			}

			if (facultiesIndex>=0)
			{		
				if (faculties_has_universities[facultiesIndex] == selectChooseUniversities[i].value)		
				{
					isInserted = true;
					break;
				}
			}
		}
		selectedUniversities[selectedUniversitiesIndex]= selectChooseUniversities[i].value;			
		selectedUniversitiesIndex++;
		if (!isInserted) 
		{
			selectedUniversitiesAddFaculties[selectedUniversitiesAddFacultiesIndex] = selectChooseUniversities[i].value;
			selectedUniversitiesAddFacultiesIndex++;
		} else {
			selectedUniversitiesExistFaculties[selectedUniversitiesExistFacultiesIndex]= selectChooseUniversities[i].value;
			selectedUniversitiesExistFacultiesIndex++;
		}
	}

	if (!isEnabled)
	{		
		return;
	}
	
	var i = 0;	
	var facultiesIndex = -1;
	var isSelectUniversities = false;

	while(i<selectFaculties.length)
	{
		facultiesIndex = -1;
		isSelectUniversities = false;
		
		for(var l=0; l<selectedUniversities.length; l++)
		{		
			for(var k=0; k<faculties_id.length;k++)
			{
				if (faculties_id[k]==selectFaculties[i].value)
				{
					facultiesIndex=k;
					break;
				}
			}
			
			if (facultiesIndex>=0)
			{			
				if (faculties_has_universities[facultiesIndex] == selectedUniversities[l])
				{
					isSelectUniversities = true;
					break;
				}
			}
		}
		
		if (facultiesIndex>=0)
		{
			if (!isSelectUniversities) 
			{
				selectFaculties[i] = null;
			} else {
				i++;
			}
		} else {
			i++;
		}
	}

	var doc = selectFaculties.ownerDocument;
	if (!doc)
		doc = selectFaculties.document;
		
	for(var i=0;i<selectedUniversitiesAddFaculties.length;i++)
	{
		var m = 0;
		for(m=0; m<universities_id.length; m++)
		{
			if (universities_id[m]==selectedUniversitiesAddFaculties[i])
			{
				break;
			}
		}
		
		var optgroup = doc.createElement('optgroup');
		optgroup.label = universities_name[m];		
		var insertFacult = false;
		for(var l=0;l<faculties_has_universities.length;l++)
		{
			if (faculties_has_universities[l]==selectedUniversitiesAddFaculties[i])
			{
				if ((faculties_quick[l]!=0 || inputShowAllFaculties.checked) && (faculties_id[i]>0))
				{					
					var oOption = doc.createElement('OPTION');
					oOption.value = faculties_id[l];
			    oOption.appendChild(doc.createTextNode(faculties_name[l]));										

					optgroup.appendChild(oOption);
					insertFacult = true;
				}
			}
		}
		if (insertFacult)	selectFaculties.appendChild(optgroup);		
	}

	childSelect=selectFaculties.childNodes;	
	for(var j =0; j < selectedUniversitiesExistFaculties.length; j++)
	{
		var i=0;
		for(i;i<universities_id.length;i++)
		{
			if (universities_id[i] == selectedUniversitiesExistFaculties[j])
			{
				break;
			}
		}
		
		for(var k=0; k<childSelect.length; k++)
		{
			if(childSelect[k].nodeName.toLowerCase() == 'optgroup' && childSelect[k].label == universities_name[i])
			{	
				for(var m=0; m<faculties_has_universities.length; m++)
				{
					if (universities_id[i] == faculties_has_universities[m])
					{
						childOptGroupSelect=childSelect[k].childNodes;					
						var insertOption = true;
						var s = 0;
						for(s; s<childOptGroupSelect.length; s++)
						{
							if(childOptGroupSelect[s].nodeName.toLowerCase() == 'option' && childOptGroupSelect[s].value==faculties_id[m])
							{
								insertOption = false;
								break;
							}
						}	

						if (insertOption && (faculties_quick[m]==1 || inputShowAllFaculties.checked))
						{		
							var ii;											
							var jj = m;

							while(faculties_has_universities[jj]==faculties_has_universities[m] && jj >-1)
							{
								jj--;
							}
							jj++;
							
							var insertBefore = false;							
							for(ii = 0; ii<childOptGroupSelect.length; ii++)
							{
								if(childOptGroupSelect[ii].nodeName.toLowerCase() == 'option')
								{

									while(faculties_has_universities[jj]==faculties_has_universities[m] && jj < faculties_has_universities.length)
									{
										if (faculties_id[jj] == childOptGroupSelect[ii].value)
										{
											break;
										} 
										jj++;
									}
									
									if (!(jj < faculties_has_universities.length) || faculties_has_universities[jj]!=faculties_has_universities[m])
									{	
										break;
									}
									
									
									if (jj>m) 
									{
										insertBefore = true;
										break;
									}
									jj++;
								}
							}
							
							var oOption = doc.createElement('OPTION');
							oOption.value = faculties_id[m];
							oOption.appendChild(doc.createTextNode(faculties_name[m]));										
							
							if (insertBefore)
							{
								childSelect[k].insertBefore(oOption,childOptGroupSelect[ii]);
							} else {
								childSelect[k].appendChild(oOption);
							}
						}							
						
						if (!insertOption && faculties_quick[m]==0 && !inputShowAllFaculties.checked)
						{
							childSelect[k].removeChild(childOptGroupSelect[s]);
						}
						
					}
				}
			} 					
		}		
	}

	removeEmptyOptGroup(selectFaculties);	
}


function removeHiddenUniversity(select)
{
	if (!select)
	{
		
		return;
	}		
	
	var u=0;
	var selectIndex=0;
	childSelect=select.childNodes;

	while(u<universities_quick.length-1)
	{		
		if (selectIndex>=childSelect.length) return;
		while (childSelect[selectIndex].nodeName.toLowerCase() != 'optgroup')
		{
			selectIndex++;
			if (selectIndex>=childSelect.length) return;
		}
		
		if (childSelect[selectIndex].label == universities_name[u])
		{
			if (universities_quick[u]==0)
			{
				select.removeChild(childSelect[selectIndex]);
			} else 
			{
				selectIndex++;
			}
		}
		u++;		
	}	
}

function removeEmptyOptGroup(select)
{
	if (!select)
	{
		
		return;
	}		
	var l=0;
	childSelect=select.childNodes;
	while(l<childSelect.length)
	{		
		if(childSelect[l].nodeName.toLowerCase() == 'optgroup')
		{	
			var oCount = 0;
			var options = childSelect[l].childNodes;
			for(j = 0 ; j < options.length ; j++)
			{
				if(options[j].nodeName.toLowerCase() == 'option')
				{
					oCount++;
					break;
				}
			}
			if (oCount==0)
			{
				select.removeChild(childSelect[l]);
			} else {
				l++;
			}
		} else {
			if (!childSelect[l].value)
			{
				select.removeChild(childSelect[l]);
			} else 
			{
			l++;
			}
		} 		
	}
}

function changeSelectFaculties(elementId,id,name,quick_select,inputId,university_id,university_name,university_quick,universityInputId)
{
	if (checkFaculties()) return true;

	var select = document.getElementById(elementId);
	var input = document.getElementById(inputId);
	var inputShowAllUniversity = document.getElementById(universityInputId);	

	if (!id || !name || !select || !input || !quick_select ||
		!university_id || !university_name || !university_quick)
	{
		
		return false;
	}	
	var zeroRecord = false;
	changeSelectFacultiesBool(elementId,id,name,quick_select,inputId,university_id,university_name,university_quick,inputShowAllUniversity.checked,zeroRecord);
}

function removeZeroRecord(select)
{
  for(var i = 0; i<select.length; i++)
  {
    if (select[i].value==0)
    {
      select[i]=null;
      break;
    }
  }
}

function changeSelectFacultiesBool(elementId,id,name,quick_select,inputId,university_id,university_name,university_quick,inputShowAllUniversity,zeroRecord)
{
	if (checkFacultiesBool(zeroRecord)) return true;  
	var select = document.getElementById(elementId);

	if (!id || !name || !select || !quick_select ||
		!university_id || !university_name || !university_quick)
	{
		
		return false;
	}	
	
	var selectZeroRecord = false;	
	if (zeroRecord)
	{
    if (select.selectedIndex>-1)
    {
      if (select[select.selectedIndex].value == 0)
      {
        selectZeroRecord = true;
      }
    }
    removeZeroRecord(select);
	}
	
	var i =0;
	for(var i = 0; i<quick_select.length-1; i++)
	{		
		if (quick_select[i]==0) 
		{		
			for(var l=0;l<select.length;l++)
			{
				if (select[l] && (select[l].value == id[i]))		
				{
					select[l] = null;
					break;
				}
			}
		} 
	}
	
	childSelect=select.childNodes;
	
	if (inputId)
	{	
		var doc = select.ownerDocument;
		if (!doc)
			doc = select.document;

		var childIndexStart = 0;
		var optCount = 0;
		var universityCount = 0;
		
		optGroupArray =  new Array();
		optGroupUniversityArray =  new Array();
		
		for(var i=0;i<university_quick.length-1;i++)
		{
			if (university_quick[i]==1 || (inputShowAllUniversity))
			{			
				universityCount++;
									
				var isExist = false;
				var childIndex = 0;				

				for(childIndex = childIndexStart; childIndex<childSelect.length; childIndex++)
				{					
					if(childSelect[childIndex].nodeName.toLowerCase() == 'optgroup')
					{
						if (childSelect[childIndex].label==universities_name[i])
						{
							var isExist = true;
							optGroupArray.push(childIndex);
							optGroupUniversityArray.push(universities_id[i]);

							childIndex++;
							optCount++;
							
							while (childIndex<childSelect.length)
							{
								if(childSelect[childIndex].nodeName.toLowerCase() == 'optgroup')
								{
									break;
								}
								childIndex++;
							}
							break;
						}
						break;												
					}	
				}
				childIndexStart += (childIndex-childIndexStart);

				if (!isExist)
				{
					optCount++;	
					var optgroup = doc.createElement('optgroup');
					optgroup.label = universities_name[i];						
					if (childSelect[childIndexStart])
					{
						optGroupArray.push(childIndexStart);
						optGroupUniversityArray.push(universities_id[i]);											
						select.insertBefore(optgroup,childSelect[childIndexStart]);
					} else 
					{
						optGroupUniversityArray.push(universities_id[i]);			
						select.appendChild(optgroup);					
						optGroupArray.push(childSelect.length-1);											
					}
					
					childIndexStart++;
					while (childIndexStart<childSelect.length)
					{
						if(childSelect[childIndexStart].nodeName.toLowerCase() == 'optgroup')
						{
							break;
						}
						childIndexStart++;
					}
				}	
			}
		}

		if (optGroupArray.length>0)
		{		
			var f = 0;
			var ogfa = 0
			var oldUniversities = -1;

			while(f<faculties_has_universities.length)
			{							
				if (faculties_quick[f]==0)
				{													
					var isExist = false;			
					if (optGroupUniversityArray[ogfa] == faculties_has_universities[f])
					{
						isExist = true;
					} else 
					{
						if (parseInt(faculties_has_universities[f])!=optGroupUniversityArray[ogfa] && (faculties_has_universities[f] != oldUniversities)) 
						{
							var oldOgfa = ogfa;
							for(var of = ogfa; of<optGroupUniversityArray.length; of++)
							{
								if (faculties_has_universities[f]==optGroupUniversityArray[of])
								{
									ogfa = of;
									break;
								}
							}
							if (ogfa==oldOgfa)
							{
								oldUniversities = faculties_has_universities[f];
								f++;
							}
						} else
						{
							f++;
						}
					}
									
					if (isExist)
					{						
						var oOption = doc.createElement('OPTION');
						oOption.value = faculties_id[f];
						oOption.appendChild(doc.createTextNode(faculties_name[f]));
												
						childSelect[optGroupArray[ogfa]].appendChild(oOption);
						f++;						
					}
				} else {
					f++;
				}
			}
		}
	} else {
		removeHiddenUniversity(select);	
	}
	removeEmptyOptGroup(select);	


	if (zeroRecord)
	{
		var doc = select.ownerDocument;
		if (!doc)
			doc = select.document;

    var oOption = doc.createElement('OPTION');
    select.options.add(oOption,i);		

    oOption.value = '0';
    oOption.appendChild(doc.createTextNode('Nezvolené'));

    if (select.childNodes[0])
    {
      select.insertBefore(oOption,select.childNodes[0]);
    } else {
      select.append(oOption,select.childNodes[0]);  
    }
    if (selectZeroRecord) select.selectedIndex=0;
	}
	
	return false;
}

function removeOnceSelectContent(state,elementId,id,name,quick_select)
{
	var select = document.getElementById(elementId);
	if (!id || !name || !select || !quick_select)
	{
		
		return;
	}
	var zeroRecord = false;
	var saveSelect = false;
	return removeOnceSelectContentBool(state,elementId,id,name,quick_select,zeroRecord,saveSelect);
}

function removeOnceSelectContentBool(state,elementId,id,name,quick_select,zeroRecord,saveSelect)
{  
  /* validate exists variable*/
	var select = document.getElementById(elementId);
	if (!id || !name || !select || !quick_select)
	{
		
		return;
	}
	
	/* list contain zero record. */
  var selectZeroRecord = false;	
	if (zeroRecord)
	{
    if (select.selectedIndex>-1)
    {
      if (select[select.selectedIndex].value == 0)
      {
        selectZeroRecord = true;
      }
    }
    removeZeroRecord(select);
	}	
	
	/* store select record */
	var saveSelectId = new Array();
	if (saveSelect && select.selectedIndex>-1 && (!selectZeroRecord || select.getMultiple))
	{
      saveSelectId.push(select[select.selectedIndex].value);
	}	      
	      
	/* Remove hidden items. */
	for(var i=0;i<quick_select.length-1;i++)
	{		
		if (quick_select[i]==0) {		
			for(var l=0;l<select.length;l++)
			{
				if (select[l] && (select[l].value == id[i]))		
				{
          var isExist = false;
          for(var k = 0; k < saveSelectId.length; k++)
          {
            if (saveSelectId[k]==select[l].value)
            {
              isExist = true;
              break;
            }
          }
          
          if (!isExist)
          {
            select[l] = null;            
            break;
					}
				}
			}
		}
	}
	
	
	/* return zero record on first position in list*/
	if (zeroRecord)
	{
		var doc = select.ownerDocument;
		if (!doc)
			doc = select.document;

    var oOption = doc.createElement('OPTION');
    select.options.add(oOption,i);		

    oOption.value = '0';
    oOption.appendChild(doc.createTextNode('Nezvolené'));

    if (select.childNodes[0])
    {
      select.insertBefore(oOption,select.childNodes[0]);
    } else {
      select.append(oOption,select.childNodes[0]);  
    }
    if (selectZeroRecord) select.selectedIndex=0;
	}
	
	state = false;
	return false;
}

function changeOnceSelectContent(state,elementId,id,name,quick_select,stateId)
{
  
  var select = document.getElementById(elementId);
  var state = document.getElementById(stateId);
  if (!id || !name || !select || !quick_select || !state)
  {
    
    return;
  }

  var zeroRecord = false;
	return changeOnceSelectContentBool(state,elementId,id,name,quick_select,stateId,zeroRecord);
}

function changeOnceSelectContentBool(state,elementId,id,name,quick_select,stateId,zeroRecord)
{
	if (!state) 
	{
		var select = document.getElementById(elementId);
		var state = document.getElementById(stateId);
		if (!id || !name || !select || !quick_select || !state)
		{
			
			return;
		}
		
		state.value = true;

  var selectZeroRecord = false;	
	if (zeroRecord)
	{
    if (select.selectedIndex>-1)
    {
      if (select[select.selectedIndex].value == 0)
      {
        selectZeroRecord = true;
      }
    }
    removeZeroRecord(select);
	}		
		
		/*for(var i=0;i<quick_select.length-1;i++)
		{		
			if (quick_select[i]==0) {		
				for(var l=0;l<select.length;l++)
				{
					if (select[l] && (select[l].value == id[i]))		
					{
						select[l] = null;
						break;
					}
				}
			}
		}*/


		var doc = select.ownerDocument;
		if (!doc)
			doc = select.document;
    
    selectIndex = 0;
    selectIdIndex = 0;
    while(selectIndex < select.length && selectIdIndex<id.length)
    {
      if (select[selectIndex].value==id[selectIdIndex])
        break
      selectIdIndex++;
    }    

		for(var i=0;i<quick_select.length-1;i++)
		{		
			if (quick_select[i]==0) 
			{					
        /*var oOption = doc.createElement('OPTION');
        oOption.value = id[i];
        oOption.appendChild(doc.createTextNode(name[i]));*/

          while(selectIdIndex<i && selectIndex < select.length && selectIdIndex<id.length)
          {
            if (select[selectIndex].value==id[selectIdIndex])
            {
              if (selectIdIndex<i)
              {
                selectIdIndex++;
              } else               
              {
                break;
              }
            }
            selectIdIndex++;
          }            

        if (selectIndex<select.length && selectIdIndex!=i)
        {
          if (selectIdIndex<i)
          {
            
          } else {
              var oOption = doc.createElement('OPTION');
              select.options.add(oOption,selectIndex);		

              oOption.value = id[i];
              oOption.appendChild(doc.createTextNode(name[i]));

              selectIndex++;
          }                    
        } else 
        {
            var oOption = doc.createElement('OPTION');
            oOption.value = id[i];
            oOption.appendChild(doc.createTextNode(name[i]));

            select.appendChild(oOption);
            selectIndex++;
        }
			}
		}

			if (zeroRecord)
	{
		var doc = select.ownerDocument;
		if (!doc)
			doc = select.document;

    var oOption = doc.createElement('OPTION');
    select.options.add(oOption,i);		

    oOption.value = '0';
    oOption.appendChild(doc.createTextNode('Nezvolené'));										

    if (select.childNodes[0])
    {
      select.insertBefore(oOption,select.childNodes[0]);
    } else {
      select.append(oOption,select.childNodes[0]);  
    }
    if (selectZeroRecord) select.selectedIndex=0;
	}
		
		state = true;
	}
	return true;
}
function changeSelectContent(elementId,id,name,quick_select,inputId)
{
	var select = document.getElementById(elementId);
	var input = document.getElementById(inputId);

	if (!id || !name || !select || !input || !quick_select)
	{
		
		return;
	}
		
	for(var i=0;i<quick_select.length-1;i++)
	{		
		if (quick_select[i]==0) {		
			for(var l=0;l<select.length;l++)
			{
				if (select[l] && (select[l].value == id[i]))		
				{
					select[l] = null;
					break;
				}
			}
		}
	}

	if (input.checked)
	{	
		var doc = select.ownerDocument;
		if (!doc)
			doc = select.document;

		for(var i=0;i<quick_select.length-1;i++)
		{		
			if (quick_select[i]==0) 
			{		

				var oOption = doc.createElement('OPTION');
        select.options.add(oOption,i);
        
				oOption.value = id[i];
				oOption.appendChild(doc.createTextNode(name[i]));

			}
		}
	}
	return true;
}


function changeSelectBoxContent(elementId,id,name,quick_select,inputId,selectElementId)
{
	var select = document.getElementById(elementId);
	var input = document.getElementById(inputId);
	var	selectElementId = document.getElementById(selectElementId);

	if (!id || !name || !select || !input || !quick_select || !selectElementId)
	{
		
		return;
	}
		
	for(var i=0;i<quick_select.length-1;i++)
	{		
		if (quick_select[i]==0) {		
			for(var l=0;l<select.length;l++)
			{
				if (select[l] && (select[l].value == id[i]))		
				{
					select[l] = null;
					break;
				}
			}
		}
	}

	if (input.checked)
	{	
		var doc = select.ownerDocument;
		if (!doc)
			doc = select.document;
			
		for(var i=0;i<quick_select.length-1;i++)
		{		
			if (quick_select[i]==0) 
			{		
				var oOption = doc.createElement('OPTION');
				select.options.add(oOption,i);		

				oOption.value = id[i];
				oOption.appendChild(doc.createTextNode(name[i]));				
			}
		}

		var j=0;
		for(var i=0;i<selectElementId.length;i++)
		{			
			while(j<select.length)
			{
				if (selectElementId[i].value == select[j].value)			
				{
					select[j] = null;
					break;
				}
				j++;
			}
		}
	}
	
	return true;
}


function SelectAll(elem,wwhat)
{
	for(var i=0;i<elem.elements.length;i++)
	{
		if (elem.elements[i].name==wwhat)
		{
			var what=elem.elements[i];
		}

	}
	for(i=0;i<what.length;i++)
	{
		what.options[i].selected=1;
	}
}

function fromBoxToToBox(id,ffrom,tto,name)
{

	if (!id || !ffrom || !tto || !name)
	{
		
		return false;	
	}
	var i;
	
	elem = window.document.getElementById(id);
	for(var i=0;i<elem.elements.length;i++)
	{
		if (elem.elements[i].name==ffrom)
		{
			var from=elem.elements[i];
		}
		if (elem.elements[i].name==tto)
		{
			var to=document.form.elements[i];
		}

	}

	var nn = (document.layers)? true:false;
	var ie = (document.all)? true:false;

	var selectIndexName = -1;
	var selectIndexPosition = 0;
	var fromIndexName = 0;

	var doc = to.ownerDocument;
	if (!doc)
		doc = to.document;

	while(from.selectedIndex>-1)
	{
		i=from.selectedIndex;
		if (from.options[i].selected) 
		{
			if (selectIndexName<0)
			{
				selectIndexName = 0;
				while(selectIndexPosition < to.length && selectIndexName<name.length &&
						to[selectIndexPosition].text!=name[selectIndexName]) 
				{
					selectIndexName++; 
				}	
				if (selectIndexName>=name.length) selectIndexPosition = to.length;							
			}
									
			while(fromIndexName < name.length && name[fromIndexName] != from.options[i].text)
			{
				fromIndexName++;
			}

			if (fromIndexName<selectIndexName)
			{
				var oOption = doc.createElement('OPTION');
				to.options.add(oOption,selectIndexPosition);
				
				oOption.value = from.options[i].value;
				oOption.appendChild(doc.createTextNode(from.options[i].text));
				
				selectIndexPosition++;	
				
				from.options[i]=null;				
			}
			
			if (fromIndexName==selectIndexName)
			{
				var indexTo = to.length++;

				to.options[indexTo].value = from.options[i].value;
				to.options[indexTo].text = from.options[i].text;
				selectIndexPosition++;						
				
				from.options[i]=null;
			}			
			
			if (fromIndexName>selectIndexName)
			{
				while(fromIndexName>selectIndexName && selectIndexPosition < to.length)
				{
					selectIndexPosition++;
					while(selectIndexPosition < to.length && selectIndexName<name.length &&
							to[selectIndexPosition].text!=name[selectIndexName]) 
					{
						selectIndexName++; 
					}				
				}
				if (selectIndexName>=name.length) selectIndexPosition = to.length;
				
				if (selectIndexPosition < to.length)
				{
					var oOption = doc.createElement('OPTION');
					to.options.add(oOption,selectIndexPosition);

					oOption.value = from.options[i].value;
					oOption.appendChild(doc.createTextNode(from.options[i].text));
					
					selectIndexPosition++;	

					from.options[i]=null;
				} else {
					var indexTo = to.length++;

					to.options[indexTo].value = from.options[i].value;
					to.options[indexTo].text = from.options[i].text;
					selectIndexPosition++;						
					
					from.options[i]=null;
				}
			}
		}
	}
	return false;
}

function fromFacultiesToFaculties(id,ffrom,tto,facultiesId,universitiesName)
{
	if (!id || !ffrom || !tto ||  !facultiesId || !universitiesName)
	{
		
		return false;	
	}
	var i;
	
	elem = window.document.getElementById(id);
	for(var i=0;i<elem.elements.length;i++)
	{
		if (elem.elements[i].name==ffrom)
		{
			var from=elem.elements[i];
		}
		if (elem.elements[i].name==tto)
		{
			var to=document.form.elements[i];
		}

	}

	if (!from || !to)
	{
		
		return false;	
	}
	
	var nn = (document.layers)? true:false;
	var ie = (document.all)? true:false;

	var selectIndexName = -1;
	var selectIndexPosition = 0;
	var fromIndexName = 0;

	var doc = to.ownerDocument;
	if (!doc)
		doc = to.document;

	childSelectFrom=from.childNodes;	
	var childSelectFromIndex = 0;		
	var childSelectFromIndexOptgroup = -1;

	childSelectTo=to.childNodes;	
	var childSelectToIndex = 0;		
	var childSelectToIndexOptgroup = -1;


	var deleteArray = new Array();
	
	while(from.selectedIndex>-1)
	{
		i=from.selectedIndex;
		if (from.options[i].selected) 
		{					
			while(childSelectFromIndex<childSelectFrom.length) 
			{
				if (childSelectFrom[childSelectFromIndex].nodeName.toLowerCase() == 'optgroup')
				{
					childSelectFromIndexOptgroup = childSelectFromIndex;
					childSelectOptgroup = childSelectFrom[childSelectFromIndex].childNodes;
					childSelectOptgroupIndex = 0
					while(childSelectOptgroupIndex < childSelectOptgroup.length)
					{
						if (childSelectOptgroup[childSelectOptgroupIndex].nodeName.toLowerCase() == 'option' && 
							childSelectOptgroup[childSelectOptgroupIndex].value == from.options[i].value &&
							childSelectOptgroup[childSelectOptgroupIndex].text == from.options[i].text)
						{
							break;
						}
						childSelectOptgroupIndex++;
					}
					if (childSelectOptgroupIndex < childSelectOptgroup.length) break;
				}
				childSelectFromIndex++;
			}
			
			if (childSelectFromIndex<childSelectFrom.length)
			{
				if (childSelectFromIndexOptgroup!=-1)
				{												
					while(childSelectToIndex<childSelectTo.length) 
					{
						if (childSelectTo[childSelectToIndex].nodeName.toLowerCase() == 'optgroup' &&
							childSelectTo[childSelectToIndex].label == childSelectFrom[childSelectFromIndexOptgroup].label)
						{
							break;
						}
						childSelectToIndex++;
					}				
				
					if (childSelectToIndex<childSelectTo.length)
					{
						childSelectOptgroupTo = childSelectTo[childSelectToIndex].childNodes;
						childSelectOptgroupIndexTo = 0
						
						facultiesIdIndex = 0;
						facultiesIdInListIndex = 0;

						while(facultiesIdIndex < facultiesId.length)
						{
							if (facultiesId[facultiesIdIndex]==from.options[i].value)
								break;
							facultiesIdIndex++;
						}
						
						if (facultiesIdIndex<facultiesId.length)  
						{
							while(childSelectOptgroupIndexTo < childSelectOptgroupTo.length)
							{
								if (childSelectOptgroupTo[childSelectOptgroupIndexTo].nodeName.toLowerCase() == 'option')
								{
									while(facultiesIdInListIndex < facultiesId.length)
									{
										if (facultiesId[facultiesIdInListIndex]==childSelectOptgroupTo[childSelectOptgroupIndexTo].value)
											break;
										facultiesIdInListIndex++;
									}								
									
									if (!(facultiesIdInListIndex < facultiesId.length))
									{
																			
									}
									
									if (facultiesIdIndex<facultiesIdInListIndex)
										break;
								}
								childSelectOptgroupIndexTo++;
							}

							var oOption = doc.createElement('OPTION');
							oOption.value = from.options[i].value;
							oOption.appendChild(doc.createTextNode(from.options[i].text));

							childSelectTo[childSelectToIndex].appendChild(oOption);
							if (facultiesIdIndex<facultiesIdInListIndex && childSelectOptgroupIndexTo<childSelectOptgroupTo.length)
							{
								childSelectTo[childSelectToIndex].insertBefore(oOption,childSelectOptgroupTo[childSelectOptgroupIndexTo]);							
							} else {								
								childSelectTo[childSelectToIndex].appendChild(oOption);
							}
						} else {
							
						}											
					} else {	
						universitiesNameIndex = 0;
						universitiesNameInListIndex = 0;
	
						while(universitiesNameIndex < universitiesName.length)
						{
							if (universitiesName[universitiesNameIndex]==childSelectFrom[childSelectFromIndexOptgroup].label)
								break;
							universitiesNameIndex++;
						}					
					
						if (universitiesNameIndex< universitiesName.length)
						{

							childSelectToInsert = to.childNodes;	
							var childSelectToInsertIndex = 0;		

							while(childSelectToInsertIndex < childSelectToInsert.length)
							{
								if (childSelectToInsert[childSelectToInsertIndex].nodeName.toLowerCase() == 'optgroup')
								{
									while(universitiesNameInListIndex < universitiesName.length)
									{
										if (universitiesName[universitiesNameInListIndex]==childSelectToInsert[childSelectToInsertIndex].label)
											break;
										universitiesNameInListIndex++;
									}								
									
									if (!(universitiesNameInListIndex < universitiesName.length))
									{
																			
									}
									
									if (universitiesNameIndex<universitiesNameInListIndex)
										break;
								}
								childSelectToInsertIndex++;
							}
							
							var oOptGroup = doc.createElement('OPTGROUP');
							oOptGroup.label = childSelectFrom[childSelectFromIndexOptgroup].label;
				
							var oOption = doc.createElement('OPTION');
							oOption.value = from.options[i].value;
              oOption.appendChild(doc.createTextNode(from.options[i].text));										
		
							oOptGroup.appendChild(oOption);
							if (universitiesNameIndex<universitiesNameInListIndex && childSelectToInsertIndex<childSelectToInsert.length)
							{							
								to.insertBefore(oOptGroup,childSelectToInsert[childSelectToInsertIndex]);	
								childSelectToIndex = 0;
								while(childSelectToIndex<childSelectTo.length) 
								{
									if (childSelectTo[childSelectToIndex].nodeName.toLowerCase() == 'optgroup' &&
										childSelectTo[childSelectToIndex].label == childSelectFrom[childSelectFromIndexOptgroup].label)
									{
										break;
									}
									childSelectToIndex++;
								}								
							} else {								
								to.appendChild(oOptGroup);	
							}														
						} else {
							
						}
					}
					from.options[i]=null;	
							
				} else {
													
					break;
				}
			} else {
								
				break;
			}
		}
	}
	removeEmptyOptGroup(from);
	return;
}

function fromtoID(id,ffrom,tto)
{
	var i;
	
	elem=window.document.getElementById(id);
	for(var i=0;i<elem.elements.length;i++)
	{
		if (elem.elements[i].name==ffrom)
		{
			var from=elem.elements[i];
		}
		if (elem.elements[i].name==tto)
		{
			var to=document.form.elements[i];
		}

	}
	
	var nn = (document.layers)? true:false;
	var ie = (document.all)? true:false;

	while(from.selectedIndex>-1)
	{
		i=from.selectedIndex;
		if (from.options[i].selected) 
		{
			ii=to.length++;
			to.options[ii].text=from.options[i].text;
			to.options[ii].value=from.options[i].value;
			if (ie)
			{
				from.remove(i);
			} else
			{
				from.options[i]=null;
			}
		}
	}
	if (nn) 
	// refresh listbox if netscape
	{
		history.go(0);
	}
	return false;
}

function selectFromListToBox(id,ffrom,tto)
{
	var i;
	
	elem=window.document.getElementById(id);
	for(var i=0;i<elem.elements.length;i++)
	{
		if (elem.elements[i].name==ffrom)
		{
			var from=elem.elements[i];
		}
		if (elem.elements[i].name==tto)
		{
			var to=document.form.elements[i];
		}

	}
	
	var nn = (document.layers)? true:false;
	var ie = (document.all)? true:false;

	while(from.selectedIndex>-1)
	{
		i=from.selectedIndex;
		if (from.options[i].selected) 
		{
			ii=to.length++;
			to.options[ii].text=from.options[i].text;
			to.options[ii].value=from.options[i].value;
			if (ie)
			{
				from.remove(i);
			} else
			{
				from.options[i]=null;
			}
		}
	}
	if (nn) 
	// refresh listbox if netscape
	{
		history.go(0);
	}
	return false;
}

function changeFacultiesBox(faculties_id,faculties_name,faculties_has_universities,faculties_quick,universitiesId,facultiesId,selectFacultiesId,showAllFacultiesId)
{
	var selectUniversities = document.getElementById(universitiesId);	
	var faculties = document.getElementById(facultiesId);	
	var inputShowAllFaculties = document.getElementById(showAllFacultiesId);	
	var selectFaculties =  document.getElementById(selectFacultiesId);	
	
	if (!selectUniversities || !selectFaculties || !inputShowAllFaculties || !selectFacultiesId) 
	{
		
		return;
	}
	
	if (!faculties_name || !faculties_id || !faculties_has_universities || !faculties_quick) 
	{
		
    return;	
	}

	var isInserted = false;
	var isEnabled = false;
	
	var selectedUniversities=new Array();
	var selectedUniversitiesAddFaculties=new Array();	
	
	var selectedUniversitiesIndex = 0;
	var selectedUniversitiesAddFacultiesIndex = 0;	

	var selectedUniversitiesExistFaculties=new Array();		
	var selectedUniversitiesExistFacultiesIndex = 0;	
	
	var facultiesIndex = -1;

	for(var i=0;i<selectUniversities.length;i++)
	{		
		isEnabled = true;
		isInserted = false;
		for(var l=0;l<faculties.length;l++)
		{
			facultiesIndex = -1;
			for(var k=0; k<faculties_id.length;k++)
			{
				if (faculties_id[k]==faculties[l].value)
				{
					facultiesIndex=k;
					break;
				}
			}

			if (facultiesIndex>=0)
			{		
				if (faculties_has_universities[facultiesIndex] == selectUniversities[i].value)		
				{
					isInserted = true;
					break;
				}
			}
		}
		selectedUniversities[selectedUniversitiesIndex]= selectUniversities[i].value;			
		selectedUniversitiesIndex++;
		if (!isInserted) 
		{
			selectedUniversitiesAddFaculties[selectedUniversitiesAddFacultiesIndex] = selectUniversities[i].value;
			selectedUniversitiesAddFacultiesIndex++;
		} else {
			selectedUniversitiesExistFaculties[selectedUniversitiesExistFacultiesIndex]= selectUniversities[i].value;
			selectedUniversitiesExistFacultiesIndex++;
		}
	}

	if (!isEnabled)
	{		
		faculties.length = 0;
		removeEmptyOptGroup(faculties);			
		return;
	}
	
	var i = 0;	
	var facultiesIndex = -1;
	var isSelectUniversities = false;

	while(i<faculties.length)
	{
		facultiesIndex = -1;
		isSelectUniversities = false;
		
		for(var l=0; l<selectedUniversities.length; l++)
		{		
			for(var k=0; k<faculties_id.length;k++)
			{
				if (faculties_id[k]==faculties[i].value)
				{
					facultiesIndex=k;
					break;
				}
			}
			
			if (facultiesIndex>=0)
			{			
				if (faculties_has_universities[facultiesIndex] == selectedUniversities[l])
				{
					isSelectUniversities = true;
					break;
				}
			}
		}
		
		if (facultiesIndex>=0)
		{
			if (!isSelectUniversities) 
			{
				faculties[i] = null;
			} else {
				i++;
			}
		} else {
			i++;
		}
	}

	var doc =faculties.ownerDocument;
	if (!doc)
		doc =faculties.document;
		
	for(var i=0;i<selectedUniversitiesAddFaculties.length;i++)
	{
		var m = 0;
		for(m=0; m<universities_id.length; m++)
		{
			if (universities_id[m]==selectedUniversitiesAddFaculties[i])
			{
				break;
			}
		}
		
		var optgroup = doc.createElement('optgroup');
		optgroup.label = universities_name[m];		
		var insertFacult = false;
		for(var l=0;l<faculties_has_universities.length;l++)
		{
			if (faculties_has_universities[l]==selectedUniversitiesAddFaculties[i])
			{
				if ((faculties_quick[l]!=0 || inputShowAllFaculties.checked) && (faculties_id[i]>0))
				{					
					
					var IsInSelectFaculties = false;
					for(var selectFacultiesIndex = 0; selectFacultiesIndex < selectFaculties.length; selectFacultiesIndex++)
					{
					    if(selectFaculties[selectFacultiesIndex].value==faculties_id[l])
					    {
					      IsInSelectFaculties = true;
					      break;
					    }
					}
					
					if (!IsInSelectFaculties)
					{
						var oOption = doc.createElement('OPTION');
						oOption.value = faculties_id[l];
						oOption.appendChild(doc.createTextNode(faculties_name[l]));

						optgroup.appendChild(oOption);
						insertFacult = true;
					}
				}
			}
		}
		if (insertFacult)	faculties.appendChild(optgroup);		
	}

	childSelect=faculties.childNodes;	
	for(var j =0; j < selectedUniversitiesExistFaculties.length; j++)
	{
		var i=0;
		for(i;i<universities_id.length;i++)
		{
			if (universities_id[i] == selectedUniversitiesExistFaculties[j])
			{
				break;
			}
		}
		
		for(var k=0; k<childSelect.length; k++)
		{
			if(childSelect[k].nodeName.toLowerCase() == 'optgroup' && childSelect[k].label == universities_name[i])
			{	
				for(var m=0; m<faculties_has_universities.length; m++)
				{
					if (universities_id[i] == faculties_has_universities[m])
					{
						childOptGroupSelect=childSelect[k].childNodes;					
						var insertOption = true;
						var s = 0;
						for(s; s<childOptGroupSelect.length; s++)
						{
							if(childOptGroupSelect[s].nodeName.toLowerCase() == 'option' && childOptGroupSelect[s].value==faculties_id[m])
							{
								insertOption = false;
								break;
							}
						}	

						if (insertOption && (faculties_quick[m]==1 || inputShowAllFaculties.checked))
						{	
							var IsInSelectFaculties = false;
							for(var selectFacultiesIndex = 0; selectFacultiesIndex < selectFaculties.length; selectFacultiesIndex++)
							{
							    if(selectFaculties[selectFacultiesIndex].value==faculties_id[m])
							    {
							      IsInSelectFaculties = true;
							      break;
							    }
							}
							
							if (!IsInSelectFaculties)
							{							
								var ii;											
								var jj = m;
	
								while(faculties_has_universities[jj]==faculties_has_universities[m] && jj >-1)
								{
									jj--;
								}
								jj++;
								
								var insertBefore = false;							
								for(ii = 0; ii<childOptGroupSelect.length; ii++)
								{
									if(childOptGroupSelect[ii].nodeName.toLowerCase() == 'option')
									{
	
										while(faculties_has_universities[jj]==faculties_has_universities[m] && jj < faculties_has_universities.length)
										{
											if (faculties_id[jj] == childOptGroupSelect[ii].value)
											{
												break;
											} 
											jj++;
										}
										
										if (!(jj < faculties_has_universities.length) || faculties_has_universities[jj]!=faculties_has_universities[m])
										{	
											break;
										}
										
										
										if (jj>m) 
										{
											insertBefore = true;
											break;
										}
										jj++;
									}
								}
								
								var oOption = doc.createElement('OPTION');
								oOption.value = faculties_id[m];
								oOption.appendChild(doc.createTextNode(faculties_name[m]));
								
								if (insertBefore)
								{
									childSelect[k].insertBefore(oOption,childOptGroupSelect[ii]);
								} else {
									childSelect[k].appendChild(oOption);
								}
							}
						}
						
						if (!insertOption && faculties_quick[m]==0 && !inputShowAllFaculties.checked)
						{
							childSelect[k].removeChild(childOptGroupSelect[s]);
						}
						
					}
				}
			} 					
		}		
	}
	removeEmptyOptGroup(faculties);	
}

function changeSelectFacultiesBox(facultiesId,facultiesSelectId,id,name,quick_select,inputId,universitiesSelectId,university_id,university_name,university_quick,universityInputId)
{
	var select = document.getElementById(facultiesId);
	var selectSelect = document.getElementById(facultiesSelectId);
	
	var universities = document.getElementById(universitiesSelectId);

	var input = document.getElementById(inputId);
	var inputShowAllUniversity = document.getElementById(universityInputId);	
	var inputShowAllFaculties = document.getElementById(inputId);	

	if (!id || !name || !select || !input || !quick_select || !inputShowAllFaculties ||
		!university_id || !university_name || !university_quick || !inputShowAllUniversity
      || !selectSelect || !universities)
	{
		
		return false;
	}	

	if (universities.length) return true;
	
	var i =0;
	for(var i = 0; i<quick_select.length-1; i++)
	{		
		if (quick_select[i]==0) 
		{		
			for(var l=0;l<select.length;l++)
			{
				if (select[l] && (select[l].value == id[i]))		
				{
					select[l] = null;
					break;
				}
			}
		} 
	}

	childSelect=select.childNodes;
	var empty = false;
	
	if (input.checked)
	{	
		var doc = select.ownerDocument;
		if (!doc)
			doc = select.document;

		var childIndexStart = 0;
		var optCount = 0;
		var universityCount = 0;
		
		optGroupArray =  new Array();
		optGroupUniversityArray =  new Array();
		
		
		for(var i=0;i<university_quick.length-1;i++)
		{
			if (university_quick[i]==1 || (inputShowAllUniversity.checked))
			{			
				universityCount++;
									
				var isExist = false;
				var childIndex = 0;				

				for(childIndex = childIndexStart; childIndex<childSelect.length; childIndex++)
				{					
					if(childSelect[childIndex].nodeName.toLowerCase() == 'optgroup')
					{
						if (childSelect[childIndex].label==universities_name[i])
						{
							var isExist = true;
							optGroupArray.push(childIndex);
							optGroupUniversityArray.push(universities_id[i]);

							childIndex++;
							optCount++;
							
							while (childIndex<childSelect.length)
							{
								if(childSelect[childIndex].nodeName.toLowerCase() == 'optgroup')
								{
									break;
								}
								childIndex++;
							}
							break;
						}
						break;												
					}	
				}
				childIndexStart += (childIndex-childIndexStart);

				if (!isExist)
				{
					optCount++;	
					var optgroup = doc.createElement('optgroup');
					optgroup.label = universities_name[i];						
					if (childSelect[childIndexStart])
					{
						optGroupArray.push(childIndexStart);
						optGroupUniversityArray.push(universities_id[i]);											
						select.insertBefore(optgroup,childSelect[childIndexStart]);
					} else 
					{
						if(childSelect.length==0) 
						{
							empty = true;
							var oOption = doc.createElement('OPTION');
							oOption.value = '';
							oOption.appendChild(doc.createTextNode(''));
							
							optgroup.appendChild(oOption);
						}
						optGroupUniversityArray.push(universities_id[i]);			
						select.appendChild(optgroup);					
						optGroupArray.push(childSelect.length-1);	
					}
					
					childIndexStart++;
					while (childIndexStart<childSelect.length)
					{
						if(childSelect[childIndexStart].nodeName.toLowerCase() == 'optgroup')
						{
							break;
						}
						childIndexStart++;
					}
				}	
			}
		}

		if (optGroupArray.length>0)
		{		
			var f = 0;
			var ogfa = 0
			var oldUniversities = -1;

			while(f<faculties_has_universities.length)
			{							
				if (faculties_quick[f]==0)
				{													
					var isExist = false;			
					if (optGroupUniversityArray[ogfa] == faculties_has_universities[f])
					{
						isExist = true;
					} else 
					{
						if (parseInt(faculties_has_universities[f])!=optGroupUniversityArray[ogfa] && (faculties_has_universities[f] != oldUniversities)) 
						{
							var oldOgfa = ogfa;
							for(var of = ogfa; of<optGroupUniversityArray.length; of++)
							{
								if (faculties_has_universities[f]==optGroupUniversityArray[of])
								{
									ogfa = of;
									break;
								}
							}
							if (ogfa==oldOgfa)
							{
								oldUniversities = faculties_has_universities[f];
								f++;
							}
						} else
						{
							f++;
						}
					}
									
					if (isExist)
					{			
						var IsInSelectFaculties = false;
						for(var selectFacultiesIndex = 0; selectFacultiesIndex < selectSelect.length; selectFacultiesIndex++)
						{
						    if(selectSelect[selectFacultiesIndex].value==faculties_id[f])
						    {
						      IsInSelectFaculties = true;
						      break;
						    }
						}
						
						if (!IsInSelectFaculties)
						{								
							var oOption = doc.createElement('OPTION');
							oOption.value = faculties_id[f];
							oOption.appendChild(doc.createTextNode(faculties_name[f]));
													
							childSelect[optGroupArray[ogfa]].appendChild(oOption);
						}
						f++;						
					}
				} else {
					f++;
				}
			}
		}
	}
	if(empty)
	{	
		if (select[0])
			select[0] = null;
		empty = false;
	}
	
	removeEmptyOptGroup(select);		
	return false;
}



function fillFacultiesBool(facultiesID, faculties_id,faculties_name,faculties_has_universities,faculties_quick,universitiesID,universities_id,universities_name,inputShowAllFaculties,zeroRecord,selectZero)
{
	var selectFaculties = document.getElementById(facultiesID);	
	var selectUniversities = document.getElementById(universitiesID);	

	if (!selectUniversities || !selectFaculties) 
	{
		
		return;	
	}	
	
	if (!faculties_name || !faculties_id || !faculties_has_universities || !faculties_quick || !universities_id || !universities_name)
	{
		
		return;	
	}

  var selectZeroRecord = false;	
	if (zeroRecord)
	{
    if (selectFaculties.selectedIndex>-1)
    {
      if (selectFaculties[selectFaculties.selectedIndex].value == 0)
      {
        selectZeroRecord = true;
      }
    }
    removeZeroRecord(selectFaculties);
	}

  selectFaculties.length=null;
	removeEmptyOptGroup(selectFaculties);	
	
	
	universities = selectUniversities.childNodes;
	
	selectUniversitiesIndex=-1;
	arrayUniversitiesIndex=0;
	universitiesIndex=0;
	optgroupIndex = -1;
	
	var doc = selectFaculties.ownerDocument;
	if (!doc)
		doc = selectFaculties.document;

  var optgroup;
  var existOptgroup = false;			
	
	for(var i=0; i < faculties_id.length; i++)
	{
    if (faculties_quick[i]==1 || inputShowAllFaculties)
    {
      if (faculties_has_universities[i]!=selectUniversitiesIndex)
      {
          if (existOptgroup) selectFaculties.appendChild(optgroup);
          while (universitiesIndex<universities.length)
          {
            if (universities[universitiesIndex].nodeName.toLowerCase() == 'option' && universities[universitiesIndex].value!=0)
            {
              for(var k= arrayUniversitiesIndex; k<universities_name.length; k++)
              {
                if (universities_name[k]==universities[universitiesIndex].text && faculties_has_universities[i]==universities_id[k])
                {                                   
                  arrayUniversitiesIndex=k;
                  selectUniversitiesIndex = universities[universitiesIndex].value;
                  break;
                }
              }
              
              if (universities_name[arrayUniversitiesIndex]==universities[universitiesIndex].text && faculties_has_universities[i]==universities_id[k]) 
              {
                universitiesIndex++;
                break;
              }              
              /*arrayUniversitiesIndex = universities_name.length;*/
            }
            universitiesIndex++;
          }

          if (!(universitiesIndex < universities.length)) break;
           
          optgroup = doc.createElement('optgroup');
          optgroup.label = universities_name[arrayUniversitiesIndex];	
          
          var oOption = doc.createElement('OPTION');
          oOption.value = faculties_id[i];
          oOption.appendChild(doc.createTextNode(faculties_name[i]));
          
          optgroup.appendChild(oOption);
          existOptgroup = true;
          selectUniversitiesIndex = universities_id[arrayUniversitiesIndex];
      } else {
          var oOption = doc.createElement('OPTION');
          oOption.value = faculties_id[i];
          oOption.appendChild(doc.createTextNode(faculties_name[i]));
          
          optgroup.appendChild(oOption);        
      }
    }
	}
	if (existOptgroup) selectFaculties.appendChild(optgroup);
	
	//removeEmptyOptGroup(selectFaculties);	
	
	if (zeroRecord)
	{
		var doc = selectFaculties.ownerDocument;
		if (!doc)
			doc = selectFaculties.document;

    var oOption = doc.createElement('OPTION');
    selectFaculties.options.add(oOption,i);		

    oOption.value = '0';
    oOption.appendChild(doc.createTextNode('Nezvolené'));

    if (selectFaculties.childNodes[0])
    {
      selectFaculties.insertBefore(oOption,selectFaculties.childNodes[0]);
    } else {
      selectFaculties.append(oOption,selectFaculties.childNodes[0]);  
    }
    if (selectZeroRecord || selectZero) selectFaculties.selectedIndex=0;
	}	
	
	return true;
}

var ScrollWin = {
  w3c : document.getElementById,
  iex : document.all,
  scrollLoop : false,
  scrollInterval : null, // setInterval id
  currentBlock : null,   // object reference
  getWindowHeight : function(){
    if(this.iex) return (document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.body.clientHeight;
    else return window.innerHeight;
  },
  getScrollLeft : function(){
    if(this.iex) return (document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
    else return window.pageXOffset;
  },
  getScrollTop : function(){
    if(this.iex) return (document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
    else return window.pageYOffset;
  },
  getElementYpos : function(el){
    var y = 0;
    while(el.offsetParent){
      y += el.offsetTop
      el = el.offsetParent;
    }
    return y;
  },
  scroll : function(num){
    if(!this.w3c){
      location.href = "#"+this.anchorName+num;
      return;
    }
    if(this.scrollLoop){
      clearInterval(this.scrollInterval);
      this.scrollLoop = false;
      this.scrollInterval = null;
    }
    if(this.currentBlock != null) this.currentBlock.className = this.offClassName;
    this.currentBlock = document.getElementById(this.blockName+num);
    this.currentBlock.className = this.onClassName;
    var doc = document.getElementById(this.containerName);
    var documentHeight = this.getElementYpos(doc) + doc.offsetHeight;
    var windowHeight = this.getWindowHeight();
    var ypos = this.getElementYpos(this.currentBlock);
    if(ypos > documentHeight - windowHeight) ypos = documentHeight - windowHeight;
    this.scrollTo(0,ypos);
  },
  scrollError : function(){
    num=0;
    this.containerName = "contentBody"; // The id name of the div containing the content
    this.anchorName    = "error_box0";    // The alpha portion of the anchor names
    this.blockName     = "errors_box";     // The alpha portion of the content blocks
    this.onClassName   = "active";    // The CSS class name for the 'on' state
    this.offClassName  = "visited";   // The CSS class name for the 'off' state

    if(!this.w3c){
      location.href = "#"+this.anchorName;
      return;
    }
    if(this.scrollLoop){
      clearInterval(this.scrollInterval);
      this.scrollLoop = false;
      this.scrollInterval = null;
    }
    if(this.currentBlock != null) this.currentBlock.className = this.offClassName;
    this.currentBlock = document.getElementById(this.blockName+num);
    this.currentBlock.className = this.onClassName;
    var doc = document.getElementById(this.containerName);
    var documentHeight = this.getElementYpos(doc) + doc.offsetHeight;
    var windowHeight = this.getWindowHeight();
    var ypos = this.getElementYpos(this.currentBlock);
    if(ypos > documentHeight - windowHeight) ypos = documentHeight - windowHeight;
    this.scrollTo(0,ypos);
  },  
  scrollTo : function(x,y){
    if(this.scrollLoop){
      var left = this.getScrollLeft();
      var top = this.getScrollTop();
      if(Math.abs(left-x) <= 1 && Math.abs(top-y) <= 1){
        window.scrollTo(x,y);
        clearInterval(this.scrollInterval);
        this.scrollLoop = false;
        this.scrollInterval = null;
      }else{
        window.scrollTo(left+(x-left)/2, top+(y-top)/2);
      }
    }else{
      this.scrollInterval = setInterval("ScrollWin.scrollTo("+x+","+y+")",100);
      this.scrollLoop = true;
    }
  }
};


var partnersLogo = new Array(0);


function load_img(id) {
	if (partnersLogo[id]) {	
		var img = document.getElementById('partner-logo');
		img.src = partnersLogo[id];	
	}
}


	 function participationPagesChange() {
		 if (document.st.regFirm5vik_services5entry_place.checked) {
           document.st.regFirm5vik_services5entry_guide.disabled = true;		   
           document.st.regFirm5vik_services5entry_guide.checked = true;		              
		   
		 } else {
		            document.st.regFirm5vik_services5entry_guide.disabled = false;
		            document.st.regFirm5vik_services5entry_guide.checked = false;
		 }
	 }



	 function creativePageChange() {
		 if (document.st.regFirm5vik_services5participation_creative_page.checked) {
           document.st.regFirm5vik_services5participation_number_creative_page.disabled = false;		   
		 } else {
           document.st.regFirm5vik_services5participation_number_creative_page.disabled = true;
           if (document.st.regFirm5vik_services5participation_creative_page.value) {
           }else{
            document.st.regFirm5vik_services5participation_number_creative_page.value = 0;
           }
		 }
	 }


