Error executing template "Designs/rm_sub/frontpage.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_eee78753e9624e9da343877048c5d183.ExecuteAsync()
at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2 @using System.Globalization;
3 @using System.Text.RegularExpressions;
4 @using Dynamicweb.Environment;
5 @using Newtonsoft.Json;
6 @using Dynamicweb.Logging;
7 @using Dynamicweb.Frontend.Navigation;
8 @using Dynamicweb;
9 @using Dynamicweb.Security.UserManagement;
10 @using Dynamicweb.Content.Items;
11 @using Dynamicweb.Core;
12
13 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
14 @using Dynamicweb.Content.Items;
15
16 @functions{
17 void RenderErhvervsTypeCheckboxes(string productGroupFilter)
18 {
19 <div class="col-xs-6 col-md-4">
20 <div class="checkbox">
21 <label>
22 <input type="checkbox" name="propertytype" value="bolig/erhverv, kombineret erhverv og bolig, byejendom (kontor, butik, beboelse)" />
23 <span>Bolig/erhverv</span>
24 </label>
25 </div>
26 <div class="checkbox">
27 <label>
28 <input type="checkbox" name="propertytype" value="erhvervsgrund" />
29 <span>Erhvervsgrund</span>
30 </label>
31 </div>
32 <div class="checkbox">
33 <label>
34 <input type="checkbox" name="propertytype" value="boligudlejning" />
35 <span>Boligudlejningsejendom</span>
36 </label>
37 </div>
38 <div class="checkbox">
39 <label>
40 <input type="checkbox" name="propertytype" value="kontor, klinik, kontorhotel, showroom, undervisningslokaler" />
41 <span>Kontor</span>
42 </label>
43 </div>
44 </div>
45 <div class="col-xs-6 col-md-4">
46 <div class="checkbox">
47 <label>
48 <input type="checkbox" name="propertytype" value="butik / detail, butik / detailhandel" />
49 <span>Butik/detailhandel</span>
50 </label>
51 </div>
52 <div class="checkbox">
53 <label>
54 <input type="checkbox" name="propertytype" value="industri / logistik, håndværk, industri, kontor / lager, logistik" />
55 <span>Produktion/lager</span>
56 </label>
57 </div>
58 <div class="checkbox">
59 <label>
60 <input type="checkbox" name="propertytype" value="hotel - kursusejendom, restaurant" />
61 <span>Hotel og restaurant</span>
62 </label>
63 </div>
64 <div class="checkbox">
65 <label>
66 <input type="checkbox" name="propertytype" value="projekt ejendom" />
67 <span>Projektejendom</span>
68 </label>
69 </div>
70 </div>
71 <div class="col-xs-6 col-md-4">
72 <div class="checkbox">
73 <label>
74 <input type="checkbox" name="propertytype" value="andet" />
75 <span>Andet</span>
76 </label>
77 </div>
78 </div>
79
80 <input type="hidden" name="propertycategory" value="erhverv, udlejning" />
81 <input type="hidden" name="filtrering" value="@productGroupFilter" />
82 }
83 void RenderBoligtypeCheckboxes()
84 {
85 <div class="col-6 col-md-4">
86 <div class="checkbox">
87 <label>
88 <input type="checkbox" name="propertytype" value="villa" />
89 <span>Villa</span>
90 </label>
91 </div>
92 <div class="checkbox">
93 <label>
94 <input type="checkbox" name="propertytype" value="rækkehus" />
95 <span>Rækkehus</span>
96 </label>
97 </div>
98 <div class="checkbox">
99 <label>
100 <input type="checkbox" name="propertytype" value="villalejlighed" />
101 <span>Villalejlighed</span>
102 </label>
103 </div>
104 <div class="checkbox">
105 <label>
106 <input type="checkbox" name="propertytype" value="andelsbolig" />
107 <span>Andelsbolig</span>
108 </label>
109 </div>
110 </div>
111 <div class="col-6 col-md-4">
112 <div class="checkbox">
113 <label>
114 <input type="checkbox" name="propertytype" value="fritidshus" />
115 <span>Fritidsbolig</span>
116 </label>
117 </div>
118 <div class="checkbox">
119 <label>
120 <input type="checkbox" name="propertytype" value="ejerlejlighed" class="specialOption" data-disable-slider="#grundareal" data-disable-slider-ranges="#grundarealmin,#grundarealmax" />
121 <span>Ejerlejlighed</span>
122 </label>
123 </div>
124 <div class="checkbox">
125 <label>
126 <input type="checkbox" name="propertytype" value="helårsgrund" class="specialOption" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" />
127 <span>Helårsgrund</span>
128 </label>
129 </div>
130 <div class="checkbox">
131 <label>
132 <input type="checkbox" name="propertytype" value="fritidsgrund" class="specialOption" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" />
133 <span>Fritidsgrund</span>
134 </label>
135 </div>
136 </div>
137 <div class="col-6 col-md-4">
138 <div class="checkbox">
139 <label>
140 <input type="checkbox" name="propertytype" value="landejendom, lystejendom" class="specialOption" data-disable-checkbox="true" />
141 <span>Landejendom</span>
142 </label>
143 </div>
144 <div class="checkbox">
145 <label>
146 <input type="checkbox" name="propertytype" value="erhverv" class="specialOption" data-disable-checkbox="true" data-disable-slider="#roomsslider" data-disable-slider-ranges="#roomsmin" />
147 <span>Erhverv</span>
148 </label>
149 </div>
150 </div>
151 }
152
153 void RenderChecked(string queryString)
154 {
155 if (Dynamicweb.Context.Current.Request.QueryString["propertytype"] == queryString)
156 {
157 @("checked")
158 }
159 }
160
161 void RenderBoligtypeCheckboxesDropdown()
162 {
163 Dictionary<string, string> propertyTypes = new Dictionary<string, string>(){
164 { "Villa", "villa" }, { "Rækkehus", "rækkehus" }, { "Villalejlighed", "villalejlighed" },
165 { "Andelsbolig", "andelsbolig" }
166 };
167 foreach (KeyValuePair<string, string> type in propertyTypes)
168 {
169 bool ischecked = false;
170 string[] propertytypeSplit = new string[0];
171 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
172 {
173 propertytypeSplit = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
174 }
175 foreach (var propertytypeParams in propertytypeSplit)
176 {
177 if (propertytypeParams == type.Value)
178 {
179 ischecked = true;
180 }
181 }
182 <li>
183 <label class="checkbox-container d-flex">
184 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
185 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue js-datavalue js-count" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
186 <span class="checkmark grey"></span>
187 </label>
188 </li>
189 }
190
191 <li>
192 <label class="checkbox-container d-flex">
193 @Translate("Smartpage:Search.DropDown.Blandet Bolig/Erhverv", "Blandet Bolig/Erhverv")
194 @{
195 bool blboligcheck = false;
196 }
197 @if (Dynamicweb.Context.Current.Request.QueryString["propertycategory"] == "Blandet Bolig/Erhverv")
198 {
199 blboligcheck = true;
200 }
201 <input type="checkbox" name="propertycategory" value="Blandet Bolig/Erhverv" class="specialOption js-input-check js-datavalue js-count" data-disable-checkbox="true" data-disable-slider="#roomsslider" data-disable-slider-ranges="#roomsmin" checked="@blboligcheck" />
202 <span class="checkmark grey"></span>
203 </label>
204 </li>
205
206 Dictionary<string, string> propertyTypes2 = new Dictionary<string, string>(){
207 { "Fritidsbolig", "fritidshus" }, { "Ejerlejlighed", "ejerlejlighed" }, { "Helårsgrund", "helårsgrund" },
208 { "Fritidsgrund", "fritidsgrund" }, { "Landejendom", "landejendom, lystejendom" }
209 };
210 foreach (KeyValuePair<string, string> type in propertyTypes2)
211 {
212 bool ischecked = false;
213 string[] propertytypeSplit2 = new string[0];
214 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertytype"]))
215 {
216 propertytypeSplit2 = Dynamicweb.Context.Current.Request.QueryString["propertytype"].Split(',');
217 }
218 foreach (var propertytypeParams in propertytypeSplit2)
219 {
220 if (propertytypeParams == type.Value)
221 {
222 ischecked = true;
223 }
224 }
225 <li>
226 <label class="checkbox-container d-flex">
227 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
228 @if (type.Value == "ejerlejlighed")
229 {
230 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-disable-slider="#grundareal" data-disable-slider-ranges="#grundarealmin,#grundarealmax" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
231 }
232 else if (type.Value == "helårsgrund")
233 {
234 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
235 }
236 else if (type.Value == "fritidsgrund")
237 {
238 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-disable-slider="#boligareal,#roomsslider" data-disable-slider-ranges="#boligarealmin,#boligarealmax,#roomsmin" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
239 }
240 else
241 {
242 <input type="checkbox" name="propertytype" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
243 }
244 <span class="checkmark grey"></span>
245 </label>
246 </li>
247 }
248 }
249
250 void RenderBoligTypeErhverv(bool submitOnChange = false, bool frontpage = false)
251 {
252 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
253 { "Kontor", "OwnUseOffices" }, { "Lager + Produktion", "OwnUseStoresAndProductions" }, { "Detailhandel", "OwnUseRetailAndStores" },
254 { "Grunde", "OwnUseParcel" }, { "Andre typer", "OwnUseOtherTypes" }, { "Hotel + Restaurant", "OwnUseHotelsAndRestaurants" }
255 };
256 var submitonchange = "";
257 if (submitOnChange)
258 {
259 submitonchange = "onchange='submitFilter()'";
260 }
261
262 foreach (KeyValuePair<string, string> type in erhverType)
263 {
264 string ischecked = "";
265 string[] olineParamsSplit = new string[0];
266 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
267 {
268 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
269 }
270 foreach (var olineParams in olineParamsSplit)
271 {
272 if (olineParams == type.Value)
273 {
274 ischecked = "checked";
275 }
276 }
277
278 <li>
279 <label class="checkbox-container d-flex">
280 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
281 <input type="checkbox" name="olinecategory" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" @submitonchange @ischecked />
282 <span class="checkmark grey"></span>
283 </label>
284 </li>
285 }
286
287
288 bool ischeckedpropertycat = false;
289 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["propertycategory"]))
290 {
291 if (Dynamicweb.Context.Current.Request.QueryString["propertycategory"] == "Blandet Bolig/Erhverv")
292 {
293 ischeckedpropertycat = true;
294 }
295 }
296 <li>
297 <label class="checkbox-container">
298 @Translate("Smartpage:Search.DropDown.Blandet Bolig/Erhverv", "Blandet Bolig/Erhverv")
299 <input type="checkbox" name="propertycategory" value="Blandet Bolig/Erhverv" class="js-input-check datavalue" data-val="Blandet Bolig/Erhverv" onchange="submitFilter()" checked="@ischeckedpropertycat" />
300 <span class="checkmark grey"></span>
301 </label>
302 </li>
303 }
304
305 void RenderBoligTypeErhvervInvest(bool submitOnChange = false)
306 {
307 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
308 { "Kontor", "Kontor" }, { "Lager + Produktion", "InvestmentStoresAndProductions" }, { "Boligudlejning", "InvestmentHousingRental" },
309 { "Detailhandel", "InvestmentRetailAndStores" }, { "Grunde", "InvestmentParcel" }, { "Hotel + Restaurant", "InvestmentHotelsAndRestaurants" }, { "Andre typer", "InvestmentOtherTypes" }
310 };
311
312 foreach (KeyValuePair<string, string> type in erhverType)
313 {
314 bool ischecked = false;
315 string[] olineParamsSplit = new string[0];
316 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString["olinecategory"]))
317 {
318 olineParamsSplit = Dynamicweb.Context.Current.Request.QueryString["olinecategory"].Split(',');
319 }
320 foreach (var olineParams in olineParamsSplit)
321 {
322 if (olineParams == type.Value)
323 {
324 ischecked = true;
325 }
326 }
327
328 <li>
329 <label class="checkbox-container">
330 @Translate("Smartpage:Search.DropDown." + type.Key + "", "" + type.Key + "")
331 <input type="checkbox" name="olinecategory" value="@type.Value" class="js-input-check datavalue" data-val="@type.Key" onchange="submitFilter()" checked="@ischecked" />
332 <span class="checkmark grey"></span>
333 </label>
334 </li>
335 }
336 }
337 int GetWebsiteSettingsPageId(string pageSysName)
338 {
339 int sideId = 0;
340
341 var pw = Dynamicweb.Frontend.PageView.Current();
342
343 string settingsItemId = "1";
344
345 if ((pw.Area.Item.ContainsKey("Type") && pw.Area.Item["Type"].ToString() == "bone") || Dynamicweb.Context.Current.Request.QueryString["bone"] == "true")
346 {
347 settingsItemId = "2";
348 }
349
350 var settingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", settingsItemId);
351
352 if (settingsItem == null || !settingsItem.ContainsKey(pageSysName))
353 {
354 return sideId;
355 }
356
357 string boligsideLink = settingsItem[pageSysName] as String;
358 string linkPrefix = "Default.aspx?ID=";
359
360 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
361 {
362 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
363 }
364
365 return sideId;
366 }
367
368 int GetPageSettingsPageId(string pageSysName)
369 {
370 int sideId = 0;
371
372 var pw = Dynamicweb.Frontend.PageView.Current();
373
374 if (pw.Page == null || pw.Page.PropertyItem == null || !pw.Page.PropertyItem.ContainsKey(pageSysName))
375 {
376 return sideId;
377 }
378
379 string boligsideLink = pw.Page.PropertyItem[pageSysName] as String;
380 string linkPrefix = "Default.aspx?ID=";
381
382 if (!String.IsNullOrEmpty(boligsideLink) && boligsideLink.ToLower().StartsWith(linkPrefix.ToLower()))
383 {
384 Int32.TryParse(boligsideLink.Substring(linkPrefix.Length), out sideId);
385 }
386
387 return sideId;
388 }
389 void RenderMobileSelectBox(string name, int max, int step, string className, string inputname)
390 {
391 <select class="form-control d-block d-lg-none mb-10 @className" onchange="submitFilter()" name="@inputname">
392 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder." + name + "", "" + name + "")</option>
393
394 @for (var i = 0; i <= max; i += step)
395 {
396 var selected = string.Empty;
397 var current = string.Empty;
398 if (i == max)
399 {
400 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
401 {
402 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")' selected="selected">@Convert.ToInt32(i).ToString("N0")+</option>
403 }
404 else
405 {
406 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")+</option>
407 }
408 }
409 else
410 {
411 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[inputname]) && Dynamicweb.Context.Current.Request.QueryString[inputname] == Convert.ToString(i))
412 {
413 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")' selected="selected">@Convert.ToInt32(i).ToString("N0")</option>
414 }
415 else
416 {
417 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
418 }
419 }
420 }
421 </select>
422 }
423
424 void RenderTopFilter(string parameter)
425 {
426 if (parameter == "pricemin" || parameter == "pricemax")
427 {
428 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["pricemin"]))
429 {
430 if (parameter == "pricemin")
431 {
432 @("<div class='search-terms' id='priceFilter'>")
433 @("Pris ") @Dynamicweb.Context.Current.Request[parameter]
434 }
435
436 else
437 {
438 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="pricemin,pricemax"></i>
439 @("</div>")
440 }
441 }
442 }
443
444 else if (parameter == "subsidymin" || parameter == "subsidymax")
445 {
446 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidymin"]))
447 {
448 if (parameter == "subsidymin")
449 {
450 @("<div class='search-terms' id='subsidyFilter'>")
451 @("Årlig leje ") @Dynamicweb.Context.Current.Request[parameter]
452 }
453
454 else
455 {
456 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="subsidymin,subsidymax"></i>
457 @("</div>")
458 }
459 }
460 }
461 else if (parameter == "etagearealmin" || parameter == "etagearealmax")
462 {
463 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["etagearealmin"]))
464 {
465 if (parameter == "etagearealmin")
466 {
467 @("<div class='search-terms' id='etagearealFilter'>")
468 @("Etageareal ") @Dynamicweb.Context.Current.Request[parameter]
469 }
470
471 else
472 {
473 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kvm.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="etagearealmin,etagearealmax"></i>
474 @("</div>")
475 }
476 }
477 }
478
479 else if (parameter == "grundarealmin" || parameter == "grundarealmax")
480 {
481 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["grundarealmin"]))
482 {
483 if (parameter == "grundarealmin")
484 {
485 @("<div class='search-terms' id='grundarealFilter'>")
486 @("Grundareal ") @Dynamicweb.Context.Current.Request[parameter]
487 }
488
489 else
490 {
491 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kvm.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="grundarealmin,grundarealmax"></i>
492 @("</div>")
493 }
494 }
495 }
496
497 else if (parameter == "subsidykvmmin" || parameter == "subsidykvmmax")
498 {
499 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["subsidykvmmin"]))
500 {
501 if (parameter == "subsidykvmmin")
502 {
503 @("<div class='search-terms' id='subsidykvmFilter'>")
504 @("Årlig leje kvm ") @Dynamicweb.Context.Current.Request[parameter]
505 }
506
507 else
508 {
509 @(" - ") @Dynamicweb.Context.Current.Request[parameter] @(" kr.") <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="subsidykvmmin,subsidykvmmax"></i>
510 @("</div>")
511 }
512 }
513 }
514
515 else if (parameter == "olinecategory")
516 {
517
518 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["olinecategory"]))
519 {
520 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
521 {"OwnUseOffices", "Kontor" }, { "OwnUseStoresAndProductions","Lager + Produktion" }, { "OwnUseRetailAndStores","Detailhandel" },
522 { "OwnUseParcel", "Grunde" }, { "OwnUseHotelsAndRestaurants", "Hotel + Restaurant" }, { "OwnUseOtherTypes", "Andre typer"},
523 { "Kontor", "Kontor" }, { "InvestmentStoresAndProductions", "Lager + Produktion" }, { "InvestmentHousingRental", "Boligudlejning" },
524 { "InvestmentRetailAndStores", "Detailhandel" }, { "InvestmentParcel", "Grunde" }, { "InvestmentHotelsAndRestaurants", "Hotel + Restaurant" }, { "InvestmentOtherTypes", "Andre typer" }
525 };
526
527
528 foreach (var er in erhverType)
529 {
530 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
531 {
532 <div class="search-terms" id="@parameter">
533 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i>
534 </div>
535 }
536 }
537 }
538 }
539 else if (parameter == "propertycategory")
540 {
541
542 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["propertycategory"]))
543 {
544 Dictionary<string, string> erhverType = new Dictionary<string, string>(){
545 { "propertycategory", "Blandet Bolig/Erhverv" }
546 };
547
548 foreach (var er in erhverType)
549 {
550 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]) && Dynamicweb.Context.Current.Request[parameter] == er.Value)
551 {
552 <div class="search-terms" id="@parameter">
553 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i>
554 </div>
555 }
556 }
557 }
558 }
559 else if (parameter == "search")
560 {
561 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request["search"]))
562 {
563 <div class="search-terms" id="@parameter">
564 @Dynamicweb.Context.Current.Request[parameter] <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter"></i>
565 </div>
566 }
567 }
568 else
569 {
570 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request[parameter]))
571 {
572 Dictionary<string, string>
573 ubudsform = new Dictionary<string, string>
574 (){
575 {"salg", "Salg" }, { "leje","Leje" }
576 };
577
578 foreach (var er in ubudsform)
579 {
580 if (Dynamicweb.Context.Current.Request[parameter].Contains(er.Key))
581 {
582 <div class="search-terms" id="@parameter">
583 @er.Value <i class="fa fa-times ml-2 pointer" onclick="removeParams(this)" data-tag="@parameter" data-val="@er.Key"></i>
584 </div>
585 }
586 }
587
588
589 }
590 }
591 }
592
593 void RenderSelectValue(string dropdownname, string dropdownvalue, string queryString)
594 {
595 var selected = "";
596 if (!string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString[queryString]) && Dynamicweb.Context.Current.Request.QueryString[queryString] == dropdownvalue)
597 {
598 selected = "selected";
599 }
600
601 var current = string.Format("<option value='" + dropdownvalue + "'>" + dropdownname + "</option>", selected);
602
603 @current
604 }
605
606 void RenderSearchForHousing(int searchPageId, string querySearch, string querySearchNameAttr, string queryZipCodeFrom, string queryZipCodeTo, string template, Item SettingsItem, string cssClasses = "")
607 {
608 <div class="main-search-form frontpage @cssClasses">
609 <div class="dropdown-overlay"></div>
610 <div class="row mb-3 align-items-center">
611 <div class="col-xs-12 col-md-3 border-right">
612 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
613 </div>
614 <div class="col-xs-12 col-md-9 home-count d-none d-md-block">
615 <span class="search-count" id="searchCounter">0</span> <span>@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")</span>
616 </div>
617 </div>
618
619 <form id="main-search-frontpage" class="searchbar-wrapper" action="/Default.aspx" method="GET">
620 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId-frontpage" disabled="disabled" />
621 <div class="row form-wrapper no-gutters">
622
623 <div class="col-xs-12 col-md-5 col-searchbar">
624 <div class="searchbar">
625 <input type="text" name="@querySearchNameAttr" id="searchfield-frontpage" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch)" />
626 <input type="hidden" id="zipcodefrom-frontpage" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" />
627 <input type="hidden" id="zipcodeto-frontpage" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" />
628 </div>
629 </div>
630 <div class="col-xs-12 col-md-5">
631 <div class="row no-gutters">
632 <div class="col-xs-12 col-md-6 input-col">
633 <div class="dropdown w-overlay">
634 <button class="btn btn-dropdown dropdown-toggle reverse position-absolute-md" type="button" id="Boligtype-frontpage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
635 @Translate("Smartpage:Search.Boligtype", "Boligtype")
636 </button>
637 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
638 <ul class="bolig-dropdown list-unstyled">
639 @{
640 RenderBoligtypeCheckboxesDropdown();
641 }
642 </ul>
643 <span class="border-fat"></span>
644 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
645 </div>
646
647 </div>
648
649 </div>
650 <div class="col-xs-12 col-md-6 input-col">
651 <div class="dropdown w-overlay">
652 <button class="btn btn-dropdown dropdown-toggle reverse position-absolute-md" type="button" id="Pris-frontpage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
653 @Translate("Smartpage:Search.Pris", "Pris")
654 </button>
655 <div class="dropdown-menu box-shadow dropdown-price" aria-labelledby="Pris">
656 <input type="text" class="form-control mb-10 js-auto-thousand js-pricemin-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MinPris","Min. pris")' />
657 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
658 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
659 @for (var i = 0; i <= 10000000; i += 100000)
660 {
661 if (i == 10000000)
662 {
663 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
664 }
665 else
666 {
667 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
668 }
669 }
670 </select>
671 <input type="hidden" id="pricemin-frontpage" name="pricemin" />
672
673 <input type="text" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris","Max. pris")' />
674 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
675 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
676 @for (var i = 0; i <= 10000000; i += 100000)
677 {
678 if (i == 10000000)
679 {
680 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
681 }
682 else
683 {
684 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
685 }
686 }
687 </select>
688 <input type="hidden" id="pricemax-frontpage" name="pricemax" />
689 <button class="btn btn-primary js-close-dropdown mt-3">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
690 </div>
691 </div>
692 </div>
693 </div>
694 </div>
695 <div class="col-xs-12 col-md-2 d-none d-md-block">
696 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
697 </div>
698 </div>
699
700 <div class="row moresearch-btn no-gutters">
701 <div class="col-sm-12">
702 <div class="row align-items-center no-gutters">
703 <div class="col-12 col-md-4">
704 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch" aria-expanded="false" aria-controls="moreSearch">
705 <span class="moreSearch-text"><i class="fas fa-plus open-close"></i> <span class="not-open">@Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")</span> <span class="open"><span class="js-filter-count">0</span> @Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt") </span></span>
706 </button>
707 </div>
708 <div class="col-6 col-md-2 mb-xs-4">
709 <a class="js-reset reset-btn">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
710 </div>
711 </div>
712
713 <div class="collapse" id="moreSearch">
714 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
715 <div class="row align-items-end mb-30">
716 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
717 <div class="filter-container row">
718 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
719 <div class="col-6 pr-sm-0 pr-2">
720 <input type="text" name="boligarealmin" id="boligarealmin-frontpage" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2","Min. m2")' />
721 <select class="form-control js-boligarealmin-frontpage-select js-count">
722 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
723 @for (var i = 0; i <= 300; i += 10)
724 {
725 if (i == 300)
726 {
727 <option value="@i">@i+</option>
728 }
729 else
730 {
731 <option value="@i">@i</option>
732 }
733 }
734 </select>
735 </div>
736 <div class="col-6 pl-sm-0 pl-2">
737 <input type="text" name="boligarealmax" id="boligarealmax-frontpage" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2")' />
738 <select class="form-control js-boligarealmax-frontpage-select js-count">
739 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
740 @for (var i = 0; i <= 300; i += 10)
741 {
742 if (i == 300)
743 {
744 <option value="@i">@i+</option>
745 }
746 else
747 {
748 <option value="@i">@i</option>
749 }
750 }
751 </select>
752 </div>
753 </div>
754 </div>
755 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
756 <div class="filter-container row">
757 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
758 <div class="col-6 pr-sm-0 pr-2">
759 <input type="text" name="grundarealmin" id="grundarealmin-frontpage" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2","Min. m2")' />
760 <select class="form-control js-grundarealmin-frontpage-select js-count">
761 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
762 @for (var i = 0; i <= 10000; i += 100)
763 {
764 if (i == 10000)
765 {
766 <option value="@i">@i+</option>
767 }
768 else
769 {
770 <option value="@i">@i</option>
771 }
772 }
773 </select>
774 </div>
775 <div class="col-6 pl-sm-0 pl-2">
776 <input type="text" name="grundarealmax" id="grundarealmax-frontpage" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2","Max. m2")' />
777 <select class="form-control js-grundarealmax-frontpage-select js-count">
778 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
779 @for (var i = 0; i <= 10000; i += 100)
780 {
781 if (i == 10000)
782 {
783 <option value="@i">@i+</option>
784 }
785 else
786 {
787 <option value="@i">@i</option>
788 }
789 }
790 </select>
791 </div>
792 </div>
793 </div>
794 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
795 <div class="filter-container row">
796 <label class="d-block col-12">Antal rum</label>
797
798 <div class="col-6 pr-sm-0 pr-2">
799 <select name="roomsmin" id="roomsmin-frontpage" class="form-control reverse js-count">
800 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
801 <option value="1">1</option>
802 <option value="2">2</option>
803 <option value="3">3</option>
804 <option value="4">4</option>
805 <option value="5+">5+</option>
806 </select>
807 </div>
808 <div class="col-6 pl-sm-0 pl-2">
809 <select name="roomsmax" id="roomsmax-frontpage" class="form-control reverse js-count">
810 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
811 <option value="1">1</option>
812 <option value="2">2</option>
813 <option value="3">3</option>
814 <option value="4">4</option>
815 <option value="5+">@Translate("Smartpage:Rooms.5", "5")</option>
816 </select>
817 </div>
818 </div>
819 </div>
820 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
821 <div class="row">
822 <div class="col-12">
823 <div class="filter-container">
824 <label class="d-block">Energimærke</label>
825 <select name="energylabel" id="energylabel-frontpage" class="form-control reverse js-count">
826 <option disabled selected="selected">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
827 <option value="01">G</option>
828 <option value="02">F</option>
829 <option value="03">E</option>
830 <option value="04">D</option>
831 <option value="05">C</option>
832 <option value="06">B</option>
833 <option value="07">A</option>
834 <option value="08">A2010</option>
835 <option value="09">A2015</option>
836 <option value="10">A2020+</option>
837 </select>
838 </div>
839 </div>
840 </div>
841 </div>
842 <div class="col-12 col-sm-6 col-lg-3 mt-3">
843 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
844 <div class="filter-container row">
845 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
846 <div class="col-6 pr-sm-0 pr-2">
847 <input type="text" name="subsidymin" id="subsidymin-frontpage" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MinDKK","Min. DKK")' />
848 <select class="form-control js-subsidymin-frontpage-select js-count">
849 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
850 @for (var i = 0; i <= 25000; i += 1250)
851 {
852 if (i == 25000)
853 {
854 <option>@Convert.ToInt32(i).ToString("N0")+</option>
855 }
856 else
857 {
858 <option>@Convert.ToInt32(i).ToString("N0")</option>
859 }
860 }
861 </select>
862 </div>
863 <div class="col-6 pl-sm-0 pl-2">
864 <input type="text" name="subsidymax" id="subsidymax-frontpage" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MaxDKK","Max. DKK")' />
865 <select class="form-control js-subsidymax-frontpage-select js-count">
866 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
867 @for (var i = 0; i <= 25000; i += 1250)
868 {
869 if (i == 25000)
870 {
871 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
872 }
873 else
874 {
875 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
876 }
877 }
878 </select>
879 </div>
880 </div>
881 </div>
882 <div class="col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0">
883 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
884 </div>
885 </div>
886 </div>
887 </div>
888 </div>
889
890 <div class="row d-block d-md-none form-wrapper no-gutters">
891 <div class="col-xs-12 col-md-2">
892 <button type="submit" class="btn btn-block btn-search btn-mobile-search">@Translate("Smartpage:Search.SøgBolig", "Søg Bolig")<i class="fa fa-search cta-icon"></i></button>
893 </div>
894 </div>
895 </form>
896 <div class="front-page-actions d-md-none">
897 <div>
898 <button class="btn btn-block btn-search btn-mobile-search js-search-mobile">@Translate("Smartpage:Search.SøgBolig", "Søg Bolig")<i class="fa fa-search cta-icon"></i></button>
899 </div>
900 <div>
901 @{
902 string brokerSearchId = SettingsItem != null ? Dynamicweb.Core.Converter.ToString(SettingsItem["Maeglersogning"]).Replace("Default.aspx?Id=", "") : "";
903 string ctaText = Translate("Smartpage.Frontpage.Mobile.FindBroker", "FIND EJENDOMSMÆGLER");
904 <form method="GET" action="/Default.aspx">
905 <input name="id" value="@brokerSearchId" type="hidden" />
906 <div class="icon-wrapper-wclick">
907 <i class="fas fa-search ta-submit-on-icon-click"></i>
908 <input class="box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter" name="q" type="text" placeholder="@ctaText" onfocus="this.placeholder = ''" onblur="this.placeholder='@ctaText'" />
909 </div>
910 </form>
911 }
912 </div>
913 <div>
914 <a href="javascript:panelSalgsvurdering('Hovedmenu')" class="btn btn-orange btn-block">@Translate("Smartpage:Frontpage.Mobile.GetFreeAppraisal", "BESTIL GRATIS VURDERING")<i class="cta-icon fa fa-angle-right"></i></a>
915 </div>
916 </div>
917 </div>
918
919 }
920 }
921 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
922 @using Dynamicweb.Core;
923 @using Dynamicweb.Frontend.Navigation;
924 @using Dynamicweb;
925
926 @functions {
927 void RenderSlideMenu(bool BoligOne, bool erhverv, string maeglersoegning)
928 {
929 <div id="menu" class="main-menu-slide">
930 <div class="container">
931 <div class="row">
932 <div class="col-12">
933 <span class="menu-headline">MENU</span>
934 </div>
935 <div class="menu-slide">
936 <b></b>
937 </div>
938
939 <div class="col-12 main-slidemenu">
940 @{
941 string erhvervsNavigationAreaId = !string.IsNullOrWhiteSpace(Converter.ToString(Pageview.Area.Item["SpErhvervNavigationAreaId"])) ? Converter.ToString(Pageview.Area.Item["SpErhvervNavigationAreaId"]) : "2723";
942 string rmNavigationAreaId = !string.IsNullOrWhiteSpace(Converter.ToString(Pageview.Area.Item["SpRMNavigationAreaId"])) ? Converter.ToString(Pageview.Area.Item["SpRMNavigationAreaId"]) : "1";
943
944 if (Pageview.Page.ItemType == "AgentPage")
945 {
946 @Navigation.RenderNavigation("Navigation/AgentNavigation.cshtml",
947 new NavigationSettings { StartLevel = 1, StopLevel = 1, RootAreaId = Pageview.Area.ID })
948 }
949 else if (erhverv)
950 {
951 <ul id="main-nav-erhverv" class="navigation dwnavigation" settings="startlevel:1;endlevel:2;template:Erhverv_ul_li.xslt;expandmode:all;areaid:@erhvervsNavigationAreaId;"></ul>
952 @GetValue("DwNavigation(mainnaverhverv)")
953 }
954 else
955 {
956 <ul id="main-nav" class="navigation dwnavigation" settings="startlevel:1;endlevel:2;template:Erhverv_ul_li.xslt;expandmode:all;areaid:@rmNavigationAreaId;"></ul>
957 @GetValue("DwNavigation(mainnav)")
958 }
959 }
960 </div>
961 <div class="col-12 bottom-btns">
962
963 @{
964 string[] maeglerid;
965 string maegler = !string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"])) ? Converter.ToString(Pageview.Area.Item["ErhvervMaeglersoegning"]) : "Default?Id=0";
966
967 if (erhverv)
968 {
969 maeglerid = maegler.Split(new string[] { "?Id=" }, StringSplitOptions.None);
970 }
971 else
972 {
973 maeglerid = Convert.ToString(maeglersoegning).Split(new string[] { "?Id=" }, StringSplitOptions.None);
974 }
975
976 <form method="GET" action="/Default.aspx">
977 <input name="id" value="@maeglerid[1]" type="hidden" />
978 <div class="icon-wrapper-wclick">
979 <i class="fas fa-search ta-submit-on-icon-click"></i>
980 <input class="box-cta-input ta-postnummer ta-submit-on-select ta-submit-on-enter" name="q" type="text" placeholder='@Translate("Smartpage:BoxWidget.FindMægler", "FIND MÆGLER")' onfocus="this.placeholder = 'FIND MÆGLER'" />
981 </div>
982 </form>
983 }
984 <br />
985 @{
986 var dpmaegler = "" + Context.Current.Session["DP"] + "Hovedmenu" + "";
987 }
988 <a href="javascript:panelSalgsvurdering('@dpmaegler', '@Pageview.AreaID');" class="btn btn-block btn-default-invert js-close-menu">Gratis salgsvurdering <i class="cta-icon fa fa-angle-right"></i></a>
989 </div>
990 </div>
991 </div>
992 </div>
993 }
994 }
995 @{
996 Context.Current.Response.AddHeader("access-control-allow-origin", "*");
997
998 string bodyClass = "";
999 string template = "real";
1000 string TemplateUrl = "/Files/Templates/Designs/rm/";
1001 string logoUrl = TemplateUrl + (!Dynamicweb.Core.Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]) ? "assets/images/logo-real.svg" : "assets/images/logo-erhverv.svg");
1002 string MetaTitle = GetString("Title");
1003 string MetaDescription = GetString("Meta.Description");
1004 string MetaKeywords = GetString("Meta.Keywords");
1005 string searchClass = "";
1006
1007 var cssFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/css/main.min.css"));
1008 string mainCSS = TemplateUrl + $"assets/dist/css/main.min.css?{cssFileInfo.LastWriteTime.Ticks}";
1009
1010 string loadingIcon = "/Files/Images/real-maeglerne-loading.svg";
1011
1012 var SettingsItem = ItemManager.Storage.GetById("Delte_Egenskaber", template != "bone" ? "1" : "2");
1013
1014 // Indstillinger
1015 var settings_Frontpage = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Frontpage"])) ? SettingsItem["Frontpage"] : "";
1016 var settings_Boligside = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Boligside"])) ? SettingsItem["Boligside"] : "";
1017 var settings_Maeglersogning = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Maeglersogning"])) ? SettingsItem["Maeglersogning"] : "";
1018 var settings_MinSide = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["MinSide"])) ? SettingsItem["MinSide"] : "";
1019 var settings_Sibling_Site = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Sibling_Site"])) ? SettingsItem["Sibling_Site"] : "";
1020 var settings_Sibling_Boligvisning = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Sibling_Boligvisning"])) ? SettingsItem["Sibling_Boligvisning"] : "";
1021 var settings_Product_Group = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Product_Group"])) ? SettingsItem["Product_Group"] : "";
1022 var settings_Boligagent = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Boligagent"])) ? SettingsItem["Boligagent"] : "";
1023 var settings_Persondatapolitik = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Persondatapolitik"])) ? SettingsItem["Persondatapolitik"] : "";
1024
1025 // API
1026 var settings_BoligSearchFeed = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoligSearchFeed"])) ? SettingsItem["BoligSearchFeed"] : "";
1027 var settings_BoligListFeed = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoligListFeed"])) ? SettingsItem["BoligListFeed"] : "";
1028 var settings_BoligListFeedErhverv = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoligListFeedErhverv"])) ? SettingsItem["BoligListFeedErhverv"] : "";
1029 var settings_BoligListFeedMaegler = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoligListFeedMaegler"])) ? SettingsItem["BoligListFeedMaegler"] : "";
1030 var settings_BoligCountFeed = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoligCountFeed"])) ? SettingsItem["BoligCountFeed"] : "";
1031 var settings_BoligMapFeed = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["BoligMapFeed"])) ? SettingsItem["BoligMapFeed"] : "";
1032 var settings_AdvisorSearchFeed = "Default.aspx?ID=" + Pageview.Area.Item["AdvisorSearchFeed"];
1033
1034 // Forside
1035 var settings_FrontpageOverskrift = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["FrontpageOverskrift"])) ? SettingsItem["FrontpageOverskrift"] : "";
1036 var settings_FrontpageVideo = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["FrontpageVideo"])) ? SettingsItem["FrontpageVideo"] : "";
1037 var settings_FrontpageVideoImage = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["FrontpageVideoImage"])) ? SettingsItem["FrontpageVideoImage"] : "";
1038
1039 // Tracking
1040 var settings_Google_Tag_Manager_ID = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["Google_Tag_Manager_ID"])) ? SettingsItem["Google_Tag_Manager_ID"] : "";
1041 if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"])))
1042 {
1043 settings_Google_Tag_Manager_ID = Converter.ToString(Pageview.Area.Item["BrokerGoogleTagManagerId"]);
1044 }
1045 var settings_Google_Tag_Manager_ID_BoligOne = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Google_Tag_Manager_ID_BoligOne"])) ? SettingsItem["Google_Tag_Manager_ID_BoligOne"] : "";
1046 var settings_Facebook_App_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Facebook_App_ID"])) ? SettingsItem["Facebook_App_ID"] : "";
1047 var settings_Leadhub_Pixel_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["Leadhub_Pixel_ID"])) ? SettingsItem["Leadhub_Pixel_ID"] : "";
1048 var settings_AntiFlicker_ID = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["AntiFlicker_ID"])) ? SettingsItem["AntiFlicker_ID"] : "";
1049 var settings_ConduzeId = Converter.ToString(SettingsItem["SpConduzeId"]);
1050 var settings_Weply = Converter.ToString(SettingsItem["SpWeplyId"]);
1051
1052 // Indstillinger for brugerfunktioner
1053 var settings_ForgotPwPage = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : "";
1054 var settings_NewsletterSignup = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : "";
1055 var settings_CreateUserModal = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : "";
1056 var settings_LoginModal = !string.IsNullOrEmpty(Convert.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : "";
1057
1058 int createUserParagraphId = 0;
1059 int loginParagraphId = 0;
1060 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId);
1061 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId);
1062
1063 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv.
1064 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv)
1065 int searchPageId = GetPageSettingsPageId("Boligside");
1066 if (searchPageId == 0)
1067 {
1068 searchPageId = GetWebsiteSettingsPageId("Boligside");
1069 }
1070
1071 int boligsideId = GetPageSettingsPageId("Boligside");
1072 if (boligsideId == 0)
1073 {
1074 boligsideId = GetWebsiteSettingsPageId("Boligside");
1075 }
1076
1077 string productGroupFilter = String.Empty;
1078 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null)
1079 {
1080 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString();
1081 }
1082
1083 if (GetString("DwAreaFirstActivePageID") == GetString("DwPageID") || GetBoolean("Item.Page.TransparentHeader"))
1084 {
1085 bodyClass += " frontpage";
1086 bodyClass += " header-transparent";
1087
1088 }
1089 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"]))
1090 {
1091 searchClass = "is-frontpage";
1092 }
1093
1094 bool isErhverv = false;
1095 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null)
1096 {
1097 var s = Pageview.Page.PropertyItem["Erhverv"].ToString();
1098 Boolean.TryParse(s, out isErhverv);
1099 }
1100
1101 bool isBrokerPage = false;
1102 if (!String.IsNullOrEmpty(GetString("Item.Area.M_glerGruppeId.Value")))
1103 {
1104 isBrokerPage = true;
1105 bodyClass = ""; // Get rid of transparent header on brokerPage
1106 }
1107
1108 string callTrackingId = GetString("Item.Area.CallTrackingId.Value");
1109
1110 RealEstate.User.Model.BrokerEmployee MyBroker = null;
1111 try
1112 {
1113 var MyB = new RealEstate.User.MyBroker();
1114 MyBroker = MyB.GetMyBroker();
1115 }
1116 catch
1117 {
1118 // Ignore
1119 }
1120
1121 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : "");
1122 string querySearchNameAttr = "search";
1123 // Overwrite search with zipcodeinterval if set
1124 if (Context.Current.Request.QueryString["zipcodeinterval"] != null)
1125 {
1126 querySearch = Context.Current.Request.QueryString["zipcodeinterval"];
1127 querySearchNameAttr = "zipcodeinterval";
1128 }
1129 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : "");
1130 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : "");
1131
1132 Dynamicweb.Security.UserManagement.User user = null;
1133 int userID = 0;
1134 string userName = "";
1135 string userEmail = "";
1136 string userPhone = "";
1137 string userZip = "";
1138 string userAddress = "";
1139
1140 if (UserContext.Current.IsLoggedOn)
1141 {
1142 user = UserContext.Current.User;
1143 userName = user.Name;
1144 userEmail = user.Email;
1145 userPhone = user.Phone;
1146 userZip = user.Zip;
1147 userAddress = user.Address;
1148 userID = user.ID;
1149 }
1150
1151 if (!String.IsNullOrEmpty(GetString("DW_extranet_AccessUserName")))
1152 {
1153 userName = GetString("DW_extranet_AccessUserName");
1154 }
1155
1156 string forgotPwSubject = Translate("email-forgot-pw-subject", "Glemt adgangskode");
1157 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png";
1158 string forgotPwTemplate = "/Login/email_template_forgotpw_RM.cshtml";
1159 string forgotPwSender = "noreply@mailreal.dk";
1160 string markerColor = "#213960";
1161
1162 var butikId = string.Empty;
1163 var primaryArea = string.Empty;
1164 string bEmail = string.Empty;
1165 if (MyBroker != null && MyBroker.Broker != null)
1166 {
1167 var item = Dynamicweb.Content.Items.ItemManager.Storage.GetById(MyBroker.Broker.ItemType, MyBroker.Broker.ItemId);
1168 butikId = Converter.ToString(item["CBMedlemsnummer"]);
1169 primaryArea = Converter.ToString(item["PrimaertOmraade"]);
1170 bEmail = Converter.ToString(item["Email"]);
1171 }
1172
1173 var salesAssessmentPageId = Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment"));
1174 var termsMail = "info@realmaeglerne.dk";
1175 }
1176
1177 <!DOCTYPE html>
1178 <html>
1179 <head>
1180 <meta charset="utf-8">
1181 <title>@MetaTitle</title>
1182 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
1183 <meta name="description" content="@MetaDescription">
1184 <meta name="keywords" content="@MetaKeywords">
1185 <meta name="format-detection" content="telephone=no">
1186 <meta http-equiv="Expires" content="60">
1187 <meta name="robots" content="@(Pageview.Area.Noindex ? "noindex" : "index"),@(Pageview.Area.Nofollow ? "nofollow" : "follow")">
1188
1189 @RenderSnippet("OpenGraphTags")
1190
1191 @*RICH SNIPPETS*@
1192
1193 <script type="application/ld+json">
1194 {
1195 "context": "https://schema.org/",
1196 "@@type": "WebSite",
1197 "name": "RealMæglerne",
1198 "url": "https://www.realmaeglerne.dk/",
1199 "potentialAction": {
1200 "type": "SearchAction",
1201 "target": "https://www.realmaeglerne.dk/find-maegler?q={search_term_string}",
1202 "query-input": "required name=search_term_string"
1203 }
1204 }
1205 </script>
1206
1207 <script type="application/ld+json">
1208 {
1209 "context": "https://schema.org",
1210 "@@type": "Corporation",
1211 "name": "RealMæglerne",
1212 "alternateName": "R&B Mægler A/S",
1213 "url": "https://www.realmaeglerne.dk",
1214 "logo": "https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png",
1215 "contactPoint": {
1216 "type": "ContactPoint",
1217 "telephone": "+4570237153",
1218 "contactType": "sales",
1219 "areaServed": "DK",
1220 "availableLanguage": "Danish"
1221 },
1222 "sameAs": [
1223 "https://www.facebook.com/realmaeglerne/",
1224 "https://www.linkedin.com/company/realmæglerne/",
1225 "https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g",
1226 "https://www.realmaeglerne.dk/"
1227 ]
1228 }
1229 </script>
1230 @RenderSnippet("StructuredData")
1231 @*RICH SNIPPETS END*@
1232
1233 @*FONT AWESOME*@
1234 @{
1235 <link rel="stylesheet" href="@(TemplateUrl)assets/fontawesome/css/all.css" async />
1236 <link rel="stylesheet" href="@mainCSS" async />
1237 <link rel="icon" type="image/ico" href="@(TemplateUrl)assets/images/favicons/favicon-real.ico?v=1">
1238 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-16x16.png" sizes="16x16">
1239 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-32x32.png" sizes="32x32">
1240 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-96x96.png" sizes="96x96">
1241 <meta name="google-site-verification" content="hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg" />
1242 }
1243 <!-- Cookie Saver Preload -->
1244 <script>
1245 (function () { function r(n, e, t) { function i(o, u) { if (!e[o]) { if (!n[o]) { var f = "function" == typeof require && require; if (!u && f) return f(o, !0); if (a) return a(o, !0); var c = new Error("Cannot find module '" + o + "'"); throw c.code = "MODULE_NOT_FOUND", c } var s = e[o] = { exports: {} }; n[o][0].call(s.exports, function (r) { var e = n[o][1][r]; return i(e || r) }, s, s.exports, r, n, e, t) } return e[o].exports } for (var a = "function" == typeof require && require, o = 0; o < t.length; o++)i(t[o]); return i } return r })()({ 1: [function (r, n, e) { "use strict"; function t(r, n) { return o(r) || a(r, n) || i() } function i() { throw new TypeError("Invalid attempt to destructure non-iterable instance") } function a(r, n) { var e = []; var t = true; var i = false; var a = undefined; try { for (var o = r[Symbol.iterator](), u; !(t = (u = o.next()).done); t = true) { e.push(u.value); if (n && e.length === n) break } } catch (r) { i = true; a = r } finally { try { if (!t && o["return"] != null) o["return"]() } finally { if (i) throw a } } return e } function o(r) { if (Array.isArray(r)) return r } (function (r, n) { var e = "3.2"; var i = Date.now(); if (!Object.entries) { Object.entries = function (r) { var n = Object.keys(r), e = n.length, t = new Array(e); while (e--) { t[e] = [n[e], r[n[e]]] } return t } } function a() { var r = "cs_test_cookie=1"; var n = document.location.hostname.split("."); for (var e = n.length - 1; e >= 0; e--) { var t = n.slice(e).join("."); document.cookie = r + ";domain=." + t + ";"; if (document.cookie.indexOf(r) > -1) { document.cookie = r.split("=")[0] + "=;domain=." + t + ";expires=Thu, 01 Jan 1970 00:00:01 GMT;"; return t } } return document.location.hostname } function o(r, n) { var e = [n]; var t = r.substring(0, r.length - n.length); if (t.length > 0) { var i = t.split("."); i.pop(); var a = n; for (var o = i.length - 1; o >= 0; o--) { a = i[o] + "." + a; e.push(a) } } return e } function u(r, n, e, t, i) { var a = r + "=" + n + ";"; if (e !== null) { a += "expires=" + e + ";" } if (t !== null) { a += "domain=" + t + ";" } if (i) { a += "secure;" } a += "path=/;"; document.cookie = a } var f = Date.now(); var c = []; var s = document.cookie; if (!s) { return } var l = a(); var v = o(document.location.hostname, l); s = s.split(/; */); var h = {}; for (var d = 0; d < s.length; d++) { h[s[d].substring(0, s[d].indexOf("="))] = s[d].substring(s[d].indexOf("=") + 1) } var g = "_acs_"; var p = "_acs__acsr_"; var b = []; Object.entries(h).forEach(function (r) { var n = t(r, 2), e = n[0], i = n[1]; if (e.indexOf(g) === 0) { var a = true; for (var o in v) { if (e === g + v[o]) { a = false; break } } if (a) { b.push(e); return } try { var s = JSON.parse(h[e]); if (s.c) { var l = e.substring(g.length); for (var d = 0, p = Object.entries(s.c); d < p.length; d++) { var m = t(p[d], 2), O = m[0], w = m[1]; var x = parseInt(w.e, 36) * 1e3; if (!(O in h) && x > f) { u(O, w.v, new Date(x).toUTCString(), w.r ? null : "." + l, w.s ? true : false) } } } } catch (r) { c.push({ n: e, v: h[e], e: r }) } } }); b.forEach(function (r) { var n = h[r]; if (r.indexOf(p) === 0) { if (!(r.substring(p.length) in h)) { u(r.substring(p.length), n, null, null, null); return } } if (r.indexOf(g) === 0) { if (!(r.substring(g.length) in h)) { u(r.substring(g.length), n, null, l, null) } } }); var m = Date.now(); r.acqps = { v: e, s: i, e: m, t: m - i, w: c } })(window) }, {}] }, {}, [1]);
1246 </script>
1247 <!-- End Cookie Saver -->
1248
1249 @if (!string.IsNullOrEmpty(settings_AntiFlicker_ID.ToString()))
1250 {
1251 <!-- Anti-flicker snippet -->
1252 <style>
1253 .async-hide {
1254 opacity: 0 !important
1255 }
1256 </style>
1257 <script>
1258 (function (a, s, y, n, c, h, i, d, e) {
1259 s.className += ' ' + y; h.start = 1 * new Date;
1260 h.end = i = function () { s.className = s.className.replace(RegExp(' ?' + y), '') };
1261 (a[n] = a[n] || []).hide = h; setTimeout(function () { i(); h.end = null }, c); h.timeout = c;
1262 })(window, document.documentElement, 'async-hide', 'dataLayer', 4000,
1263 { '@settings_Google_Tag_Manager_ID': true });</script>
1264
1265 }
1266
1267 @if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId))
1268 {
1269 <script type="text/javascript" src="https://call.call-tracking.dk/getJavascript?custid=@callTrackingId"></script>
1270 }
1271
1272 @if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString()))
1273 {
1274 <!-- Datalaget -->
1275 <script>
1276 window.dataLayer = window.dataLayer || [];
1277 </script>
1278
1279 <!-- Andet -->
1280 <script>
1281 window.dataLayer.push({
1282 'division': '@(isErhverv ? "b2b" : "b2c")', // 'b2c', 'b2b', 'project' ...
1283 });
1284 </script>
1285
1286 @RenderSnippet("GtmDatalayer")
1287
1288 <!-- Google Tag Manager -->
1289 <script>
1290 (function (w, d, s, l, i) {
1291 w[l] = w[l] || []; w[l].push({
1292 'gtm.start':
1293 new Date().getTime(), event: 'gtm.js'
1294 }); var f = d.getElementsByTagName(s)[0],
1295 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
1296 'https://frap.realmaeglerne.dk/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
1297 })(window, document, 'script', 'dataLayer', '@Converter.ToString(settings_Google_Tag_Manager_ID)');
1298 </script>
1299 }
1300
1301 @if (!string.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString()))
1302 {
1303 <!-- Begin Leadhub Pixel Code -->
1304 <script>
1305 (function(w,d,x,n,u,t,f,s,o){
1306 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){
1307 (w[f].q=w[f].q||[]).push([n,d])};w[f].l=1*new Date();s=d.createElement(x); s.async=1;s.src=u+'?t='+t;o=d.getElementsByTagName(x)[0];o.parentNode.insertBefore(s,o)
1308 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '@settings_Leadhub_Pixel_ID');
1309 lhi('pageview');
1310 </script>
1311 <!-- End Leadhub Pixel Code -->
1312 }
1313
1314 <script>
1315 // Global namespace used for fetching API feeds from DW
1316 var RMAPI = (RMAPI) ? RMAPI : {};
1317 var ApiPreFix = "/Default.aspx?ID=";
1318 RMAPI.BoligCountFeed = ApiPreFix + "@settings_BoligCountFeed";
1319 RMAPI.BoligListFeed = ApiPreFix + "@settings_BoligListFeed" + "&refpageid=@Pageview.Page.ID";
1320 RMAPI.BoligListFeedErhverv = "@settings_BoligListFeedErhverv";
1321 RMAPI.BoligListFeedMaegler = ApiPreFix + "@settings_BoligListFeedMaegler" + "&refpageid=@Pageview.Page.ID";
1322 RMAPI.BoligSearchFeed = ApiPreFix + "@settings_BoligSearchFeed";
1323 RMAPI.BoligMapFeed = ApiPreFix + "@settings_BoligMapFeed";
1324 RMAPI.Boligagent = "@settings_Boligagent";
1325 RMAPI.IsErhverv = @isErhverv.ToString().ToLower();
1326 RMAPI.ProductGroupFilter = "@productGroupFilter";
1327 RMAPI.ButikId = "@butikId";
1328 RMAPI.Boligvisning = false;
1329 RMAPI.RefPageId = "@Pageview.Page.ID";
1330 RMAPI.Template = "@template";
1331 RMAPI.SliderSettings = @JsonConvert.SerializeObject(Settings.Site);
1332 RMAPI.AdvisorSearchFeed = "@settings_AdvisorSearchFeed";
1333 RMAPI.LoadingIcon = "@loadingIcon";
1334 RMAPI.MarkerColor = "@markerColor";
1335 RMAPI.IsBoligOne = "false";
1336 RMAPI.mapMarkerUrl = "@mapMarkerUrl";
1337 RMAPI.settings_ForgotPwPage = "@settings_ForgotPwPage";
1338 </script>
1339
1340 @if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString()))
1341 {
1342 <!-- Facebook Pixel Code -->
1343 <script>
1344 !function (f, b, e, v, n, t, s) {
1345 if (f.fbq) return; n = f.fbq = function () {
1346 n.callMethod ?
1347 n.callMethod.apply(n, arguments) : n.queue.push(arguments)
1348 };
1349 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';
1350 n.queue = []; t = b.createElement(e); t.async = !0;
1351 t.src = v; s = b.getElementsByTagName(e)[0];
1352 s.parentNode.insertBefore(t, s)
1353 }(window, document, 'script',
1354 'https://connect.facebook.net/en_US/fbevents.js');
1355 fbq('init', '@settings_Facebook_App_ID');
1356 fbq('track', 'PageView');
1357 </script>
1358 <noscript>
1359 <img height="1" width="1" src="https://www.facebook.com/tr?id=@settings_Facebook_App_ID&ev=PageView&noscript=1" />
1360 </noscript>
1361 <!-- End Facebook Pixel Code -->
1362 }
1363
1364 <script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=5d68cfaf5fea9f001288d9ac&product=inline-share-buttons' async='async'></script>
1365
1366 </head>
1367
1368 <body class="@template@bodyClass theme-@Pageview.Page.ItemType.ToLower()" data-spforgotpwtemplate="@forgotPwTemplate" data-spforgotpwsender="@forgotPwSender" data-spforgotpwsubject="@forgotPwSubject" data-spsalesassesmentid="@salesAssessmentPageId">
1369 @if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID_BoligOne.ToString()))
1370 {
1371 <!-- Google Tag Manager (noscript) -->
1372 <noscript>
1373 <iframe src="https://www.googletagmanager.com/ns.html?id=@settings_Google_Tag_Manager_ID_BoligOne.ToString()"
1374 height="0" width="0" style="display:none;visibility:hidden"></iframe>
1375 </noscript>
1376 <!-- End Google Tag Manager (noscript) -->
1377 }
1378
1379 @if (Pageview.Page.ItemType == "AgentPage")
1380 {
1381 var agentUserGroup = GetValue("Real:Broker") as Dynamicweb.Security.UserManagement.UserGroup;
1382 var agentTitle = agentUserGroup.CompanyName.IsNotNullOrEmpty() ? agentUserGroup.CompanyName : agentUserGroup.Name;
1383 int mainSiteAreaId = Custom.Navigation.Config.GetMainSiteAreaId();
1384
1385 var myAccountPage = Dynamicweb.Content.Services.Pages.GetPageByNavigationTag(mainSiteAreaId,"MyAccount");
1386
1387 <div class="header__container container">
1388 <div class="header__logo">
1389 <a href="/" title="">
1390 <img src="@(logoUrl)" alt="" />
1391 </a>
1392 </div>
1393 <div class="header__title">
1394 @foreach (var line in agentTitle.Split(new[] { ' ' }, 2, StringSplitOptions.None))
1395 {
1396 <span>@line</span>
1397 }
1398 </div>
1399 @if (myAccountPage is object)
1400 {
1401 <div class="header__navigation d-none d-md-flex">
1402 <div class="header__navigation">
1403 <div class="header__Link">
1404 <ul>
1405 <li class="d-flex align-items-center">
1406 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
1407 <path d="M16.6663 17.5C16.6663 16.337 16.6663 15.7555 16.5228 15.2824C16.1996 14.217 15.366 13.3834 14.3006 13.0602C13.8275 12.9167 13.246 12.9167 12.083 12.9167H7.91634C6.75337 12.9167 6.17189 12.9167 5.69872 13.0602C4.63339 13.3834 3.79971 14.217 3.47654 15.2824C3.33301 15.7555 3.33301 16.337 3.33301 17.5M13.7497 6.25C13.7497 8.32107 12.0707 10 9.99967 10C7.92861 10 6.24967 8.32107 6.24967 6.25C6.24967 4.17893 7.92861 2.5 9.99967 2.5C12.0707 2.5 13.7497 4.17893 13.7497 6.25Z" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
1408 </svg>
1409 <a class="ml-2" href="/Default.aspx?ID=@myAccountPage.ID" target="_blank">@Translate("Mit RealMæglerne")</a>
1410 </li>
1411 </ul>
1412 </div>
1413 </div>
1414 </div>
1415
1416 }
1417 <div class="header__search js-mainsearch">
1418 @Translate("Søg bolig")
1419 </div>
1420 <div class="header__navigation">
1421 <div class="header__navigation-icon menu-slide">
1422 <div class="d-none d-md-block">
1423 @Translate("Menu")
1424 </div>
1425 </div>
1426 </div>
1427 </div>
1428 }
1429 else
1430 {
1431 <div class="header logo">
1432 <div class="logo">
1433 <a href="/">
1434 <img src="@logoUrl" alt='RealMæglerne' />
1435 </a>
1436 </div>
1437 </div>
1438 <div class="header shortcuts">
1439 <div class="header-shortcuts float-right">
1440 @if (Pageview.User is object)
1441 {
1442 <a href='javascript:panelLogin()' class="login extra d-flex align-items-center float-left border-right">
1443 <i class="fa fa-user-circle" aria-hidden="true"></i><span class="hidden d-md-block">@Translate("Smartpage:Shortcuts.MinProfil", "Min profil") @*@userName*@</span>
1444 </a>
1445 }
1446 else
1447 {
1448 <a href='javascript:panelLogin()' class="login d-flex align-items-center float-left border-right">
1449 <i class="fa fa-user-circle" aria-hidden="true"></i><span class="login-text hidden d-md-block"> @Translate("Smartpage:Shortcuts.Login", "Login")</span>
1450 </a>
1451 }
1452 <a href='' class="search-menu d-flex align-items-center float-left border-right js-mainsearch @searchClass">
1453 <i class="fa fa-search" aria-hidden="true"></i><span class="search-menu-text hidden d-md-block"> @Translate("Smartpage:Search.Søg bolig", "Søg bolig")</span>
1454 </a>
1455 <div class="menu-slide d-flex align-items-center">
1456 <b></b>
1457 <span class="menu-text">Menu</span>
1458 </div>
1459 </div>
1460 </div>
1461 }
1462
1463 <div class="search-modal">
1464
1465 @if (Converter.ToString(Pageview.Area.Item["Type"]) == "real")
1466 {
1467 <div class="main-search-form">
1468 <i class="fal fa-times float-right fa-2x js-close-search close-search"></i>
1469 <div class="row mb-3 align-items-center">
1470 <div class="col-xs-12 col-md-3 border-right">
1471 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
1472 </div>
1473 <div class="col-xs-12 col-md-9 home-count d-none d-md-block">
1474 <span class="search-count" id="searchCounterMain">0</span> <span class="position-relative">@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")<span class="loader js-loader"></span></span>
1475
1476 </div>
1477 </div>
1478
1479 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET">
1480 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" />
1481 <div class="row form-wrapper no-gutters">
1482
1483 <div class="col-xs-12 col-md-5 col-searchbar">
1484 <div class="searchbar">
1485 <input type="text" name="@querySearchNameAttr" id="searchfield" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(querySearch)" />
1486 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" />
1487 <input type="hidden" id="zipcodeto" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" />
1488 </div>
1489 </div>
1490 <div class="col-xs-12 col-md-5">
1491 <div class="row no-gutters">
1492 <div class="col-xs-12 col-md-6 input-col">
1493 <div class="dropdown">
1494 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1495 @Translate("Smartpage:Search.Boligtype", "Boligtype")
1496 </button>
1497 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
1498 <ul class="bolig-dropdown list-unstyled">
1499 @{
1500 RenderBoligtypeCheckboxesDropdown();
1501 }
1502 </ul>
1503 <span class="border-fat"></span>
1504 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
1505 </div>
1506 </div>
1507 </div>
1508 <div class="col-xs-12 col-md-6 input-col">
1509 <div class="dropdown">
1510 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1511 @Translate("Smartpage:Search.Pris", "Pris")
1512 </button>
1513 <div class="dropdown-menu box-shadow dropdown-price js-dropdown-price" aria-labelledby="Pris">
1514 <input name="pricemin" type="text" class="form-control mb-10 js-auto-thousand js-pricemin-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemin"]) ? Context.Current.Request.QueryString["pricemin"] : "")' />
1515 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
1516 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
1517 @for (var i = 0; i <= 10000000; i += 100000)
1518 {
1519 if (i == 10000000)
1520 {
1521 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
1522 }
1523 else
1524 {
1525 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
1526 }
1527 }
1528 </select>
1529
1530 <input type="text" name="pricemax" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["pricemax"]) ? Context.Current.Request.QueryString["pricemax"] : "")' />
1531 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
1532 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
1533 @for (var i = 0; i <= 10000000; i += 100000)
1534 {
1535 if (i == 10000000)
1536 {
1537 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
1538 }
1539 else
1540 {
1541 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
1542 }
1543 }
1544 </select>
1545 </div>
1546 </div>
1547 </div>
1548 </div>
1549 </div>
1550 <div class="col-xs-12 col-md-2 d-none d-md-block">
1551 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
1552 </div>
1553 </div>
1554
1555 <div class="row moresearch-btn no-gutters">
1556 <div class="col-sm-12">
1557 <div class="row align-items-center no-gutters">
1558 <div class="col-12 col-md-4">
1559 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch">
1560 <span class="moreSearch-text"><i class="fas fa-plus open-close"></i> <span class="not-open white">@Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")</span> <span class="open white"><span class="js-filter-count">0</span> @Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt") </span></span>
1561 </button>
1562 </div>
1563 <div class="col-6 col-md-2 mb-xs-4">
1564 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
1565 </div>
1566 </div>
1567
1568 <div class="collapse" id="moreSearch-master">
1569
1570 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
1571 <div class="row align-items-end mb-30">
1572 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
1573 <div class="filter-container row">
1574 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
1575 <div class="col-6 pr-sm-0 pr-2">
1576 <input type="text" name="boligarealmin" id="boligarealmin" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmin"]) ? Context.Current.Request.QueryString["boligarealmin"] : "")' />
1577 <select class="form-control js-boligarealmin-frontpage-select js-count">
1578 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
1579 @for (var i = 0; i <= 300; i += 10)
1580 {
1581 if (i == 300)
1582 {
1583 <option>@i+</option>
1584 }
1585 else
1586 {
1587 <option>@i</option>
1588 }
1589 }
1590 </select>
1591
1592 </div>
1593 <div class="col-6 pl-sm-0 pl-2">
1594 <input type="text" name="boligarealmax" id="boligarealmax" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["boligarealmax"]) ? Context.Current.Request.QueryString["boligarealmax"] : "")' />
1595 <select class="form-control js-boligarealmax-frontpage-select js-count">
1596 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
1597 @for (var i = 0; i <= 300; i += 10)
1598 {
1599 if (i == 300)
1600 {
1601 <option>@i+</option>
1602 }
1603 else
1604 {
1605 <option>@i</option>
1606 }
1607 }
1608 </select>
1609
1610 </div>
1611 </div>
1612 </div>
1613 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
1614 <div class="filter-container row">
1615 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
1616 <div class="col-6 pr-sm-0 pr-2">
1617 <input type="text" name="grundarealmin" id="grundarealmin" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmin"]) ? Context.Current.Request.QueryString["grundarealmin"] : "")' />
1618 <select class="form-control js-grundarealmin-frontpage-select js-count">
1619 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
1620 @for (var i = 0; i <= 10000; i += 100)
1621 {
1622 if (i == 10000)
1623 {
1624 <option>@i+</option>
1625 }
1626 else
1627 {
1628 <option>@i</option>
1629 }
1630 }
1631 </select>
1632 </div>
1633 <div class="col-6 pl-sm-0 pl-2">
1634 <input type="text" name="grundarealmax" id="grundarealmax" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["grundarealmax"]) ? Context.Current.Request.QueryString["grundarealmax"] : "")' />
1635 <select class="form-control js-grundarealmax-frontpage-select js-count">
1636 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
1637 @for (var i = 0; i <= 10000; i += 100)
1638 {
1639 if (i == 10000)
1640 {
1641 <option>@i+</option>
1642 }
1643 else
1644 {
1645 <option>@i</option>
1646 }
1647 }
1648 </select>
1649 </div>
1650 </div>
1651 </div>
1652 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
1653 <div class="filter-container row">
1654 <label class="d-block col-12">Antal rum</label>
1655 <div class="col-6 pr-sm-0 pr-2">
1656 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count">
1657 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
1658 @{
1659 RenderSelectValue("1", "1", "roomsmin");
1660 RenderSelectValue("2", "2", "roomsmin");
1661 RenderSelectValue("3", "3", "roomsmin");
1662 RenderSelectValue("4", "4", "roomsmin");
1663 RenderSelectValue("5+", "5", "roomsmin");
1664 }
1665 </select>
1666 </div>
1667 <div class="col-6 pl-sm-0 pl-2">
1668 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count">
1669 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
1670 @{
1671 RenderSelectValue("1", "1", "roomsmax");
1672 RenderSelectValue("2", "2", "roomsmax");
1673 RenderSelectValue("3", "3", "roomsmax");
1674 RenderSelectValue("4", "4", "roomsmax");
1675 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax");
1676 }
1677 </select>
1678 </div>
1679 </div>
1680 </div>
1681 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
1682 <div class="row">
1683 <div class="col-12 pr-2">
1684 <div class="filter-container">
1685 <label class="d-block">Energimærke</label>
1686 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count">
1687 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
1688 <option value="01">G</option>
1689 <option value="02">F</option>
1690 <option value="03">E</option>
1691 <option value="04">D</option>
1692 <option value="05">C</option>
1693 <option value="06">B</option>
1694 <option value="07">A</option>
1695 <option value="08">A2010</option>
1696 <option value="09">A2015</option>
1697 <option value="10">A2020+</option>
1698 </select>
1699 </div>
1700 </div>
1701 </div>
1702 </div>
1703 <div class="col-12 col-sm-6 col-lg-3 mt-3">
1704 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
1705 <div class="filter-container row">
1706 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
1707 <div class="col-6 pr-sm-0 pr-2">
1708 <input type="text" name="subsidymin" id="subsidymin" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymin"]) ? Context.Current.Request.QueryString["subsidymin"] : "")' />
1709 <select class="form-control js-subsidymin-frontpage-select js-count">
1710 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
1711 @for (var i = 0; i <= 25000; i += 1250)
1712 {
1713 if (i == 25000)
1714 {
1715 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
1716 }
1717 else
1718 {
1719 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
1720 }
1721 }
1722 </select>
1723 </div>
1724 <div class="col-6 pl-sm-0 pl-2">
1725 <input type="text" name="subsidymax" id="subsidymax" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")' value='@(!string.IsNullOrEmpty(Context.Current.Request.QueryString["subsidymax"]) ? Context.Current.Request.QueryString["subsidymax"] : "")' />
1726 <select class="form-control js-subsidymax-frontpage-select js-count">
1727 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
1728 @for (var i = 0; i <= 25000; i += 1250)
1729 {
1730 if (i == 25000)
1731 {
1732 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
1733 }
1734 else
1735 {
1736 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
1737 }
1738 }
1739 </select>
1740 </div>
1741 </div>
1742 </div>
1743 <div class="col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0">
1744 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
1745 </div>
1746 </div>
1747 </div>
1748 </div>
1749 </div>
1750 <div class="row d-block d-md-none form-wrapper no-gutters">
1751 <div class="col-xs-12 col-md-2">
1752 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
1753 </div>
1754 </div>
1755
1756
1757 </form>
1758 </div>
1759 }
1760 else
1761 {
1762 <div class="main-search-form center">
1763 <i class="fal fa-times float-right fa-2x js-close-search"></i>
1764 <div class="row mb-3 align-items-center">
1765 <div class="col-xs-12 col-md-5 border-right">
1766 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
1767 </div>
1768 <div class="col-xs-12 col-md-7 home-count d-none d-md-block">
1769 <span class="search-count" id="searchCounterMain">0</span> <span>@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")</span>
1770 </div>
1771 </div>
1772
1773 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET">
1774 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" />
1775 <div class="row form-wrapper no-gutters">
1776
1777 <div class="col-12 mb-10">
1778 <div class="searchbar">
1779 <input type="text" name="@querySearchNameAttr" id="searchfield" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value='@querySearch' />
1780 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value='@queryZipCodeFrom' />
1781 <input type="hidden" id="zipcodeto" name="zipcodeto" value='@queryZipCodeTo' />
1782 </div>
1783 </div>
1784 <div class="col-xs-12 col-md-8">
1785 <div class="row no-gutters">
1786 <div class="col-xs-12 col-md-6 input-col">
1787 <div class="dropdown">
1788 <button class="btn btn-dropdown dropdown-toggle reverse js-count" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1789 @Translate("Smartpage:Search.Boligtype", "Boligtype")
1790 </button>
1791 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
1792 <ul class="bolig-dropdown list-unstyled">
1793 @{
1794 RenderBoligtypeCheckboxesDropdown();
1795 }
1796 </ul>
1797 <span class="border-fat"></span>
1798 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
1799 </div>
1800
1801 </div>
1802
1803 </div>
1804 <div class="col-xs-12 col-md-6 input-col">
1805 <div class="dropdown">
1806 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1807 @Translate("Smartpage:Search.Pris", "Pris")
1808 </button>
1809 <div class="dropdown-menu box-shadow dropdown-price" aria-labelledby="Pris">
1810 <input type="text" name="pricemin" class="form-control mb-10 js-auto-thousand js-pricemin-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")' />
1811 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
1812 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
1813 @for (var i = 0; i <= 10000000; i += 100000)
1814 {
1815 if (i == 10000000)
1816 {
1817 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
1818 }
1819 else
1820 {
1821 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
1822 }
1823 }
1824 </select>
1825
1826 <input type="text" name="pricemax" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")' />
1827 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
1828 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
1829 @for (var i = 0; i <= 10000000; i += 100000)
1830 {
1831 if (i == 10000000)
1832 {
1833 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
1834 }
1835 else
1836 {
1837 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
1838 }
1839 }
1840 </select>
1841 </div>
1842 </div>
1843 </div>
1844 </div>
1845 </div>
1846 <div class="col-xs-12 col-md-4 d-none d-md-block">
1847 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
1848 </div>
1849 </div>
1850
1851 <div class="row moresearch-btn no-gutters">
1852 <div class="col-sm-12">
1853 <div class="row align-items-center no-gutters">
1854 <div class="col-12 col-md-5">
1855 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch-master">
1856 <span class="moreSearch-text"><i class="fas fa-plus open-close white"></i> <span class="not-open white">@Translate("Smartpage:Search.Flere søgemuligheder", "Flere søgemuligheder")</span> <span class="open white"><span class="js-filter-count">0</span> @Translate("Smartpage:Search.FiltreAnvendt", "filtre anvendt") </span></span>
1857 </button>
1858 </div>
1859 <div class="col-6 col-md-3 mb-xs-4">
1860 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
1861 </div>
1862 <div class="col-6 col-md-4 mb-xs-4">
1863 <div class="parent-purchases">
1864 <label class="checkbox-container white">
1865 @Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet")
1866 <input type="checkbox" name="foraeldrekoebegnet" value="true" class="js-input-check">
1867 <span class="checkmark grey"></span>
1868 </label>
1869 </div>
1870 </div>
1871 </div>
1872
1873 <div class="collapse" id="moreSearch-master">
1874
1875 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
1876 <div class="row align-items-end mb-30">
1877 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
1878 <div class="filter-container row">
1879 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
1880 <div class="col-6 pr-sm-0 pr-2">
1881 <input type="text" name="boligarealmin" id="boligarealmin" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' />
1882 <select class="form-control js-boligarealmin-frontpage-select js-count">
1883 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
1884 @for (var i = 0; i <= 300; i += 10)
1885 {
1886 if (i == 300)
1887 {
1888 <option>@i+</option>
1889 }
1890 else
1891 {
1892 <option>@i</option>
1893 }
1894 }
1895 </select>
1896 </div>
1897 <div class="col-6 pl-sm-0 pl-2">
1898 <input type="text" name="boligarealmax" id="boligarealmax" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' />
1899 <select class="form-control js-boligarealmax-frontpage-select js-count">
1900 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
1901 @for (var i = 0; i <= 300; i += 10)
1902 {
1903 if (i == 300)
1904 {
1905 <option>@i+</option>
1906 }
1907 else
1908 {
1909 <option>@i</option>
1910 }
1911 }
1912 </select>
1913 </div>
1914 </div>
1915 </div>
1916 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
1917 <div class="filter-container row">
1918 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
1919 <div class="col-6 pr-sm-0 pr-2">
1920 <input type="text" name="grundarealmin" id="grundarealmin" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' />
1921 <select class="form-control js-grundarealmin-frontpage-select js-count">
1922 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
1923 @for (var i = 0; i <= 10000; i += 100)
1924 {
1925 if (i == 10000)
1926 {
1927 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
1928 }
1929 else
1930 {
1931 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
1932 }
1933 }
1934 </select>
1935 </div>
1936 <div class="col-6 pl-sm-0 pl-2">
1937 <input type="text" name="grundarealmax" id="grundarealmax" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' />
1938 <select class="form-control js-grundarealmax-frontpage-select">
1939 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
1940 @for (var i = 0; i <= 10000; i += 100)
1941 {
1942 if (i == 10000)
1943 {
1944 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
1945 }
1946 else
1947 {
1948 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
1949 }
1950 }
1951 </select>
1952 </div>
1953 </div>
1954 </div>
1955 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
1956 <div class="filter-container row">
1957 <label class="d-block col-12">Antal rum</label>
1958
1959 <div class="col-6 pr-sm-0 pr-2">
1960 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count">
1961 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
1962 <option value="1">1</option>
1963 <option value="2">2</option>
1964 <option value="3">3</option>
1965 <option value="4">4</option>
1966 <option value="5">5+</option>
1967 </select>
1968 </div>
1969 <div class="col-6 pl-sm-0 pl-2">
1970 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count">
1971 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
1972 <option value="1">1</option>
1973 <option value="2">2</option>
1974 <option value="3">3</option>
1975 <option value="4">4</option>
1976 <option value="5">5+</option>
1977 </select>
1978 </div>
1979 </div>
1980 </div>
1981 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
1982 <div class="row">
1983 <div class="col-12 pr-2">
1984 <div class="filter-container">
1985 <label class="d-block">Energimærke</label>
1986 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count">
1987 <option disabled selected="selected">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
1988 <option value="01">G</option>
1989 <option value="02">F</option>
1990 <option value="03">E</option>
1991 <option value="04">D</option>
1992 <option value="05">C</option>
1993 <option value="06">B</option>
1994 <option value="07">A</option>
1995 <option value="08">A2010</option>
1996 <option value="09">A2015</option>
1997 <option value="10">A2020+</option>
1998 </select>
1999 </div>
2000 </div>
2001 </div>
2002 </div>
2003 <div class="col-12 col-sm-6 col-lg-6 mt-3">
2004 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
2005 <div class="filter-container row">
2006 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
2007 <div class="col-6 pr-sm-0 pr-2">
2008 <input type="text" name="subsidymin" id="subsidymin" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Min", "Min")' />
2009 <select class="form-control js-subsidymin-frontpage-select js-count">
2010 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
2011 @for (var i = 0; i <= 25000; i += 1250)
2012 {
2013 if (i == 25000)
2014 {
2015 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
2016 }
2017 else
2018 {
2019 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
2020 }
2021 }
2022 </select>
2023 </div>
2024 <div class="col-6 pl-sm-0 pl-2">
2025 <input type="text" name="subsidymax" id="subsidymax" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Max", "Max")' />
2026 <select class="form-control js-subsidymax-frontpage-select js-count">
2027 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
2028 @for (var i = 0; i <= 25000; i += 1250)
2029 {
2030 if (i == 25000)
2031 {
2032 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
2033 }
2034 else
2035 {
2036 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
2037 }
2038 }
2039 </select>
2040 </div>
2041 </div>
2042 </div>
2043 <div class="col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0">
2044 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
2045 </div>
2046 </div>
2047 </div>
2048 </div>
2049 </div>
2050 <div class="row d-block d-md-none form-wrapper no-gutters">
2051 <div class="col-xs-12 col-md-2">
2052 <button type="submit" class="btn btn-block btn-search dark-red"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
2053 </div>
2054 </div>
2055
2056
2057 </form>
2058 </div>
2059 }
2060
2061 </div>
2062 @{
2063 RenderSlideMenu(false, false, Converter.ToString(settings_Maeglersogning));
2064 }
2065
2066 @if (isBrokerPage && Pageview.Page.ItemType != "AgentPage")
2067 {
2068 <section class="maegler-navbar">
2069 @RenderNavigation(new
2070 {
2071 id = "navbar-main",
2072 cssclass = "dwnavigation",
2073 template = "ul_li.xslt",
2074 StartLevel = 1,
2075 EndLevel = 1
2076 })
2077 </section>
2078 }
2079
2080 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2081 @using Custom.Integration.Brokers;
2082 @using Newtonsoft.Json;
2083 @using RealMaeglerne.Dynamicweb;
2084 @using RealMaeglerne.Dynamicweb.Models;
2085 @using System.Xml.Linq;
2086 @using Dynamicweb.Core;
2087 @using System.Linq;
2088 @using Dynamicweb;
2089
2090
2091 @GetValue("Title(Forside)")
2092 @GetValue("Description(Forsideskabelon til Mæglersider)")
2093 @{
2094 string siteUrl = Utils.GetBaseUrl(true);
2095 var Broker = GetValue("Real:Broker") as Dynamicweb.Security.UserManagement.UserGroup;
2096 string brokerName = Broker.Name;
2097 if (!string.IsNullOrEmpty(Broker.CompanyName))
2098 {
2099 brokerName = Broker.CompanyName;
2100 }
2101 string brokerPhone = RealMaeglerne.Library.Helper.FormatPhoneNumber(Broker.Telephone);
2102 string brokerEmail = Broker.Item().GetString("Email");
2103 string brokerID = Broker.ID.ToString();
2104 string brokerRating = "";
2105 string brokerImage = Broker.GeolocationIcon.ToString();
2106 string brokerUrl = siteUrl + GetString("DwAreaName");
2107 string brokerTitle = GetString("Item.SPTitleForDesc");
2108 string brokerDesc = GetString("Item.Beskrivelse");
2109 string teaserDesc = System.Text.RegularExpressions.Regex.Replace(brokerDesc, "<[^>]*>", string.Empty);
2110
2111 if (teaserDesc.Length > 300)
2112 {
2113 teaserDesc = teaserDesc.Substring(0, 300) + "...";
2114 }
2115 if (!String.IsNullOrEmpty(Broker.Item().GetString("Rating")))
2116 {
2117 brokerRating = Broker.Item().GetString("Rating");
2118 }
2119 string brokerBadgeBesvarelser = "";
2120 if (!String.IsNullOrEmpty(Broker.Item().GetString("BadgeBesvarelser")))
2121 {
2122 brokerBadgeBesvarelser = Broker.Item().GetString("BadgeBesvarelser");
2123 }
2124
2125 butikId = Broker.Item().GetString("CBMedlemsnummer");
2126 primaryArea = Broker.Item().GetString("PrimaertOmraade");
2127
2128 string brugerId = String.Empty;
2129 try
2130 {
2131 brugerId = Dynamicweb.Security.UserManagement.User.GetCurrentUserID().ToString();
2132 }
2133 catch
2134 {
2135 // Ignore
2136 }
2137
2138 var Aabningstider = JsonConvert.DeserializeObject<ForretningsoplysningerAabningstider>(Broker.Item().GetString("AabningstiderJson"));
2139
2140 //Find EcomCatalog
2141 Dynamicweb.Content.ParagraphService paragraphService = new Dynamicweb.Content.ParagraphService();
2142
2143 var paragraphs = paragraphService.GetParagraphsByPageId(Dynamicweb.Frontend.PageView.Current().ID);
2144
2145 bool hasEcomCatalog = false;
2146 int pageSize = 8;
2147
2148 foreach (var paragraph in paragraphs)
2149 {
2150 if (paragraph.ModuleSystemName == "eCom_Catalog" && paragraph.ShowParagraph)
2151 {
2152 hasEcomCatalog = true;
2153
2154 // If pageSize is more than 8, the load more button should not be rendered since it is hardcoded to load 8 more which results in duplicate properties
2155 var rootModuleSettingsElement = XElement.Parse(paragraph.ModuleSettings);
2156 var pageSizeElement = rootModuleSettingsElement.Element("PageSize");
2157 if (pageSizeElement != null)
2158 {
2159 pageSize = Converter.ToInt32(rootModuleSettingsElement.Element("PageSize").Value);
2160 }
2161 }
2162 }
2163 }
2164
2165 @SnippetStart("OpenGraphTags")
2166
2167 <meta property="og:type" content="website" />
2168 <meta property="og:url" content="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(Context.Current.Request.Url.AbsoluteUri)" />
2169 <meta property="og:image" content="@brokerImage" />
2170 <meta property="og:title" content="@brokerName" />
2171 <meta property="og:description" content="@teaserDesc" />
2172
2173 @SnippetEnd("OpenGraphTags")
2174
2175 @SnippetStart("GtmDatalayer")
2176
2177 <!-- GTM -->
2178
2179 <script>
2180 window.dataLayer.push({
2181 'realEstateAgentId': '@Broker.Item().GetString("CBMedlemsnummer")',
2182 });
2183 </script>
2184
2185 @SnippetEnd("GtmDatalayer")
2186
2187 @SnippetStart("JavaScriptBottom")
2188
2189 <script type="application/ld+json">
2190 {
2191 "@@context":"http://schema.org",
2192 "@@type":"RealEstateAgent",
2193 "name":"@(brokerName)",
2194 "image":"@(brokerImage)",
2195 "url":"@(brokerUrl)",
2196 "address":{
2197 "@@type":"PostalAddress",
2198 "addressCountry":"DK",
2199 "addressLocality":"@(Broker.City.ToString())",
2200 "postalCode":"@(Broker.ZipCode.ToString())",
2201 "streetAddress":"@(Broker.Address.ToString())"
2202 },
2203 @if (!string.IsNullOrEmpty(brokerRating)
2204 && !string.IsNullOrEmpty(brokerBadgeBesvarelser)
2205 && Convert.ToDouble(brokerRating, System.Globalization.CultureInfo.InvariantCulture) >= 8.5)
2206 {
2207 <text>"aggregateRating":{
2208 "@@type":"AggregateRating",
2209 "bestRating":10.0,
2210 "ratingValue":"@(brokerRating)",
2211 "reviewCount":@(brokerBadgeBesvarelser)
2212 },</text>
2213 }
2214 "email":"2600@mailreal.dk",
2215 "telephone":"+45 @(RealMaeglerne.Library.Helper.FormatPhoneNumber(Broker.Telephone))"
2216 }
2217 </script>
2218
2219 <script>
2220 var RMAPI = (RMAPI) ? RMAPI : {};
2221 RMAPI.brokerImage = "@(brokerImage)";
2222 RMAPI.CBMedlemsnummer = "@(Broker.Item().GetString("CBMedlemsnummer"))";
2223 RMAPI.CompanyName = "@(Broker.CompanyName)";
2224 RMAPI.AddressZip = "@(Broker.Address), @(Broker.ZipCode)";
2225 RMAPI.Telephone = "@(Broker.Telephone)";
2226 RMAPI.Email = "@(Broker.Item().GetString("Email"))";
2227 RMAPI.GeolocationIcon = "@(Broker.GeolocationIcon.ToString())";
2228 RMAPI.City = "@Broker.City";
2229 RMAPI.ButikId = "@butikId";
2230 </script>
2231
2232 <script type="text/javascript" src='/Files/Templates/Designs/rm/assets/dist/bundle.maegler.min.js'></script>
2233
2234 @SnippetEnd("JavaScriptBottom")
2235
2236 @if (!String.IsNullOrEmpty(Broker.GeolocationIcon.ToString()))
2237 {
2238 <section class="maegler-header" style="background-image: url('@brokerImage');"></section>
2239 }
2240
2241 @*ADD SESSION VALUE IF DP PARAMETER EXIST*@
2242 @{
2243 var request = Context.Current.Request.QueryString.GetValues(null);
2244 if (request != null)
2245 {
2246 foreach (string x in request)
2247 {
2248 if (request.Contains("dp"))
2249 {
2250 Context.Current.Session["DP"] = "dp ";
2251 }
2252 }
2253 }
2254 }
2255
2256 <section class="maegler-page">
2257 <div class="container">
2258 <div class="page">
2259 <div class="content">
2260 <div class="row">
2261 <div class="col-xs-12 col-md-8 col-lg-9">
2262 <p class="sp-paragraph-broker-style js-choose-broker-name-val">@brokerName</p>
2263 <div class="row">
2264 <div class="col-xs-12 col-md-4">
2265 <div class="row">
2266 <div class="col-xs-12 col-sm-6 col-md-12">
2267 <p>
2268 <span class="js-choose-broker-address-val">@Broker.Address<br></span>
2269 <span class="js-choose-broker-zip">@Broker.ZipCode @Broker.City<br></span>
2270 @if (!string.IsNullOrEmpty(brokerEmail))
2271 {
2272 <text>Mail: <a href='mailto:@brokerEmail'>@brokerEmail</a><br></text>
2273 }
2274 @if (!string.IsNullOrEmpty(brokerPhone))
2275 {
2276 <text>Tlf.: <a href="tel:@brokerPhone">@brokerPhone</a></text>
2277 }
2278 </p>
2279 </div>
2280 @if (!string.IsNullOrEmpty(brokerRating))
2281 {
2282 <div class="col-xs-12 col-sm-6 col-md-12">
2283 @if (Convert.ToDouble(brokerRating, System.Globalization.CultureInfo.InvariantCulture) >= 8.5)
2284 {
2285 if (!string.IsNullOrEmpty(Broker.Item().GetString("BadgeToken")))
2286 {
2287 <iframe scrolling="no" frameborder="0" width="100%" src='https://maegler.boligsiden.dk/badge/index/@(Broker.Item().GetString("BadgeToken"))'></iframe>
2288 }
2289 }
2290 </div>
2291 }
2292 </div>
2293 </div>
2294 <div class="col-xs-12 col-md-8 col-lg-7">
2295 <h1 class="sp-broker-title-style">@brokerTitle</h1>
2296 @brokerDesc
2297 </div>
2298 </div>
2299 </div>
2300 <div class="col-xs-12 col-md-4 col-lg-3">
2301 @if (Aabningstider != null)
2302 {
2303 <h3>@Translate("Smartpage:Åbningstider", "Åbningstider")</h3>
2304 <table>
2305 <tr>
2306 <td>@Translate("Smartpage:Mandag", "Mandag")</td>
2307 <td align="right"><b>@Aabningstider.Mandag</b></td>
2308 </tr>
2309 <tr>
2310 <td>@Translate("Smartpage:Tirsdag", "Tirsdag")</td>
2311 <td align="right"><b>@Aabningstider.Tirsdag</b></td>
2312 </tr>
2313 <tr>
2314 <td>@Translate("Smartpage:Onsdag", "Onsdag")</td>
2315 <td align="right"><b>@Aabningstider.Onsdag</b></td>
2316 </tr>
2317 <tr>
2318 <td>@Translate("Smartpage:Torsdag", "Torsdag")</td>
2319 <td align="right"><b>@Aabningstider.Torsdag</b></td>
2320 </tr>
2321 <tr>
2322 <td>@Translate("Smartpage:Fredag", "Fredag")</td>
2323 <td align="right"><b>@Aabningstider.Fredag</b></td>
2324 </tr>
2325 @if (Aabningstider.Loerdag == Aabningstider.Soendag)
2326 {
2327 <tr>
2328 <td>@Translate("Smartpage:LødagSøndag", "Lørdag - søndag")</td>
2329 <td align="right"><b>@Aabningstider.Loerdag</b></td>
2330 </tr>
2331 }
2332 else
2333 {
2334 <tr>
2335 <td>@Translate("Smartpage:Lørdag", "Lørdag")</td>
2336 <td align="right"><b>@Aabningstider.Loerdag</b></td>
2337 </tr>
2338 <tr>
2339 <td>@Translate("Smartpage:Søndag", "Søndag")</td>
2340 <td align="right"><b>@Aabningstider.Soendag</b></td>
2341 </tr>
2342 }
2343 </table>
2344 }
2345 <br />
2346
2347 @{
2348 var dpmaegler = "" + Context.Current.Session["DP"] + "Mæglervisning" + "";
2349 string appraisalBtnColor = GetString("Item.BestilGratisVurderingKnapFarve");
2350 string greenAppraisalBtnColor = GetString("Item.BestilGroenVurderingFarve");
2351
2352 <a class="btn btn-primary btn-block js-section-btn" style="background-color: @appraisalBtnColor" href="#bestilSalgsvurdering">@Translate("form-salgsvurdering-cta", "Bestil gratis salgsvurdering")</a>
2353 <a class="btn btn-primary btn-block btn-turquoise js-section-btn" style="background-color: @greenAppraisalBtnColor" data-is-green-appraisal="1" href="#bestilSalgsvurdering">@Translate("Smartpage:Broker.GreenAppraisal", "Bestil Grøn salgsvurdering")</a>
2354 }
2355 </div>
2356 </div>
2357 </div>
2358 </div>
2359 </div>
2360 </section>
2361
2362 <div id="bestilSalgsvurdering" class="salgsvurdering-container">
2363 <div class="u-full-height">
2364 <div class="grid bestil-salgsvurdering-item dw-mod">
2365 <div class="grid__col- col-lg-12 col-sm-12 rhs">
2366 <div class="salgsvurdering-form">
2367 <div class="top-section">
2368 <div class="header">
2369 @Translate("Smartpage:Form.Salgsvurdering.Header", "Bestil vurdering")
2370 </div>
2371 <div class="description">
2372 @Translate("Smartpage:Form.Salgsvurdering.Description", "Skriv adressen på den bolig, som du ønsker vurderet og dine kontaktoplysninger")<i class="icon fas fa-question-circle"></i>
2373 </div>
2374 </div>
2375 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler">
2376 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
2377 <div class="form-group-container">
2378 <div class="form-group">
2379 <input class="form-control js-autocomplete-city" type="hidden" readonly />
2380 <input class="form-control js-autocomplete-postnummer" data-is-on-broker-page="true" data-primary-area="" type="hidden" pattern="^[0-9]*$" maxlength="4" name="postnummer" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Adresse", "Post nr")' value="" required />
2381 <input type="hidden" class="js-postnummer-validation" />
2382 <input type="hidden" class="form-control js-autocomplete-adresse" name="adresse" />
2383 </div>
2384
2385 <div class="form-group mr-3 address">
2386 <div class="autocomplete-container">
2387 <input id="dawa-autocomplete-input" class="form-control js-adresse" name="autocompleteAdresse" type="search" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Zip", "Adresse")*' value="" required data-message='@Translate("Smartpage:Form.Validation.Error.Adresse", "Indtast venligst en gyldig adresse")' data-is-on-broker-page='true'/>
2388 </div>
2389 </div>
2390
2391 <div class="form-group mr-3">
2392 <input class="form-control js-navn" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Navn")*' value='' required data-message='@Translate("Smartpage:Form.Validation.Error.Navn", "Indtast venligst dit navn")' />
2393 </div>
2394
2395 <div class="form-group mr-3">
2396 <input class="form-control js-email" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Email", "E-mail")*' value='' required data-message='@Translate("Smartpage:Form.Validation.Error.Email", "Indtast venligst din e-mail")' />
2397 </div>
2398
2399 <div class="form-group mr-3">
2400 <input class="form-control js-telefonnummer" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Telefon")*' value='' required data-message='@Translate("Smartpage:Form.Validation.Error.Telefon", "Indtast venligst dit telefonnummer")' />
2401 </div>
2402 </div>
2403 <button class="comment-button text-left js-collapse-focus" type="button" data-toggle="collapse" data-target="#salgsvurdering-collapse" aria-expanded="false" aria-controls="salgsvurdering-collapse">
2404 <i class="icon fas fa-plus"></i><span class="text">@Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Tilføj kommentar til mægler")</span>
2405 </button>
2406
2407 <div class="collapse" id="salgsvurdering-collapse">
2408 <div class="form-group">
2409 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
2410 </div>
2411 </div>
2412
2413
2414 <div class="form-group mt-3 mb-2">
2415 <div class="checkbox">
2416 <label>
2417 <input class="js-kontaktmigok" type="checkbox" name="kontaktmigok" required data-message='@Translate("Smartpage:Form.Validation.Error.Kontakt", "Afkryds dette felt så vi kan kontakte dig med salgsvurderingen")' />
2418 <span class="consent-checkbox">@Translate("Smartpage:Salgsvurdering.KontaktOk", "Ja, RealMæglerne må kontakte mig. ") @Translate("Smartpage:Salgsvurdering.PrivacyPolicyText", "Ved at bestille en vurdering accepterer du vores brug af") <a class="link" href="@settings_Persondatapolitik"> @Translate("Smartpage:PrivacyPolicyText.PersonalInfo", "personlige oplysninger")</a></span>
2419 </label>
2420 </div>
2421 </div>
2422 <div class="form-group mb-0">
2423 <button type="submit" class="btn btn-orange btn-block js-buyer-advisor-button" onclick="document.getElementById('oneBrokerToChoose').click();">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button>
2424 </div>
2425 <input type="hidden" name="fn" value="bsv" />
2426 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="SalgsvurderingBrokerPage" />
2427 <input type="hidden" name="brugerId" value="" />
2428 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
2429 <input type="hidden" id="boligvisning" name="boligvisning" value="" />
2430 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="@butikId" />
2431 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" />
2432 <input type="hidden" name="ejendomstype" value="" />
2433 <input type="hidden" name="salgspris" value="" />
2434 <input type="hidden" name="employee" value="" />
2435 <input type="hidden" name="modtager" value="" />
2436 <input class="js-value-check" type="hidden" name="valueCheck" value="" />
2437 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" />
2438 </form>
2439
2440 </div>
2441 <div id="tak-salgsvurdering" class="salgsvurdering-confirmation" style="display:none;">
2442 <div class="header">
2443 @Translate("Smartpage:Form.Salgsvurdering.Confirmation.Header", "Tak for din interesse")
2444 </div>
2445 <div class="description">
2446 @Translate("Smartpage:Form.Salgsvurdering.Confirmation.Description", "Du vil snarest blive kontaktet af en af vores medarbejdere.")
2447 </div>
2448 </div>
2449 </div>
2450 </div>
2451 </div>
2452 </div>
2453
2454 @* KAMPAGNEELEMENT *@
2455 @if (GetBoolean("Real:Broker.Campaign.Exists"))
2456 {
2457 var type = GetString("Real:Broker.Campaign.Type");
2458 string image = "";
2459 if (!string.IsNullOrEmpty(GetString("Real:Broker.Campaign.Image")))
2460 {
2461 if (type == "fullwidth")
2462 {
2463 image = "/Admin/Public/GetImage.ashx?Image=" + GetString("Real:Broker.Campaign.Image") + "&Width=1920&Height=640";
2464 }
2465 else
2466 {
2467 image = "/Admin/Public/GetImage.ashx?Image=" + GetString("Real:Broker.Campaign.Image") + "&Width=960&Height=640";
2468 }
2469 }
2470 string btnClass = "btn-primary";
2471 string bgcolor = GetString("Real:Broker.Campaign.BackgroundColor");
2472 string txtcolor = "#fff";
2473 string title = GetString("Real:Broker.Campaign.Headline");
2474 string desc = GetString("Real:Broker.Campaign.Text").Replace("<h1", "<h2").Replace("</h1", "</h2"); // Avoid multiple H1 tags on page
2475 string link = GetString("Real:Broker.Campaign.Link");
2476 string linkText = GetString("Real:Broker.Campaign.ButtonText");
2477 if (!string.IsNullOrEmpty(GetString("Real:Broker.Campaign.TextColor")))
2478 {
2479 txtcolor = GetString("Real:Broker.Campaign.TextColor");
2480 }
2481 if (!string.IsNullOrEmpty(GetString("Real:Broker.Campaign.ButtonType")))
2482 {
2483 btnClass = GetString("Real:Broker.Campaign.ButtonType");
2484 }
2485
2486 if (type == "fullwidth")
2487 {
2488 string ctaClass = "cta-fullwidth";
2489 string cntClass = "col-xs-12 col-md-6 col-md-push-3";
2490 var align = GetString("Real:Broker.Campaign.TextAlign");
2491
2492 if (GetBoolean("Real:Broker.Campaign.BlueOverlay"))
2493 {
2494 ctaClass += " cta-overlay";
2495 }
2496 if (align == "left")
2497 {
2498 cntClass = "col-xs-12 col-md-6";
2499 }
2500 if (align == "right")
2501 {
2502 cntClass = "col-xs-12 col-md-6 col-md-push-6";
2503 }
2504 <section class="cta @ctaClass" style="background-color:@bgcolor;color:@txtcolor;background-image:url('@image');">
2505 <div class="container-fluid">
2506 <div class="row">
2507 <div class="cta-content">
2508 @if (!string.IsNullOrEmpty(title))
2509 {
2510 <h2>@title</h2>
2511 }
2512 @if (!string.IsNullOrEmpty(desc))
2513 {
2514 <p>@desc</p>
2515 }
2516 @if (!string.IsNullOrEmpty(link) && !string.IsNullOrEmpty(linkText))
2517 {
2518 <div class="text-center">
2519 <br />
2520 <a class="btn @btnClass" href='@link'>@linkText</a>
2521 </div>
2522 }
2523 </div>
2524 </div>
2525 </div>
2526 </section>
2527 }
2528
2529 if (type == "cta-left" || type == "cta-right")
2530 {
2531 string imgClass = "col-12 col-md-6 d-flex align-items-center";
2532 string cntClass = "col-12 col-md-6 d-flex align-items-center";
2533 if (type == "cta-right")
2534 {
2535 imgClass = "col-12 col-md-6 order-md-6 d-flex align-items-center";
2536 cntClass = "col-12 col-md-6 d-flex align-items-center";
2537 }
2538 <section class="cta">
2539 <div class="container-fluid">
2540 <div class="row">
2541
2542 <div class="cta-image @imgClass" style="background-image:url('@image');">
2543
2544 </div>
2545 <div class="@cntClass" style="background-color:@bgcolor;color:@txtcolor;">
2546 <div class="cta-content">
2547 @if (!string.IsNullOrEmpty(title))
2548 {
2549 <h2>@title</h2>
2550 }
2551 @if (!string.IsNullOrEmpty(desc))
2552 {
2553 <p>@desc</p>
2554 }
2555 @if (!string.IsNullOrEmpty(link) && !string.IsNullOrEmpty(linkText))
2556 {
2557 <div class="text-center">
2558 <br />
2559 <a class="btn @btnClass" href='@link'>@linkText</a>
2560 </div>
2561 }
2562 </div>
2563 </div>
2564 </div>
2565 </div>
2566 </section>
2567 }
2568
2569 if (type == "slim")
2570 {
2571 <section class="bar-text" style="background-color:@bgcolor;color:@txtcolor;">
2572 <div class="container">
2573 <div class="row">
2574 <div class="col-12">
2575 <div class="bar-text-wrap">
2576 @if (!string.IsNullOrEmpty(title))
2577 {
2578 <span class="bar-text-title">@title</span>
2579 }
2580 @if (!string.IsNullOrEmpty(link) && !string.IsNullOrEmpty(linkText))
2581 {
2582 <div class="bar-text-links">
2583 <a class="btn @btnClass" href='@link'>@linkText</a>
2584 </div>
2585 }
2586 </div>
2587 </div>
2588 </div>
2589 </div>
2590 </section>
2591 }
2592 }
2593
2594 @if (GetLoop("Real:Broker.Employees").Count > 0)
2595 {
2596 <section>
2597 <div class="container">
2598 <h2 class="text-center mt-4">@Translate("Smartpage:BrokerPage.Employees", "Medarbejdere")</h2>
2599 <div class="broker-list row">
2600 @{
2601 foreach (var employee in GetLoop("Real:Broker.Employees"))
2602 {
2603 string employeePhone = RealMaeglerne.Library.Helper.FormatPhoneNumber(employee.GetString("PhoneMobile"));
2604 string employeeEmail = RealMaeglerne.Library.Helper.ExtractMaskedEmail(employee.GetString("Email"));
2605 string employeeImage = "";
2606 string employeeClass = "na";
2607
2608 employeeImage = "/Files/Templates/Designs/rm/assets/images/na-real.png";
2609
2610 bool CanSelect = employee.GetBoolean("MyEmployee");
2611 if (!string.IsNullOrEmpty(employee.GetString("Image")))
2612 {
2613 employeeImage = employee.GetString("Image");
2614 employeeClass = "";
2615 }
2616 if (!string.IsNullOrEmpty(employee.GetString("ImageWithBackground")))
2617 {
2618 employeeImage = employee.GetString("ImageWithBackground");
2619 employeeClass = "";
2620 }
2621
2622 <div class="broker col-12 col-sm-6 col-md-3" data-id='@employee.GetString("ID")'>
2623
2624 <div class="img @employeeClass"><img src="@employeeImage" class="img-fluid img-bicubic"></div>
2625 <h4 class="name">@(employee.GetValue("Name"))</h4>
2626 @if (!string.IsNullOrEmpty(employee.GetString("JobTitle")))
2627 {
2628 <p>@employee.GetString("JobTitle")</p>
2629 }
2630 @if (!string.IsNullOrEmpty(employeeEmail))
2631 {
2632 <p>Mail: <a href='mailto:@(employeeEmail)'>@(employeeEmail)</a></p>
2633 }
2634 @if (!string.IsNullOrEmpty(employeePhone))
2635 {
2636 <p>Tlf.: <a href='tel:@(employeePhone)'>@(employeePhone)</a></p>
2637 }
2638
2639 </div>
2640 }
2641 }
2642 </div>
2643 </div>
2644 </section>
2645 }
2646
2647 <div class="dwcontent" id="content-main" title="Main content" data-settings="unwrap: true;"></div>
2648 @GetValue("DwContent(contentmain)")
2649
2650 @* Render boliglist *@
2651 @if (!hasEcomCatalog)
2652 {
2653 @RenderParagraphContent(16616)
2654 }
2655 else if (pageSize <= 8)
2656 {
2657 <div class="btn btn-primary loadmore maegler" data-broker="@butikId" id="btnShowMore">Se flere</div>
2658 }
2659
2660 @if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && GetBoolean("Item.Page.HideMyBroker.Value") != true)
2661 {
2662 string bName = MyBroker.Broker.Name;
2663 string bImage = "";
2664 string bClass = "na";
2665 bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png";
2666 var item = ItemManager.Storage.GetById(MyBroker.Employee.ItemType, MyBroker.Employee.ItemId);
2667
2668 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName))
2669 {
2670 bName = MyBroker.Broker.CompanyName;
2671 }
2672 try
2673 {
2674 var imgUrl = Converter.ToString(item["BilledeUrl"]);
2675 if (!string.IsNullOrEmpty(imgUrl))
2676 {
2677 bImage = imgUrl;
2678 bClass = "";
2679 }
2680 }
2681 catch
2682 {
2683 // Ignore
2684 }
2685
2686 string bAreaID = Converter.ToString(item["WebsiteId"]);
2687 string medlemsnummer = Converter.ToString(item["CBMedlemsnummer"]);
2688 <section class="din-maegler">
2689 <div class="img-wrapper @bClass" style="background-image:url('@bImage')"></div>
2690 <div class="container">
2691 <div class="col-12 col-sm-12 col-md-6 offset-md-6">
2692 <h2>Din personlige mægler</h2>
2693 <div class="row">
2694 <div class="col-12 col-sm-6">
2695 <p>
2696 <b class="my-broker-name">@MyBroker.Employee.Name</b><br>
2697 @if (!string.IsNullOrEmpty(MyBroker.Employee.Email))
2698 {
2699 <text>Mail: <a href="mailto:@(RealMaeglerne.Library.Helper.ExtractMaskedEmail(MyBroker.Employee.Email))" class="my-broker-email">@RealMaeglerne.Library.Helper.ExtractMaskedEmail(MyBroker.Employee.Email)</a><br></text>
2700 }
2701 @if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile))
2702 {
2703 <text>Tlf.: <a href="tel:@(MyBroker.Employee.PhoneMobile)" class="my-broker-phone">@RealMaeglerne.Library.Helper.FormatPhoneNumber(MyBroker.Employee.PhoneMobile)</a></text>
2704 }
2705 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
2706 {
2707 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-phone">@RealMaeglerne.Library.Helper.FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text>
2708 }
2709 </p>
2710 </div>
2711 <div class="col-12 col-sm-6">
2712 <p>
2713 <b class="my-broker-company-name">@bName</b><br>
2714 <span class="my-broker-company-address">@MyBroker.Broker.Address</span><br>
2715 <span class="my-broker-company-zip">@MyBroker.Broker.ZipCode</span> <span class="my-broker-company-city">@MyBroker.Broker.City</span><br>
2716 @if (!string.IsNullOrEmpty(bEmail))
2717 {
2718 <text>Mail: <a href="mailto:@(bEmail)" class="my-broker-broker-email">@bEmail</a><br></text>
2719 }
2720 @if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
2721 {
2722 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-broker-phone">@RealMaeglerne.Library.Helper.FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text>
2723 }
2724 </p>
2725 </div>
2726 </div>
2727 <div class="row">
2728 <br />
2729 <div class="col-12 col-sm-6">
2730 <a href="/@medlemsnummer.Substring(1)" class="btn btn-primary btn-block my-broker-company-url">Til mæglerens side</a>
2731 </div>
2732
2733 </div>
2734 </div>
2735 </div>
2736 </section>
2737 }
2738
2739 <footer>
2740 <div class="container">
2741 <div class="row">
2742 @{
2743 var navigationSettings = new NavigationSettings();
2744 navigationSettings.StartLevel = 1;
2745 navigationSettings.StopLevel = 3;
2746 navigationSettings.ExpandMode = ExpandMode.All;
2747 navigationSettings.RootAreaId = 1;
2748 navigationSettings.RootNavigationTag = "footer-nav";
2749
2750 }
2751 @Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings)
2752 </div>
2753 </div>
2754 </footer>
2755
2756 <div id="panel-login" class="panel panel-form">
2757 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
2758 <b></b>
2759 </button>
2760 <a href="@(settings_MinSide)" target="_blank" class="btn btn-primary btn-block link-customer">@Translate("Smartpage:Login.Button.CustomerUniverse", "Realmæglernes Kundeunivers")</a>
2761 <button class="js-open-login btn btn-primary btn-block">@Translate("Smartpage.Login.Button.RealestateAgent", "Realmæglernes Boligagent")</button>
2762 <div class="loginform login">
2763 @if (loginParagraphId > 0)
2764 {
2765 <text>
2766 @RenderParagraphContent(loginParagraphId)
2767 </text>
2768 }
2769 </div>
2770 <div class="loginform register js-register-form-wrapper" style="display: none;">
2771 @if (createUserParagraphId > 0)
2772 {
2773 <text>
2774 @RenderParagraphContent(createUserParagraphId)
2775 </text>
2776 }
2777 </div>
2778 <div class="loginform forgotpw" style="display: none;">
2779 <h2 class="forgotpw-reg">@Translate("forgot-pw-reg-title", "Glemt adgangskode")</h2>
2780 <h2 class="forgotpw-broker">@Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")</h2>
2781 <form id="forgotPwForm" class="form-body" method="post" action="">
2782 <input type="hidden" id="AccessUserShopID" name="AccessUserShopID" value="SHOP6" />
2783 <p class="forgotpw-reg">@Translate("forgot-pw-reg-teaser", "Har du glemt din adgangskode? Udfyld din e-mail herunder og få tilsendt instrukser for nulstillelse/ændring af din adgangskode.")</p>
2784 <p class="forgotpw-broker">@Translate("forgot-pw-broker-teaser", "Er du blevet tilmeldt via. din mægler, men mangler adgangskode til dit login? Udfyld e-mailen du har oplyst hos mægleren og få tilsendt instrukser for nulstillelse/ændring af din adgangskode.")</p>
2785 <div class="form-group">
2786 <input id="AccessUserEmail" name="AccessUserEmail" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" placeholder="E-mail" class="form-control" required />
2787 </div>
2788 <button class="btn btn-primary btn-block" type="submit">@Translate("forgot-pw-cta", "Nulstil adgangskode")</button>
2789 <br />
2790 <div id="submitMessage"></div>
2791 </form>
2792 </div>
2793 </div>
2794
2795 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2796 @using System
2797 @using RealMaeglerne.Dynamicweb;
2798 @using RealMaeglerne.Library;
2799 @using RealMaeglerne.Library.Models;
2800 @using Dynamicweb.Content.Items;
2801 @using Dynamicweb.Core;
2802 @using System.Linq;
2803
2804 @{
2805 string privacyPolicyText = Translate("Smartpage:PrivacyPolicyText", "* Der samles ingen personlige oplysninger uden dit udtrykkelige samtykke. Ved at klikke på denne checkboks giver du dit samtykke til, at dine data samles og behandles af RealMæglerne A/S for at kunne kontakte dig. Du kan til enhver tid tilbagekalde dit samtykke. For at gøre dette skal du blot sende en meddelelse til");
2806 }
2807
2808 <!-- KONTAKT KØBERRAADGIVNING -->
2809 <div id="panel-kontakt-koeberraadgivning" class="panel panel-form">
2810 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
2811 <b></b>
2812 </button>
2813 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2>
2814 <form id="form-koeberraadgivning" method="POST" action="/InboxHandler">
2815 <div class="form-group">
2816 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
2817 <input class="form-control" type="text" name="navn" tabindex="1" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required />
2818 </div>
2819 <div class="form-group">
2820 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
2821 <input class="form-control" type="email" tabindex="2" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Email", "Indtast din e-mail")' value='@GetGlobalValue("Global:Extranet.Email")' required />
2822 </div>
2823 <div class="form-group row mb-4">
2824 <div class="col-6">
2825 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
2826 <input class="form-control" type="tel" pattern="^[0-9]*$" tabindex="3" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr.")' value='@GetGlobalValue("Global:Extranet.Phone")' required />
2827 </div>
2828 <div class="col-6">
2829 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
2830 <input class="form-control" type="tel" pattern="^[0-9]*$" tabindex="4" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr.")' value='@GetGlobalValue("Global:Extranet.Phone")' />
2831 </div>
2832 </div>
2833 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
2834 <div class="form-group row">
2835 <div class="col-4">
2836 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
2837 <input class="form-control js-postnummer" type="tel" pattern="^[0-9]*$" maxlength="4" name="postnummer" tabindex="5" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr")' value="@userZip" required />
2838 <input type="hidden" class="js-postnummer-validation" />
2839 </div>
2840 <div class="col-8">
2841 <label><strong>@Translate("form-city", "By")*</strong></label>
2842 <input class="form-control js-city" type="text" readonly />
2843 </div>
2844 </div>
2845 <div class="form-group overflow-unset">
2846 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
2847 <input class="form-control js-validate-address" type="text" name="adresse" tabindex="6" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' required />
2848
2849 <label class="form-validate-error js-address-error d-none" for="adresse">@Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")</label>
2850 </div>
2851 <button class="form-control text-left js-collapse-focus" type="button" data-toggle="collapse" data-target="#kontaktkoeberrradgiver-collapse" aria-expanded="false" aria-controls="kontaktkoeberrradgiver-collapse">
2852 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
2853 </button>
2854 <div class="collapse" id="kontaktkoeberrradgiver-collapse">
2855 <div class="form-group">
2856 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
2857 </div>
2858 </div>
2859
2860 <div class="form-group mt-3">
2861 <div class="checkbox">
2862 <label>
2863 <input type="checkbox" name="kontaktmigok" required />
2864 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
2865 </label>
2866 </div>
2867 </div>
2868 <div class="form-group">
2869 <div class="row">
2870 <div class="col-12">
2871 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button>
2872 </div>
2873 </div>
2874 </div>
2875 <div class="form-group form-group-terms">
2876 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
2877 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
2878 </div>
2879
2880 <input type="hidden" name="fn" value="krk" />
2881 <input type="hidden" name="origin" value="" />
2882 <input type="hidden" name="brugerId" value="" />
2883 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
2884 <input type="hidden" name="butikId" value="@butikId" />
2885 <input type="hidden" name="ejendomstype" value="" />
2886 <input type="hidden" name="salgspris" value="" />
2887 <input type="hidden" name="modtager" value="" />
2888 </form>
2889 <div id="tak-kontakt-advisor" style="display:none;">
2890 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
2891 <div class="row">
2892 <div class="col-6">
2893 <img src="" class="img-fluid js-maegler-img" />
2894 </div>
2895 <div class="col-6">
2896 <p class="js-maegler-name"></p>
2897 <p class="js-maegler-address"></p>
2898 <p class="js-maegler-phone"></p>
2899 <p class="js-maegler-mail"></p>
2900 </div>
2901 </div>
2902 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
2903 </div>
2904 </div>
2905
2906 <!--ÅBENT HUS-->
2907 <div id="panel-aabenthus" class="panel panel-form">
2908 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
2909 <b></b>
2910 </button>
2911
2912 <form id="form-aabenthus" method="POST" action="/InboxHandler">
2913 <h2>@Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")</h2>
2914 @{
2915 string sagsnr = Dynamicweb.Context.Current.Request["ProductId"];
2916 var product = Dynamicweb.Ecommerce.Services.Products.GetProductById(sagsnr, string.Empty, true);
2917 if (product != null)
2918 {
2919 var boligManager = new BoligManager(Pageview);
2920 Bolig bolig = boligManager.CreateBolig(product, true);
2921 var kommendeAabnehuse = boligManager.KommendeAabnehuse(bolig).Take(3);
2922
2923 if (kommendeAabnehuse.Count() > 0)
2924 {
2925 <div>
2926 <div class="open-house-dates">
2927 @foreach (var openHouse in kommendeAabnehuse)
2928 {
2929 <label class="open-house-dates__date">
2930 @openHouse.DatoClean
2931 <input class="js-aabenthus-date-select hidden" type="radio" name="AabenthusDato" value="@openHouse.Dag @openHouse.DatoFormateret" data-time="@openHouse.Tidspunkt" data-house-id="@openHouse.Id" />
2932 </label>
2933 }
2934 </div>
2935 @foreach (var openHouse in kommendeAabnehuse)
2936 {
2937 <div id="@openHouse.Id" class="open-house-times">
2938 @if (openHouse.VisInterval && openHouse.Tilmelding)
2939 {
2940 int counter = 0;
2941 foreach (var interval in openHouse.TidsIntervallerFormateret)
2942 {
2943 <div><input class="js-aabenthus-time-select time-radio" type="radio" name="AabenthusTid" value="@interval" checked="@(counter == 0)" /><span>@interval.Substring(3)</span></div>
2944 counter++;
2945 }
2946
2947 }
2948
2949 @if (!openHouse.Tilmelding)
2950 {
2951 <div class="js-open-house-no-signup open-house-no-signup">
2952 @Translate("Smartpage:Aabenthus.IngenTilmelding", "Ingen tilmelding påkrævet")
2953 </div>
2954 }
2955 </div>
2956 }
2957 </div>
2958 }
2959 }
2960 }
2961
2962 <div class="d-block">
2963 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label>
2964 </div>
2965 <div class="d-block">
2966 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label>
2967 </div>
2968 <div class="d-block mb-4">
2969 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label>
2970 </div>
2971 <div class="js-open-house-signup open-house-signup">
2972 <h3>@Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")</h3>
2973 <div class="form-group">
2974 <label for="aabenthus-name"><strong>@Translate("form-navn", "Navn")*</strong></label>
2975 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required />
2976 </div>
2977 <div class="form-group">
2978 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
2979 <input class="form-control" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Email", "Indtast din e-mail")' value='@GetGlobalValue("Global:Extranet.Email")' required />
2980 </div>
2981 <div class="form-group row">
2982 <div class="col-6">
2983 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
2984 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Mobile", "Indtast mobil nr.")' value='@GetGlobalValue("Global:Extranet.Phone")' required />
2985 </div>
2986 <div class="col-6">
2987 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
2988 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Telefon", "Indtast tlf nr.")' value='@GetGlobalValue("Global:Extranet.Phone")' />
2989 </div>
2990
2991 </div>
2992 <div class="form-group">
2993 <div class="checkbox">
2994 <label>
2995 <input type="checkbox" name="kontaktmigok" required />
2996 <span class="base-color">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
2997 </label>
2998 </div>
2999 </div>
3000 <div class="form-group">
3001 <div class="row">
3002 <div class="col-12">
3003 <button type="submit" class="btn btn-block btn-green">@Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")</button>
3004 </div>
3005 </div>
3006 </div>
3007 <div class="form-group">
3008 @String.Format(Translate("Smartpage:Panel.Accept", "Du accepterer samtidig vores {0} og giver samtykke til, at dine data samles og behandles af RealMæglerne A/S for at kunne kontakte dig"), "<a href='" + settings_Persondatapolitik + "'>privatlivspolitikkerne</a>")
3009
3010 </div>
3011 </div>
3012 <input type="hidden" name="fn" value="ah" />
3013 <input type="hidden" name="origin" value="" />
3014 <input type="hidden" name="brugerId" value="@userID" />
3015 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
3016 <input type="hidden" name="butikId" value="@butikId" />
3017 <input type="hidden" name="sagsaddresse" value="" class="js-aabenthus-address-input" />
3018 <input type="hidden" name="ejendomstype" value="" />
3019 <input type="hidden" name="salgspris" value="" />
3020 <input type="hidden" name="modtager" value="" />
3021 <input type="hidden" name="employee" value="" />
3022 <input type="hidden" name="sagsnr" value="" class="js-sagsnr" />
3023 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
3024 <input type="hidden" name="aftaleid" value="" class="js-aftaleid" />
3025
3026 <input type="hidden" name="dateMail" class="js-aabenthus-date-input" />
3027 <input type="hidden" name="timeMail" class="js-aabenthus-time-input" />
3028 <input type="hidden" name="visintervaller" class="js-aabenthus-showinterval-input" />
3029 <input type="hidden" name="brokerImageMail" class="property-broker-image-input" />
3030 <input type="hidden" name="employeeNameMail" class="js-maegler-employee-name-input" />
3031 <input type="hidden" name="employeeTitleMail" class="js-maegler-employee-title-input" />
3032 <input type="hidden" name="employeeMailMail" class="js-maegler-mail-input" />
3033 <input type="hidden" name="employeeMobileMail" class="js-maegler-mobile-input" />
3034 <input type="hidden" name="employeePhoneMail" class="js-maegler-phone-input" />
3035
3036 <input type="hidden" name="brokerNameMail" class="js-broker-name-input" />
3037 <input type="hidden" name="brokerAddressMail" class="js-broker-address-input" />
3038 <input type="hidden" name="brokerPhoneMail" class="js-broker-phone-input" />
3039 <input type="hidden" name="greenmobility" class="js-green-mobility" />
3040 </form>
3041 <div id="tak-aabenthus" style="display:none;">
3042 <h2>@Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")</h2>
3043 <div class="d-block">
3044 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label>
3045 </div>
3046 <div class="d-block">
3047 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label>
3048
3049 </div>
3050 <div class="d-block mb-4">
3051 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label>
3052
3053 </div>
3054 <div class="js-employee">
3055 <p>@String.Format(Translate("Smartpage:Aabenthus.Tak", "Vi glæder os til at vise dig boligen. Har du spørgsmål inden vi ses, kan du kontakte {0} fra RealMæglerne"), "<b class='js-aabenthus-employee-name'></b>")</p>
3056 </div>
3057 <div class="js-not-employee">
3058 <p>@Translate("Smartpage:Aabenthus.Tak.NoEmployee", "Vi glæder os til at vise dig boligen. Har du spørgsmål inden vi ses, er du velkommen til at kontakte os")</p>
3059 </div>
3060 <div class="row">
3061 <div class="js-employee">
3062 <div class="col-12 js-maegler-img aabenthus-image">
3063 <div class="property-broker-image" style=""></div>
3064
3065 </div>
3066 </div>
3067 <div class="col-12">
3068 <div class="bg-base">
3069
3070 <div class="js-employee">
3071 <h4 class="js-maegler-employee-name"></h4>
3072 <div class="icon-container">
3073 <i class="fas fa-envelope"></i> <span class="js-maegler-mail"></span>
3074 </div>
3075 <div class="icon-container">
3076 <i class="fas fa-phone"></i> <span class="js-maegler-mobile"></span>
3077 </div>
3078 </div>
3079
3080
3081 <h4 class="js-maegler-name"></h4>
3082 <div class="icon-container">
3083 <i class="fas fa-map-marker-alt"></i> <span class="js-maegler-address"></span>
3084 </div>
3085 <div class="icon-container">
3086 <i class="fas fa-phone"></i> <span class="js-maegler-phone"></span>
3087
3088 </div>
3089 <a class="btn btn-border" onclick="panelKontaktmaeglerGuldkoeber()">KONTAKT MÆGLER</a>
3090 </div>
3091 </div>
3092 </div>
3093 </div>
3094 </div>
3095
3096 <!-- KONTAKT GULDKØBER -->
3097 <div id="panel-kontakt-guldkoeber" class="panel panel-form">
3098 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3099 <b></b>
3100 </button>
3101 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2>
3102 <form id="form-kontaktmaegler" method="POST" action="/InboxHandler">
3103 <div class="form-group">
3104 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
3105 <input class="form-control" type="text" name="navn" placeholder='@Translate("form-navn", "Navn")' value='@GetGlobalValue("Global:Extranet.Name")' required />
3106 </div>
3107 <div class="form-group">
3108 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
3109 <input class="form-control" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("form-email", "E-mail")' value='@GetGlobalValue("Global:Extranet.Email")' required />
3110 </div>
3111 <div class="form-group row mb-4">
3112 <div class="col-6">
3113 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
3114 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Mobile", "Indtast mobil nr.")' value='@GetGlobalValue("Global:Extranet.Phone")' required />
3115 </div>
3116 <div class="col-6">
3117 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
3118 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Kontakt.Placeholder.Telefon", "Indtast tlf nr.")' value='@GetGlobalValue("Global:Extranet.Phone")' />
3119 </div>
3120 </div>
3121 <div class="form-group row">
3122 <div class="col-4">
3123 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
3124 <input class="form-control js-postnummer" type="tel" pattern="^[0-9]*$" maxlength="4" name="postnummer" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr")' value="@userZip" required />
3125 <input type="hidden" class="js-postnummer-validation" />
3126 </div>
3127 <div class="col-8">
3128 <label><strong>@Translate("form-city", "By")*</strong></label>
3129 <input class="form-control js-city" type="text" readonly />
3130 </div>
3131 </div>
3132
3133 <div class="form-group overflow-unset">
3134 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
3135 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
3136 <label class="form-validate-error js-address-error d-none" for="adresse">@Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")</label>
3137 </div>
3138 <div class="form-group">
3139 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
3140 </div>
3141 <div class="form-group">
3142 <div class="checkbox">
3143 <label>
3144 <input type="checkbox" name="kontaktmigok" required />
3145 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
3146 </label>
3147 </div>
3148 </div>
3149 <div class="form-group">
3150 <div class="row">
3151 <div class="col-12">
3152 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button>
3153 </div>
3154 </div>
3155 </div>
3156 <div class="form-group form-group-terms">
3157 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
3158 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
3159 </div>
3160 <input type="hidden" name="fn" value="gk" />
3161 <input type="hidden" name="origin" value="" />
3162 <input type="hidden" name="brugerId" value="@userID" />
3163 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
3164 <input type="hidden" name="butikId" value="@butikId" />
3165 <input type="hidden" name="ejendomstype" value="" />
3166 <input type="hidden" name="salgspris" value="" />
3167 <input type="hidden" name="modtager" value="" />
3168 <input type="hidden" name="employee" value="" />
3169 </form>
3170 <div id="tak-kontakt-maegler-guldkoeber" style="display:none;">
3171 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
3172 <p>@Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")</p>
3173 <div class="row">
3174 <div class="col-6">
3175 <img src="" class="img-fluid js-maegler-img" />
3176 </div>
3177 <div class="col-6">
3178 <p class="js-maegler-name"></p>
3179 <p class="js-maegler-address"></p>
3180 <p class="js-maegler-phone"></p>
3181 <p class="js-maegler-mail"></p>
3182 </div>
3183 </div>
3184 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
3185 </div>
3186 </div>
3187
3188 <!-- BESTIL SALGSVURDERING -->
3189 <div id="panel-salgsvurdering" class="panel panel-form">
3190 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3191 <b></b>
3192 </button>
3193
3194 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler">
3195 <h2 class="js-buyer-advisor-header">@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2>
3196 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
3197 <div class="form-group">
3198 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
3199 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required />
3200 </div>
3201 <div class="form-group">
3202 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
3203 <input class="form-control" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail")' value='@GetGlobalValue("Global:Extranet.Email")' required />
3204 </div>
3205 <div class="form-group row mb-4">
3206 <div class="col-6">
3207 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
3208 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr.")' value='@GetGlobalValue("Global:Extranet.Phone")' required />
3209 </div>
3210 <div class="col-6">
3211 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
3212 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr.")' value='@GetGlobalValue("Global:Extranet.Phone")' />
3213 </div>
3214
3215 </div>
3216
3217 @{
3218 // isErhverv comes from master template
3219 bool pageIsErhverv = isErhverv || Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]);
3220 string yourPropertyHeader = pageIsErhverv ? Translate("Smartpage:Salgsvurdering.DinEjendom", "Din ejendom") : Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig");
3221 // If user is on broker page already then don't suggest alternative broker
3222 bool isOnBrokerPage = !string.IsNullOrEmpty(butikId);
3223 }
3224
3225 <h3>@yourPropertyHeader</h3>
3226 <div class="form-group row">
3227 <div class="col-4">
3228 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
3229 @{
3230 string primaryAreaEncoded = Dynamicweb.Core.Encoders.HtmlEncoder.HtmlEncode(primaryArea);
3231 <input class="form-control js-postnummer js-updatebroker-list" data-is-on-broker-page="@isOnBrokerPage" data-primary-area="@primaryAreaEncoded" type="tel" pattern="^[0-9]*$" maxlength="4" name="postnummer" placeholder="@Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr")" value="@userZip" required />
3232 <input type="hidden" class="js-postnummer-validation" />
3233 }
3234 </div>
3235 <div class="col-8">
3236 <label><strong>@Translate("form-city", "By")*</strong></label>
3237 <input class="form-control js-city" type="text" readonly />
3238 </div>
3239 </div>
3240 <div class="form-group overflow-unset">
3241 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
3242 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
3243 <label class="form-validate-error js-address-error d-none" for="adresse">@Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")</label>
3244 </div>
3245
3246 <button class="form-control text-left js-collapse-focus" type="button" data-toggle="collapse" data-target="#salgsvurdering-collapse" aria-expanded="false" aria-controls="salgsvurdering-collapse">
3247 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
3248 </button>
3249 <div class="collapse" id="salgsvurdering-collapse">
3250 <div class="form-group">
3251 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
3252 </div>
3253 </div>
3254
3255 <div class="salgsvurdering-precheck">
3256 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3>
3257 <div class="col-12">
3258 <div class="choose-broker row align-items-center active">
3259 <div class="col-2">
3260 <input class="js-broker-radio" type="radio" id="" name="choose-broker" value="" checked>
3261 <label class="js-broker-label" for=""></label><div class="check">
3262 <div class="inside">
3263 </div>
3264 </div>
3265 </div>
3266 <div class="col-4">
3267 <img src="" class="img-fluid js-broker-image">
3268 </div>
3269 <div class="col-6">
3270 <span class="d-block">
3271 <strong class="js-choose-broker-name"></strong>
3272 </span>
3273 <span class="js-choose-broker-address"></span>
3274 <input type="hidden" class="js-choose-broker-phone" value="" />
3275 <input type="hidden" class="js-choose-broker-email" value="" />
3276 </div>
3277 </div>
3278 </div>
3279 </div>
3280 <div class="salgsvurdering-broker">
3281 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3>
3282 <div class="js-choose-broker col-12">
3283 </div>
3284
3285 </div>
3286 <div class="form-group mt-4">
3287 <div class="checkbox">
3288 <label>
3289 <input type="checkbox" name="kontaktmigok" required />
3290 <span class="consent-checkbox">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
3291 </label>
3292 </div>
3293 </div>
3294 <div class="form-group">
3295 <div class="row">
3296 <div class="col-12">
3297 <button type="submit" class="btn btn-green btn-block js-buyer-advisor-button" onclick="document.getElementById('oneBrokerToChoose').click();">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button>
3298 </div>
3299 </div>
3300 </div>
3301 <div class="form-group form-group-terms">
3302 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
3303 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
3304 </div>
3305 <input type="hidden" name="fn" value="bsv" />
3306 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" />
3307 <input type="hidden" name="brugerId" value="@userID" />
3308 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
3309 <input type="hidden" id="boligvisning" name="boligvisning" value="" />
3310 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="" />
3311 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" />
3312 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
3313 <input type="hidden" name="ejendomstype" value="" />
3314 <input type="hidden" name="salgspris" value="" />
3315 <input type="hidden" name="employee" value="" />
3316 <input type="hidden" name="modtager" value="" />
3317 <input class="js-value-check" type="hidden" name="valueCheck" value="" />
3318 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" />
3319 </form>
3320 <div id="tak-salgsvurdering" style="display:none;">
3321 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
3322 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p>
3323 <div class="row">
3324 <div class="col-6">
3325 <img src="" class="img-fluid js-maegler-img" />
3326 </div>
3327 <div class="col-6">
3328 <p class="js-maegler-name"></p>
3329 <p class="js-maegler-address"></p>
3330 <p class="js-maegler-phone"></p>
3331 <p class="js-maegler-mail"></p>
3332 </div>
3333 </div>
3334 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
3335 </div>
3336 </div>
3337
3338 <!-- BESTIL SALGSVURDERING GULDKØBER -->
3339 <div id="panel-salgsvurdering-guldkoeber" class="panel panel-form">
3340 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3341 <b></b>
3342 </button>
3343
3344 <form id="bestil-salgsvurdering-guldkoeber" method="POST" action="/InboxHandler">
3345 <h2>@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2>
3346 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
3347 <div class="form-group">
3348 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
3349 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required />
3350 </div>
3351 <div class="form-group">
3352 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
3353 <input class="form-control" type="email" pattern="[_a-z0-9.%+-]+@[a-z0-9.-]+.[a-z]{2,4}$" name="email" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Email", "Indtast din e-mail")' value='@GetGlobalValue("Global:Extranet.Email")' required />
3354 </div>
3355 <div class="form-group row mb-4">
3356 <div class="col-6">
3357 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
3358 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Telefon", "Indtast tlf nr.")' value='@GetGlobalValue("Global:Extranet.Phone")' />
3359 </div>
3360 <div class="col-6">
3361 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
3362 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="mobile" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Mobile", "Indtast mobil nr.")' value='@GetGlobalValue("Global:Extranet.Phone")' required />
3363 </div>
3364 </div>
3365
3366 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
3367
3368 <div class="form-group row">
3369 <div class="col-4">
3370 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
3371 <input class="form-control js-postnummer js-updatebroker-list" type="tel" pattern="^[0-9]*$" maxlength="4" name="postnummer" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Adresse", "Post nr")' value="@userZip" required />
3372 <input type="hidden" class="js-postnummer-validation" />
3373 </div>
3374 <div class="col-8">
3375 <label><strong>@Translate("form-city", "By")*</strong></label>
3376 <input class="form-control js-city" type="text" readonly />
3377 </div>
3378 </div>
3379 <div class="form-group overflow-unset">
3380 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
3381 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
3382 <label class="form-validate-error js-address-error d-none" for="adresse">@Translate("Smarptage:Kontakt.Forkert adresse", "Den indtastede adresse matchede ikke en kendt dansk adresse")</label>
3383 </div>
3384
3385 <button class="form-control text-left js-collapse-focus" type="button" data-toggle="collapse" data-target="#salgsvurdering-collapse" aria-expanded="false" aria-controls="salgsvurdering-collapse">
3386 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
3387 </button>
3388 <div class="collapse" id="salgsvurdering-collapse">
3389 <div class="form-group">
3390 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
3391 </div>
3392 </div>
3393 <div class="salgsvurdering-precheck">
3394 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3>
3395 <div class="col-12">
3396 <div class="choose-broker row align-items-center active">
3397 <div class="col-2">
3398 <input class="js-broker-radio" type="radio" id="" name="choose-broker-gk" value="" checked>
3399 <label class="js-broker-label" for=""></label><div class="check">
3400 <div class="inside">
3401 </div>
3402 </div>
3403 </div>
3404 <div class="col-4">
3405 <img src="" class="img-fluid js-broker-image">
3406 </div>
3407 <div class="col-6">
3408 <span class="d-block">
3409 <strong class="js-choose-broker-name"></strong>
3410 </span>
3411 <span class="js-choose-broker-address"></span>
3412 <input type="hidden" class="js-choose-broker-phone" value="" />
3413 <input type="hidden" class="js-choose-broker-email" value="" />
3414 </div>
3415 </div>
3416 </div>
3417 </div>
3418 <div class="salgsvurdering-broker">
3419 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3>
3420 <div class="js-choose-broker col-12">
3421 </div>
3422
3423 </div>
3424
3425 <div class="form-group">
3426 <div class="checkbox">
3427 <label>
3428 <input type="checkbox" name="kontaktmigok" required />
3429 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
3430 </label>
3431 </div>
3432 </div>
3433 <div class="form-group">
3434 <div class="row">
3435 <div class="col-12">
3436 <button type="submit" class="btn btn-green btn-block">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button>
3437 </div>
3438 </div>
3439 </div>
3440 <div class="form-group form-group-terms">
3441 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
3442 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
3443 </div>
3444 <input type="hidden" name="fn" value="bsg" />
3445 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" />
3446 <input type="hidden" name="brugerId" value="@userID" />
3447 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
3448 <input type="hidden" id="boligvisning-gk" name="boligvisning" value="" />
3449 <input type="hidden" id="panel-salgsvurdering-gk-butikid" name="butikId" value="" />
3450 <input type="hidden" id="panel-salgsvurdering-gk-sagsnr" name="sagsnr" value="" />
3451 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
3452 <input type="hidden" name="ejendomstype" value="" />
3453 <input type="hidden" name="salgspris" value="" />
3454 <input type="hidden" name="employee" value="" />
3455 <input type="hidden" name="modtager" value="" />
3456 </form>
3457 <div id="tak-salgsvurdering" style="display:none;">
3458 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
3459 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p>
3460 <div class="row">
3461 <div class="col-6">
3462 <img src="" class="img-fluid js-maegler-img" />
3463 </div>
3464 <div class="col-6">
3465 <p class="js-maegler-name"></p>
3466 <p class="js-maegler-address"></p>
3467 <p class="js-maegler-phone"></p>
3468 <p class="js-maegler-mail"></p>
3469 </div>
3470 </div>
3471 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
3472 </div>
3473 </div>
3474
3475
3476 <div class="overlay-wrapper"></div>
3477 <div class="dropdown-overlay"></div>
3478 <div class="loader-inner ball-pulse"></div>
3479
3480 @{
3481 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js"));
3482 <script type="text/javascript" src='@(TemplateUrl)assets/webpack/js/3rdparty/viamapstrap.js?@(viamapstrapFileInfo.LastWriteTime.Ticks)' async></script>
3483
3484 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js"));
3485 <script type="text/javascript" src='@(TemplateUrl)assets/dist/bundle.app.min.js?@(bundleFileInfo.LastWriteTime.Ticks)' async></script>
3486 }
3487
3488 @RenderSnippet("JavaScriptBottom")
3489
3490 @if (Context.Current.Request.QueryString["ShowLogin"] == "true")
3491 {
3492 <input class="js-showLogin" value="true" />
3493 }
3494 @if (!string.IsNullOrWhiteSpace(GetString("DW_extranet_error_uk")))
3495 {
3496 <input class="js-DWError" value="true" />
3497 <input class="js-DWErrorVal" value="@GetString("DW_extranet_error_dk")" />
3498 }
3499
3500 @if (!string.IsNullOrEmpty(settings_ConduzeId))
3501 {
3502 <script type="text/javascript" id="conduze-sdk" src="https://cdn.conduze.com/@settings_ConduzeId/tracking.js" async></script>
3503 }
3504
3505 @if (!string.IsNullOrEmpty(settings_Weply))
3506 {
3507 <script src="https://app.weply.chat/widget/@settings_Weply" async></script>
3508 }
3509
3510 </body>
3511 </html>
3512
3513