var XmlHttpObj;
var temp;
function CreateXmlHttpObj()
{
    try
    {
        XmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
        try
        {
            XmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(oc)
        {
            XmlHttpObj = null;
        }
    }
    if(!XmlHttpObj && typeof XMLHttpRequest != "undefined")
    {
        XmlHttpObj = new XMLHttpRequest();
    }
}


function CategoryListOnChange()
{

    var categoryList = document.getElementById("category");
    var selectedCategory = categoryList.options[categoryList.selectedIndex].value;
    var subcategoryList = document.getElementById("subcategory");
    var selectedSubcategory = subcategoryList.options[subcategoryList.selectedIndex].value;
    //alert(selectedSubcategory);
    var requestUrl;
    requestUrl = "get_subcategories.php" + "?filter=" + selectedCategory + "subcat=" + selectedSubcategory;
    CreateXmlHttpObj();
    if(XmlHttpObj)
    {
        XmlHttpObj.onreadystatechange = StateChangeHandler;
        XmlHttpObj.open("GET", requestUrl,  true);
        XmlHttpObj.send(null);
    }
}

function StateChangeHandler()
{

    if(XmlHttpObj.readyState == 4)
    {
        if(XmlHttpObj.status == 200)
        {       //alert("hi2eeeS");
//alert(XmlHttpObj.responseText);
            PopulatesubcategoryList(XmlHttpObj.responseXML.documentElement);
        }
        else
        {
            alert("problem retrieving data from the server, status code: "  + XmlHttpObj.status);
        }
    }
}

function PopulatesubcategoryList(subcategoryNode)
{
    var subcategoryList = document.getElementById("subcategory");
    for (var count = subcategoryList.options.length-1; count >-1; count--)
    {

        subcategoryList.options[count] = null;
    }
    var subcategoryNodes = subcategoryNode.getElementsByTagName('subcategory');
    var idValue;
    var textValue;
    var optionItem;
    for (var count = 0; count < subcategoryNodes.length; count++)
    {
        textValue = GetInnerText(subcategoryNodes[count]);
        idValue = subcategoryNodes[count].getAttribute("id");
        optionItem = new Option( textValue, idValue,  false, false);
        subcategoryList.options[subcategoryList.length] = optionItem;
    }
}

function GetInnerText (node)
{
    return (node.textContent || node.innerText || node.text) ;
}
