PageSourceSearch

https://www.nakheel.com/ResourcePackages/NakheelComponents/assets/…?package=NakheelComponents

js nakheel.com collected 2026-10-02 04:47:59 UTC 32,010 bytes, 903 lines download raw bytes

1var defaultQueryValue = 'All';
2var propertyAction = defaultQueryValue;
3var propertyType = defaultQueryValue;
4var bedroomCount = defaultQueryValue;
5var totalArea = defaultQueryValue;
6var projectProgressStatus = defaultQueryValue;
7var rentalRange = defaultQueryValue;
8var keyword = defaultQueryValue;
9var newLaunchesId = $('#newLaunchesId').val();// 'fce0ff79-5940-452e-b43c-349d3bea2fed';
10var nakheelProjectId = $('#nakheelProjectId').val();// '7208b083-cae9-4d0c-b29b-7d77fcde519b';
11var homeRentalId = $('#homeRentalId').val();// 'a1ffd6c2-730f-4201-bb1a-56c01310de74';
12var isDropDownFilled = 0;
13var pageSize = $("#pageSize").val();
14var totalCount = 0;
15var skip = 0;
16var take = pageSize;
17var pageNumber = 1;
18var isLastPage = false;
19var isLoadMoreItem = false;
20//?propertyAction=Buy&propertyType=9b15731d-7a8e-45b8-a7ac-a78a9dcfb1b9&bedroomCount=7338436d-c008-4a95-8518-9e2635cdbd46&totalArea=adf81c0b-c238-4973-98e9-0a5cf0617189&projectProgressStatus=40-70&keyword="Triangle"&page=1
21
22
23function renderMarkup(templateId, containerId, data) {
24    var template = document.getElementById(templateId).innerHTML;
25    var html = Mustache.to_html(template, data);
26    $('#' + containerId).append(html);
27
28    initializeCustomSelect();
29    $('.currency-amount').each(function () {
30        // Get the text within the div
31        let amountText = $(this).text();
32
33        // Remove the 'AED' symbol and any leading/trailing whitespace
34        amountText = amountText.replace('AED', '').trim();
35
36        // Parse the text as a number and format it with commas
37        let formattedAmount = parseFloat(amountText).toLocaleString('en-US');
38
39        // Add the 'AED' symbol back and update the div's text
40        $(this).text('AED ' + formattedAmount);
41    });
42}
43
44function initializeCustomSelect() {
45
46    $('.ajax-filter').each(function () {
47        var element = $(this);
48        var title = element.data('title');
49        element.multiselect('destroy');
50        element.multiselect({
51            nonSelectedText: title,
52            enableFiltering: false,
53            enableCaseInsensitiveFiltering: false,
54        });
55    });
56
57    waitForElement(); //Ahsan
58}
59
60function getParameterByName(name) {
61    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
62    var regexS = "[\\?&]" + name + "=([^&#]*)";
63    var regex = new RegExp(regexS);
64    var results = regex.exec(window.location.href);
65    if (results == null)
66        return "";
67    else
68        return decodeURIComponent(results[1].replace(/\+/g, " "));
69}
70function updateUrl() {
71    var propertyActionValue = getParameterByName('propertyAction');
72    if (propertyActionValue != "") {
73        propertyAction = propertyActionValue;
74    }
75    var propertyTypeValue = getParameterByName('propertyType');
76    if (propertyTypeValue != "") {
77        propertyType = propertyTypeValue;
78    }
79    var bedroomCountValue = getParameterByName('bedroomCount');
80    if (bedroomCountValue != "") {
81        bedroomCount = bedroomCountValue;
82    }
83    var totalAreaValue = getParameterByName('totalArea');
84    if (totalAreaValue != "") {
85        totalArea = totalAreaValue;
86    }
87    var projectProgressStatusValue = getParameterByName('projectProgressStatus');
88    if (projectProgressStatusValue != "") {
89        projectProgressStatus = projectProgressStatusValue;
90    }
91    var rentalRangeValue = getParameterByName('rentalRange');
92    if (rentalRangeValue != "") {
93        rentalRange = rentalRangeValue;
94    }
95    var keywordValue = getParameterByName('keyword');
96    if (keywordValue != "") {
97        keyword = keywordValue;
98    }
99
100    if (history.replaceState) {
101
102        var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname +
103            '?propertyAction=' + propertyAction + '&propertyType=' + propertyType + '&bedroomCount=' +
104            bedroomCount + '&totalArea=' + totalArea + '&projectProgressStatus=' +
105            projectProgressStatus + "&rentalRange=" + rentalRange + '&keyword=' + keyword;
106
107
108        window.history.replaceState({ path: newurl }, '', newurl);
109    }
110}
111
112function getKeywordFilterUrlPart() {
113    var filter = "";
114    var queryValue = getParameterByName('keyword');
115    var keywordValue = queryValue.trim();
116    if (queryValue != "" && queryValue != defaultQueryValue) {
117        filter = "contains(DisplayTitle,'" + keywordValue + "')";
118
119    }
120    return filter;
121}
122//function getProjectProgressStatusFilterUrlPart() {
123
124//    var filter = "";
125//    var queryValue = getParameterByName('projectProgressStatus');
126//    if (queryValue != "" && queryValue != defaultQueryValue) {
127
128//        queryArr = queryValue.split(',');
129//        if (queryArr.length < 1) {
130//            return "";
131//        }
132//        if (queryArr.length == 1) {
133//            var rangeArray = queryValue.split('-');
134//            var startRange = parseInt(rangeArray[0]);
135//            var endRange = parseInt(rangeArray[1]);
136//            if (startRange !== '' && startRange != undefined && !isNaN(startRange) && endRange !== '' && endRange != undefined && !isNaN(en
136dRange)) {
137//                filter = "(OverAllProjectProgressStatus ge " + startRange + " and OverAllProjectProgressStatus le " + endRange + ")";
138//            }
139//            return filter;
140//        }
141//        if (queryArr.length > 1) {
142//            var orValue = " or ";
143//            filter = "(";
144//            for (var i = 0; i < queryArr.length; i++) {
145//                if (queryArr.length - 1 == i) {
146//                    orValue = ")";
147//                }
148//                var rangeArray = queryArr[i].split('-');
149//                var startRange = parseInt(rangeArray[0]);
150//                var endRange = parseInt(rangeArray[1]);
151//                if (startRange !== '' && startRange != undefined && !isNaN(startRange) && endRange !== '' && endRange != undefined && !isNaN(endRange)) {
152//                    filter += "(OverAllProjectProgressStatus ge " + startRange + " and OverAllProjectProgressStatus le " + endRange + ")" + orValue;
153//                }
154//            }
155//        }
156
157//    }
158//    return filter;
159//}
160//function getHomeRentalFilterUrlPart() {
161
162//    var filter = "";
163//    var queryValue = getParameterByName('rentalRange');
164//    if (queryValue != "" && queryValue != defaultQueryValue) {
165
166//        queryArr = queryValue.split(',');
167//        if (queryArr.length < 1) {
168//            return "";
169//        }
170//        if (queryArr.length == 1) {
171//            var rangeArray = queryValue.split('-');
172//            var startRange = parseInt(rangeArray[0]);
173//            var endRange = parseInt(rangeArray[1]);
174//            if (startRange !== '' && startRange != undefined && !isNaN(startRange) && endRange !== '' && endRange != undefined && !isNaN(endRange)) {
175//                filter = "(RentalRange ge " + startRange + " and RentalRange le " + endRange + ")";
176//            }
177//            return filter;
178//        }
179//        if (queryArr.length > 1) {
180//            var orValue = " or ";
181//            filter = "(";
182//            for (var i = 0; i < queryArr.length; i++) {
183//                if (queryArr.length - 1 == i) {
184//                    orValue = ")";
185//                }
186//                var rangeArray = queryArr[i].split('-');
187//                var startRange = parseInt(rangeArray[0]);
188//                var endRange = parseInt(rangeArray[1]);
189//                if (startRange !== '' && startRange != undefined && !isNaN(startRange) && endRange !== '' && endRange != undefined && !isNaN(endRange)) {
190//                    filter += "(RentalRange ge " + startRange + " and RentalRange le " + endRange + ")" + orValue;
191//                }
192//            }
193//        }
194
195//    }
196//    return filter;
197//}
198//function getTotalAreaFilterUrlPart() {
199//    var filter = "";
200//    var queryValue = getParameterByName('totalArea');
201//    if (queryValue != "" && queryValue != defaultQueryValue) {
202
203//        queryArr = queryValue.split(',');
204//        if (queryArr.length < 1) {
205//            return "";
206//        }
207//        if (queryArr.length == 1) {
208//            var rangeArray = queryValue.split('-');
209//            var startRange = parseInt(rangeArray[0]);
210//            var endRange = parseInt(rangeArray[1]);
211//            if (startRange !== '' && startRange != undefined && !isNaN(startRange) && endRange !== '' && endRange != undefined && !isNaN(endRange)) {
212//                filter = "(PropertyArea/any(propArea:propArea/Area ge " + startRange + ")" + " and PropertyArea/any(propArea:propArea/Area le " + endRange + "))";
213//            }
214
215//            return filter;
216//        }
217//        if (queryArr.length > 1) {
218//            var orValue = " or ";
219//            filter = "(";
220//            for (var i = 0; i < queryArr.length; i++) {
221//                if (queryArr.length - 1 == i) {
222//                    orValue = ")";
223//                }
224//                var rangeArray = queryArr[i].split('-');
225//                var startRange = parseInt(rangeArray[0]);
226//                var endRange = parseInt(rangeArray[1]);
227//                if (startRange !== '' && startRange != undefined && !isNaN(startRange) && endRange !== '' && endRange != undefined && !isNaN(en
227dRange)) {
228//                    filter += "(PropertyArea/any(propArea:propArea/Area ge " + startRange + ")" + " and PropertyArea/any(propArea:propArea/Area le " + endRange + "))" + orValue;
229//                }
230//            }
231//        }
232//    }
233//    return filter;
234//}
235function getProjectProgressStatusFilterUrlPart() {
236
237    var filter = "";
238    var queryValue = getParameterByName('projectProgressStatus');
239    if (queryValue != "" && queryValue != defaultQueryValue) {
240
241        queryArr = queryValue.split(',');
242        if (queryArr.length < 1) {
243            return "";
244        }
245        if (queryArr.length == 1) {
246            filter = "RelatedProjectProgress/any(projectProgress:projectProgress/UrlName eq '" + queryValue + "')";
247            return filter;
248        }
249        if (queryArr.length > 1) {
250            var orValue = " or ";
251            filter = "(";
252            for (var i = 0; i < queryArr.length; i++) {
253                if (queryArr.length - 1 == i) {
254                    orValue = ")";
255                }
256                filter += "RelatedProjectProgress/any(rentalRange:rentalRange/UrlName eq '" + queryArr[i] + "')" + orValue;
257            }
258        }
259
260    }
261    return filter;
262}
263function getHomeRentalFilterUrlPart() {
264
265    var filter = "";
266    var queryValue = getParameterByName('rentalRange');
267    if (queryValue != "" && queryValue != defaultQueryValue) {
268
269        queryArr = queryValue.split(',');
270        if (queryArr.length < 1) {
271            return "";
272        }
273        if (queryArr.length == 1) {
274            filter = "RentalRangeList/any(rentalRange:rentalRange/UrlName eq '" + queryValue + "')";
275            
276            return filter;
277        }
278        if (queryArr.length > 1) {
279            var orValue = " or ";
280            filter = "(";
281            for (var i = 0; i < queryArr.length; i++) {
282                if (queryArr.length - 1 == i) {
283                    orValue = ")";
284                }
285                filter += "RentalRangeList/any(rentalRange:rentalRange/UrlName eq '" + queryArr[i] + "')" + orValue;
286            }
287        }
288
289    }
290    return filter;
291}
292function getTotalAreaFilterUrlPart() {
293    var filter = "";
294    var queryValue = getParameterByName('totalArea');
295    if (queryValue != "" && queryValue != defaultQueryValue) {
296
297        queryArr = queryValue.split(',');
298        if (queryArr.length < 1) {
299            return "";
300        }
301        if (queryArr.length == 1) {
302            filter = "PropertyArea/any(propArea:propArea/UrlName eq '" + queryValue + "')";
303
304            return filter;
305        }
306        if (queryArr.length > 1) {
307            var orValue = " or ";
308            filter = "(";
309            for (var i = 0; i < queryArr.length; i++) {
310                if (queryArr.length - 1 == i) {
311                    orValue = ")";
312                }
313                filter += "PropertyArea/any(PropertyArea:PropertyArea/UrlName eq '" + queryArr[i] + "')" + orValue;
314            }          
315            }
316        
317    }
318    return filter;
319}
320function getPropertyTypeFilterUrlPart() {
321    var filter = "";
322    var queryValue = getParameterByName('propertyType');
323    if (queryValue != "" && queryValue != defaultQueryValue) {
324        queryArr = queryValue.split(',');
325        if (queryArr.length < 1) {
326            return "";
327        }
328        if (queryArr.length == 1) {
329            filter = "ProjectType/any(projectType:projectType/UrlName eq '" + queryValue + "')";
330            return filter;
331        }
332        if (queryArr.length > 1) {
333            var orValue = " or ";
334            filter = "(";
335            for (var i = 0; i < queryArr.length; i++) {
336                if (queryArr.length - 1 == i) {
337                    orValue = ")";
338                }
339                filter += "ProjectType/any(projectType:projectType/UrlName eq '" + queryArr[i] + "')" + orValue;
340            }
341        }
342
343    }
344    return filter;
345}
346function getPropertyActionFilterUrlPart() {
347    var filter = "";
348    //We are only using Buy option in filter query string for this filter is longer valid
349    var queryValue = "Buy";//getParameterByName('propertyAction');
350    
351    if (queryValue != "" && queryValue != defaultQueryValue) {
352        if (queryValue == "Buy" || queryValue == "buy") {
353            filter = "(developmenttype/any(devType:devType eq " + newLaunchesId + ")" + " or developmenttype/any(devTypeTwo:devTypeTwo eq " + nakheelProjectId + "))";
354        }
355        //else if (queryValue == "Rent" || queryValue == "rent") {
356        //    filter = "developmenttype/any(devType:devType eq " + homeRentalId + ")";
357        //}
358    }
359    return filter;
360}
361function getBedroomCountFilterUrlPart() {
362    var filter = "";
363
364    var queryValue = getParameterByName('bedroomCount');
365    if (queryValue != "" && queryValue != defaultQueryValue) {
366        queryArr = queryValue.split(',');
367        if (queryArr.length < 1) {
368            return "";
369        }
370        if (queryArr.length == 1) {
371            filter = "NumberOfBedrooms/any(bedroom:bedroom/UrlName eq '" + queryValue + "')";
372            return filter;
373        }
374        if (queryArr.length > 1) {
375            var orValue = " or ";
376            filter = "(";
377            for (var i = 0; i < queryArr.length; i++) {
378                if (queryArr.length - 1 == i) {
379                    orValue = ")";
380                }
381                filter += "NumberOfBedrooms/any(bedroom:bedroom/UrlName eq '" + queryArr[i] + "')" + orValue;
382            }
383        }
384    }
385    return filter;
386}
387function getUrlFilterPart() {
388    var filterUrlPart = "";
389    var filterUrl = "";
390    var andValue = " and ";
391    var isFilterExist = false;
392    var isMoreFilterExist = false;
393    var bedroom = getBedroomCountFilterUrlPart();
394    var area = getTotalAreaFilterUrlPart();
395    var type = getPropertyTypeFilterUrlPart();
396    var keyword = getKeywordFilterUrlPart();
397    var progress = getProjectProgressStatusFilterUrlPart();
398    var rent = getHomeRentalFilterUrlPart();
399    var action = getPropertyActionFilterUrlPart();
400    if (bedroom != "") {
401        filterUrlPart += bedroom;
402        isFilterExist = true;
403        if (isFilterExist) {
404            isMoreFilterExist = true;
405        }
406
407    }
408    if (area != "") {
409        if (isMoreFilterExist) {
410            filterUrlPart += andValue;
411        }
412        filterUrlPart += area;
413        isFilterExist = true;
414        if (isFilterExist) {
415            isMoreFilterExist = true;
416        }
417
418    }
419    if (type != "") {
420        if (isMoreFilterExist) {
421            filterUrlPart += andValue;
422        }
423        filterUrlPart += type;
424        isFilterExist = true;
425        if (isFilterExist) {
426            isMoreFilterExist = true;
427        }
428
429    }
430    if (keyword != "") {
431        if (isMoreFilterExist) {
432            filterUrlPart += andValue;
433        }
434        filterUrlPart += keyword;
435        isFilterExist = true;
436        if (isFilterExist) {
437            isMoreFilterExist = true;
438        }
439
440    }
441    if (progress != "") {
442        if (isMoreFilterExist) {
443            filterUrlPart += andValue;
444        }
445        filterUrlPart += progress;
446        isFilterExist = true;
447        if (isFilterExist) {
448            isMoreFilterExist = true;
449        }
450
451    }
452    if (rent != "") {
453        if (isMoreFilterExist) {
454            filterUrlPart += andValue;
455        }
456        filterUrlPart += rent;
457        isFilterExist = true;
458        if (isFilterExist) {
459            isMoreFilterExist = true;
460        }
461
462    }
463    if (action != "") {
464        if (isMoreFilterExist) {
465            filterUrlPart += andValue;
466        }
467        filterUrlPart += action;
468        isFilterExist = true;
469        if (isFilterExist) {
470            isMoreFilterExist = true;
471        }
472    }
473    if (isFilterExist) {
474        filterUrl = "$filter=(" + filterUrlPart + ")&";
475    }
476    return filterUrl;
477}
478function getBedroomCountListingData() {
479
480    var listUrlPath = "/api/nakheelcorporate/projectbedroomscounts?sf_provider=nakheelcorporateprojectbedroomscount&$OrderBy=SortOrder";
481    $.ajax({
482        type: "Get",
483        url: listUrlPath,
484        contentType: "application/json;",
485        sync: true,
486        datatype: "json",
487
488        success: function (response) {
489
490            if (response != null && response.value != null && response.value.length > 0) {
491                renderMarkup("bedroomCountTemplate", "bedroomCountList", response.value);
492                isDropDownFilled++;
493            }
494
495        }, error: function (xhr, ajaxOptions, thrownError) {
496            console.log(thrownError);
497        }
498    });
499}
500function getPropertyTypeListingData() {
501
502    var listUrlPath = "/api/nakheelcorporate/nakheelprojecttypes?sf_provider=nakheelcorporatenakheelprojecttypes&$OrderBy=SortOrder";
503    $.ajax({
504        type: "Get",
505        url: listUrlPath,
506        contentType: "application/json;",
507        sync: true,
508        datatype: "json",
509
510        success: function (response) {
511
512            if (response != null && response.value != null && response.value.length > 0) {
513                renderMarkup("propertyTypeTemplate", "PropertyTypeList", response.value);
514                isDropDownFilled++;
515            }
516
517        }, error: function (xhr, ajaxOptions, thrownError) {
518            console.log(thrownError);
519        }
520    });
521}
522function getRentalRangeListingData() {
523
524    var listUrlPath = "/api/nakheelcorporate/projectrentalranges?sf_provider=nakheelcorporateprojectrentalranges&$OrderBy=SortOrder";
525    $.ajax({
526        type: "Get",
527        url: listUrlPath,
528        contentType: "application/json;",
529        sync: true,
530        datatype: "json",
531
532        success: function (response) {
533
534            if (response != null && response.value != null && response.value.length > 0) {
535                renderMarkup("rentalRangeListTemplate", "rentalRangeList", response.value);
536                isDropDownFilled++;
537            }
538
539        }, error: function (xhr, ajaxOptions, thrownError) {
540            console.log(thrownError);
541        }
542    });
543}
544function getPropertyAreaListingData() {
545
546    var listUrlPath = "/api/nakheelcorporate/propertyareas?sf_provider=nakheelcorporatepropertyarea&$OrderBy=SortOrderNumber";
547    $.ajax({
548        type: "Get",
549        url: listUrlPath,
550        contentType: "application/json;",
551        sync: true,
552        datatype: "json",
553
554        success: function (response) {
555
556            if (response != null && response.value != null && response.value.length > 0) {
557                renderMarkup("propertyAreaTemplate", "propertyAreaList", response.value);
558                isDropDownFilled++;
559            }
560
561        }, error: function (xhr, ajaxOptions, thrownError) {
562            console.log(thrownError);
563        }
564    });
565}
566function getProjectProgressStatusListingData() {
567
568    var listUrlPath = "/api/nakheelcorporate/projectprogressstatus?sf_provider=nakheelcorporateprojectprogressstatuses&$OrderBy=SortOrder";
569    $.ajax({
570        type: "Get",
571        url: listUrlPath,
572        contentType: "application/json;",
573        sync: true,
574        datatype: "json",
575
576        success: function (response) {
577
578            if (response != null && response.value != null && response.value.length > 0) {
579                renderMarkup("overallProjectStatusListTemplate", "overallProjectStatusList", response.value);
580                isDropDownFilled++;
581            }
582
583        }, error: function (xhr, ajaxOptions, thrownError) {
584            console.log(thrownError);
585        }
586    });
587}
588function resetPagingInfo() {
589     pageSize = $("#pageSize").val();
590     totalCount = 0;
591     skip = 0;
592     take = pageSize;
593     pageNumber = 1;
594    isLastPage = false;
595    isLoadMoreItem = false;
596}
597function loadMoreItems() {
598    if (totalCount > 0 && !isLastPage && totalCount > pageSize) {
599        pageNumber++;
600        if (totalCount < pageSize) {
601            pageSize = totalCount;
602        }
603        var totalPages = Math.ceil(totalCount / pageSize);
604        var page = pageNumber;
605
606        var skiptCount = page == 0 ? 0 : ((page - 1) * pageSize);
607        var takeCount = pageSize
608
609        skip = skiptCount;
610        take = takeCount;
611
612
613        if (totalPages <= page || totalCount == 0) {
614            isLastPage = true;
615        }
616        isLoadMoreItem = true;
617        getListingData();
618    }
619}
620
621function getPagingPart() {
622    return '&$skip=' + skip + '&$top=' + take;
623}
624
625function getListingData() {
626    var listUrlPath = "/api/nakheelcorporate/nakheelprojects?sf_provider=nakheelcorporatenakheelprojects&" + getUrlFilterPart() + "$select=*&$Expand=RentalRangeList,RelatedProjectProgress,NumberOfBedrooms,Image,PropertyArea,DetailPageLink,ProjectType&$Count=true" + getCulture() + getPagingPart();
627    $.ajax({
628        type: "Get",
629        url: listUrlPath,
630        contentType: "application/json;",
631        sync: true,
632        datatype: "json",
633
634        success: function (response) {
635
636            if (response != null && response.value != null && response.value.length > 0) {                
637                if (!isLoadMoreItem) {
638                    $("#filterListing").html("");
639                }
640                
641                renderMarkup("propertyListingTemplate", "filterListing", response.value);
642                var propAction = getParameterByName('propertyAction');
643                if (propAction == "rent" || propAction == "Rent") {
644                    $(".OverAllProjectProgressStatus").hide();
645                    $(".RentalRange").show();
646                }
647                else {
648                    $("#OverAllProjectProgressStatus").show();
649                    $("#RentalRange").hide();
650                }
651
652                $("#itemCount").text(response['@odata.count']);
653                totalCount = response['@odata.count'];
654            }
655            else {
656                if (!isLoadMoreItem) {
657                    $("#filterListing").html("");
658                }
659                $("#itemCount").text("0");
660            }
661        }, error: function (xhr, ajaxOptions, thrownError) {
662            console.log(thrownError);
663            $('#filterListing').html("");
664            $("#itemCount").text("0");
665        }
666    });
667}
668
669function getCulture() {
670    var culture = "en";
671    if ($('html')[0].lang != "" && $('html')[0].lang != undefined) {
672        culture = $('html')[0].lang;
673    }
674    return "&sf_culture=" + culture;
675}
676
677function waitForElement() {
678    if (isDropDownFilled === 5) {
679        passQueryValuesToFilter();
680    }
681    else {
682        setTimeout(waitForElement, 250);
683    }
684}
685
686function passQueryValuesToFilter() {
687
688    var id = '';
689    var isRange = false;
690    var query = 'propertyType';
691    var div = "divPropertyTypeList";
692    passQueryToFilterValues(query, isRange, id, div);
693
694    query = 'bedroomCount';
695    div = "divBedroomCountList";
696    passQueryToFilterValues(query, isRange, id, div);
697
698    query = 'totalArea';
699    isRange = false;
700    id = 'propertyAreaList';
701    div = "divPropertyAreaList";
702    passQueryToFilterValues(query, isRange, id, div);
703
704    query = 'projectProgressStatus';
705    id = 'overallProjectStatusList';
706    div = "divOverallProjectStatusList";
707    passQueryToFilterValues(query, isRange, id, div);
708
709    query = 'rentalRange';
710    id = 'rentalRangeList';
711    div = "divRentalRangeList";
712    passQueryToFilterValues(query, isRange, id, div);
713
714    var propertyActionValue = getParameterByName('propertyAction');
715    if (propertyActionValue != "") {
716        $('input[name=flexRadioDefault][value=' + propertyActionValue + ']').prop("checked", true);
717    }
718    var keywordValue = getParameterByName('keyword');
719    if (keywordValue != "" && keywordValue != defaultQueryValue) {
720        $('#searchKeyWord').val(keywordValue);
721    }
722}
723
724
725function passQueryToFilterValues(query, isRange, id, div) {
726    var queryValue = getParameterByName(query);
727    var queryArr = [];
728    if (queryValue != "" && queryValue != defaultQueryValue) {
729
730        if (isRange) {
731            var rangeArr = queryValue.split(',');
732            for (var i = 0; i < rangeArr.length; i++) {
733                var content = rangeArr[i];
734                queryArr.push(getDropDownOptionValue(id, content));
735            }
736        }
737        else {
738            queryArr = queryValue.split(',');
739        }
740
741        setFilterValues(queryArr, div)
742    }
743
744}
745
746
747function getDropDownOptionValue(id, content) {
748
749    return $("#" + id + " option[data-content='" + content + "']").val();
750}
751
752function getDropDownOptionContent(id, value) {
753
754    return $("#" + id + " option[value='" + value + "']").data('content');
755}
756function getFilterValues() {
757    var propAction = $("input[name='flexRadioDefault']:checked").val();
758    if (propAction == '' || propAction == undefined) {
759        propAction = "All";
760    }
761
762    var propType = $('#divPropertyTypeList ul .active input').map(function (i, opt) { return $(opt).val(); }).toArray().join(',');
763    if (propType == '' || propType == undefined) {
764        propType = "All";
765    }
766
767    var bedroomCount = $('#divBedroomCountList ul .active input').map(function (i, opt) { return $(opt).val(); }).toArray().join(',');
768    if (bedroomCount == '' || bedroomCount == undefined) {
769        bedroomCount = "All";
770    }
771    var id = 'propertyAreaList';
772    var totalArea = $('#divPropertyAreaList ul .active input').map(function (i, opt) { return $(opt).val(); }).toArray().join(',');
773    if (totalArea == '' || totalArea == undefined) {
774        totalArea = "All";
775    }
776    id = 'overallProjectStatusList';
777    var projectProgressStatus = $('#divOverallProjectStatusList ul .active input').map(function (i, opt) { return $(opt).val(); }).toArray().join(',');
778    if (projectProgressStatus == '' || projectProgressStatus == undefined || propAction == "Rent") {
779        projectProgressStatus = "All";
780    }
781    id = 'rentalRangeList';
782    var rentalRange = $('#divRentalRangeList ul .active input').map(function (i, opt) { return $(opt).val(); }).toArray().join(',');
783    if (rentalRange == '' || rentalRange == undefined || propAction == "Buy") {
784        rentalRange = "All";
785    }
786    var keyword = $('#searchKeyWord').val();
787    if (keyword == '' || keyword == undefined) {
788        keyword = "All";
789    }
790    var link = "?propertyAction=" + propAction + "&propertyType=" + propT
790ype +
791        "&bedroomCount=" + bedroomCount + "&totalArea=" + totalArea + "&projectProgressStatus=" + projectProgressStatus + "&rentalRange=" + rentalRange + "&keyword=" + keyword;
792    return link;
793}
794function updateUrlOnFilter() {
795    var query = getFilterValues();
796    if (history.replaceState) {
797
798        var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + query
799
800
801        window.history.replaceState({ path: newurl }, '', newurl);
802        resetPagingInfo();
803        getListingData();
804    }
805}
806
807function setFilterValues(selectedArray, div) {
808
809    // const selectedArray = ['9aae9ab8-a243-4c0d-abac-d7d3be85841d', '6de65576-d1e0-44fd-a4fb-02b22a5e8b0c', '3d444602-fc19-41b5-8345-62e304c2683b'];
810    var count = 0;
811    var selectedValues = '';
812    const dropdownContainer = $('.multiselect-container');
813    dropdownContainer.each((index, item) => {
814        $(item).find('li').each((index2, list) => {
815            $.each(selectedArray, function (index3, matchArray) {
816                if ($(list).find('input').val() === matchArray) {
817                 $(list).addClass('active').find('input').prop('checked', true);
818               
819                    //Ahsan
820                    selectedValues += $(list).find('label').text() + ",";
821                    count++;
822                }
823            });
824        });
825    });
826
827
828    if (count != 0) {
829        //console.log(selectedValues);
830        $("#" + div + " .multiselect-selected-text").text(selectedValues.replace(/,\s*$/, "")); //Ahsan
831        //$("#" + div + " .multiselect-selected-text").text($(count + " " + "#selectedText"));
832    }
833}
834$("input[name='flexRadioDefault']").change(function () {
835    var propAction = $("input[name='flexRadioDefault']:checked").val();
836    showHideRentalRange(propAction);
837});
838
839$('#SearchProperties').click(function () {
840    updateUrlOnFilter();
841});
842function showHideRentalRange(propAction) {
843    // var propAction = getParameterByName('propertyAction');
844    //var propAction = $("input[name='flexRadioDefault']:checked").val();
845    var rent = $("#divRentalRangeList");
846    var buyOne = $("#divOverallProjectStatusList");
847    if (propAction == "Rent" || propAction ==defaultQueryValue) {
848        rent.addClass("d-block");
849        rent.removeClass("d-none");
850        buyOne.addClass("d-none");
851        buyOne.removeClass("d-block");
852    }
853    else if (propAction == "Buy") {
854        buyOne.addClass("d-block");
855        buyOne.removeClass("d-none");
856        rent.addClass("d-none");
857        rent.removeClass("d-block");
858    }
859}
860$(window).scroll(function () {
861     
862      loadMoreItems()
863
864});
865$(document).ready(function () {
866    var propAction = getParameterByName('propertyAction');
867    showHideRentalRange(propAction);
868    getBedroomCountListingData();
869    getPropertyTypeListingData();
870    getRentalRangeListingData();
871    getPropertyAreaListingData();
872    getProjectProgressStatusListingData();
873    // multiselect filters init
874    $('.custom-select').each(function () {
875        var element = $(this);
876        var title = element.data('title');
877        element.multiselect('destroy');
878        element.multiselect({
879            nonSelectedText: title,
880            enableFiltering: false,
881            enableCaseInsensitiveFiltering: false,
882        });
883    });
884    //$('.custom-select').multiselect({
885    //    nonSelectedText: 'Select Framework',
886    //    enableFiltering: false,
887    //    enableCaseInsensitiveFiltering: false,
888    //});
889    $(document).on('click', '.multiselect', function () {
890        // $('.btn-group')
891        $(this).parent().toggleClass('open')
892    })
893    $('body').on('click', '*:not( .dropdown-menu )', function () {
894        $('.btn-group').removeClass('open')
895    });
896
897    // multiselect filters init ends
898    updateUrl();
899    getListingData();
900    waitForElement();
901});
902
903

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.