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.