$.fn.is_on_screen = function(){ var win = $(window); var viewport = { top : win.scrollTop(), left : win.scrollLeft() }; viewport.right = viewport.left + win.width(); viewport.bottom = viewport.top + win.height(); var bounds = this.offset(); bounds.right = bounds.left + this.outerWidth(); bounds.bottom = bounds.top + this.outerHeight(); return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom)); }; $.urlParam = function (name) { var results = new RegExp('[\?&]' + name + '=([^&#]*)') .exec(window.location.href); if (results == null) { return 0; } return results[1] || 0; } //console.log($.urlParam('saved')); //edit var search_query_string = ''; var current_page = 1; var is_search_loading = false; var $container = $('.masonry-container'); var isMasonryActive = false; var saved_search_active = $.urlParam('saved'); $(document).ready(function () { if ($('ul#refine-filters').length > 0 && $(document).width() >= 768) { $('ul#refine-filters > li[role="presentation"]').first().click(); $('a[href="#tab_refine-search"]').click(); } if ($(".vt-list").length > 0) //theme-builder { doMasonry(); $(".vt-list").click(function (e) { $('#view-type', $('#frm_search')).val($(this).attr('view-type')); doMasonry(); }); } if ($("#mobile-sort").length > 0) { $("#mobile-sort").change(function (e) { $('#sort').val($(this).val()); reset_page(1); }); } if ($("#sort").length > 0) { $("#sort").change(function (e) { reset_page(1); }); } update_search_filters(); expand_search_filters(); current_page = parseInt($('#page').val()); if($('#unit_infinite_scroll').val() == 1 ) //if disalbed from inventory setting page { $(window).on('resize scroll', function () { if(saved_search_active) return; if ($(this).scrollTop() > 220) { $('.back-to-top').fadeIn(500); } else { $('.back-to-top').fadeOut(500); } // refine_search_pos($(this).scrollTop()); if (parseInt($("#total_records").val()) == 0) return; if (is_search_loading) return; if( $('#scroll_position').length > 0 && $('#scroll_position').is_on_screen() ){ current_page++; do_search(current_page); } }); } $('.back-to-top').click(function (event) { event.preventDefault(); $('html, body').animate({scrollTop: 0}, 500); return false; }); $('.search-filter, .adv-filter').change(function () { reset_page(1); }); set_button_triggers(); $(document).on('click', 'a[target="_popup"]', function () { $('h4.modal-title', $('#modal_contact_form')).html($(this).text()); //fetch form details var form_url = $(this).attr('href') + "&form-type=inline&r=" + Math.random(); $("#div_contact_form").load(form_url, function () { // $('.g-recaptcha').each(function (key, val) { // var widgetId = grecaptcha.render('g-recaptcha_' + $(this).data('id'), { // 'sitekey': $(this).data('sitekey'), // 'theme': 'dark' // }); // $(this).data('widgetId', widgetId); // }); $('form.contact-form').submit(function (e) { e.preventDefault; var form_data = $(this).serializeArray(); save_form(form_data, $(this)); }); $('#modal_contact_form').modal('show'); }); return false; }); // if($.cookie(location.host) != 'undefined') // $(".js-saved-list").show(); // show_my_save_link(); $(".js-saved-list").click(function () { do_saved_search(); }); }); function doMasonry() { $('.widget-unit_listing').removeClass('unit-grid').removeClass('unit-list').addClass($('#view-type', $('#frm_search')).val()); $('ul.pagination li a').each(function (index, element) { var pagination_url = $(this).attr('href').replace('view-type=unit-list', '').replace('view-type=unit-grid', '').replace('?&', '?'); pagination_url += '&view-type=' + $('#view-type', $('#frm_search')).val(); $(this).attr('href', pagination_url.replace('&&', '&')); }); if ($('#view-type', $('#frm_search')).val() == 'unit-grid') { $container.imagesLoaded(function () { $container.masonry({ columnWidth: '.unit-box', itemSelector: '.unit-box' }); }); isMasonryActive = true; } else if ($('#view-type', $('#frm_search')).val() == 'unit-list' && isMasonryActive == true) { $container.masonry('destroy'); isMasonryActive = false; $('div.unit-box').removeAttr('style'); $('div.masonry-container').removeAttr('style'); } } function refine_search_pos(win_top) { if (win_top > 430) $("#refine-search").removeClass('ref-srch-reset').addClass('ref-srch-up'); else $("#refine-search").removeClass('ref-srch-up').addClass('ref-srch-reset'); } function post_search() { reset_page(1); return false; } function reset_page(page) { is_search_loading = false; current_page = parseInt(page); $('#page').val(page); search_query_string = built_search_query_string(); //console.log(search_query_string); //window.location.href = WS_PATH+"inventory/?"+search_query_string; window.location.href = $('#JS_VLP_URL_ID').val() + "/?" + search_query_string; } function built_search_query_string() { //console.clear(); var filter_string = ""; var arr_search_filters = []; var arr_adv_filters = []; arr_search_filters = $(".search-filter:checked").map(function () { return $(this).attr('fld'); }).get(); arr_adv_filters = $(".adv-filter:checked").map(function () { return $(this).attr('fld'); }).get(); arr_search_filters = $.unique(arr_search_filters); arr_adv_filters = $.unique(arr_adv_filters); $.each(arr_search_filters, function (i, val) { var list = $("input[name='" + val + "[]']:checked").map(function () { return $(this).val(); }).get().join('|'); if (list != '') { list = list.replace(/\s/g, "+"); list = list.replace('&', '%26'); filter_string += "&" + val + "=" + list; } }); $.each(arr_adv_filters, function (i, val) { var list = $("input[name='" + val + "[]']:checked").map(function () { return $(this).val(); }).get().join('|'); if (list != '') { list = list.replace(/\s/g, "+"); list = list.replace('&', '%26'); filter_string += "&" + val + "=" + list; } }); var query_string = ""; if ($.trim($("#q").val()) != '') query_string = "q=" + $("#q").val(); if( $.trim($("#q-max_weight").val()) != '' && !isNaN($.trim($("#q-max_weight").val())) ) query_string += "&q-max_weight="+$("#q-max_weight").val(); if ($.trim($("#sort").val()) != '') query_string += "&sort=" + $("#sort").val(); if ($.trim($("#view-type", $('#frm_search')).val()) != '') //theme-builder query_string += "&view-type=" + $("#view-type", $('#frm_search')).val(); query_string += filter_string; if (query_string.charAt(0) == '&') return query_string.substring(1); else return query_string; } function set_button_triggers() { $(".call-for-quoate").click(function () { $("#unit_id").val($(this).attr('unit_id')); $("#unit_name").val($(this).attr('unit_name')); $("#unit_code").val($(this).attr('unit_code')); $("#unit_url").val($(this).attr('unit_url')); }); } function update_search_filters() { var search_query_string = built_search_query_string(); var filtervars = { do_what: 'update_search_filters', lang: function () { //set for multilinugal site if (CLIENTS_LOCALE != '') { return _THEME_LANG; } else { return ''; } }, sold_listing:$('#sold_listing').val() }; $.ajax({ type: "POST", url: WS_PATH + "inventory/includes/search_ajax.php?r=" + Math.random() + "&" + search_query_string, data: filtervars, dataType: "html", success: function (html) { var updated_search_filters = $.parseJSON(html); if (typeof (updated_search_filters) == 'object') { $(".search-filter").each(function () { var s = $('span', $(this).parents('label')).html().replace(/\(.*?\)/g, "(0)"); $('span', $(this).parents('label')).html(s); }); $(".adv-filter").each(function () { var s = $('span', $(this).parents('label')).html().replace(/\(.*?\)/g, "(0)"); $('span', $(this).parents('label')).html(s); }); $.each(updated_search_filters, function (fldName, arrFilters) { $.each(arrFilters.opt, function (fldValue, fldData) { set_filter_counter(fldName, fldValue, fldData.CNT); }); }); } } }); } function set_filter_counter(fldName, fldValue, CNT) { if ($.isNumeric(fldValue)) var strFldVal = fldValue; else var strFldVal = fldValue.replace(/\\/g, "\\\\").replace(/'/g, "\\'"); var objFilter = $("input:checkbox[name='" + fldName + "[]'][value*='" + strFldVal + "']"); if ($('span', objFilter.parents('label')).length > 0) { var s = $('span', objFilter.parents('label')).html().replace(/\(.*?\)/g, "(" + CNT + ")"); $('span', objFilter.parents('label')).html(s); } } function expand_search_filters() { $('a[role="button"]', $(".search-filter:checked").parents('.panel')).click(); $('a[role="button"]', $(".adv-filter:checked").parents('.panel')).click(); } function ChangeUrl(title, url) { if (typeof (history.pushState) != "undefined") { var obj = {Title: title, Url: url}; history.pushState(obj, obj.Title, obj.Url.replace('&&', '&').replace("?&", "?")); } else { //alert("Browser does not support HTML5."); } } function do_search(page) { var last_page = (page - 1); var current_url = window.location.href; current_url = current_url.replace("page=" + page, "").replace("page=" + last_page, "").replace("page=" + (page + 1), "").replace("&&", "&").replace("?&", "?"); $('#page').val(page); search_query_string = built_search_query_string(); is_search_loading = true; //window.location.href = WS_PATH+"inventory/?page="+page+"&"+search_query_string; // window.location.href = $('#JS_VLP_URL_ID').val() + "/?page=" + page + "&" + search_query_string; $('#followingBallsG').removeClass("hide"); var filtervars = { do_what: 'do_search', page: page, sold_listing:$('#sold_listing').val() }; $.ajax({ type: "POST", url: WS_PATH + "inventory/includes/search_ajax.php?r=" + Math.random() + "&page=" + page + "&" + search_query_string, // url: $('#JS_VLP_URL_ID').val() + "/?page=" + page + "&" + search_query_string, // url: $('#JS_VLP_URL_ID').val() + "/?r=" + Math.random() + "&page=" + page + "&" + search_query_string, data: filtervars, dataType: "html", success: function (html) { // var arr_html = html.split('|'); // console.log(html); if (html != 'EOF') { if (current_url.indexOf("?") > -1) ChangeUrl(document.title, current_url + "&page=" + page); else ChangeUrl(document.title, current_url + "?page=" + page); $("#inventory-listing").append(html); $("#page-" + page).nextAll().hide().slideDown("slow"); $('#followingBallsG').addClass("hide"); is_search_loading = false; // tb_init($("#page-"+page).nextAll().find('a.thickbox')); update_search_filters(); set_button_triggers(); } else { $("#inventory-listing").append('

End of Results

'); $('#followingBallsG').addClass("hide"); } } }); } function do_saved_search() { saved_search_active = true; var unit_list = ''; unit_list = $.cookie(location.host); if (unit_list.substring(0, 1) == '|') { unit_list = unit_list.substring(1); } if (unit_list != '') window.location.href = $('#JS_VLP_URL_ID').val() + "/?saved=" + unit_list; else window.location.href = $('#JS_VLP_URL_ID').val() + "/?saved=0"; } function show_my_save_link() { var saved_list = $.cookie(location.host) var arr_unit_list = []; if (typeof saved_list != 'undefined' && saved_list.length > 0) { saved_list = saved_list.trim(); if (saved_list.substring(0, 1) == '|') { saved_list = saved_list.substring(1); } arr_unit_list = saved_list.split('|'); } // console.log(arr_unit_list.length); if (arr_unit_list.length > 0) { $(".js-saved-list").removeClass('hide'); } } $('.vlp-filter-clear').click( function(){ var id = $(this).data('key'); if(id == 'q' || id == 'q-max_weight'){ $('#'+id).val(''); $('#frm_search').submit(); }else{ $('#'+id).trigger('click'); } $(this).parent().remove(); }); $('.vlp-filter-clear-span').click( function(){ $('#vlp-filter-labels').html(''); window.location.href = $('#JS_VLP_URL_ID').val(); }); $('input[name=q]').autocomplete({ html: true, source: function(request, response) { $.ajax({ type: "POST", url: WS_PATH + "inventory/includes/search_ajax.php?r=" + Math.random(), dataType: "json", data: {do_what: 'do_keyword_search',q: request.term,sold_listing:$('#sold_listing').val()}, success: function(data) { response(data); } }); }, minLength: 3, classes: { "ui-autocomplete" : "suggested-search-ul" }, select: function(event, ui) { if (ui.item.ext != '') { window.location = ui.item.ext; } else if ( ui.item.value == 'error') { return $(this).val(''); } else { $(this).val(ui.item.value); $(this).closest("form").submit(); } } }); $[ "ui" ][ "autocomplete" ].prototype["_renderItem"] = function( ul, item) { return $( "
  • " ) .data( "item.autocomplete", item ) .append( $( "" ).html( item.label ) ) .appendTo( ul ); };