
	function SelectSource(source, i, options_code) {
	    
	    var myRelease = document.getElementById('release-'+i);
	    var myBody = document.getElementById('alter-select-'+i);
		var myNote = document.getElementById('note-'+i);
		var nextBody = document.getElementById('alter-select-'+eval(i+1));
		var innerCode = '';
		
		// promazani stavajicich dat
		myRelease.innerHTML = '';
	    
	    // generovani obsahu pro druhy select - vydani
	    thisElementId = source.id;
	    var selectedSourceId = document.getElementById(thisElementId).options[document.getElementById(thisElementId).selectedIndex].value;
	    
		if (selectedSourceId == '-1') {
			// byl zrusen vyber
			if (nextBody) { // pokud existuje nasledujici element, zrusime ho
				
				if (window.confirm('Zrušením výběru zdroje budou odstraněny všechny navazující volby. Opravdu chcete pokračovat?')) {
				    myBody.innerHTML = innerCode;
				    myNote.innerHTML = 'Pro zobrazení jednotlivých vydání vyberte příslušný zdroj.';
				    myRelease.innerHTML = '';
				}
				else return false;
			}
		}
		else {
			
			if (!nextBody) { // pokud jiz element existuje, nebudeme dalsi vytvaret
					
					//innerCode += ' <div class="col mg sources">';
					innerCode += ' 	<div class="col-left">';
					innerCode += ' 		<h3>Zdroj:</h3>';
					innerCode += ' 		<p>';
					innerCode += ' 			<select class="text select" name="sources[]" id="sources-'+eval(i+1)+'" onChange="SelectSource(this, '+ eval(i+1) +', options_code);return false;">';				
		 			innerCode += 			options_code;			
					innerCode += ' 			</select>';
					innerCode += ' 		</p>';
					innerCode += ' 	</div>';
					innerCode += ' 	<div class="col-right">';
					innerCode += ' 		<h3>Vydání:</h3>';
					innerCode += ' 		<p>';
					innerCode += ' 			<select size="10" class="text multiselect" name="release[]" id="release-'+eval(i+1)+'" multiple>';
										// tady se budou generovat options fci getMyData();
					innerCode += ' 			</select>';
					innerCode += '			<span class="note" id="note-'+eval(i+1)+'">Pro zobrazení jednotlivých vydání vyberte příslušný zdroj.</span>';
					innerCode += ' 		</p>';
					innerCode += ' 	</div>';
					innerCode += ' 	<div class="cleaner"></div>';
					//innerCode += ' </div>';
					
					innerCode += ' <div class="col mg sources" id="alter-select-'+ eval(i+1) +'"></div>';
				
				//myBody.innerHTML += code;
			}
			
			getMyData( thisElementId, 'release-'+i, 'note-'+i, 'alter-select-'+i, innerCode );
		}
	}

	
	/**
	 * Načte data ze serveru.
	 *
	 * 
	 */
	function getMyData(inputElementId, targetElementId, noteElementId, myBodyId, myBodyCode)
	{
		var request = null;
		var myData = [];
		var ret = false;
		var myBody = document.getElementById(myBodyId);

		// zrušení předchozího požadavku
		if (request) {
			request.abort();
			request = null;
		}
		
		var inputElement = document.getElementById(inputElementId);
		var selectedSourceId = inputElement.options[inputElement.selectedIndex].value;

        if (selectedSourceId) {
			try {
				
				request = getMyRequest();
				request.open('GET', 'http://www.aspikurzy.cz/ao/ostatni-stranky/ajax/vydani-zdroje/' + '?&sourceId=' + selectedSourceId, true);
				request.onreadystatechange = function() {
					if (request.readyState == 4) {
						try {
							if (request.status == 200) {
							    try {
							        eval('myData = (' + request.responseText + ');');
									ret = showData(myData,targetElementId,noteElementId);
									if (ret && myBodyCode) {
										// vytvoreni dalsiho elementu
										myBody.innerHTML += myBodyCode;
									}
									
									
								} catch (e) {
								    // chybná data od serveru
								}
							}
						} catch (e) {
						    // výjimka vyhozená po abort
						}
					}
				};
				request.send(null);
			} catch (e) {
				// nepodařilo se vytvořit XMLHttpRequest
				alert('nepodařilo se vytvořit XMLHttpRequest');
			}
        }
	};

	/**
	 * Zobrazí options.
	 *
	 */
	function showData(myData, targetElementId, noteElementId)
	{
        //window.clearTimeout(hideTimeoutId);
        //alert(data);
        var targetElement = document.getElementById(targetElementId);
        var noteElement = document.getElementById(noteElementId);
        var innerCode = '';
        var show = false;
        
        //var objTargetSelect = targetElementId;
        
        for(i=0; i<myData.length; i++) {
    		//innerCode += '<option value="'+myData[i][0]+'">'+myData[i][1]+' / '+myData[i][2]+'</option>';	
    		var opt = document.createElement('OPTION');
    		opt.setAttribute('value',myData[i][0]);
    		var text = document.createTextNode(myData[i][1]+' / '+myData[i][2]);
    		opt.appendChild(text);
    		targetElement.appendChild(opt);
    		show = true;
  		}
  		
  		if (show) {
			noteElement.innerHTML = 'Pro označení více položek podržte klávesu <kbd>CTRL</kbd>';
		}
  		else {
		  	noteElement.innerHTML = 'Pro vybraný zdroj nebyla nalezena žádná vydání!';
		}
		
		return show;

        
	};



	/**
	 * Vrátí instanci XMLHttpRequestu.
	 *
	 * @return XMLHttpRequest
	 * @throws Error když se nepodaří vytvořit instanci
	 */
	function getMyRequest()
	{
		
		if (typeof XMLHttpRequest != 'undefined') {
			return new XMLHttpRequest();
		} else {
			
			try {
				return new ActiveXObject('Msxml2.XMLHTTP');
			} catch (e) {
				try {
					return new ActiveXObject('Microsoft.XMLHTTP');
				} catch (E) {
					throw new Error('XMLHttpRequest není dostupný.');
				}
			}
		}
	};


