﻿function TechnologyPlatformChanged(displayIndex) {
    cmbProduct.BeginUpdate();
    cmbProduct.ClearItems();
    cmbProduct.AddItem(allProductsText, "0");

    var displayIndexParts = displayIndex.split("|");

    for (var prodIndex in ProductsList) {
        var prodIndexParts = prodIndex.split("|");
        if (prodIndexParts[0] != displayIndexParts[0]) continue;
        if (displayIndexParts.length == 1) {
        	cmbProduct.AddItem(ProductsList[prodIndex], prodIndexParts[2]);
        } else {
            if (prodIndexParts[1].indexOf(displayIndexParts[1]) >= 0) {
            	cmbProduct.AddItem(ProductsList[prodIndex], prodIndexParts[2]);
            }
        }
    }
    cmbProduct.SetSelectedIndex(0);
    cmbProduct.EndUpdate();

    if ((typeof cmbIDE == "undefined") || (cmbIDE == null)) return;
    var selectedIDE = cmbIDE.GetSelectedItem();
    cmbIDE.BeginUpdate();
    cmbIDE.ClearItems();
    var selectedTechnology = cmbTechnology.GetSelectedItem();
    for (var ideIndex in IDEList) {
        if ((selectedTechnology == null) || (IDEList[ideIndex] == "")
            || (IDEList[ideIndex] == selectedTechnology.value.split("|")[0])) {
            var ideIndexParts = ideIndex.split("|");
            cmbIDE.AddItem(ideIndexParts[1], ideIndexParts[0]);
        }
    }
    if (selectedIDE != null) {
        for (var i = 0; i < cmbIDE.GetItemCount(); i++) {
            if (cmbIDE.GetItem(i).value == selectedIDE.value) {
                cmbIDE.SetSelectedIndex(i);
                break;
            }
        }
    }
    cmbIDE.EndUpdate();
}

function InitializeSearchPanel() {
    var encodedSearch = "";
    if (document.location.hash.length > 1) {
        encodedSearch = document.location.hash.substr(1);
    }
    var decodedSearch = Base64Encoder.Decode(encodedSearch);
    var productLink = "";
    var searchText = "";
    var productLinkKey = "p=";
    var searchTextKey = "searchtext=";
    var productLinkKeyIndex = decodedSearch.indexOf(productLinkKey);
    var searchTextKeyIndex = decodedSearch.indexOf(searchTextKey);
    if ((productLinkKeyIndex >= 0) && (searchTextKeyIndex >= 0)) {
        var productLinkIndex = productLinkKeyIndex + productLinkKey.length;
        productLink = decodedSearch.substr(productLinkIndex, searchTextKeyIndex - productLinkIndex);
        var searchTextIndex = searchTextKeyIndex + searchTextKey.length;
        searchText = decodedSearch.substr(searchTextIndex);
    }

    var technology = "";
    var product = "";
    var separatorIndex = productLink.lastIndexOf('|');
    if(separatorIndex == -1) {
        technology = productLink;
    }
    else {
        technology = productLink.substring(0, separatorIndex);
        product = productLink.substring(separatorIndex + 1);
    }

    cmbTechnology.SetSelectedIndex(0);
    for (var i = 0; i < cmbTechnology.GetItemCount(); i++) {
        var item = cmbTechnology.GetItem(i);
        if (item.value == technology) {
            cmbTechnology.SetSelectedItem(item);
            TechnologyPlatformChanged(item.value);
            break;
        }
    }
    cmbProduct.SetSelectedIndex(0);
    for (var i = 0; i < cmbProduct.GetItemCount(); i++) {
        var item = cmbProduct.GetItem(i);
        if (item.value == product) {
            cmbProduct.SetSelectedItem(item);
            break;
        }
    }
    txtKeywords.SetText(searchText);
}

