function createOption(p_aParams)
{
    var oOption = document.createElement('option');

    oOption.text = p_aParams[0];
    oOption.value = p_aParams[1];
    oOption.className = p_aParams[2];
    oOption.id = p_aParams[3];

    if(p_aParams[1] == sCategoryBottom)
    {
        oOption.selected = true;
        //write item count
        //document.getElementById("item-count").innerText = sItems; // for IE
        //document.getElementById("item-count").textContent = sItems; // real browsers
    }

    return oOption;
}

function fillSelectField(p_sId, p_aOptions)
{
    clearSelectField(p_sId);

    var oSelect = document.getElementById(p_sId);

    if(oSelect == null)
        return;

    if(p_aOptions == null)
        return;

    for (i in p_aOptions)
    {
        try
        {
            oSelect.add(createOption(p_aOptions[i]), null); // all browsers except from IE
        }
        catch(e)
        {
            oSelect.add(createOption(p_aOptions[i], p_sClass)); // IE
        }
    }
}

function inMultiArray(p_sValue, p_aArray, p_nIndex)
{
    for(var i = 0; i < p_aArray.length; i++)
    {
        if(p_aArray[i][p_nIndex] == p_sValue)
            return i;
    }
    return false;
}

function clearSelectField(p_sId)
{
   var oField = document.getElementById(p_sId);
   if(oField == null)
       return;

   var aOptions = oField.getElementsByTagName("option");
    if(aOptions == null)
        return;

   for (var i = aOptions.length-1; i>=0; i--)
   {
      oField.removeChild(aOptions[i]);
   }
}

function changeFormAction(p_sAction)
{
    var oForm = document.getElementById("form_searchbar");

    if(oForm == null)
        return;

    var sAction = "";

    if(p_sAction != null)
        sAction = p_sAction;
    else
        sAction = sUrlSelf;

    sAction = sAction + sLanguage + "/";

    if(sCategoryA != "")
        sAction = sAction + sCategoryA + "/";

    if(sCategoryB != "")
        sAction = sAction + sCategoryB + "/";

    if(sCategoryC != "")
        sAction = sAction + sCategoryC + "/";

    oForm.action = sAction;

    //alert("action=" + sAction);
}

function initializeSearchbar(p_oSelect)
{
    if(p_oSelect == null)
        return;

    changeFormAction();
    
    receiveAjaxResponce();
}

function updateSearchbar(p_oSelect)
{
    if(p_oSelect == null)
        return;

    var nIndex = 0;

    if(p_oSelect.selectedIndex != null)
        nIndex = p_oSelect.selectedIndex;

    var oOptionSelected = p_oSelect.options[nIndex];

    if(oOptionSelected.className == "home")
    {
        aNavMain = null;
        aNavSub = null;

        sCategoryA = "";
        sCategoryB = "";
        sCategoryC = "";
        sCategoryBottom = "home";
    }
    else if(oOptionSelected.className == "main")
    {
        aNavMain = new Array(oOptionSelected.text, oOptionSelected.value, oOptionSelected.className);
        aNavSub = null;

        sCategoryA = oOptionSelected.value;
        sCategoryB = "";
        sCategoryC = "";
        sCategoryBottom = sCategoryA;
    }
    else if(oOptionSelected.className == "sub")
    {
        aNavSub = new Array(oOptionSelected.text, oOptionSelected.value, oOptionSelected.className);
        
        sCategoryB = oOptionSelected.value;
        sCategoryC = "";
        sCategoryBottom = sCategoryB;
    }
    else if(oOptionSelected.className == "subsub")
    {
        sCategoryC = oOptionSelected.value;
        sCategoryBottom = sCategoryC;
    }

    nParentId = oOptionSelected.id;

    changeFormAction();

    receiveAjaxResponce();
}

function receiveAjaxResponce()
{
    var xmlhttp;

    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            if(xmlhttp.responseText != "")
            {
                var aTmp = xmlhttp.responseText.split(':');
                var aSubCategories = new Array();

                for(var i = 0; i < aTmp.length; i++)
                    aSubCategories.push(aTmp[i].split(','));

                fillSelectField('search_categories', aSubCategories);
            }
        }
    }
    //alert(sCategoryBottom + ': ' + nParentId);
    try
    {
        xmlhttp.open("GET", sUrlSelf + "includes/update_searchbar.php?sCategoryBottom=" + sCategoryBottom + "&nParentId=" + nParentId + "&sLanguage=" + sLanguage, true);
        xmlhttp.send(null);
    }
    catch(e)
    {
        alert(e.description);
    }
}

