﻿var timeoutID = 0;
var ul;
var liArray;
var selectedLink = -1;
var isVisible = false;
function onFilterTextChanged(e) {

    // Clear any delays

    if (timeoutID) {
        window.clearTimeout(timeoutID);
    }
    // Executes a code snippet or a function after specified delay
    if (isVisible) {
        var keynum;
        ul = $get("searchResults");
        liArray = ul.getElementsByTagName("li");


        if (window.event) {
            keynum = e.keyCode;
        }
        else if (e.which) {
            keynum = e.which;
        }
        if (keynum == 9) //TAB
        {
            var obj = document.getElementById('ctl00_SearchDiv');
            obj.style.display = 'none';
        }
        else if (keynum == 37) //LEFT
        {
            //DO NOTHING
        }
        else if (keynum == 38)//UP
        {
            moveUp();
        }
        else if (keynum == 39) //RIGHT
        {
            //DO NOTHING
        }
        else if (keynum == 40)//DOWN
        {
            moveDown();
        }
        else if (keynum == 13)//ENTER
        {
            redirectLink();
            return false;
        }
        else//EVERYTHING ELSE
        {
            selectedLink = -1;

            timeoutID = window.setTimeout(updateFilterText, 500);
        }
    }
    else {

        timeoutID = window.setTimeout(updateFilterText, 500);

    }
}

function updateFilterText() {
    var txtBox = $get('ctl00_txtSearch')
    var text = txtBox.value
    if (text.length > 2) {
        WebSearch.GetResults(text, window.location.href, onWSRequestComplete);
    }
    else {
        isVisible = false;
        var SearchResults = $get('ctl00_SearchDiv');
        SearchResults.style.display = 'none';
    }
}

function onWSRequestComplete(results) {
    isVisible = true;
    var SearchResults = $get('ctl00_SearchDiv');
    var SearchBox = $get('ctl00_txtSearch')

    // get the bounds of both the gridview and the progress div
    var textboxBounds = Sys.UI.DomElement.getBounds(SearchBox);


    //    set the progress element to this position
    var offset = 0;
    var browser = navigator.appName;
    if (browser == "Microsoft Internet Explorer") {
        offset = 12;
    }
    else {
        offset = 16;
    }

    SearchResults.innerHTML = results;
    Sys.UI.DomElement.setLocation(SearchResults, 532, textboxBounds.y + offset);
    //Animate the div
    $("#ctl00_SearchDiv").slideDown("slow");





}

function moveUp() {
    //If not the first result
    if (selectedLink > 0) {
        var i = selectedLink - 1;
        //If result is a header, move up one more 
        var className = liArray[i].className;
        if (className == 'searchHeader') {
            selectedLink = selectedLink - 1;
            //Makre sure selected result is not less then or equal to zero
            if (selectedLink <= 0) {
                selectedLink = selectedLink + 2;
            }
        }
        //Change css classes to corresponding selected class
        if (liArray[selectedLink - 1].className == 'searchItem') {
            liArray[selectedLink - 1].className = 'searchItemSelected';
        }
        else if (liArray[selectedLink - 1].className == 'searchMore') {
            liArray[selectedLink - 1].className = 'searchMoreSelected';
        }

        //Change previously selected result to the normal css class
        if (selectedLink >= 0 && className != 'searchHeader') {
            if (liArray[selectedLink].className == 'searchItemSelected') {
                liArray[selectedLink].className = 'searchItem';
            }
            else if (liArray[selectedLink].className == 'searchMoreSelected') {
                liArray[selectedLink].className = 'searchMore';
            }
        }
        else {
            if (selectedLink + 1 < liArray.length) {
                if (liArray[selectedLink + 1].className == 'searchItemSelected') {
                    liArray[selectedLink + 1].className = 'searchItem';
                }
                else if (liArray[selectedLink + 1].className == 'searchMoreSelected') {
                    liArray[selectedLink + 1].className = 'searchMore';
                }
            }
        }
        selectedLink = selectedLink - 1;
    }
}

function moveDown() {
    //If not the last result
    if (selectedLink != liArray.length - 1) {
        var i = selectedLink + 1;
        var className = liArray[i].className;
        //If result is a header, move down one more 
        if (className == 'searchHeader') {
            selectedLink = selectedLink + 1; ;
        }
        //Change css classes to corresponding selected class
        if (selectedLink != liArray.length - 1) {
            if (liArray[selectedLink + 1].className == 'searchItem') {
                liArray[selectedLink + 1].className = 'searchItemSelected';
            }
            else if (liArray[selectedLink + 1].className == 'searchMore') {
                liArray[selectedLink + 1].className = 'searchMoreSelected';
            }
            //Change previously selected result to the normal css class
            if (selectedLink >= 0 && className != 'searchHeader') {
                if (liArray[selectedLink].className == 'searchItemSelected') {
                    liArray[selectedLink].className = 'searchItem';
                }
                else if (liArray[selectedLink - 1].className == 'searchMoreSelected') {
                    liArray[selectedLink].className = 'searchMore';
                }
            }
            else {
                if (selectedLink - 1 > 0) {
                    if (liArray[selectedLink - 1].className == 'searchItemSelected') {
                        liArray[selectedLink - 1].className = 'searchItem';
                    }
                    else if (liArray[selectedLink - 1].className == 'searchMoreSelected') {
                        liArray[selectedLink - 1].className = 'searchMore';
                    }
                }
            }
            selectedLink = selectedLink + 1;
        }
    }
}
function redirectLink() {
    //Force the click event for the selected link
    liArray[selectedLink].click();
}


function check(e) {
    //If the page is clicked, hide all divs except for the ones that were clicked
    var target = (e && e.target) || (event && event.srcElement);

    //Search results
    var obj = document.getElementById('ctl00_SearchDiv');
    if (target != obj && isVisible == true) {
        isVisible = false;
        $("#ctl00_SearchDiv").slideUp("slow");
    }

    //Email Us
    var divEmail = document.getElementById('divEmailAddresses');
    var emailLink = document.getElementById('emailLink');
    if (target != emailLink) { $("#divEmailAddresses").slideUp("slow"); }

    //Phone Us
    var divPhone = document.getElementById('divPhoneNumbers');
    var phoneLink = document.getElementById('phoneLink');
    if (target != phoneLink) { $("#divPhoneNumbers").slideUp("slow"); }


}

function showEmail() {
    //Display email us div
    var email = $get('divEmailAddresses');
    Sys.UI.DomElement.setLocation(email, 513, 0);
    email.style.height = 'auto';
    $("#divEmailAddresses").slideDown("slow");
    return false;

}

function closeEmail() {
    //Hide email us div
    var email = $get('divEmailAddresses');
    $("#divEmailAddresses").slideUp("slow");
}

function showPhone() {
    //Show phone us div
    var phone = $get('divPhoneNumbers');
    Sys.UI.DomElement.setLocation(phone, 613, 0);
    phone.style.height = 'auto';
    $("#divPhoneNumbers").slideDown("slow");


}

function closePhone() {
    //Hide email us div
    var phone = $get('divPhoneNumbers');
    $("#divPhoneNumbers").slideUp("slow");
}

function redirectHome() {
    //Go to main page
    window.location = "../Default.aspx";
}

