﻿

//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
    }
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();


//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest(name, city, hoodID, catID) {
    if (searchReq.readyState == 4 || searchReq.readyState == 0) {
        var divSearchSuggestSub = document.getElementById('divSearchSuggestSub');
        if (name.length == 0) {
            hideSuggestions();
            return;
        } else divSearchSuggestSub.style.display = "block";
        var req = '/js/searchSuggest.aspx?city=' + city + '&name=' + name +
            "&hoodID=" + hoodID + "&catID=" + catID;
        //alert(req);
        searchReq.open("GET", req, true);
        //alert(str);
        searchReq.onreadystatechange = handleSearchSuggest;
        searchReq.send(null);
    }
}

// Called when Categories drop-down changes (new design)
function fetchAttributes(catID) {
    if (searchReq.readyState == 4 || searchReq.readyState == 0) {
        searchReq.open("GET", '/js/fetchAttributes.aspx?catID=' + catID, true);
        searchReq.onreadystatechange = handleFetchAttributes;
        searchReq.send(null);
    }
}

// Called when the Attributes fetch AJAX response is returned
function handleFetchAttributes() {
    if (searchReq.readyState == 4) {
        //alert("Attributes returned: " + searchReq.responseText);
        var arr = searchReq.responseText.split("\n");
        var ddAtts = document.getElementById("ctl00_ddAttribute");
        alert(ddAtts.options[0].text);
        ddAtts.options[0].text = "heyhey";
        alert(ddAtts.options[0].text);
        ddAtts.options[1] = new Option('foo', 'foo');

//        var optLength = ddAtts.options.length;
//        for (i = 0; i < optLength; i++) {
//            ddAtts.options[i] = null;
//        }

//        var optn;var parts;
//        for (i = 0; i < arr.length; i++) {
//            parts = arr[i].split("|");
//            optn = document.createElement("OPTION")
//            ddAtts.options.add(new Option(parts[0], parts[1]));
//        }
//        
    }

}

//function clearAttributes(ddAtts) {
//    for (var i = ddAtts.options.length - 1; i >= 0; i--) {
//        lstBox.options[i] = null;
//    }
//    lstBox.selectedIndex = -1;
//    return;
//}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
    if (searchReq.readyState == 4) {
        var divSearchSuggestSub = document.getElementById('divSearchSuggestSub')
        var lstSearchSuggest = document.getElementById('lstSearchSuggest')
        clearOptions(lstSearchSuggest);

        var str = searchReq.responseText.split("\n");
        var optn;
        for (i = 0; i < str.length ; i++) {
            optn = document.createElement("OPTION")
            lstSearchSuggest.options.add(new Option(str[i], str[i]));
        }
        if (i < 10) lstSearchSuggest.size = i;
        else lstSearchSuggest.size = 10;
        if (i == 0) hideSuggestions();
    }
}

function hideSuggestions() {

    //alert('hiding'); 
    
    var divSearchSuggestSub = document.getElementById('divSearchSuggestSub');
    divSearchSuggestSub.style.display = "none";

}

function setNameFieldValue(nameVal) {
    var txtName = document.getElementById(txtFieldID);

    txtName.value = nameVal;
   
    // hideSuggestions();

}

function clearOptions(lstBox) {
    for (var i = lstBox.options.length - 1; i >= 0; i--) {
        lstBox.options[i] = null;
    }
    lstBox.selectedIndex = -1;
    return;
}
