Error executing template "Designs/rm_sub/frontpage.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_40ff3c3db20b42809411ac7da69df31c.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
1188 @RenderSnippet("OpenGraphTags")
1189
1190 @*RICH SNIPPETS*@
1191
1192 <script type="application/ld+json">
1193 {
1194 "context": "https://schema.org/",
1195 "@@type": "WebSite",
1196 "name": "RealMæglerne",
1197 "url": "https://www.realmaeglerne.dk/",
1198 "potentialAction": {
1199 "type": "SearchAction",
1200 "target": "https://www.realmaeglerne.dk/find-maegler?q={search_term_string}",
1201 "query-input": "required name=search_term_string"
1202 }
1203 }
1204 </script>
1205
1206 <script type="application/ld+json">
1207 {
1208 "context": "https://schema.org",
1209 "@@type": "Corporation",
1210 "name": "RealMæglerne",
1211 "alternateName": "R&B Mægler A/S",
1212 "url": "https://www.realmaeglerne.dk",
1213 "logo": "https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png",
1214 "contactPoint": {
1215 "type": "ContactPoint",
1216 "telephone": "+4570237153",
1217 "contactType": "sales",
1218 "areaServed": "DK",
1219 "availableLanguage": "Danish"
1220 },
1221 "sameAs": [
1222 "https://www.facebook.com/realmaeglerne/",
1223 "https://www.linkedin.com/company/realmæglerne/",
1224 "https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g",
1225 "https://www.realmaeglerne.dk/"
1226 ]
1227 }
1228 </script>
1229 @RenderSnippet("StructuredData")
1230 @*RICH SNIPPETS END*@
1231
1232 @*FONT AWESOME*@
1233 @{
1234 <link rel="stylesheet" href="@(TemplateUrl)assets/fontawesome/css/all.css" async />
1235 <link rel="stylesheet" href="@mainCSS" async />
1236 <link rel="icon" type="image/ico" href="@(TemplateUrl)assets/images/favicons/favicon-real.ico?v=1">
1237 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-16x16.png" sizes="16x16">
1238 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-32x32.png" sizes="32x32">
1239 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-96x96.png" sizes="96x96">
1240 <meta name="google-site-verification" content="hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg" />
1241 }
1242 <!-- Cookie Saver Preload -->
1243 <script>
1244 (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]);
1245 </script>
1246 <!-- End Cookie Saver -->
1247
1248 @if (!string.IsNullOrEmpty(settings_AntiFlicker_ID.ToString()))
1249 {
1250 <!-- Anti-flicker snippet -->
1251 <style>
1252 .async-hide {
1253 opacity: 0 !important
1254 }
1255 </style>
1256 <script>
1257 (function (a, s, y, n, c, h, i, d, e) {
1258 s.className += ' ' + y; h.start = 1 * new Date;
1259 h.end = i = function () { s.className = s.className.replace(RegExp(' ?' + y), '') };
1260 (a[n] = a[n] || []).hide = h; setTimeout(function () { i(); h.end = null }, c); h.timeout = c;
1261 })(window, document.documentElement, 'async-hide', 'dataLayer', 4000,
1262 { '@settings_Google_Tag_Manager_ID': true });</script>
1263
1264 }
1265
1266 @if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId))
1267 {
1268 <script type="text/javascript" src="https://call.call-tracking.dk/getJavascript?custid=@callTrackingId"></script>
1269 }
1270
1271 @if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString()))
1272 {
1273 <!-- Datalaget -->
1274 <script>
1275 window.dataLayer = window.dataLayer || [];
1276 </script>
1277
1278 <!-- Andet -->
1279 <script>
1280 window.dataLayer.push({
1281 'division': '@(isErhverv ? "b2b" : "b2c")', // 'b2c', 'b2b', 'project' ...
1282 });
1283 </script>
1284
1285 @RenderSnippet("GtmDatalayer")
1286
1287 <!-- Google Tag Manager -->
1288 <script>
1289 (function (w, d, s, l, i) {
1290 w[l] = w[l] || []; w[l].push({
1291 'gtm.start':
1292 new Date().getTime(), event: 'gtm.js'
1293 }); var f = d.getElementsByTagName(s)[0],
1294 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
1295 'https://frap.realmaeglerne.dk/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
1296 })(window, document, 'script', 'dataLayer', '@Converter.ToString(settings_Google_Tag_Manager_ID)');
1297 </script>
1298 }
1299
1300 @if (!string.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString()))
1301 {
1302 <!-- Begin Leadhub Pixel Code -->
1303 <script>
1304 (function(w,d,x,n,u,t,f,s,o){
1305 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){
1306 (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)
1307 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '@settings_Leadhub_Pixel_ID');
1308 lhi('pageview');
1309 </script>
1310 <!-- End Leadhub Pixel Code -->
1311 }
1312
1313 <script>
1314 // Global namespace used for fetching API feeds from DW
1315 var RMAPI = (RMAPI) ? RMAPI : {};
1316 var ApiPreFix = "/Default.aspx?ID=";
1317 RMAPI.BoligCountFeed = ApiPreFix + "@settings_BoligCountFeed";
1318 RMAPI.BoligListFeed = ApiPreFix + "@settings_BoligListFeed" + "&refpageid=@Pageview.Page.ID";
1319 RMAPI.BoligListFeedErhverv = "@settings_BoligListFeedErhverv";
1320 RMAPI.BoligListFeedMaegler = ApiPreFix + "@settings_BoligListFeedMaegler" + "&refpageid=@Pageview.Page.ID";
1321 RMAPI.BoligSearchFeed = ApiPreFix + "@settings_BoligSearchFeed";
1322 RMAPI.BoligMapFeed = ApiPreFix + "@settings_BoligMapFeed";
1323 RMAPI.Boligagent = "@settings_Boligagent";
1324 RMAPI.IsErhverv = @isErhverv.ToString().ToLower();
1325 RMAPI.ProductGroupFilter = "@productGroupFilter";
1326 RMAPI.ButikId = "@butikId";
1327 RMAPI.Boligvisning = false;
1328 RMAPI.RefPageId = "@Pageview.Page.ID";
1329 RMAPI.Template = "@template";
1330 RMAPI.SliderSettings = @JsonConvert.SerializeObject(Settings.Site);
1331 RMAPI.AdvisorSearchFeed = "@settings_AdvisorSearchFeed";
1332 RMAPI.LoadingIcon = "@loadingIcon";
1333 RMAPI.MarkerColor = "@markerColor";
1334 RMAPI.IsBoligOne = "false";
1335 RMAPI.mapMarkerUrl = "@mapMarkerUrl";
1336 RMAPI.settings_ForgotPwPage = "@settings_ForgotPwPage";
1337 </script>
1338
1339 @if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString()))
1340 {
1341 <!-- Facebook Pixel Code -->
1342 <script>
1343 !function (f, b, e, v, n, t, s) {
1344 if (f.fbq) return; n = f.fbq = function () {
1345 n.callMethod ?
1346 n.callMethod.apply(n, arguments) : n.queue.push(arguments)
1347 };
1348 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';
1349 n.queue = []; t = b.createElement(e); t.async = !0;
1350 t.src = v; s = b.getElementsByTagName(e)[0];
1351 s.parentNode.insertBefore(t, s)
1352 }(window, document, 'script',
1353 'https://connect.facebook.net/en_US/fbevents.js');
1354 fbq('init', '@settings_Facebook_App_ID');
1355 fbq('track', 'PageView');
1356 </script>
1357 <noscript>
1358 <img height="1" width="1" src="https://www.facebook.com/tr?id=@settings_Facebook_App_ID&ev=PageView&noscript=1" />
1359 </noscript>
1360 <!-- End Facebook Pixel Code -->
1361 }
1362
1363 <script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=5d68cfaf5fea9f001288d9ac&product=inline-share-buttons' async='async'></script>
1364
1365 </head>
1366
1367 <body class="@template@bodyClass theme-@Pageview.Page.ItemType.ToLower()" data-spforgotpwtemplate="@forgotPwTemplate" data-spforgotpwsender="@forgotPwSender" data-spforgotpwsubject="@forgotPwSubject" data-spsalesassesmentid="@salesAssessmentPageId">
1368 @if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID_BoligOne.ToString()))
1369 {
1370 <!-- Google Tag Manager (noscript) -->
1371 <noscript>
1372 <iframe src="https://www.googletagmanager.com/ns.html?id=@settings_Google_Tag_Manager_ID_BoligOne.ToString()"
1373 height="0" width="0" style="display:none;visibility:hidden"></iframe>
1374 </noscript>
1375 <!-- End Google Tag Manager (noscript) -->
1376 }
1377
1378 @if (Pageview.Page.ItemType == "AgentPage")
1379 {
1380 var agentUserGroup = GetValue("Real:Broker") as Dynamicweb.Security.UserManagement.UserGroup;
1381 var agentTitle = agentUserGroup.CompanyName.IsNotNullOrEmpty() ? agentUserGroup.CompanyName : agentUserGroup.Name;
1382
1383 <div class="header__container container">
1384 <div class="header__logo">
1385 <a href="/" title="">
1386 <img src="@(logoUrl)" alt="" />
1387 </a>
1388 </div>
1389 <div class="header__title">
1390 @foreach (var line in agentTitle.Split(new[] { ' ' }, 2, StringSplitOptions.None))
1391 {
1392 <span>@line</span>
1393 }
1394 </div>
1395 <div class="header__search d-lg-none js-mainsearch">
1396 @Translate("Søg bolig")
1397 </div>
1398 <div class="header__navigation">
1399 <div class="header__navigation-nav menu-slide d-none d-lg-block">
1400 @Navigation.RenderNavigation("Navigation/AgentNavigation.cshtml", new NavigationSettings { StartLevel = 1, StopLevel = 1, RootAreaId = Pageview.Area.ID })
1401 </div>
1402 <div class="header__navigation-icon menu-slide">
1403 @Translate("Menu")
1404 </div>
1405 </div>
1406 </div>
1407 }
1408 else
1409 {
1410 <div class="header logo">
1411 <div class="logo">
1412 <a href="/">
1413 <img src="@logoUrl" alt='RealMæglerne' />
1414 </a>
1415 </div>
1416 </div>
1417 <div class="header shortcuts">
1418 <div class="header-shortcuts float-right">
1419 @if (Pageview.User is object)
1420 {
1421 <a href='javascript:panelLogin()' class="login extra d-flex align-items-center float-left border-right">
1422 <i class="fa fa-user-circle" aria-hidden="true"></i><span class="hidden d-md-block">@Translate("Smartpage:Shortcuts.MinProfil", "Min profil") @*@userName*@</span>
1423 </a>
1424 }
1425 else
1426 {
1427 <a href='javascript:panelLogin()' class="login d-flex align-items-center float-left border-right">
1428 <i class="fa fa-user-circle" aria-hidden="true"></i><span class="login-text hidden d-md-block"> @Translate("Smartpage:Shortcuts.Login", "Login")</span>
1429 </a>
1430 }
1431 <a href='' class="search-menu d-flex align-items-center float-left border-right js-mainsearch @searchClass">
1432 <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>
1433 </a>
1434 <div class="menu-slide d-flex align-items-center">
1435 <b></b>
1436 <span class="menu-text">Menu</span>
1437 </div>
1438 </div>
1439 </div>
1440 }
1441
1442 <div class="search-modal">
1443
1444 @if (Converter.ToString(Pageview.Area.Item["Type"]) == "real")
1445 {
1446 <div class="main-search-form">
1447 <i class="fal fa-times float-right fa-2x js-close-search close-search"></i>
1448 <div class="row mb-3 align-items-center">
1449 <div class="col-xs-12 col-md-3 border-right">
1450 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
1451 </div>
1452 <div class="col-xs-12 col-md-9 home-count d-none d-md-block">
1453 <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>
1454
1455 </div>
1456 </div>
1457
1458 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET">
1459 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" />
1460 <div class="row form-wrapper no-gutters">
1461
1462 <div class="col-xs-12 col-md-5 col-searchbar">
1463 <div class="searchbar">
1464 <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)" />
1465 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" />
1466 <input type="hidden" id="zipcodeto" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" />
1467 </div>
1468 </div>
1469 <div class="col-xs-12 col-md-5">
1470 <div class="row no-gutters">
1471 <div class="col-xs-12 col-md-6 input-col">
1472 <div class="dropdown">
1473 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1474 @Translate("Smartpage:Search.Boligtype", "Boligtype")
1475 </button>
1476 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
1477 <ul class="bolig-dropdown list-unstyled">
1478 @{
1479 RenderBoligtypeCheckboxesDropdown();
1480 }
1481 </ul>
1482 <span class="border-fat"></span>
1483 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
1484 </div>
1485 </div>
1486 </div>
1487 <div class="col-xs-12 col-md-6 input-col">
1488 <div class="dropdown">
1489 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1490 @Translate("Smartpage:Search.Pris", "Pris")
1491 </button>
1492 <div class="dropdown-menu box-shadow dropdown-price js-dropdown-price" aria-labelledby="Pris">
1493 <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"] : "")' />
1494 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
1495 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
1496 @for (var i = 0; i <= 10000000; i += 100000)
1497 {
1498 if (i == 10000000)
1499 {
1500 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
1501 }
1502 else
1503 {
1504 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
1505 }
1506 }
1507 </select>
1508
1509 <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"] : "")' />
1510 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
1511 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
1512 @for (var i = 0; i <= 10000000; i += 100000)
1513 {
1514 if (i == 10000000)
1515 {
1516 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
1517 }
1518 else
1519 {
1520 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
1521 }
1522 }
1523 </select>
1524 </div>
1525 </div>
1526 </div>
1527 </div>
1528 </div>
1529 <div class="col-xs-12 col-md-2 d-none d-md-block">
1530 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
1531 </div>
1532 </div>
1533
1534 <div class="row moresearch-btn no-gutters">
1535 <div class="col-sm-12">
1536 <div class="row align-items-center no-gutters">
1537 <div class="col-12 col-md-4">
1538 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch">
1539 <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>
1540 </button>
1541 </div>
1542 <div class="col-6 col-md-2 mb-xs-4">
1543 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
1544 </div>
1545 </div>
1546
1547 <div class="collapse" id="moreSearch-master">
1548
1549 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
1550 <div class="row align-items-end mb-30">
1551 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
1552 <div class="filter-container row">
1553 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
1554 <div class="col-6 pr-sm-0 pr-2">
1555 <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"] : "")' />
1556 <select class="form-control js-boligarealmin-frontpage-select js-count">
1557 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
1558 @for (var i = 0; i <= 300; i += 10)
1559 {
1560 if (i == 300)
1561 {
1562 <option>@i+</option>
1563 }
1564 else
1565 {
1566 <option>@i</option>
1567 }
1568 }
1569 </select>
1570
1571 </div>
1572 <div class="col-6 pl-sm-0 pl-2">
1573 <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"] : "")' />
1574 <select class="form-control js-boligarealmax-frontpage-select js-count">
1575 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
1576 @for (var i = 0; i <= 300; i += 10)
1577 {
1578 if (i == 300)
1579 {
1580 <option>@i+</option>
1581 }
1582 else
1583 {
1584 <option>@i</option>
1585 }
1586 }
1587 </select>
1588
1589 </div>
1590 </div>
1591 </div>
1592 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
1593 <div class="filter-container row">
1594 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
1595 <div class="col-6 pr-sm-0 pr-2">
1596 <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"] : "")' />
1597 <select class="form-control js-grundarealmin-frontpage-select js-count">
1598 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
1599 @for (var i = 0; i <= 10000; i += 100)
1600 {
1601 if (i == 10000)
1602 {
1603 <option>@i+</option>
1604 }
1605 else
1606 {
1607 <option>@i</option>
1608 }
1609 }
1610 </select>
1611 </div>
1612 <div class="col-6 pl-sm-0 pl-2">
1613 <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"] : "")' />
1614 <select class="form-control js-grundarealmax-frontpage-select js-count">
1615 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
1616 @for (var i = 0; i <= 10000; i += 100)
1617 {
1618 if (i == 10000)
1619 {
1620 <option>@i+</option>
1621 }
1622 else
1623 {
1624 <option>@i</option>
1625 }
1626 }
1627 </select>
1628 </div>
1629 </div>
1630 </div>
1631 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
1632 <div class="filter-container row">
1633 <label class="d-block col-12">Antal rum</label>
1634 <div class="col-6 pr-sm-0 pr-2">
1635 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count">
1636 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
1637 @{
1638 RenderSelectValue("1", "1", "roomsmin");
1639 RenderSelectValue("2", "2", "roomsmin");
1640 RenderSelectValue("3", "3", "roomsmin");
1641 RenderSelectValue("4", "4", "roomsmin");
1642 RenderSelectValue("5+", "5", "roomsmin");
1643 }
1644 </select>
1645 </div>
1646 <div class="col-6 pl-sm-0 pl-2">
1647 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count">
1648 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
1649 @{
1650 RenderSelectValue("1", "1", "roomsmax");
1651 RenderSelectValue("2", "2", "roomsmax");
1652 RenderSelectValue("3", "3", "roomsmax");
1653 RenderSelectValue("4", "4", "roomsmax");
1654 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax");
1655 }
1656 </select>
1657 </div>
1658 </div>
1659 </div>
1660 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0">
1661 <div class="row">
1662 <div class="col-12 pr-2">
1663 <div class="filter-container">
1664 <label class="d-block">Energimærke</label>
1665 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count">
1666 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
1667 <option value="01">G</option>
1668 <option value="02">F</option>
1669 <option value="03">E</option>
1670 <option value="04">D</option>
1671 <option value="05">C</option>
1672 <option value="06">B</option>
1673 <option value="07">A</option>
1674 <option value="08">A2010</option>
1675 <option value="09">A2015</option>
1676 <option value="10">A2020+</option>
1677 </select>
1678 </div>
1679 </div>
1680 </div>
1681 </div>
1682 <div class="col-12 col-sm-6 col-lg-3 mt-3">
1683 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
1684 <div class="filter-container row">
1685 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
1686 <div class="col-6 pr-sm-0 pr-2">
1687 <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"] : "")' />
1688 <select class="form-control js-subsidymin-frontpage-select js-count">
1689 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
1690 @for (var i = 0; i <= 25000; i += 1250)
1691 {
1692 if (i == 25000)
1693 {
1694 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
1695 }
1696 else
1697 {
1698 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
1699 }
1700 }
1701 </select>
1702 </div>
1703 <div class="col-6 pl-sm-0 pl-2">
1704 <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"] : "")' />
1705 <select class="form-control js-subsidymax-frontpage-select js-count">
1706 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
1707 @for (var i = 0; i <= 25000; i += 1250)
1708 {
1709 if (i == 25000)
1710 {
1711 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
1712 }
1713 else
1714 {
1715 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
1716 }
1717 }
1718 </select>
1719 </div>
1720 </div>
1721 </div>
1722 <div class="col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0">
1723 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
1724 </div>
1725 </div>
1726 </div>
1727 </div>
1728 </div>
1729 <div class="row d-block d-md-none form-wrapper no-gutters">
1730 <div class="col-xs-12 col-md-2">
1731 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
1732 </div>
1733 </div>
1734
1735
1736 </form>
1737 </div>
1738 }
1739 else
1740 {
1741 <div class="main-search-form center">
1742 <i class="fal fa-times float-right fa-2x js-close-search"></i>
1743 <div class="row mb-3 align-items-center">
1744 <div class="col-xs-12 col-md-5 border-right">
1745 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3>
1746 </div>
1747 <div class="col-xs-12 col-md-7 home-count d-none d-md-block">
1748 <span class="search-count" id="searchCounterMain">0</span> <span>@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")</span>
1749 </div>
1750 </div>
1751
1752 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET">
1753 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" />
1754 <div class="row form-wrapper no-gutters">
1755
1756 <div class="col-12 mb-10">
1757 <div class="searchbar">
1758 <input type="text" name="@querySearchNameAttr" id="searchfield" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value='@querySearch' />
1759 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value='@queryZipCodeFrom' />
1760 <input type="hidden" id="zipcodeto" name="zipcodeto" value='@queryZipCodeTo' />
1761 </div>
1762 </div>
1763 <div class="col-xs-12 col-md-8">
1764 <div class="row no-gutters">
1765 <div class="col-xs-12 col-md-6 input-col">
1766 <div class="dropdown">
1767 <button class="btn btn-dropdown dropdown-toggle reverse js-count" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1768 @Translate("Smartpage:Search.Boligtype", "Boligtype")
1769 </button>
1770 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype">
1771 <ul class="bolig-dropdown list-unstyled">
1772 @{
1773 RenderBoligtypeCheckboxesDropdown();
1774 }
1775 </ul>
1776 <span class="border-fat"></span>
1777 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button>
1778 </div>
1779
1780 </div>
1781
1782 </div>
1783 <div class="col-xs-12 col-md-6 input-col">
1784 <div class="dropdown">
1785 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1786 @Translate("Smartpage:Search.Pris", "Pris")
1787 </button>
1788 <div class="dropdown-menu box-shadow dropdown-price" aria-labelledby="Pris">
1789 <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")' />
1790 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10">
1791 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option>
1792 @for (var i = 0; i <= 10000000; i += 100000)
1793 {
1794 if (i == 10000000)
1795 {
1796 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
1797 }
1798 else
1799 {
1800 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
1801 }
1802 }
1803 </select>
1804
1805 <input type="text" name="pricemax" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")' />
1806 <select class="form-control js-pricemax-frontpage-select js-input-max-select">
1807 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option>
1808 @for (var i = 0; i <= 10000000; i += 100000)
1809 {
1810 if (i == 10000000)
1811 {
1812 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option>
1813 }
1814 else
1815 {
1816 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option>
1817 }
1818 }
1819 </select>
1820 </div>
1821 </div>
1822 </div>
1823 </div>
1824 </div>
1825 <div class="col-xs-12 col-md-4 d-none d-md-block">
1826 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button>
1827 </div>
1828 </div>
1829
1830 <div class="row moresearch-btn no-gutters">
1831 <div class="col-sm-12">
1832 <div class="row align-items-center no-gutters">
1833 <div class="col-12 col-md-5">
1834 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch-master">
1835 <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>
1836 </button>
1837 </div>
1838 <div class="col-6 col-md-3 mb-xs-4">
1839 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a>
1840 </div>
1841 <div class="col-6 col-md-4 mb-xs-4">
1842 <div class="parent-purchases">
1843 <label class="checkbox-container white">
1844 @Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet")
1845 <input type="checkbox" name="foraeldrekoebegnet" value="true" class="js-input-check">
1846 <span class="checkmark grey"></span>
1847 </label>
1848 </div>
1849 </div>
1850 </div>
1851
1852 <div class="collapse" id="moreSearch-master">
1853
1854 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4>
1855 <div class="row align-items-end mb-30">
1856 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
1857 <div class="filter-container row">
1858 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label>
1859 <div class="col-6 pr-sm-0 pr-2">
1860 <input type="text" name="boligarealmin" id="boligarealmin" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' />
1861 <select class="form-control js-boligarealmin-frontpage-select js-count">
1862 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
1863 @for (var i = 0; i <= 300; i += 10)
1864 {
1865 if (i == 300)
1866 {
1867 <option>@i+</option>
1868 }
1869 else
1870 {
1871 <option>@i</option>
1872 }
1873 }
1874 </select>
1875 </div>
1876 <div class="col-6 pl-sm-0 pl-2">
1877 <input type="text" name="boligarealmax" id="boligarealmax" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' />
1878 <select class="form-control js-boligarealmax-frontpage-select js-count">
1879 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
1880 @for (var i = 0; i <= 300; i += 10)
1881 {
1882 if (i == 300)
1883 {
1884 <option>@i+</option>
1885 }
1886 else
1887 {
1888 <option>@i</option>
1889 }
1890 }
1891 </select>
1892 </div>
1893 </div>
1894 </div>
1895 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
1896 <div class="filter-container row">
1897 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label>
1898 <div class="col-6 pr-sm-0 pr-2">
1899 <input type="text" name="grundarealmin" id="grundarealmin" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' />
1900 <select class="form-control js-grundarealmin-frontpage-select js-count">
1901 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option>
1902 @for (var i = 0; i <= 10000; i += 100)
1903 {
1904 if (i == 10000)
1905 {
1906 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
1907 }
1908 else
1909 {
1910 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
1911 }
1912 }
1913 </select>
1914 </div>
1915 <div class="col-6 pl-sm-0 pl-2">
1916 <input type="text" name="grundarealmax" id="grundarealmax" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' />
1917 <select class="form-control js-grundarealmax-frontpage-select">
1918 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option>
1919 @for (var i = 0; i <= 10000; i += 100)
1920 {
1921 if (i == 10000)
1922 {
1923 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
1924 }
1925 else
1926 {
1927 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
1928 }
1929 }
1930 </select>
1931 </div>
1932 </div>
1933 </div>
1934 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
1935 <div class="filter-container row">
1936 <label class="d-block col-12">Antal rum</label>
1937
1938 <div class="col-6 pr-sm-0 pr-2">
1939 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count">
1940 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option>
1941 <option value="1">1</option>
1942 <option value="2">2</option>
1943 <option value="3">3</option>
1944 <option value="4">4</option>
1945 <option value="5">5+</option>
1946 </select>
1947 </div>
1948 <div class="col-6 pl-sm-0 pl-2">
1949 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count">
1950 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option>
1951 <option value="1">1</option>
1952 <option value="2">2</option>
1953 <option value="3">3</option>
1954 <option value="4">4</option>
1955 <option value="5">5+</option>
1956 </select>
1957 </div>
1958 </div>
1959 </div>
1960 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0">
1961 <div class="row">
1962 <div class="col-12 pr-2">
1963 <div class="filter-container">
1964 <label class="d-block">Energimærke</label>
1965 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count">
1966 <option disabled selected="selected">@Translate("Smartpage:Search.Vælg", "Vælg")</option>
1967 <option value="01">G</option>
1968 <option value="02">F</option>
1969 <option value="03">E</option>
1970 <option value="04">D</option>
1971 <option value="05">C</option>
1972 <option value="06">B</option>
1973 <option value="07">A</option>
1974 <option value="08">A2010</option>
1975 <option value="09">A2015</option>
1976 <option value="10">A2020+</option>
1977 </select>
1978 </div>
1979 </div>
1980 </div>
1981 </div>
1982 <div class="col-12 col-sm-6 col-lg-6 mt-3">
1983 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4>
1984 <div class="filter-container row">
1985 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label>
1986 <div class="col-6 pr-sm-0 pr-2">
1987 <input type="text" name="subsidymin" id="subsidymin" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Min", "Min")' />
1988 <select class="form-control js-subsidymin-frontpage-select js-count">
1989 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option>
1990 @for (var i = 0; i <= 25000; i += 1250)
1991 {
1992 if (i == 25000)
1993 {
1994 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
1995 }
1996 else
1997 {
1998 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
1999 }
2000 }
2001 </select>
2002 </div>
2003 <div class="col-6 pl-sm-0 pl-2">
2004 <input type="text" name="subsidymax" id="subsidymax" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Max", "Max")' />
2005 <select class="form-control js-subsidymax-frontpage-select js-count">
2006 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option>
2007 @for (var i = 0; i <= 25000; i += 1250)
2008 {
2009 if (i == 25000)
2010 {
2011 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option>
2012 }
2013 else
2014 {
2015 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option>
2016 }
2017 }
2018 </select>
2019 </div>
2020 </div>
2021 </div>
2022 <div class="col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0">
2023 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button>
2024 </div>
2025 </div>
2026 </div>
2027 </div>
2028 </div>
2029 <div class="row d-block d-md-none form-wrapper no-gutters">
2030 <div class="col-xs-12 col-md-2">
2031 <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>
2032 </div>
2033 </div>
2034
2035
2036 </form>
2037 </div>
2038 }
2039
2040 </div>
2041 @{
2042 RenderSlideMenu(false, false, Converter.ToString(settings_Maeglersogning));
2043 }
2044
2045 @if (isBrokerPage && Pageview.Page.ItemType != "AgentPage")
2046 {
2047 <section class="maegler-navbar">
2048 @RenderNavigation(new
2049 {
2050 id = "navbar-main",
2051 cssclass = "dwnavigation",
2052 template = "ul_li.xslt",
2053 StartLevel = 1,
2054 EndLevel = 1
2055 })
2056 </section>
2057 }
2058
2059 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2060 @using Custom.Integration.Brokers;
2061 @using Newtonsoft.Json;
2062 @using RealMaeglerne.Dynamicweb;
2063 @using RealMaeglerne.Dynamicweb.Models;
2064 @using System.Xml.Linq;
2065 @using Dynamicweb.Core;
2066 @using System.Linq;
2067 @using Dynamicweb;
2068
2069
2070 @GetValue("Title(Forside)")
2071 @GetValue("Description(Forsideskabelon til Mæglersider)")
2072 @{
2073 string siteUrl = Utils.GetBaseUrl(true);
2074 var Broker = GetValue("Real:Broker") as Dynamicweb.Security.UserManagement.UserGroup;
2075 string brokerName = Broker.Name;
2076 if (!string.IsNullOrEmpty(Broker.CompanyName))
2077 {
2078 brokerName = Broker.CompanyName;
2079 }
2080 string brokerPhone = RealMaeglerne.Library.Helper.FormatPhoneNumber(Broker.Telephone);
2081 string brokerEmail = Broker.Item().GetString("Email");
2082 string brokerID = Broker.ID.ToString();
2083 string brokerRating = "";
2084 string brokerImage = Broker.GeolocationIcon.ToString();
2085 string brokerUrl = siteUrl + GetString("DwAreaName");
2086 string brokerTitle = GetString("Item.SPTitleForDesc");
2087 string brokerDesc = GetString("Item.Beskrivelse");
2088 string teaserDesc = System.Text.RegularExpressions.Regex.Replace(brokerDesc, "<[^>]*>", string.Empty);
2089
2090 if (teaserDesc.Length > 300)
2091 {
2092 teaserDesc = teaserDesc.Substring(0, 300) + "...";
2093 }
2094 if (!String.IsNullOrEmpty(Broker.Item().GetString("Rating")))
2095 {
2096 brokerRating = Broker.Item().GetString("Rating");
2097 }
2098 string brokerBadgeBesvarelser = "";
2099 if (!String.IsNullOrEmpty(Broker.Item().GetString("BadgeBesvarelser")))
2100 {
2101 brokerBadgeBesvarelser = Broker.Item().GetString("BadgeBesvarelser");
2102 }
2103
2104 butikId = Broker.Item().GetString("CBMedlemsnummer");
2105 primaryArea = Broker.Item().GetString("PrimaertOmraade");
2106
2107 string brugerId = String.Empty;
2108 try
2109 {
2110 brugerId = Dynamicweb.Security.UserManagement.User.GetCurrentUserID().ToString();
2111 }
2112 catch
2113 {
2114 // Ignore
2115 }
2116
2117 var Aabningstider = JsonConvert.DeserializeObject<ForretningsoplysningerAabningstider>(Broker.Item().GetString("AabningstiderJson"));
2118
2119 //Find EcomCatalog
2120 Dynamicweb.Content.ParagraphService paragraphService = new Dynamicweb.Content.ParagraphService();
2121
2122 var paragraphs = paragraphService.GetParagraphsByPageId(Dynamicweb.Frontend.PageView.Current().ID);
2123
2124 bool hasEcomCatalog = false;
2125 int pageSize = 8;
2126
2127 foreach (var paragraph in paragraphs)
2128 {
2129 if (paragraph.ModuleSystemName == "eCom_Catalog" && paragraph.ShowParagraph)
2130 {
2131 hasEcomCatalog = true;
2132
2133 // 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
2134 var rootModuleSettingsElement = XElement.Parse(paragraph.ModuleSettings);
2135 var pageSizeElement = rootModuleSettingsElement.Element("PageSize");
2136 if (pageSizeElement != null)
2137 {
2138 pageSize = Converter.ToInt32(rootModuleSettingsElement.Element("PageSize").Value);
2139 }
2140 }
2141 }
2142 }
2143
2144 @SnippetStart("OpenGraphTags")
2145
2146 <meta property="og:type" content="website" />
2147 <meta property="og:url" content="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(Context.Current.Request.Url.AbsoluteUri)" />
2148 <meta property="og:image" content="@brokerImage" />
2149 <meta property="og:title" content="@brokerName" />
2150 <meta property="og:description" content="@teaserDesc" />
2151
2152 @SnippetEnd("OpenGraphTags")
2153
2154 @SnippetStart("GtmDatalayer")
2155
2156 <!-- GTM -->
2157
2158 <script>
2159 window.dataLayer.push({
2160 'realEstateAgentId': '@Broker.Item().GetString("CBMedlemsnummer")',
2161 });
2162 </script>
2163
2164 @SnippetEnd("GtmDatalayer")
2165
2166 @SnippetStart("JavaScriptBottom")
2167
2168 <script type="application/ld+json">
2169 {
2170 "@@context":"http://schema.org",
2171 "@@type":"RealEstateAgent",
2172 "name":"@(brokerName)",
2173 "image":"@(brokerImage)",
2174 "url":"@(brokerUrl)",
2175 "address":{
2176 "@@type":"PostalAddress",
2177 "addressCountry":"DK",
2178 "addressLocality":"@(Broker.City.ToString())",
2179 "postalCode":"@(Broker.ZipCode.ToString())",
2180 "streetAddress":"@(Broker.Address.ToString())"
2181 },
2182 @if (!string.IsNullOrEmpty(brokerRating)
2183 && !string.IsNullOrEmpty(brokerBadgeBesvarelser)
2184 && Convert.ToDouble(brokerRating, System.Globalization.CultureInfo.InvariantCulture) >= 8.5)
2185 {
2186 <text>"aggregateRating":{
2187 "@@type":"AggregateRating",
2188 "bestRating":10.0,
2189 "ratingValue":"@(brokerRating)",
2190 "reviewCount":@(brokerBadgeBesvarelser)
2191 },</text>
2192 }
2193 "email":"2600@mailreal.dk",
2194 "telephone":"+45 @(RealMaeglerne.Library.Helper.FormatPhoneNumber(Broker.Telephone))"
2195 }
2196 </script>
2197
2198 <script>
2199 var RMAPI = (RMAPI) ? RMAPI : {};
2200 RMAPI.brokerImage = "@(brokerImage)";
2201 RMAPI.CBMedlemsnummer = "@(Broker.Item().GetString("CBMedlemsnummer"))";
2202 RMAPI.CompanyName = "@(Broker.CompanyName)";
2203 RMAPI.AddressZip = "@(Broker.Address), @(Broker.ZipCode)";
2204 RMAPI.Telephone = "@(Broker.Telephone)";
2205 RMAPI.Email = "@(Broker.Item().GetString("Email"))";
2206 RMAPI.GeolocationIcon = "@(Broker.GeolocationIcon.ToString())";
2207 RMAPI.City = "@Broker.City";
2208 RMAPI.ButikId = "@butikId";
2209 </script>
2210
2211 <script type="text/javascript" src='/Files/Templates/Designs/rm/assets/dist/bundle.maegler.min.js'></script>
2212
2213 @SnippetEnd("JavaScriptBottom")
2214
2215 @if (!String.IsNullOrEmpty(Broker.GeolocationIcon.ToString()))
2216 {
2217 <section class="maegler-header" style="background-image: url('@brokerImage');"></section>
2218 }
2219
2220 @*ADD SESSION VALUE IF DP PARAMETER EXIST*@
2221 @{
2222 var request = Context.Current.Request.QueryString.GetValues(null);
2223 if (request != null)
2224 {
2225 foreach (string x in request)
2226 {
2227 if (request.Contains("dp"))
2228 {
2229 Context.Current.Session["DP"] = "dp ";
2230 }
2231 }
2232 }
2233 }
2234
2235 <section class="maegler-page">
2236 <div class="container">
2237 <div class="page">
2238 <div class="content">
2239 <div class="row">
2240 <div class="col-xs-12 col-md-8 col-lg-9">
2241 <p class="sp-paragraph-broker-style js-choose-broker-name-val">@brokerName</p>
2242 <div class="row">
2243 <div class="col-xs-12 col-md-4">
2244 <div class="row">
2245 <div class="col-xs-12 col-sm-6 col-md-12">
2246 <p>
2247 <span class="js-choose-broker-address-val">@Broker.Address<br></span>
2248 <span class="js-choose-broker-zip">@Broker.ZipCode @Broker.City<br></span>
2249 @if (!string.IsNullOrEmpty(brokerEmail))
2250 {
2251 <text>Mail: <a href='mailto:@brokerEmail'>@brokerEmail</a><br></text>
2252 }
2253 @if (!string.IsNullOrEmpty(brokerPhone))
2254 {
2255 <text>Tlf.: <a href="tel:@brokerPhone">@brokerPhone</a></text>
2256 }
2257 </p>
2258 </div>
2259 @if (!string.IsNullOrEmpty(brokerRating))
2260 {
2261 <div class="col-xs-12 col-sm-6 col-md-12">
2262 @if (Convert.ToDouble(brokerRating, System.Globalization.CultureInfo.InvariantCulture) >= 8.5)
2263 {
2264 if (!string.IsNullOrEmpty(Broker.Item().GetString("BadgeToken")))
2265 {
2266 <iframe scrolling="no" frameborder="0" width="100%" src='https://maegler.boligsiden.dk/badge/index/@(Broker.Item().GetString("BadgeToken"))'></iframe>
2267 }
2268 }
2269 </div>
2270 }
2271 </div>
2272 </div>
2273 <div class="col-xs-12 col-md-8 col-lg-7">
2274 <h1 class="sp-broker-title-style">@brokerTitle</h1>
2275 @brokerDesc
2276 </div>
2277 </div>
2278 </div>
2279 <div class="col-xs-12 col-md-4 col-lg-3">
2280 @if (Aabningstider != null)
2281 {
2282 <h3>@Translate("Smartpage:Åbningstider", "Åbningstider")</h3>
2283 <table>
2284 <tr>
2285 <td>@Translate("Smartpage:Mandag", "Mandag")</td>
2286 <td align="right"><b>@Aabningstider.Mandag</b></td>
2287 </tr>
2288 <tr>
2289 <td>@Translate("Smartpage:Tirsdag", "Tirsdag")</td>
2290 <td align="right"><b>@Aabningstider.Tirsdag</b></td>
2291 </tr>
2292 <tr>
2293 <td>@Translate("Smartpage:Onsdag", "Onsdag")</td>
2294 <td align="right"><b>@Aabningstider.Onsdag</b></td>
2295 </tr>
2296 <tr>
2297 <td>@Translate("Smartpage:Torsdag", "Torsdag")</td>
2298 <td align="right"><b>@Aabningstider.Torsdag</b></td>
2299 </tr>
2300 <tr>
2301 <td>@Translate("Smartpage:Fredag", "Fredag")</td>
2302 <td align="right"><b>@Aabningstider.Fredag</b></td>
2303 </tr>
2304 @if (Aabningstider.Loerdag == Aabningstider.Soendag)
2305 {
2306 <tr>
2307 <td>@Translate("Smartpage:LødagSøndag", "Lørdag - søndag")</td>
2308 <td align="right"><b>@Aabningstider.Loerdag</b></td>
2309 </tr>
2310 }
2311 else
2312 {
2313 <tr>
2314 <td>@Translate("Smartpage:Lørdag", "Lørdag")</td>
2315 <td align="right"><b>@Aabningstider.Loerdag</b></td>
2316 </tr>
2317 <tr>
2318 <td>@Translate("Smartpage:Søndag", "Søndag")</td>
2319 <td align="right"><b>@Aabningstider.Soendag</b></td>
2320 </tr>
2321 }
2322 </table>
2323 }
2324 <br />
2325
2326 @{
2327 var dpmaegler = "" + Context.Current.Session["DP"] + "Mæglervisning" + "";
2328 string appraisalBtnColor = GetString("Item.BestilGratisVurderingKnapFarve");
2329 string greenAppraisalBtnColor = GetString("Item.BestilGroenVurderingFarve");
2330
2331 <a class="btn btn-primary btn-block js-section-btn" style="background-color: @appraisalBtnColor" href="#bestilSalgsvurdering">@Translate("form-salgsvurdering-cta", "Bestil gratis salgsvurdering")</a>
2332 <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>
2333 }
2334 </div>
2335 </div>
2336 </div>
2337 </div>
2338 </div>
2339 </section>
2340
2341 <div id="bestilSalgsvurdering" class="salgsvurdering-container">
2342 <div class="u-full-height">
2343 <div class="grid bestil-salgsvurdering-item dw-mod">
2344 <div class="grid__col- col-lg-12 col-sm-12 rhs">
2345 <div class="salgsvurdering-form">
2346 <div class="top-section">
2347 <div class="header">
2348 @Translate("Smartpage:Form.Salgsvurdering.Header", "Bestil vurdering")
2349 </div>
2350 <div class="description">
2351 @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>
2352 </div>
2353 </div>
2354 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler">
2355 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
2356 <div class="form-group-container">
2357 <div class="form-group">
2358 <input class="form-control js-autocomplete-city" type="hidden" readonly />
2359 <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 />
2360 <input type="hidden" class="js-postnummer-validation" />
2361 <input type="hidden" class="form-control js-autocomplete-adresse" name="adresse" />
2362 </div>
2363
2364 <div class="form-group mr-3 address">
2365 <div class="autocomplete-container">
2366 <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'/>
2367 </div>
2368 </div>
2369
2370 <div class="form-group mr-3">
2371 <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")' />
2372 </div>
2373
2374 <div class="form-group mr-3">
2375 <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")' />
2376 </div>
2377
2378 <div class="form-group mr-3">
2379 <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")' />
2380 </div>
2381 </div>
2382 <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">
2383 <i class="icon fas fa-plus"></i><span class="text">@Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Tilføj kommentar til mægler")</span>
2384 </button>
2385
2386 <div class="collapse" id="salgsvurdering-collapse">
2387 <div class="form-group">
2388 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
2389 </div>
2390 </div>
2391
2392
2393 <div class="form-group mt-3 mb-2">
2394 <div class="checkbox">
2395 <label>
2396 <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")' />
2397 <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>
2398 </label>
2399 </div>
2400 </div>
2401 <div class="form-group mb-0">
2402 <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>
2403 </div>
2404 <input type="hidden" name="fn" value="bsv" />
2405 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="SalgsvurderingBrokerPage" />
2406 <input type="hidden" name="brugerId" value="" />
2407 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
2408 <input type="hidden" id="boligvisning" name="boligvisning" value="" />
2409 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="@butikId" />
2410 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" />
2411 <input type="hidden" name="ejendomstype" value="" />
2412 <input type="hidden" name="salgspris" value="" />
2413 <input type="hidden" name="employee" value="" />
2414 <input type="hidden" name="modtager" value="" />
2415 <input class="js-value-check" type="hidden" name="valueCheck" value="" />
2416 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" />
2417 </form>
2418
2419 </div>
2420 <div id="tak-salgsvurdering" class="salgsvurdering-confirmation" style="display:none;">
2421 <div class="header">
2422 @Translate("Smartpage:Form.Salgsvurdering.Confirmation.Header", "Tak for din interesse")
2423 </div>
2424 <div class="description">
2425 @Translate("Smartpage:Form.Salgsvurdering.Confirmation.Description", "Du vil snarest blive kontaktet af en af vores medarbejdere.")
2426 </div>
2427 </div>
2428 </div>
2429 </div>
2430 </div>
2431 </div>
2432
2433 @* KAMPAGNEELEMENT *@
2434 @if (GetBoolean("Real:Broker.Campaign.Exists"))
2435 {
2436 var type = GetString("Real:Broker.Campaign.Type");
2437 string image = "";
2438 if (!string.IsNullOrEmpty(GetString("Real:Broker.Campaign.Image")))
2439 {
2440 if (type == "fullwidth")
2441 {
2442 image = "/Admin/Public/GetImage.ashx?Image=" + GetString("Real:Broker.Campaign.Image") + "&Width=1920&Height=640";
2443 }
2444 else
2445 {
2446 image = "/Admin/Public/GetImage.ashx?Image=" + GetString("Real:Broker.Campaign.Image") + "&Width=960&Height=640";
2447 }
2448 }
2449 string btnClass = "btn-primary";
2450 string bgcolor = GetString("Real:Broker.Campaign.BackgroundColor");
2451 string txtcolor = "#fff";
2452 string title = GetString("Real:Broker.Campaign.Headline");
2453 string desc = GetString("Real:Broker.Campaign.Text").Replace("<h1", "<h2").Replace("</h1", "</h2"); // Avoid multiple H1 tags on page
2454 string link = GetString("Real:Broker.Campaign.Link");
2455 string linkText = GetString("Real:Broker.Campaign.ButtonText");
2456 if (!string.IsNullOrEmpty(GetString("Real:Broker.Campaign.TextColor")))
2457 {
2458 txtcolor = GetString("Real:Broker.Campaign.TextColor");
2459 }
2460 if (!string.IsNullOrEmpty(GetString("Real:Broker.Campaign.ButtonType")))
2461 {
2462 btnClass = GetString("Real:Broker.Campaign.ButtonType");
2463 }
2464
2465 if (type == "fullwidth")
2466 {
2467 string ctaClass = "cta-fullwidth";
2468 string cntClass = "col-xs-12 col-md-6 col-md-push-3";
2469 var align = GetString("Real:Broker.Campaign.TextAlign");
2470
2471 if (GetBoolean("Real:Broker.Campaign.BlueOverlay"))
2472 {
2473 ctaClass += " cta-overlay";
2474 }
2475 if (align == "left")
2476 {
2477 cntClass = "col-xs-12 col-md-6";
2478 }
2479 if (align == "right")
2480 {
2481 cntClass = "col-xs-12 col-md-6 col-md-push-6";
2482 }
2483 <section class="cta @ctaClass" style="background-color:@bgcolor;color:@txtcolor;background-image:url('@image');">
2484 <div class="container-fluid">
2485 <div class="row">
2486 <div class="cta-content">
2487 @if (!string.IsNullOrEmpty(title))
2488 {
2489 <h2>@title</h2>
2490 }
2491 @if (!string.IsNullOrEmpty(desc))
2492 {
2493 <p>@desc</p>
2494 }
2495 @if (!string.IsNullOrEmpty(link) && !string.IsNullOrEmpty(linkText))
2496 {
2497 <div class="text-center">
2498 <br />
2499 <a class="btn @btnClass" href='@link'>@linkText</a>
2500 </div>
2501 }
2502 </div>
2503 </div>
2504 </div>
2505 </section>
2506 }
2507
2508 if (type == "cta-left" || type == "cta-right")
2509 {
2510 string imgClass = "col-12 col-md-6 d-flex align-items-center";
2511 string cntClass = "col-12 col-md-6 d-flex align-items-center";
2512 if (type == "cta-right")
2513 {
2514 imgClass = "col-12 col-md-6 order-md-6 d-flex align-items-center";
2515 cntClass = "col-12 col-md-6 d-flex align-items-center";
2516 }
2517 <section class="cta">
2518 <div class="container-fluid">
2519 <div class="row">
2520
2521 <div class="cta-image @imgClass" style="background-image:url('@image');">
2522
2523 </div>
2524 <div class="@cntClass" style="background-color:@bgcolor;color:@txtcolor;">
2525 <div class="cta-content">
2526 @if (!string.IsNullOrEmpty(title))
2527 {
2528 <h2>@title</h2>
2529 }
2530 @if (!string.IsNullOrEmpty(desc))
2531 {
2532 <p>@desc</p>
2533 }
2534 @if (!string.IsNullOrEmpty(link) && !string.IsNullOrEmpty(linkText))
2535 {
2536 <div class="text-center">
2537 <br />
2538 <a class="btn @btnClass" href='@link'>@linkText</a>
2539 </div>
2540 }
2541 </div>
2542 </div>
2543 </div>
2544 </div>
2545 </section>
2546 }
2547
2548 if (type == "slim")
2549 {
2550 <section class="bar-text" style="background-color:@bgcolor;color:@txtcolor;">
2551 <div class="container">
2552 <div class="row">
2553 <div class="col-12">
2554 <div class="bar-text-wrap">
2555 @if (!string.IsNullOrEmpty(title))
2556 {
2557 <span class="bar-text-title">@title</span>
2558 }
2559 @if (!string.IsNullOrEmpty(link) && !string.IsNullOrEmpty(linkText))
2560 {
2561 <div class="bar-text-links">
2562 <a class="btn @btnClass" href='@link'>@linkText</a>
2563 </div>
2564 }
2565 </div>
2566 </div>
2567 </div>
2568 </div>
2569 </section>
2570 }
2571 }
2572
2573 @if (GetLoop("Real:Broker.Employees").Count > 0)
2574 {
2575 <section>
2576 <div class="container">
2577 <h2 class="text-center mt-4">@Translate("Smartpage:BrokerPage.Employees", "Medarbejdere")</h2>
2578 <div class="broker-list row">
2579 @{
2580 foreach (var employee in GetLoop("Real:Broker.Employees"))
2581 {
2582 string employeePhone = RealMaeglerne.Library.Helper.FormatPhoneNumber(employee.GetString("PhoneMobile"));
2583 string employeeEmail = RealMaeglerne.Library.Helper.ExtractMaskedEmail(employee.GetString("Email"));
2584 string employeeImage = "";
2585 string employeeClass = "na";
2586
2587 employeeImage = "/Files/Templates/Designs/rm/assets/images/na-real.png";
2588
2589 bool CanSelect = employee.GetBoolean("MyEmployee");
2590 if (!string.IsNullOrEmpty(employee.GetString("Image")))
2591 {
2592 employeeImage = employee.GetString("Image");
2593 employeeClass = "";
2594 }
2595 if (!string.IsNullOrEmpty(employee.GetString("ImageWithBackground")))
2596 {
2597 employeeImage = employee.GetString("ImageWithBackground");
2598 employeeClass = "";
2599 }
2600
2601 <div class="broker col-12 col-sm-6 col-md-3" data-id='@employee.GetString("ID")'>
2602
2603 <div class="img @employeeClass"><img src="@employeeImage" class="img-fluid img-bicubic"></div>
2604 <h4 class="name">@(employee.GetValue("Name"))</h4>
2605 @if (!string.IsNullOrEmpty(employee.GetString("JobTitle")))
2606 {
2607 <p>@employee.GetString("JobTitle")</p>
2608 }
2609 @if (!string.IsNullOrEmpty(employeeEmail))
2610 {
2611 <p>Mail: <a href='mailto:@(employeeEmail)'>@(employeeEmail)</a></p>
2612 }
2613 @if (!string.IsNullOrEmpty(employeePhone))
2614 {
2615 <p>Tlf.: <a href='tel:@(employeePhone)'>@(employeePhone)</a></p>
2616 }
2617
2618 </div>
2619 }
2620 }
2621 </div>
2622 </div>
2623 </section>
2624 }
2625
2626 <div class="dwcontent" id="content-main" title="Main content" data-settings="unwrap: true;"></div>
2627 @GetValue("DwContent(contentmain)")
2628
2629 @* Render boliglist *@
2630 @if (!hasEcomCatalog)
2631 {
2632 @RenderParagraphContent(16616)
2633 }
2634 else if (pageSize <= 8)
2635 {
2636 <div class="btn btn-primary loadmore maegler" data-broker="@butikId" id="btnShowMore">Se flere</div>
2637 }
2638
2639 @if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && GetBoolean("Item.Page.HideMyBroker.Value") != true)
2640 {
2641 string bName = MyBroker.Broker.Name;
2642 string bImage = "";
2643 string bClass = "na";
2644 bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png";
2645 var item = ItemManager.Storage.GetById(MyBroker.Employee.ItemType, MyBroker.Employee.ItemId);
2646
2647 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName))
2648 {
2649 bName = MyBroker.Broker.CompanyName;
2650 }
2651 try
2652 {
2653 var imgUrl = Converter.ToString(item["BilledeUrl"]);
2654 if (!string.IsNullOrEmpty(imgUrl))
2655 {
2656 bImage = imgUrl;
2657 bClass = "";
2658 }
2659 }
2660 catch
2661 {
2662 // Ignore
2663 }
2664
2665 string bAreaID = Converter.ToString(item["WebsiteId"]);
2666 string medlemsnummer = Converter.ToString(item["CBMedlemsnummer"]);
2667 <section class="din-maegler">
2668 <div class="img-wrapper @bClass" style="background-image:url('@bImage')"></div>
2669 <div class="container">
2670 <div class="col-12 col-sm-12 col-md-6 offset-md-6">
2671 <h2>Din personlige mægler</h2>
2672 <div class="row">
2673 <div class="col-12 col-sm-6">
2674 <p>
2675 <b class="my-broker-name">@MyBroker.Employee.Name</b><br>
2676 @if (!string.IsNullOrEmpty(MyBroker.Employee.Email))
2677 {
2678 <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>
2679 }
2680 @if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile))
2681 {
2682 <text>Tlf.: <a href="tel:@(MyBroker.Employee.PhoneMobile)" class="my-broker-phone">@RealMaeglerne.Library.Helper.FormatPhoneNumber(MyBroker.Employee.PhoneMobile)</a></text>
2683 }
2684 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
2685 {
2686 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-phone">@RealMaeglerne.Library.Helper.FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text>
2687 }
2688 </p>
2689 </div>
2690 <div class="col-12 col-sm-6">
2691 <p>
2692 <b class="my-broker-company-name">@bName</b><br>
2693 <span class="my-broker-company-address">@MyBroker.Broker.Address</span><br>
2694 <span class="my-broker-company-zip">@MyBroker.Broker.ZipCode</span> <span class="my-broker-company-city">@MyBroker.Broker.City</span><br>
2695 @if (!string.IsNullOrEmpty(bEmail))
2696 {
2697 <text>Mail: <a href="mailto:@(bEmail)" class="my-broker-broker-email">@bEmail</a><br></text>
2698 }
2699 @if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone))
2700 {
2701 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-broker-phone">@RealMaeglerne.Library.Helper.FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text>
2702 }
2703 </p>
2704 </div>
2705 </div>
2706 <div class="row">
2707 <br />
2708 <div class="col-12 col-sm-6">
2709 <a href="/@medlemsnummer.Substring(1)" class="btn btn-primary btn-block my-broker-company-url">Til mæglerens side</a>
2710 </div>
2711
2712 </div>
2713 </div>
2714 </div>
2715 </section>
2716 }
2717
2718 <footer>
2719 <div class="container">
2720 <div class="row">
2721 @{
2722 var navigationSettings = new NavigationSettings();
2723 navigationSettings.StartLevel = 1;
2724 navigationSettings.StopLevel = 3;
2725 navigationSettings.ExpandMode = ExpandMode.All;
2726 navigationSettings.RootAreaId = 1;
2727 navigationSettings.RootNavigationTag = "footer-nav";
2728
2729 }
2730 @Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings)
2731 </div>
2732 </div>
2733 </footer>
2734
2735 <div id="panel-login" class="panel panel-form">
2736 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
2737 <b></b>
2738 </button>
2739 <a href="@(settings_MinSide)" target="_blank" class="btn btn-primary btn-block link-customer">@Translate("Smartpage:Login.Button.CustomerUniverse", "Realmæglernes Kundeunivers")</a>
2740 <button class="js-open-login btn btn-primary btn-block">@Translate("Smartpage.Login.Button.RealestateAgent", "Realmæglernes Boligagent")</button>
2741 <div class="loginform login">
2742 @if (loginParagraphId > 0)
2743 {
2744 <text>
2745 @RenderParagraphContent(loginParagraphId)
2746 </text>
2747 }
2748 </div>
2749 <div class="loginform register js-register-form-wrapper" style="display: none;">
2750 @if (createUserParagraphId > 0)
2751 {
2752 <text>
2753 @RenderParagraphContent(createUserParagraphId)
2754 </text>
2755 }
2756 </div>
2757 <div class="loginform forgotpw" style="display: none;">
2758 <h2 class="forgotpw-reg">@Translate("forgot-pw-reg-title", "Glemt adgangskode")</h2>
2759 <h2 class="forgotpw-broker">@Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")</h2>
2760 <form id="forgotPwForm" class="form-body" method="post" action="">
2761 <input type="hidden" id="AccessUserShopID" name="AccessUserShopID" value="SHOP6" />
2762 <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>
2763 <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>
2764 <div class="form-group">
2765 <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 />
2766 </div>
2767 <button class="btn btn-primary btn-block" type="submit">@Translate("forgot-pw-cta", "Nulstil adgangskode")</button>
2768 <br />
2769 <div id="submitMessage"></div>
2770 </form>
2771 </div>
2772 </div>
2773
2774 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2775 @using System
2776 @using RealMaeglerne.Dynamicweb;
2777 @using RealMaeglerne.Library;
2778 @using RealMaeglerne.Library.Models;
2779 @using Dynamicweb.Content.Items;
2780 @using Dynamicweb.Core;
2781 @using System.Linq;
2782
2783 @{
2784 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");
2785 }
2786
2787 <!-- KONTAKT KØBERRAADGIVNING -->
2788 <div id="panel-kontakt-koeberraadgivning" class="panel panel-form">
2789 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
2790 <b></b>
2791 </button>
2792 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2>
2793 <form id="form-koeberraadgivning" method="POST" action="/InboxHandler">
2794 <div class="form-group">
2795 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
2796 <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 />
2797 </div>
2798 <div class="form-group">
2799 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
2800 <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 />
2801 </div>
2802 <div class="form-group row mb-4">
2803 <div class="col-6">
2804 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
2805 <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 />
2806 </div>
2807 <div class="col-6">
2808 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
2809 <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")' />
2810 </div>
2811 </div>
2812 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
2813 <div class="form-group row">
2814 <div class="col-4">
2815 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
2816 <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 />
2817 <input type="hidden" class="js-postnummer-validation" />
2818 </div>
2819 <div class="col-8">
2820 <label><strong>@Translate("form-city", "By")*</strong></label>
2821 <input class="form-control js-city" type="text" readonly />
2822 </div>
2823 </div>
2824 <div class="form-group overflow-unset">
2825 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
2826 <input class="form-control js-validate-address" type="text" name="adresse" tabindex="6" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' required />
2827
2828 <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>
2829 </div>
2830 <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">
2831 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
2832 </button>
2833 <div class="collapse" id="kontaktkoeberrradgiver-collapse">
2834 <div class="form-group">
2835 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
2836 </div>
2837 </div>
2838
2839 <div class="form-group mt-3">
2840 <div class="checkbox">
2841 <label>
2842 <input type="checkbox" name="kontaktmigok" required />
2843 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
2844 </label>
2845 </div>
2846 </div>
2847 <div class="form-group">
2848 <div class="row">
2849 <div class="col-12">
2850 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button>
2851 </div>
2852 </div>
2853 </div>
2854 <div class="form-group form-group-terms">
2855 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
2856 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
2857 </div>
2858
2859 <input type="hidden" name="fn" value="krk" />
2860 <input type="hidden" name="origin" value="" />
2861 <input type="hidden" name="brugerId" value="" />
2862 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
2863 <input type="hidden" name="butikId" value="@butikId" />
2864 <input type="hidden" name="ejendomstype" value="" />
2865 <input type="hidden" name="salgspris" value="" />
2866 <input type="hidden" name="modtager" value="" />
2867 </form>
2868 <div id="tak-kontakt-advisor" style="display:none;">
2869 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
2870 <div class="row">
2871 <div class="col-6">
2872 <img src="" class="img-fluid js-maegler-img" />
2873 </div>
2874 <div class="col-6">
2875 <p class="js-maegler-name"></p>
2876 <p class="js-maegler-address"></p>
2877 <p class="js-maegler-phone"></p>
2878 <p class="js-maegler-mail"></p>
2879 </div>
2880 </div>
2881 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
2882 </div>
2883 </div>
2884
2885 <!--ÅBENT HUS-->
2886 <div id="panel-aabenthus" class="panel panel-form">
2887 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
2888 <b></b>
2889 </button>
2890
2891 <form id="form-aabenthus" method="POST" action="/InboxHandler">
2892 <h2>@Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")</h2>
2893 @{
2894 string sagsnr = Dynamicweb.Context.Current.Request["ProductId"];
2895 var product = Dynamicweb.Ecommerce.Services.Products.GetProductById(sagsnr, string.Empty, true);
2896 if (product != null)
2897 {
2898 var boligManager = new BoligManager(Pageview);
2899 Bolig bolig = boligManager.CreateBolig(product, true);
2900 var kommendeAabnehuse = boligManager.KommendeAabnehuse(bolig).Take(3);
2901
2902 if (kommendeAabnehuse.Count() > 0)
2903 {
2904 <div>
2905 <div class="open-house-dates">
2906 @foreach (var openHouse in kommendeAabnehuse)
2907 {
2908 <label class="open-house-dates__date">
2909 @openHouse.DatoClean
2910 <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" />
2911 </label>
2912 }
2913 </div>
2914 @foreach (var openHouse in kommendeAabnehuse)
2915 {
2916 <div id="@openHouse.Id" class="open-house-times">
2917 @if (openHouse.VisInterval && openHouse.Tilmelding)
2918 {
2919 int counter = 0;
2920 foreach (var interval in openHouse.TidsIntervallerFormateret)
2921 {
2922 <div><input class="js-aabenthus-time-select time-radio" type="radio" name="AabenthusTid" value="@interval" checked="@(counter == 0)" /><span>@interval.Substring(3)</span></div>
2923 counter++;
2924 }
2925
2926 }
2927
2928 @if (!openHouse.Tilmelding)
2929 {
2930 <div class="js-open-house-no-signup open-house-no-signup">
2931 @Translate("Smartpage:Aabenthus.IngenTilmelding", "Ingen tilmelding påkrævet")
2932 </div>
2933 }
2934 </div>
2935 }
2936 </div>
2937 }
2938 }
2939 }
2940
2941 <div class="d-block">
2942 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label>
2943 </div>
2944 <div class="d-block">
2945 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label>
2946 </div>
2947 <div class="d-block mb-4">
2948 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label>
2949 </div>
2950 <div class="js-open-house-signup open-house-signup">
2951 <h3>@Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")</h3>
2952 <div class="form-group">
2953 <label for="aabenthus-name"><strong>@Translate("form-navn", "Navn")*</strong></label>
2954 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required />
2955 </div>
2956 <div class="form-group">
2957 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
2958 <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 />
2959 </div>
2960 <div class="form-group row">
2961 <div class="col-6">
2962 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
2963 <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 />
2964 </div>
2965 <div class="col-6">
2966 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
2967 <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")' />
2968 </div>
2969
2970 </div>
2971 <div class="form-group">
2972 <div class="checkbox">
2973 <label>
2974 <input type="checkbox" name="kontaktmigok" required />
2975 <span class="base-color">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
2976 </label>
2977 </div>
2978 </div>
2979 <div class="form-group">
2980 <div class="row">
2981 <div class="col-12">
2982 <button type="submit" class="btn btn-block btn-green">@Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")</button>
2983 </div>
2984 </div>
2985 </div>
2986 <div class="form-group">
2987 @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>")
2988
2989 </div>
2990 </div>
2991 <input type="hidden" name="fn" value="ah" />
2992 <input type="hidden" name="origin" value="" />
2993 <input type="hidden" name="brugerId" value="@userID" />
2994 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
2995 <input type="hidden" name="butikId" value="@butikId" />
2996 <input type="hidden" name="sagsaddresse" value="" class="js-aabenthus-address-input" />
2997 <input type="hidden" name="ejendomstype" value="" />
2998 <input type="hidden" name="salgspris" value="" />
2999 <input type="hidden" name="modtager" value="" />
3000 <input type="hidden" name="employee" value="" />
3001 <input type="hidden" name="sagsnr" value="" class="js-sagsnr" />
3002 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
3003 <input type="hidden" name="aftaleid" value="" class="js-aftaleid" />
3004
3005 <input type="hidden" name="dateMail" class="js-aabenthus-date-input" />
3006 <input type="hidden" name="timeMail" class="js-aabenthus-time-input" />
3007 <input type="hidden" name="visintervaller" class="js-aabenthus-showinterval-input" />
3008 <input type="hidden" name="brokerImageMail" class="property-broker-image-input" />
3009 <input type="hidden" name="employeeNameMail" class="js-maegler-employee-name-input" />
3010 <input type="hidden" name="employeeTitleMail" class="js-maegler-employee-title-input" />
3011 <input type="hidden" name="employeeMailMail" class="js-maegler-mail-input" />
3012 <input type="hidden" name="employeeMobileMail" class="js-maegler-mobile-input" />
3013 <input type="hidden" name="employeePhoneMail" class="js-maegler-phone-input" />
3014
3015 <input type="hidden" name="brokerNameMail" class="js-broker-name-input" />
3016 <input type="hidden" name="brokerAddressMail" class="js-broker-address-input" />
3017 <input type="hidden" name="brokerPhoneMail" class="js-broker-phone-input" />
3018 <input type="hidden" name="greenmobility" class="js-green-mobility" />
3019 </form>
3020 <div id="tak-aabenthus" style="display:none;">
3021 <h2>@Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")</h2>
3022 <div class="d-block">
3023 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label>
3024 </div>
3025 <div class="d-block">
3026 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label>
3027
3028 </div>
3029 <div class="d-block mb-4">
3030 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label>
3031
3032 </div>
3033 <div class="js-employee">
3034 <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>
3035 </div>
3036 <div class="js-not-employee">
3037 <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>
3038 </div>
3039 <div class="row">
3040 <div class="js-employee">
3041 <div class="col-12 js-maegler-img aabenthus-image">
3042 <div class="property-broker-image" style=""></div>
3043
3044 </div>
3045 </div>
3046 <div class="col-12">
3047 <div class="bg-base">
3048
3049 <div class="js-employee">
3050 <h4 class="js-maegler-employee-name"></h4>
3051 <div class="icon-container">
3052 <i class="fas fa-envelope"></i> <span class="js-maegler-mail"></span>
3053 </div>
3054 <div class="icon-container">
3055 <i class="fas fa-phone"></i> <span class="js-maegler-mobile"></span>
3056 </div>
3057 </div>
3058
3059
3060 <h4 class="js-maegler-name"></h4>
3061 <div class="icon-container">
3062 <i class="fas fa-map-marker-alt"></i> <span class="js-maegler-address"></span>
3063 </div>
3064 <div class="icon-container">
3065 <i class="fas fa-phone"></i> <span class="js-maegler-phone"></span>
3066
3067 </div>
3068 <a class="btn btn-border" onclick="panelKontaktmaeglerGuldkoeber()">KONTAKT MÆGLER</a>
3069 </div>
3070 </div>
3071 </div>
3072 </div>
3073 </div>
3074
3075 <!-- KONTAKT GULDKØBER -->
3076 <div id="panel-kontakt-guldkoeber" class="panel panel-form">
3077 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3078 <b></b>
3079 </button>
3080 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2>
3081 <form id="form-kontaktmaegler" method="POST" action="/InboxHandler">
3082 <div class="form-group">
3083 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
3084 <input class="form-control" type="text" name="navn" placeholder='@Translate("form-navn", "Navn")' value='@GetGlobalValue("Global:Extranet.Name")' required />
3085 </div>
3086 <div class="form-group">
3087 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
3088 <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 />
3089 </div>
3090 <div class="form-group row mb-4">
3091 <div class="col-6">
3092 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
3093 <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 />
3094 </div>
3095 <div class="col-6">
3096 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
3097 <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")' />
3098 </div>
3099 </div>
3100 <div class="form-group row">
3101 <div class="col-4">
3102 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
3103 <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 />
3104 <input type="hidden" class="js-postnummer-validation" />
3105 </div>
3106 <div class="col-8">
3107 <label><strong>@Translate("form-city", "By")*</strong></label>
3108 <input class="form-control js-city" type="text" readonly />
3109 </div>
3110 </div>
3111
3112 <div class="form-group overflow-unset">
3113 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
3114 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
3115 <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>
3116 </div>
3117 <div class="form-group">
3118 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
3119 </div>
3120 <div class="form-group">
3121 <div class="checkbox">
3122 <label>
3123 <input type="checkbox" name="kontaktmigok" required />
3124 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
3125 </label>
3126 </div>
3127 </div>
3128 <div class="form-group">
3129 <div class="row">
3130 <div class="col-12">
3131 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button>
3132 </div>
3133 </div>
3134 </div>
3135 <div class="form-group form-group-terms">
3136 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
3137 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
3138 </div>
3139 <input type="hidden" name="fn" value="gk" />
3140 <input type="hidden" name="origin" value="" />
3141 <input type="hidden" name="brugerId" value="@userID" />
3142 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
3143 <input type="hidden" name="butikId" value="@butikId" />
3144 <input type="hidden" name="ejendomstype" value="" />
3145 <input type="hidden" name="salgspris" value="" />
3146 <input type="hidden" name="modtager" value="" />
3147 <input type="hidden" name="employee" value="" />
3148 </form>
3149 <div id="tak-kontakt-maegler-guldkoeber" style="display:none;">
3150 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
3151 <p>@Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")</p>
3152 <div class="row">
3153 <div class="col-6">
3154 <img src="" class="img-fluid js-maegler-img" />
3155 </div>
3156 <div class="col-6">
3157 <p class="js-maegler-name"></p>
3158 <p class="js-maegler-address"></p>
3159 <p class="js-maegler-phone"></p>
3160 <p class="js-maegler-mail"></p>
3161 </div>
3162 </div>
3163 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
3164 </div>
3165 </div>
3166
3167 <!-- BESTIL SALGSVURDERING -->
3168 <div id="panel-salgsvurdering" class="panel panel-form">
3169 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3170 <b></b>
3171 </button>
3172
3173 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler">
3174 <h2 class="js-buyer-advisor-header">@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2>
3175 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
3176 <div class="form-group">
3177 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
3178 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required />
3179 </div>
3180 <div class="form-group">
3181 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
3182 <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 />
3183 </div>
3184 <div class="form-group row mb-4">
3185 <div class="col-6">
3186 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
3187 <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 />
3188 </div>
3189 <div class="col-6">
3190 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
3191 <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")' />
3192 </div>
3193
3194 </div>
3195
3196 @{
3197 // isErhverv comes from master template
3198 bool pageIsErhverv = isErhverv || Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]);
3199 string yourPropertyHeader = pageIsErhverv ? Translate("Smartpage:Salgsvurdering.DinEjendom", "Din ejendom") : Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig");
3200 // If user is on broker page already then don't suggest alternative broker
3201 bool isOnBrokerPage = !string.IsNullOrEmpty(butikId);
3202 }
3203
3204 <h3>@yourPropertyHeader</h3>
3205 <div class="form-group row">
3206 <div class="col-4">
3207 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
3208 @{
3209 string primaryAreaEncoded = Dynamicweb.Core.Encoders.HtmlEncoder.HtmlEncode(primaryArea);
3210 <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 />
3211 <input type="hidden" class="js-postnummer-validation" />
3212 }
3213 </div>
3214 <div class="col-8">
3215 <label><strong>@Translate("form-city", "By")*</strong></label>
3216 <input class="form-control js-city" type="text" readonly />
3217 </div>
3218 </div>
3219 <div class="form-group overflow-unset">
3220 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
3221 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
3222 <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>
3223 </div>
3224
3225 <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">
3226 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
3227 </button>
3228 <div class="collapse" id="salgsvurdering-collapse">
3229 <div class="form-group">
3230 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
3231 </div>
3232 </div>
3233
3234 <div class="salgsvurdering-precheck">
3235 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3>
3236 <div class="col-12">
3237 <div class="choose-broker row align-items-center active">
3238 <div class="col-2">
3239 <input class="js-broker-radio" type="radio" id="" name="choose-broker" value="" checked>
3240 <label class="js-broker-label" for=""></label><div class="check">
3241 <div class="inside">
3242 </div>
3243 </div>
3244 </div>
3245 <div class="col-4">
3246 <img src="" class="img-fluid js-broker-image">
3247 </div>
3248 <div class="col-6">
3249 <span class="d-block">
3250 <strong class="js-choose-broker-name"></strong>
3251 </span>
3252 <span class="js-choose-broker-address"></span>
3253 <input type="hidden" class="js-choose-broker-phone" value="" />
3254 <input type="hidden" class="js-choose-broker-email" value="" />
3255 </div>
3256 </div>
3257 </div>
3258 </div>
3259 <div class="salgsvurdering-broker">
3260 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3>
3261 <div class="js-choose-broker col-12">
3262 </div>
3263
3264 </div>
3265 <div class="form-group mt-4">
3266 <div class="checkbox">
3267 <label>
3268 <input type="checkbox" name="kontaktmigok" required />
3269 <span class="consent-checkbox">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
3270 </label>
3271 </div>
3272 </div>
3273 <div class="form-group">
3274 <div class="row">
3275 <div class="col-12">
3276 <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>
3277 </div>
3278 </div>
3279 </div>
3280 <div class="form-group form-group-terms">
3281 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
3282 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
3283 </div>
3284 <input type="hidden" name="fn" value="bsv" />
3285 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" />
3286 <input type="hidden" name="brugerId" value="@userID" />
3287 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
3288 <input type="hidden" id="boligvisning" name="boligvisning" value="" />
3289 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="" />
3290 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" />
3291 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
3292 <input type="hidden" name="ejendomstype" value="" />
3293 <input type="hidden" name="salgspris" value="" />
3294 <input type="hidden" name="employee" value="" />
3295 <input type="hidden" name="modtager" value="" />
3296 <input class="js-value-check" type="hidden" name="valueCheck" value="" />
3297 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" />
3298 </form>
3299 <div id="tak-salgsvurdering" style="display:none;">
3300 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
3301 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p>
3302 <div class="row">
3303 <div class="col-6">
3304 <img src="" class="img-fluid js-maegler-img" />
3305 </div>
3306 <div class="col-6">
3307 <p class="js-maegler-name"></p>
3308 <p class="js-maegler-address"></p>
3309 <p class="js-maegler-phone"></p>
3310 <p class="js-maegler-mail"></p>
3311 </div>
3312 </div>
3313 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
3314 </div>
3315 </div>
3316
3317 <!-- BESTIL SALGSVURDERING GULDKØBER -->
3318 <div id="panel-salgsvurdering-guldkoeber" class="panel panel-form">
3319 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close">
3320 <b></b>
3321 </button>
3322
3323 <form id="bestil-salgsvurdering-guldkoeber" method="POST" action="/InboxHandler">
3324 <h2>@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2>
3325 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p>
3326 <div class="form-group">
3327 <label><strong>@Translate("form-navn", "Navn")*</strong></label>
3328 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required />
3329 </div>
3330 <div class="form-group">
3331 <label><strong>@Translate("form-email", "E-mail")*</strong></label>
3332 <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 />
3333 </div>
3334 <div class="form-group row mb-4">
3335 <div class="col-6">
3336 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label>
3337 <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")' />
3338 </div>
3339 <div class="col-6">
3340 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label>
3341 <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 />
3342 </div>
3343 </div>
3344
3345 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3>
3346
3347 <div class="form-group row">
3348 <div class="col-4">
3349 <label><strong>@Translate("form-zip", "Post nr")*</strong></label>
3350 <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 />
3351 <input type="hidden" class="js-postnummer-validation" />
3352 </div>
3353 <div class="col-8">
3354 <label><strong>@Translate("form-city", "By")*</strong></label>
3355 <input class="form-control js-city" type="text" readonly />
3356 </div>
3357 </div>
3358 <div class="form-group overflow-unset">
3359 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label>
3360 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required />
3361 <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>
3362 </div>
3363
3364 <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">
3365 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong>
3366 </button>
3367 <div class="collapse" id="salgsvurdering-collapse">
3368 <div class="form-group">
3369 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea>
3370 </div>
3371 </div>
3372 <div class="salgsvurdering-precheck">
3373 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3>
3374 <div class="col-12">
3375 <div class="choose-broker row align-items-center active">
3376 <div class="col-2">
3377 <input class="js-broker-radio" type="radio" id="" name="choose-broker-gk" value="" checked>
3378 <label class="js-broker-label" for=""></label><div class="check">
3379 <div class="inside">
3380 </div>
3381 </div>
3382 </div>
3383 <div class="col-4">
3384 <img src="" class="img-fluid js-broker-image">
3385 </div>
3386 <div class="col-6">
3387 <span class="d-block">
3388 <strong class="js-choose-broker-name"></strong>
3389 </span>
3390 <span class="js-choose-broker-address"></span>
3391 <input type="hidden" class="js-choose-broker-phone" value="" />
3392 <input type="hidden" class="js-choose-broker-email" value="" />
3393 </div>
3394 </div>
3395 </div>
3396 </div>
3397 <div class="salgsvurdering-broker">
3398 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3>
3399 <div class="js-choose-broker col-12">
3400 </div>
3401
3402 </div>
3403
3404 <div class="form-group">
3405 <div class="checkbox">
3406 <label>
3407 <input type="checkbox" name="kontaktmigok" required />
3408 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span>
3409 </label>
3410 </div>
3411 </div>
3412 <div class="form-group">
3413 <div class="row">
3414 <div class="col-12">
3415 <button type="submit" class="btn btn-green btn-block">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button>
3416 </div>
3417 </div>
3418 </div>
3419 <div class="form-group form-group-terms">
3420 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>.
3421 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>.
3422 </div>
3423 <input type="hidden" name="fn" value="bsg" />
3424 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" />
3425 <input type="hidden" name="brugerId" value="@userID" />
3426 <input type="hidden" name="areaid" value="@Pageview.AreaID" />
3427 <input type="hidden" id="boligvisning-gk" name="boligvisning" value="" />
3428 <input type="hidden" id="panel-salgsvurdering-gk-butikid" name="butikId" value="" />
3429 <input type="hidden" id="panel-salgsvurdering-gk-sagsnr" name="sagsnr" value="" />
3430 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" />
3431 <input type="hidden" name="ejendomstype" value="" />
3432 <input type="hidden" name="salgspris" value="" />
3433 <input type="hidden" name="employee" value="" />
3434 <input type="hidden" name="modtager" value="" />
3435 </form>
3436 <div id="tak-salgsvurdering" style="display:none;">
3437 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2>
3438 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p>
3439 <div class="row">
3440 <div class="col-6">
3441 <img src="" class="img-fluid js-maegler-img" />
3442 </div>
3443 <div class="col-6">
3444 <p class="js-maegler-name"></p>
3445 <p class="js-maegler-address"></p>
3446 <p class="js-maegler-phone"></p>
3447 <p class="js-maegler-mail"></p>
3448 </div>
3449 </div>
3450 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p>
3451 </div>
3452 </div>
3453
3454
3455 <div class="overlay-wrapper"></div>
3456 <div class="dropdown-overlay"></div>
3457 <div class="loader-inner ball-pulse"></div>
3458
3459 @{
3460 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js"));
3461 <script type="text/javascript" src='@(TemplateUrl)assets/webpack/js/3rdparty/viamapstrap.js?@(viamapstrapFileInfo.LastWriteTime.Ticks)' async></script>
3462
3463 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js"));
3464 <script type="text/javascript" src='@(TemplateUrl)assets/dist/bundle.app.min.js?@(bundleFileInfo.LastWriteTime.Ticks)' async></script>
3465 }
3466
3467 @RenderSnippet("JavaScriptBottom")
3468
3469 @if (Context.Current.Request.QueryString["ShowLogin"] == "true")
3470 {
3471 <input class="js-showLogin" value="true" />
3472 }
3473 @if (!string.IsNullOrWhiteSpace(GetString("DW_extranet_error_uk")))
3474 {
3475 <input class="js-DWError" value="true" />
3476 <input class="js-DWErrorVal" value="@GetString("DW_extranet_error_dk")" />
3477 }
3478
3479 @if (!string.IsNullOrEmpty(settings_ConduzeId))
3480 {
3481 <script type="text/javascript" id="conduze-sdk" src="https://cdn.conduze.com/@settings_ConduzeId/tracking.js" async></script>
3482 }
3483
3484 @if (!string.IsNullOrEmpty(settings_Weply))
3485 {
3486 <script src="https://app.weply.chat/widget/@settings_Weply" async></script>
3487 }
3488
3489 </body>
3490 </html>
3491
3492