$(document).ready(function () {

    function SubmitForm() {
        var searchvalue = jQuery("#searchField1").val();
        $("#searchField").val(searchvalue);
        $('form:first').submit();
    }

});

var EO = {
    handleSuggestionBox: function (suggestHitsJSON) {
        var popupStr = "";
        var streetBarShown = false;
        var suggestionData = JSON.parse(suggestHitsJSON);
        var i = 0;
        for (i = 0; i < suggestionData.length; i++) {
            if (!streetBarShown && suggestionData[i]['type'] === "postAddress") {
                popupStr += "<div class='suggestTitle'>Gata</div>";
                streetBarShown = true;
            }
            popupStr += "<div id='suggestHits1_suggest_row" + i + "' class='suggestHit' data-areaid='" + suggestionData[i]['id'] + "'>";
            popupStr += suggestionData[i]['suggestion'];
            if (suggestionData[i]['suggestionSynonym'] !== null) {
                popupStr += ", " + suggestionData[i]['suggestionSynonym'];
            } else if (suggestionData[i]['parentSynonym'] !== null) {
                popupStr += ", " + suggestionData[i]['parentSynonym'];
            }
            popupStr += "</div>";
        }
        if (suggestionData.length === 0) {
            popupStr += "<div class='padder'>Vi hittade inga områden med bostäder till salu. Har du stavat rätt?</div";
        }
        $("#suggestContent1").children().remove();
        $(popupStr).appendTo("#suggestContent1");
        $("#suggestHits1").attr("style", "position: absolute; top: 6px; z-index: 99;");
    }
};
           
            var Suggest = {
                    suggestSuccessCallback: function(o,n) {
                        EO.handleSuggestionBox(o);
                    }
            };

            $(function () {

                var first = true;
                var selectedSuggestion = -1;
                var searchParam = "";

                var booliServiceUrl = "http://api.booli.se/suggest/getSuggests"
                var booliQuery = "nrOfAreas=6&nrOfStreets=3&key=erikolsson.se&domain=erikolsson.se&reqId=1";

                function handleNewSearch(e) {
                    searchParam = $("#searchField1").val();
                    var jsonParams = booliQuery + "&suggestString=" + searchParam;

                    // Ajax               
                    $.ajax({
                        dataType: 'jsonp',
                        data: jsonParams,
                        jsonp: 'jsonp_callback',
                        url: booliServiceUrl,
                        success: function (msg) {
                            // do stuff
                            alert(msg);
                        },
                        failure: function (msg) {
                            alert("f " + msg);
                        }
                    });
                }

                function addToResultList(areaname) {
                    $("#searchField1").val('');
                    var divtoinsert = '<div class="searchitem">' + areaname + '</div>';
                    $("#areahitlist").append(divtoinsert);
                    $("#searchField1").focus();
                }

                $("#searchField1").bind('focus', function (e) {
                    if (first) {
                        $("#searchField1").val('');
                        first = false;
                    }
                });

                $("#searchField1").bind('dblclick', function (e) {
                    $("#searchField1").val('');
                });

                $("#searchField1").bind('click', function (e) {
                    $("#searchField1").val('');
                });


                $("#searchField1").bind('blur', function (e) {
                    if ($("#searchField1").val() == '') {
                        $("#searchField1").val('Gata, ort');
                    }
                });

                $("#searchField1").keydown(function (e) {
                    switch (e.keyCode) {
                        case 13: // Enter

                            // If textbox is not empty
                            if ($("#searchField1").val() != '') {


                                $("#suggestHits1").attr("style", "display:none");

                                if (selectedSuggestion === -1) {

                                    $("#searchField1").val(searchParam);

                                } else {

                                    var id = $($(".suggestHit").get(selectedSuggestion)).attr('data-areaid');
                                    $("#AreaID").val(id);
                                    $("#searchField1").val($($(".suggestHit").get(selectedSuggestion)).text());
                                    $("#searchField").val($($(".suggestHit").get(selectedSuggestion)).text());
                                    $("#searchField1").attr('disabled', 'disabled');
                                    $('form:first').submit();
                                }

                                return true;
                            }
                            else {

                                EOSearch();
                                return false;
                            }

                        case 38: // Upp-pil
                        case 40: // Ner-pil
                            if (e.keyCode === 38 && selectedSuggestion === 0) {
                                selectedSuggestion = -1;
                                $("#searchField1").val(searchParam);
                                $("#suggestHits1").attr("style", "display:none");
                                return true;
                            }
                            if (e.keyCode === 40 && selectedSuggestion === ($(".suggestHit").length - 1)) {
                                selectedSuggestion = -1;
                                $("#searchField1").val(searchParam);
                                $("#suggestHits1").attr("style", "display:none");
                                return true;
                            }
                            if (e.keyCode === 38) {
                                if (selectedSuggestion === -1) {
                                    selectedSuggestion = ($(".suggestHit").length - 1)
                                } else {
                                    selectedSuggestion--;
                                }
                            }
                            if (e.keyCode === 40) {
                                selectedSuggestion++;
                            }
                            $("#searchField1").val($($(".suggestHit").get(selectedSuggestion)).text());

                            $(".suggestHit").removeClass("highlight");
                            $("#suggestHits1_suggest_row" + selectedSuggestion).addClass("highlight");
                            return true;
                    }
                    selectedSuggestion = -1;
                    handleNewSearch(e);
                    return true;
                });

                $(".suggestHit").live('mouseover', function (e) {
                    $(this).addClass("highlight");
                });

                $(".suggestHit").live('mouseout', function (e) {
                    $(this).removeClass("highlight");
                });

                $(".suggestHit").live('mouseup', function (e) {

                    for (i = 0; i < $(".suggestHit").length; i++) {
                        if ($(this).text() === $($(".suggestHit").get(i)).text()) {
                            selectedSuggestion = i;
                            break;
                        }
                    }


                    var id = $($(".suggestHit").get(selectedSuggestion)).attr('data-areaid');
                    $("#AreaID").val(id);
                    $("#searchField1").val($($(".suggestHit").get(selectedSuggestion)).text());
                    $("#searchField").val($("#searchField1").val());
                    $('form:first').submit();
                });

                $(".suggestHit").live('touchstart touchmove touchend', function (e) {

                    for (i = 0; i < $(".suggestHit").length; i++) {
                        if ($(this).text() === $($(".suggestHit").get(i)).text()) {
                            selectedSuggestion = i;
                            break;
                        }
                    }

                    var id = $($(".suggestHit").get(selectedSuggestion)).attr('data-areaid');
                    $("#AreaID").val(id);
                    $("#searchField1").val($($(".suggestHit").get(selectedSuggestion)).text());
                    $("#searchField").val($("#searchField1").val());
                    $('form:first').submit();
                });



                $("body").bind('click', function (e) {
                    $("#suggestHits1").attr("style", "display:none");
                    //return false;
                });

            });
