sugession.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. /*Main sugession manager*/
  2. var tagTemplate = '<small class="sugessionTag" data-value="[tagValue]">[tagLabel] <a href="javascript:;" onclick="sugessionDeleteTag(this)"><i class="fas fa-times-circle"></i></a></small>';
  3. var initEvent = false;
  4. var counterhowmany = 0;
  5. function sgShowLayer() {
  6. $('.sugessionLayer').show();
  7. $('.placeholder').remove();
  8. }
  9. function sgHideLayer() {
  10. //event.stopPropagation();
  11. $('#search_locations').remove();
  12. $('.sugessionLayer').hide();
  13. $('.sugessionTags').removeClass('viewall');
  14. $('.sugessionTagsMobile').removeClass('viewall');
  15. $('.sugessionTags').addClass('show-maximized');
  16. $('.sugessionTagsMobile').addClass('show-maximized');
  17. $('.sugessionTags').removeClass('hide-maximized');
  18. $('.sugessionTagsMobile').removeClass('hide-maximized');
  19. $('.sugessionTag').addClass('show-fixed');
  20. $('.hidden-overlow').removeClass('disable-overflow');
  21. $('.hidden-overlow-mobile').removeClass('disable-overflow-mobile');
  22. var actContent1 = $('.sugessionTags').html();
  23. var actContent2 = $('.sugessionTagsMobile').html();
  24. if (actContent1.indexOf('sugessionTag')>0 && actContent2.indexOf('sugessionTag')>0) {
  25. $('.sugessionInput').hide();
  26. }
  27. else {
  28. if ($('.sugessionTags').html()!='<span class="placeholder">Város, városrész, vagy utca neve</span>') {
  29. $('.sugessionTags').html('<span class="placeholder">Város, városrész, vagy utca neve</span>');
  30. $('.sugessionTagsMobile').html('<span class="placeholder">Város, városrész, vagy utca neve</span>');
  31. }
  32. }
  33. if (counterhowmany>1) {
  34. $('.howmany').show();
  35. }
  36. }
  37. function setFocusOn() {
  38. $('.sugessionInput').remove();
  39. $('.howmany').hide();
  40. $('.sugessionLayer').show();
  41. $('.sugessionTags').append('<input type="text" class="sugessionInput" placeholder="Írj be további címeket!" onfocusin="sgShowLayer()" onkeyup="sgSearchKeyword(event)" autocomplete="off" name="locations" id="search_locations" value=""></input>');
  42. document.getElementById("search_locations").focus();
  43. $('.sugessionTags').addClass('viewall');
  44. $('.sugessionTags').removeClass('show-maximized');
  45. $('.sugessionTags').addClass('hide-maximized');
  46. $('.sugessionTag').removeClass('show-fixed');
  47. $('.hidden-overlow').addClass('disable-overflow');
  48. }
  49. function setFocusOnMobile() {
  50. $('.sugessionInput').remove();
  51. $('.howmany').hide();
  52. $('.sugessionLayer').show();
  53. $('.sugessionTagsMobile').append('<input type="text" class="sugessionInput" placeholder="Írj be további címeket!" onfocusin="sgShowLayer()" onkeyup="sgSearchKeyword(event)" autocomplete="off" name="locations" id="search_locations" value=""></input>');
  54. document.getElementById("search_locations").focus();
  55. $('.sugessionTagsMobile').addClass('viewall');
  56. $('.sugessionTagsMobile').removeClass('show-maximized');
  57. $('.sugessionTagsMobile').addClass('hide-maximized');
  58. $('.sugessionTag').removeClass('show-fixed');
  59. $('.hidden-overlow-mobile').addClass('disable-overflow-mobile');
  60. }
  61. function sugessionDeleteTag(obj) {
  62. var item = $(obj).parent('small').attr('data-value');
  63. counterhowmany--;
  64. if (counterhowmany>1) {
  65. $('.counterhowmany').html(counterhowmany.toString());
  66. }
  67. else {
  68. $('.howmany').hide();
  69. }
  70. $('.sugessionTag').each(function() {
  71. if ($(this).attr('data-value')==item) {
  72. $(this).remove();
  73. }
  74. });
  75. $('.sugessionTagsMobile').each(function() {
  76. if ($(this).attr('data-value')==item) {
  77. $(this).remove();
  78. }
  79. });
  80. }
  81. function suggesionInit(selecteds) {
  82. if (selecteds!='' && selecteds!=undefined) {
  83. var cities = selecteds.split(',');
  84. counterhowmany = cities.length;
  85. if (counterhowmany==1) {
  86. counterhowmany--;
  87. }
  88. var i = 0;
  89. sgAddHowMany(counterhowmany);
  90. $.each(cities,function(key,val) {
  91. i++;
  92. if (i==1 && counterhowmany>1) {
  93. sgAddTag(val,false);
  94. }
  95. else {
  96. sgAddTag(val,false);
  97. }
  98. });
  99. var actContent1 = $('.sugessionTags').html();
  100. var actContent2 = $('.sugessionTagsMobile').html();
  101. if (actContent1.indexOf('sugessionTag')>0 || actContent2.indexOf('sugessionTag')>0) {
  102. $('.placeholder').html('');
  103. $('.placeholder').hide();
  104. $('.sugessionTagsMobile').addClass('show-maximized');
  105. $('.sugessionInput').hide();
  106. }
  107. else {
  108. $('.hidden-overlow').addClass('disable-overflow');
  109. $('.hidden-overlow-mobile').addClass('disable-overflow-mobile');
  110. }
  111. sgHideLayer();
  112. }
  113. }
  114. function sgRemoveLastTag() {
  115. $('.sugessionTag').last().remove();
  116. counterhowmany--;
  117. if (counterhowmany>1) {
  118. $('.counterhowmany').html(counterhowmany.toString());
  119. }
  120. else {
  121. $('.howmany').hide();
  122. }
  123. }
  124. function sgSearchKeyword(e) {
  125. var char = e.which || e.keyCode;
  126. var actValue = $('#search_locations').val();
  127. $('.sgTabs').removeClass('sgActiveTab');
  128. $('#sgKeywords').addClass('sgActiveTab');
  129. $('#sgKeywordsMobile').addClass('sgActiveTab');
  130. $('.sugessionResultSet').hide();
  131. $('#sgResKeywords').show();
  132. $('#sgResKeywordsMobile').show();
  133. if (actValue=='') {
  134. var template = '<table>\
  135. <tbody>\
  136. <tr><td onclick="sgAddTag(\'Budapest 01\')">Budapest 01</td></tr>\
  137. <tr><td onclick="sgAddTag(\'Budapest 02\')">Budapest 02</td></tr>\
  138. <tr><td onclick="sgAddTag(\'Budapest 03\')">Budapest 03</td></tr>\
  139. <tr><td onclick="sgAddTag(\'Budapest 04\')">Budapest 04</td></tr>\
  140. <tr><td onclick="sgAddTag(\'Budapest 05\')">Budapest 05</td></tr>\
  141. <tr><td onclick="sgAddTag(\'Budapest 06\')">Budapest 06</td></tr>\
  142. <tr><td onclick="sgAddTag(\'Budapest 07\')">Budapest 07</td></tr>\
  143. <tr><td onclick="sgAddTag(\'Budapest 08\')">Budapest 08</td></tr>\
  144. <tr><td onclick="sgAddTag(\'Budapest 09\')">Budapest 09</td></tr>\
  145. <tr><td onclick="sgAddTag(\'Budapest 10\')">Budapest 10</td></tr>\
  146. <tr><td onclick="sgAddTag(\'Budapest 11\')">Budapest 11</td></tr>\
  147. <tr><td onclick="sgAddTag(\'Budapest 12\')">Budapest 12</td></tr>\
  148. <tr><td onclick="sgAddTag(\'Budapest 13\')">Budapest 13</td></tr>\
  149. <tr><td onclick="sgAddTag(\'Budapest 14\')">Budapest 14</td></tr>\
  150. <tr><td onclick="sgAddTag(\'Budapest 15\')">Budapest 15</td></tr>\
  151. <tr><td onclick="sgAddTag(\'Budapest 16\')">Budapest 16</td></tr>\
  152. <tr><td onclick="sgAddTag(\'Budapest 17\')">Budapest 17</td></tr>\
  153. <tr><td onclick="sgAddTag(\'Budapest 18\')">Budapest 18</td></tr>\
  154. <tr><td onclick="sgAddTag(\'Budapest 19\')">Budapest 19</td></tr>\
  155. <tr><td onclick="sgAddTag(\'Budapest 20\')">Budapest 20</td></tr>\
  156. <tr><td onclick="sgAddTag(\'Budapest 21\')">Budapest 21</td></tr>\
  157. <tr><td onclick="sgAddTag(\'Budapest 22\')">Budapest 22</td></tr>\
  158. <tr><td onclick="sgAddTag(\'Budapest 23\')">Budapest 23</td></tr>\
  159. </tbody>\
  160. </table>';
  161. $('#sgResKeywordsMobile').html(template);
  162. }
  163. if (char==13) {
  164. sgAddTag(actValue);
  165. }
  166. else if (char==8 && actValue=='') {
  167. sgRemoveLastTag();
  168. }
  169. else {
  170. $.get('/search/tagsearch/?keyword='+actValue,function(resp) {
  171. $('#sgResKeywords').html(resp);
  172. $('#sgResKeywordsMobile').html(resp);
  173. });
  174. }
  175. }
  176. function sgSetKeyword(e) {
  177. /*var actValue = $('#search_locations').val();
  178. if (actValue!='') {
  179. $('#sgKeywords').html('Találatok "'+actValue+'" kifejezésre');
  180. }*/
  181. }
  182. function sgAddTag(tag,count=true) {
  183. var actContent1 = $('.sugessionTags').html();
  184. var actContent2 = $('.sugessionTagsMobile').html();
  185. if (tag!='' && actContent1.indexOf(tag)==-1 && actContent2.indexOf(tag)==-1) {
  186. if (count==true) {
  187. counterhowmany++;
  188. }
  189. if (counterhowmany>1) {
  190. var actnum = counterhowmany;
  191. //$('.howmany').show();
  192. $('.counterhowmany').html(actnum.toString());
  193. sgAddHowMany(actnum);
  194. }
  195. var newtag = tagTemplate.replace('[tagLabel]',tag);
  196. newtag = newtag.replace('[tagValue]',tag);
  197. $('.sugessionTags').append(newtag);
  198. $('.sugessionTagsMobile').append(newtag);
  199. $('#search_locations').val('');
  200. $('#sgKeywords').html('Találatok');
  201. $('#sgKeywordsMobile').html('Találatok');
  202. $('.sugessionInput').remove();
  203. $('.sugessionTags').append('<input type="text" class="sugessionInput" placeholder="Írj be további címeket!" onfocusin="sgShowLayer()" onkeyup="sgSearchKeyword(event)" autocomplete="off" name="locations" id="search_locations" value=""></input>');
  204. $('.sugessionTagsMobile').append('<input type="text" class="sugessionInput" placeholder="Írj be további címeket!" onfocusin="sgShowLayer()" onkeyup="sgSearchKeyword(event)" autocomplete="off" name="locations" id="search_locations" value=""></input>');
  205. }
  206. else {
  207. return false;
  208. }
  209. }
  210. function sgAddHowMany(number) {
  211. var actContent1 = $('.sugessionTags').html();
  212. var actContent2 = $('.sugessionTagsMobile').html();
  213. if (actContent1.indexOf('howmany')==-1 && actContent2.indexOf('howmany')==-1) {
  214. var newtag = '<small class="howmany">Összesen <h6 class="counterhowmany">'+number.toString()+'</h6> kijelölve</small>';
  215. $('.sugessionTags').append(newtag);
  216. $('.sugessionTagsMobile').append(newtag);
  217. $('#search_locations').val('');
  218. $('#sgKeywords').html('Találatok');
  219. $('#sgKeywordsMobile').html('Találatok');
  220. $('.sugessionInput').remove();
  221. $('.sugessionTags').append('<input type="text" class="sugessionInput" placeholder="Írj be további címeket!" onfocusin="sgShowLayer()" onkeyup="sgSearchKeyword(event)" autocomplete="off" name="locations" id="search_locations" value=""></input>');
  222. $('.sugessionTagsMobile').append('<input type="text" class="sugessionInput" placeholder="Írj be további címeket!" onfocusin="sgShowLayer()" onkeyup="sgSearchKeyword(event)" autocomplete="off" name="locations" id="search_locations" value=""></input>');
  223. }
  224. else {
  225. return false;
  226. }
  227. if (number>2) {
  228. //$('.howmany').show();
  229. }
  230. }
  231. function sgStopDelegate(e) {
  232. e.preventDefault();
  233. return true;
  234. }
  235. function setSGTab(obj,content) {
  236. $('.sgTabs').removeClass('sgActiveTab');
  237. $(obj).addClass('sgActiveTab');
  238. $('.sugessionResultSet').hide();
  239. $(content).show();
  240. }
  241. function sgSetEditable(obj) {
  242. $(obj).children('.ar-label').hide();
  243. //$(obj).children('.currency-label').hide();
  244. $(obj).children('.arbox').show();
  245. $(obj).children('span').show();
  246. //$('.arbox').first().focus();
  247. }
  248. function sgSetSizeEditable(obj) {
  249. $(obj).children('.size-label').hide();
  250. $(obj).children('.sizebox').show();
  251. $(obj).children('span').show();
  252. }
  253. function sgSetRoomsEditable(obj) {
  254. $(obj).children('.room-label').hide();
  255. $(obj).children('.szobabox').show();
  256. $(obj).children('span').show();
  257. }
  258. function showHideRooms(tipus) {
  259. if (tipus=='Lakóingatlan - teljesepulet') {
  260. $('.sgRoomBox').hide();
  261. $('.sgRoomBoxMobil').hide();
  262. }
  263. else if (tipus=='garazs') {
  264. $('.sgRoomBox').hide();
  265. $('.sgRoomBoxMobil').hide();
  266. }
  267. else if (tipus=='kereskedelmi') {
  268. $('.sgRoomBox').hide();
  269. $('.sgRoomBoxMobil').hide();
  270. }
  271. else if (tipus=='mezogazdasagi') {
  272. $('.sgRoomBox').hide();
  273. $('.sgRoomBoxMobil').hide();
  274. }
  275. else if (tipus=='tarolo') {
  276. $('.sgRoomBox').hide();
  277. $('.sgRoomBoxMobil').hide();
  278. }
  279. else if (tipus=='telek') {
  280. $('.sgRoomBox').hide();
  281. $('.sgRoomBoxMobil').hide();
  282. }
  283. else {
  284. $('.sgRoomBox').show();
  285. $('.sgRoomBoxMobil').show();
  286. }
  287. }
  288. $(document).ready(function() {
  289. if (page!='map') {
  290. suggesionInit($('.sugessionTags').attr('data-selecteds'));
  291. //suggesionInit($('.sugessionTagsMobile').attr('data-selecteds'));
  292. $('.sugessionInput').hide();
  293. }
  294. });
  295. $(document).mouseup(function(e) {
  296. var container = $(".sgPriceBox");
  297. if (!container.is(e.target) && container.has(e.target).length === 0) {
  298. if ($('#armin').val()=='' && $('#armax').val()=='') {
  299. $('.sgPriceBox').children('.ar-label').show();
  300. $('.sgPriceBox').children('.arbox').hide();
  301. $('.sgPriceBox').children('span').hide();
  302. }
  303. }
  304. var container = $(".sgPriceBox");
  305. if (!container.is(e.target) && container.has(e.target).length === 0) {
  306. if ($('#iranyar_min').val()=='' && $('#iranyar_max').val()=='') {
  307. $('.sgPriceBox').children('.ar-label').show();
  308. $('.sgPriceBox').children('.arbox').hide();
  309. $('.sgPriceBox').children('span').hide();
  310. }
  311. }
  312. var container = $(".sgSizeBox");
  313. if (!container.is(e.target) && container.has(e.target).length === 0) {
  314. if ($('#sizemin').val()=='' && $('#sizemax').val()=='') {
  315. $('.sgSizeBox').children('.size-label').show();
  316. $('.sgSizeBox').children('.sizebox').hide();
  317. $('.sgSizeBox').children('span').hide();
  318. }
  319. }
  320. var container = $(".sgSizeBox");
  321. if (!container.is(e.target) && container.has(e.target).length === 0) {
  322. if ($('#meret_netto_min').val()=='' && $('#meret_netto_max').val()=='') {
  323. $('.sgSizeBox').children('.size-label').show();
  324. $('.sgSizeBox').children('.sizebox').hide();
  325. $('.sgSizeBox').children('span').hide();
  326. }
  327. }
  328. var container = $(".sgPriceBoxMobil");
  329. if (!container.is(e.target) && container.has(e.target).length === 0) {
  330. if ($('#armin_mobil').val()=='' && $('#armax_mobil').val()=='') {
  331. $('.sgPriceBoxMobil').children('.ar-label').show();
  332. $('.sgPriceBoxMobil').children('.arbox').hide();
  333. $('.sgPriceBoxMobil').children('span').hide();
  334. }
  335. }
  336. var container = $(".sgSizeBoxMobil");
  337. if (!container.is(e.target) && container.has(e.target).length === 0) {
  338. if ($('#sizemin_mobil').val()=='' && $('#sizemax_mobil').val()=='') {
  339. $('.sgSizeBoxMobil').children('.size-label').show();
  340. $('.sgSizeBoxMobil').children('.sizebox').hide();
  341. $('.sgSizeBoxMobil').children('span').hide();
  342. }
  343. }
  344. if (page!='map') {
  345. var container = $(".sugessionLayer");
  346. var container2 = $(".sugessionInput");
  347. if (!container.is(e.target) && container.has(e.target).length === 0 && !container2.is(e.target) && container2.has(e.target).length === 0) {
  348. if (initEvent==true) {
  349. sgHideLayer();
  350. }
  351. else {
  352. initEvent = true;
  353. }
  354. }
  355. }
  356. });