Advertisement
Guest User

Untitled

a guest
Aug 21st, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1. var randomInteger = function (min, max) {
  2. return (Math.floor(min + Math.random() * (max + 1 - min)));
  3. };
  4.  
  5. var randomElementArray = function (arr) {
  6. return arr[randomInteger(0, arr.length - 1)];
  7. };
  8.  
  9. var generationSimilarAds = function (count) {
  10. var PRICE_MIN = 1000;
  11. var PRICE_MAX = 1000000;
  12. var ROOM_MIN = 1;
  13. var ROOM_MAX = 5;
  14. var QUESTS_MIN = 0;
  15. var QUESTS_MAX = 10;
  16. var pinLocation = {
  17. x: {
  18. min: 300,
  19. max: 900
  20. },
  21. y: {
  22. min: 100,
  23. max: 500
  24. }
  25. };
  26.  
  27. var TITLES = [
  28. 'Большая уютная квартира',
  29. 'Маленькая неуютная квартира',
  30. 'Огромный прекрасный дворец',
  31. 'Маленький ужасный дворец',
  32. 'Красивый гостевой домик',
  33. 'Некрасивый негостеприимный домик',
  34. 'Уютное бунгало далеко от моря',
  35. 'Неуютное бунгало по колено в воде'
  36. ];
  37.  
  38. var TIMES = [
  39. '12:00',
  40. '13:00',
  41. '14:00'
  42. ];
  43.  
  44. var TYPES = [
  45. 'flat',
  46. 'house',
  47. 'bungalow'
  48. ];
  49.  
  50. var FEATURES = [
  51. 'wifi',
  52. 'dishwasher',
  53. 'parking',
  54. 'washer',
  55. 'elevator',
  56. 'conditioner'
  57. ];
  58.  
  59. var similarAds = [];
  60.  
  61. for (var i = 0; i < count; i++) {
  62. var similarAd = {
  63. author: {
  64. avatar: 'img/avatars/user0' + (i + 1) + '.png'
  65. },
  66.  
  67. offer: {
  68. title: TITLES[i],
  69. address: this.location.x + ' ' + this.location.y,
  70. price: randomInteger(PRICE_MIN, PRICE_MAX),
  71. type: randomElementArray(TYPES),
  72. rooms: randomInteger(ROOM_MIN, ROOM_MAX),
  73. guests: randomInteger(QUESTS_MIN, QUESTS_MAX),
  74. checkin: randomElementArray(TIMES),
  75. checkout: randomElementArray(TIMES),
  76. features: FEATURES,
  77. description: '',
  78. photos: []
  79. },
  80.  
  81. location: {
  82. x: randomInteger(pinLocation.x.min, pinLocation.x.max),
  83. y: randomInteger(pinLocation.y.min, pinLocation.y.max)
  84. }
  85. };
  86.  
  87. similarAds.push(similarAd);
  88. }
  89.  
  90. return similarAds;
  91. };
  92.  
  93. var createDOMElementPin = function (ind) {
  94. var pin = document.createElement('div');
  95. var image = document.createElement('img');
  96. var data = similarAds[ind];
  97.  
  98. var pinPosition = {
  99. x: (data.location.x + (56 * 0.5)),
  100. y: (data.location.y + 75)
  101. };
  102.  
  103. pin.classList.add('pin');
  104. pin.style.left = pinPosition.x + 'px';
  105. pin.style.top = pinPosition.y + 'px';
  106.  
  107. image.src = data.author.avatar;
  108. image.classList.add('rounded');
  109. image.style.width = 40 + 'px';
  110. image.style.height = 40 + 'px';
  111.  
  112. pin.appendChild(image);
  113.  
  114. return pin;
  115. };
  116.  
  117. var addPinsPage = function () {
  118. var fragment = document.createDocumentFragment();
  119. var root = document.body.querySelector('.tokyo__pin-map');
  120.  
  121. for (var i = 0; i < similarAds.length; i++) {
  122. fragment.appendChild(createDOMElementPin(i));
  123. }
  124.  
  125. root.appendChild(fragment);
  126. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement