Error executing template "Designs/rm_sub/frontpage.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_40ff3c3db20b42809411ac7da69df31c.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 1188 @RenderSnippet("OpenGraphTags") 1189 1190 @*RICH SNIPPETS*@ 1191 1192 <script type="application/ld+json"> 1193 { 1194 "context": "https://schema.org/", 1195 "@@type": "WebSite", 1196 "name": "RealMæglerne", 1197 "url": "https://www.realmaeglerne.dk/", 1198 "potentialAction": { 1199 "type": "SearchAction", 1200 "target": "https://www.realmaeglerne.dk/find-maegler?q={search_term_string}", 1201 "query-input": "required name=search_term_string" 1202 } 1203 } 1204 </script> 1205 1206 <script type="application/ld+json"> 1207 { 1208 "context": "https://schema.org", 1209 "@@type": "Corporation", 1210 "name": "RealMæglerne", 1211 "alternateName": "R&B Mægler A/S", 1212 "url": "https://www.realmaeglerne.dk", 1213 "logo": "https://www.realmaeglerne.dk/Files/Images/RealM_Logo_NY_MBlaa_RGB.png", 1214 "contactPoint": { 1215 "type": "ContactPoint", 1216 "telephone": "+4570237153", 1217 "contactType": "sales", 1218 "areaServed": "DK", 1219 "availableLanguage": "Danish" 1220 }, 1221 "sameAs": [ 1222 "https://www.facebook.com/realmaeglerne/", 1223 "https://www.linkedin.com/company/realmæglerne/", 1224 "https://www.youtube.com/channel/UCLHYWIUcNtFitvSsbBJnI3g", 1225 "https://www.realmaeglerne.dk/" 1226 ] 1227 } 1228 </script> 1229 @RenderSnippet("StructuredData") 1230 @*RICH SNIPPETS END*@ 1231 1232 @*FONT AWESOME*@ 1233 @{ 1234 <link rel="stylesheet" href="@(TemplateUrl)assets/fontawesome/css/all.css" async /> 1235 <link rel="stylesheet" href="@mainCSS" async /> 1236 <link rel="icon" type="image/ico" href="@(TemplateUrl)assets/images/favicons/favicon-real.ico?v=1"> 1237 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-16x16.png" sizes="16x16"> 1238 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-32x32.png" sizes="32x32"> 1239 <link rel="icon" type="image/png" href="@(TemplateUrl)assets/images/favicons/favicon-real-96x96.png" sizes="96x96"> 1240 <meta name="google-site-verification" content="hsV-j5ENQp9iR1Kpd6h9uYGqfD6YqOE5zg-jsWjRPOg" /> 1241 } 1242 <!-- Cookie Saver Preload --> 1243 <script> 1244 (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]); 1245 </script> 1246 <!-- End Cookie Saver --> 1247 1248 @if (!string.IsNullOrEmpty(settings_AntiFlicker_ID.ToString())) 1249 { 1250 <!-- Anti-flicker snippet --> 1251 <style> 1252 .async-hide { 1253 opacity: 0 !important 1254 } 1255 </style> 1256 <script> 1257 (function (a, s, y, n, c, h, i, d, e) { 1258 s.className += ' ' + y; h.start = 1 * new Date; 1259 h.end = i = function () { s.className = s.className.replace(RegExp(' ?' + y), '') }; 1260 (a[n] = a[n] || []).hide = h; setTimeout(function () { i(); h.end = null }, c); h.timeout = c; 1261 })(window, document.documentElement, 'async-hide', 'dataLayer', 4000, 1262 { '@settings_Google_Tag_Manager_ID': true });</script> 1263 1264 } 1265 1266 @if (isBrokerPage && !String.IsNullOrEmpty(callTrackingId)) 1267 { 1268 <script type="text/javascript" src="https://call.call-tracking.dk/getJavascript?custid=@callTrackingId"></script> 1269 } 1270 1271 @if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID.ToString())) 1272 { 1273 <!-- Datalaget --> 1274 <script> 1275 window.dataLayer = window.dataLayer || []; 1276 </script> 1277 1278 <!-- Andet --> 1279 <script> 1280 window.dataLayer.push({ 1281 'division': '@(isErhverv ? "b2b" : "b2c")', // 'b2c', 'b2b', 'project' ... 1282 }); 1283 </script> 1284 1285 @RenderSnippet("GtmDatalayer") 1286 1287 <!-- Google Tag Manager --> 1288 <script> 1289 (function (w, d, s, l, i) { 1290 w[l] = w[l] || []; w[l].push({ 1291 'gtm.start': 1292 new Date().getTime(), event: 'gtm.js' 1293 }); var f = d.getElementsByTagName(s)[0], 1294 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 1295 'https://frap.realmaeglerne.dk/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 1296 })(window, document, 'script', 'dataLayer', '@Converter.ToString(settings_Google_Tag_Manager_ID)'); 1297 </script> 1298 } 1299 1300 @if (!string.IsNullOrEmpty(settings_Leadhub_Pixel_ID.ToString())) 1301 { 1302 <!-- Begin Leadhub Pixel Code --> 1303 <script> 1304 (function(w,d,x,n,u,t,f,s,o){ 1305 f='LHInsights';w[n]=w[f]=w[f]||function(n,d){ 1306 (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) 1307 })(window,document, 'script', 'lhi', '//www.lhinsights.com/agent.js', '@settings_Leadhub_Pixel_ID'); 1308 lhi('pageview'); 1309 </script> 1310 <!-- End Leadhub Pixel Code --> 1311 } 1312 1313 <script> 1314 // Global namespace used for fetching API feeds from DW 1315 var RMAPI = (RMAPI) ? RMAPI : {}; 1316 var ApiPreFix = "/Default.aspx?ID="; 1317 RMAPI.BoligCountFeed = ApiPreFix + "@settings_BoligCountFeed"; 1318 RMAPI.BoligListFeed = ApiPreFix + "@settings_BoligListFeed" + "&refpageid=@Pageview.Page.ID"; 1319 RMAPI.BoligListFeedErhverv = "@settings_BoligListFeedErhverv"; 1320 RMAPI.BoligListFeedMaegler = ApiPreFix + "@settings_BoligListFeedMaegler" + "&refpageid=@Pageview.Page.ID"; 1321 RMAPI.BoligSearchFeed = ApiPreFix + "@settings_BoligSearchFeed"; 1322 RMAPI.BoligMapFeed = ApiPreFix + "@settings_BoligMapFeed"; 1323 RMAPI.Boligagent = "@settings_Boligagent"; 1324 RMAPI.IsErhverv = @isErhverv.ToString().ToLower(); 1325 RMAPI.ProductGroupFilter = "@productGroupFilter"; 1326 RMAPI.ButikId = "@butikId"; 1327 RMAPI.Boligvisning = false; 1328 RMAPI.RefPageId = "@Pageview.Page.ID"; 1329 RMAPI.Template = "@template"; 1330 RMAPI.SliderSettings = @JsonConvert.SerializeObject(Settings.Site); 1331 RMAPI.AdvisorSearchFeed = "@settings_AdvisorSearchFeed"; 1332 RMAPI.LoadingIcon = "@loadingIcon"; 1333 RMAPI.MarkerColor = "@markerColor"; 1334 RMAPI.IsBoligOne = "false"; 1335 RMAPI.mapMarkerUrl = "@mapMarkerUrl"; 1336 RMAPI.settings_ForgotPwPage = "@settings_ForgotPwPage"; 1337 </script> 1338 1339 @if (!string.IsNullOrEmpty(settings_Facebook_App_ID.ToString())) 1340 { 1341 <!-- Facebook Pixel Code --> 1342 <script> 1343 !function (f, b, e, v, n, t, s) { 1344 if (f.fbq) return; n = f.fbq = function () { 1345 n.callMethod ? 1346 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 1347 }; 1348 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; 1349 n.queue = []; t = b.createElement(e); t.async = !0; 1350 t.src = v; s = b.getElementsByTagName(e)[0]; 1351 s.parentNode.insertBefore(t, s) 1352 }(window, document, 'script', 1353 'https://connect.facebook.net/en_US/fbevents.js'); 1354 fbq('init', '@settings_Facebook_App_ID'); 1355 fbq('track', 'PageView'); 1356 </script> 1357 <noscript> 1358 <img height="1" width="1" src="https://www.facebook.com/tr?id=@settings_Facebook_App_ID&ev=PageView&noscript=1" /> 1359 </noscript> 1360 <!-- End Facebook Pixel Code --> 1361 } 1362 1363 <script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=5d68cfaf5fea9f001288d9ac&product=inline-share-buttons' async='async'></script> 1364 1365 </head> 1366 1367 <body class="@template@bodyClass theme-@Pageview.Page.ItemType.ToLower()" data-spforgotpwtemplate="@forgotPwTemplate" data-spforgotpwsender="@forgotPwSender" data-spforgotpwsubject="@forgotPwSubject" data-spsalesassesmentid="@salesAssessmentPageId"> 1368 @if (!string.IsNullOrEmpty(settings_Google_Tag_Manager_ID_BoligOne.ToString())) 1369 { 1370 <!-- Google Tag Manager (noscript) --> 1371 <noscript> 1372 <iframe src="https://www.googletagmanager.com/ns.html?id=@settings_Google_Tag_Manager_ID_BoligOne.ToString()" 1373 height="0" width="0" style="display:none;visibility:hidden"></iframe> 1374 </noscript> 1375 <!-- End Google Tag Manager (noscript) --> 1376 } 1377 1378 @if (Pageview.Page.ItemType == "AgentPage") 1379 { 1380 var agentUserGroup = GetValue("Real:Broker") as Dynamicweb.Security.UserManagement.UserGroup; 1381 var agentTitle = agentUserGroup.CompanyName.IsNotNullOrEmpty() ? agentUserGroup.CompanyName : agentUserGroup.Name; 1382 1383 <div class="header__container container"> 1384 <div class="header__logo"> 1385 <a href="/" title=""> 1386 <img src="@(logoUrl)" alt="" /> 1387 </a> 1388 </div> 1389 <div class="header__title"> 1390 @foreach (var line in agentTitle.Split(new[] { ' ' }, 2, StringSplitOptions.None)) 1391 { 1392 <span>@line</span> 1393 } 1394 </div> 1395 <div class="header__search d-lg-none js-mainsearch"> 1396 @Translate("Søg bolig") 1397 </div> 1398 <div class="header__navigation"> 1399 <div class="header__navigation-nav menu-slide d-none d-lg-block"> 1400 @Navigation.RenderNavigation("Navigation/AgentNavigation.cshtml", new NavigationSettings { StartLevel = 1, StopLevel = 1, RootAreaId = Pageview.Area.ID }) 1401 </div> 1402 <div class="header__navigation-icon menu-slide"> 1403 @Translate("Menu") 1404 </div> 1405 </div> 1406 </div> 1407 } 1408 else 1409 { 1410 <div class="header logo"> 1411 <div class="logo"> 1412 <a href="/"> 1413 <img src="@logoUrl" alt='RealMæglerne' /> 1414 </a> 1415 </div> 1416 </div> 1417 <div class="header shortcuts"> 1418 <div class="header-shortcuts float-right"> 1419 @if (Pageview.User is object) 1420 { 1421 <a href='javascript:panelLogin()' class="login extra d-flex align-items-center float-left border-right"> 1422 <i class="fa fa-user-circle" aria-hidden="true"></i><span class="hidden d-md-block">@Translate("Smartpage:Shortcuts.MinProfil", "Min profil") @*@userName*@</span> 1423 </a> 1424 } 1425 else 1426 { 1427 <a href='javascript:panelLogin()' class="login d-flex align-items-center float-left border-right"> 1428 <i class="fa fa-user-circle" aria-hidden="true"></i><span class="login-text hidden d-md-block"> @Translate("Smartpage:Shortcuts.Login", "Login")</span> 1429 </a> 1430 } 1431 <a href='' class="search-menu d-flex align-items-center float-left border-right js-mainsearch @searchClass"> 1432 <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> 1433 </a> 1434 <div class="menu-slide d-flex align-items-center"> 1435 <b></b> 1436 <span class="menu-text">Menu</span> 1437 </div> 1438 </div> 1439 </div> 1440 } 1441 1442 <div class="search-modal"> 1443 1444 @if (Converter.ToString(Pageview.Area.Item["Type"]) == "real") 1445 { 1446 <div class="main-search-form"> 1447 <i class="fal fa-times float-right fa-2x js-close-search close-search"></i> 1448 <div class="row mb-3 align-items-center"> 1449 <div class="col-xs-12 col-md-3 border-right"> 1450 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3> 1451 </div> 1452 <div class="col-xs-12 col-md-9 home-count d-none d-md-block"> 1453 <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> 1454 1455 </div> 1456 </div> 1457 1458 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET"> 1459 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" /> 1460 <div class="row form-wrapper no-gutters"> 1461 1462 <div class="col-xs-12 col-md-5 col-searchbar"> 1463 <div class="searchbar"> 1464 <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)" /> 1465 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeFrom)" /> 1466 <input type="hidden" id="zipcodeto" name="zipcodeto" value="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(queryZipCodeTo)" /> 1467 </div> 1468 </div> 1469 <div class="col-xs-12 col-md-5"> 1470 <div class="row no-gutters"> 1471 <div class="col-xs-12 col-md-6 input-col"> 1472 <div class="dropdown"> 1473 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 1474 @Translate("Smartpage:Search.Boligtype", "Boligtype") 1475 </button> 1476 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype"> 1477 <ul class="bolig-dropdown list-unstyled"> 1478 @{ 1479 RenderBoligtypeCheckboxesDropdown(); 1480 } 1481 </ul> 1482 <span class="border-fat"></span> 1483 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 1484 </div> 1485 </div> 1486 </div> 1487 <div class="col-xs-12 col-md-6 input-col"> 1488 <div class="dropdown"> 1489 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 1490 @Translate("Smartpage:Search.Pris", "Pris") 1491 </button> 1492 <div class="dropdown-menu box-shadow dropdown-price js-dropdown-price" aria-labelledby="Pris"> 1493 <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"] : "")' /> 1494 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10"> 1495 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option> 1496 @for (var i = 0; i <= 10000000; i += 100000) 1497 { 1498 if (i == 10000000) 1499 { 1500 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option> 1501 } 1502 else 1503 { 1504 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option> 1505 } 1506 } 1507 </select> 1508 1509 <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"] : "")' /> 1510 <select class="form-control js-pricemax-frontpage-select js-input-max-select"> 1511 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option> 1512 @for (var i = 0; i <= 10000000; i += 100000) 1513 { 1514 if (i == 10000000) 1515 { 1516 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option> 1517 } 1518 else 1519 { 1520 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option> 1521 } 1522 } 1523 </select> 1524 </div> 1525 </div> 1526 </div> 1527 </div> 1528 </div> 1529 <div class="col-xs-12 col-md-2 d-none d-md-block"> 1530 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 1531 </div> 1532 </div> 1533 1534 <div class="row moresearch-btn no-gutters"> 1535 <div class="col-sm-12"> 1536 <div class="row align-items-center no-gutters"> 1537 <div class="col-12 col-md-4"> 1538 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch"> 1539 <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> 1540 </button> 1541 </div> 1542 <div class="col-6 col-md-2 mb-xs-4"> 1543 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a> 1544 </div> 1545 </div> 1546 1547 <div class="collapse" id="moreSearch-master"> 1548 1549 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4> 1550 <div class="row align-items-end mb-30"> 1551 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"> 1552 <div class="filter-container row"> 1553 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label> 1554 <div class="col-6 pr-sm-0 pr-2"> 1555 <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"] : "")' /> 1556 <select class="form-control js-boligarealmin-frontpage-select js-count"> 1557 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option> 1558 @for (var i = 0; i <= 300; i += 10) 1559 { 1560 if (i == 300) 1561 { 1562 <option>@i+</option> 1563 } 1564 else 1565 { 1566 <option>@i</option> 1567 } 1568 } 1569 </select> 1570 1571 </div> 1572 <div class="col-6 pl-sm-0 pl-2"> 1573 <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"] : "")' /> 1574 <select class="form-control js-boligarealmax-frontpage-select js-count"> 1575 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option> 1576 @for (var i = 0; i <= 300; i += 10) 1577 { 1578 if (i == 300) 1579 { 1580 <option>@i+</option> 1581 } 1582 else 1583 { 1584 <option>@i</option> 1585 } 1586 } 1587 </select> 1588 1589 </div> 1590 </div> 1591 </div> 1592 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"> 1593 <div class="filter-container row"> 1594 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label> 1595 <div class="col-6 pr-sm-0 pr-2"> 1596 <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"] : "")' /> 1597 <select class="form-control js-grundarealmin-frontpage-select js-count"> 1598 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option> 1599 @for (var i = 0; i <= 10000; i += 100) 1600 { 1601 if (i == 10000) 1602 { 1603 <option>@i+</option> 1604 } 1605 else 1606 { 1607 <option>@i</option> 1608 } 1609 } 1610 </select> 1611 </div> 1612 <div class="col-6 pl-sm-0 pl-2"> 1613 <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"] : "")' /> 1614 <select class="form-control js-grundarealmax-frontpage-select js-count"> 1615 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option> 1616 @for (var i = 0; i <= 10000; i += 100) 1617 { 1618 if (i == 10000) 1619 { 1620 <option>@i+</option> 1621 } 1622 else 1623 { 1624 <option>@i</option> 1625 } 1626 } 1627 </select> 1628 </div> 1629 </div> 1630 </div> 1631 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"> 1632 <div class="filter-container row"> 1633 <label class="d-block col-12">Antal rum</label> 1634 <div class="col-6 pr-sm-0 pr-2"> 1635 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count"> 1636 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option> 1637 @{ 1638 RenderSelectValue("1", "1", "roomsmin"); 1639 RenderSelectValue("2", "2", "roomsmin"); 1640 RenderSelectValue("3", "3", "roomsmin"); 1641 RenderSelectValue("4", "4", "roomsmin"); 1642 RenderSelectValue("5+", "5", "roomsmin"); 1643 } 1644 </select> 1645 </div> 1646 <div class="col-6 pl-sm-0 pl-2"> 1647 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count"> 1648 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option> 1649 @{ 1650 RenderSelectValue("1", "1", "roomsmax"); 1651 RenderSelectValue("2", "2", "roomsmax"); 1652 RenderSelectValue("3", "3", "roomsmax"); 1653 RenderSelectValue("4", "4", "roomsmax"); 1654 RenderSelectValue(Translate("Smartpage:Rooms.5", "5"), "5", "roomsmax"); 1655 } 1656 </select> 1657 </div> 1658 </div> 1659 </div> 1660 <div class="col-12 col-sm-6 col-lg-3 mb-3 mb-lg-0"> 1661 <div class="row"> 1662 <div class="col-12 pr-2"> 1663 <div class="filter-container"> 1664 <label class="d-block">Energimærke</label> 1665 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count"> 1666 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Vælg", "Vælg")</option> 1667 <option value="01">G</option> 1668 <option value="02">F</option> 1669 <option value="03">E</option> 1670 <option value="04">D</option> 1671 <option value="05">C</option> 1672 <option value="06">B</option> 1673 <option value="07">A</option> 1674 <option value="08">A2010</option> 1675 <option value="09">A2015</option> 1676 <option value="10">A2020+</option> 1677 </select> 1678 </div> 1679 </div> 1680 </div> 1681 </div> 1682 <div class="col-12 col-sm-6 col-lg-3 mt-3"> 1683 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4> 1684 <div class="filter-container row"> 1685 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label> 1686 <div class="col-6 pr-sm-0 pr-2"> 1687 <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"] : "")' /> 1688 <select class="form-control js-subsidymin-frontpage-select js-count"> 1689 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option> 1690 @for (var i = 0; i <= 25000; i += 1250) 1691 { 1692 if (i == 25000) 1693 { 1694 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option> 1695 } 1696 else 1697 { 1698 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option> 1699 } 1700 } 1701 </select> 1702 </div> 1703 <div class="col-6 pl-sm-0 pl-2"> 1704 <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"] : "")' /> 1705 <select class="form-control js-subsidymax-frontpage-select js-count"> 1706 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option> 1707 @for (var i = 0; i <= 25000; i += 1250) 1708 { 1709 if (i == 25000) 1710 { 1711 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option> 1712 } 1713 else 1714 { 1715 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option> 1716 } 1717 } 1718 </select> 1719 </div> 1720 </div> 1721 </div> 1722 <div class="col-12 col-sm-6 col-lg-4 offset-lg-5 mt-3 mt-sm-0"> 1723 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button> 1724 </div> 1725 </div> 1726 </div> 1727 </div> 1728 </div> 1729 <div class="row d-block d-md-none form-wrapper no-gutters"> 1730 <div class="col-xs-12 col-md-2"> 1731 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 1732 </div> 1733 </div> 1734 1735 1736 </form> 1737 </div> 1738 } 1739 else 1740 { 1741 <div class="main-search-form center"> 1742 <i class="fal fa-times float-right fa-2x js-close-search"></i> 1743 <div class="row mb-3 align-items-center"> 1744 <div class="col-xs-12 col-md-5 border-right"> 1745 <h3>@Translate("Smartpage:Search.Søg bolig", "Søg bolig")</h3> 1746 </div> 1747 <div class="col-xs-12 col-md-7 home-count d-none d-md-block"> 1748 <span class="search-count" id="searchCounterMain">0</span> <span>@Translate("Smartpage:Search.BoligerTilSalg", "Boliger til salg")</span> 1749 </div> 1750 </div> 1751 1752 <form id="main-search" class="searchbar-wrapper" action="/Default.aspx" method="GET"> 1753 <input type="hidden" name="ID" value='@searchPageId' id="searchPageId" disabled="disabled" /> 1754 <div class="row form-wrapper no-gutters"> 1755 1756 <div class="col-12 mb-10"> 1757 <div class="searchbar"> 1758 <input type="text" name="@querySearchNameAttr" id="searchfield" class="search-input" placeholder="Postnummer, by, vej eller sagsnummer" tabindex="1" value='@querySearch' /> 1759 <input type="hidden" id="zipcodefrom" name="zipcodefrom" value='@queryZipCodeFrom' /> 1760 <input type="hidden" id="zipcodeto" name="zipcodeto" value='@queryZipCodeTo' /> 1761 </div> 1762 </div> 1763 <div class="col-xs-12 col-md-8"> 1764 <div class="row no-gutters"> 1765 <div class="col-xs-12 col-md-6 input-col"> 1766 <div class="dropdown"> 1767 <button class="btn btn-dropdown dropdown-toggle reverse js-count" type="button" id="Boligtype" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 1768 @Translate("Smartpage:Search.Boligtype", "Boligtype") 1769 </button> 1770 <div class="dropdown-menu box-shadow bolig-dropdown-container" aria-labelledby="Boligtype"> 1771 <ul class="bolig-dropdown list-unstyled"> 1772 @{ 1773 RenderBoligtypeCheckboxesDropdown(); 1774 } 1775 </ul> 1776 <span class="border-fat"></span> 1777 <button class="btn btn-primary js-close-dropdown">@Translate("Smartpage:Search.Anvend", "Anvend")</button> 1778 </div> 1779 1780 </div> 1781 1782 </div> 1783 <div class="col-xs-12 col-md-6 input-col"> 1784 <div class="dropdown"> 1785 <button class="btn btn-dropdown dropdown-toggle reverse" type="button" id="Pris" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 1786 @Translate("Smartpage:Search.Pris", "Pris") 1787 </button> 1788 <div class="dropdown-menu box-shadow dropdown-price" aria-labelledby="Pris"> 1789 <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")' /> 1790 <select class="form-control js-pricemin-frontpage-select js-input-min-select mb-10"> 1791 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinPris", "Min. pris")</option> 1792 @for (var i = 0; i <= 10000000; i += 100000) 1793 { 1794 if (i == 10000000) 1795 { 1796 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option> 1797 } 1798 else 1799 { 1800 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option> 1801 } 1802 } 1803 </select> 1804 1805 <input type="text" name="pricemax" class="form-control js-auto-thousand js-pricemax-frontpage-input" placeholder='@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")' /> 1806 <select class="form-control js-pricemax-frontpage-select js-input-max-select"> 1807 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxPris", "Max. pris")</option> 1808 @for (var i = 0; i <= 10000000; i += 100000) 1809 { 1810 if (i == 10000000) 1811 { 1812 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")+'>@Convert.ToInt32(i).ToString("N0")+</option> 1813 } 1814 else 1815 { 1816 <option value="@i" data-value='@Convert.ToInt32(i).ToString("N0")'>@Convert.ToInt32(i).ToString("N0")</option> 1817 } 1818 } 1819 </select> 1820 </div> 1821 </div> 1822 </div> 1823 </div> 1824 </div> 1825 <div class="col-xs-12 col-md-4 d-none d-md-block"> 1826 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.Søg", "Søg")</button> 1827 </div> 1828 </div> 1829 1830 <div class="row moresearch-btn no-gutters"> 1831 <div class="col-sm-12"> 1832 <div class="row align-items-center no-gutters"> 1833 <div class="col-12 col-md-5"> 1834 <button class="btn-blank js-search-collapse" type="button" data-toggle="collapse" data-target="#moreSearch-master" aria-expanded="false" aria-controls="moreSearch-master"> 1835 <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> 1836 </button> 1837 </div> 1838 <div class="col-6 col-md-3 mb-xs-4"> 1839 <a class="js-reset reset-btn white">@Translate("Smartpage:Search.NulstilValg", "Nulstil valg")</a> 1840 </div> 1841 <div class="col-6 col-md-4 mb-xs-4"> 1842 <div class="parent-purchases"> 1843 <label class="checkbox-container white"> 1844 @Translate("Smartpage:Search.Forældrekøbegnet", "Forældrekøbegnet") 1845 <input type="checkbox" name="foraeldrekoebegnet" value="true" class="js-input-check"> 1846 <span class="checkmark grey"></span> 1847 </label> 1848 </div> 1849 </div> 1850 </div> 1851 1852 <div class="collapse" id="moreSearch-master"> 1853 1854 <h4 class="mt-20"><b>@Translate("Smartpage:Search.Bolig", "Bolig")</b></h4> 1855 <div class="row align-items-end mb-30"> 1856 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"> 1857 <div class="filter-container row"> 1858 <label class="d-block col-12">@Translate("Smartpage:Search.Boligareal", "Boligareal")</label> 1859 <div class="col-6 pr-sm-0 pr-2"> 1860 <input type="text" name="boligarealmin" id="boligarealmin" class="form-control js-boligarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' /> 1861 <select class="form-control js-boligarealmin-frontpage-select js-count"> 1862 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option> 1863 @for (var i = 0; i <= 300; i += 10) 1864 { 1865 if (i == 300) 1866 { 1867 <option>@i+</option> 1868 } 1869 else 1870 { 1871 <option>@i</option> 1872 } 1873 } 1874 </select> 1875 </div> 1876 <div class="col-6 pl-sm-0 pl-2"> 1877 <input type="text" name="boligarealmax" id="boligarealmax" class="form-control js-boligarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' /> 1878 <select class="form-control js-boligarealmax-frontpage-select js-count"> 1879 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option> 1880 @for (var i = 0; i <= 300; i += 10) 1881 { 1882 if (i == 300) 1883 { 1884 <option>@i+</option> 1885 } 1886 else 1887 { 1888 <option>@i</option> 1889 } 1890 } 1891 </select> 1892 </div> 1893 </div> 1894 </div> 1895 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"> 1896 <div class="filter-container row"> 1897 <label class="d-block col-12">@Translate("Smartpage:Search.Grundareal", "Grundareal")</label> 1898 <div class="col-6 pr-sm-0 pr-2"> 1899 <input type="text" name="grundarealmin" id="grundarealmin" class="form-control js-grundarealmin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")' /> 1900 <select class="form-control js-grundarealmin-frontpage-select js-count"> 1901 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Minm2", "Min. m2")</option> 1902 @for (var i = 0; i <= 10000; i += 100) 1903 { 1904 if (i == 10000) 1905 { 1906 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option> 1907 } 1908 else 1909 { 1910 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option> 1911 } 1912 } 1913 </select> 1914 </div> 1915 <div class="col-6 pl-sm-0 pl-2"> 1916 <input type="text" name="grundarealmax" id="grundarealmax" class="form-control js-grundarealmax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")' /> 1917 <select class="form-control js-grundarealmax-frontpage-select"> 1918 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Maxm2", "Max. m2")</option> 1919 @for (var i = 0; i <= 10000; i += 100) 1920 { 1921 if (i == 10000) 1922 { 1923 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option> 1924 } 1925 else 1926 { 1927 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option> 1928 } 1929 } 1930 </select> 1931 </div> 1932 </div> 1933 </div> 1934 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"> 1935 <div class="filter-container row"> 1936 <label class="d-block col-12">Antal rum</label> 1937 1938 <div class="col-6 pr-sm-0 pr-2"> 1939 <select name="roomsmin" id="roomsmin" class="form-control reverse js-roomsmin-select js-count"> 1940 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Min", "Min")</option> 1941 <option value="1">1</option> 1942 <option value="2">2</option> 1943 <option value="3">3</option> 1944 <option value="4">4</option> 1945 <option value="5">5+</option> 1946 </select> 1947 </div> 1948 <div class="col-6 pl-sm-0 pl-2"> 1949 <select name="roomsmax" id="roomsmax" class="form-control reverse js-roomsmax-select js-count"> 1950 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.Max", "Max")</option> 1951 <option value="1">1</option> 1952 <option value="2">2</option> 1953 <option value="3">3</option> 1954 <option value="4">4</option> 1955 <option value="5">5+</option> 1956 </select> 1957 </div> 1958 </div> 1959 </div> 1960 <div class="col-12 col-sm-6 col-lg-6 mb-3 mb-lg-0"> 1961 <div class="row"> 1962 <div class="col-12 pr-2"> 1963 <div class="filter-container"> 1964 <label class="d-block">Energimærke</label> 1965 <select name="energylabel" id="energylabel" class="form-control reverse js-energylabel-select js-count"> 1966 <option disabled selected="selected">@Translate("Smartpage:Search.Vælg", "Vælg")</option> 1967 <option value="01">G</option> 1968 <option value="02">F</option> 1969 <option value="03">E</option> 1970 <option value="04">D</option> 1971 <option value="05">C</option> 1972 <option value="06">B</option> 1973 <option value="07">A</option> 1974 <option value="08">A2010</option> 1975 <option value="09">A2015</option> 1976 <option value="10">A2020+</option> 1977 </select> 1978 </div> 1979 </div> 1980 </div> 1981 </div> 1982 <div class="col-12 col-sm-6 col-lg-6 mt-3"> 1983 <h4 class=""><b>@Translate("Smartpage:Search.Økonomi", "Økonomi")</b></h4> 1984 <div class="filter-container row"> 1985 <label class="d-block col-12">@Translate("Smartpage:Search.Ejerudgift/boligydelse pr. måned", "Ejerudgift/boligydelse pr. måned")</label> 1986 <div class="col-6 pr-sm-0 pr-2"> 1987 <input type="text" name="subsidymin" id="subsidymin" class="form-control js-subsidymin-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Min", "Min")' /> 1988 <select class="form-control js-subsidymin-frontpage-select js-count"> 1989 <option selected="selected" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MinDKK", "Min. DKK")</option> 1990 @for (var i = 0; i <= 25000; i += 1250) 1991 { 1992 if (i == 25000) 1993 { 1994 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option> 1995 } 1996 else 1997 { 1998 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option> 1999 } 2000 } 2001 </select> 2002 </div> 2003 <div class="col-6 pl-sm-0 pl-2"> 2004 <input type="text" name="subsidymax" id="subsidymax" class="form-control js-subsidymax-frontpage-input js-count" placeholder='@Translate("Smartpage:Search.Placeholder.Max", "Max")' /> 2005 <select class="form-control js-subsidymax-frontpage-select js-count"> 2006 <option selected="true" disabled="disabled">@Translate("Smartpage:Search.Placeholder.MaxDKK", "Max. DKK")</option> 2007 @for (var i = 0; i <= 25000; i += 1250) 2008 { 2009 if (i == 25000) 2010 { 2011 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")+</option> 2012 } 2013 else 2014 { 2015 <option value="@Convert.ToInt32(i)">@Convert.ToInt32(i).ToString("N0")</option> 2016 } 2017 } 2018 </select> 2019 </div> 2020 </div> 2021 </div> 2022 <div class="col-12 col-sm-6 col-lg-6 mt-3 mt-sm-0"> 2023 <button type="submit" class="btn btn-block btn-search"><i class="fa fa-search"></i> @Translate("Smartpage:Search.AnvendFiltre", "Anvend filtre")</button> 2024 </div> 2025 </div> 2026 </div> 2027 </div> 2028 </div> 2029 <div class="row d-block d-md-none form-wrapper no-gutters"> 2030 <div class="col-xs-12 col-md-2"> 2031 <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> 2032 </div> 2033 </div> 2034 2035 2036 </form> 2037 </div> 2038 } 2039 2040 </div> 2041 @{ 2042 RenderSlideMenu(false, false, Converter.ToString(settings_Maeglersogning)); 2043 } 2044 2045 @if (isBrokerPage && Pageview.Page.ItemType != "AgentPage") 2046 { 2047 <section class="maegler-navbar"> 2048 @RenderNavigation(new 2049 { 2050 id = "navbar-main", 2051 cssclass = "dwnavigation", 2052 template = "ul_li.xslt", 2053 StartLevel = 1, 2054 EndLevel = 1 2055 }) 2056 </section> 2057 } 2058 2059 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2060 @using Custom.Integration.Brokers; 2061 @using Newtonsoft.Json; 2062 @using RealMaeglerne.Dynamicweb; 2063 @using RealMaeglerne.Dynamicweb.Models; 2064 @using System.Xml.Linq; 2065 @using Dynamicweb.Core; 2066 @using System.Linq; 2067 @using Dynamicweb; 2068 2069 2070 @GetValue("Title(Forside)") 2071 @GetValue("Description(Forsideskabelon til Mæglersider)") 2072 @{ 2073 string siteUrl = Utils.GetBaseUrl(true); 2074 var Broker = GetValue("Real:Broker") as Dynamicweb.Security.UserManagement.UserGroup; 2075 string brokerName = Broker.Name; 2076 if (!string.IsNullOrEmpty(Broker.CompanyName)) 2077 { 2078 brokerName = Broker.CompanyName; 2079 } 2080 string brokerPhone = RealMaeglerne.Library.Helper.FormatPhoneNumber(Broker.Telephone); 2081 string brokerEmail = Broker.Item().GetString("Email"); 2082 string brokerID = Broker.ID.ToString(); 2083 string brokerRating = ""; 2084 string brokerImage = Broker.GeolocationIcon.ToString(); 2085 string brokerUrl = siteUrl + GetString("DwAreaName"); 2086 string brokerTitle = GetString("Item.SPTitleForDesc"); 2087 string brokerDesc = GetString("Item.Beskrivelse"); 2088 string teaserDesc = System.Text.RegularExpressions.Regex.Replace(brokerDesc, "<[^>]*>", string.Empty); 2089 2090 if (teaserDesc.Length > 300) 2091 { 2092 teaserDesc = teaserDesc.Substring(0, 300) + "..."; 2093 } 2094 if (!String.IsNullOrEmpty(Broker.Item().GetString("Rating"))) 2095 { 2096 brokerRating = Broker.Item().GetString("Rating"); 2097 } 2098 string brokerBadgeBesvarelser = ""; 2099 if (!String.IsNullOrEmpty(Broker.Item().GetString("BadgeBesvarelser"))) 2100 { 2101 brokerBadgeBesvarelser = Broker.Item().GetString("BadgeBesvarelser"); 2102 } 2103 2104 butikId = Broker.Item().GetString("CBMedlemsnummer"); 2105 primaryArea = Broker.Item().GetString("PrimaertOmraade"); 2106 2107 string brugerId = String.Empty; 2108 try 2109 { 2110 brugerId = Dynamicweb.Security.UserManagement.User.GetCurrentUserID().ToString(); 2111 } 2112 catch 2113 { 2114 // Ignore 2115 } 2116 2117 var Aabningstider = JsonConvert.DeserializeObject<ForretningsoplysningerAabningstider>(Broker.Item().GetString("AabningstiderJson")); 2118 2119 //Find EcomCatalog 2120 Dynamicweb.Content.ParagraphService paragraphService = new Dynamicweb.Content.ParagraphService(); 2121 2122 var paragraphs = paragraphService.GetParagraphsByPageId(Dynamicweb.Frontend.PageView.Current().ID); 2123 2124 bool hasEcomCatalog = false; 2125 int pageSize = 8; 2126 2127 foreach (var paragraph in paragraphs) 2128 { 2129 if (paragraph.ModuleSystemName == "eCom_Catalog" && paragraph.ShowParagraph) 2130 { 2131 hasEcomCatalog = true; 2132 2133 // 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 2134 var rootModuleSettingsElement = XElement.Parse(paragraph.ModuleSettings); 2135 var pageSizeElement = rootModuleSettingsElement.Element("PageSize"); 2136 if (pageSizeElement != null) 2137 { 2138 pageSize = Converter.ToInt32(rootModuleSettingsElement.Element("PageSize").Value); 2139 } 2140 } 2141 } 2142 } 2143 2144 @SnippetStart("OpenGraphTags") 2145 2146 <meta property="og:type" content="website" /> 2147 <meta property="og:url" content="@Dynamicweb.Core.Encoders.HtmlEncoder.HtmlAttributeEncode(Context.Current.Request.Url.AbsoluteUri)" /> 2148 <meta property="og:image" content="@brokerImage" /> 2149 <meta property="og:title" content="@brokerName" /> 2150 <meta property="og:description" content="@teaserDesc" /> 2151 2152 @SnippetEnd("OpenGraphTags") 2153 2154 @SnippetStart("GtmDatalayer") 2155 2156 <!-- GTM --> 2157 2158 <script> 2159 window.dataLayer.push({ 2160 'realEstateAgentId': '@Broker.Item().GetString("CBMedlemsnummer")', 2161 }); 2162 </script> 2163 2164 @SnippetEnd("GtmDatalayer") 2165 2166 @SnippetStart("JavaScriptBottom") 2167 2168 <script type="application/ld+json"> 2169 { 2170 "@@context":"http://schema.org", 2171 "@@type":"RealEstateAgent", 2172 "name":"@(brokerName)", 2173 "image":"@(brokerImage)", 2174 "url":"@(brokerUrl)", 2175 "address":{ 2176 "@@type":"PostalAddress", 2177 "addressCountry":"DK", 2178 "addressLocality":"@(Broker.City.ToString())", 2179 "postalCode":"@(Broker.ZipCode.ToString())", 2180 "streetAddress":"@(Broker.Address.ToString())" 2181 }, 2182 @if (!string.IsNullOrEmpty(brokerRating) 2183 && !string.IsNullOrEmpty(brokerBadgeBesvarelser) 2184 && Convert.ToDouble(brokerRating, System.Globalization.CultureInfo.InvariantCulture) >= 8.5) 2185 { 2186 <text>"aggregateRating":{ 2187 "@@type":"AggregateRating", 2188 "bestRating":10.0, 2189 "ratingValue":"@(brokerRating)", 2190 "reviewCount":@(brokerBadgeBesvarelser) 2191 },</text> 2192 } 2193 "email":"2600@mailreal.dk", 2194 "telephone":"+45 @(RealMaeglerne.Library.Helper.FormatPhoneNumber(Broker.Telephone))" 2195 } 2196 </script> 2197 2198 <script> 2199 var RMAPI = (RMAPI) ? RMAPI : {}; 2200 RMAPI.brokerImage = "@(brokerImage)"; 2201 RMAPI.CBMedlemsnummer = "@(Broker.Item().GetString("CBMedlemsnummer"))"; 2202 RMAPI.CompanyName = "@(Broker.CompanyName)"; 2203 RMAPI.AddressZip = "@(Broker.Address), @(Broker.ZipCode)"; 2204 RMAPI.Telephone = "@(Broker.Telephone)"; 2205 RMAPI.Email = "@(Broker.Item().GetString("Email"))"; 2206 RMAPI.GeolocationIcon = "@(Broker.GeolocationIcon.ToString())"; 2207 RMAPI.City = "@Broker.City"; 2208 RMAPI.ButikId = "@butikId"; 2209 </script> 2210 2211 <script type="text/javascript" src='/Files/Templates/Designs/rm/assets/dist/bundle.maegler.min.js'></script> 2212 2213 @SnippetEnd("JavaScriptBottom") 2214 2215 @if (!String.IsNullOrEmpty(Broker.GeolocationIcon.ToString())) 2216 { 2217 <section class="maegler-header" style="background-image: url('@brokerImage');"></section> 2218 } 2219 2220 @*ADD SESSION VALUE IF DP PARAMETER EXIST*@ 2221 @{ 2222 var request = Context.Current.Request.QueryString.GetValues(null); 2223 if (request != null) 2224 { 2225 foreach (string x in request) 2226 { 2227 if (request.Contains("dp")) 2228 { 2229 Context.Current.Session["DP"] = "dp "; 2230 } 2231 } 2232 } 2233 } 2234 2235 <section class="maegler-page"> 2236 <div class="container"> 2237 <div class="page"> 2238 <div class="content"> 2239 <div class="row"> 2240 <div class="col-xs-12 col-md-8 col-lg-9"> 2241 <p class="sp-paragraph-broker-style js-choose-broker-name-val">@brokerName</p> 2242 <div class="row"> 2243 <div class="col-xs-12 col-md-4"> 2244 <div class="row"> 2245 <div class="col-xs-12 col-sm-6 col-md-12"> 2246 <p> 2247 <span class="js-choose-broker-address-val">@Broker.Address<br></span> 2248 <span class="js-choose-broker-zip">@Broker.ZipCode @Broker.City<br></span> 2249 @if (!string.IsNullOrEmpty(brokerEmail)) 2250 { 2251 <text>Mail: <a href='mailto:@brokerEmail'>@brokerEmail</a><br></text> 2252 } 2253 @if (!string.IsNullOrEmpty(brokerPhone)) 2254 { 2255 <text>Tlf.: <a href="tel:@brokerPhone">@brokerPhone</a></text> 2256 } 2257 </p> 2258 </div> 2259 @if (!string.IsNullOrEmpty(brokerRating)) 2260 { 2261 <div class="col-xs-12 col-sm-6 col-md-12"> 2262 @if (Convert.ToDouble(brokerRating, System.Globalization.CultureInfo.InvariantCulture) >= 8.5) 2263 { 2264 if (!string.IsNullOrEmpty(Broker.Item().GetString("BadgeToken"))) 2265 { 2266 <iframe scrolling="no" frameborder="0" width="100%" src='https://maegler.boligsiden.dk/badge/index/@(Broker.Item().GetString("BadgeToken"))'></iframe> 2267 } 2268 } 2269 </div> 2270 } 2271 </div> 2272 </div> 2273 <div class="col-xs-12 col-md-8 col-lg-7"> 2274 <h1 class="sp-broker-title-style">@brokerTitle</h1> 2275 @brokerDesc 2276 </div> 2277 </div> 2278 </div> 2279 <div class="col-xs-12 col-md-4 col-lg-3"> 2280 @if (Aabningstider != null) 2281 { 2282 <h3>@Translate("Smartpage:Åbningstider", "Åbningstider")</h3> 2283 <table> 2284 <tr> 2285 <td>@Translate("Smartpage:Mandag", "Mandag")</td> 2286 <td align="right"><b>@Aabningstider.Mandag</b></td> 2287 </tr> 2288 <tr> 2289 <td>@Translate("Smartpage:Tirsdag", "Tirsdag")</td> 2290 <td align="right"><b>@Aabningstider.Tirsdag</b></td> 2291 </tr> 2292 <tr> 2293 <td>@Translate("Smartpage:Onsdag", "Onsdag")</td> 2294 <td align="right"><b>@Aabningstider.Onsdag</b></td> 2295 </tr> 2296 <tr> 2297 <td>@Translate("Smartpage:Torsdag", "Torsdag")</td> 2298 <td align="right"><b>@Aabningstider.Torsdag</b></td> 2299 </tr> 2300 <tr> 2301 <td>@Translate("Smartpage:Fredag", "Fredag")</td> 2302 <td align="right"><b>@Aabningstider.Fredag</b></td> 2303 </tr> 2304 @if (Aabningstider.Loerdag == Aabningstider.Soendag) 2305 { 2306 <tr> 2307 <td>@Translate("Smartpage:LødagSøndag", "Lørdag - søndag")</td> 2308 <td align="right"><b>@Aabningstider.Loerdag</b></td> 2309 </tr> 2310 } 2311 else 2312 { 2313 <tr> 2314 <td>@Translate("Smartpage:Lørdag", "Lørdag")</td> 2315 <td align="right"><b>@Aabningstider.Loerdag</b></td> 2316 </tr> 2317 <tr> 2318 <td>@Translate("Smartpage:Søndag", "Søndag")</td> 2319 <td align="right"><b>@Aabningstider.Soendag</b></td> 2320 </tr> 2321 } 2322 </table> 2323 } 2324 <br /> 2325 2326 @{ 2327 var dpmaegler = "" + Context.Current.Session["DP"] + "Mæglervisning" + ""; 2328 string appraisalBtnColor = GetString("Item.BestilGratisVurderingKnapFarve"); 2329 string greenAppraisalBtnColor = GetString("Item.BestilGroenVurderingFarve"); 2330 2331 <a class="btn btn-primary btn-block js-section-btn" style="background-color: @appraisalBtnColor" href="#bestilSalgsvurdering">@Translate("form-salgsvurdering-cta", "Bestil gratis salgsvurdering")</a> 2332 <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> 2333 } 2334 </div> 2335 </div> 2336 </div> 2337 </div> 2338 </div> 2339 </section> 2340 2341 <div id="bestilSalgsvurdering" class="salgsvurdering-container"> 2342 <div class="u-full-height"> 2343 <div class="grid bestil-salgsvurdering-item dw-mod"> 2344 <div class="grid__col- col-lg-12 col-sm-12 rhs"> 2345 <div class="salgsvurdering-form"> 2346 <div class="top-section"> 2347 <div class="header"> 2348 @Translate("Smartpage:Form.Salgsvurdering.Header", "Bestil vurdering") 2349 </div> 2350 <div class="description"> 2351 @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> 2352 </div> 2353 </div> 2354 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler"> 2355 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p> 2356 <div class="form-group-container"> 2357 <div class="form-group"> 2358 <input class="form-control js-autocomplete-city" type="hidden" readonly /> 2359 <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 /> 2360 <input type="hidden" class="js-postnummer-validation" /> 2361 <input type="hidden" class="form-control js-autocomplete-adresse" name="adresse" /> 2362 </div> 2363 2364 <div class="form-group mr-3 address"> 2365 <div class="autocomplete-container"> 2366 <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'/> 2367 </div> 2368 </div> 2369 2370 <div class="form-group mr-3"> 2371 <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")' /> 2372 </div> 2373 2374 <div class="form-group mr-3"> 2375 <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")' /> 2376 </div> 2377 2378 <div class="form-group mr-3"> 2379 <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")' /> 2380 </div> 2381 </div> 2382 <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"> 2383 <i class="icon fas fa-plus"></i><span class="text">@Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Tilføj kommentar til mægler")</span> 2384 </button> 2385 2386 <div class="collapse" id="salgsvurdering-collapse"> 2387 <div class="form-group"> 2388 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 2389 </div> 2390 </div> 2391 2392 2393 <div class="form-group mt-3 mb-2"> 2394 <div class="checkbox"> 2395 <label> 2396 <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")' /> 2397 <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> 2398 </label> 2399 </div> 2400 </div> 2401 <div class="form-group mb-0"> 2402 <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> 2403 </div> 2404 <input type="hidden" name="fn" value="bsv" /> 2405 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="SalgsvurderingBrokerPage" /> 2406 <input type="hidden" name="brugerId" value="" /> 2407 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 2408 <input type="hidden" id="boligvisning" name="boligvisning" value="" /> 2409 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="@butikId" /> 2410 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" /> 2411 <input type="hidden" name="ejendomstype" value="" /> 2412 <input type="hidden" name="salgspris" value="" /> 2413 <input type="hidden" name="employee" value="" /> 2414 <input type="hidden" name="modtager" value="" /> 2415 <input class="js-value-check" type="hidden" name="valueCheck" value="" /> 2416 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" /> 2417 </form> 2418 2419 </div> 2420 <div id="tak-salgsvurdering" class="salgsvurdering-confirmation" style="display:none;"> 2421 <div class="header"> 2422 @Translate("Smartpage:Form.Salgsvurdering.Confirmation.Header", "Tak for din interesse") 2423 </div> 2424 <div class="description"> 2425 @Translate("Smartpage:Form.Salgsvurdering.Confirmation.Description", "Du vil snarest blive kontaktet af en af vores medarbejdere.") 2426 </div> 2427 </div> 2428 </div> 2429 </div> 2430 </div> 2431 </div> 2432 2433 @* KAMPAGNEELEMENT *@ 2434 @if (GetBoolean("Real:Broker.Campaign.Exists")) 2435 { 2436 var type = GetString("Real:Broker.Campaign.Type"); 2437 string image = ""; 2438 if (!string.IsNullOrEmpty(GetString("Real:Broker.Campaign.Image"))) 2439 { 2440 if (type == "fullwidth") 2441 { 2442 image = "/Admin/Public/GetImage.ashx?Image=" + GetString("Real:Broker.Campaign.Image") + "&Width=1920&Height=640"; 2443 } 2444 else 2445 { 2446 image = "/Admin/Public/GetImage.ashx?Image=" + GetString("Real:Broker.Campaign.Image") + "&Width=960&Height=640"; 2447 } 2448 } 2449 string btnClass = "btn-primary"; 2450 string bgcolor = GetString("Real:Broker.Campaign.BackgroundColor"); 2451 string txtcolor = "#fff"; 2452 string title = GetString("Real:Broker.Campaign.Headline"); 2453 string desc = GetString("Real:Broker.Campaign.Text").Replace("&#60;h1", "&#60;h2").Replace("&#60;/h1", "&#60;/h2"); // Avoid multiple H1 tags on page 2454 string link = GetString("Real:Broker.Campaign.Link"); 2455 string linkText = GetString("Real:Broker.Campaign.ButtonText"); 2456 if (!string.IsNullOrEmpty(GetString("Real:Broker.Campaign.TextColor"))) 2457 { 2458 txtcolor = GetString("Real:Broker.Campaign.TextColor"); 2459 } 2460 if (!string.IsNullOrEmpty(GetString("Real:Broker.Campaign.ButtonType"))) 2461 { 2462 btnClass = GetString("Real:Broker.Campaign.ButtonType"); 2463 } 2464 2465 if (type == "fullwidth") 2466 { 2467 string ctaClass = "cta-fullwidth"; 2468 string cntClass = "col-xs-12 col-md-6 col-md-push-3"; 2469 var align = GetString("Real:Broker.Campaign.TextAlign"); 2470 2471 if (GetBoolean("Real:Broker.Campaign.BlueOverlay")) 2472 { 2473 ctaClass += " cta-overlay"; 2474 } 2475 if (align == "left") 2476 { 2477 cntClass = "col-xs-12 col-md-6"; 2478 } 2479 if (align == "right") 2480 { 2481 cntClass = "col-xs-12 col-md-6 col-md-push-6"; 2482 } 2483 <section class="cta @ctaClass" style="background-color:@bgcolor;color:@txtcolor;background-image:url('@image');"> 2484 <div class="container-fluid"> 2485 <div class="row"> 2486 <div class="cta-content"> 2487 @if (!string.IsNullOrEmpty(title)) 2488 { 2489 <h2>@title</h2> 2490 } 2491 @if (!string.IsNullOrEmpty(desc)) 2492 { 2493 <p>@desc</p> 2494 } 2495 @if (!string.IsNullOrEmpty(link) && !string.IsNullOrEmpty(linkText)) 2496 { 2497 <div class="text-center"> 2498 <br /> 2499 <a class="btn @btnClass" href='@link'>@linkText</a> 2500 </div> 2501 } 2502 </div> 2503 </div> 2504 </div> 2505 </section> 2506 } 2507 2508 if (type == "cta-left" || type == "cta-right") 2509 { 2510 string imgClass = "col-12 col-md-6 d-flex align-items-center"; 2511 string cntClass = "col-12 col-md-6 d-flex align-items-center"; 2512 if (type == "cta-right") 2513 { 2514 imgClass = "col-12 col-md-6 order-md-6 d-flex align-items-center"; 2515 cntClass = "col-12 col-md-6 d-flex align-items-center"; 2516 } 2517 <section class="cta"> 2518 <div class="container-fluid"> 2519 <div class="row"> 2520 2521 <div class="cta-image @imgClass" style="background-image:url('@image');"> 2522 2523 </div> 2524 <div class="@cntClass" style="background-color:@bgcolor;color:@txtcolor;"> 2525 <div class="cta-content"> 2526 @if (!string.IsNullOrEmpty(title)) 2527 { 2528 <h2>@title</h2> 2529 } 2530 @if (!string.IsNullOrEmpty(desc)) 2531 { 2532 <p>@desc</p> 2533 } 2534 @if (!string.IsNullOrEmpty(link) && !string.IsNullOrEmpty(linkText)) 2535 { 2536 <div class="text-center"> 2537 <br /> 2538 <a class="btn @btnClass" href='@link'>@linkText</a> 2539 </div> 2540 } 2541 </div> 2542 </div> 2543 </div> 2544 </div> 2545 </section> 2546 } 2547 2548 if (type == "slim") 2549 { 2550 <section class="bar-text" style="background-color:@bgcolor;color:@txtcolor;"> 2551 <div class="container"> 2552 <div class="row"> 2553 <div class="col-12"> 2554 <div class="bar-text-wrap"> 2555 @if (!string.IsNullOrEmpty(title)) 2556 { 2557 <span class="bar-text-title">@title</span> 2558 } 2559 @if (!string.IsNullOrEmpty(link) && !string.IsNullOrEmpty(linkText)) 2560 { 2561 <div class="bar-text-links"> 2562 <a class="btn @btnClass" href='@link'>@linkText</a> 2563 </div> 2564 } 2565 </div> 2566 </div> 2567 </div> 2568 </div> 2569 </section> 2570 } 2571 } 2572 2573 @if (GetLoop("Real:Broker.Employees").Count > 0) 2574 { 2575 <section> 2576 <div class="container"> 2577 <h2 class="text-center mt-4">@Translate("Smartpage:BrokerPage.Employees", "Medarbejdere")</h2> 2578 <div class="broker-list row"> 2579 @{ 2580 foreach (var employee in GetLoop("Real:Broker.Employees")) 2581 { 2582 string employeePhone = RealMaeglerne.Library.Helper.FormatPhoneNumber(employee.GetString("PhoneMobile")); 2583 string employeeEmail = RealMaeglerne.Library.Helper.ExtractMaskedEmail(employee.GetString("Email")); 2584 string employeeImage = ""; 2585 string employeeClass = "na"; 2586 2587 employeeImage = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 2588 2589 bool CanSelect = employee.GetBoolean("MyEmployee"); 2590 if (!string.IsNullOrEmpty(employee.GetString("Image"))) 2591 { 2592 employeeImage = employee.GetString("Image"); 2593 employeeClass = ""; 2594 } 2595 if (!string.IsNullOrEmpty(employee.GetString("ImageWithBackground"))) 2596 { 2597 employeeImage = employee.GetString("ImageWithBackground"); 2598 employeeClass = ""; 2599 } 2600 2601 <div class="broker col-12 col-sm-6 col-md-3" data-id='@employee.GetString("ID")'> 2602 2603 <div class="img @employeeClass"><img src="@employeeImage" class="img-fluid img-bicubic"></div> 2604 <h4 class="name">@(employee.GetValue("Name"))</h4> 2605 @if (!string.IsNullOrEmpty(employee.GetString("JobTitle"))) 2606 { 2607 <p>@employee.GetString("JobTitle")</p> 2608 } 2609 @if (!string.IsNullOrEmpty(employeeEmail)) 2610 { 2611 <p>Mail: <a href='mailto:@(employeeEmail)'>@(employeeEmail)</a></p> 2612 } 2613 @if (!string.IsNullOrEmpty(employeePhone)) 2614 { 2615 <p>Tlf.: <a href='tel:@(employeePhone)'>@(employeePhone)</a></p> 2616 } 2617 2618 </div> 2619 } 2620 } 2621 </div> 2622 </div> 2623 </section> 2624 } 2625 2626 <div class="dwcontent" id="content-main" title="Main content" data-settings="unwrap: true;"></div> 2627 @GetValue("DwContent(contentmain)") 2628 2629 @* Render boliglist *@ 2630 @if (!hasEcomCatalog) 2631 { 2632 @RenderParagraphContent(16616) 2633 } 2634 else if (pageSize <= 8) 2635 { 2636 <div class="btn btn-primary loadmore maegler" data-broker="@butikId" id="btnShowMore">Se flere</div> 2637 } 2638 2639 @if (MyBroker != null && MyBroker.Broker != null && MyBroker.Employee != null && GetBoolean("Item.Page.HideMyBroker.Value") != true) 2640 { 2641 string bName = MyBroker.Broker.Name; 2642 string bImage = ""; 2643 string bClass = "na"; 2644 bImage = "/Files/Templates/Designs/rm/assets/images/na-real.png"; 2645 var item = ItemManager.Storage.GetById(MyBroker.Employee.ItemType, MyBroker.Employee.ItemId); 2646 2647 if (!string.IsNullOrEmpty(MyBroker.Broker.CompanyName)) 2648 { 2649 bName = MyBroker.Broker.CompanyName; 2650 } 2651 try 2652 { 2653 var imgUrl = Converter.ToString(item["BilledeUrl"]); 2654 if (!string.IsNullOrEmpty(imgUrl)) 2655 { 2656 bImage = imgUrl; 2657 bClass = ""; 2658 } 2659 } 2660 catch 2661 { 2662 // Ignore 2663 } 2664 2665 string bAreaID = Converter.ToString(item["WebsiteId"]); 2666 string medlemsnummer = Converter.ToString(item["CBMedlemsnummer"]); 2667 <section class="din-maegler"> 2668 <div class="img-wrapper @bClass" style="background-image:url('@bImage')"></div> 2669 <div class="container"> 2670 <div class="col-12 col-sm-12 col-md-6 offset-md-6"> 2671 <h2>Din personlige mægler</h2> 2672 <div class="row"> 2673 <div class="col-12 col-sm-6"> 2674 <p> 2675 <b class="my-broker-name">@MyBroker.Employee.Name</b><br> 2676 @if (!string.IsNullOrEmpty(MyBroker.Employee.Email)) 2677 { 2678 <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> 2679 } 2680 @if (!string.IsNullOrEmpty(MyBroker.Employee.PhoneMobile)) 2681 { 2682 <text>Tlf.: <a href="tel:@(MyBroker.Employee.PhoneMobile)" class="my-broker-phone">@RealMaeglerne.Library.Helper.FormatPhoneNumber(MyBroker.Employee.PhoneMobile)</a></text> 2683 } 2684 else if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2685 { 2686 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-phone">@RealMaeglerne.Library.Helper.FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text> 2687 } 2688 </p> 2689 </div> 2690 <div class="col-12 col-sm-6"> 2691 <p> 2692 <b class="my-broker-company-name">@bName</b><br> 2693 <span class="my-broker-company-address">@MyBroker.Broker.Address</span><br> 2694 <span class="my-broker-company-zip">@MyBroker.Broker.ZipCode</span> <span class="my-broker-company-city">@MyBroker.Broker.City</span><br> 2695 @if (!string.IsNullOrEmpty(bEmail)) 2696 { 2697 <text>Mail: <a href="mailto:@(bEmail)" class="my-broker-broker-email">@bEmail</a><br></text> 2698 } 2699 @if (!string.IsNullOrEmpty(MyBroker.Broker.Telephone)) 2700 { 2701 <text>Tlf.: <a href="tel:@(MyBroker.Broker.Telephone)" class="my-broker-broker-phone">@RealMaeglerne.Library.Helper.FormatPhoneNumber(MyBroker.Broker.Telephone)</a></text> 2702 } 2703 </p> 2704 </div> 2705 </div> 2706 <div class="row"> 2707 <br /> 2708 <div class="col-12 col-sm-6"> 2709 <a href="/@medlemsnummer.Substring(1)" class="btn btn-primary btn-block my-broker-company-url">Til mæglerens side</a> 2710 </div> 2711 2712 </div> 2713 </div> 2714 </div> 2715 </section> 2716 } 2717 2718 <footer> 2719 <div class="container"> 2720 <div class="row"> 2721 @{ 2722 var navigationSettings = new NavigationSettings(); 2723 navigationSettings.StartLevel = 1; 2724 navigationSettings.StopLevel = 3; 2725 navigationSettings.ExpandMode = ExpandMode.All; 2726 navigationSettings.RootAreaId = 1; 2727 navigationSettings.RootNavigationTag = "footer-nav"; 2728 2729 } 2730 @Navigation.RenderNavigation("Navigation/footerNav.cshtml", navigationSettings) 2731 </div> 2732 </div> 2733 </footer> 2734 2735 <div id="panel-login" class="panel panel-form"> 2736 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 2737 <b></b> 2738 </button> 2739 <a href="@(settings_MinSide)" target="_blank" class="btn btn-primary btn-block link-customer">@Translate("Smartpage:Login.Button.CustomerUniverse", "Realmæglernes Kundeunivers")</a> 2740 <button class="js-open-login btn btn-primary btn-block">@Translate("Smartpage.Login.Button.RealestateAgent", "Realmæglernes Boligagent")</button> 2741 <div class="loginform login"> 2742 @if (loginParagraphId > 0) 2743 { 2744 <text> 2745 @RenderParagraphContent(loginParagraphId) 2746 </text> 2747 } 2748 </div> 2749 <div class="loginform register js-register-form-wrapper" style="display: none;"> 2750 @if (createUserParagraphId > 0) 2751 { 2752 <text> 2753 @RenderParagraphContent(createUserParagraphId) 2754 </text> 2755 } 2756 </div> 2757 <div class="loginform forgotpw" style="display: none;"> 2758 <h2 class="forgotpw-reg">@Translate("forgot-pw-reg-title", "Glemt adgangskode")</h2> 2759 <h2 class="forgotpw-broker">@Translate("forgot-pw-broker-title", "Tilmeldt via. mægler")</h2> 2760 <form id="forgotPwForm" class="form-body" method="post" action=""> 2761 <input type="hidden" id="AccessUserShopID" name="AccessUserShopID" value="SHOP6" /> 2762 <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> 2763 <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> 2764 <div class="form-group"> 2765 <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 /> 2766 </div> 2767 <button class="btn btn-primary btn-block" type="submit">@Translate("forgot-pw-cta", "Nulstil adgangskode")</button> 2768 <br /> 2769 <div id="submitMessage"></div> 2770 </form> 2771 </div> 2772 </div> 2773 2774 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2775 @using System 2776 @using RealMaeglerne.Dynamicweb; 2777 @using RealMaeglerne.Library; 2778 @using RealMaeglerne.Library.Models; 2779 @using Dynamicweb.Content.Items; 2780 @using Dynamicweb.Core; 2781 @using System.Linq; 2782 2783 @{ 2784 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"); 2785 } 2786 2787 <!-- KONTAKT KØBERRAADGIVNING --> 2788 <div id="panel-kontakt-koeberraadgivning" class="panel panel-form"> 2789 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 2790 <b></b> 2791 </button> 2792 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2> 2793 <form id="form-koeberraadgivning" method="POST" action="/InboxHandler"> 2794 <div class="form-group"> 2795 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 2796 <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 /> 2797 </div> 2798 <div class="form-group"> 2799 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 2800 <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 /> 2801 </div> 2802 <div class="form-group row mb-4"> 2803 <div class="col-6"> 2804 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 2805 <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 /> 2806 </div> 2807 <div class="col-6"> 2808 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 2809 <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")' /> 2810 </div> 2811 </div> 2812 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 2813 <div class="form-group row"> 2814 <div class="col-4"> 2815 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 2816 <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 /> 2817 <input type="hidden" class="js-postnummer-validation" /> 2818 </div> 2819 <div class="col-8"> 2820 <label><strong>@Translate("form-city", "By")*</strong></label> 2821 <input class="form-control js-city" type="text" readonly /> 2822 </div> 2823 </div> 2824 <div class="form-group overflow-unset"> 2825 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 2826 <input class="form-control js-validate-address" type="text" name="adresse" tabindex="6" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' required /> 2827 2828 <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> 2829 </div> 2830 <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"> 2831 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 2832 </button> 2833 <div class="collapse" id="kontaktkoeberrradgiver-collapse"> 2834 <div class="form-group"> 2835 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 2836 </div> 2837 </div> 2838 2839 <div class="form-group mt-3"> 2840 <div class="checkbox"> 2841 <label> 2842 <input type="checkbox" name="kontaktmigok" required /> 2843 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 2844 </label> 2845 </div> 2846 </div> 2847 <div class="form-group"> 2848 <div class="row"> 2849 <div class="col-12"> 2850 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button> 2851 </div> 2852 </div> 2853 </div> 2854 <div class="form-group form-group-terms"> 2855 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 2856 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 2857 </div> 2858 2859 <input type="hidden" name="fn" value="krk" /> 2860 <input type="hidden" name="origin" value="" /> 2861 <input type="hidden" name="brugerId" value="" /> 2862 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 2863 <input type="hidden" name="butikId" value="@butikId" /> 2864 <input type="hidden" name="ejendomstype" value="" /> 2865 <input type="hidden" name="salgspris" value="" /> 2866 <input type="hidden" name="modtager" value="" /> 2867 </form> 2868 <div id="tak-kontakt-advisor" style="display:none;"> 2869 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 2870 <div class="row"> 2871 <div class="col-6"> 2872 <img src="" class="img-fluid js-maegler-img" /> 2873 </div> 2874 <div class="col-6"> 2875 <p class="js-maegler-name"></p> 2876 <p class="js-maegler-address"></p> 2877 <p class="js-maegler-phone"></p> 2878 <p class="js-maegler-mail"></p> 2879 </div> 2880 </div> 2881 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 2882 </div> 2883 </div> 2884 2885 <!--ÅBENT HUS--> 2886 <div id="panel-aabenthus" class="panel panel-form"> 2887 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 2888 <b></b> 2889 </button> 2890 2891 <form id="form-aabenthus" method="POST" action="/InboxHandler"> 2892 <h2>@Translate("Smarptage:Aabenthus.TilmeldTilÅbenthus", "Tilmeld til åbent hus")</h2> 2893 @{ 2894 string sagsnr = Dynamicweb.Context.Current.Request["ProductId"]; 2895 var product = Dynamicweb.Ecommerce.Services.Products.GetProductById(sagsnr, string.Empty, true); 2896 if (product != null) 2897 { 2898 var boligManager = new BoligManager(Pageview); 2899 Bolig bolig = boligManager.CreateBolig(product, true); 2900 var kommendeAabnehuse = boligManager.KommendeAabnehuse(bolig).Take(3); 2901 2902 if (kommendeAabnehuse.Count() > 0) 2903 { 2904 <div> 2905 <div class="open-house-dates"> 2906 @foreach (var openHouse in kommendeAabnehuse) 2907 { 2908 <label class="open-house-dates__date"> 2909 @openHouse.DatoClean 2910 <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" /> 2911 </label> 2912 } 2913 </div> 2914 @foreach (var openHouse in kommendeAabnehuse) 2915 { 2916 <div id="@openHouse.Id" class="open-house-times"> 2917 @if (openHouse.VisInterval && openHouse.Tilmelding) 2918 { 2919 int counter = 0; 2920 foreach (var interval in openHouse.TidsIntervallerFormateret) 2921 { 2922 <div><input class="js-aabenthus-time-select time-radio" type="radio" name="AabenthusTid" value="@interval" checked="@(counter == 0)" /><span>@interval.Substring(3)</span></div> 2923 counter++; 2924 } 2925 2926 } 2927 2928 @if (!openHouse.Tilmelding) 2929 { 2930 <div class="js-open-house-no-signup open-house-no-signup"> 2931 @Translate("Smartpage:Aabenthus.IngenTilmelding", "Ingen tilmelding påkrævet") 2932 </div> 2933 } 2934 </div> 2935 } 2936 </div> 2937 } 2938 } 2939 } 2940 2941 <div class="d-block"> 2942 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label> 2943 </div> 2944 <div class="d-block"> 2945 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label> 2946 </div> 2947 <div class="d-block mb-4"> 2948 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label> 2949 </div> 2950 <div class="js-open-house-signup open-house-signup"> 2951 <h3>@Translate("Smartpage:Aabenthus.DineKontaktoplysning", "Dine kontaktoplysninger")</h3> 2952 <div class="form-group"> 2953 <label for="aabenthus-name"><strong>@Translate("form-navn", "Navn")*</strong></label> 2954 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required /> 2955 </div> 2956 <div class="form-group"> 2957 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 2958 <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 /> 2959 </div> 2960 <div class="form-group row"> 2961 <div class="col-6"> 2962 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 2963 <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 /> 2964 </div> 2965 <div class="col-6"> 2966 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 2967 <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")' /> 2968 </div> 2969 2970 </div> 2971 <div class="form-group"> 2972 <div class="checkbox"> 2973 <label> 2974 <input type="checkbox" name="kontaktmigok" required /> 2975 <span class="base-color">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 2976 </label> 2977 </div> 2978 </div> 2979 <div class="form-group"> 2980 <div class="row"> 2981 <div class="col-12"> 2982 <button type="submit" class="btn btn-block btn-green">@Translate("Smartpage:Aabenthus.TilmeldKnap", "Tilmeld åbent hus")</button> 2983 </div> 2984 </div> 2985 </div> 2986 <div class="form-group"> 2987 @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>") 2988 2989 </div> 2990 </div> 2991 <input type="hidden" name="fn" value="ah" /> 2992 <input type="hidden" name="origin" value="" /> 2993 <input type="hidden" name="brugerId" value="@userID" /> 2994 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 2995 <input type="hidden" name="butikId" value="@butikId" /> 2996 <input type="hidden" name="sagsaddresse" value="" class="js-aabenthus-address-input" /> 2997 <input type="hidden" name="ejendomstype" value="" /> 2998 <input type="hidden" name="salgspris" value="" /> 2999 <input type="hidden" name="modtager" value="" /> 3000 <input type="hidden" name="employee" value="" /> 3001 <input type="hidden" name="sagsnr" value="" class="js-sagsnr" /> 3002 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 3003 <input type="hidden" name="aftaleid" value="" class="js-aftaleid" /> 3004 3005 <input type="hidden" name="dateMail" class="js-aabenthus-date-input" /> 3006 <input type="hidden" name="timeMail" class="js-aabenthus-time-input" /> 3007 <input type="hidden" name="visintervaller" class="js-aabenthus-showinterval-input" /> 3008 <input type="hidden" name="brokerImageMail" class="property-broker-image-input" /> 3009 <input type="hidden" name="employeeNameMail" class="js-maegler-employee-name-input" /> 3010 <input type="hidden" name="employeeTitleMail" class="js-maegler-employee-title-input" /> 3011 <input type="hidden" name="employeeMailMail" class="js-maegler-mail-input" /> 3012 <input type="hidden" name="employeeMobileMail" class="js-maegler-mobile-input" /> 3013 <input type="hidden" name="employeePhoneMail" class="js-maegler-phone-input" /> 3014 3015 <input type="hidden" name="brokerNameMail" class="js-broker-name-input" /> 3016 <input type="hidden" name="brokerAddressMail" class="js-broker-address-input" /> 3017 <input type="hidden" name="brokerPhoneMail" class="js-broker-phone-input" /> 3018 <input type="hidden" name="greenmobility" class="js-green-mobility" /> 3019 </form> 3020 <div id="tak-aabenthus" style="display:none;"> 3021 <h2>@Translate("Smarptage:Aabenthus.TakForTilmelding", "Tak for din tilmelding til åbent hus!")</h2> 3022 <div class="d-block"> 3023 <strong>@Translate("Smarptage:Adresse", "Adresse:")</strong> <label class="js-aabenthus-address mb-0"></label> 3024 </div> 3025 <div class="d-block"> 3026 <strong>@Translate("Smarptage:Date", "Dato:")</strong> <label class="js-aabenthus-date mb-0"></label> 3027 3028 </div> 3029 <div class="d-block mb-4"> 3030 <strong>@Translate("Smarptage:Time", "Tidspunkt:")</strong> <label class="js-aabenthus-time mb-0"></label> 3031 3032 </div> 3033 <div class="js-employee"> 3034 <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> 3035 </div> 3036 <div class="js-not-employee"> 3037 <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> 3038 </div> 3039 <div class="row"> 3040 <div class="js-employee"> 3041 <div class="col-12 js-maegler-img aabenthus-image"> 3042 <div class="property-broker-image" style=""></div> 3043 3044 </div> 3045 </div> 3046 <div class="col-12"> 3047 <div class="bg-base"> 3048 3049 <div class="js-employee"> 3050 <h4 class="js-maegler-employee-name"></h4> 3051 <div class="icon-container"> 3052 <i class="fas fa-envelope"></i> <span class="js-maegler-mail"></span> 3053 </div> 3054 <div class="icon-container"> 3055 <i class="fas fa-phone"></i> <span class="js-maegler-mobile"></span> 3056 </div> 3057 </div> 3058 3059 3060 <h4 class="js-maegler-name"></h4> 3061 <div class="icon-container"> 3062 <i class="fas fa-map-marker-alt"></i> <span class="js-maegler-address"></span> 3063 </div> 3064 <div class="icon-container"> 3065 <i class="fas fa-phone"></i> <span class="js-maegler-phone"></span> 3066 3067 </div> 3068 <a class="btn btn-border" onclick="panelKontaktmaeglerGuldkoeber()">KONTAKT MÆGLER</a> 3069 </div> 3070 </div> 3071 </div> 3072 </div> 3073 </div> 3074 3075 <!-- KONTAKT GULDKØBER --> 3076 <div id="panel-kontakt-guldkoeber" class="panel panel-form"> 3077 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 3078 <b></b> 3079 </button> 3080 <h2>@Translate("Smarptage:Guldkøber.KontaktMægler", "Kontakt Mægler")</h2> 3081 <form id="form-kontaktmaegler" method="POST" action="/InboxHandler"> 3082 <div class="form-group"> 3083 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 3084 <input class="form-control" type="text" name="navn" placeholder='@Translate("form-navn", "Navn")' value='@GetGlobalValue("Global:Extranet.Name")' required /> 3085 </div> 3086 <div class="form-group"> 3087 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 3088 <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 /> 3089 </div> 3090 <div class="form-group row mb-4"> 3091 <div class="col-6"> 3092 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 3093 <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 /> 3094 </div> 3095 <div class="col-6"> 3096 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 3097 <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")' /> 3098 </div> 3099 </div> 3100 <div class="form-group row"> 3101 <div class="col-4"> 3102 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 3103 <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 /> 3104 <input type="hidden" class="js-postnummer-validation" /> 3105 </div> 3106 <div class="col-8"> 3107 <label><strong>@Translate("form-city", "By")*</strong></label> 3108 <input class="form-control js-city" type="text" readonly /> 3109 </div> 3110 </div> 3111 3112 <div class="form-group overflow-unset"> 3113 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 3114 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 3115 <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> 3116 </div> 3117 <div class="form-group"> 3118 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 3119 </div> 3120 <div class="form-group"> 3121 <div class="checkbox"> 3122 <label> 3123 <input type="checkbox" name="kontaktmigok" required /> 3124 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 3125 </label> 3126 </div> 3127 </div> 3128 <div class="form-group"> 3129 <div class="row"> 3130 <div class="col-12"> 3131 <button type="submit" class="btn btn-green btn-block">@Translate("KontaktMægler", "Kontakt Mægler")</button> 3132 </div> 3133 </div> 3134 </div> 3135 <div class="form-group form-group-terms"> 3136 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 3137 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 3138 </div> 3139 <input type="hidden" name="fn" value="gk" /> 3140 <input type="hidden" name="origin" value="" /> 3141 <input type="hidden" name="brugerId" value="@userID" /> 3142 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 3143 <input type="hidden" name="butikId" value="@butikId" /> 3144 <input type="hidden" name="ejendomstype" value="" /> 3145 <input type="hidden" name="salgspris" value="" /> 3146 <input type="hidden" name="modtager" value="" /> 3147 <input type="hidden" name="employee" value="" /> 3148 </form> 3149 <div id="tak-kontakt-maegler-guldkoeber" style="display:none;"> 3150 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 3151 <p>@Translate("Smartpage:FormKontaktGuld.Subheader", "Vi har sendt din forespørgsel om guldkøbere til:")</p> 3152 <div class="row"> 3153 <div class="col-6"> 3154 <img src="" class="img-fluid js-maegler-img" /> 3155 </div> 3156 <div class="col-6"> 3157 <p class="js-maegler-name"></p> 3158 <p class="js-maegler-address"></p> 3159 <p class="js-maegler-phone"></p> 3160 <p class="js-maegler-mail"></p> 3161 </div> 3162 </div> 3163 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 3164 </div> 3165 </div> 3166 3167 <!-- BESTIL SALGSVURDERING --> 3168 <div id="panel-salgsvurdering" class="panel panel-form"> 3169 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 3170 <b></b> 3171 </button> 3172 3173 <form id="bestil-salgsvurdering" class="buyer-advisor-form js-buyer-advisor-form" method="POST" action="/InboxHandler"> 3174 <h2 class="js-buyer-advisor-header">@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2> 3175 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p> 3176 <div class="form-group"> 3177 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 3178 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required /> 3179 </div> 3180 <div class="form-group"> 3181 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 3182 <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 /> 3183 </div> 3184 <div class="form-group row mb-4"> 3185 <div class="col-6"> 3186 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 3187 <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 /> 3188 </div> 3189 <div class="col-6"> 3190 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 3191 <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")' /> 3192 </div> 3193 3194 </div> 3195 3196 @{ 3197 // isErhverv comes from master template 3198 bool pageIsErhverv = isErhverv || Converter.ToBoolean(Pageview.Area.Item["IsErhverv"]); 3199 string yourPropertyHeader = pageIsErhverv ? Translate("Smartpage:Salgsvurdering.DinEjendom", "Din ejendom") : Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig"); 3200 // If user is on broker page already then don't suggest alternative broker 3201 bool isOnBrokerPage = !string.IsNullOrEmpty(butikId); 3202 } 3203 3204 <h3>@yourPropertyHeader</h3> 3205 <div class="form-group row"> 3206 <div class="col-4"> 3207 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 3208 @{ 3209 string primaryAreaEncoded = Dynamicweb.Core.Encoders.HtmlEncoder.HtmlEncode(primaryArea); 3210 <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 /> 3211 <input type="hidden" class="js-postnummer-validation" /> 3212 } 3213 </div> 3214 <div class="col-8"> 3215 <label><strong>@Translate("form-city", "By")*</strong></label> 3216 <input class="form-control js-city" type="text" readonly /> 3217 </div> 3218 </div> 3219 <div class="form-group overflow-unset"> 3220 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 3221 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 3222 <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> 3223 </div> 3224 3225 <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"> 3226 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 3227 </button> 3228 <div class="collapse" id="salgsvurdering-collapse"> 3229 <div class="form-group"> 3230 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 3231 </div> 3232 </div> 3233 3234 <div class="salgsvurdering-precheck"> 3235 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3> 3236 <div class="col-12"> 3237 <div class="choose-broker row align-items-center active"> 3238 <div class="col-2"> 3239 <input class="js-broker-radio" type="radio" id="" name="choose-broker" value="" checked> 3240 <label class="js-broker-label" for=""></label><div class="check"> 3241 <div class="inside"> 3242 </div> 3243 </div> 3244 </div> 3245 <div class="col-4"> 3246 <img src="" class="img-fluid js-broker-image"> 3247 </div> 3248 <div class="col-6"> 3249 <span class="d-block"> 3250 <strong class="js-choose-broker-name"></strong> 3251 </span> 3252 <span class="js-choose-broker-address"></span> 3253 <input type="hidden" class="js-choose-broker-phone" value="" /> 3254 <input type="hidden" class="js-choose-broker-email" value="" /> 3255 </div> 3256 </div> 3257 </div> 3258 </div> 3259 <div class="salgsvurdering-broker"> 3260 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3> 3261 <div class="js-choose-broker col-12"> 3262 </div> 3263 3264 </div> 3265 <div class="form-group mt-4"> 3266 <div class="checkbox"> 3267 <label> 3268 <input type="checkbox" name="kontaktmigok" required /> 3269 <span class="consent-checkbox">@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 3270 </label> 3271 </div> 3272 </div> 3273 <div class="form-group"> 3274 <div class="row"> 3275 <div class="col-12"> 3276 <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> 3277 </div> 3278 </div> 3279 </div> 3280 <div class="form-group form-group-terms"> 3281 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 3282 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 3283 </div> 3284 <input type="hidden" name="fn" value="bsv" /> 3285 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" /> 3286 <input type="hidden" name="brugerId" value="@userID" /> 3287 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 3288 <input type="hidden" id="boligvisning" name="boligvisning" value="" /> 3289 <input type="hidden" id="panel-salgsvurdering-butikid" name="butikId" value="" /> 3290 <input type="hidden" id="panel-salgsvurdering-sagsnr" name="sagsnr" value="" /> 3291 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 3292 <input type="hidden" name="ejendomstype" value="" /> 3293 <input type="hidden" name="salgspris" value="" /> 3294 <input type="hidden" name="employee" value="" /> 3295 <input type="hidden" name="modtager" value="" /> 3296 <input class="js-value-check" type="hidden" name="valueCheck" value="" /> 3297 <input class="js-green-appraisal" type="hidden" name="greenAppraisal" value="" /> 3298 </form> 3299 <div id="tak-salgsvurdering" style="display:none;"> 3300 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 3301 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p> 3302 <div class="row"> 3303 <div class="col-6"> 3304 <img src="" class="img-fluid js-maegler-img" /> 3305 </div> 3306 <div class="col-6"> 3307 <p class="js-maegler-name"></p> 3308 <p class="js-maegler-address"></p> 3309 <p class="js-maegler-phone"></p> 3310 <p class="js-maegler-mail"></p> 3311 </div> 3312 </div> 3313 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 3314 </div> 3315 </div> 3316 3317 <!-- BESTIL SALGSVURDERING GULDKØBER --> 3318 <div id="panel-salgsvurdering-guldkoeber" class="panel panel-form"> 3319 <button type="button" class="close" data-dismiss="panel-form" aria-label="Close"> 3320 <b></b> 3321 </button> 3322 3323 <form id="bestil-salgsvurdering-guldkoeber" method="POST" action="/InboxHandler"> 3324 <h2>@Translate("form-salgsvurdering-titel", "Bestil gratis salgsvurdering")</h2> 3325 <p>@Translate("form-salgsvurdering-beskrivelse", "")</p> 3326 <div class="form-group"> 3327 <label><strong>@Translate("form-navn", "Navn")*</strong></label> 3328 <input class="form-control" type="text" name="navn" placeholder='@Translate("Smartpage:Salgsvurdering.Placeholder.Navn", "Indtast dit navn")' value='@GetGlobalValue("Global:Extranet.Name")' required /> 3329 </div> 3330 <div class="form-group"> 3331 <label><strong>@Translate("form-email", "E-mail")*</strong></label> 3332 <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 /> 3333 </div> 3334 <div class="form-group row mb-4"> 3335 <div class="col-6"> 3336 <label><strong>@Translate("form-telephone", "Telefon nr.")</strong></label> 3337 <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")' /> 3338 </div> 3339 <div class="col-6"> 3340 <label><strong>@Translate("form-mobile", "Mobil nr.")*</strong></label> 3341 <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 /> 3342 </div> 3343 </div> 3344 3345 <h3>@Translate("Smartpage:Salgsvurdering.DinBolig", "Din bolig")</h3> 3346 3347 <div class="form-group row"> 3348 <div class="col-4"> 3349 <label><strong>@Translate("form-zip", "Post nr")*</strong></label> 3350 <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 /> 3351 <input type="hidden" class="js-postnummer-validation" /> 3352 </div> 3353 <div class="col-8"> 3354 <label><strong>@Translate("form-city", "By")*</strong></label> 3355 <input class="form-control js-city" type="text" readonly /> 3356 </div> 3357 </div> 3358 <div class="form-group overflow-unset"> 3359 <label><strong>@Translate("form-adresse", "Adresse")*</strong></label> 3360 <input class="form-control js-validate-address" type="text" name="adresse" placeholder='@Translate("Smartpage:Aabenthus.Placeholder.Zip", "Udfyld din egen adresse")' value="@userAddress" required /> 3361 <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> 3362 </div> 3363 3364 <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"> 3365 <strong class="f-12"><i class="fas fa-plus"></i> @Translate("Smartpage:Salgsvurdering.Skrivenkommentar", "Skriv en kommentar")</strong> 3366 </button> 3367 <div class="collapse" id="salgsvurdering-collapse"> 3368 <div class="form-group"> 3369 <textarea class="form-control" name="besked" placeholder='@Translate("form-besked-max", "Skriv en besked på max 150 tegn")' maxlength="150"></textarea> 3370 </div> 3371 </div> 3372 <div class="salgsvurdering-precheck"> 3373 <h3>@Translate("Smartpage:Salgsvurdering.SendSalgsvurderingTil", "Send salgsvurdering til:")</h3> 3374 <div class="col-12"> 3375 <div class="choose-broker row align-items-center active"> 3376 <div class="col-2"> 3377 <input class="js-broker-radio" type="radio" id="" name="choose-broker-gk" value="" checked> 3378 <label class="js-broker-label" for=""></label><div class="check"> 3379 <div class="inside"> 3380 </div> 3381 </div> 3382 </div> 3383 <div class="col-4"> 3384 <img src="" class="img-fluid js-broker-image"> 3385 </div> 3386 <div class="col-6"> 3387 <span class="d-block"> 3388 <strong class="js-choose-broker-name"></strong> 3389 </span> 3390 <span class="js-choose-broker-address"></span> 3391 <input type="hidden" class="js-choose-broker-phone" value="" /> 3392 <input type="hidden" class="js-choose-broker-email" value="" /> 3393 </div> 3394 </div> 3395 </div> 3396 </div> 3397 <div class="salgsvurdering-broker"> 3398 <h3 class="js-brokerh3">@Translate("Smartpage:Salgsvurdering.VælgMægler", "Vælg mægler")</h3> 3399 <div class="js-choose-broker col-12"> 3400 </div> 3401 3402 </div> 3403 3404 <div class="form-group"> 3405 <div class="checkbox"> 3406 <label> 3407 <input type="checkbox" name="kontaktmigok" required /> 3408 <span>@Translate("form-contactpermission-real", "Ja tak, RealMæglerne må gerne kontakte mig. *")</span> 3409 </label> 3410 </div> 3411 </div> 3412 <div class="form-group"> 3413 <div class="row"> 3414 <div class="col-12"> 3415 <button type="submit" class="btn btn-green btn-block">@Translate("form-salgsvurdering-submitbtn", "Bestil gratis salgsvurdering")</button> 3416 </div> 3417 </div> 3418 </div> 3419 <div class="form-group form-group-terms"> 3420 @privacyPolicyText <a href="mailto:@termsMail">@termsMail</a>. 3421 Læs mere på <a href="@settings_Persondatapolitik">privatlivspolitikkerne</a>. 3422 </div> 3423 <input type="hidden" name="fn" value="bsg" /> 3424 <input type="hidden" name="origin" class="js-salgsvurdering-origin" value="" /> 3425 <input type="hidden" name="brugerId" value="@userID" /> 3426 <input type="hidden" name="areaid" value="@Pageview.AreaID" /> 3427 <input type="hidden" id="boligvisning-gk" name="boligvisning" value="" /> 3428 <input type="hidden" id="panel-salgsvurdering-gk-butikid" name="butikId" value="" /> 3429 <input type="hidden" id="panel-salgsvurdering-gk-sagsnr" name="sagsnr" value="" /> 3430 <input type="hidden" name="productId" value="@Dynamicweb.Context.Current.Request["ProductId"]" /> 3431 <input type="hidden" name="ejendomstype" value="" /> 3432 <input type="hidden" name="salgspris" value="" /> 3433 <input type="hidden" name="employee" value="" /> 3434 <input type="hidden" name="modtager" value="" /> 3435 </form> 3436 <div id="tak-salgsvurdering" style="display:none;"> 3437 <h2>@Translate("TakForDinInteresse", "Tak for din interesse")</h2> 3438 <p>@Translate("Smartpage:FormSalgsvurdering.Subheader", "Vi har sendt din bestilling af gratis salgsvurdering til:")</p> 3439 <div class="row"> 3440 <div class="col-6"> 3441 <img src="" class="img-fluid js-maegler-img" /> 3442 </div> 3443 <div class="col-6"> 3444 <p class="js-maegler-name"></p> 3445 <p class="js-maegler-address"></p> 3446 <p class="js-maegler-phone"></p> 3447 <p class="js-maegler-mail"></p> 3448 </div> 3449 </div> 3450 <p>@Translate("Smartpage:FormKontaktGuld.Bottom", "Mægleren vil kontakte dig hurtigst muligt")</p> 3451 </div> 3452 </div> 3453 3454 3455 <div class="overlay-wrapper"></div> 3456 <div class="dropdown-overlay"></div> 3457 <div class="loader-inner ball-pulse"></div> 3458 3459 @{ 3460 var viamapstrapFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/webpack/js/3rdparty/viamapstrap.js")); 3461 <script type="text/javascript" src='@(TemplateUrl)assets/webpack/js/3rdparty/viamapstrap.js?@(viamapstrapFileInfo.LastWriteTime.Ticks)' async></script> 3462 3463 var bundleFileInfo = new System.IO.FileInfo(Dynamicweb.Core.SystemInformation.MapPath(TemplateUrl + "assets/dist/bundle.app.min.js")); 3464 <script type="text/javascript" src='@(TemplateUrl)assets/dist/bundle.app.min.js?@(bundleFileInfo.LastWriteTime.Ticks)' async></script> 3465 } 3466 3467 @RenderSnippet("JavaScriptBottom") 3468 3469 @if (Context.Current.Request.QueryString["ShowLogin"] == "true") 3470 { 3471 <input class="js-showLogin" value="true" /> 3472 } 3473 @if (!string.IsNullOrWhiteSpace(GetString("DW_extranet_error_uk"))) 3474 { 3475 <input class="js-DWError" value="true" /> 3476 <input class="js-DWErrorVal" value="@GetString("DW_extranet_error_dk")" /> 3477 } 3478 3479 @if (!string.IsNullOrEmpty(settings_ConduzeId)) 3480 { 3481 <script type="text/javascript" id="conduze-sdk" src="https://cdn.conduze.com/@settings_ConduzeId/tracking.js" async></script> 3482 } 3483 3484 @if (!string.IsNullOrEmpty(settings_Weply)) 3485 { 3486 <script src="https://app.weply.chat/widget/@settings_Weply" async></script> 3487 } 3488 3489 </body> 3490 </html> 3491 3492