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_fc9d67766a0c4b909ae8ba45f5bac59a.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 1170 // Indstillinger for brugerfunktioner 1171 var settings_ForgotPwPage = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["ForgotPwPage"])) ? SettingsItem["ForgotPwPage"] : ""; 1172 var settings_NewsletterSignup = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["NewsletterSignup"])) ? SettingsItem["NewsletterSignup"] : ""; 1173 var settings_CreateUserModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["CreateUserModal"])) ? SettingsItem["CreateUserModal"] : ""; 1174 var settings_LoginModal = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["LoginModal"])) ? SettingsItem["LoginModal"] : ""; 1175 1176 int createUserParagraphId = 0; 1177 int loginParagraphId = 0; 1178 Int32.TryParse(settings_CreateUserModal.ToString(), out createUserParagraphId); 1179 Int32.TryParse(settings_LoginModal.ToString(), out loginParagraphId); 1180 1181 // Use configured search page id for search action which depends on the context. Context can currently be one of: rm, boligone or erhverv. 1182 // Subsequent calls to search page via ajax (sorting, loading, etc) should preserve search context. (vv) 1183 int searchPageId = GetPageSettingsPageId("Boligside"); 1184 if (searchPageId == 0) 1185 { 1186 searchPageId = GetWebsiteSettingsPageId("Boligside"); 1187 } 1188 1189 int boligsideId = GetPageSettingsPageId("Boligside"); 1190 if (boligsideId == 0) 1191 { 1192 boligsideId = GetWebsiteSettingsPageId("Boligside"); 1193 } 1194 1195 string productGroupFilter = String.Empty; 1196 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Product_Group") && Pageview.Page.PropertyItem["Product_Group"] != null) 1197 { 1198 productGroupFilter = Pageview.Page.PropertyItem["Product_Group"].ToString(); 1199 } 1200 1201 if (GetString("DwAreaFirstActivePageID") == GetString("DwPageID") || GetBoolean("Item.Page.TransparentHeader")) 1202 { 1203 bodyClass += " frontpage"; 1204 bodyClass += " header-transparent"; 1205 1206 } 1207 if (Pageview.Page.PropertyItem != null && Convert.ToBoolean(Pageview.Page.PropertyItem["IsRealFrontpage"])) 1208 { 1209 searchClass = "is-frontpage"; 1210 } 1211 1212 bool isErhverv = false; 1213 if (Pageview.Page.PropertyItem != null && Pageview.Page.PropertyItem.ContainsKey("Erhverv") && Pageview.Page.PropertyItem["Erhverv"] != null) 1214 { 1215 var s = Pageview.Page.PropertyItem["Erhverv"].ToString(); 1216 Boolean.TryParse(s, out isErhverv); 1217 } 1218 1219 bool isBrokerPage = false; 1220 if (!String.IsNullOrEmpty(GetString("Item.Area.M_glerGruppeId.Value"))) 1221 { 1222 isBrokerPage = true; 1223 bodyClass = ""; // Get rid of transparent header on brokerPage 1224 } 1225 1226 string callTrackingId = GetString("Item.Area.CallTrackingId.Value"); 1227 1228 RealEstate.User.Model.BrokerEmployee MyBroker = null; 1229 try 1230 { 1231 var MyB = new RealEstate.User.MyBroker(); 1232 MyBroker = MyB.GetMyBroker(); 1233 } 1234 catch 1235 { 1236 // Ignore 1237 } 1238 1239 string querySearch = (Context.Current.Request.QueryString["search"] != null ? Context.Current.Request.QueryString["search"] : ""); 1240 string querySearchNameAttr = "search"; 1241 // Overwrite search with zipcodeinterval if set 1242 if (Context.Current.Request.QueryString["zipcodeinterval"] != null) 1243 { 1244 querySearch = Context.Current.Request.QueryString["zipcodeinterval"]; 1245 querySearchNameAttr = "zipcodeinterval"; 1246 } 1247 string queryZipCodeFrom = (Context.Current.Request.QueryString["zipcodefrom"] != null ? Context.Current.Request.QueryString["zipcodefrom"] : ""); 1248 string queryZipCodeTo = (Context.Current.Request.QueryString["zipcodeto"] != null ? Context.Current.Request.QueryString["zipcodeto"] : ""); 1249 1250 Dynamicweb.Security.UserManagement.User user = null; 1251 int userID = 0; 1252 string userName = ""; 1253 string userEmail = ""; 1254 string userPhone = ""; 1255 string userZip = ""; 1256 string userAddress = ""; 1257 1258 if (Dynamicweb.Security.UserManagement.User.IsExtranetUserLoggedIn()) 1259 { 1260 user = Dynamicweb.Security.UserManagement.User.GetCurrentExtranetUser(); 1261 userName = user.Name; 1262 userEmail = user.Email; 1263 userPhone = user.Phone; 1264 userZip = user.Zip; 1265 userAddress = user.Address; 1266 userID = user.ID; 1267 } 1268 1269 string markerColor = ""; 1270 string mapMarkerUrl = TemplateUrl + "assets/images/logo-real.png"; 1271 1272 markerColor = "#213960"; 1273 1274 var butikId = string.Empty; 1275 var primaryArea = string.Empty; 1276 string bEmail = string.Empty; 1277 if (MyBroker != null && MyBroker.Broker != null) 1278 { 1279 butikId = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 1280 primaryArea = MyBroker.Broker.Item().GetString("PrimaertOmraade"); 1281 bEmail = MyBroker.Broker.Item().GetString("Email"); 1282 } 1283 1284 var salesAssessmentPageId = Dynamicweb.Core.Converter.ToString(GetPageIdByNavigationTag("OrderSalesAssessment")); 1285 var termsMail = "info@realmaeglerne.dk"; 1286 } 1287 1288 <!DOCTYPE html> 1289 <html> 1290 <head> 1291 <meta charset="utf-8"> 1292 <title>@MetaTitle</title> 1293 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 1294 <meta name="description" content="@MetaDescription"> 1295 <meta name="keywords" content="@MetaKeywords"> 1296 <meta name="format-detection" content="telephone=no"> 1297 <meta http-equiv="Expires" content="60"> 1298 <meta name="robots" content="@(Pageview.Area.Noindex ? "noindex" : "index"),@(Pageview.Area.Nofollow ? "nofollow" : "follow")"> 1299 @RenderSnippet("OpenGraphTags") 1300 1301 @*FONT AWESOME*@ 1302 <link rel="stylesheet" href="@(TemplateUrl)assets/fontawesome/css/all.css" /> 1303 <link rel="stylesheet" href="@mainCSS" /> 1304 <link rel="stylesheet" href="@erhvervCSS" /> 1305 <link rel="icon" type="image/ico" href="@(TemplateUrl)assets/images/favicons/favicon-real.ico?v=1"> 1306 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-16x16.png" sizes="16x16"> 1307 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-32x32.png" sizes="32x32"> 1308 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-96x96.png" sizes="96x96"> 1309 <meta name="google-site-verification" content="ldo3P1JA2R9wtsYlK2cge26EWxu2gOM-aoQhe2qTukA" /> 1310 1311 @if (!string.IsNullOrEmpty(settings_AntiFlicker_ID.ToString())) 1312 { 1313 <!-- Anti-flicker snippet --> 1314 <style> 1315 .async-hide { 1316 opacity: 0 !important 1317 } 1318 </style> 1319 <script> 1320 (function (a, s, y, n, c, h, i, d, e) { 1321 s.className += ' ' + y; h.start = 1 * new Date; 1322 h.end = i = function () { s.className = s.className.replace(RegExp(' ?' + y), '') }; 1323 (a[n] = a[n] || []).hide = h; setTimeout(function () { i(); h.end = null }, c); h.timeout = c; 1324 })(window, document.documentElement, 'async-hide', 'dataLayer', 4000, 1325 { 'GTM-THN57XP': true });</script> 1326 1327 } 1328 1329 @if (isBrokerPage && !string.IsNullOrEmpty(callTrackingId)) 1330 { 1331 <script type="text/javascript" src="https://call.call-tracking.dk/getJavascript?custid=@callTrackingId"></script> 1332 } 1333 1334 @if (!string.IsNullOrEmpty(Converter.ToString(settings_Google_Tag_Manager_ID))) 1335 { 1336 1337 <!-- Datalaget --> 1338 <script> 1339 window.dataLayer = window.dataLayer || []; 1340 </script> 1341 1342 1343 <!-- Andet --> 1344 <script> 1345 window.dataLayer.push({ 1346 'division': '@(isErhverv ? "b2b" : "b2c")', // 'b2c', 'b2b', 'project' ... 1347 }); 1348 </script> 1349 1350 @RenderSnippet("GtmDatalayer") 1351 1352 <!-- Google Tag Manager --> 1353 <script> 1354 (function (w, d, s, l, i) { 1355 w[l] = w[l] || []; w[l].push({ 1356 'gtm.start': 1357 new Date().getTime(), event: 'gtm.js' 1358 }); var f = d.getElementsByTagName(s)[0], 1359 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 1360 'https://frap.realmaeglerne.dk/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 1361 })(window, document, 'script', 'dataLayer', '@Converter.ToString(settings_Google_Tag_Manager_ID)'); 1362 </script> 1363 1364 } 1365 1366 @if (!string.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString())) 1367 { 1368 <!-- Begin Leadhub Pixel Code --> 1369 <script> 1370 (function(w,d,x,n,u,t,f,s,o){ 1371 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){ 1372 (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) 1373 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '@settings_Leadhub_Pixel_ID'); 1374 lhi('pageview'); 1375 </script> 1376 <!-- End Leadhub Pixel Code --> 1377 } 1378 1379 <script> 1380 // Global namespace used for fetching API feeds from DW 1381 var RMAPI = (RMAPI) ? RMAPI : {}; 1382 var ApiPreFix = "/Default.aspx?ID="; 1383 RMAPI.BoligCountFeed = ApiPreFix + "@settings_BoligCountFeed"; 1384 RMAPI.BoligListFeed = ApiPreFix + "@settings_BoligListFeed" + "&refpageid=@Pageview.Page.ID"; 1385 RMAPI.BoligListFeedMaegler = ApiPreFix + "@settings_BoligListFeedMaegler" + "&refpageid=@Pageview.Page.ID"; 1386 RMAPI.BoligSearchFeed = ApiPreFix + "@settings_BoligSearchFeed"; 1387 RMAPI.BoligListFeedErhverv = "@settings_BoligListFeedErhverv"; 1388 RMAPI.BoligMapFeed = ApiPreFix + "@settings_BoligMapFeed"; 1389 RMAPI.Boligagent = "@settings_Boligagent"; 1390 RMAPI.IsErhverv = @isErhverv.ToString().ToLower(); 1391 RMAPI.ProductGroupFilter = "@productGroupFilter"; 1392 RMAPI.ButikId = "@butikId"; 1393 RMAPI.Boligvisning = false; 1394 RMAPI.RefPageId = "@Pageview.Page.ID"; 1395 RMAPI.Template = "@template"; 1396 RMAPI.SliderSettings = @JsonConvert.SerializeObject(Settings.Site); 1397 RMAPI.AdvisorSearchFeed = "@settings_AdvisorSearchFeed"; 1398 RMAPI.LoadingIcon = "@loadingIcon"; 1399 RMAPI.MarkerColor = "@markerColor"; 1400 RMAPI.IsBoligOne = "false"; 1401 RMAPI.mapMarkerUrl = "@mapMarkerUrl"; 1402 RMAPI.settings_ForgotPwPage = "@settings_ForgotPwPage"; 1403 RMAPI.settings_Boligside = "@settings_Boligside"; 1404 1405 </script> 1406 1407 @if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString())) 1408 { 1409 <!-- Facebook Pixel Code --> 1410 <script> 1411 !function (f, b, e, v, n, t, s) { 1412 if (f.fbq) return; n = f.fbq = function () { 1413 n.callMethod ? 1414 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 1415 }; 1416 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; 1417 n.queue = []; t = b.createElement(e); t.async = !0; 1418 t.src = v; s = b.getElementsByTagName(e)[0]; 1419 s.parentNode.insertBefore(t, s) 1420 }(window, document, 'script', 1421 'https://connect.facebook.net/en_US/fbevents.js'); 1422 fbq('init', '@settings_Facebook_App_ID'); 1423 fbq('track', 'PageView'); 1424 </script> 1425 <noscript> 1426 <img height="1" width="1" src="https://www.facebook.com/tr?id=@settings_Facebook_App_ID&ev=PageView&noscript=1" /> 1427 </noscript> 1428 <!-- End Facebook Pixel Code --> 1429 } 1430 1431 </head> 1432 1433 <body class="@template@bodyClass" data-spsalesassesmentid="@salesAssessmentPageId"> 1434 @if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID) 1435 { 1436 <div class="top-search"> 1437 <div class="header logo"> 1438 <div class="logo"> 1439 <a href="/erhverv"> 1440 <img src="@logoUrl" alt='@("RealMæglerne")' /> 1441 </a> 1442 </div> 1443 </div> 1444 <div class="top-form mx-auto"> 1445 <form id="main-search-top" class="js-top-search" action="/Default.aspx" method="GET"> 1446 @{ 1447 var erhvervSearchPageId = !string.IsNullOrEmpty(Converter.ToString(SettingsItem["BoliglisteErhverv"])) ? Converter.ToString(SettingsItem["BoliglisteErhverv"]).Replace("Default.aspx?Id=", "") : ""; 1448 } 1449 <input type="hidden" name="ID" value='@erhvervSearchPageId' id="searchPageId-top" disabled="disabled" /> 1450 1451 @if (Context.Current.Request["type"] == "egetforbrug") 1452 { 1453 <input name="type" type="hidden" value="egetforbrug" /> 1454 <input name="investeringsejendom" type="hidden" value="0" /> 1455 } 1456 <div class="row form-wrapper no-gutters"> 1457 <div class="col-xs-12 col-md-4 col-lg-5 col-searchbar"> 1458 <div class="searchbar float-label-container text-left"> 1459 <label class="float-label">@Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer")</label> 1460 <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)" /> 1461 </div> 1462 </div> 1463 <div class="col-xs-12 col-md-5"> 1464 <div class="row no-gutters"> 1465 <div class="col-xs-12 col-md-6 input-col"> 1466 <div class="dropdown w-overlay float-label-container"> 1467 <label class="float-label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">@Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype")</label> 1468 <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> 1469 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype"> 1470 <ul class="bolig-dropdown list-unstyled"> 1471 @{ 1472 RenderBoligTypeErhverv(); 1473 } 1474 </ul> 1475 <span class="border-fat"></span> 1476 <div class="d-none d-md-block"> 1477 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 1478 </div> 1479 <div class="d-flex row d-md-none"> 1480 <div class="col-6"> 1481 <button class="btn btn-danger js-remove-filter">@Translate("Smartpage:Search.Annuller", "Annuller")</button> 1482 </div> 1483 <div class="col-6"> 1484 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 1485 </div> 1486 </div> 1487 </div> 1488 1489 </div> 1490 </div> 1491 <div class="col-xs-12 col-md-6 input-col"> 1492 <div class="btn-dropdown p-3 border-top-bottom-right"> 1493 <ul class="two-column list-unstyled"> 1494 <li> 1495 <label class="checkbox-container"> 1496 @Translate("Smartpage:Search.Erhverv.Leje", "Leje") 1497 <input type="checkbox" name="propertytype" value="leje" class="js-input-check" /> 1498 <span class="checkmark"></span> 1499 </label> 1500 </li> 1501 <li> 1502 <label class="checkbox-container"> 1503 @Translate("Smartpage:Search.Erhverv.Køb", "Køb") 1504 <input type="checkbox" name="propertytype" value="kob" class="js-input-check" /> 1505 <span class="checkmark"></span> 1506 </label> 1507 </li> 1508 </ul> 1509 </div> 1510 1511 </div> 1512 </div> 1513 </div> 1514 <div class="col-xs-12 col-md-3 col-lg-2 d-none d-md-block"> 1515 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 1516 </div> 1517 </div> 1518 </form> 1519 </div> 1520 </div> 1521 <div class="search-modal"> 1522 <div class="main-search-form frontpage"> 1523 <div class="dropdown-overlay"></div> 1524 <div class="nav nav-tabs row js-switch-pos"> 1525 <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> 1526 <div class="col-12 col-md-6 tab"><button class="blank" data-toggle="tab" href="#investment">@Translate("Smartpage:Erhver.Investering", "Investering")</button></div> 1527 </div> 1528 <form id="main-search-frontpage" class="searchbar-wrapper erhverv" action="/Default.aspx" method="GET"> 1529 <input type="hidden" name="ID" value='@erhvervSearchPageId' id="searchPageId-frontpage" disabled="disabled" /> 1530 <div class="tab-content mt-2"> 1531 <div id="home" class="tab-pane fade in active show"> 1532 <input name="type" type="hidden" value="egetforbrug" /> 1533 <input name="investeringsejendom" type="hidden" value="0" /> 1534 <div class="row mb-3 align-items-center mt-3"> 1535 <div class="col-xs-12"> 1536 <h3>@Translate("Smartpage:Search.Erhverv.Søg erhvervs", "Søg erhvervs") <span class="thin">- @Translate("Smartpage:Search.Erhverv.lokaler/ejendomme", "lokaler/ejendomme")</span></h3> 1537 </div> 1538 </div> 1539 <div class="row form-wrapper no-gutters"> 1540 <div class="col-xs-12 col-md-4 col-lg-5 col-searchbar"> 1541 <div class="searchbar float-label-container"> 1542 <label class="float-label">@Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer")</label> 1543 <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)" /> 1544 <input type="hidden" id="zipcodefrom-frontpage" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" /> 1545 <input type="hidden" id="zipcodeto-frontpage" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" /> 1546 </div> 1547 </div> 1548 <div class="col-xs-12 col-md-5"> 1549 <div class="row no-gutters"> 1550 <div class="col-xs-12 col-md-6 input-col"> 1551 <div class="dropdown w-overlay float-label-container"> 1552 <label class="float-label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">@Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype")</label> 1553 <button class="btn btn-dropdown dropdown-toggle reverse position-absolute-md" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button> 1554 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype"> 1555 <ul class="bolig-dropdown list-unstyled"> 1556 @{ 1557 RenderBoligTypeErhverv(); 1558 } 1559 </ul> 1560 <span class="border-fat"></span> 1561 <div class="d-none d-md-block"> 1562 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 1563 </div> 1564 <div class="d-flex row d-md-none"> 1565 <div class="col-6"> 1566 <button class="btn btn-danger js-remove-filter">@Translate("Smartpage:Search.Annuller", "Annuller")</button> 1567 </div> 1568 <div class="col-6"> 1569 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 1570 </div> 1571 </div> 1572 </div> 1573 1574 </div> 1575 </div> 1576 <div class="col-xs-12 col-md-6 input-col"> 1577 <div class="btn-dropdown p-3 border-top-bottom-right"> 1578 <ul class="two-column list-unstyled"> 1579 <li> 1580 <label class="checkbox-container"> 1581 @Translate("Smartpage:Search.Erhverv.Leje", "Leje") 1582 <input type="checkbox" name="udbudsform" value="Leje" /> 1583 <span class="checkmark"></span> 1584 </label> 1585 </li> 1586 <li> 1587 <label class="checkbox-container"> 1588 @Translate("Smartpage:Search.Erhverv.Køb", "Køb") 1589 <input type="checkbox" name="udbudsform" value="Salg" /> 1590 <span class="checkmark"></span> 1591 </label> 1592 </li> 1593 </ul> 1594 </div> 1595 1596 </div> 1597 </div> 1598 </div> 1599 <div class="col-xs-12 col-md-3 col-lg-2 d-none d-md-block"> 1600 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 1601 </div> 1602 </div> 1603 <div class="row d-block d-md-none form-wrapper no-gutters"> 1604 <div class="col-xs-12 col-md-2"> 1605 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 1606 </div> 1607 </div> 1608 </div> 1609 <div id="investment" class="tab-pane fade"> 1610 <input name="type" type="hidden" value="invenstment" /> 1611 <input name="investeringsejendom" type="hidden" value="1" /> 1612 <div class="row mb-3 align-items-center mt-3"> 1613 <div class="col-xs-12"> 1614 <h3>@Translate("Smartpage:Search.Erhverv.Søg investerings", "Søg investerings") <span class="thin">- @Translate("Smartpage:Search.Erhverv.lokaler/ejendomme", "lokaler/ejendomme")</span></h3> 1615 </div> 1616 </div> 1617 <div class="row form-wrapper no-gutters"> 1618 <div class="col-xs-12 col-md-4 col-lg-5 col-searchbar"> 1619 <div class="searchbar float-label-container"> 1620 <label class="float-label">@Translate("Smartpage:Erhver.Postnummer, by, vej eller sagsnummer", "Postnummer, by, vej eller sagsnummer")</label> 1621 <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)" /> 1622 </div> 1623 </div> 1624 <div class="col-xs-12 col-md-5"> 1625 <div class="row no-gutters"> 1626 <div class="col-xs-12 col-md-6 input-col"> 1627 <div class="dropdown w-overlay float-label-container"> 1628 <label class="float-label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">@Translate("Smartpage:Search.Erhverv.Lokaletype", "Lokaletype")</label> 1629 <button class="btn btn-dropdown dropdown-toggle reverse position-absolute-md" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button> 1630 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype"> 1631 <ul class="bolig-dropdown list-unstyled"> 1632 @{ 1633 RenderBoligTypeErhvervInvest(); 1634 } 1635 </ul> 1636 <span class="border-fat"></span> 1637 <div class="d-none d-md-block"> 1638 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 1639 </div> 1640 <div class="d-flex row d-md-none"> 1641 <div class="col-6"> 1642 <button class="btn btn-danger js-remove-filter">@Translate("Smartpage:Search.Annuller", "Annuller")</button> 1643 </div> 1644 <div class="col-6"> 1645 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 1646 </div> 1647 </div> 1648 </div> 1649 1650 </div> 1651 </div> 1652 <div class="col-xs-12 col-md-6 input-col"> 1653 <div class="btn-dropdown p-3 border-top-bottom-right"> 1654 <ul class="two-column list-unstyled"> 1655 <li> 1656 <label class="checkbox-container"> 1657 @Translate("Smartpage:Search.Erhverv.Køb", "Køb") 1658 <input type="checkbox" name="udbudsform" value="salg" class="js-input-check" /> 1659 <span class="checkmark"></span> 1660 </label> 1661 </li> 1662 </ul> 1663 </div> 1664 1665 </div> 1666 </div> 1667 </div> 1668 <div class="col-xs-12 col-md-3 col-lg-2 d-none d-md-block"> 1669 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 1670 </div> 1671 </div> 1672 <div class="row d-block d-md-none form-wrapper no-gutters"> 1673 <div class="col-xs-12 col-md-2"> 1674 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 1675 </div> 1676 </div> 1677 </div> 1678 </div> 1679 </form> 1680 </div> 1681 </div> 1682 } 1683 <div class="header logo"> 1684 <div class="logo"> 1685 <a href="/erhverv"> 1686 <img src="@logoUrl" alt='@("RealMæglerne")' /> 1687 </a> 1688 </div> 1689 </div> 1690 1691 <div class="header shortcuts"> 1692 <div class="header-shortcuts float-right"> 1693 @if (GetPageIdByNavigationTag("ErhvervFrontPage") != Pageview.ID) 1694 { 1695 <a href='' class="search-menu d-none d-xl-flex align-items-center float-left border-right js-mainsearch @searchClass"> 1696 <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> 1697 </a> 1698 } 1699 <div class="menu-slide d-flex align-items-center"> 1700 <b></b> 1701 <span class="menu-text hidden d-md-block">Menu</span> 1702 </div> 1703 </div> 1704 </div> 1705 @{ 1706 RenderSlideMenu(false, true, ""); 1707 } 1708 1709 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 1710 @using Custom.Integration.Brokers; 1711 @using Custom.Integration.Brokers.Models; 1712 @using Newtonsoft.Json; 1713 @using RealMaeglerne.Dynamicweb; 1714 @using Dynamicweb.Core; 1715 @using Dynamicweb; 1716 @using RealMaeglerne.Library; 1717 1718 1719 @GetValue("Title(Forside)") 1720 @GetValue("Description(Forsideskabelon til Mæglersider)") 1721 @{ 1722 string siteUrl = Utils.GetBaseUrl(true); 1723 var Broker = GetValue("Real:Broker") as Dynamicweb.Security.UserManagement.UserGroup; 1724 string brokerName = Broker.Name; 1725 if (!string.IsNullOrEmpty(Broker.CompanyName)) 1726 { 1727 brokerName = Broker.CompanyName; 1728 } 1729 string brokerPhone = RealMaeglerne.Library.Helper.FormatPhoneNumber(Broker.Telephone); 1730 string brokerEmail = Broker.Item().GetString("Email"); 1731 string brokerID = Broker.ID.ToString(); 1732 string brokerRating = ""; 1733 string brokerImage = Broker.GeolocationIcon.ToString(); 1734 string brokerUrl = siteUrl + GetString("DwAreaName"); 1735 string brokerTitle = GetString("Item.SPTitleForDesc"); 1736 string brokerDesc = GetString("Item.Beskrivelse"); 1737 string teaserDesc = System.Text.RegularExpressions.Regex.Replace(brokerDesc, "<[^>]*>", string.Empty); 1738 if (teaserDesc.Length > 300) 1739 { 1740 teaserDesc = teaserDesc.Substring(0, 300) + "..."; 1741 } 1742 if (!string.IsNullOrEmpty(Broker.Item().GetString("Rating"))) 1743 { 1744 brokerRating = Broker.Item().GetString("Rating"); 1745 } 1746 string brokerBadgeBesvarelser = ""; 1747 if (!string.IsNullOrEmpty(Broker.Item().GetString("BadgeBesvarelser"))) 1748 { 1749 brokerBadgeBesvarelser = Broker.Item().GetString("BadgeBesvarelser"); 1750 } 1751 1752 butikId = Broker.Item().GetString("CBMedlemsnummer"); 1753 primaryArea = Broker.Item().GetString("PrimaertOmraade"); 1754 1755 string brugerId = String.Empty; 1756 try 1757 { 1758 brugerId = Dynamicweb.Security.UserManagement.User.GetCurrentUserID().ToString(); 1759 } 1760 catch 1761 { 1762 // Ignore 1763 } 1764 1765 var Aabningstider = JsonConvert.DeserializeObject<ForretningsoplysningerAabningstider>(Broker.Item().GetString("AabningstiderJson")); 1766 } 1767 1768 @SnippetStart("OpenGraphTags") 1769 1770 <meta property="og:type" content="website" /> 1771 <meta property="og:url" content="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(Context.Current.Request.Url.AbsoluteUri)" /> 1772 <meta property="og:image" content="@brokerImage" /> 1773 <meta property="og:title" content="@brokerName" /> 1774 <meta property="og:description" content="@teaserDesc" /> 1775 1776 @SnippetEnd("OpenGraphTags") 1777 1778 @SnippetStart("JavaScriptBottom") 1779 <script type="application/ld+json"> 1780 { 1781 "@@context": "http://schema.org", 1782 "@@type": "RealEstateAgent", 1783 "image": "@(brokerImage)", 1784 "@@id": "@(brokerUrl)", 1785 "name": "@(brokerName)", 1786 "address": { 1787 "@@type": "PostalAddress", 1788 "streetAddress": "@(Broker.Address.ToString())", 1789 "addressLocality": "@(Broker.City.ToString())", 1790 "postalCode": "@(Broker.ZipCode.ToString())", 1791 "addressCountry": "DK" 1792 }, 1793 "geo": { 1794 "@@type": "GeoCoordinates", 1795 "latitude": @(Broker.GeolocationLatitude.ToString().Replace(',', '.')), 1796 "longitude": @(Broker.GeolocationLongitude.ToString().Replace(',', '.')) 1797 }, 1798 @if (!string.IsNullOrEmpty(brokerRating) 1799 && !string.IsNullOrEmpty(brokerBadgeBesvarelser) 1800 && Convert.ToDouble(brokerRating, System.Globalization.CultureInfo.InvariantCulture) >= 8.5) 1801 { 1802 <text>"aggregateRating": { 1803 "@@type":"AggregateRating", 1804 "bestRating":"10.0", 1805 "ratingValue":"@brokerRating", 1806 "worstRating":"0.0", 1807 "reviewCount":"@brokerBadgeBesvarelser" 1808 },</text> 1809 } 1810 "url": "@(brokerUrl)", 1811 "telephone": "+45 @(RealMaeglerne.Library.Helper.FormatPhoneNumber(Broker.Telephone))" 1812 } 1813 </script> 1814 1815 <script> 1816 var RMAPI = (RMAPI) ? RMAPI : {}; 1817 RMAPI.brokerImage = "@(brokerImage)"; 1818 RMAPI.CBMedlemsnummer = "@(Broker.Item().GetString("CBMedlemsnummer"))"; 1819 RMAPI.CompanyName = "@(Broker.CompanyName)"; 1820 RMAPI.AddressZip = "@($"{Broker.Address}, {Broker.ZipCode}")"; 1821 RMAPI.Telephone = "@(Broker.Telephone)"; 1822 RMAPI.Email = "@(Broker.Item().GetString("Email"))"; 1823 RMAPI.GeolocationIcon = "@(Broker.GeolocationIcon.ToString())"; 1824 RMAPI.City = "@Broker.City"; 1825 RMAPI.ButikId = "@butikId"; 1826 </script> 1827 1828 @{ 1829 var maeglerFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath("/Files/Templates/Designs/rm/assets/dist/bundle.maegler.min.js")); 1830 } 1831 <script type="text/javascript" src="/Files/Templates/Designs/rm/assets/dist/bundle.maegler.min.js?@(maeglerFileInfo.LastWriteTime.Ticks)"></script> 1832 1833 1834 @SnippetEnd("JavaScriptBottom") 1835 1836 @if (!string.IsNullOrEmpty(Broker.GeolocationIcon.ToString())) 1837 { 1838 <section class="maegler-header" style="background-image: url('@brokerImage');"></section> 1839 } 1840 <section class="maegler-page"> 1841 <div class="container"> 1842 <div class="page"> 1843 <div class="content"> 1844 <div class="row no-gutters"> 1845 <div class="col-12 col-lg-6 p-45"> 1846 <div class="border-right blue"> 1847 <h1 class="sp-broker-title-style js-choose-broker-name-val">@brokerName</h1> 1848 <div class="read-more-cont"> 1849 <div class="text-min"> 1850 @brokerDesc.TruncateHtml(500)<span class="read-more">.. <b>@Translate("product-read-more", "læs mere")</b></span> 1851 </div> 1852 <div class="text-full" style="display: none;"> 1853 @brokerDesc<span class="read-less">.. <b>@Translate("product-read-less", "læs mindre")</b></span> 1854 </div> 1855 </div> 1856 1857 </div> 1858 </div> 1859 <div class="col-12 col-lg-3 p-30"> 1860 @if (!string.IsNullOrEmpty(GetString("Item.Area.USP"))) 1861 { 1862 <ul class="usp fa-ul"> 1863 @{ 1864 string[] uspSplit = GetString("Item.Area.USP").Split(','); 1865 for (var i = 0; i < uspSplit.Length; i++) 1866 { 1867 <li><span class="fa-li"><i class="fas fa-check"></i><i class="fas fa-circle"></i></span>@uspSplit[i]</li> 1868 if (i == 2) 1869 { 1870 break; 1871 } 1872 } 1873 } 1874 </ul> 1875 } 1876 <p> 1877 <span class="js-choose-broker-address-val">@Broker.Address<br></span> 1878 <span class="js-choose-broker-zip">@Broker.ZipCode @Broker.City<br></span> 1879 @if (!string.IsNullOrEmpty(brokerEmail)) 1880 { 1881 <text>Mail: <a href='mailto:@brokerEmail'>@brokerEmail</a><br></text> 1882 } 1883 @if (!string.IsNullOrEmpty(brokerPhone)) 1884 { 1885 <text>Tlf.: <a href="tel:@brokerPhone">@brokerPhone</a></text> 1886 } 1887 </p> 1888 1889 </div> 1890 1891 <div class="col-xs-12 col-md-4 col-lg-3 light-blue p-30"> 1892 <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> 1893 <br /> 1894 @{ 1895 var dpmaegler = "" + Context.Current.Session["DP"] + "Mæglervisning" + ""; 1896 } 1897 <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> 1898 <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> 1899 </div> 1900 </div> 1901 </div> 1902 </div> 1903 </div> 1904 </section> 1905 @* Render boliglist *@ 1906 1907 <div class="dwcontent" id="content-main" title="Main content" data-settings="unwrap: true;"></div> 1908 @GetValue("DwContent(contentmain)") 1909 1910 <div id="bestilSalgsvurdering" class="salgsvurdering-container" style="background-color: #00182b; padding: 50px 0px;"> 1911 <div class="u-full-height"> 1912 <div class="grid bestil-salgsvurdering-item dw-mod"> 1913 <div class="grid__col- col-lg-12 col-sm-12 rhs"> 1914 <div class="salgsvurdering-form"> 1915 <div class="top-section"> 1916 <div class="header"> 1917 @Translate("Smartpage:Form.Salgsvurdering.Erhverv.Header", "Bestil vurdering") 1918 </div> 1919 <div class="description"> 1920 @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> 1921 </div> 1922 </div> 1923 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler"> 1924 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p> 1925 <div class="form-group-container"> 1926 <div class="form-group"> 1927 <input class="form-control js-autocomplete-city" type="hidden" readonly /> 1928 <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 /> 1929 <input type="hidden" class="js-postnummer-validation" /> 1930 <input type="hidden" class="form-control js-autocomplete-adresse" name="adresse" /> 1931 </div> 1932 1933 <div class="form-group mr-3 address"> 1934 <div class="autocomplete-container"> 1935 <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' /> 1936 </div> 1937 </div> 1938 1939 <div class="form-group mr-3"> 1940 <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")' /> 1941 </div> 1942 1943 <div class="form-group mr-3"> 1944 <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")' /> 1945 </div> 1946 1947 <div class="form-group mr-3"> 1948 <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")' /> 1949 </div> 1950 </div> 1951 <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"> 1952 <i class="icon fas fa-plus"></i><span class="text">@Translate("Smartpage:Salgsvurdering.Erhverv.Skrivenkommentar", "Tilføj kommentar til mægler")</span> 1953 </button> 1954 1955 <div class="collapse" id="salgsvurdering-collapse"> 1956 <div class="form-group"> 1957 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 1958 </div> 1959 </div> 1960 1961 1962 <div class="form-group mt-3 mb-2"> 1963 <div class="checkbox"> 1964 <label> 1965 <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")' /> 1966 <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> 1967 </label> 1968 </div> 1969 </div> 1970 <div class="form-group mb-0"> 1971 <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> 1972 </div> 1973 <input type="hidden" name="fn" value="bsv" /> 1974 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="SalgsvurderingBrokerPage" /> 1975 <input type="hidden" name="brugerId" value="" /> 1976 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 1977 <input type="hidden" id="boligvisning" name="boligvisning" value="" /> 1978 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="@butikId" /> 1979 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" /> 1980 <input type="hidden" name="ejendomstype" value="" /> 1981 <input type="hidden" name="salgspris" value="" /> 1982 <input type="hidden" name="employee" value="" /> 1983 <input type="hidden" name="modtager" value="" /> 1984 <input class="js-value-check" type="hidden" name="valueCheck" value="" /> 1985 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" /> 1986 </form> 1987 1988 </div> 1989 <div id="tak-salgsvurdering" class="salgsvurdering-confirmation" style="display:none;"> 1990 <div class="header"> 1991 @Translate("Smartpage:Form.Salgsvurdering.Erhverv.Confirmation.Header", "Tak for din interesse") 1992 </div> 1993 <div class="description"> 1994 @Translate("Smartpage:Form.Salgsvurdering.Erhverv.Confirmation.Description", "Du vil snarest blive kontaktet af en af vores medarbejdere.") 1995 </div> 1996 </div> 1997 </div> 1998 </div> 1999 </div> 2000 </div> 2001 @if (GetLoop("Real:Broker.Employees").Count > 0) 2002 { 2003 <section class="brokers"> 2004 <div class="container"> 2005 <h2 class="text-center mt-4">Medarbejdere</h2> 2006 <div class="broker-list row"> 2007 @{ 2008 foreach (var employee in GetLoop("Real:Broker.Employees")) 2009 { 2010 string employeePhone = RealMaeglerne.Library.Helper.FormatPhoneNumber(employee.GetString("PhoneMobile")); 2011 string employeeEmail = RealMaeglerne.Library.Helper.ExtractMaskedEmail(employee.GetString("Email")); 2012 string employeeImage = ""; 2013 string employeeClass = "na"; 2014 2015 employeeImage = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 2016 2017 bool CanSelect = employee.GetBoolean("MyEmployee"); 2018 if (!string.IsNullOrEmpty(employee.GetString("Image"))) 2019 { 2020 employeeImage = employee.GetString("Image"); 2021 employeeClass = ""; 2022 } 2023 if (!string.IsNullOrEmpty(employee.GetString("ImageWithBackground"))) 2024 { 2025 employeeImage = employee.GetString("ImageWithBackground"); 2026 employeeClass = ""; 2027 } 2028 2029 <div class="din-maegler col-12 col-lg-6 p-50"> 2030 <div class="row h-100"> 2031 <div class="col-12 box-shadow"> 2032 <div class="row h-100"> 2033 <div class="col-12 col-sm-6"> 2034 <div class="img-wrapper @employeeClass" style="background-image:url('@employeeImage')"> 2035 </div> 2036 </div> 2037 <div class="col-12 col-md-6 py-4"> 2038 <h4>@(employee.GetValue("Name"))</h4> 2039 @if (!string.IsNullOrEmpty(employee.GetString("JobTitle"))) 2040 { 2041 <p>@employee.GetString("JobTitle")</p> 2042 } 2043 <div class="icon-container"> 2044 <i class="fas fa-envelope"></i> 2045 @if (!string.IsNullOrEmpty(employeeEmail)) 2046 { 2047 <span>Mail: <a href='mailto:@(employeeEmail)'>@(employeeEmail)</a></span> 2048 } 2049 </div> 2050 <div class="icon-container mb-2"> 2051 <i class="fas fa-phone"></i> 2052 @if (!string.IsNullOrEmpty(employeePhone)) 2053 { 2054 <span>Tlf.: <a href='tel:@(employeePhone)'>@(employeePhone)</a></span> 2055 } 2056 </div> 2057 <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> 2058 </div> 2059 </div> 2060 </div> 2061 </div> 2062 </div> 2063 } 2064 } 2065 </div> 2066 </div> 2067 </section> 2068 } 2069 2070 <section class="maegler-bottom"> 2071 <div class="container"> 2072 <h2 class="text-center mt-4">@brokerName</h2> 2073 <div class="row"> 2074 <div class="col-12 col-lg-6"> 2075 <img class="img-fluid" src="@brokerImage" /> 2076 </div> 2077 <div class="col-12 col-lg-6"> 2078 <div class="row"> 2079 <div class="col-12"> 2080 <div class="box-shadow"> 2081 <div class="row"> 2082 @if (Aabningstider != null) 2083 { 2084 <div class="col-12"> 2085 <h3>@Translate("Smartpage:Åbningstider", "Åbningstider")</h3> 2086 </div> 2087 } 2088 <div class="col-6"> 2089 @if (Aabningstider != null) 2090 { 2091 <table> 2092 <tr> 2093 <td>@Translate("Smartpage:Mandag", "Mandag")</td> 2094 <td align="right"><b>@Aabningstider.Mandag</b></td> 2095 </tr> 2096 <tr> 2097 <td>@Translate("Smartpage:Tirsdag", "Tirsdag")</td> 2098 <td align="right"><b>@Aabningstider.Tirsdag</b></td> 2099 </tr> 2100 <tr> 2101 <td>@Translate("Smartpage:Onsdag", "Onsdag")</td> 2102 <td align="right"><b>@Aabningstider.Onsdag</b></td> 2103 </tr> 2104 <tr> 2105 <td>@Translate("Smartpage:Torsdag", "Torsdag")</td> 2106 <td align="right"><b>@Aabningstider.Torsdag</b></td> 2107 </tr> 2108 <tr> 2109 <td>@Translate("Smartpage:Fredag", "Fredag")</td> 2110 <td align="right"><b>@Aabningstider.Fredag</b></td> 2111 </tr> 2112 @if (Aabningstider.Loerdag == Aabningstider.Soendag) 2113 { 2114 <tr> 2115 <td>@Translate("Smartpage:LødagSøndag", "Lørdag - søndag")</td> 2116 <td align="right"><b>@Aabningstider.Loerdag</b></td> 2117 </tr> 2118 } 2119 else 2120 { 2121 <tr> 2122 <td>@Translate("Smartpage:Lørdag", "Lørdag")</td> 2123 <td align="right"><b>@Aabningstider.Loerdag</b></td> 2124 </tr> 2125 <tr> 2126 <td>@Translate("Smartpage:Søndag", "Søndag")</td> 2127 <td align="right"><b>@Aabningstider.Soendag</b></td> 2128 </tr> 2129 } 2130 </table> 2131 } 2132 </div> 2133 <div class="col-12 col-lg-6 text-center text-lg-left"> 2134 @if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["FacebookLink"]))) 2135 { 2136 <a href='@Pageview.Area.Item["FacebookLink"]' target="_blank"> 2137 <p class="d-inline-block d-lg-block"><i class="fab fa-facebook-f"></i> @Translate("Smartpage:SocialLinks.Facebook", "Facebook")</p> 2138 </a> 2139 } 2140 @if (!string.IsNullOrEmpty(Converter.ToString(Pageview.Area.Item["LinkedinLink"]))) 2141 { 2142 <a href='@Pageview.Area.Item["LinkedinLink"]' target="_blank"> 2143 <p class="d-inline-block d-lg-block"><i class="fab fa-linkedin-in"></i> @Translate("Smartpage:SocialLinks.LinkedIn", "LinkedIn")</p> 2144 </a> 2145 } 2146 </div> 2147 </div> 2148 </div> 2149 </div> 2150 </div> 2151 2152 <div id="myCarousel" class="carousel slide" data-ride="carousel"> 2153 <div class="carousel-inner row w-100 mx-auto no-gutters"> 2154 @{ 2155 var count = 0; 2156 var isActive = ""; 2157 } 2158 @foreach (var d in GetLoop("Item.Area.DownloadOrLink")) 2159 { 2160 if (count == 0) 2161 { 2162 isActive = "active"; 2163 } 2164 else 2165 { 2166 isActive = ""; 2167 } 2168 <div class="col-12 col-lg-6 carousel-item @isActive"> 2169 <div class="box-shadow"> 2170 <h3>@d.GetString("Item.Area.DownloadOrLink.Overskrift")</h3> 2171 2172 @if (d.GetString("Item.Area.DownloadOrLink.DownloadOrLink") == "download") 2173 { 2174 <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> 2175 } 2176 else 2177 { 2178 <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> 2179 } 2180 </div> 2181 </div> 2182 2183 count++; 2184 2185 } 2186 </div> 2187 2188 @*ONLY SHOW IF MORE THAN 2*@ 2189 <div class="d-none d-lg-block"> 2190 2191 </div> 2192 @if (count > 2) 2193 { 2194 <a class="carousel-control-prev" href="#myCarousel" role="button" data-slide="prev"> 2195 <i class="fal fa-angle-left fa-2x"></i> 2196 <i class="fa fa-circle blue fa-3x"></i> 2197 </a> 2198 <a class="carousel-control-next" href="#myCarousel" role="button" data-slide="next"> 2199 <i class="fal fa-angle-right fa-2x"></i> 2200 <i class="fa fa-circle blue fa-3x"></i> 2201 </a> 2202 } 2203 2204 <div class="d-block d-lg-none"> 2205 @if (count > 1) 2206 { 2207 <a class="carousel-control-prev" href="#myCarousel" role="button" data-slide="prev"> 2208 <i class="fal fa-angle-left fa-2x"></i> 2209 <i class="fa fa-circle blue fa-3x"></i> 2210 </a> 2211 <a class="carousel-control-next" href="#myCarousel" role="button" data-slide="next"> 2212 <i class="fal fa-angle-right fa-2x"></i> 2213 <i class="fa fa-circle blue fa-3x"></i> 2214 </a> 2215 } 2216 </div> 2217 </div> 2218 </div> 2219 </div> 2220 </div> 2221 </section> 2222 2223 <div id="panel-kontaktmaegler" class="panel panel-form"> 2224 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 2225 <b></b> 2226 </button> 2227 <h2>@Translate("form-kontaktmaegler-titel", "Kontakt mægler")</h2> 2228 <p>@Translate("form-kontaktmaegler-beskrivelse", "")</p> 2229 <form id="form-kontaktmaegler" method="POST" action="/InboxHandler"> 2230 <div class="form-group"> 2231 <input class="form-control" type="text" name="navn" placeholder='@Translate("form-navn", "Navn")' value='@GetGlobalValue("Global:Extranet.Name")' required /> 2232 </div> 2233 <div class="form-group"> 2234 <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 /> 2235 </div> 2236 <div class="form-group"> 2237 <div class="radio"> 2238 <label> 2239 <input type="radio" name="phonetype" value="fastnet" /> 2240 <span>@Translate("form-phonetype-fastnet", "Fastnet")</span> 2241 </label> 2242 <label> 2243 <input type="radio" name="phonetype" value="mobil" checked="checked" /> 2244 <span>@Translate("form-phonetype-mobil", "Mobil")</span> 2245 </label> 2246 </div> 2247 </div> 2248 <div class="form-group"> 2249 <input class="form-control" type="tel" pattern="^[0-9]*$" maxlength="20" name="telefonnummer" placeholder='@Translate("form-telefonnummer", "Telefonnummer")' value='@GetGlobalValue("Global:Extranet.Phone")' required /> 2250 </div> 2251 <div class="form-group"> 2252 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-mægler", "Din besked til mægleren. F.eks ”Jeg ønsker en salgsvurdering”")'></textarea> 2253 </div> 2254 <div class="form-group"> 2255 <div class="checkbox"> 2256 <label> 2257 <input type="checkbox" name="kontaktmigok" required /> 2258 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 2259 </label> 2260 </div> 2261 </div> 2262 <div class="form-group"> 2263 <div class="row"> 2264 <div class="col-12"> 2265 <button type="submit" class="btn btn-primary btn-block">@Translate("form-kontaktmaegler-submitbtn", "Send")</button> 2266 </div> 2267 </div> 2268 </div> 2269 <div class="form-group form-group-terms"> 2270 * Der samles ingen personlige oplysninger uden dit udtrykkelige samtykke. 2271 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. 2272 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>. 2273 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 2274 </div> 2275 <input type="hidden" name="fn" value="km" /> 2276 <input type="hidden" name="origin" value="" /> 2277 <input type="hidden" name="brugerId" value="@brugerId" /> 2278 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 2279 <input type="hidden" name="butikId" value="@butikId" /> 2280 </form> 2281 <div id="tak-kontaktmaegler" style="display:none;"> 2282 <p>@Translate("form-kontaktmaegler-tak", "Tak for din interesse, vi vender tilbage hurtigst muligt.")</p> 2283 </div> 2284 </div> 2285 2286 2287 @if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && GetBoolean("Item.Page.HideMyBroker.Value") != true) 2288 { 2289 string bName = MyBroker.Broker.Name; 2290 string bImage = ""; 2291 string bClass = "na"; 2292 bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 2293 2294 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName)) 2295 { 2296 bName = MyBroker.Broker.CompanyName; 2297 } 2298 try 2299 { 2300 var imgUrl = MyBroker.Employee.Item().GetString("BilledeUrl"); 2301 if (!string.IsNullOrEmpty(imgUrl)) 2302 { 2303 bImage = imgUrl; 2304 bClass = ""; 2305 } 2306 } 2307 catch 2308 { 2309 // Ignore 2310 } 2311 2312 string bAreaID = MyBroker.Broker.Item().GetString("WebsiteId"); 2313 string medlemsnummer = MyBroker.Broker.Item().GetString("CBMedlemsnummer"); 2314 <section class="din-maegler"> 2315 <div class="img-wrapper @bClass" style="background-image:url('@bImage')"></div> 2316 <div class="container"> 2317 <div class="col-12 col-sm-12 col-md-6 offset-md-6"> 2318 <h2>Din personlige mægler</h2> 2319 <div class="row"> 2320 <div class="col-12 col-sm-6"> 2321 <p> 2322 <b class="my-broker-name">@MyBroker.Employee.Name</b><br> 2323 @if (!string.IsNullOrEmpty(MyBroker.Employee.Email)) 2324 { 2325 <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> 2326 } 2327 @if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile)) 2328 { 2329 <text>Tlf.: <a href="tel:@(MyBroker.Employee.PhoneMobile)" class="my-broker-phone">@RealMaeglerne.Library.Helper.FormatPhoneNumber(MyBroker.Employee.PhoneMobile)</a></text> 2330 } 2331 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2332 { 2333 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-phone">@RealMaeglerne.Library.Helper.FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text> 2334 } 2335 </p> 2336 </div> 2337 <div class="col-12 col-sm-6"> 2338 <p> 2339 <b class="my-broker-company-name">@bName</b><br> 2340 <span class="my-broker-company-address">@MyBroker.Broker.Address</span><br> 2341 <span class="my-broker-company-zip">@MyBroker.Broker.ZipCode</span> <span class="my-broker-company-city">@MyBroker.Broker.City</span><br> 2342 @if (!string.IsNullOrEmpty(bEmail)) 2343 { 2344 <text>Mail: <a href="mailto:@(bEmail)" class="my-broker-broker-email">@bEmail</a><br></text> 2345 } 2346 @if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2347 { 2348 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-broker-phone">@RealMaeglerne.Library.Helper.FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text> 2349 } 2350 </p> 2351 </div> 2352 </div> 2353 <div class="row"> 2354 <br /> 2355 <div class="col-12 col-sm-6"> 2356 <a href="/@medlemsnummer" class="btn btn-primary btn-block my-broker-company-url">Til mæglerens side</a> 2357 </div> 2358 </div> 2359 </div> 2360 </div> 2361 </section> 2362 } 2363 2364 @if (GetGlobalValue("Global:CookieOptInLevel") != "All") 2365 { 2366 <section class="cookie-bar bar-text" id="cookieBar"> 2367 <div class="container"> 2368 <div class="row"> 2369 <div class="col-12"> 2370 <a class="close" onclick="return setOptInCookie(2);"><i class="fa fa-times"></i></a> 2371 <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> 2372 </div> 2373 </div> 2374 </div> 2375 </section> 2376 } 2377 2378 <footer> 2379 <div class="container"> 2380 <div class="row"> 2381 <ul id="footer-nav" class="navigation dwnavigation" settings="startlevel:1;endlevel:3;template:footerNav.xslt;expandmode:all;parenttag:footer-nav-erhverv;"></ul> 2382 @GetValue("DwNavigation(footernav)") 2383 </div> 2384 </div> 2385 </footer> 2386 2387 @if (GetInteger("DW_extranet_AccessUserID") <= 0) 2388 { 2389 <div id="panel-login" class="panel panel-form"> 2390 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 2391 <b></b> 2392 </button> 2393 <div class="loginform login"> 2394 @if (loginParagraphId > 0) 2395 { 2396 <text> 2397 @RenderParagraphContent(loginParagraphId) 2398 </text> 2399 } 2400 </div> 2401 <div class="loginform register js-register-form-wrapper" style="display: none;"> 2402 @if (createUserParagraphId > 0) 2403 { 2404 <text> 2405 @RenderParagraphContent(createUserParagraphId) 2406 </text> 2407 } 2408 </div> 2409 <div class="loginform forgotpw" style="display: none;"> 2410 <h2 class="forgotpw-reg">@Translate("forgot-pw-reg-title", "Glemt adgangskode")</h2> 2411 <h2 class="forgotpw-broker">@Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")</h2> 2412 <form id="forgotPwForm" class="form-body" method="post" action=""> 2413 <input type="hidden" id="AccessUserShopID" name="AccessUserShopID" value="SHOP6" /> 2414 <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> 2415 <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> 2416 <div class="form-group"> 2417 <input id="AccessUserEmail" name="AccessUserEmail" type="email" pattern="[_a-z0-9.%+-]+&#64;[a-z0-9.-]+.[a-z]{2,4}$" placeholder="E-mail" class="form-control" required /> 2418 </div> 2419 <button class="btn btn-primary btn-block" type="submit">@Translate("forgot-pw-cta", "Nulstil adgangskode")</button> 2420 <br /> 2421 <div id="submitMessage"></div> 2422 </form> 2423 </div> 2424 </div> 2425 } 2426 2427 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2428 @using System 2429 @using RealMaeglerne.Dynamicweb; 2430 @using RealMaeglerne.Library; 2431 @using RealMaeglerne.Library.Models; 2432 @using Dynamicweb.Content.Items; 2433 @using Dynamicweb.Core; 2434 @using System.Linq; 2435 2436 @{ 2437 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"); 2438 } 2439 2440 <!-- KONTAKT KØBERRAADGIVNING --> 2441 <div id="panel-kontakt-koeberraadgivning" class="panel panel-form"> 2442 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 2443 <b></b> 2444 </button> 2445 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2> 2446 <form id="form-koeberraadgivning" method="POST" action="/InboxHandler"> 2447 <div class="form-group"> 2448 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 2449 <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 /> 2450 </div> 2451 <div class="form-group"> 2452 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 2453 <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 /> 2454 </div> 2455 <div class="form-group row mb-4"> 2456 <div class="col-6"> 2457 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 2458 <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 /> 2459 </div> 2460 <div class="col-6"> 2461 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 2462 <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")' /> 2463 </div> 2464 </div> 2465 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 2466 <div class="form-group row"> 2467 <div class="col-4"> 2468 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 2469 <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 /> 2470 <input type="hidden" class="js-postnummer-validation" /> 2471 </div> 2472 <div class="col-8"> 2473 <label><strong>@Translate("form-city", "By")*</strong></label> 2474 <input class="form-control js-city" type="text" readonly /> 2475 </div> 2476 </div> 2477 <div class="form-group overflow-unset"> 2478 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 2479 <input class="form-control js-validate-address" type="text" name="adresse" tabindex="6" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' required /> 2480 2481 <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> 2482 </div> 2483 <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"> 2484 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 2485 </button> 2486 <div class="collapse" id="kontaktkoeberrradgiver-collapse"> 2487 <div class="form-group"> 2488 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 2489 </div> 2490 </div> 2491 2492 <div class="form-group mt-3"> 2493 <div class="checkbox"> 2494 <label> 2495 <input type="checkbox" name="kontaktmigok" required /> 2496 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 2497 </label> 2498 </div> 2499 </div> 2500 <div class="form-group"> 2501 <div class="row"> 2502 <div class="col-12"> 2503 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button> 2504 </div> 2505 </div> 2506 </div> 2507 <div class="form-group form-group-terms"> 2508 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 2509 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 2510 </div> 2511 2512 <input type="hidden" name="fn" value="krk" /> 2513 <input type="hidden" name="origin" value="" /> 2514 <input type="hidden" name="brugerId" value="" /> 2515 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 2516 <input type="hidden" name="butikId" value="@butikId" /> 2517 <input type="hidden" name="ejendomstype" value="" /> 2518 <input type="hidden" name="salgspris" value="" /> 2519 <input type="hidden" name="modtager" value="" /> 2520 </form> 2521 <div id="tak-kontakt-advisor" style="display:none;"> 2522 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 2523 <div class="row"> 2524 <div class="col-6"> 2525 <img src="" class="img-fluid js-maegler-img" /> 2526 </div> 2527 <div class="col-6"> 2528 <p class="js-maegler-name"></p> 2529 <p class="js-maegler-address"></p> 2530 <p class="js-maegler-phone"></p> 2531 <p class="js-maegler-mail"></p> 2532 </div> 2533 </div> 2534 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 2535 </div> 2536 </div> 2537 2538 <!--ÅBENT HUS--> 2539 <div id="panel-aabenthus" class="panel panel-form"> 2540 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 2541 <b></b> 2542 </button> 2543 2544 <form id="form-aabenthus" method="POST" action="/InboxHandler"> 2545 <h2>@Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")</h2> 2546 @{ 2547 string sagsnr = Dynamicweb.Context.Current.Request["ProductId"]; 2548 var product = Dynamicweb.Ecommerce.Services.Products.GetProductById(sagsnr, string.Empty, true); 2549 if (product != null) 2550 { 2551 var boligManager = new BoligManager(Pageview); 2552 Bolig bolig = boligManager.CreateBolig(product, true); 2553 var kommendeAabnehuse = boligManager.KommendeAabnehuse(bolig).Take(3); 2554 2555 if (kommendeAabnehuse.Count() > 0) 2556 { 2557 <div> 2558 <div class="open-house-dates"> 2559 @foreach (var openHouse in kommendeAabnehuse) 2560 { 2561 <label class="open-house-dates__date"> 2562 @openHouse.DatoClean 2563 <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" /> 2564 </label> 2565 } 2566 </div> 2567 @foreach (var openHouse in kommendeAabnehuse) 2568 { 2569 <div id="@openHouse.Id" class="open-house-times"> 2570 @if (openHouse.VisInterval && openHouse.Tilmelding) 2571 { 2572 int counter = 0; 2573 foreach (var interval in openHouse.TidsIntervallerFormateret) 2574 { 2575 <div><input class="js-aabenthus-time-select time-radio" type="radio" name="AabenthusTid" value="@interval" checked="@(counter == 0)" /><span>@interval.Substring(3)</span></div> 2576 counter++; 2577 } 2578 2579 } 2580 2581 @if (!openHouse.Tilmelding) 2582 { 2583 <div class="js-open-house-no-signup open-house-no-signup"> 2584 @Translate("Smartpage:Aabenthus.IngenTilmelding", "Ingen tilmelding påkrævet") 2585 </div> 2586 } 2587 </div> 2588 } 2589 </div> 2590 } 2591 } 2592 } 2593 2594 <div class="d-block"> 2595 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label> 2596 </div> 2597 <div class="d-block"> 2598 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label> 2599 </div> 2600 <div class="d-block mb-4"> 2601 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label> 2602 </div> 2603 <div class="js-open-house-signup open-house-signup"> 2604 <h3>@Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")</h3> 2605 <div class="form-group"> 2606 <label for="aabenthus-name"><strong>@Translate("form-navn", "Navn")*</strong></label> 2607 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required /> 2608 </div> 2609 <div class="form-group"> 2610 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 2611 <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 /> 2612 </div> 2613 <div class="form-group row"> 2614 <div class="col-6"> 2615 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 2616 <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 /> 2617 </div> 2618 <div class="col-6"> 2619 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 2620 <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")' /> 2621 </div> 2622 2623 </div> 2624 <div class="form-group"> 2625 <div class="checkbox"> 2626 <label> 2627 <input type="checkbox" name="kontaktmigok" required /> 2628 <span class="base-color">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 2629 </label> 2630 </div> 2631 </div> 2632 <div class="form-group"> 2633 <div class="row"> 2634 <div class="col-12"> 2635 <button type="submit" class="btn btn-block btn-green">@Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")</button> 2636 </div> 2637 </div> 2638 </div> 2639 <div class="form-group"> 2640 @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>") 2641 2642 </div> 2643 </div> 2644 <input type="hidden" name="fn" value="ah" /> 2645 <input type="hidden" name="origin" value="" /> 2646 <input type="hidden" name="brugerId" value="@userID" /> 2647 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 2648 <input type="hidden" name="butikId" value="@butikId" /> 2649 <input type="hidden" name="sagsaddresse" value="" class="js-aabenthus-address-input" /> 2650 <input type="hidden" name="ejendomstype" value="" /> 2651 <input type="hidden" name="salgspris" value="" /> 2652 <input type="hidden" name="modtager" value="" /> 2653 <input type="hidden" name="employee" value="" /> 2654 <input type="hidden" name="sagsnr" value="" class="js-sagsnr" /> 2655 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 2656 <input type="hidden" name="aftaleid" value="" class="js-aftaleid" /> 2657 2658 <input type="hidden" name="dateMail" class="js-aabenthus-date-input" /> 2659 <input type="hidden" name="timeMail" class="js-aabenthus-time-input" /> 2660 <input type="hidden" name="visintervaller" class="js-aabenthus-showinterval-input" /> 2661 <input type="hidden" name="brokerImageMail" class="property-broker-image-input" /> 2662 <input type="hidden" name="employeeNameMail" class="js-maegler-employee-name-input" /> 2663 <input type="hidden" name="employeeTitleMail" class="js-maegler-employee-title-input" /> 2664 <input type="hidden" name="employeeMailMail" class="js-maegler-mail-input" /> 2665 <input type="hidden" name="employeeMobileMail" class="js-maegler-mobile-input" /> 2666 <input type="hidden" name="employeePhoneMail" class="js-maegler-phone-input" /> 2667 2668 <input type="hidden" name="brokerNameMail" class="js-broker-name-input" /> 2669 <input type="hidden" name="brokerAddressMail" class="js-broker-address-input" /> 2670 <input type="hidden" name="brokerPhoneMail" class="js-broker-phone-input" /> 2671 <input type="hidden" name="greenmobility" class="js-green-mobility" /> 2672 </form> 2673 <div id="tak-aabenthus" style="display:none;"> 2674 <h2>@Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")</h2> 2675 <div class="d-block"> 2676 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label> 2677 </div> 2678 <div class="d-block"> 2679 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label> 2680 2681 </div> 2682 <div class="d-block mb-4"> 2683 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label> 2684 2685 </div> 2686 <div class="js-employee"> 2687 <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> 2688 </div> 2689 <div class="js-not-employee"> 2690 <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> 2691 </div> 2692 <div class="row"> 2693 <div class="js-employee"> 2694 <div class="col-12 js-maegler-img aabenthus-image"> 2695 <div class="property-broker-image" style=""></div> 2696 2697 </div> 2698 </div> 2699 <div class="col-12"> 2700 <div class="bg-base"> 2701 2702 <div class="js-employee"> 2703 <h4 class="js-maegler-employee-name"></h4> 2704 <div class="icon-container"> 2705 <i class="fas fa-envelope"></i> <span class="js-maegler-mail"></span> 2706 </div> 2707 <div class="icon-container"> 2708 <i class="fas fa-phone"></i> <span class="js-maegler-mobile"></span> 2709 </div> 2710 </div> 2711 2712 2713 <h4 class="js-maegler-name"></h4> 2714 <div class="icon-container"> 2715 <i class="fas fa-map-marker-alt"></i> <span class="js-maegler-address"></span> 2716 </div> 2717 <div class="icon-container"> 2718 <i class="fas fa-phone"></i> <span class="js-maegler-phone"></span> 2719 2720 </div> 2721 <a class="btn btn-border" onclick="panelKontaktmaeglerGuldkoeber()">KONTAKT MÆGLER</a> 2722 </div> 2723 </div> 2724 </div> 2725 </div> 2726 </div> 2727 2728 <!-- KONTAKT GULDKØBER --> 2729 <div id="panel-kontakt-guldkoeber" class="panel panel-form"> 2730 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 2731 <b></b> 2732 </button> 2733 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2> 2734 <form id="form-kontaktmaegler" method="POST" action="/InboxHandler"> 2735 <div class="form-group"> 2736 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 2737 <input class="form-control" type="text" name="navn" placeholder='@Translate("form-navn", "Navn")' value='@GetGlobalValue("Global:Extranet.Name")' required /> 2738 </div> 2739 <div class="form-group"> 2740 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 2741 <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 /> 2742 </div> 2743 <div class="form-group row mb-4"> 2744 <div class="col-6"> 2745 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 2746 <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 /> 2747 </div> 2748 <div class="col-6"> 2749 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 2750 <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")' /> 2751 </div> 2752 </div> 2753 <div class="form-group row"> 2754 <div class="col-4"> 2755 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 2756 <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 /> 2757 <input type="hidden" class="js-postnummer-validation" /> 2758 </div> 2759 <div class="col-8"> 2760 <label><strong>@Translate("form-city", "By")*</strong></label> 2761 <input class="form-control js-city" type="text" readonly /> 2762 </div> 2763 </div> 2764 2765 <div class="form-group overflow-unset"> 2766 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 2767 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 2768 <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> 2769 </div> 2770 <div class="form-group"> 2771 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 2772 </div> 2773 <div class="form-group"> 2774 <div class="checkbox"> 2775 <label> 2776 <input type="checkbox" name="kontaktmigok" required /> 2777 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 2778 </label> 2779 </div> 2780 </div> 2781 <div class="form-group"> 2782 <div class="row"> 2783 <div class="col-12"> 2784 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button> 2785 </div> 2786 </div> 2787 </div> 2788 <div class="form-group form-group-terms"> 2789 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 2790 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 2791 </div> 2792 <input type="hidden" name="fn" value="gk" /> 2793 <input type="hidden" name="origin" value="" /> 2794 <input type="hidden" name="brugerId" value="@userID" /> 2795 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 2796 <input type="hidden" name="butikId" value="@butikId" /> 2797 <input type="hidden" name="ejendomstype" value="" /> 2798 <input type="hidden" name="salgspris" value="" /> 2799 <input type="hidden" name="modtager" value="" /> 2800 <input type="hidden" name="employee" value="" /> 2801 </form> 2802 <div id="tak-kontakt-maegler-guldkoeber" style="display:none;"> 2803 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 2804 <p>@Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")</p> 2805 <div class="row"> 2806 <div class="col-6"> 2807 <img src="" class="img-fluid js-maegler-img" /> 2808 </div> 2809 <div class="col-6"> 2810 <p class="js-maegler-name"></p> 2811 <p class="js-maegler-address"></p> 2812 <p class="js-maegler-phone"></p> 2813 <p class="js-maegler-mail"></p> 2814 </div> 2815 </div> 2816 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 2817 </div> 2818 </div> 2819 2820 <!-- BESTIL SALGSVURDERING --> 2821 <div id="panel-salgsvurdering" class="panel panel-form"> 2822 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 2823 <b></b> 2824 </button> 2825 2826 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler"> 2827 <h2 class="js-buyer-advisor-header">@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2> 2828 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p> 2829 <div class="form-group"> 2830 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 2831 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required /> 2832 </div> 2833 <div class="form-group"> 2834 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 2835 <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 /> 2836 </div> 2837 <div class="form-group row mb-4"> 2838 <div class="col-6"> 2839 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 2840 <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 /> 2841 </div> 2842 <div class="col-6"> 2843 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 2844 <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")' /> 2845 </div> 2846 2847 </div> 2848 2849 @{ 2850 // isErhverv comes from master template 2851 bool pageIsErhverv = isErhverv || Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]); 2852 string yourPropertyHeader = pageIsErhverv ? Translate("Smartpage:Salgsvurdering.DinEjendom", "Din ejendom") : Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"); 2853 // If user is on broker page already then don't suggest alternative broker 2854 bool isOnBrokerPage = !string.IsNullOrEmpty(butikId); 2855 } 2856 2857 <h3>@yourPropertyHeader</h3> 2858 <div class="form-group row"> 2859 <div class="col-4"> 2860 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 2861 @{ 2862 string primaryAreaEncoded = Dynamicweb.Core.Encoders.HtmlEncoder.HtmlEncode(primaryArea); 2863 <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 /> 2864 <input type="hidden" class="js-postnummer-validation" /> 2865 } 2866 </div> 2867 <div class="col-8"> 2868 <label><strong>@Translate("form-city", "By")*</strong></label> 2869 <input class="form-control js-city" type="text" readonly /> 2870 </div> 2871 </div> 2872 <div class="form-group overflow-unset"> 2873 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 2874 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 2875 <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> 2876 </div> 2877 2878 <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"> 2879 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 2880 </button> 2881 <div class="collapse" id="salgsvurdering-collapse"> 2882 <div class="form-group"> 2883 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 2884 </div> 2885 </div> 2886 2887 <div class="salgsvurdering-precheck"> 2888 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3> 2889 <div class="col-12"> 2890 <div class="choose-broker row align-items-center active"> 2891 <div class="col-2"> 2892 <input class="js-broker-radio" type="radio" id="" name="choose-broker" value="" checked> 2893 <label class="js-broker-label" for=""></label><div class="check"> 2894 <div class="inside"> 2895 </div> 2896 </div> 2897 </div> 2898 <div class="col-4"> 2899 <img src="" class="img-fluid js-broker-image"> 2900 </div> 2901 <div class="col-6"> 2902 <span class="d-block"> 2903 <strong class="js-choose-broker-name"></strong> 2904 </span> 2905 <span class="js-choose-broker-address"></span> 2906 <input type="hidden" class="js-choose-broker-phone" value="" /> 2907 <input type="hidden" class="js-choose-broker-email" value="" /> 2908 </div> 2909 </div> 2910 </div> 2911 </div> 2912 <div class="salgsvurdering-broker"> 2913 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3> 2914 <div class="js-choose-broker col-12"> 2915 </div> 2916 2917 </div> 2918 <div class="form-group mt-4"> 2919 <div class="checkbox"> 2920 <label> 2921 <input type="checkbox" name="kontaktmigok" required /> 2922 <span class="consent-checkbox">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 2923 </label> 2924 </div> 2925 </div> 2926 <div class="form-group"> 2927 <div class="row"> 2928 <div class="col-12"> 2929 <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> 2930 </div> 2931 </div> 2932 </div> 2933 <div class="form-group form-group-terms"> 2934 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 2935 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 2936 </div> 2937 <input type="hidden" name="fn" value="bsv" /> 2938 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" /> 2939 <input type="hidden" name="brugerId" value="@userID" /> 2940 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 2941 <input type="hidden" id="boligvisning" name="boligvisning" value="" /> 2942 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="" /> 2943 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" /> 2944 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 2945 <input type="hidden" name="ejendomstype" value="" /> 2946 <input type="hidden" name="salgspris" value="" /> 2947 <input type="hidden" name="employee" value="" /> 2948 <input type="hidden" name="modtager" value="" /> 2949 <input class="js-value-check" type="hidden" name="valueCheck" value="" /> 2950 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" /> 2951 </form> 2952 <div id="tak-salgsvurdering" style="display:none;"> 2953 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 2954 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p> 2955 <div class="row"> 2956 <div class="col-6"> 2957 <img src="" class="img-fluid js-maegler-img" /> 2958 </div> 2959 <div class="col-6"> 2960 <p class="js-maegler-name"></p> 2961 <p class="js-maegler-address"></p> 2962 <p class="js-maegler-phone"></p> 2963 <p class="js-maegler-mail"></p> 2964 </div> 2965 </div> 2966 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 2967 </div> 2968 </div> 2969 2970 <!-- BESTIL SALGSVURDERING GULDKØBER --> 2971 <div id="panel-salgsvurdering-guldkoeber" class="panel panel-form"> 2972 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 2973 <b></b> 2974 </button> 2975 2976 <form id="bestil-salgsvurdering-guldkoeber" method="POST" action="/InboxHandler"> 2977 <h2>@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2> 2978 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p> 2979 <div class="form-group"> 2980 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 2981 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required /> 2982 </div> 2983 <div class="form-group"> 2984 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 2985 <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 /> 2986 </div> 2987 <div class="form-group row mb-4"> 2988 <div class="col-6"> 2989 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 2990 <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")' /> 2991 </div> 2992 <div class="col-6"> 2993 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 2994 <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 /> 2995 </div> 2996 </div> 2997 2998 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 2999 3000 <div class="form-group row"> 3001 <div class="col-4"> 3002 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 3003 <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 /> 3004 <input type="hidden" class="js-postnummer-validation" /> 3005 </div> 3006 <div class="col-8"> 3007 <label><strong>@Translate("form-city", "By")*</strong></label> 3008 <input class="form-control js-city" type="text" readonly /> 3009 </div> 3010 </div> 3011 <div class="form-group overflow-unset"> 3012 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 3013 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 3014 <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> 3015 </div> 3016 3017 <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"> 3018 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 3019 </button> 3020 <div class="collapse" id="salgsvurdering-collapse"> 3021 <div class="form-group"> 3022 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 3023 </div> 3024 </div> 3025 <div class="salgsvurdering-precheck"> 3026 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3> 3027 <div class="col-12"> 3028 <div class="choose-broker row align-items-center active"> 3029 <div class="col-2"> 3030 <input class="js-broker-radio" type="radio" id="" name="choose-broker-gk" value="" checked> 3031 <label class="js-broker-label" for=""></label><div class="check"> 3032 <div class="inside"> 3033 </div> 3034 </div> 3035 </div> 3036 <div class="col-4"> 3037 <img src="" class="img-fluid js-broker-image"> 3038 </div> 3039 <div class="col-6"> 3040 <span class="d-block"> 3041 <strong class="js-choose-broker-name"></strong> 3042 </span> 3043 <span class="js-choose-broker-address"></span> 3044 <input type="hidden" class="js-choose-broker-phone" value="" /> 3045 <input type="hidden" class="js-choose-broker-email" value="" /> 3046 </div> 3047 </div> 3048 </div> 3049 </div> 3050 <div class="salgsvurdering-broker"> 3051 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3> 3052 <div class="js-choose-broker col-12"> 3053 </div> 3054 3055 </div> 3056 3057 <div class="form-group"> 3058 <div class="checkbox"> 3059 <label> 3060 <input type="checkbox" name="kontaktmigok" required /> 3061 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 3062 </label> 3063 </div> 3064 </div> 3065 <div class="form-group"> 3066 <div class="row"> 3067 <div class="col-12"> 3068 <button type="submit" class="btn btn-green btn-block">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button> 3069 </div> 3070 </div> 3071 </div> 3072 <div class="form-group form-group-terms"> 3073 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 3074 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 3075 </div> 3076 <input type="hidden" name="fn" value="bsg" /> 3077 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" /> 3078 <input type="hidden" name="brugerId" value="@userID" /> 3079 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 3080 <input type="hidden" id="boligvisning-gk" name="boligvisning" value="" /> 3081 <input type="hidden" id="panel-salgsvurdering-gk-butikid" name="butikId" value="" /> 3082 <input type="hidden" id="panel-salgsvurdering-gk-sagsnr" name="sagsnr" value="" /> 3083 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 3084 <input type="hidden" name="ejendomstype" value="" /> 3085 <input type="hidden" name="salgspris" value="" /> 3086 <input type="hidden" name="employee" value="" /> 3087 <input type="hidden" name="modtager" value="" /> 3088 </form> 3089 <div id="tak-salgsvurdering" style="display:none;"> 3090 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 3091 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p> 3092 <div class="row"> 3093 <div class="col-6"> 3094 <img src="" class="img-fluid js-maegler-img" /> 3095 </div> 3096 <div class="col-6"> 3097 <p class="js-maegler-name"></p> 3098 <p class="js-maegler-address"></p> 3099 <p class="js-maegler-phone"></p> 3100 <p class="js-maegler-mail"></p> 3101 </div> 3102 </div> 3103 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 3104 </div> 3105 </div> 3106 3107 3108 <div class="overlay-wrapper"></div> 3109 <div class="dropdown-overlay"></div> 3110 <div class="loader-inner ball-pulse"></div> 3111 <script type="text/javascript" src='@(TemplateUrl)assets/webpack/js/3rdparty/viamapstrap.js'></script> 3112 <script type="text/javascript" src='@(TemplateUrl)assets/dist/bundle.app.min.js?@cachedTimestamp'></script> 3113 3114 @RenderSnippet("JavaScriptBottom") 3115 3116 @if (Context.Current.Request.QueryString["ShowLogin"] == "true") 3117 { 3118 <input class="js-showLogin" value="true" /> 3119 } 3120 @if (!string.IsNullOrWhiteSpace(GetString("DW_extranet_error_uk"))) 3121 { 3122 <input class="js-DWError" value="true" /> 3123 <input class="js-DWErrorVal" value="@GetString("DW_extranet_error_dk")" /> 3124 } 3125 </body> 3126 </html> 3127