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