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

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