/**
 * XHR objekty
 */ 
var xmlHttpBarva = null;
var xmlHttpOdruda = null;
 
/**
* barva u vin
*/      
function ajaxBarva(aSelect, catId) 
{
  // nacteni barev
  xmlHttpBarva = GetXmlHttpObject(); 
  // podporuje prohlizec AJAX?
  if (xmlHttpBarva == null) 
  { 
  return false;
  }
  // nacteni vybranych hodnot z select boxu
  var pom = setZmenaMulti('changeBarva', 'barva').replace("&changeBarva=", "");
  // url pro nacteni hodnot podrazeneho prvku 
  var sUrl = "/ajax/filter.php?type=zeme&barva=" + pom + "&cat=" + catId; 
  
  xmlHttpBarva.onreadystatechange = stateBarvaChanged;
  xmlHttpBarva.open("GET", sUrl, true);
  xmlHttpBarva.setRequestHeader("Content-Type","text/xml");
  xmlHttpBarva.setRequestHeader("encoding", "utf-8");
  xmlHttpBarva.send(null);    
  return false;
}

function stateBarvaChanged() 
{ 
  if (xmlHttpBarva.readyState == 4) 
  { 
    var d = document.getElementById("divZeme");
    if (d != null) 
    {
      d.innerHTML = xmlHttpBarva.responseText;
      var BarvaId = setZmenaMulti('xx', 'barva');
      BarvaId = BarvaId.replace('&xx=', '');
      ajaxZeme(document.getElementById('zeme'), BarvaId, document.getElementById('catId').innerHTML);
    }
  }
}  


/**
* barva u tematickych krabic
*/
function ajaxBarvaTema(aSelect, catId) 
{
  xmlHttpBarva = GetXmlHttpObject(); 
  if (xmlHttpBarva == null) 
  { 
    return false;
  }
  var pom = setZmenaMulti('changeBarva', 'barva').replace("&changeBarva=", ""); 
  var sUrl = "/ajax/filter.php?type=zeme&barva=" + pom + "&cat=" + catId; 
  xmlHttpBarva.onreadystatechange = stateBarvaTemaChanged;
  xmlHttpBarva.open("GET", sUrl, true);
  xmlHttpBarva.setRequestHeader("Content-Type","text/xml");
  xmlHttpBarva.setRequestHeader("encoding", "utf-8");
  xmlHttpBarva.send(null);    
  return false;
}

function stateBarvaTemaChanged() 
{ 
  if (xmlHttpBarva.readyState == 4) 
  { 
    var d = document.getElementById("divZeme");
    if (d != null) {
      d.innerHTML = xmlHttpBarva.responseText;
    }
  }
}  


/**
* zeme u vin
*/     
function ajaxZeme(aSelect, BarvaId, catId) 
{
  xmlHttpZeme = GetXmlHttpObject(); 
  if (xmlHttpZeme == null) 
  { 
    return false;
  }
  var pom = setZmenaMulti('changeZeme', 'zeme').replace("&changeZeme=", ""); 
  var sUrl = "/ajax/filter.php?type=odruda&zeme=" + pom + '&barva='+BarvaId + "&cat=" + catId; 
  xmlHttpZeme.onreadystatechange = stateZemeChanged;
  xmlHttpZeme.open("GET", sUrl, true);
  xmlHttpZeme.setRequestHeader("Content-Type","text/xml");
  xmlHttpZeme.setRequestHeader("encoding", "utf-8");
  xmlHttpZeme.send(null);    
  return false;
}

function stateZemeChanged()
{ 
  if (xmlHttpZeme.readyState == 4) 
  { 
    var d = document.getElementById("divOdruda");
    if (d != null) 
    {
      d.innerHTML = xmlHttpZeme.responseText;
      var BarvaId = setZmenaMulti('xx', 'barva');
      BarvaId = BarvaId.replace('&xx=', '');
      //todo:
      var ZemeId = setZmenaMulti('xx', 'zeme');
      ZemeId = ZemeId.replace('&xx=', '');
      ajaxOdruda(document.getElementById('odruda'), BarvaId, ZemeId, document.getElementById('catId').innerHTML);
    }
  }
}  





/**
* odruda u vin
*/     
function ajaxOdruda(aSelect, BarvaId, ZemeId, catId) 
{
  xmlHttpOdruda = GetXmlHttpObject(); 
  if (xmlHttpOdruda == null) 
  { 
    return false;
  }
  var pom = setZmenaMulti('changeOdruda', 'odruda').replace("&changeOdruda=", ""); 
  var sUrl = "/ajax/filter.php?type=vinarstvi&odruda=" + pom + '&barva='+BarvaId + '&zeme='+ZemeId + "&cat=" + catId; 
  xmlHttpOdruda.onreadystatechange = stateOdrudaChanged;
  xmlHttpOdruda.open("GET", sUrl, true);
  xmlHttpOdruda.setRequestHeader("Content-Type","text/xml");
  xmlHttpOdruda.setRequestHeader("encoding", "utf-8");
  xmlHttpOdruda.send(null);    
  return false;
}

function stateOdrudaChanged()
{ 
  if (xmlHttpOdruda.readyState == 4) 
  { 
    var d = document.getElementById("divVinarstvi");
    if (d != null) 
    {
      d.innerHTML = xmlHttpOdruda.responseText;
    }
  }
}  


/**
 * precte hodnoty z multi selectu a vrati je oddelene carkou i popiskem do query stringu
 */      
function setZmenaMulti(parNazev, multiNazev) 
{
  var chStr = "";
  var frmFiltr = document.getElementById('search_form');
  var listBox = frmFiltr[multiNazev];
  var choices = new Array;
  for (var i = 0; i < listBox.options.length; i++)
  {
    if (listBox.options[i].selected) 
    {
      choices[choices.length] = listBox.options[i].value;
      if (chStr != "") chStr = chStr + ","
      chStr = chStr + listBox.options[i].value;
    }
  }
  if (chStr != "") chStr = '&'+parNazev+'='+chStr;
  return chStr;
}

/**
 *  precte hodnotu ze selectu a vrati ji i popiskem do query stringu
 */     
function setZmenaCombo(parNazev, comboNazev) 
{
  var chStr = "";
  var frmFiltr = document.getElementById('search_form');
  var selectBox = frmFiltr[comboNazev];
  if (selectBox == null) return '';

  chStr = '&'+parNazev+'='+selectBox.value;
  return chStr;
}

/**
 * zjisti podporu XHR objektu v prohlizeci
 */ 
function GetXmlHttpObject() 
{
  var xmlHttp=null;
  
  // Firefox, Opera 8.0+, Safari
  try 
  { 
    xmlHttp = new XMLHttpRequest();
  } 
  catch (e) 
  {
    // Internet Explorer
    try 
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch (e) 
    {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlHttp;
}  
