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