(function( $ ) {
    advancedSearchPop = function () {
        $("#lls-search-results-search-term").val($("#lls-id-search-terms").val());
    };
    advancedSearch = function () {

        var p = $(".advanced-search .form-group").position();
        var advancedSearch = $('.advanced-search p.big');
        advancedSearchWidth = advancedSearch.outerWidth();
        if (p.left > 40 || $(".advanced-search .form-group .search-terms").position().left > 40) {
            $("#advanced_terms").val($("#advanced-search-term-id").html());
            $("#looking_for").val($("#lookig-for-term-id").html());
            $("#advanced_terms1").val($("#advanced-search-term-id").html());
            $("#looking_for1").val($("#lookig-for-term-id").html());
            if (browser.isIe() && browser.getVersion() <= 9){
                $('input.search-terms').css("position", "relative");
                $('input.search-terms').css("left", advancedSearchWidth);
            }
        }
        else{
            $("#advanced_terms").val('');
            $("#looking_for").val('');
            $("#advanced_terms1").val('');
            $("#looking_for1").val('');
        }
        /*var searchTerms = el.find('input.search-terms');
        var advancedSearch = el.find('.advanced-search p.big');
        advancedSearchWidth = advancedSearch.outerWidth();
        if (browser.isIe() && browser.getVersion() <= 9){
            searchTerms.css("position", "relative");
            searchTerms.css("left", advancedSearchWidth);
        }*/

    };
    var browser = {
        isIe: function () {
            return navigator.appVersion.indexOf("MSIE") != -1;
        },
        navigator: navigator.appVersion,
        getVersion: function() {
            var version = 999; // we assume a sane browser
            if (navigator.appVersion.indexOf("MSIE") != -1)
            // bah, IE again, lets downgrade version number
                version = parseFloat(navigator.appVersion.split("MSIE")[1]);
            return version;
        }
    };
    disableAdvancedSearch = function () {
        var p = $(".advanced-search .form-group #lls-id-search-terms").position();
        //alert(p.left);
        if (p.left <= 40) {
            $("#advanced_terms").val('');
            $("#looking_for").val('');
            $("#advanced_terms1").val('');
            $("#looking_for1").val('');
        }
    };


    incrementNextPage = function(nextPage)
    {
        try
        {
            nextPage = parseInt(nextPage) + 1;
            $('#lls_search_next_page').val(nextPage);
        }
        catch(err)
        {
            nextPage = 3;
            $('#lls_search_next_page').val(nextPage);
        }

    }

    getNextPage = function()
    {
        try
        {
            var nextPage = $('#lls_search_next_page').val();
            return nextPage;
        }
        catch(err)
        {
            return 3;
        }
    }

    lls_search_init = function () {
        var firstPage = 1;
        incrementNextPage(firstPage);
        var loadingMoreResults = false;
        if(!($('#lls_search_loading_complete').length))
            $('#lls_search_more_results_div').removeClass('hidden');

        $('#lls_search_more_results_div').click(function (event) {
            event.preventDefault();
            if (loadingMoreResults)
                return;
            var nextPage = getNextPage();
            loadingMoreResults = true;
            $(this).addClass('hidden');
            var urlHost = Drupal.settings.lls_home_components.base_url;
            var currentSearchId = -1;
            //if ($.contains('lls_current_search_id', document.body))
            currentSearchId = $('#lls_current_search_id').val();
            $('#lls_search_loading_block').removeClass('hidden');
            callAjax(urlHost + '/lls-services/load_more_search_results/retrieve?search_id=' + currentSearchId +'&page_id='+nextPage, parseJsonSearchData, errorSearchCallBack);
            incrementNextPage(nextPage);
        });

        function parseJsonSearchData(data) {
            loadingMoreResults = false;
            $('#lls_search_loading_block').addClass('hidden');
            $('#lls_current_search_results').append(data);
            if(!($('#lls_search_loading_complete').length))
                $('#lls_search_more_results_div').removeClass('hidden');
        }

        function errorSearchCallBack(data) {

        }
    };

    $('form#lls_custom_search_2').submit(function() {
        var searchTerm = $('#lls-search-results-search-term').val();
        if(!validateSearchTerm(searchTerm))
            return false;

        $(':input', this).each(function() {
            this.disabled = !($(this).val());
        });
    });

    $('form#lls_mobile_search_form').submit(function() {
        var searchTerm = $('#lls_mobile_search_text_box').val();
        if(!validateSearchTerm(searchTerm))
            return false;

        $(':input', this).each(function() {
            this.disabled = !($(this).val());
        });
    });

    $('form#lls_search_form').submit(function() {
        var searchTerm = $('#lls-id-search-terms').val();
        if(!validateSearchTerm(searchTerm))
            return false;

        if(!searchTerm)
        {
            alert('Please enter a search term that is 3 characters long');
            return false;
        }
        if(searchTerm.trim().length < 3)
        {
            alert('Please enter a search term that is 3 characters long');
            return false;
        }


        $(':input', this).each(function() {
            this.disabled = !($(this).val());
        });
    });

    validateSearchTerm = function(str)
    {
        var validation_alert = $('#lls_search_validation_message').val();
        var validation_result = true;
        if(!str)
            validation_result = false;
        if(str.trim().length < 3)
            validation_result = false;

        if(!validation_result)
            alert(validation_alert);

        return validation_result;
    };
    if($(".module-search-bar:not(\'.mobile\')").find("input.search-terms").val() != ""){
        $(".module-search-bar:not(\'.mobile\')").addClass("focused").find("input.search-terms").focus()
    }
})(jQuery);

