Error executing template "Designs/rm_sub/Erhverv_frontpage.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_b299a9abeef648878a7da0fa09b0f064.ExecuteAsync()
   at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

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