function ComboboxInit( isCombobox )
{
  ComboboxRemoveAll( isCombobox );
  ComboboxSetDirty( isCombobox, true );
}

function ComboboxOnClick( isCombobox )
{
  if( isCombobox.IsDirty && isCombobox.DataSourceURL != "" )
  {
    var strValue;
    strValue = ComboboxGetValue( isCombobox )
	  ComboboxRemoveAll( isCombobox );
    ComboboxReadData( isCombobox );
    if( strValue != "" )
      ComboboxSetValue( isCombobox, strValue )
  }
}

function ComboboxRemoveAll( isCombobox )
{
  for( n = isCombobox.options.length - 1; n >= 0; n-- )
    ComboboxRemoveItem( isCombobox, n );
}

function ComboboxReadData( isCombobox )
{
  var strParamValue, strParamName;
	if( isCombobox.ParamJSExprValue != "" )
		eval( "strParamValue = " + isCombobox.ParamJSExprValue + ";" );
  strParamName = isCombobox.ParamName;
  ComboboxAddItem( isCombobox, "načítám data..", "" );
  isCombobox.focus();

  var oXMLHTTP = new ActiveXObject( "Microsoft.XMLHTTP" );
  oXMLHTTP.open( "POST", isCombobox.DataSourceURL + "&" + strParamName + "=" + strParamValue, false );
/**///  oXMLHTTP.open( "POST", isCombobox.DataSourceURL, false );
  oXMLHTTP.send();
  var sResult;
  sResult = oXMLHTTP.responseText;

// provedeme preklad HTML syntaxe
  sResult = sResult.replace( /&lt;/g, "<" );
  sResult = sResult.replace( /&gt;/g, ">" );

  ComboboxFill( isCombobox, sResult );
}

function ComboboxFill( isCombobox, istrXMLBody )
{
// nacteme dalsi polozky z XML
  var sXMLDoc = new ActiveXObject( "Microsoft.XMLDOM" );
  sXMLDoc.loadXML( istrXMLBody );
  var sXMLNodes = sXMLDoc.getElementsByTagName( "Table" )

// vytvorime prvni polozku
  if( sXMLNodes.length == 0 )
    ComboboxAddItem( isCombobox, "-- žádné položky --", "" );
  else
    ComboboxAddItem( isCombobox, "", "" );
  
// nacteme polozky do comboboxu
  for( n = 0; n < sXMLNodes.length; n++ )
  {
    var sXMLNode = sXMLNodes[n];
    var oChildNode;
    var strText, strValue;
    if( (oChildNode = sXMLNode.selectSingleNode( isCombobox.DataValueField )) != null )
      strValue = oChildNode.text;
    if( (oChildNode = sXMLNode.selectSingleNode( isCombobox.DataTextField )) != null )
      strText = oChildNode.text;
    ComboboxAddItem( isCombobox, strText, strValue );
  }
  
// vymazeme prvni polozku (informacni hlaska)
  ComboboxRemoveItem( isCombobox, 0 );

// vybereme prvni vyznamnou polozku
  if( n == 0 )
    isCombobox.SelectedIndex = 0;
  else
    isCombobox.SelectedIndex = 1;

  ComboboxSetDirty( isCombobox, false );
}

function ComboboxAddItem( isCombobox, istrText, istrValue )
{
  var sOption = document.createElement( "option" );
  isCombobox.options.add( sOption );
  sOption.innerText = istrText;
  sOption.value = istrValue;
}

function ComboboxRemoveItem( isCombobox, iiIndex )
{
  isCombobox.options.remove( isCombobox.options[iiIndex] );
}

function ComboboxSetDirty( isCombobox, igFlag )
{
  isCombobox.IsDirty = igFlag;
}

function ComboboxGetValue( isCombobox )
{
  return isCombobox.value;
}

function ComboboxSetValue( isCombobox, istrValue )
{
  isCombobox.value = istrValue;
}
